MCPcopy Index your code
hub / github.com/pyload/pyload / copy_tree

Function copy_tree

module/plugins/internal/misc.py:977–1007  ·  view source on GitHub ↗
(src, dst, overwrite=False, preserve_metadata=False)

Source from the content-addressed store, hash-verified

975
976
977def copy_tree(src, dst, overwrite=False, preserve_metadata=False):
978 pmode = preserve_metadata or overwrite is None
979 mtime = os.path.getmtime
980 copy = shutil.copy2 if pmode else shutil.copy
981
982 if preserve_metadata and not exists(dst):
983 return shutil.copytree(src, dst)
984
985 for src_dir, dirs, files in os.walk(src, topdown=False):
986 dst_dir = src_dir.replace(src, dst, 1)
987
988 if not exists(dst_dir):
989 os.makedirs(dst_dir)
990 if pmode:
991 shutil.copystat(src_dir, dst_dir)
992
993 elif pmode:
994 if overwrite or overwrite is None and mtime(src_dir) > mtime(dst_dir):
995 shutil.copystat(src_dir, dst_dir)
996
997 for filename in files:
998 src_file = fsjoin(src_dir, filename)
999 dst_file = fsjoin(dst_dir, filename)
1000
1001 if exists(dst_file):
1002 if overwrite or overwrite is None and mtime(src_file) > mtime(dst_file):
1003 os.remove(dst_file)
1004 else:
1005 continue
1006
1007 copy(src_file, dst_dir)
1008
1009
1010def move_tree(src, dst, overwrite=False):

Callers

nothing calls this directly

Calls 4

existsFunction · 0.85
fsjoinFunction · 0.85
replaceMethod · 0.45
removeMethod · 0.45

Tested by

no test coverage detected