From 370b8e4611efb7f5bc684a62a1583704723c829d Mon Sep 17 00:00:00 2001 From: duplo Date: Tue, 27 Apr 2010 14:01:59 +0000 Subject: [PATCH] Revert to the old one. git-svn-id: https://src.develer.com/svnoss/bertos/trunk@3545 38d2e660-2303-0410-9eaa-f027e97ec537 --- wizard/copytree.py | 85 ++++++++++++++++++++++------------------------ 1 file changed, 41 insertions(+), 44 deletions(-) diff --git a/wizard/copytree.py b/wizard/copytree.py index 99b2e924..7ca8b7ea 100644 --- a/wizard/copytree.py +++ b/wizard/copytree.py @@ -40,48 +40,45 @@ from shutil import * del copytree -if sys.version_info < (2, 6, 0): - def copytree(src, dst, symlinks=False, ignore_list=[]): - """ - Reimplementation of the shutil.copytree function that use ignore_list. - ignore_list is a list containing patterns to ignore during the copy. - """ - names = os.listdir(src) - os.makedirs(dst) - errors = [] - for name in names: - srcname = os.path.join(src, name) - dstname = os.path.join(dst, name) - try: - ignored = False - for ignore in ignore_list: - if fnmatch.fnmatch(name, ignore): - ignored = True - break - if ignored: - continue - if symlinks and os.path.islink(srcname): - linkto = os.readlink(srcname) - os.symlink(linkto, dstname) - elif os.path.isdir(srcname): - copytree(srcname, dstname, symlinks, ignore_list) - else: - copy2(srcname, dstname) - # XXX What about devices, sockets etc.? - except (IOError, os.error), why: - errors.append((srcname, dstname, str(why))) - # catch the Error from the recursive copytree so that we can - # continue with other files - except Error, err: - errors.extend(err.args[0]) +def copytree(src, dst, symlinks=False, ignore_list=[]): + """ + Reimplementation of the shutil.copytree function that use ignore_list. + ignore_list is a list containing patterns to ignore during the copy. + """ + names = os.listdir(src) + os.makedirs(dst) + errors = [] + for name in names: + srcname = os.path.join(src, name) + dstname = os.path.join(dst, name) try: - copystat(src, dst) - except WindowsError: - # can't copy file access times on Windows - pass - except OSError, why: - errors.extend((src, dst, str(why))) - if errors: - raise Error, errors -else: - from shutil import copytree + ignored = False + for ignore in ignore_list: + if fnmatch.fnmatch(name, ignore): + ignored = True + break + if ignored: + continue + if symlinks and os.path.islink(srcname): + linkto = os.readlink(srcname) + os.symlink(linkto, dstname) + elif os.path.isdir(srcname): + copytree(srcname, dstname, symlinks, ignore_list) + else: + copy2(srcname, dstname) + # XXX What about devices, sockets etc.? + except (IOError, os.error), why: + errors.append((srcname, dstname, str(why))) + # catch the Error from the recursive copytree so that we can + # continue with other files + except Error, err: + errors.extend(err.args[0]) + try: + copystat(src, dst) + except WindowsError: + # can't copy file access times on Windows + pass + except OSError, why: + errors.extend((src, dst, str(why))) + if errors: + raise Error, errors -- 2.25.1