coverage 7.6.7__cp311-cp311-win_amd64.whl → 7.11.1__cp311-cp311-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- coverage/__init__.py +2 -0
- coverage/__main__.py +2 -0
- coverage/annotate.py +1 -2
- coverage/bytecode.py +177 -3
- coverage/cmdline.py +329 -154
- coverage/collector.py +31 -42
- coverage/config.py +166 -62
- coverage/context.py +4 -5
- coverage/control.py +164 -85
- coverage/core.py +70 -33
- coverage/data.py +3 -4
- coverage/debug.py +112 -56
- coverage/disposition.py +1 -0
- coverage/env.py +65 -55
- coverage/exceptions.py +35 -7
- coverage/execfile.py +18 -13
- coverage/files.py +23 -18
- coverage/html.py +134 -88
- coverage/htmlfiles/style.css +42 -2
- coverage/htmlfiles/style.scss +65 -1
- coverage/inorout.py +61 -44
- coverage/jsonreport.py +17 -8
- coverage/lcovreport.py +16 -20
- coverage/misc.py +50 -46
- coverage/multiproc.py +12 -7
- coverage/numbits.py +3 -4
- coverage/parser.py +193 -269
- coverage/patch.py +166 -0
- coverage/phystokens.py +24 -25
- coverage/plugin.py +13 -13
- coverage/plugin_support.py +36 -35
- coverage/python.py +9 -13
- coverage/pytracer.py +40 -33
- coverage/regions.py +2 -1
- coverage/report.py +59 -43
- coverage/report_core.py +6 -9
- coverage/results.py +118 -66
- coverage/sqldata.py +260 -210
- coverage/sqlitedb.py +33 -25
- coverage/sysmon.py +195 -157
- coverage/templite.py +6 -6
- coverage/tomlconfig.py +12 -12
- coverage/tracer.cp311-win_amd64.pyd +0 -0
- coverage/tracer.pyi +2 -0
- coverage/types.py +25 -22
- coverage/version.py +3 -18
- coverage/xmlreport.py +16 -13
- {coverage-7.6.7.dist-info → coverage-7.11.1.dist-info}/METADATA +40 -18
- coverage-7.11.1.dist-info/RECORD +59 -0
- {coverage-7.6.7.dist-info → coverage-7.11.1.dist-info}/WHEEL +1 -1
- coverage-7.6.7.dist-info/RECORD +0 -58
- {coverage-7.6.7.dist-info → coverage-7.11.1.dist-info}/entry_points.txt +0 -0
- {coverage-7.6.7.dist-info → coverage-7.11.1.dist-info/licenses}/LICENSE.txt +0 -0
- {coverage-7.6.7.dist-info → coverage-7.11.1.dist-info}/top_level.txt +0 -0
coverage/tomlconfig.py
CHANGED
|
@@ -7,11 +7,10 @@ from __future__ import annotations
|
|
|
7
7
|
|
|
8
8
|
import os
|
|
9
9
|
import re
|
|
10
|
-
|
|
11
|
-
from typing import Any, Callable, TypeVar
|
|
12
10
|
from collections.abc import Iterable
|
|
11
|
+
from typing import Any, Callable, TypeVar
|
|
13
12
|
|
|
14
|
-
from coverage import env
|
|
13
|
+
from coverage import config, env
|
|
15
14
|
from coverage.exceptions import ConfigError
|
|
16
15
|
from coverage.misc import import_third_party, isolate_module, substitute_variables
|
|
17
16
|
from coverage.types import TConfigSectionOut, TConfigValueOut
|
|
@@ -19,7 +18,8 @@ from coverage.types import TConfigSectionOut, TConfigValueOut
|
|
|
19
18
|
os = isolate_module(os)
|
|
20
19
|
|
|
21
20
|
if env.PYVERSION >= (3, 11, 0, "alpha", 7):
|
|
22
|
-
import tomllib
|
|
21
|
+
import tomllib # pylint: disable=import-error
|
|
22
|
+
|
|
23
23
|
has_tomllib = True
|
|
24
24
|
else:
|
|
25
25
|
# TOML support on Python 3.10 and below is an install-time extra option.
|
|
@@ -28,11 +28,13 @@ else:
|
|
|
28
28
|
|
|
29
29
|
class TomlDecodeError(Exception):
|
|
30
30
|
"""An exception class that exists even when toml isn't installed."""
|
|
31
|
+
|
|
31
32
|
pass
|
|
32
33
|
|
|
33
34
|
|
|
34
35
|
TWant = TypeVar("TWant")
|
|
35
36
|
|
|
37
|
+
|
|
36
38
|
class TomlConfigParser:
|
|
37
39
|
"""TOML file reading with the interface of HandyConfigParser."""
|
|
38
40
|
|
|
@@ -51,7 +53,7 @@ class TomlConfigParser:
|
|
|
51
53
|
filename = os.fspath(filenames)
|
|
52
54
|
|
|
53
55
|
try:
|
|
54
|
-
with open(filename, encoding=
|
|
56
|
+
with open(filename, encoding="utf-8") as fp:
|
|
55
57
|
toml_text = fp.read()
|
|
56
58
|
except OSError:
|
|
57
59
|
return []
|
|
@@ -178,6 +180,10 @@ class TomlConfigParser:
|
|
|
178
180
|
bool_strings = {"true": True, "false": False}
|
|
179
181
|
return self._check_type(name, option, value, bool, bool_strings.__getitem__, "a boolean")
|
|
180
182
|
|
|
183
|
+
def getfile(self, section: str, option: str) -> str:
|
|
184
|
+
_, value = self._get_single(section, option)
|
|
185
|
+
return config.process_file_value(value)
|
|
186
|
+
|
|
181
187
|
def _get_list(self, section: str, option: str) -> tuple[str, list[str]]:
|
|
182
188
|
"""Get a list of strings, substituting environment variables in the elements."""
|
|
183
189
|
name, values = self._get(section, option)
|
|
@@ -191,13 +197,7 @@ class TomlConfigParser:
|
|
|
191
197
|
|
|
192
198
|
def getregexlist(self, section: str, option: str) -> list[str]:
|
|
193
199
|
name, values = self._get_list(section, option)
|
|
194
|
-
|
|
195
|
-
value = value.strip()
|
|
196
|
-
try:
|
|
197
|
-
re.compile(value)
|
|
198
|
-
except re.error as e:
|
|
199
|
-
raise ConfigError(f"Invalid [{name}].{option} value {value!r}: {e}") from e
|
|
200
|
-
return values
|
|
200
|
+
return config.process_regexlist(name, option, values)
|
|
201
201
|
|
|
202
202
|
def getint(self, section: str, option: str) -> int:
|
|
203
203
|
name, value = self._get_single(section, option)
|
|
Binary file
|
coverage/tracer.pyi
CHANGED
|
@@ -9,6 +9,7 @@ from coverage.types import TFileDisposition, TTraceData, TTraceFn, Tracer
|
|
|
9
9
|
|
|
10
10
|
class CFileDisposition(TFileDisposition):
|
|
11
11
|
"""CFileDisposition is in ctracer/filedisp.c"""
|
|
12
|
+
|
|
12
13
|
canonical_filename: Any
|
|
13
14
|
file_tracer: Any
|
|
14
15
|
has_dynamic_filename: Any
|
|
@@ -20,6 +21,7 @@ class CFileDisposition(TFileDisposition):
|
|
|
20
21
|
|
|
21
22
|
class CTracer(Tracer):
|
|
22
23
|
"""CTracer is in ctracer/tracer.c"""
|
|
24
|
+
|
|
23
25
|
check_include: Any
|
|
24
26
|
concur_id_func: Any
|
|
25
27
|
data: TTraceData
|
coverage/types.py
CHANGED
|
@@ -9,13 +9,9 @@ from __future__ import annotations
|
|
|
9
9
|
|
|
10
10
|
import os
|
|
11
11
|
import pathlib
|
|
12
|
-
|
|
13
12
|
from collections.abc import Iterable, Mapping
|
|
14
13
|
from types import FrameType, ModuleType
|
|
15
|
-
from typing import
|
|
16
|
-
Any, Callable, Optional, Protocol,
|
|
17
|
-
Union, TYPE_CHECKING,
|
|
18
|
-
)
|
|
14
|
+
from typing import TYPE_CHECKING, Any, Callable, Optional, Protocol
|
|
19
15
|
|
|
20
16
|
if TYPE_CHECKING:
|
|
21
17
|
from coverage.plugin import FileTracer
|
|
@@ -26,35 +22,37 @@ AnyCallable = Callable[..., Any]
|
|
|
26
22
|
## File paths
|
|
27
23
|
|
|
28
24
|
# For arguments that are file paths:
|
|
29
|
-
|
|
30
|
-
FilePath = Union[str, os.PathLike[str]]
|
|
31
|
-
else:
|
|
32
|
-
# PathLike < python3.9 doesn't support subscription
|
|
33
|
-
FilePath = Union[str, os.PathLike]
|
|
25
|
+
FilePath = str | os.PathLike[str]
|
|
34
26
|
# For testing FilePath arguments
|
|
35
27
|
FilePathClasses = [str, pathlib.Path]
|
|
36
|
-
FilePathType =
|
|
28
|
+
FilePathType = type[str] | type[pathlib.Path]
|
|
37
29
|
|
|
38
30
|
## Python tracing
|
|
39
31
|
|
|
32
|
+
|
|
40
33
|
class TTraceFn(Protocol):
|
|
41
34
|
"""A Python trace function."""
|
|
35
|
+
|
|
42
36
|
def __call__(
|
|
43
37
|
self,
|
|
44
38
|
frame: FrameType,
|
|
45
39
|
event: str,
|
|
46
40
|
arg: Any,
|
|
47
41
|
lineno: TLineNo | None = None, # Our own twist, see collector.py
|
|
48
|
-
) -> TTraceFn | None:
|
|
49
|
-
|
|
42
|
+
) -> TTraceFn | None: ...
|
|
43
|
+
|
|
50
44
|
|
|
51
45
|
## Coverage.py tracing
|
|
52
46
|
|
|
53
47
|
# Line numbers are pervasive enough that they deserve their own type.
|
|
54
48
|
TLineNo = int
|
|
55
49
|
|
|
50
|
+
# Bytecode offsets are pervasive enough that they deserve their own type.
|
|
51
|
+
TOffset = int
|
|
52
|
+
|
|
56
53
|
TArc = tuple[TLineNo, TLineNo]
|
|
57
54
|
|
|
55
|
+
|
|
58
56
|
class TFileDisposition(Protocol):
|
|
59
57
|
"""A simple value type for recording what to do with a file."""
|
|
60
58
|
|
|
@@ -75,14 +73,15 @@ class TFileDisposition(Protocol):
|
|
|
75
73
|
# - If measuring arcs in the C tracer, the values are sets of packed arcs (two
|
|
76
74
|
# line numbers combined into one integer).
|
|
77
75
|
|
|
78
|
-
TTraceFileData =
|
|
76
|
+
TTraceFileData = set[TLineNo] | set[TArc] | set[int]
|
|
79
77
|
|
|
80
78
|
TTraceData = dict[str, TTraceFileData]
|
|
81
79
|
|
|
82
80
|
# Functions passed into collectors.
|
|
83
81
|
TShouldTraceFn = Callable[[str, FrameType], TFileDisposition]
|
|
84
82
|
TCheckIncludeFn = Callable[[str, FrameType], bool]
|
|
85
|
-
TShouldStartContextFn = Callable[[FrameType],
|
|
83
|
+
TShouldStartContextFn = Callable[[FrameType], str | None]
|
|
84
|
+
|
|
86
85
|
|
|
87
86
|
class Tracer(Protocol):
|
|
88
87
|
"""Anything that can report on Python execution."""
|
|
@@ -97,8 +96,7 @@ class Tracer(Protocol):
|
|
|
97
96
|
unlock_data: Callable[[], None]
|
|
98
97
|
warn: TWarnFn
|
|
99
98
|
|
|
100
|
-
def __init__(self) -> None:
|
|
101
|
-
...
|
|
99
|
+
def __init__(self) -> None: ...
|
|
102
100
|
|
|
103
101
|
def start(self) -> TTraceFn | None:
|
|
104
102
|
"""Start this tracer, return a trace function if based on sys.settrace."""
|
|
@@ -125,12 +123,13 @@ TCovKwargs = Any
|
|
|
125
123
|
## Configuration
|
|
126
124
|
|
|
127
125
|
# One value read from a config file.
|
|
128
|
-
TConfigValueIn = Optional[
|
|
129
|
-
TConfigValueOut = Optional[
|
|
126
|
+
TConfigValueIn = Optional[bool | int | float | str | Iterable[str] | Mapping[str, Iterable[str]]]
|
|
127
|
+
TConfigValueOut = Optional[bool | int | float | str | list[str] | dict[str, list[str]]]
|
|
130
128
|
# An entire config section, mapping option names to values.
|
|
131
129
|
TConfigSectionIn = Mapping[str, TConfigValueIn]
|
|
132
130
|
TConfigSectionOut = Mapping[str, TConfigValueOut]
|
|
133
131
|
|
|
132
|
+
|
|
134
133
|
class TConfigurable(Protocol):
|
|
135
134
|
"""Something that can proxy to the coverage configuration settings."""
|
|
136
135
|
|
|
@@ -156,6 +155,7 @@ class TConfigurable(Protocol):
|
|
|
156
155
|
|
|
157
156
|
"""
|
|
158
157
|
|
|
158
|
+
|
|
159
159
|
class TPluginConfig(Protocol):
|
|
160
160
|
"""Something that can provide options to a plugin."""
|
|
161
161
|
|
|
@@ -165,25 +165,28 @@ class TPluginConfig(Protocol):
|
|
|
165
165
|
|
|
166
166
|
## Parsing
|
|
167
167
|
|
|
168
|
-
TMorf =
|
|
168
|
+
TMorf = ModuleType | str
|
|
169
169
|
|
|
170
170
|
TSourceTokenLines = Iterable[list[tuple[str, str]]]
|
|
171
171
|
|
|
172
172
|
|
|
173
173
|
## Plugins
|
|
174
174
|
|
|
175
|
+
|
|
175
176
|
class TPlugin(Protocol):
|
|
176
177
|
"""What all plugins have in common."""
|
|
178
|
+
|
|
177
179
|
_coverage_plugin_name: str
|
|
178
180
|
_coverage_enabled: bool
|
|
179
181
|
|
|
180
182
|
|
|
181
183
|
## Debugging
|
|
182
184
|
|
|
185
|
+
|
|
183
186
|
class TWarnFn(Protocol):
|
|
184
187
|
"""A callable warn() function."""
|
|
185
|
-
|
|
186
|
-
|
|
188
|
+
|
|
189
|
+
def __call__(self, msg: str, slug: str | None = None, once: bool = False) -> None: ...
|
|
187
190
|
|
|
188
191
|
|
|
189
192
|
class TDebugCtl(Protocol):
|
coverage/version.py
CHANGED
|
@@ -8,7 +8,7 @@ from __future__ import annotations
|
|
|
8
8
|
|
|
9
9
|
# version_info: same semantics as sys.version_info.
|
|
10
10
|
# _dev: the .devN suffix if any.
|
|
11
|
-
version_info = (7,
|
|
11
|
+
version_info = (7, 11, 1, "final", 0)
|
|
12
12
|
_dev = 0
|
|
13
13
|
|
|
14
14
|
|
|
@@ -22,7 +22,7 @@ def _make_version(
|
|
|
22
22
|
) -> str:
|
|
23
23
|
"""Create a readable version string from version_info tuple components."""
|
|
24
24
|
assert releaselevel in ["alpha", "beta", "candidate", "final"]
|
|
25
|
-
version = "
|
|
25
|
+
version = f"{major}.{minor}.{micro}"
|
|
26
26
|
if releaselevel != "final":
|
|
27
27
|
short = {"alpha": "a", "beta": "b", "candidate": "rc"}[releaselevel]
|
|
28
28
|
version += f"{short}{serial}"
|
|
@@ -31,20 +31,5 @@ def _make_version(
|
|
|
31
31
|
return version
|
|
32
32
|
|
|
33
33
|
|
|
34
|
-
def _make_url(
|
|
35
|
-
major: int,
|
|
36
|
-
minor: int,
|
|
37
|
-
micro: int,
|
|
38
|
-
releaselevel: str,
|
|
39
|
-
serial: int = 0,
|
|
40
|
-
dev: int = 0,
|
|
41
|
-
) -> str:
|
|
42
|
-
"""Make the URL people should start at for this version of coverage.py."""
|
|
43
|
-
return (
|
|
44
|
-
"https://coverage.readthedocs.io/en/"
|
|
45
|
-
+ _make_version(major, minor, micro, releaselevel, serial, dev)
|
|
46
|
-
)
|
|
47
|
-
|
|
48
|
-
|
|
49
34
|
__version__ = _make_version(*version_info, _dev)
|
|
50
|
-
__url__ =
|
|
35
|
+
__url__ = f"https://coverage.readthedocs.io/en/{__version__}"
|
coverage/xmlreport.py
CHANGED
|
@@ -10,13 +10,12 @@ import os.path
|
|
|
10
10
|
import sys
|
|
11
11
|
import time
|
|
12
12
|
import xml.dom.minidom
|
|
13
|
-
|
|
14
|
-
from dataclasses import dataclass
|
|
15
|
-
from typing import Any, IO, TYPE_CHECKING
|
|
16
13
|
from collections.abc import Iterable
|
|
14
|
+
from dataclasses import dataclass
|
|
15
|
+
from typing import IO, TYPE_CHECKING, Any
|
|
17
16
|
|
|
18
17
|
from coverage import __version__, files
|
|
19
|
-
from coverage.misc import
|
|
18
|
+
from coverage.misc import human_sorted, human_sorted_items, isolate_module
|
|
20
19
|
from coverage.plugin import FileReporter
|
|
21
20
|
from coverage.report_core import get_analysis_to_report
|
|
22
21
|
from coverage.results import Analysis
|
|
@@ -37,12 +36,13 @@ def rate(hit: int, num: int) -> str:
|
|
|
37
36
|
if num == 0:
|
|
38
37
|
return "1"
|
|
39
38
|
else:
|
|
40
|
-
return "
|
|
39
|
+
return f"{hit / num:.4g}"
|
|
41
40
|
|
|
42
41
|
|
|
43
42
|
@dataclass
|
|
44
43
|
class PackageData:
|
|
45
44
|
"""Data we keep about each "package" (in Java terms)."""
|
|
45
|
+
|
|
46
46
|
elements: dict[str, xml.dom.minidom.Element]
|
|
47
47
|
hits: int
|
|
48
48
|
lines: int
|
|
@@ -95,11 +95,14 @@ class XmlReporter:
|
|
|
95
95
|
|
|
96
96
|
# Write header stuff.
|
|
97
97
|
xcoverage = self.xml_out.documentElement
|
|
98
|
+
assert xcoverage is not None
|
|
98
99
|
xcoverage.setAttribute("version", __version__)
|
|
99
|
-
xcoverage.setAttribute("timestamp", str(int(time.time()*1000)))
|
|
100
|
-
xcoverage.appendChild(
|
|
101
|
-
|
|
102
|
-
|
|
100
|
+
xcoverage.setAttribute("timestamp", str(int(time.time() * 1000)))
|
|
101
|
+
xcoverage.appendChild(
|
|
102
|
+
self.xml_out.createComment(
|
|
103
|
+
f" Generated by coverage.py: {__url__} ",
|
|
104
|
+
)
|
|
105
|
+
)
|
|
103
106
|
xcoverage.appendChild(self.xml_out.createComment(f" Based on {DTD_URL} "))
|
|
104
107
|
|
|
105
108
|
# Call xml_file for each file in the data.
|
|
@@ -182,14 +185,14 @@ class XmlReporter:
|
|
|
182
185
|
if not self.config.relative_files:
|
|
183
186
|
source_path = files.canonical_filename(source_path)
|
|
184
187
|
if filename.startswith(source_path.replace("\\", "/") + "/"):
|
|
185
|
-
rel_name = filename[len(source_path)+1:]
|
|
188
|
+
rel_name = filename[len(source_path) + 1 :]
|
|
186
189
|
break
|
|
187
190
|
else:
|
|
188
191
|
rel_name = fr.relative_filename().replace("\\", "/")
|
|
189
|
-
self.source_paths.add(fr.filename[
|
|
192
|
+
self.source_paths.add(fr.filename[: -len(rel_name)].rstrip(r"\/"))
|
|
190
193
|
|
|
191
194
|
dirname = os.path.dirname(rel_name) or "."
|
|
192
|
-
dirname = "/".join(dirname.split("/")[:self.config.xml_package_depth])
|
|
195
|
+
dirname = "/".join(dirname.split("/")[: self.config.xml_package_depth])
|
|
193
196
|
package_name = dirname.replace("/", ".")
|
|
194
197
|
|
|
195
198
|
package = self.packages.setdefault(package_name, PackageData({}, 0, 0, 0, 0))
|
|
@@ -223,7 +226,7 @@ class XmlReporter:
|
|
|
223
226
|
xline.setAttribute("branch", "true")
|
|
224
227
|
xline.setAttribute(
|
|
225
228
|
"condition-coverage",
|
|
226
|
-
"
|
|
229
|
+
f"{100 * taken // total}% ({taken}/{total})",
|
|
227
230
|
)
|
|
228
231
|
if line in missing_branch_arcs:
|
|
229
232
|
annlines = ["exit" if b < 0 else str(b) for b in missing_branch_arcs[line]]
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: coverage
|
|
3
|
-
Version: 7.
|
|
3
|
+
Version: 7.11.1
|
|
4
4
|
Summary: Code coverage measurement for Python
|
|
5
5
|
Home-page: https://github.com/nedbat/coveragepy
|
|
6
|
-
Author: Ned Batchelder and
|
|
6
|
+
Author: Ned Batchelder and 250 others
|
|
7
7
|
Author-email: ned@nedbatchelder.com
|
|
8
8
|
License: Apache-2.0
|
|
9
|
-
Project-URL: Documentation, https://coverage.readthedocs.io/en/7.
|
|
9
|
+
Project-URL: Documentation, https://coverage.readthedocs.io/en/7.11.1
|
|
10
10
|
Project-URL: Funding, https://tidelift.com/subscription/pkg/pypi-coverage?utm_source=pypi-coverage&utm_medium=referral&utm_campaign=pypi
|
|
11
11
|
Project-URL: Issues, https://github.com/nedbat/coveragepy/issues
|
|
12
12
|
Project-URL: Mastodon, https://hachyderm.io/@coveragepy
|
|
@@ -14,26 +14,39 @@ Project-URL: Mastodon (nedbat), https://hachyderm.io/@nedbat
|
|
|
14
14
|
Keywords: code coverage testing
|
|
15
15
|
Classifier: Environment :: Console
|
|
16
16
|
Classifier: Intended Audience :: Developers
|
|
17
|
-
Classifier: License :: OSI Approved :: Apache Software License
|
|
18
17
|
Classifier: Operating System :: OS Independent
|
|
19
18
|
Classifier: Programming Language :: Python
|
|
20
19
|
Classifier: Programming Language :: Python :: 3
|
|
21
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
22
20
|
Classifier: Programming Language :: Python :: 3.10
|
|
23
21
|
Classifier: Programming Language :: Python :: 3.11
|
|
24
22
|
Classifier: Programming Language :: Python :: 3.12
|
|
25
23
|
Classifier: Programming Language :: Python :: 3.13
|
|
26
24
|
Classifier: Programming Language :: Python :: 3.14
|
|
25
|
+
Classifier: Programming Language :: Python :: 3.15
|
|
26
|
+
Classifier: Programming Language :: Python :: Free Threading :: 3 - Stable
|
|
27
27
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
28
28
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
29
29
|
Classifier: Topic :: Software Development :: Quality Assurance
|
|
30
30
|
Classifier: Topic :: Software Development :: Testing
|
|
31
31
|
Classifier: Development Status :: 5 - Production/Stable
|
|
32
|
-
Requires-Python: >=3.
|
|
32
|
+
Requires-Python: >=3.10
|
|
33
33
|
Description-Content-Type: text/x-rst
|
|
34
34
|
License-File: LICENSE.txt
|
|
35
35
|
Provides-Extra: toml
|
|
36
|
-
Requires-Dist: tomli
|
|
36
|
+
Requires-Dist: tomli; python_full_version <= "3.11.0a6" and extra == "toml"
|
|
37
|
+
Dynamic: author
|
|
38
|
+
Dynamic: author-email
|
|
39
|
+
Dynamic: classifier
|
|
40
|
+
Dynamic: description
|
|
41
|
+
Dynamic: description-content-type
|
|
42
|
+
Dynamic: home-page
|
|
43
|
+
Dynamic: keywords
|
|
44
|
+
Dynamic: license
|
|
45
|
+
Dynamic: license-file
|
|
46
|
+
Dynamic: project-url
|
|
47
|
+
Dynamic: provides-extra
|
|
48
|
+
Dynamic: requires-python
|
|
49
|
+
Dynamic: summary
|
|
37
50
|
|
|
38
51
|
.. Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
|
|
39
52
|
.. For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
|
|
@@ -53,6 +66,7 @@ Code coverage measurement for Python.
|
|
|
53
66
|
| |kit| |license| |versions|
|
|
54
67
|
| |test-status| |quality-status| |docs| |metacov|
|
|
55
68
|
| |tidelift| |sponsor| |stars| |mastodon-coveragepy| |mastodon-nedbat|
|
|
69
|
+
|bluesky-nedbat|
|
|
56
70
|
|
|
57
71
|
Coverage.py measures code coverage, typically during test execution. It uses
|
|
58
72
|
the code analysis tools and tracing hooks provided in the Python standard
|
|
@@ -62,20 +76,25 @@ Coverage.py runs on these versions of Python:
|
|
|
62
76
|
|
|
63
77
|
.. PYVERSIONS
|
|
64
78
|
|
|
65
|
-
* Python 3.
|
|
66
|
-
* PyPy3 versions 3.
|
|
79
|
+
* Python 3.10 through 3.15 alpha, including free-threading.
|
|
80
|
+
* PyPy3 versions 3.10 and 3.11.
|
|
67
81
|
|
|
68
82
|
Documentation is on `Read the Docs`_. Code repository and issue tracker are on
|
|
69
83
|
`GitHub`_.
|
|
70
84
|
|
|
71
|
-
.. _Read the Docs: https://coverage.readthedocs.io/en/7.
|
|
85
|
+
.. _Read the Docs: https://coverage.readthedocs.io/en/7.11.1/
|
|
72
86
|
.. _GitHub: https://github.com/nedbat/coveragepy
|
|
73
87
|
|
|
74
88
|
**New in 7.x:**
|
|
89
|
+
``[run] patch`` setting;
|
|
90
|
+
``--save-signal`` option;
|
|
91
|
+
``[run] core`` setting;
|
|
92
|
+
``[run] source_dirs`` setting;
|
|
93
|
+
``Coverage.branch_stats()``;
|
|
75
94
|
multi-line exclusion patterns;
|
|
76
95
|
function/class reporting;
|
|
77
96
|
experimental support for sys.monitoring;
|
|
78
|
-
dropped support for Python
|
|
97
|
+
dropped support for Python up to 3.9;
|
|
79
98
|
added ``Coverage.collect()`` context manager;
|
|
80
99
|
improved data combining;
|
|
81
100
|
``[run] exclude_also`` setting;
|
|
@@ -113,7 +132,7 @@ Getting Started
|
|
|
113
132
|
Looking to run ``coverage`` on your test suite? See the `Quick Start section`_
|
|
114
133
|
of the docs.
|
|
115
134
|
|
|
116
|
-
.. _Quick Start section: https://coverage.readthedocs.io/en/7.
|
|
135
|
+
.. _Quick Start section: https://coverage.readthedocs.io/en/7.11.1/#quick-start
|
|
117
136
|
|
|
118
137
|
|
|
119
138
|
Change history
|
|
@@ -121,7 +140,7 @@ Change history
|
|
|
121
140
|
|
|
122
141
|
The complete history of changes is on the `change history page`_.
|
|
123
142
|
|
|
124
|
-
.. _change history page: https://coverage.readthedocs.io/en/7.
|
|
143
|
+
.. _change history page: https://coverage.readthedocs.io/en/7.11.1/changes.html
|
|
125
144
|
|
|
126
145
|
|
|
127
146
|
Code of Conduct
|
|
@@ -140,7 +159,7 @@ Contributing
|
|
|
140
159
|
Found a bug? Want to help improve the code or documentation? See the
|
|
141
160
|
`Contributing section`_ of the docs.
|
|
142
161
|
|
|
143
|
-
.. _Contributing section: https://coverage.readthedocs.io/en/7.
|
|
162
|
+
.. _Contributing section: https://coverage.readthedocs.io/en/7.11.1/contributing.html
|
|
144
163
|
|
|
145
164
|
|
|
146
165
|
Security
|
|
@@ -168,7 +187,7 @@ Licensed under the `Apache 2.0 License`_. For details, see `NOTICE.txt`_.
|
|
|
168
187
|
:target: https://github.com/nedbat/coveragepy/actions/workflows/quality.yml
|
|
169
188
|
:alt: Quality check status
|
|
170
189
|
.. |docs| image:: https://readthedocs.org/projects/coverage/badge/?version=latest&style=flat
|
|
171
|
-
:target: https://coverage.readthedocs.io/en/7.
|
|
190
|
+
:target: https://coverage.readthedocs.io/en/7.11.1/
|
|
172
191
|
:alt: Documentation
|
|
173
192
|
.. |kit| image:: https://img.shields.io/pypi/v/coverage
|
|
174
193
|
:target: https://pypi.org/project/coverage/
|
|
@@ -177,7 +196,7 @@ Licensed under the `Apache 2.0 License`_. For details, see `NOTICE.txt`_.
|
|
|
177
196
|
:target: https://pypi.org/project/coverage/
|
|
178
197
|
:alt: Python versions supported
|
|
179
198
|
.. |license| image:: https://img.shields.io/pypi/l/coverage.svg
|
|
180
|
-
:target: https://
|
|
199
|
+
:target: https://github.com/nedbat/coveragepy/blob/master/LICENSE.txt
|
|
181
200
|
:alt: License
|
|
182
201
|
.. |metacov| image:: https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/nedbat/8c6980f77988a327348f9b02bbaf67f5/raw/metacov.json
|
|
183
202
|
:target: https://nedbat.github.io/coverage-reports/latest.html
|
|
@@ -185,7 +204,7 @@ Licensed under the `Apache 2.0 License`_. For details, see `NOTICE.txt`_.
|
|
|
185
204
|
.. |tidelift| image:: https://tidelift.com/badges/package/pypi/coverage
|
|
186
205
|
:target: https://tidelift.com/subscription/pkg/pypi-coverage?utm_source=pypi-coverage&utm_medium=referral&utm_campaign=readme
|
|
187
206
|
:alt: Tidelift
|
|
188
|
-
.. |stars| image:: https://img.shields.io/github/stars/nedbat/coveragepy.svg?logo=github
|
|
207
|
+
.. |stars| image:: https://img.shields.io/github/stars/nedbat/coveragepy.svg?logo=github&style=flat
|
|
189
208
|
:target: https://github.com/nedbat/coveragepy/stargazers
|
|
190
209
|
:alt: GitHub stars
|
|
191
210
|
.. |mastodon-nedbat| image:: https://img.shields.io/badge/dynamic/json?style=flat&labelColor=450657&logo=mastodon&logoColor=ffffff&label=@nedbat&query=followers_count&url=https%3A%2F%2Fhachyderm.io%2Fapi%2Fv1%2Faccounts%2Flookup%3Facct=nedbat
|
|
@@ -194,6 +213,9 @@ Licensed under the `Apache 2.0 License`_. For details, see `NOTICE.txt`_.
|
|
|
194
213
|
.. |mastodon-coveragepy| image:: https://img.shields.io/badge/dynamic/json?style=flat&labelColor=450657&logo=mastodon&logoColor=ffffff&label=@coveragepy&query=followers_count&url=https%3A%2F%2Fhachyderm.io%2Fapi%2Fv1%2Faccounts%2Flookup%3Facct=coveragepy
|
|
195
214
|
:target: https://hachyderm.io/@coveragepy
|
|
196
215
|
:alt: coveragepy on Mastodon
|
|
216
|
+
.. |bluesky-nedbat| image:: https://img.shields.io/badge/dynamic/json?style=flat&color=96a3b0&labelColor=3686f7&logo=icloud&logoColor=white&label=@nedbat&url=https%3A%2F%2Fpublic.api.bsky.app%2Fxrpc%2Fapp.bsky.actor.getProfile%3Factor=nedbat.com&query=followersCount
|
|
217
|
+
:target: https://bsky.app/profile/nedbat.com
|
|
218
|
+
:alt: nedbat on Bluesky
|
|
197
219
|
.. |sponsor| image:: https://img.shields.io/badge/%E2%9D%A4-Sponsor%20me-brightgreen?style=flat&logo=GitHub
|
|
198
220
|
:target: https://github.com/sponsors/nedbat
|
|
199
221
|
:alt: Sponsor me on GitHub
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
coverage/__init__.py,sha256=p80cmYrM35VlYk07TtKV90tz0FyOH7HFS_mMqqlkQO8,1103
|
|
2
|
+
coverage/__main__.py,sha256=M2jcqCZIu_rkmoO4CKgwElX084u6SHdZfVUg3lGiWhg,307
|
|
3
|
+
coverage/annotate.py,sha256=rcUxalBphRmZePMoSZO8yPCMR7NkdEKsglUmAQV7COM,3863
|
|
4
|
+
coverage/bytecode.py,sha256=ORPqObKPY1P8Voi6P2zF3bYWkGzc118i4AM2kElyBNQ,6860
|
|
5
|
+
coverage/cmdline.py,sha256=yyQzcnDaNYD_gQ8JuOb9DD1Lvli8vf60-7evDczt79Q,38001
|
|
6
|
+
coverage/collector.py,sha256=VuSlZbSwCUzMSEqHN1MAz4uD3xMTtONAdNU66lIwX0U,19025
|
|
7
|
+
coverage/config.py,sha256=mOCzSZsSF0kVICbXeR4IyITmywLDltDZyA6EG3y3aHA,26693
|
|
8
|
+
coverage/context.py,sha256=YX7Pg0y3Og-d3qDcgoMmEpuf9jIcigcYnF0edZaqIsM,2506
|
|
9
|
+
coverage/control.py,sha256=bKArV3FBjbDNkCScMPyKTMwmRJqqKcnnsVe5YKE6Wlc,56293
|
|
10
|
+
coverage/core.py,sha256=DnOFT6WynVnC4MdzuY9SzIfAA9yqbWEWCqEhw7vrIok,5495
|
|
11
|
+
coverage/data.py,sha256=WuNUTfXoytulNWHA-F1OnSfvqu0DgSN7tg9R4ow2CjA,8352
|
|
12
|
+
coverage/debug.py,sha256=Ozf2IxyAu85yoxcQEIsthkd0KMNyU2Ms8uIS0mKAm4o,22420
|
|
13
|
+
coverage/disposition.py,sha256=eZmBzTPMmLkDi5OLRNrqtJQMZ4XXh4sHrP1xPEZ50D8,1954
|
|
14
|
+
coverage/env.py,sha256=-QCJcrE6UoJmUzO_3shtviXViblPiYEBEmb6vgrpq0c,5105
|
|
15
|
+
coverage/exceptions.py,sha256=vi0WrNFp8gwkN-FfIQYbyqz5iNbLpl2YQ_ijZkkV29k,2061
|
|
16
|
+
coverage/execfile.py,sha256=TSqB02-3aCYLqPe_ELpD91Y29UVi7EwOLrkTZsZ4pFg,12320
|
|
17
|
+
coverage/files.py,sha256=xXp40_DeEM8oUd-EEtUcvK24YHTxmiHCfhfcgeOTQxc,19908
|
|
18
|
+
coverage/html.py,sha256=9oO7s6BHzoHNaYCldJ_k9oFD4TIMDd0x4wH_jXJaSUw,32238
|
|
19
|
+
coverage/inorout.py,sha256=HbNb7xIolXGyXtohzwgDQCLrO4HkFnGo5oCvws2lqmY,24957
|
|
20
|
+
coverage/jsonreport.py,sha256=wZgntJY2uApDvAdpnNPcrwNvmyb3Tc4XK3fN5L2Opf0,7255
|
|
21
|
+
coverage/lcovreport.py,sha256=OmqTh9rQ2GaIRYADx_3OOhmfZOoG_ocPqbOB9j7Kp_A,8091
|
|
22
|
+
coverage/misc.py,sha256=pvDaKapNAHzE76UaHRqsJuhhmMhgXBJLAYKwEIOwPkI,11662
|
|
23
|
+
coverage/multiproc.py,sha256=PpThtQg0j9NHlYpceNxx5wg9O4XdOjjt03jlI2rkfwI,4293
|
|
24
|
+
coverage/numbits.py,sha256=t7XK_d-I-tVZgRS2M3Y5PG0Pq017D3rvecSipBsT_CA,4817
|
|
25
|
+
coverage/parser.py,sha256=RFozdV1TWUI9v8YdxmZtI1bFD_NGTLjW5hfGlFLNkxM,47487
|
|
26
|
+
coverage/patch.py,sha256=3GHFJnl1scWtvRVhFp2-qPHdAcF8Ve44vdl8xl3C7Oo,5731
|
|
27
|
+
coverage/phystokens.py,sha256=QYlZQBB343TW7SRHhaeo6AoKr9abhMCFjSC4c6aLg3Y,7645
|
|
28
|
+
coverage/plugin.py,sha256=sWFPqm3JrMLRrRNZryP3WmRi3VbGBmCWol9cKEKFYas,22124
|
|
29
|
+
coverage/plugin_support.py,sha256=DWcHXg2Gde0r5XH68sxygXpLGcMlp8H6zDhNOKg6Wc4,10741
|
|
30
|
+
coverage/py.typed,sha256=QhKiyYY18iX2PTjtgwSYebGpYvH_m0bYEyU_kMST7EU,73
|
|
31
|
+
coverage/python.py,sha256=RU9DtVl7Y1driv2JPfdl4mXhUhWH0wKtlfTZe9hASew,8856
|
|
32
|
+
coverage/pytracer.py,sha256=Liqdi9lQlnisMmoPklkj2xMQFsr3_8w3LZ9LkedZ3qY,15685
|
|
33
|
+
coverage/regions.py,sha256=cRCIZynMRr9J76g81eBPegSSd1eIJ0VofIKA3w90TxY,4625
|
|
34
|
+
coverage/report.py,sha256=QRtgWnB2wJNcVBVuxoHrR_eGHwAhQkTE-ShqBDoD5WE,11114
|
|
35
|
+
coverage/report_core.py,sha256=DdJsZxBcuiHuDlLFIPyq3wlbhJJ6AipDPpmxucFmiKM,4159
|
|
36
|
+
coverage/results.py,sha256=81OEuQwiAJrAs4HNVtdH1VII-HnoaWMQRPczg9P6SDw,16572
|
|
37
|
+
coverage/sqldata.py,sha256=YDlVuCWRz-EqDAu9w-Q3P-8ETib17MRwdGkuyMjQp6U,46679
|
|
38
|
+
coverage/sqlitedb.py,sha256=7MmRxX7alrq-Elzx5TzJJNi6xURwUH5mX2Pvgr_Qnp8,10249
|
|
39
|
+
coverage/sysmon.py,sha256=otL6DhP-eILiAv_dwJbPMNQvVG3VOtkcTOoCXZG4lpA,18491
|
|
40
|
+
coverage/templite.py,sha256=ETQ1TTufhLF6qlS2kuaX9gg7iQ-c0V6hTlGcInJ0dWA,11116
|
|
41
|
+
coverage/tomlconfig.py,sha256=GtiVV3RzKwj5Z6-RSL8XZFSO5iLfj97dcvqpODkw5Ek,7766
|
|
42
|
+
coverage/tracer.cp311-win_amd64.pyd,sha256=g__QCHJ0NbZ6MjCCij_PPBsB2Fl0ReJx6nzg3seS3T8,22016
|
|
43
|
+
coverage/tracer.pyi,sha256=e1YXvQg8IuQaaoP7Tj25It3pNAtv0Mt29DwwxO4KfaM,1248
|
|
44
|
+
coverage/types.py,sha256=0f03sJRwr4TZItHwZPHNFxL5bhjU1B3ye8C1BVQaUPc,5804
|
|
45
|
+
coverage/version.py,sha256=XM2i0-0Seds3IWZgvv5KK49EOQPvnQJu1AZ_coQtACU,1127
|
|
46
|
+
coverage/xmlreport.py,sha256=Wha1LxJgIEqKPO2hVqywTDt3QfPNtk4bgHqxBnog-mA,10133
|
|
47
|
+
coverage/htmlfiles/coverage_html.js,sha256=PqDTAlVdIaB9gIjEf6JHHysMm_D7HyRe4BzQFfpf3OM,26207
|
|
48
|
+
coverage/htmlfiles/favicon_32.png,sha256=vIEA-odDwRvSQ-syWfSwEnWGUWEv2b-Tv4tzTRfwJWE,1732
|
|
49
|
+
coverage/htmlfiles/index.html,sha256=eciDXoye0zDRlWUY5q4HHlE1FPVG4_y0NZ9_OIwaQ0E,7005
|
|
50
|
+
coverage/htmlfiles/keybd_closed.png,sha256=fZv4rmY3DkNJtPQjrFJ5UBOE5DdNof3mdeCZWC7TOoo,9004
|
|
51
|
+
coverage/htmlfiles/pyfile.html,sha256=dJV8bc3mMQz6J_N2KxVMXNKVge6vnMiQiqqe1QYuZmw,6643
|
|
52
|
+
coverage/htmlfiles/style.css,sha256=DoE2sbDGB3s5ZrE9QCbgKivfw-HcpTRvtMeXbJn7EjA,16020
|
|
53
|
+
coverage/htmlfiles/style.scss,sha256=ZjH-qCU3X7wrMfepdUhqyYc8gXaqBz6n_M9hTMU93Kw,21737
|
|
54
|
+
coverage-7.11.1.dist-info/licenses/LICENSE.txt,sha256=6z17VIVGasvYHytJb1latjfSeS4mggayfZnnk722dUk,10351
|
|
55
|
+
coverage-7.11.1.dist-info/METADATA,sha256=YhW_DNbwROyGPvRbjjP67OQksabt5hQxYEsKCoQg2kY,9254
|
|
56
|
+
coverage-7.11.1.dist-info/WHEEL,sha256=JLOMsP7F5qtkAkINx5UnzbFguf8CqZeraV8o04b0I8I,101
|
|
57
|
+
coverage-7.11.1.dist-info/entry_points.txt,sha256=1YZ9VNHzvplT76fAhqRNQLG8wmPI5AtUKig-3sjqQJo,123
|
|
58
|
+
coverage-7.11.1.dist-info/top_level.txt,sha256=BjhyiIvusb5OJkqCXjRncTF3soKF-mDOby-hxkWwwv0,9
|
|
59
|
+
coverage-7.11.1.dist-info/RECORD,,
|
coverage-7.6.7.dist-info/RECORD
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
coverage/__init__.py,sha256=f3KZIgjkIaxJ4WZJAtfWwAHO6G1czoeyvuCOb09vRIs,1081
|
|
2
|
-
coverage/__main__.py,sha256=LzQl-dAzS04IRHO8f2hyW79ck5g68kO13-9Ez-nHKGQ,303
|
|
3
|
-
coverage/annotate.py,sha256=hCU5cXuhg_XgP_A9OL16njPO5sfjnxWo_p-FeKQMJrw,3865
|
|
4
|
-
coverage/bytecode.py,sha256=DInUGd7brsv5mdmGdQmAR79yHAN3H14ccitcPIzV7Qc,744
|
|
5
|
-
coverage/cmdline.py,sha256=8OoJ_sEjXF4zdz8VgIlXA-o6atsdXQI8Cbdum_7An_A,35254
|
|
6
|
-
coverage/collector.py,sha256=UfezPlmAPjOpNhgE6PbdYUr4gK9Zi2mPoEJ38XMPZEA,19972
|
|
7
|
-
coverage/config.py,sha256=wazyeHPbB14ahCNXHIzhtxaVfJc-gw4RDhH2B5rQSLQ,22926
|
|
8
|
-
coverage/context.py,sha256=lb8B-58yW8du56inutIeiZuTxdNr7TfJi1JddvRwQhg,2573
|
|
9
|
-
coverage/control.py,sha256=K8-_8eBY0QfKqd_Hq3T-5IPeCHu0XlTdLWX1_ub10XM,53355
|
|
10
|
-
coverage/core.py,sha256=fHGa_gWGFYju14nMt6OWcWPsFpZVDPJEVCA5JkOHJI8,3623
|
|
11
|
-
coverage/data.py,sha256=TNWtGx3noa_FBYFB0QUt3a8YDTkJyij3ux9Rt_nWgGA,8297
|
|
12
|
-
coverage/debug.py,sha256=5n1QX0ytnfQFk76j3q6o4lV_E7Ys7iwi_7OiVNGDHzU,21310
|
|
13
|
-
coverage/disposition.py,sha256=xb-zvwp_42zbePVis4Y_m_xjOyHcM6zmTGM1dn7TMv0,1952
|
|
14
|
-
coverage/env.py,sha256=TBSc8WOwPTsmJT1KZninzaM92uiL6uQdAJpyqyHa9eU,4593
|
|
15
|
-
coverage/exceptions.py,sha256=QeimYAr2NgdcvWceOX8ull-66maTv2zz7UZ7ZFQUh9A,1460
|
|
16
|
-
coverage/execfile.py,sha256=zkZJId_n4PEGuuWqQK8PXoBvYlzqS57titVcbbVJMKI,12214
|
|
17
|
-
coverage/files.py,sha256=0qz-Jfiw6pYNFeKG9sIu42D3nq9HRLzzzutFSPSH5Qc,19942
|
|
18
|
-
coverage/html.py,sha256=bKIe8ojFHvZDyYT6EFrSU3zcA3KfDgmytqj3J4on7dE,30147
|
|
19
|
-
coverage/inorout.py,sha256=NzB-raKdxtzyObxyVPIO8JZ-_Ud_AwHTuHhbdUUUSs8,24441
|
|
20
|
-
coverage/jsonreport.py,sha256=bkl2DggQRaxL5p2geBt0Vd1ffgiI-vjj1HUTY5QMklw,6919
|
|
21
|
-
coverage/lcovreport.py,sha256=5vgS_HkT_Rq5gCxLKUyv79h-hTdk7qoTPUS0dE621rg,8127
|
|
22
|
-
coverage/misc.py,sha256=zQUXYuWhfi5W5PIx2OU9Lxj2NgPEyy5j7IZUY6lBspQ,11591
|
|
23
|
-
coverage/multiproc.py,sha256=qAxRi2Jc19a7DVp1hgUZP6JyNF5l3nLmjGcBD-aiZ08,4310
|
|
24
|
-
coverage/numbits.py,sha256=YWRSkT-8872C-XtEzxTl1Uk9aoFKUjFbdKkNtYPKGEc,4819
|
|
25
|
-
coverage/parser.py,sha256=V7ABRhYthe-RpQ_2wlrC2QaPRybUfEGu6pQWkf6tSUQ,52061
|
|
26
|
-
coverage/phystokens.py,sha256=R989TrsFcuZx7x2kBOZmOyQc7z_7QrA3d1cWcRBEGas,7735
|
|
27
|
-
coverage/plugin.py,sha256=V1h7GiWKYGpZYISOHfr69lPK4K2f5XYa0o60XtrvVSk,22214
|
|
28
|
-
coverage/plugin_support.py,sha256=T9B3CF6OdI07ICQoq18AaCRj-h3xBkOxz8FEuSlsbtc,10609
|
|
29
|
-
coverage/py.typed,sha256=QhKiyYY18iX2PTjtgwSYebGpYvH_m0bYEyU_kMST7EU,73
|
|
30
|
-
coverage/python.py,sha256=02kieGCrvS_DQhE3xIHZkJX9__ItYR5K9mm55eQ7-xU,8745
|
|
31
|
-
coverage/pytracer.py,sha256=I-11n12PEO4OHv4vVUn7CmZixmU_HtN-P87edbL2b3I,15448
|
|
32
|
-
coverage/regions.py,sha256=5ls28y7vlhby3m-Vs6vuvT3u61b23ivL1x6zrf_LYAY,4623
|
|
33
|
-
coverage/report.py,sha256=C-Gp3GBBUQ-NUEwCTzEjj_j-JwdHceNkjdUJMnSU5QE,10876
|
|
34
|
-
coverage/report_core.py,sha256=Ar6U6I3hf8Pu8jIfYmW-MXmlrlcfTzt2r8FeVW9oBvA,4196
|
|
35
|
-
coverage/results.py,sha256=-0bkb0tc-CSCvLvuMMOwOa_hewtSn8N7iVCdZoFCEeI,14120
|
|
36
|
-
coverage/sqldata.py,sha256=XvLEju-FpfFoy-EZffWQLaCgLlw23w5beM3J4xWU1Vk,44615
|
|
37
|
-
coverage/sqlitedb.py,sha256=SVQ0qLHKWTZgxgw59LvZOpxAiNN7MZXn4Vy3RBki3n4,9931
|
|
38
|
-
coverage/sysmon.py,sha256=Er7d93GAlvN7SMxSAlPjGBWsP_rh8MonvvM7S_pwn80,16305
|
|
39
|
-
coverage/templite.py,sha256=CrVt52hhVQxkEY7R9-LV5MBrHnDAoe8xBG1XYIwUPlc,11114
|
|
40
|
-
coverage/tomlconfig.py,sha256=VOHVjOI6bMeso-xinoLHPp9AgqPV7okin9pEywrYKoc,7801
|
|
41
|
-
coverage/tracer.cp311-win_amd64.pyd,sha256=FVquyeF2l3omvkJTXR21av5s86tzNlElpndteXZTdM0,22016
|
|
42
|
-
coverage/tracer.pyi,sha256=A_x3UrAuonDZaQlhcaTJCOA4YgsgLXnG1ZffeNGZ6OM,1244
|
|
43
|
-
coverage/types.py,sha256=HTk2YiapshzP2zc5Xu4wJirIOc3hDtiGKHGmXEwZcQM,5851
|
|
44
|
-
coverage/version.py,sha256=B9iFoz1OQBNts5KSv5UdQeFXlfgAE-8KOzcKyRvSVEs,1481
|
|
45
|
-
coverage/xmlreport.py,sha256=R2-2XLNcJuOUydaB5KnVvlCJu3H3vGhxJI0erdm11Qo,10063
|
|
46
|
-
coverage/htmlfiles/coverage_html.js,sha256=PqDTAlVdIaB9gIjEf6JHHysMm_D7HyRe4BzQFfpf3OM,26207
|
|
47
|
-
coverage/htmlfiles/favicon_32.png,sha256=vIEA-odDwRvSQ-syWfSwEnWGUWEv2b-Tv4tzTRfwJWE,1732
|
|
48
|
-
coverage/htmlfiles/index.html,sha256=eciDXoye0zDRlWUY5q4HHlE1FPVG4_y0NZ9_OIwaQ0E,7005
|
|
49
|
-
coverage/htmlfiles/keybd_closed.png,sha256=fZv4rmY3DkNJtPQjrFJ5UBOE5DdNof3mdeCZWC7TOoo,9004
|
|
50
|
-
coverage/htmlfiles/pyfile.html,sha256=dJV8bc3mMQz6J_N2KxVMXNKVge6vnMiQiqqe1QYuZmw,6643
|
|
51
|
-
coverage/htmlfiles/style.css,sha256=hEsJogNnNUUQOvNJRwR2OqJhmcsn03tRhuNWoc2g3VQ,14414
|
|
52
|
-
coverage/htmlfiles/style.scss,sha256=VtMzE1jNJhiN0Ih6mhJ0niyxr9UIYyYtirIe-QVq_vs,19217
|
|
53
|
-
coverage-7.6.7.dist-info/LICENSE.txt,sha256=6z17VIVGasvYHytJb1latjfSeS4mggayfZnnk722dUk,10351
|
|
54
|
-
coverage-7.6.7.dist-info/METADATA,sha256=1ukZEqJzoGxbRjc_rey2c4Es9AH0Uk9uqFyvv26ZA3M,8404
|
|
55
|
-
coverage-7.6.7.dist-info/WHEEL,sha256=my4ecDMeTkOe_7aeLBL_U0dqitPtfIx-YnzDbUy-lzw,101
|
|
56
|
-
coverage-7.6.7.dist-info/entry_points.txt,sha256=1YZ9VNHzvplT76fAhqRNQLG8wmPI5AtUKig-3sjqQJo,123
|
|
57
|
-
coverage-7.6.7.dist-info/top_level.txt,sha256=BjhyiIvusb5OJkqCXjRncTF3soKF-mDOby-hxkWwwv0,9
|
|
58
|
-
coverage-7.6.7.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|