diff options
author | Sylvain Th?nault <sylvain.thenault@logilab.fr> | 2010-09-15 14:50:50 +0200 |
---|---|---|
committer | Sylvain Th?nault <sylvain.thenault@logilab.fr> | 2010-09-15 14:50:50 +0200 |
commit | 9e777836d0b6f51c0728ebe73e8b8d993ba16911 (patch) | |
tree | b88aaebbf5bbccfbd4aa0f7a4eb7215cb198aa83 /fileutils.py | |
parent | 55b6e28c45a4aa6c9a29f63495fceb52d9a5a817 (diff) | |
download | logilab-common-9e777836d0b6f51c0728ebe73e8b8d993ba16911.tar.gz |
[py3k] remove "os.path.walk" occurencies by using "os.path"
Diffstat (limited to 'fileutils.py')
-rw-r--r-- | fileutils.py | 60 |
1 files changed, 29 insertions, 31 deletions
diff --git a/fileutils.py b/fileutils.py index 9ffd67c..86a83a4 100644 --- a/fileutils.py +++ b/fileutils.py @@ -28,9 +28,9 @@ __docformat__ = "restructuredtext en" import sys import shutil import mimetypes -from os.path import isabs, isdir, islink, split, exists, walk, normpath, join +from os.path import isabs, isdir, islink, split, exists, normpath, join from os.path import abspath -from os import sep, mkdir, remove, listdir, stat, chmod +from os import sep, mkdir, remove, listdir, stat, chmod, walk from stat import ST_MODE, S_IWRITE from cStringIO import StringIO @@ -356,35 +356,34 @@ def export(from_dir, to_dir, flag indicating whether information about exported files should be printed to stderr, default to False """ - def make_mirror(_, directory, fnames): - """walk handler""" + try: + mkdir(to_dir) + except OSError: + pass # FIXME we should use "exists" if the point is about existing dir + # else (permission problems?) shouldn't return / raise ? + for directory, dirnames, filenames in walk(from_dir): for norecurs in blacklist: try: - fnames.remove(norecurs) + dirnames.remove(norecurs) except ValueError: continue - for filename in fnames: + for dirname in dirnames: + src = join(directory, dirname) + dest = to_dir + src[len(from_dir):] + if isdir(src): + if not exists(dest): + mkdir(dest) + for filename in filenames: # don't include binary files - for ext in ignore_ext: - if filename.endswith(ext): - break - else: - src = join(directory, filename) - dest = to_dir + src[len(from_dir):] - if verbose: - print >> sys.stderr, src, '->', dest - if isdir(src): - if not exists(dest): - mkdir(dest) - else: - if exists(dest): - remove(dest) - shutil.copy2(src, dest) - try: - mkdir(to_dir) - except OSError: - pass - walk(from_dir, make_mirror, None) + if filename.endswith(ignore_ext): + continue + src = join(directory, filename) + dest = to_dir + src[len(from_dir):] + if verbose: + print >> sys.stderr, src, '->', dest + if exists(dest): + remove(dest) + shutil.copy2(src, dest) def remove_dead_links(directory, verbose=0): @@ -398,12 +397,11 @@ def remove_dead_links(directory, verbose=0): flag indicating whether information about deleted links should be printed to stderr, default to False """ - def _remove_dead_link(_, directory, fnames): - """walk handler""" - for filename in fnames: - src = join(directory, filename) + for dirpath, dirname, filenames in walk(directory): + for filename in dirnames + filenames: + src = join(dirpath, filename) if islink(src) and not exists(src): if verbose: print 'remove dead link', src remove(src) - walk(directory, _remove_dead_link, None) + |