summaryrefslogtreecommitdiffstats
path: root/src/script/sconsign.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2010-04-14 04:38:34 (GMT)
committerSteven Knight <knight@baldmt.com>2010-04-14 04:38:34 (GMT)
commit67f389b0e130d59d7e125243355f5f58a932a2ec (patch)
tree7dcf70c77af39821b88618c4ee4f6e57cc55725a /src/script/sconsign.py
parentdc59551fed874322b91be8a4fb6f3b880cf7d40b (diff)
downloadSCons-67f389b0e130d59d7e125243355f5f58a932a2ec.zip
SCons-67f389b0e130d59d7e125243355f5f58a932a2ec.tar.gz
SCons-67f389b0e130d59d7e125243355f5f58a932a2ec.tar.bz2
Add a stub compat/_scon_dbm.py module and copy whichdb.whichdb() to
dbm.whichdb() if necessary.
Diffstat (limited to 'src/script/sconsign.py')
-rw-r--r--src/script/sconsign.py20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/script/sconsign.py b/src/script/sconsign.py
index e119a51..cfba945 100644
--- a/src/script/sconsign.py
+++ b/src/script/sconsign.py
@@ -172,12 +172,16 @@ sys.path = libs + sys.path
# END STANDARD SCons SCRIPT HEADER
##############################################################################
-import cPickle
+import SCons.compat
+
+import dbm
import imp
-import whichdb
+import pickle
import SCons.SConsign
+# Monkey-patch in a whichdb()-like function so any use of dbm.whichdb()
+# can detect our internal .dblite format,
def my_whichdb(filename):
if filename[-7:] == ".dblite":
return "SCons.dblite"
@@ -189,8 +193,8 @@ def my_whichdb(filename):
pass
return _orig_whichdb(filename)
-_orig_whichdb = whichdb.whichdb
-whichdb.whichdb = my_whichdb
+_orig_whichdb = dbm.whichdb
+dbm.whichdb = my_whichdb
def my_import(mname):
if '.' in mname:
@@ -383,7 +387,7 @@ class Do_SConsignDB:
return
except KeyboardInterrupt:
raise
- except cPickle.UnpicklingError:
+ except pickle.UnpicklingError:
sys.stderr.write("sconsign: ignoring invalid `%s' file `%s'\n" % (self.dbm_name, fname))
return
except Exception, e:
@@ -404,7 +408,7 @@ class Do_SConsignDB:
def printentries(self, dir, val):
print '=== ' + dir + ':'
- printentries(cPickle.loads(val), dir)
+ printentries(pickle.loads(val), dir)
def Do_SConsignDir(name):
try:
@@ -416,7 +420,7 @@ def Do_SConsignDir(name):
sconsign = SCons.SConsign.Dir(fp)
except KeyboardInterrupt:
raise
- except cPickle.UnpicklingError:
+ except pickle.UnpicklingError:
sys.stderr.write("sconsign: ignoring invalid .sconsign file `%s'\n" % (name))
return
except Exception, e:
@@ -497,7 +501,7 @@ if Do_Call:
Do_Call(a)
else:
for a in args:
- dbm_name = whichdb.whichdb(a)
+ dbm_name = dbm.whichdb(a)
if dbm_name:
Map_Module = {'SCons.dblite' : 'dblite'}
dbm = my_import(dbm_name)