mirror of
https://github.com/arsenetar/dupeguru.git
synced 2024-11-14 11:39:03 +00:00
80 lines
2.2 KiB
Python
80 lines
2.2 KiB
Python
|
# Created By: Virgil Dupras
|
||
|
# Created On: 2007-10-23
|
||
|
# Copyright 2013 Hardcoded Software (http://www.hardcoded.net)
|
||
|
|
||
|
# This software is licensed under the "BSD" License as described in the "LICENSE" file,
|
||
|
# which should be included with this package. The terms are also available at
|
||
|
# http://www.hardcoded.net/licenses/bsd_license
|
||
|
|
||
|
# HS code should only deal with Path instances, not string paths. One of the annoyances of this
|
||
|
# is to always have to convert Path instances with unicode() when calling open() or listdir() etc..
|
||
|
# this unit takes care of this
|
||
|
|
||
|
import builtins
|
||
|
import os
|
||
|
import os.path
|
||
|
import shutil
|
||
|
import logging
|
||
|
|
||
|
def log_io_error(func):
|
||
|
""" Catches OSError, IOError and WindowsError and log them
|
||
|
"""
|
||
|
def wrapper(path, *args, **kwargs):
|
||
|
try:
|
||
|
return func(path, *args, **kwargs)
|
||
|
except (IOError, OSError) as e:
|
||
|
msg = 'Error "{0}" during operation "{1}" on "{2}": "{3}"'
|
||
|
classname = e.__class__.__name__
|
||
|
funcname = func.__name__
|
||
|
logging.warn(msg.format(classname, funcname, str(path), str(e)))
|
||
|
|
||
|
return wrapper
|
||
|
|
||
|
def copy(source_path, dest_path):
|
||
|
return shutil.copy(str(source_path), str(dest_path))
|
||
|
|
||
|
def copytree(source_path, dest_path, *args, **kwargs):
|
||
|
return shutil.copytree(str(source_path), str(dest_path), *args, **kwargs)
|
||
|
|
||
|
def exists(path):
|
||
|
return os.path.exists(str(path))
|
||
|
|
||
|
def isdir(path):
|
||
|
return os.path.isdir(str(path))
|
||
|
|
||
|
def isfile(path):
|
||
|
return os.path.isfile(str(path))
|
||
|
|
||
|
def islink(path):
|
||
|
return os.path.islink(str(path))
|
||
|
|
||
|
def listdir(path):
|
||
|
return os.listdir(str(path))
|
||
|
|
||
|
def mkdir(path, *args, **kwargs):
|
||
|
return os.mkdir(str(path), *args, **kwargs)
|
||
|
|
||
|
def makedirs(path, *args, **kwargs):
|
||
|
return os.makedirs(str(path), *args, **kwargs)
|
||
|
|
||
|
def move(source_path, dest_path):
|
||
|
return shutil.move(str(source_path), str(dest_path))
|
||
|
|
||
|
def open(path, *args, **kwargs):
|
||
|
return builtins.open(str(path), *args, **kwargs)
|
||
|
|
||
|
def remove(path):
|
||
|
return os.remove(str(path))
|
||
|
|
||
|
def rename(source_path, dest_path):
|
||
|
return os.rename(str(source_path), str(dest_path))
|
||
|
|
||
|
def rmdir(path):
|
||
|
return os.rmdir(str(path))
|
||
|
|
||
|
def rmtree(path):
|
||
|
return shutil.rmtree(str(path))
|
||
|
|
||
|
def stat(path):
|
||
|
return os.stat(str(path))
|