summaryrefslogtreecommitdiff
path: root/Lib/trace.py
diff options
context:
space:
mode:
authorAlexander Belopolsky <alexander.belopolsky@gmail.com>2010-09-27 15:49:20 +0000
committerAlexander Belopolsky <alexander.belopolsky@gmail.com>2010-09-27 15:49:20 +0000
commit0ae33611faba57f650b5083df6eebd655457f687 (patch)
tree54379052bb475f0953c3df8cf7880dd2b1bb9aa0 /Lib/trace.py
parent76ca3b430c402341e91b04de0d801e754021401b (diff)
downloadcpython-git-0ae33611faba57f650b5083df6eebd655457f687.tar.gz
Issue 9941: Minor code cleanup before implementing the context manager feature:
- Eliminated code repetition between run and runctx; - Removed redundant calls to dict.key; - Removed unused "blabbed" attribute; - Simplified the loop in write_results_file().
Diffstat (limited to 'Lib/trace.py')
-rw-r--r--Lib/trace.py32
1 files changed, 11 insertions, 21 deletions
diff --git a/Lib/trace.py b/Lib/trace.py
index bed983e95a..fa24fc1cc3 100644
--- a/Lib/trace.py
+++ b/Lib/trace.py
@@ -243,13 +243,13 @@ class CoverageResults:
other_calledfuncs = other.calledfuncs
other_callers = other.callers
- for key in other_counts.keys():
+ for key in other_counts:
counts[key] = counts.get(key, 0) + other_counts[key]
- for key in other_calledfuncs.keys():
+ for key in other_calledfuncs:
calledfuncs[key] = 1
- for key in other_callers.keys():
+ for key in other_callers:
callers[key] = 1
def write_results(self, show_missing=True, summary=False, coverdir=None):
@@ -259,7 +259,7 @@ class CoverageResults:
if self.calledfuncs:
print()
print("functions called:")
- calls = self.calledfuncs.keys()
+ calls = self.calledfuncs
for filename, modulename, funcname in sorted(calls):
print(("filename: %s, modulename: %s, funcname: %s"
% (filename, modulename, funcname)))
@@ -269,7 +269,7 @@ class CoverageResults:
print("calling relationships:")
lastfile = lastcfile = ""
for ((pfile, pmod, pfunc), (cfile, cmod, cfunc)) \
- in sorted(self.callers.keys()):
+ in sorted(self.callers):
if pfile != lastfile:
print()
print("***", pfile, "***")
@@ -283,7 +283,7 @@ class CoverageResults:
# turn the counts data ("(filename, lineno) = count") into something
# accessible on a per-file basis
per_file = {}
- for filename, lineno in self.counts.keys():
+ for filename, lineno in self.counts:
lines_hit = per_file[filename] = per_file.get(filename, {})
lines_hit[lineno] = self.counts[(filename, lineno)]
@@ -324,7 +324,7 @@ class CoverageResults:
if summary and sums:
print("lines cov% module (path)")
- for m in sorted(sums.keys()):
+ for m in sorted(sums):
n_lines, percent, modulename, filename = sums[m]
print("%5d %3d%% %s (%s)" % sums[m])
@@ -348,8 +348,7 @@ class CoverageResults:
n_lines = 0
n_hits = 0
- for i, line in enumerate(lines):
- lineno = i + 1
+ for lineno, line in enumerate(lines, 1):
# do the blank/comment match to try to mark more lines
# (help the reader find stuff that hasn't been covered)
if lineno in lines_hit:
@@ -362,12 +361,12 @@ class CoverageResults:
# lines preceded by no marks weren't hit
# Highlight them if so indicated, unless the line contains
# #pragma: NO COVER
- if lineno in lnotab and not PRAGMA_NOCOVER in lines[i]:
+ if lineno in lnotab and not PRAGMA_NOCOVER in line:
outfile.write(">>>>>> ")
n_lines += 1
else:
outfile.write(" ")
- outfile.write(lines[i].expandtabs(8))
+ outfile.write(line.expandtabs(8))
outfile.close()
return n_hits, n_lines
@@ -456,7 +455,6 @@ class Trace:
self.outfile = outfile
self.ignore = Ignore(ignoremods, ignoredirs)
self.counts = {} # keys are (filename, linenumber)
- self.blabbed = {} # for debugging
self.pathtobasename = {} # for memoizing os.path.basename
self.donothing = 0
self.trace = trace
@@ -486,15 +484,7 @@ class Trace:
def run(self, cmd):
import __main__
dict = __main__.__dict__
- if not self.donothing:
- threading.settrace(self.globaltrace)
- sys.settrace(self.globaltrace)
- try:
- exec(cmd, dict, dict)
- finally:
- if not self.donothing:
- sys.settrace(None)
- threading.settrace(None)
+ self.runctx(cmd, dict, dict)
def runctx(self, cmd, globals=None, locals=None):
if globals is None: globals = {}