diff options
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) |