summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/compat
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2010-04-09 18:39:21 (GMT)
committerSteven Knight <knight@baldmt.com>2010-04-09 18:39:21 (GMT)
commit766675b428700a8f73e92f7e3de6d8d456fc2b99 (patch)
tree34ec773572713ff2f125ba74023b7466e6c4436a /src/engine/SCons/compat
parent608d04e42b0de175c29b806517d4a32a594fa493 (diff)
downloadSCons-766675b428700a8f73e92f7e3de6d8d456fc2b99.zip
SCons-766675b428700a8f73e92f7e3de6d8d456fc2b99.tar.gz
SCons-766675b428700a8f73e92f7e3de6d8d456fc2b99.tar.bz2
Issue 2331: For forward compatibility, use "import pickle" and have
the SCons.compat layer import cPickle as pickle when it's available.
Diffstat (limited to 'src/engine/SCons/compat')
-rw-r--r--src/engine/SCons/compat/__init__.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/engine/SCons/compat/__init__.py b/src/engine/SCons/compat/__init__.py
index 4553d21..f220c32 100644
--- a/src/engine/SCons/compat/__init__.py
+++ b/src/engine/SCons/compat/__init__.py
@@ -196,6 +196,20 @@ except AttributeError:
try:
# Use the "imp" module to protect the import from fixers.
import imp
+ cPickle = imp.load_module('cPickle', *imp.find_module('cPickle'))
+except ImportError, e:
+ # The "cPickle" module has already been eliminated in favor of
+ # having "import pickle" import the fast version when available.
+ pass
+else:
+ import sys
+ sys.modules['pickle'] = cPickle
+ del cPickle
+
+
+try:
+ # Use the "imp" module to protect the import from fixers.
+ import imp
cProfile = imp.load_module('cProfile', *imp.find_module('cProfile'))
except ImportError:
# The "cProfile" module has already been eliminated in favor of