X7ROOT File Manager
Current Path:
/opt/cloudlinux/venv/lib/python3.11/site-packages/coverage
opt
/
cloudlinux
/
venv
/
lib
/
python3.11
/
site-packages
/
coverage
/
??
..
??
__init__.py
(1.25 KB)
??
__main__.py
(257 B)
??
__pycache__
??
annotate.py
(3.67 KB)
??
bytecode.py
(713 B)
??
cmdline.py
(33.62 KB)
??
collector.py
(20.08 KB)
??
config.py
(21.47 KB)
??
context.py
(2.42 KB)
??
control.py
(50.49 KB)
??
data.py
(7.33 KB)
??
debug.py
(17.39 KB)
??
disposition.py
(1.87 KB)
??
env.py
(5.94 KB)
??
exceptions.py
(1.33 KB)
??
execfile.py
(11.85 KB)
??
files.py
(18.92 KB)
??
fullcoverage
??
html.py
(22.62 KB)
??
htmlfiles
??
inorout.py
(23.34 KB)
??
jsonreport.py
(4.64 KB)
??
lcovreport.py
(4.82 KB)
??
misc.py
(11.89 KB)
??
multiproc.py
(3.76 KB)
??
numbits.py
(4.56 KB)
??
parser.py
(55.39 KB)
??
phystokens.py
(7.62 KB)
??
plugin.py
(19.07 KB)
??
plugin_support.py
(10.11 KB)
??
py.typed
(72 B)
??
python.py
(7.88 KB)
??
pytracer.py
(14.08 KB)
??
report.py
(10.37 KB)
??
report_core.py
(3.97 KB)
??
results.py
(13.07 KB)
??
sqldata.py
(50.09 KB)
??
templite.py
(10.7 KB)
??
tomlconfig.py
(7.39 KB)
??
tracer.cpython-311-x86_64-linux-gnu.so
(28.77 KB)
??
types.py
(5.4 KB)
??
version.py
(1.4 KB)
??
xmlreport.py
(9.57 KB)
Editing: annotate.py
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0 # For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt """Source file annotation for coverage.py.""" from __future__ import annotations import os import re from typing import Iterable, Optional, TYPE_CHECKING from coverage.files import flat_rootname from coverage.misc import ensure_dir, isolate_module from coverage.plugin import FileReporter from coverage.report_core import get_analysis_to_report from coverage.results import Analysis from coverage.types import TMorf if TYPE_CHECKING: from coverage import Coverage os = isolate_module(os) class AnnotateReporter: """Generate annotated source files showing line coverage. This reporter creates annotated copies of the measured source files. Each .py file is copied as a .py,cover file, with a left-hand margin annotating each line:: > def h(x): - if 0: #pragma: no cover - pass > if x == 1: ! a = 1 > else: > a = 2 > h(2) Executed lines use ">", lines not executed use "!", lines excluded from consideration use "-". """ def __init__(self, coverage: Coverage) -> None: self.coverage = coverage self.config = self.coverage.config self.directory: Optional[str] = None blank_re = re.compile(r"\s*(#|$)") else_re = re.compile(r"\s*else\s*:\s*(#|$)") def report(self, morfs: Optional[Iterable[TMorf]], directory: Optional[str] = None) -> None: """Run the report. See `coverage.report()` for arguments. """ self.directory = directory self.coverage.get_data() for fr, analysis in get_analysis_to_report(self.coverage, morfs): self.annotate_file(fr, analysis) def annotate_file(self, fr: FileReporter, analysis: Analysis) -> None: """Annotate a single file. `fr` is the FileReporter for the file to annotate. """ statements = sorted(analysis.statements) missing = sorted(analysis.missing) excluded = sorted(analysis.excluded) if self.directory: ensure_dir(self.directory) dest_file = os.path.join(self.directory, flat_rootname(fr.relative_filename())) if dest_file.endswith("_py"): dest_file = dest_file[:-3] + ".py" dest_file += ",cover" else: dest_file = fr.filename + ",cover" with open(dest_file, "w", encoding="utf-8") as dest: i = j = 0 covered = True source = fr.source() for lineno, line in enumerate(source.splitlines(True), start=1): while i < len(statements) and statements[i] < lineno: i += 1 while j < len(missing) and missing[j] < lineno: j += 1 if i < len(statements) and statements[i] == lineno: covered = j >= len(missing) or missing[j] > lineno if self.blank_re.match(line): dest.write(" ") elif self.else_re.match(line): # Special logic for lines containing only "else:". if j >= len(missing): dest.write("> ") elif statements[i] == missing[j]: dest.write("! ") else: dest.write("> ") elif lineno in excluded: dest.write("- ") elif covered: dest.write("> ") else: dest.write("! ") dest.write(line)
Upload File
Create Folder