From be42922c5851bc1467559c30941d8913f5e6b159 Mon Sep 17 00:00:00 2001 From: Anthony Baxter Date: Thu, 18 Dec 2003 09:43:33 +0000 Subject: Backport 1.13 through 1.15, after getting a begging letter from a certain BDFL The fullmodname() function chopped off the first character if the module existed in the current directory. Open results files, which contain binary pickles, in binary mode. Remove fallback code that tries to read marshal data from a results file, since this module never writes marshal data. --- Lib/trace.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Lib/trace.py b/Lib/trace.py index 0f27273..7f41263 100644 --- a/Lib/trace.py +++ b/Lib/trace.py @@ -180,7 +180,11 @@ def fullmodname(path): if len(dir) > len(longest): longest = dir - base = path[len(longest) + 1:].replace("/", ".") + if longest: + base = path[len(longest) + 1:] + else: + base = path + base = base.replace("/", ".") filename, ext = os.path.splitext(base) return filename @@ -200,13 +204,11 @@ class CoverageResults: if self.infile: # Try to merge existing counts file. try: - counts, calledfuncs = pickle.load(open(self.infile, 'r')) + counts, calledfuncs = pickle.load(open(self.infile, 'rb')) self.update(self.__class__(counts, calledfuncs)) except (IOError, EOFError, ValueError), err: print >> sys.stderr, ("Skipping counts file %r: %s" % (self.infile, err)) - except pickle.UnpicklingError: - self.update(self.__class__(marshal.load(open(self.infile)))) def update(self, other): """Merge in the data from another CoverageResults""" @@ -284,7 +286,7 @@ class CoverageResults: # try and store counts and module info into self.outfile try: pickle.dump((self.counts, self.calledfuncs), - open(self.outfile, 'w'), 1) + open(self.outfile, 'wb'), 1) except IOError, err: print >> sys.stderr, "Can't save counts files because %s" % err -- cgit v0.12