summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2021-11-16 08:57:02 -0500
committerNed Batchelder <ned@nedbatchelder.com>2021-11-16 17:56:09 -0500
commit25ea7a956ab05d24fed61519c83a64462597d712 (patch)
treeef91fc4839850e6137efacc0b4c59cb09a2b52d6
parentf3f2f2a151ba7cc3251388f8c167b52499527a18 (diff)
downloadpython-coveragepy-git-25ea7a956ab05d24fed61519c83a64462597d712.tar.gz
refactor: move this so I can use it ad-hoc more easily
-rw-r--r--coverage/cmdline.py28
-rw-r--r--coverage/data.py24
2 files changed, 26 insertions, 26 deletions
diff --git a/coverage/cmdline.py b/coverage/cmdline.py
index d0cd4625..ae20acc5 100644
--- a/coverage/cmdline.py
+++ b/coverage/cmdline.py
@@ -17,11 +17,10 @@ import coverage
from coverage import Coverage
from coverage import env
from coverage.collector import CTracer
-from coverage.data import CoverageData, combinable_files, line_counts
+from coverage.data import combinable_files, debug_data_file
from coverage.debug import info_formatter, info_header, short_stack
from coverage.exceptions import _BaseCoverageException, _ExceptionDuringRun, NoSource
from coverage.execfile import PyRunner
-from coverage.misc import human_sorted, plural
from coverage.results import Numbers, should_fail_under
@@ -790,10 +789,10 @@ class CoverageScript:
elif args[0] == 'data':
print(info_header("data"))
data_file = self.coverage.config.data_file
- self.do_debug_data_file(data_file)
+ debug_data_file(data_file)
for filename in combinable_files(data_file):
print("-----")
- self.do_debug_data_file(filename)
+ debug_data_file(filename)
elif args[0] == 'config':
print(info_header("config"))
config_info = sorted(self.coverage.config.__dict__.items())
@@ -808,27 +807,6 @@ class CoverageScript:
return OK
- def do_debug_data_file(self, filename):
- """Implementation of 'coverage debug data'."""
- data = CoverageData(filename)
- filename = data.data_filename()
- print(f"path: {filename}")
- if not os.path.exists(filename):
- print("No data collected: file doesn't exist")
- return
- data.read()
- print(f"has_arcs: {data.has_arcs()!r}")
- summary = line_counts(data, fullpath=True)
- filenames = human_sorted(summary.keys())
- nfiles = len(filenames)
- print(f"{nfiles} file{plural(nfiles)}:")
- for f in filenames:
- line = f"{f}: {summary[f]} line{plural(summary[f])}"
- plugin = data.file_tracer(f)
- if plugin:
- line += f" [{plugin}]"
- print(line)
-
def unshell_list(s):
"""Turn a command-line argument into a list."""
diff --git a/coverage/data.py b/coverage/data.py
index c70993ad..2765c4a3 100644
--- a/coverage/data.py
+++ b/coverage/data.py
@@ -14,7 +14,7 @@ import glob
import os.path
from coverage.exceptions import CoverageException, NoDataError
-from coverage.misc import file_be_gone
+from coverage.misc import file_be_gone, human_sorted, plural
from coverage.sqldata import CoverageData
@@ -139,3 +139,25 @@ def combine_parallel_data(
if strict and not files_combined:
raise NoDataError("No usable data files")
+
+
+def debug_data_file(filename):
+ """Implementation of 'coverage debug data'."""
+ data = CoverageData(filename)
+ filename = data.data_filename()
+ print(f"path: {filename}")
+ if not os.path.exists(filename):
+ print("No data collected: file doesn't exist")
+ return
+ data.read()
+ print(f"has_arcs: {data.has_arcs()!r}")
+ summary = line_counts(data, fullpath=True)
+ filenames = human_sorted(summary.keys())
+ nfiles = len(filenames)
+ print(f"{nfiles} file{plural(nfiles)}:")
+ for f in filenames:
+ line = f"{f}: {summary[f]} line{plural(summary[f])}"
+ plugin = data.file_tracer(f)
+ if plugin:
+ line += f" [{plugin}]"
+ print(line)