diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2021-11-16 08:57:02 -0500 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2021-11-16 17:56:09 -0500 |
commit | 25ea7a956ab05d24fed61519c83a64462597d712 (patch) | |
tree | ef91fc4839850e6137efacc0b4c59cb09a2b52d6 /coverage/data.py | |
parent | f3f2f2a151ba7cc3251388f8c167b52499527a18 (diff) | |
download | python-coveragepy-git-25ea7a956ab05d24fed61519c83a64462597d712.tar.gz |
refactor: move this so I can use it ad-hoc more easily
Diffstat (limited to 'coverage/data.py')
-rw-r--r-- | coverage/data.py | 24 |
1 files changed, 23 insertions, 1 deletions
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) |