12345678910111213141516171819202122232425262728293031 |
- # flake8: noqa: F405
- from shutil import * # noqa: F403
- from .compat_utils import passthrough_module
- passthrough_module(__name__, 'shutil')
- del passthrough_module
- import sys
- if sys.platform.startswith('freebsd'):
- import errno
- import os
- import shutil
- # Workaround for PermissionError when using restricted ACL mode on FreeBSD
- def copy2(src, dst, *args, **kwargs):
- if os.path.isdir(dst):
- dst = os.path.join(dst, os.path.basename(src))
- shutil.copyfile(src, dst, *args, **kwargs)
- try:
- shutil.copystat(src, dst, *args, **kwargs)
- except PermissionError as e:
- if e.errno != getattr(errno, 'EPERM', None):
- raise
- return dst
- def move(*args, copy_function=copy2, **kwargs):
- return shutil.move(*args, copy_function=copy_function, **kwargs)
|