summaryrefslogtreecommitdiff
path: root/coverage/python.py
diff options
context:
space:
mode:
Diffstat (limited to 'coverage/python.py')
-rw-r--r--coverage/python.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/coverage/python.py b/coverage/python.py
index e6e9493a..33e6ec01 100644
--- a/coverage/python.py
+++ b/coverage/python.py
@@ -7,7 +7,7 @@ import os.path
import zipimport
from coverage import env, files
-from coverage.misc import contract, NoSource, join_regex
+from coverage.misc import contract, expensive, NoSource, join_regex
from coverage.parser import PythonParser
from coverage.phystokens import source_token_lines, source_encoding
from coverage.plugin import FileReporter
@@ -126,12 +126,14 @@ class PythonFileReporter(FileReporter):
)
return self._parser
+ @expensive
def lines(self):
"""Return the line numbers of statements in the file."""
if self._statements is None:
self._statements, self._excluded = self.parser.parse_source()
return self._statements
+ @expensive
def excluded_lines(self):
"""Return the line numbers of statements in the file."""
if self._excluded is None:
@@ -144,6 +146,7 @@ class PythonFileReporter(FileReporter):
def translate_arcs(self, arcs):
return self.parser.translate_arcs(arcs)
+ @expensive
def no_branch_lines(self):
no_branch = self.parser.lines_matching(
join_regex(self.coverage.config.partial_list),
@@ -151,9 +154,11 @@ class PythonFileReporter(FileReporter):
)
return no_branch
+ @expensive
def arcs(self):
return self.parser.arcs()
+ @expensive
def exit_counts(self):
return self.parser.exit_counts()