diff options
Diffstat (limited to 'src/engine/SCons')
-rw-r--r-- | src/engine/SCons/Util.py | 27 | ||||
-rw-r--r-- | src/engine/SCons/UtilTests.py | 1 | ||||
-rw-r--r-- | src/engine/SCons/compat/__init__.py | 13 | ||||
-rw-r--r-- | src/engine/SCons/compat/_scons_collections.py | 19 |
4 files changed, 22 insertions, 38 deletions
diff --git a/src/engine/SCons/Util.py b/src/engine/SCons/Util.py index 738f2b5..cc6c95e 100644 --- a/src/engine/SCons/Util.py +++ b/src/engine/SCons/Util.py @@ -1,9 +1,7 @@ """SCons.Util Various utility functions go here. - """ - # # __COPYRIGHT__ # @@ -25,27 +23,22 @@ Various utility functions go here. # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -# __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" -import SCons.compat - -import copy import os -import re import sys +import copy +import re import types from collections import UserDict, UserList, UserString # Don't "from types import ..." these because we need to get at the # types module later to look for UnicodeType. -DictType = dict InstanceType = types.InstanceType -ListType = list -StringType = str -TupleType = tuple +MethodType = types.MethodType +FunctionType = types.FunctionType try: unicode except NameError: UnicodeType = None else: UnicodeType = unicode @@ -1377,20 +1370,20 @@ def AddMethod(obj, function, name=None): if hasattr(obj, '__class__') and obj.__class__ is not type: # "obj" is an instance, so it gets a bound method. - setattr(obj, name, types.MethodType(function, obj, obj.__class__)) + setattr(obj, name, MethodType(function, obj, obj.__class__)) else: # "obj" is a class, so it gets an unbound method. - setattr(obj, name, types.MethodType(function, None, obj)) + setattr(obj, name, MethodType(function, None, obj)) def RenameFunction(function, name): """ Returns a function identical to the specified function, but with the specified name. """ - return types.FunctionType(function.func_code, - function.func_globals, - name, - function.func_defaults) + return FunctionType(function.func_code, + function.func_globals, + name, + function.func_defaults) md5 = False diff --git a/src/engine/SCons/UtilTests.py b/src/engine/SCons/UtilTests.py index 2a89509..3f65456 100644 --- a/src/engine/SCons/UtilTests.py +++ b/src/engine/SCons/UtilTests.py @@ -207,6 +207,7 @@ class UtilTestCase(unittest.TestCase): def test_is_Dict(self): assert is_Dict({}) assert is_Dict(UserDict()) + assert is_Dict(os.environ) try: class mydict(dict): pass diff --git a/src/engine/SCons/compat/__init__.py b/src/engine/SCons/compat/__init__.py index bfa8384..c870fbc 100644 --- a/src/engine/SCons/compat/__init__.py +++ b/src/engine/SCons/compat/__init__.py @@ -121,21 +121,20 @@ else: try: collections.UserDict except AttributeError: - _UserDict = imp.load_module('UserDict', *imp.find_module('UserDict')) - collections.UserDict = _UserDict.UserDict + exec('from UserDict import UserDict as _UserDict') + collections.UserDict = _UserDict del _UserDict try: collections.UserList except AttributeError: - _UserList = imp.load_module('UserList', *imp.find_module('UserList')) - collections.UserList = _UserList.UserList + exec('from UserList import UserList as _UserList') + collections.UserList = _UserList del _UserList try: collections.UserString except AttributeError: - _UserString = imp.load_module('UserString', - *imp.find_module('UserString')) - collections.UserString = _UserString.UserString + exec('from UserString import UserString as _UserString') + collections.UserString = _UserString del _UserString diff --git a/src/engine/SCons/compat/_scons_collections.py b/src/engine/SCons/compat/_scons_collections.py index 089f0aa..1591b2e 100644 --- a/src/engine/SCons/compat/_scons_collections.py +++ b/src/engine/SCons/compat/_scons_collections.py @@ -32,20 +32,11 @@ our purposes. __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" -# Use the "imp" module to protect the imports below from fixers. -import imp - -_UserDict = imp.load_module('UserDict', *imp.find_module('UserDict')) -_UserList = imp.load_module('UserList', *imp.find_module('UserList')) -_UserString = imp.load_module('UserString', *imp.find_module('UserString')) - -UserDict = _UserDict.UserDict -UserList = _UserList.UserList -UserString = _UserString.UserString - -del _UserDict -del _UserList -del _UserString +# Use exec to hide old names from fixers. +exec("""if True: + from UserDict import UserDict + from UserList import UserList + from UserString import UserString""") # Local Variables: # tab-width:4 |