diff options
| author | Greg Noel <GregNoel@tigris.org> | 2010-03-25 04:14:28 (GMT) |
|---|---|---|
| committer | Greg Noel <GregNoel@tigris.org> | 2010-03-25 04:14:28 (GMT) |
| commit | 22d352500f1cd6bd0c53d788a5dc44a1fefa676e (patch) | |
| tree | 0984fd581082c27cfbfbb7f94d5751b0e6fd2741 /src/engine/SCons/Scanner | |
| parent | 75ac32ac8e32076e25b72a19eb56340cc585fa4e (diff) | |
| download | SCons-22d352500f1cd6bd0c53d788a5dc44a1fefa676e.zip SCons-22d352500f1cd6bd0c53d788a5dc44a1fefa676e.tar.gz SCons-22d352500f1cd6bd0c53d788a5dc44a1fefa676e.tar.bz2 | |
Move 2.0 changes collected in branches/pending back to trunk for further
development. Note that this set of changes is NOT backward-compatible;
the trunk no longer works with Python 1.5.2, 2.0, or 2.1.
Diffstat (limited to 'src/engine/SCons/Scanner')
| -rw-r--r-- | src/engine/SCons/Scanner/C.py | 2 | ||||
| -rw-r--r-- | src/engine/SCons/Scanner/CTests.py | 8 | ||||
| -rw-r--r-- | src/engine/SCons/Scanner/D.py | 3 | ||||
| -rw-r--r-- | src/engine/SCons/Scanner/Dir.py | 13 | ||||
| -rw-r--r-- | src/engine/SCons/Scanner/DirTests.py | 11 | ||||
| -rw-r--r-- | src/engine/SCons/Scanner/Fortran.py | 10 | ||||
| -rw-r--r-- | src/engine/SCons/Scanner/FortranTests.py | 10 | ||||
| -rw-r--r-- | src/engine/SCons/Scanner/IDLTests.py | 10 | ||||
| -rw-r--r-- | src/engine/SCons/Scanner/LaTeX.py | 17 | ||||
| -rw-r--r-- | src/engine/SCons/Scanner/LaTeXTests.py | 7 | ||||
| -rw-r--r-- | src/engine/SCons/Scanner/Prog.py | 6 | ||||
| -rw-r--r-- | src/engine/SCons/Scanner/ProgTests.py | 35 | ||||
| -rw-r--r-- | src/engine/SCons/Scanner/RCTests.py | 8 | ||||
| -rw-r--r-- | src/engine/SCons/Scanner/ScannerTests.py | 9 | ||||
| -rw-r--r-- | src/engine/SCons/Scanner/__init__.py | 19 |
15 files changed, 81 insertions, 87 deletions
diff --git a/src/engine/SCons/Scanner/C.py b/src/engine/SCons/Scanner/C.py index 622ac67..fd8d2f2 100644 --- a/src/engine/SCons/Scanner/C.py +++ b/src/engine/SCons/Scanner/C.py @@ -44,7 +44,7 @@ class SConsCPPScanner(SCons.cpp.PreProcessor): missing. """ def __init__(self, *args, **kw): - apply(SCons.cpp.PreProcessor.__init__, (self,)+args, kw) + SCons.cpp.PreProcessor.__init__(self, *args, **kw) self.missing = [] def initialize_result(self, fname): self.result = SCons.Util.UniqueList([fname]) diff --git a/src/engine/SCons/Scanner/CTests.py b/src/engine/SCons/Scanner/CTests.py index a62f4c1..e92af24 100644 --- a/src/engine/SCons/Scanner/CTests.py +++ b/src/engine/SCons/Scanner/CTests.py @@ -192,7 +192,7 @@ class DummyEnvironment(UserDict.UserDict): def subst_path(self, path, target=None, source=None, conv=None): if type(path) != type([]): path = [path] - return map(self.subst, path) + return list(map(self.subst, path)) def get_calculator(self): return None @@ -213,8 +213,8 @@ else: def deps_match(self, deps, headers): global my_normpath - scanned = map(my_normpath, map(str, deps)) - expect = map(my_normpath, headers) + scanned = list(map(my_normpath, list(map(str, deps)))) + expect = list(map(my_normpath, headers)) self.failUnless(scanned == expect, "expect %s != scanned %s" % (expect, scanned)) # define some tests: @@ -310,7 +310,7 @@ class CScannerTestCase8(unittest.TestCase): env.fs.chdir(env.Dir('')) path = s.path(env, dir) deps2 = s(env.File('#fa.cpp'), env, path) - headers1 = map(test.workpath, ['include/fa.h', 'include/fb.h']) + headers1 = list(map(test.workpath, ['include/fa.h', 'include/fb.h'])) headers2 = ['include/fa.h', 'include/fb.h'] deps_match(self, deps1, headers1) deps_match(self, deps2, headers2) diff --git a/src/engine/SCons/Scanner/D.py b/src/engine/SCons/Scanner/D.py index 4134337..9402ed1 100644 --- a/src/engine/SCons/Scanner/D.py +++ b/src/engine/SCons/Scanner/D.py @@ -33,7 +33,6 @@ Coded by Andy Friesen __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" import re -import string import SCons.Scanner @@ -54,7 +53,7 @@ class D(SCons.Scanner.Classic): def find_include(self, include, source_dir, path): # translate dots (package separators) to slashes - inc = string.replace(include, '.', '/') + inc = include.replace('.', '/') i = SCons.Node.FS.find_file(inc + '.d', (source_dir,) + path) if i is None: diff --git a/src/engine/SCons/Scanner/Dir.py b/src/engine/SCons/Scanner/Dir.py index a623c99..6b7f05b 100644 --- a/src/engine/SCons/Scanner/Dir.py +++ b/src/engine/SCons/Scanner/Dir.py @@ -20,6 +20,7 @@ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # +from __future__ import generators ### KEEP FOR COMPATIBILITY FIXERS __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" @@ -28,21 +29,21 @@ import SCons.Scanner def only_dirs(nodes): is_Dir = lambda n: isinstance(n.disambiguate(), SCons.Node.FS.Dir) - return filter(is_Dir, nodes) + return list(filter(is_Dir, nodes)) def DirScanner(**kw): """Return a prototype Scanner instance for scanning directories for on-disk files""" kw['node_factory'] = SCons.Node.FS.Entry kw['recursive'] = only_dirs - return apply(SCons.Scanner.Base, (scan_on_disk, "DirScanner"), kw) + return SCons.Scanner.Base(scan_on_disk, "DirScanner", **kw) def DirEntryScanner(**kw): """Return a prototype Scanner instance for "scanning" directory Nodes for their in-memory entries""" kw['node_factory'] = SCons.Node.FS.Entry kw['recursive'] = None - return apply(SCons.Scanner.Base, (scan_in_memory, "DirEntryScanner"), kw) + return SCons.Scanner.Base(scan_in_memory, "DirEntryScanner", **kw) skip_entry = {} @@ -67,7 +68,7 @@ for skip in skip_entry_list: skip_entry[skip] = 1 skip_entry[SCons.Node.FS._my_normcase(skip)] = 1 -do_not_scan = lambda k: not skip_entry.has_key(k) +do_not_scan = lambda k: k not in skip_entry def scan_on_disk(node, env, path=()): """ @@ -100,9 +101,9 @@ def scan_in_memory(node, env, path=()): # mixed Node types (Dirs and Files, for example) has a Dir as # the first entry. return [] - entry_list = filter(do_not_scan, entries.keys()) + entry_list = list(filter(do_not_scan, entries.keys())) entry_list.sort() - return map(lambda n, e=entries: e[n], entry_list) + return [entries[n] for n in entry_list] # Local Variables: # tab-width:4 diff --git a/src/engine/SCons/Scanner/DirTests.py b/src/engine/SCons/Scanner/DirTests.py index 5d59bd5..0ad1cfe 100644 --- a/src/engine/SCons/Scanner/DirTests.py +++ b/src/engine/SCons/Scanner/DirTests.py @@ -24,7 +24,6 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" import os.path -import string import sys import types import unittest @@ -91,7 +90,7 @@ class DirScannerTestCase(DirScannerTestBase): os.path.join('dir', 'sub'), ] deps = s(env.Dir('dir'), env, ()) - sss = map(str, deps) + sss = list(map(str, deps)) assert sss == expect, sss expect = [ @@ -99,7 +98,7 @@ class DirScannerTestCase(DirScannerTestBase): os.path.join('dir', 'sub', 'f4'), ] deps = s(env.Dir('dir/sub'), env, ()) - sss = map(str, deps) + sss = list(map(str, deps)) assert sss == expect, sss class DirEntryScannerTestCase(DirScannerTestBase): @@ -109,16 +108,16 @@ class DirEntryScannerTestCase(DirScannerTestBase): s = SCons.Scanner.Dir.DirEntryScanner() deps = s(env.Dir('dir'), env, ()) - sss = map(str, deps) + sss = list(map(str, deps)) assert sss == [], sss deps = s(env.Dir('dir/sub'), env, ()) - sss = map(str, deps) + sss = list(map(str, deps)) assert sss == [], sss # Make sure we don't blow up if handed a non-Dir node. deps = s(env.File('dir/f1'), env, ()) - sss = map(str, deps) + sss = list(map(str, deps)) assert sss == [], sss def suite(): diff --git a/src/engine/SCons/Scanner/Fortran.py b/src/engine/SCons/Scanner/Fortran.py index 2aed653..fd6a014 100644 --- a/src/engine/SCons/Scanner/Fortran.py +++ b/src/engine/SCons/Scanner/Fortran.py @@ -26,11 +26,11 @@ This module implements the dependency scanner for Fortran code. # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # +from __future__ import generators ### KEEP FOR COMPATIBILITY FIXERS __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" import re -import string import SCons.Node import SCons.Node.FS @@ -75,7 +75,7 @@ class F90Scanner(SCons.Scanner.Classic): kw['skeys'] = suffixes kw['name'] = name - apply(SCons.Scanner.Current.__init__, (self,) + args, kw) + SCons.Scanner.Current.__init__(self, *args, **kw) def scan(self, node, env, path=()): @@ -94,12 +94,12 @@ class F90Scanner(SCons.Scanner.Classic): d = {} for m in defmodules: d[m] = 1 - modules = filter(lambda m, d=d: not d.has_key(m), modules) + modules = [m for m in modules if m not in d] #modules = self.undefinedModules(modules, defmodules) # Convert module name to a .mod filename suffix = env.subst('$FORTRANMODSUFFIX') - modules = map(lambda x, s=suffix: string.lower(x) + s, modules) + modules = [x.lower() + suffix for x in modules] # Remove unique items from the list mods_and_includes = SCons.Util.unique(includes+modules) node.includes = mods_and_includes @@ -124,7 +124,7 @@ class F90Scanner(SCons.Scanner.Classic): nodes.append((sortkey, n)) nodes.sort() - nodes = map(lambda pair: pair[1], nodes) + nodes = [pair[1] for pair in nodes] return nodes def FortranScan(path_variable="FORTRANPATH"): diff --git a/src/engine/SCons/Scanner/FortranTests.py b/src/engine/SCons/Scanner/FortranTests.py index 570b565..0380e87 100644 --- a/src/engine/SCons/Scanner/FortranTests.py +++ b/src/engine/SCons/Scanner/FortranTests.py @@ -221,7 +221,7 @@ class DummyEnvironment: raise KeyError, "Dummy environment only has FORTRANPATH attribute." def has_key(self, key): - return self.Dictionary().has_key(key) + return key in self.Dictionary() def __getitem__(self,key): return self.Dictionary()[key] @@ -240,7 +240,7 @@ class DummyEnvironment: def subst_path(self, path, target=None, source=None, conv=None): if type(path) != type([]): path = [path] - return map(self.subst, path) + return list(map(self.subst, path)) def get_calculator(self): return None @@ -255,8 +255,8 @@ class DummyEnvironment: return self.fs.File(filename) def deps_match(self, deps, headers): - scanned = map(os.path.normpath, map(str, deps)) - expect = map(os.path.normpath, headers) + scanned = list(map(os.path.normpath, list(map(str, deps)))) + expect = list(map(os.path.normpath, headers)) self.failUnless(scanned == expect, "expect %s != scanned %s" % (expect, scanned)) # define some tests: @@ -382,7 +382,7 @@ class FortranScannerTestCase10(unittest.TestCase): env.fs.chdir(env.Dir('')) path = s.path(env, dir) deps2 = s(env.File('#fff4.f'), env, path) - headers1 = map(test.workpath, ['include/f4.f']) + headers1 = list(map(test.workpath, ['include/f4.f'])) headers2 = ['include/f4.f'] deps_match(self, deps1, headers1) deps_match(self, deps2, headers2) diff --git a/src/engine/SCons/Scanner/IDLTests.py b/src/engine/SCons/Scanner/IDLTests.py index a454b31..26b3956 100644 --- a/src/engine/SCons/Scanner/IDLTests.py +++ b/src/engine/SCons/Scanner/IDLTests.py @@ -205,10 +205,10 @@ class DummyEnvironment: def subst_path(self, path, target=None, source=None, conv=None): if type(path) != type([]): path = [path] - return map(self.subst, path) + return list(map(self.subst, path)) def has_key(self, key): - return self.Dictionary().has_key(key) + return key in self.Dictionary() def __getitem__(self,key): return self.Dictionary()[key] @@ -238,8 +238,8 @@ if os.path.normcase('foo') == os.path.normcase('FOO'): my_normpath = os.path.normcase def deps_match(self, deps, headers): - scanned = map(my_normpath, map(str, deps)) - expect = map(my_normpath, headers) + scanned = list(map(my_normpath, list(map(str, deps)))) + expect = list(map(my_normpath, headers)) self.failUnless(scanned == expect, "expect %s != scanned %s" % (expect, scanned)) # define some tests: @@ -329,7 +329,7 @@ class IDLScannerTestCase7(unittest.TestCase): env.fs.chdir(env.Dir('')) path = s.path(env, dir) deps2 = s(env.File('#t4.idl'), env, path) - headers1 = map(test.workpath, ['include/fa.idl', 'include/fb.idl']) + headers1 = list(map(test.workpath, ['include/fa.idl', 'include/fb.idl'])) headers2 = ['include/fa.idl', 'include/fb.idl'] deps_match(self, deps1, headers1) deps_match(self, deps2, headers2) diff --git a/src/engine/SCons/Scanner/LaTeX.py b/src/engine/SCons/Scanner/LaTeX.py index 17000a2..f3085d1 100644 --- a/src/engine/SCons/Scanner/LaTeX.py +++ b/src/engine/SCons/Scanner/LaTeX.py @@ -30,7 +30,6 @@ This module implements the dependency scanner for LaTeX code. __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" import os.path -import string import re import SCons.Scanner @@ -60,11 +59,11 @@ def modify_env_var(env, var, abspath): if SCons.Util.is_List(env[var]): #TODO(1.5) #env.PrependENVPath(var, [os.path.abspath(str(p)) for p in env[var]]) - env.PrependENVPath(var, map(lambda p: os.path.abspath(str(p)), env[var])) + env.PrependENVPath(var, [os.path.abspath(str(p)) for p in env[var]]) else: # Split at os.pathsep to convert into absolute path #TODO(1.5) env.PrependENVPath(var, [os.path.abspath(p) for p in str(env[var]).split(os.pathsep)]) - env.PrependENVPath(var, map(lambda p: os.path.abspath(p), string.split(str(env[var]), os.pathsep))) + env.PrependENVPath(var, [os.path.abspath(p) for p in str(env[var]).split(os.pathsep)]) except KeyError: pass @@ -75,7 +74,7 @@ def modify_env_var(env, var, abspath): if SCons.Util.is_List(env['ENV'][var]): # TODO(1.5) #env['ENV'][var] = os.pathsep.join(env['ENV'][var]) - env['ENV'][var] = string.join(env['ENV'][var], os.pathsep) + env['ENV'][var] = os.pathsep.join(env['ENV'][var]) # Append the trailing os.pathsep character here to catch the case with no env[var] env['ENV'][var] = env['ENV'][var] + os.pathsep @@ -231,7 +230,7 @@ class LaTeX(SCons.Scanner.Base): kw['scan_check'] = LaTeXScanCheck(suffixes) kw['name'] = name - apply(SCons.Scanner.Base.__init__, (self,) + args, kw) + SCons.Scanner.Base.__init__(self, *args, **kw) def _latex_names(self, include): filename = include[1] @@ -253,10 +252,10 @@ class LaTeX(SCons.Scanner.Base): base, ext = os.path.splitext( filename ) if ext == "": #TODO(1.5) return [filename + e for e in self.graphics_extensions] - #return map(lambda e, f=filename: f+e, self.graphics_extensions + TexGraphics) + #return map(lambda e: filename+e, self.graphics_extensions + TexGraphics) # use the line above to find dependency for PDF builder when only .eps figure is present # Since it will be found if the user tell scons how to make the pdf figure leave it out for now. - return map(lambda e, f=filename: f+e, self.graphics_extensions) + return [filename+e for e in self.graphics_extensions] return [filename] def sort_key(self, include): @@ -303,7 +302,7 @@ class LaTeX(SCons.Scanner.Base): split_includes = [] for include in includes: inc_type = noopt_cre.sub('', include[0]) - inc_list = string.split(include[1],',') + inc_list = include[1].split(',') for j in range(len(inc_list)): split_includes.append( (inc_type, inc_list[j]) ) # @@ -368,7 +367,7 @@ class LaTeX(SCons.Scanner.Base): # nodes.sort() - nodes = map(lambda pair: pair[1], nodes) + nodes = [pair[1] for pair in nodes] return nodes # Local Variables: diff --git a/src/engine/SCons/Scanner/LaTeXTests.py b/src/engine/SCons/Scanner/LaTeXTests.py index e87a1aa..ac978cf 100644 --- a/src/engine/SCons/Scanner/LaTeXTests.py +++ b/src/engine/SCons/Scanner/LaTeXTests.py @@ -24,7 +24,6 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" import os.path -import string import sys import types import unittest @@ -88,7 +87,7 @@ class DummyEnvironment(UserDict.UserDict): def subst_path(self, path, target=None, source=None, conv=None): if type(path) != type([]): path = [path] - return map(self.subst, path) + return list(map(self.subst, path)) def get_calculator(self): return None @@ -109,8 +108,8 @@ else: def deps_match(self, deps, headers): global my_normpath - scanned = map(my_normpath, map(str, deps)) - expect = map(my_normpath, headers) + scanned = list(map(my_normpath, list(map(str, deps)))) + expect = list(map(my_normpath, headers)) self.failUnless(scanned == expect, "expect %s != scanned %s" % (expect, scanned)) diff --git a/src/engine/SCons/Scanner/Prog.py b/src/engine/SCons/Scanner/Prog.py index bd7bffe..49e93a5 100644 --- a/src/engine/SCons/Scanner/Prog.py +++ b/src/engine/SCons/Scanner/Prog.py @@ -23,8 +23,6 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" -import string - import SCons.Node import SCons.Node.FS import SCons.Scanner @@ -37,7 +35,7 @@ def ProgramScanner(**kw): """Return a prototype Scanner instance for scanning executable files for static-lib dependencies""" kw['path_function'] = SCons.Scanner.FindPathDirs('LIBPATH') - ps = apply(SCons.Scanner.Base, [scan, "ProgramScanner"], kw) + ps = SCons.Scanner.Base(scan, "ProgramScanner", **kw) return ps def scan(node, env, libpath = ()): @@ -53,7 +51,7 @@ def scan(node, env, libpath = ()): # There are no LIBS in this environment, so just return a null list: return [] if SCons.Util.is_String(libs): - libs = string.split(libs) + libs = libs.split() else: libs = SCons.Util.flatten(libs) diff --git a/src/engine/SCons/Scanner/ProgTests.py b/src/engine/SCons/Scanner/ProgTests.py index 7eaafcc..ee62ca7 100644 --- a/src/engine/SCons/Scanner/ProgTests.py +++ b/src/engine/SCons/Scanner/ProgTests.py @@ -24,7 +24,6 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" import os.path -import string import sys import types import unittest @@ -57,10 +56,10 @@ class DummyEnvironment: elif len(args) == 1: return self._dict[args[0]] else: - return map(lambda x, s=self: s._dict[x], args) + return [self._dict[x] for x in args] def has_key(self, key): - return self.Dictionary().has_key(key) + return key in self.Dictionary() def __getitem__(self,key): return self.Dictionary()[key] @@ -82,7 +81,7 @@ class DummyEnvironment: def subst_path(self, path, target=None, source=None, conv=None): if type(path) != type([]): path = [path] - return map(self.subst, path) + return list(map(self.subst, path)) def get_factory(self, factory): return factory or self.fs.File @@ -102,10 +101,10 @@ class DummyNode: return self.name def deps_match(deps, libs): - deps=map(str, deps) + deps=list(map(str, deps)) deps.sort() libs.sort() - return map(os.path.normpath, deps) == map(os.path.normpath, libs) + return list(map(os.path.normpath, deps)) == list(map(os.path.normpath, libs)) # define some tests: @@ -116,14 +115,14 @@ class ProgramScannerTestCase1(unittest.TestCase): s = SCons.Scanner.Prog.ProgramScanner() path = s.path(env) deps = s(DummyNode('dummy'), env, path) - assert deps_match(deps, ['l1.lib']), map(str, deps) + assert deps_match(deps, ['l1.lib']), list(map(str, deps)) env = DummyEnvironment(LIBPATH=[ test.workpath("") ], LIBS='l1') s = SCons.Scanner.Prog.ProgramScanner() path = s.path(env) deps = s(DummyNode('dummy'), env, path) - assert deps_match(deps, ['l1.lib']), map(str, deps) + assert deps_match(deps, ['l1.lib']), list(map(str, deps)) f1 = env.fs.File(test.workpath('f1')) env = DummyEnvironment(LIBPATH=[ test.workpath("") ], @@ -144,23 +143,23 @@ class ProgramScannerTestCase1(unittest.TestCase): class ProgramScannerTestCase2(unittest.TestCase): def runTest(self): - env = DummyEnvironment(LIBPATH=map(test.workpath, - ["", "d1", "d1/d2" ]), + env = DummyEnvironment(LIBPATH=list(map(test.workpath, + ["", "d1", "d1/d2" ])), LIBS=[ 'l1', 'l2', 'l3' ]) s = SCons.Scanner.Prog.ProgramScanner() path = s.path(env) deps = s(DummyNode('dummy'), env, path) - assert deps_match(deps, ['l1.lib', 'd1/l2.lib', 'd1/d2/l3.lib' ]), map(str, deps) + assert deps_match(deps, ['l1.lib', 'd1/l2.lib', 'd1/d2/l3.lib' ]), list(map(str, deps)) class ProgramScannerTestCase3(unittest.TestCase): def runTest(self): env = DummyEnvironment(LIBPATH=[test.workpath("d1/d2"), test.workpath("d1")], - LIBS=string.split('l2 l3')) + LIBS='l2 l3'.split()) s = SCons.Scanner.Prog.ProgramScanner() path = s.path(env) deps = s(DummyNode('dummy'), env, path) - assert deps_match(deps, ['d1/l2.lib', 'd1/d2/l3.lib']), map(str, deps) + assert deps_match(deps, ['d1/l2.lib', 'd1/d2/l3.lib']), list(map(str, deps)) class ProgramScannerTestCase5(unittest.TestCase): def runTest(self): @@ -171,11 +170,11 @@ class ProgramScannerTestCase5(unittest.TestCase): else: return arg env = SubstEnvironment(LIBPATH=[ "$blah" ], - LIBS=string.split('l2 l3')) + LIBS='l2 l3'.split()) s = SCons.Scanner.Prog.ProgramScanner() path = s.path(env) deps = s(DummyNode('dummy'), env, path) - assert deps_match(deps, [ 'd1/l2.lib' ]), map(str, deps) + assert deps_match(deps, [ 'd1/l2.lib' ]), list(map(str, deps)) class ProgramScannerTestCase6(unittest.TestCase): def runTest(self): @@ -186,7 +185,7 @@ class ProgramScannerTestCase6(unittest.TestCase): s = SCons.Scanner.Prog.ProgramScanner() path = s.path(env) deps = s(DummyNode('dummy'), env, path) - assert deps_match(deps, ['dir/libfoo.a', 'dir/sub/libbar.a', 'dir/libxyz.other']), map(str, deps) + assert deps_match(deps, ['dir/libfoo.a', 'dir/sub/libbar.a', 'dir/libxyz.other']), list(map(str, deps)) class ProgramScannerTestCase7(unittest.TestCase): def runTest(self): @@ -199,7 +198,7 @@ class ProgramScannerTestCase7(unittest.TestCase): s = SCons.Scanner.Prog.ProgramScanner() path = s.path(env) deps = s(DummyNode('dummy'), env, path) - assert deps_match(deps, ['dir/libfoo.a', 'dir/sub/libbar.a', 'dir/libxyz.other']), map(str, deps) + assert deps_match(deps, ['dir/libfoo.a', 'dir/sub/libbar.a', 'dir/libxyz.other']), list(map(str, deps)) class ProgramScannerTestCase8(unittest.TestCase): def runTest(self): @@ -239,7 +238,7 @@ def suite(): def runTest(self): env = DummyEnvironment(LIBPATH=[test.workpath("d1/d2"), test.workpath("d1")], - LIBS=string.split(u'l2 l3')) + LIBS=u'l2 l3'.split()) s = SCons.Scanner.Prog.ProgramScanner() path = s.path(env) deps = s(DummyNode('dummy'), env, path) diff --git a/src/engine/SCons/Scanner/RCTests.py b/src/engine/SCons/Scanner/RCTests.py index bf1048d..a20c919 100644 --- a/src/engine/SCons/Scanner/RCTests.py +++ b/src/engine/SCons/Scanner/RCTests.py @@ -88,10 +88,10 @@ class DummyEnvironment(UserDict.UserDict): def subst_path(self, path, target=None, source=None, conv=None): if type(path) != type([]): path = [path] - return map(self.subst, path) + return list(map(self.subst, path)) def has_key(self, key): - return self.Dictionary().has_key(key) + return key in self.Dictionary() def get_calculator(self): return None @@ -112,8 +112,8 @@ if os.path.normcase('foo') == os.path.normcase('FOO'): my_normpath = os.path.normcase def deps_match(self, deps, headers): - scanned = map(my_normpath, map(str, deps)) - expect = map(my_normpath, headers) + scanned = list(map(my_normpath, list(map(str, deps)))) + expect = list(map(my_normpath, headers)) scanned.sort() expect.sort() self.failUnless(scanned == expect, "expect %s != scanned %s" % (expect, scanned)) diff --git a/src/engine/SCons/Scanner/ScannerTests.py b/src/engine/SCons/Scanner/ScannerTests.py index 518e0ed..d89fb14 100644 --- a/src/engine/SCons/Scanner/ScannerTests.py +++ b/src/engine/SCons/Scanner/ScannerTests.py @@ -20,6 +20,7 @@ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # +from __future__ import generators ### KEEP FOR COMPATIBILITY FIXERS __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" @@ -49,7 +50,7 @@ class DummyEnvironment(UserDict.UserDict): def subst_path(self, path, target=None, source=None, conv=None): if type(path) != type([]): path = [path] - return map(self.subst, path) + return list(map(self.subst, path)) def get_factory(self, factory): return factory or self.fs.File @@ -127,7 +128,7 @@ class BaseTestCase(unittest.TestCase): self.deps = deps path = scanner.path(env) scanned = scanner(filename, env, path) - scanned_strs = map(lambda x: str(x), scanned) + scanned_strs = [str(x) for x in scanned] self.failUnless(self.filename == filename, "the filename was passed incorrectly") self.failUnless(self.env == env, "the environment was passed incorrectly") @@ -280,7 +281,7 @@ class BaseTestCase(unittest.TestCase): "recursive = 1 didn't return all nodes: %s" % n) def odd_only(nodes): - return filter(lambda n: n % 2, nodes) + return [n for n in nodes if n % 2] s = SCons.Scanner.Base(function = self.func, recursive = odd_only) n = s.recurse_nodes(nodes) self.failUnless(n == [1, 3], @@ -595,7 +596,7 @@ def suite(): ] for tclass in tclasses: names = unittest.getTestCaseNames(tclass, 'test_') - suite.addTests(map(tclass, names)) + suite.addTests(list(map(tclass, names))) return suite if __name__ == "__main__": diff --git a/src/engine/SCons/Scanner/__init__.py b/src/engine/SCons/Scanner/__init__.py index da82060..be08256 100644 --- a/src/engine/SCons/Scanner/__init__.py +++ b/src/engine/SCons/Scanner/__init__.py @@ -30,7 +30,6 @@ The Scanner package for the SCons software construction utility. __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" import re -import string import SCons.Node.FS import SCons.Util @@ -56,9 +55,9 @@ def Scanner(function, *args, **kw): patterned on SCons code. """ if SCons.Util.is_Dict(function): - return apply(Selector, (function,) + args, kw) + return Selector(function, *args, **kw) else: - return apply(Base, (function,) + args, kw) + return Base(function, *args, **kw) @@ -218,7 +217,7 @@ class Base: nodes = [] for l in list: if self.node_class and not isinstance(l, self.node_class): - l = apply(node_factory, (l,), kw) + l = node_factory(l, **kw) nodes.append(l) return nodes @@ -280,7 +279,7 @@ class Selector(Base): for custom modules that may be out there.) """ def __init__(self, dict, *args, **kw): - apply(Base.__init__, (self, None,)+args, kw) + Base.__init__(self, None, *args, **kw) self.dict = dict self.skeys = dict.keys() @@ -309,7 +308,7 @@ class Current(Base): def current_check(node, env): return not node.has_builder() or node.is_up_to_date() kw['scan_check'] = current_check - apply(Base.__init__, (self,) + args, kw) + Base.__init__(self, *args, **kw) class Classic(Current): """ @@ -339,7 +338,7 @@ class Classic(Current): kw['skeys'] = suffixes kw['name'] = name - apply(Current.__init__, (self,) + args, kw) + Current.__init__(self, *args, **kw) def find_include(self, include, source_dir, path): n = SCons.Node.FS.find_file(include, (source_dir,) + tuple(path)) @@ -360,7 +359,7 @@ class Classic(Current): includes = self.find_include_names (node) # Intern the names of the include files. Saves some memory # if the same header is included many times. - node.includes = map(SCons.Util.silent_intern, includes) + node.includes = list(map(SCons.Util.silent_intern, includes)) # This is a hand-coded DSU (decorate-sort-undecorate, or # Schwartzian transform) pattern. The sort key is the raw name @@ -383,7 +382,7 @@ class Classic(Current): nodes.append((sortkey, n)) nodes.sort() - nodes = map(lambda pair: pair[1], nodes) + nodes = [pair[1] for pair in nodes] return nodes class ClassicCPP(Classic): @@ -408,7 +407,7 @@ class ClassicCPP(Classic): return n, i def sort_key(self, include): - return SCons.Node.FS._my_normcase(string.join(include)) + return SCons.Node.FS._my_normcase(' '.join(include)) # Local Variables: # tab-width:4 |
