summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Noel <GregNoel@tigris.org>2010-04-16 22:01:00 (GMT)
committerGreg Noel <GregNoel@tigris.org>2010-04-16 22:01:00 (GMT)
commite4b439f4265613556de0124593ac86898d6f52c7 (patch)
tree5fb5a4bdb919e42f85be12114a204659bfb3fef4
parentded0f52f11f5c97959ee8070a2687ecb14e69e3f (diff)
downloadSCons-e4b439f4265613556de0124593ac86898d6f52c7.zip
SCons-e4b439f4265613556de0124593ac86898d6f52c7.tar.gz
SCons-e4b439f4265613556de0124593ac86898d6f52c7.tar.bz2
http://scons.tigris.org/issues/show_bug.cgi?id=2345
Quiet the rest of the 'callable' warnings and fix the rest of the 'cmp argument' warnings.
-rw-r--r--src/engine/SCons/Tool/msvs.py16
-rw-r--r--src/script/scons-time.py15
-rw-r--r--test/GetBuildFailures/option-k.py3
-rw-r--r--test/Glob/source.py2
4 files changed, 23 insertions, 13 deletions
diff --git a/src/engine/SCons/Tool/msvs.py b/src/engine/SCons/Tool/msvs.py
index 304c35e..e932351 100644
--- a/src/engine/SCons/Tool/msvs.py
+++ b/src/engine/SCons/Tool/msvs.py
@@ -290,7 +290,9 @@ class _DSPGenerator:
self.sources[t[0]].append(self.env[t[1]])
for n in sourcenames:
- self.sources[n].sort(lambda a, b: cmp(a.lower(), b.lower()))
+ #TODO 2.4: compat layer supports sorted(key=) but not sort(key=)
+ #TODO 2.4: self.sources[n].sort(key=lambda a: a.lower())
+ self.sources[n] = sorted(self.sources[n], key=lambda a: a.lower())
def AddConfig(self, variant, buildtarget, outdir, runfile, cmdargs, dspfile=dspfile):
config = Config()
@@ -439,9 +441,7 @@ class _GenerateV6DSP(_DSPGenerator):
'Resource Files': 'r|rc|ico|cur|bmp|dlg|rc2|rct|bin|cnt|rtf|gif|jpg|jpeg|jpe',
'Other Files': ''}
- cats = categories.keys()
- cats.sort(lambda a, b: cmp(a.lower(), b.lower()))
- for kind in cats:
+ for kind in sorted(categories.keys(), key=lambda a: a.lower()):
if not self.sources[kind]:
continue # skip empty groups
@@ -695,8 +695,7 @@ class _GenerateV7DSP(_DSPGenerator):
self.file.write(pdata + '-->\n')
def printSources(self, hierarchy, commonprefix):
- sorteditems = hierarchy.items()
- sorteditems.sort(lambda a, b: cmp(a[0].lower(), b[0].lower()))
+ sorteditems = sorted(hierarchy.items(), key=lambda a: a[0].lower())
# First folders, then files
for key, value in sorteditems:
@@ -726,9 +725,8 @@ class _GenerateV7DSP(_DSPGenerator):
self.file.write('\t<Files>\n')
- cats = categories.keys()
- cats.sort(lambda a, b: cmp(a.lower(), b.lower()))
- cats = [k for k in cats if self.sources[k]]
+ cats = sorted([k for k in categories.keys() if self.sources[k]],
+ key=lambda a: a.lower())
for kind in cats:
if len(cats) > 1:
self.file.write('\t\t<Filter\n'
diff --git a/src/script/scons-time.py b/src/script/scons-time.py
index fa04d37..d85dc8e 100644
--- a/src/script/scons-time.py
+++ b/src/script/scons-time.py
@@ -38,7 +38,6 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
import getopt
import glob
import os
-import os.path
import re
import shutil
import sys
@@ -82,6 +81,20 @@ except NameError:
result.reverse()
return result
+if os.environ.get('SCONS_HORRIBLE_REGRESSION_TEST_HACK') is not None:
+ # We can't apply the 'callable' fixer until the floor is 2.6, but the
+ # '-3' option to Python 2.6 and 2.7 generates almost ten thousand
+ # warnings. This hack allows us to run regression tests with the '-3'
+ # option by replacing the callable() built-in function with a hack
+ # that performs the same function but doesn't generate the warning.
+ # Note that this hack is ONLY intended to be used for regression
+ # testing, and should NEVER be used for real runs.
+ from types import ClassType
+ def callable(obj):
+ if hasattr(obj, '__call__'): return True
+ if isinstance(obj, (ClassType, type)): return True
+ return False
+
def make_temp_file(**kw):
try:
result = tempfile.mktemp(**kw)
diff --git a/test/GetBuildFailures/option-k.py b/test/GetBuildFailures/option-k.py
index 53b57ff..300f69f 100644
--- a/test/GetBuildFailures/option-k.py
+++ b/test/GetBuildFailures/option-k.py
@@ -64,8 +64,7 @@ Command('f6', 'f6.in', r'@%(_python_)s mypass.py f5 - $TARGET $SOURCE')
def print_build_failures():
from SCons.Script import GetBuildFailures
- for bf in sorted(GetBuildFailures(),
- cmp=lambda a,b: cmp(a.filename, b.filename)):
+ for bf in sorted(GetBuildFailures(), key=lambda a: a.filename):
print "%%s failed: %%s" %% (bf.node, bf.errstr)
try:
diff --git a/test/Glob/source.py b/test/Glob/source.py
index afa17f5..f1ea566 100644
--- a/test/Glob/source.py
+++ b/test/Glob/source.py
@@ -66,7 +66,7 @@ env.Concatenate('f.out', sorted(Glob('f[45].in', source=True),
test.write(['var2', 'SConscript'], """\
Import("env")
-f_in = sorted(Glob('f[67].in'), cmp=lambda a,b: cmp(a.name, b.name))
+f_in = sorted(Glob('f[67].in'), key=lambda a: a.name)
env.Concatenate('f.out', f_in)
""")