summaryrefslogtreecommitdiff
path: root/coverage/parser.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2011-02-04 23:20:13 -0500
committerNed Batchelder <ned@nedbatchelder.com>2011-02-04 23:20:13 -0500
commit460265da2e04bf22363a245c0fb44c2b6634d065 (patch)
tree6c2929594098df80e0f774905338afa9b6ad658f /coverage/parser.py
parent291fdfb6f18ef3c06c2e04cdcf18fb4b9166aa2f (diff)
parente349d6bc861910456ec9d74ad51d3a147b09a112 (diff)
downloadpython-coveragepy-460265da2e04bf22363a245c0fb44c2b6634d065.tar.gz
Automated merge with ssh://bitbucket.org/ned/coveragepy
Diffstat (limited to 'coverage/parser.py')
-rw-r--r--coverage/parser.py20
1 files changed, 12 insertions, 8 deletions
diff --git a/coverage/parser.py b/coverage/parser.py
index ae618ce..8ad4e05 100644
--- a/coverage/parser.py
+++ b/coverage/parser.py
@@ -2,7 +2,8 @@
import glob, opcode, os, re, sys, token, tokenize
-from coverage.backward import set, sorted, StringIO # pylint: disable-msg=W0622
+from coverage.backward import set, sorted, StringIO # pylint: disable=W0622
+from coverage.backward import open_source
from coverage.bytecode import ByteCodes, CodeObjects
from coverage.misc import nice_pair, CoverageException, NoSource, expensive
@@ -22,15 +23,16 @@ class CodeParser(object):
self.text = text
if not self.text:
try:
- sourcef = open(self.filename, 'rU')
- self.text = sourcef.read()
- sourcef.close()
+ sourcef = open_source(self.filename)
+ try:
+ self.text = sourcef.read()
+ finally:
+ sourcef.close()
except IOError:
_, err, _ = sys.exc_info()
raise NoSource(
"No source for code: %r: %s" % (self.filename, err)
)
- self.text = self.text.replace('\r\n', '\n')
self.exclude = exclude
@@ -302,9 +304,11 @@ class ByteParser(object):
else:
if not text:
assert filename, "If no code or text, need a filename"
- sourcef = open(filename, 'rU')
- text = sourcef.read()
- sourcef.close()
+ sourcef = open_source(filename)
+ try:
+ text = sourcef.read()
+ finally:
+ sourcef.close()
try:
# Python 2.3 and 2.4 don't like partial last lines, so be sure