diff options
author | Steven Knight <knight@baldmt.com> | 2010-04-16 13:40:49 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2010-04-16 13:40:49 (GMT) |
commit | ded0f52f11f5c97959ee8070a2687ecb14e69e3f (patch) | |
tree | 62ceb50351ad2bb0343b1f12b291449f8203dfba | |
parent | c06950cad4c02ba6b759c1cbd65cfb52ab6868c3 (diff) | |
download | SCons-ded0f52f11f5c97959ee8070a2687ecb14e69e3f.zip SCons-ded0f52f11f5c97959ee8070a2687ecb14e69e3f.tar.gz SCons-ded0f52f11f5c97959ee8070a2687ecb14e69e3f.tar.bz2 |
Refactory bin/* utilities to use os.walk() instead of os.path.walk().
-rw-r--r-- | bin/import-test.py | 10 | ||||
-rw-r--r-- | bin/linecount.py | 24 | ||||
-rw-r--r-- | bin/scons-doc.py | 9 |
3 files changed, 18 insertions, 25 deletions
diff --git a/bin/import-test.py b/bin/import-test.py index 69e6cc7..8ed5399 100644 --- a/bin/import-test.py +++ b/bin/import-test.py @@ -57,11 +57,6 @@ def lookup(dirname): node = t.entries[dirs[-1]] = Dir(dirs) return node -def make_nodes(arg, dirname, fnames): - dir = lookup(dirname) - for f in fnames: - dir.entries[f] = None - def collect_dirs(l, dir): if dir.path: l.append(dir.path) @@ -85,7 +80,10 @@ def print_files(dir): print_files(d) dir.call_for_each_entry(recurse) -os.path.walk(directory, make_nodes, None) +for dirpath, dirnames, filenames in os.walk(directory): + dir = lookup(dirpath) + for f in fnames: + dir.entries[f] = None subdir_list = [] collect_dirs(subdir_list, Top) diff --git a/bin/linecount.py b/bin/linecount.py index 715d207..b433284 100644 --- a/bin/linecount.py +++ b/bin/linecount.py @@ -43,8 +43,12 @@ class Collection(object): return self.pred(fname) def __len__(self): return len(self.files) - def extend(self, files): - self.files.extend(files) + def collect(self, directory): + for dirpath, dirnames, filenames in os.walk(directory): + try: dirnames.remove('.svn') + except ValueError: pass + self.files.extend([ os.path.join(dirpath, f) + for f in filenames if self.pred(f) ]) def lines(self): try: return self._lines @@ -82,17 +86,11 @@ src_test_tests = Collection('src/ test_*.py', pred=is_test_) test_tests = Collection('test/ tests', pred=is_python) sources = Collection('sources', pred=is_source) -def t(arg, dirname, names): - try: names.remove('.svn') - except ValueError: pass - names = list(filter(arg, names)) - arg.extend([os.path.join(dirname, n) for n in names]) - -os.path.walk('src', t, src_Tests_py_tests) -os.path.walk('src', t, src_test_tests) -os.path.walk('test', t, test_tests) -os.path.walk('src/engine', t, sources) -os.path.walk('src/script', t, sources) +src_Tests_py_tests.collect('src') +src_test_tests.collect('src') +test_tests.collect('test') +sources.collect('src/engine') +sources.collect('src/script') src_tests = Collection('src/ tests', src_Tests_py_tests.files + src_test_tests.files) diff --git a/bin/scons-doc.py b/bin/scons-doc.py index f7a3a23..7e49cbe 100644 --- a/bin/scons-doc.py +++ b/bin/scons-doc.py @@ -322,16 +322,13 @@ def JavaHCom(target, source, env): for t, s in zip(tlist, slist): open(t, "wb").write(open(s, "rb").read()) -def find_class_files(arg, dirname, names): - class_files = filter(lambda n: n[-6:] == '.class', names) - paths = map(lambda n: os.path.join(dirname, n), class_files) - arg.extend(paths) - def JarCom(target, source, env): target = str(target[0]) class_files = [] for src in map(str, source): - os.path.walk(src, find_class_files, class_files) + for dirpath, dirnames, filenames in os.walk(src): + class_files.extend([ os.path.join(dirpath, f) + for f in filenames if f.endswith('.class') ]) f = open(target, "wb") for cf in class_files: f.write(open(cf, "rb").read()) |