SConsign.py (SCons-4.3.0) | : | SConsign.py (SCons-4.4.0) | ||
---|---|---|---|---|
skipping to change at line 245 | skipping to change at line 245 | |||
self.entries[key] = entry | self.entries[key] = entry | |||
self.to_be_merged = {} | self.to_be_merged = {} | |||
class DB(Base): | class DB(Base): | |||
""" | """ | |||
A Base subclass that reads and writes signature information | A Base subclass that reads and writes signature information | |||
from a global .sconsign.db* file--the actual file suffix is | from a global .sconsign.db* file--the actual file suffix is | |||
determined by the database module. | determined by the database module. | |||
""" | """ | |||
def __init__(self, dir): | def __init__(self, dir): | |||
Base.__init__(self) | super().__init__() | |||
self.dir = dir | self.dir = dir | |||
db, mode = Get_DataBase(dir) | db, mode = Get_DataBase(dir) | |||
# Read using the path relative to the top of the Repository | # Read using the path relative to the top of the Repository | |||
# (self.dir.tpath) from which we're fetching the signature | # (self.dir.tpath) from which we're fetching the signature | |||
# information. | # information. | |||
path = normcase(dir.get_tpath()) | path = normcase(dir.get_tpath()) | |||
try: | try: | |||
skipping to change at line 315 | skipping to change at line 315 | |||
# Not all anydbm modules have sync() methods. | # Not all anydbm modules have sync() methods. | |||
pass | pass | |||
else: | else: | |||
syncmethod() | syncmethod() | |||
class Dir(Base): | class Dir(Base): | |||
def __init__(self, fp=None, dir=None): | def __init__(self, fp=None, dir=None): | |||
""" | """ | |||
fp - file pointer to read entries from | fp - file pointer to read entries from | |||
""" | """ | |||
Base.__init__(self) | super().__init__() | |||
if not fp: | if not fp: | |||
return | return | |||
self.entries = pickle.load(fp) | self.entries = pickle.load(fp) | |||
if not isinstance(self.entries, dict): | if not isinstance(self.entries, dict): | |||
self.entries = {} | self.entries = {} | |||
raise TypeError | raise TypeError | |||
if dir: | if dir: | |||
skipping to change at line 347 | skipping to change at line 347 | |||
self.dir = dir | self.dir = dir | |||
self.sconsign = os.path.join(dir.get_internal_path(), current_sconsign_f ilename()) | self.sconsign = os.path.join(dir.get_internal_path(), current_sconsign_f ilename()) | |||
try: | try: | |||
fp = open(self.sconsign, 'rb') | fp = open(self.sconsign, 'rb') | |||
except IOError: | except IOError: | |||
fp = None | fp = None | |||
try: | try: | |||
Dir.__init__(self, fp, dir) | super().__init__(fp, dir) | |||
except KeyboardInterrupt: | except KeyboardInterrupt: | |||
raise | raise | |||
except Exception: | except Exception: | |||
SCons.Warnings.warn(SCons.Warnings.CorruptSConsignWarning, | SCons.Warnings.warn(SCons.Warnings.CorruptSConsignWarning, | |||
"Ignoring corrupt .sconsign file: %s"%self.scons ign) | "Ignoring corrupt .sconsign file: %s"%self.scons ign) | |||
try: | try: | |||
fp.close() | fp.close() | |||
except AttributeError: | except AttributeError: | |||
pass | pass | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 3 lines changed or added |