coverage 7.15.1__tar.gz → 7.15.2__tar.gz
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-7.15.1 → coverage-7.15.2}/CHANGES.rst +13 -0
- {coverage-7.15.1 → coverage-7.15.2}/PKG-INFO +7 -7
- {coverage-7.15.1 → coverage-7.15.2}/coverage/control.py +3 -23
- {coverage-7.15.1 → coverage-7.15.2}/coverage/parser.py +8 -2
- {coverage-7.15.1 → coverage-7.15.2}/coverage/python.py +0 -1
- {coverage-7.15.1 → coverage-7.15.2}/coverage/report_core.py +8 -2
- {coverage-7.15.1 → coverage-7.15.2}/coverage/version.py +1 -1
- {coverage-7.15.1 → coverage-7.15.2}/coverage.egg-info/PKG-INFO +7 -7
- {coverage-7.15.1 → coverage-7.15.2}/doc/conf.py +3 -3
- {coverage-7.15.1 → coverage-7.15.2}/.editorconfig +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/.git-blame-ignore-revs +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/.github/CODE_OF_CONDUCT.md +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/.github/FUNDING.yml +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/.github/ISSUE_TEMPLATE/support.md +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/.github/SECURITY.md +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/.github/dependabot.yml +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/.github/workflows/codeql-analysis.yml +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/.github/workflows/coverage.yml +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/.github/workflows/dependency-review.yml +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/.github/workflows/kit.yml +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/.github/workflows/publish.yml +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/.github/workflows/python-nightly.yml +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/.github/workflows/quality.yml +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/.github/workflows/testsuite.yml +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/.github/zizmor.yml +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/.ignore +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/.pre-commit-config.yaml +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/.readthedocs.yaml +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/CITATION.cff +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/CONTRIBUTORS.txt +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/LICENSE.txt +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/MANIFEST.in +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/Makefile +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/NOTICE.txt +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/README.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/__main__.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/a1_coverage.pth +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/ci/README.txt +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/ci/comment_on_fixes.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/ci/session.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/ci/trigger_action.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/ci/update_rtfd.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/__init__.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/__main__.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/annotate.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/bytecode.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/cmdline.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/collector.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/config.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/context.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/core.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/ctracer/datastack.c +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/ctracer/datastack.h +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/ctracer/filedisp.c +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/ctracer/filedisp.h +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/ctracer/module.c +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/ctracer/stats.h +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/ctracer/tracer.c +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/ctracer/tracer.h +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/ctracer/util.h +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/data.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/debug.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/disposition.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/env.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/exceptions.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/execfile.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/files.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/html.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/htmlfiles/coverage_html.js +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/htmlfiles/favicon_32.png +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/htmlfiles/index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/htmlfiles/keybd_closed.png +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/htmlfiles/pyfile.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/htmlfiles/style.css +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/htmlfiles/style.scss +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/inorout.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/jsonreport.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/lcovreport.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/misc.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/multiproc.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/numbits.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/patch.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/phystokens.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/plugin.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/plugin_support.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/pth_file.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/py.typed +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/pytracer.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/regions.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/report.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/results.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/sqldata.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/sqlitedb.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/sysmon.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/templite.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/tomlconfig.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/tracer.pyi +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/types.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage/xmlreport.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage.egg-info/SOURCES.txt +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage.egg-info/dependency_links.txt +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage.egg-info/entry_points.txt +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage.egg-info/not-zip-safe +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage.egg-info/requires.txt +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/coverage.egg-info/top_level.txt +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/_static/coverage.css +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/api.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/api_coverage.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/api_coveragedata.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/api_exceptions.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/api_module.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/api_plugin.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/branch.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/changes.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/cog_helpers.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/commands/cmd_annotate.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/commands/cmd_combine.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/commands/cmd_debug.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/commands/cmd_erase.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/commands/cmd_html.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/commands/cmd_json.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/commands/cmd_lcov.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/commands/cmd_report.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/commands/cmd_reporting.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/commands/cmd_run.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/commands/cmd_xml.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/commands/index.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/config.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/contexts.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/contributing.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/dbschema.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/dict.txt +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/excluding.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/faq.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/howitworks.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/index.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/install.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/media/Tidelift_Logos_RGB_Tidelift_Shorthand_On-White.png +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/media/Tidelift_Logos_RGB_Tidelift_Shorthand_On-White_small.png +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/media/sleepy-snake-600.png +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/media/sleepy-snake-circle-150.png +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/messages.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/migrating.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/other.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/plugins.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/python-coverage.1.txt +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/requirements.in +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/requirements.pip +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/sample_html/favicon_32_cb_c827f16f.png +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/sample_html/keybd_closed_cb_900cfef5.png +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/sleepy.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/source.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/subprocess.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/trouble.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/doc/whatsnew5x.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/howto.txt +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/igor.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/lab/README.txt +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/lab/branches.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/lab/compare_times.sh +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/lab/coverage-04.dtd +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/lab/extract_code.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/lab/goals.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/lab/hack_pyc.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/lab/notes/arcs-to-branches.txt +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/lab/notes/bug1303.txt +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/lab/notes/pypy-738-decorated-functions.txt +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/lab/parse_all.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/lab/parser.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/lab/pick.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/lab/platform_info.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/lab/run_sysmon.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/lab/run_trace.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/lab/select_contexts.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/lab/show_platform.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/lab/show_pyc.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/lab/treetopy.sh +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/lab/warn_executed.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/lab/warn_executed.toml +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/metacov.ini +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/pyproject.toml +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/requirements/dev.in +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/requirements/dev.pip +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/requirements/kit.in +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/requirements/kit.pip +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/requirements/light-threads.in +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/requirements/light-threads.pip +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/requirements/mypy.in +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/requirements/mypy.pip +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/requirements/pins.pip +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/requirements/pip.in +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/requirements/pip.pip +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/requirements/pytest.in +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/requirements/pytest.pip +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/requirements/tox.in +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/requirements/tox.pip +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/setup.cfg +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/setup.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/__init__.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/conftest.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/coveragetest.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/covmodzip1.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/README.rst +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/annotate/anno_dir/multi.py,cover +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/annotate/anno_dir/z_80084bf2fba02475___init__.py,cover +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/annotate/anno_dir/z_80084bf2fba02475_a.py,cover +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/annotate/anno_dir/z_b039179a8a4ce2c2___init__.py,cover +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/annotate/anno_dir/z_b039179a8a4ce2c2_b.py,cover +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/annotate/encodings/utf8.py,cover +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/annotate/mae/mae.py,cover +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/annotate/multi/a/__init__.py,cover +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/annotate/multi/a/a.py,cover +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/annotate/multi/b/__init__.py,cover +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/annotate/multi/b/b.py,cover +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/annotate/multi/multi.py,cover +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/annotate/white/white.py,cover +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/Makefile +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/a/a_py.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/a/class_index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/a/function_index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/a/index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/b_branch/b_py.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/b_branch/class_index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/b_branch/function_index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/b_branch/index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/bom/bom_py.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/bom/class_index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/bom/function_index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/bom/index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/contexts/class_index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/contexts/function_index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/contexts/index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/contexts/two_tests_py.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/isolatin1/class_index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/isolatin1/function_index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/isolatin1/index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/isolatin1/isolatin1_py.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/multiline/class_index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/multiline/function_index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/multiline/index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/multiline/multiline_py.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/omit_1/class_index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/omit_1/function_index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/omit_1/index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/omit_1/m1_py.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/omit_1/m2_py.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/omit_1/m3_py.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/omit_1/main_py.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/omit_2/class_index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/omit_2/function_index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/omit_2/index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/omit_2/m2_py.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/omit_2/m3_py.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/omit_2/main_py.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/omit_3/class_index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/omit_3/function_index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/omit_3/index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/omit_3/m3_py.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/omit_3/main_py.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/omit_4/class_index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/omit_4/function_index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/omit_4/index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/omit_4/m1_py.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/omit_4/m3_py.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/omit_4/main_py.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/omit_5/class_index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/omit_5/function_index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/omit_5/index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/omit_5/m1_py.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/omit_5/main_py.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/other/blah_blah_other_py.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/other/class_index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/other/function_index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/other/here_py.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/other/index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/partial/class_index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/partial/function_index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/partial/index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/partial/partial_py.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/styled/a_py.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/styled/class_index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/styled/function_index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/styled/index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/styled/myextra.css +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/styled/style.css +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/support/coverage_html_cb_dd2e7eb5.js +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/support/favicon_32_cb_c827f16f.png +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/support/keybd_closed_cb_900cfef5.png +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/support/style_cb_a90a112a.css +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/unicode/class_index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/unicode/function_index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/unicode/index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/html/unicode/unicode_py.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/testing/getty/gettysburg.txt +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/testing/xml/output.xml +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/xml/x_xml/coverage.xml +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/gold/xml/y_xml_branch/coverage.xml +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/goldtest.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/helpers.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/js/index.html +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/js/tests.js +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/mixins.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/aa/__init__.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/aa/afile.odd.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/aa/afile.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/aa/bb/__init__.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/aa/bb/bfile.odd.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/aa/bb/bfile.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/aa/bb/cc/__init__.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/aa/bb/cc/cfile.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/aa/bb.odd/bfile.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/aa/zfile.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/ambiguous/__init__.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/ambiguous/pkg1/__init__.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/ambiguous/pkg1/ambiguous.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/checkspec.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/covmod1.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/namespace_420/sub1/__init__.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/pkg1/__init__.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/pkg1/__main__.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/pkg1/p1a.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/pkg1/p1b.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/pkg1/p1c.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/pkg1/runmod2.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/pkg1/sub/__init__.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/pkg1/sub/__main__.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/pkg1/sub/ps1a.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/pkg1/sub/runmod3.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/pkg2/__init__.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/pkg2/p2a.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/pkg2/p2b.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/plugins/__init__.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/plugins/a_plugin.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/plugins/another.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/process_test/__init__.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/process_test/try_execfile.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/runmod1.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/modules/usepkgs.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/moremodules/namespace_420/sub2/__init__.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/moremodules/othermods/__init__.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/moremodules/othermods/othera.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/moremodules/othermods/otherb.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/moremodules/othermods/sub/__init__.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/moremodules/othermods/sub/osa.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/moremodules/othermods/sub/osb.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/osinfo.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/plugin1.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/plugin2.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/plugin_config.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/qunit/jquery.tmpl.min.js +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/select_plugin.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/strategies.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/stress_phystoken.tok +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/stress_phystoken_dos.tok +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_annotate.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_api.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_arcs.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_bytecode.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_cmdline.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_collector.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_concurrency.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_config.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_context.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_core.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_coverage.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_data.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_debug.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_execfile.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_filereporter.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_files.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_goldtest.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_html.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_json.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_lcov.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_misc.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_mixins.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_numbits.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_oddball.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_parser.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_phystokens.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_plugins.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_process.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_python.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_regions.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_report.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_report_common.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_report_core.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_results.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_setup.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_sqlitedb.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_sysmon.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_templite.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_testing.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_venv.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_version.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/test_xml.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/testenv.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/zipsrc/zip1/__init__.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tests/zipsrc/zip1/zip1.py +0 -0
- {coverage-7.15.1 → coverage-7.15.2}/tox.ini +0 -0
|
@@ -22,6 +22,19 @@ upgrading your version of coverage.py.
|
|
|
22
22
|
|
|
23
23
|
.. start-releases
|
|
24
24
|
|
|
25
|
+
.. _changes_7-15-2:
|
|
26
|
+
|
|
27
|
+
Version 7.15.2 — 2026-07-15
|
|
28
|
+
---------------------------
|
|
29
|
+
|
|
30
|
+
- Fix: one of the performance improvements in 7.15.1 (pull 2215) dramatically
|
|
31
|
+
increased memory use during reporting for large projects. Now we use a
|
|
32
|
+
different approach that is both faster and slimmer than 7.15.0. Fixes `issue
|
|
33
|
+
2229`_.
|
|
34
|
+
|
|
35
|
+
.. _issue 2229: https://github.com/coveragepy/coveragepy/issues/2229
|
|
36
|
+
|
|
37
|
+
|
|
25
38
|
.. _changes_7-15-1:
|
|
26
39
|
|
|
27
40
|
Version 7.15.1 — 2026-07-12
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: coverage
|
|
3
|
-
Version: 7.15.
|
|
3
|
+
Version: 7.15.2
|
|
4
4
|
Summary: Code coverage measurement for Python
|
|
5
5
|
Home-page: https://github.com/coveragepy/coveragepy
|
|
6
6
|
Author: Ned Batchelder and 261 others
|
|
7
7
|
Author-email: ned@nedbatchelder.com
|
|
8
8
|
License: Apache-2.0
|
|
9
|
-
Project-URL: Documentation, https://coverage.readthedocs.io/en/7.15.
|
|
9
|
+
Project-URL: Documentation, https://coverage.readthedocs.io/en/7.15.2
|
|
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/coveragepy/coveragepy/issues
|
|
12
12
|
Project-URL: Mastodon, https://hachyderm.io/@coveragepy
|
|
@@ -83,7 +83,7 @@ Coverage.py runs on these versions of Python:
|
|
|
83
83
|
Documentation is on `Read the Docs`_. Code repository and issue tracker are on
|
|
84
84
|
`GitHub`_.
|
|
85
85
|
|
|
86
|
-
.. _Read the Docs: https://coverage.readthedocs.io/en/7.15.
|
|
86
|
+
.. _Read the Docs: https://coverage.readthedocs.io/en/7.15.2/
|
|
87
87
|
.. _GitHub: https://github.com/coveragepy/coveragepy
|
|
88
88
|
|
|
89
89
|
|
|
@@ -112,7 +112,7 @@ Getting Started
|
|
|
112
112
|
Looking to run ``coverage`` on your test suite? See the `Quick Start section`_
|
|
113
113
|
of the docs.
|
|
114
114
|
|
|
115
|
-
.. _Quick Start section: https://coverage.readthedocs.io/en/7.15.
|
|
115
|
+
.. _Quick Start section: https://coverage.readthedocs.io/en/7.15.2/#quick-start
|
|
116
116
|
|
|
117
117
|
|
|
118
118
|
Change history
|
|
@@ -120,7 +120,7 @@ Change history
|
|
|
120
120
|
|
|
121
121
|
The complete history of changes is on the `change history page`_.
|
|
122
122
|
|
|
123
|
-
.. _change history page: https://coverage.readthedocs.io/en/7.15.
|
|
123
|
+
.. _change history page: https://coverage.readthedocs.io/en/7.15.2/changes.html
|
|
124
124
|
|
|
125
125
|
|
|
126
126
|
Code of Conduct
|
|
@@ -139,7 +139,7 @@ Contributing
|
|
|
139
139
|
Found a bug? Want to help improve the code or documentation? See the
|
|
140
140
|
`Contributing section`_ of the docs.
|
|
141
141
|
|
|
142
|
-
.. _Contributing section: https://coverage.readthedocs.io/en/7.15.
|
|
142
|
+
.. _Contributing section: https://coverage.readthedocs.io/en/7.15.2/contributing.html
|
|
143
143
|
|
|
144
144
|
|
|
145
145
|
Security
|
|
@@ -167,7 +167,7 @@ Licensed under the `Apache 2.0 License`_. For details, see `NOTICE.txt`_.
|
|
|
167
167
|
:target: https://github.com/coveragepy/coveragepy/actions/workflows/quality.yml
|
|
168
168
|
:alt: Quality check status
|
|
169
169
|
.. |docs| image:: https://readthedocs.org/projects/coverage/badge/?version=latest&style=flat
|
|
170
|
-
:target: https://coverage.readthedocs.io/en/7.15.
|
|
170
|
+
:target: https://coverage.readthedocs.io/en/7.15.2/
|
|
171
171
|
:alt: Documentation
|
|
172
172
|
.. |kit| image:: https://img.shields.io/pypi/v/coverage
|
|
173
173
|
:target: https://pypi.org/project/coverage/
|
|
@@ -304,8 +304,6 @@ class Coverage(TConfigurable):
|
|
|
304
304
|
self._file_mapper: Callable[[str], str] = abs_file
|
|
305
305
|
self._data_suffix = self._run_suffix = None
|
|
306
306
|
self._exclude_re: dict[str, str] = {}
|
|
307
|
-
self._analysis_cache: dict[TMorf, Analysis] = {}
|
|
308
|
-
self._file_reporter_cache: dict[TMorf, FileReporter] = {}
|
|
309
307
|
self._old_sigterm: Callable[[int, FrameType | None], Any] | None = None
|
|
310
308
|
|
|
311
309
|
# State machine variables:
|
|
@@ -567,7 +565,6 @@ class Coverage(TConfigurable):
|
|
|
567
565
|
if not should_skip:
|
|
568
566
|
assert self._data is not None
|
|
569
567
|
self._data.read()
|
|
570
|
-
self._clear_analysis_caches()
|
|
571
568
|
|
|
572
569
|
def _init_for_start(self) -> None:
|
|
573
570
|
"""Initialization for start()"""
|
|
@@ -780,7 +777,6 @@ class Coverage(TConfigurable):
|
|
|
780
777
|
self._data.erase(parallel=self.config.parallel)
|
|
781
778
|
self._data = None
|
|
782
779
|
self._inited_for_start = False
|
|
783
|
-
self._clear_analysis_caches()
|
|
784
780
|
|
|
785
781
|
def switch_context(self, new_context: str) -> None:
|
|
786
782
|
"""Switch to a new dynamic context.
|
|
@@ -913,7 +909,6 @@ class Coverage(TConfigurable):
|
|
|
913
909
|
keep=keep,
|
|
914
910
|
message=self._message,
|
|
915
911
|
)
|
|
916
|
-
self._clear_analysis_caches()
|
|
917
912
|
|
|
918
913
|
def get_data(self) -> CoverageData:
|
|
919
914
|
"""Get the collected data.
|
|
@@ -935,7 +930,6 @@ class Coverage(TConfigurable):
|
|
|
935
930
|
self._collector.plugin_was_disabled(plugin)
|
|
936
931
|
|
|
937
932
|
if self._collector.flush_data():
|
|
938
|
-
self._clear_analysis_caches()
|
|
939
933
|
self._post_save_work()
|
|
940
934
|
|
|
941
935
|
assert self._data is not None
|
|
@@ -1004,27 +998,18 @@ class Coverage(TConfigurable):
|
|
|
1004
998
|
analysis.missing_formatted(),
|
|
1005
999
|
)
|
|
1006
1000
|
|
|
1007
|
-
def _analyze(self, morf: TMorf) -> Analysis:
|
|
1001
|
+
def _analyze(self, morf: TMorf, file_reporter: FileReporter | None = None) -> Analysis:
|
|
1008
1002
|
"""Analyze a module or file. Private for now."""
|
|
1009
|
-
analysis = self._analysis_cache.get(morf)
|
|
1010
|
-
if analysis is not None:
|
|
1011
|
-
return analysis
|
|
1012
|
-
|
|
1013
1003
|
self._init()
|
|
1014
1004
|
self._post_init()
|
|
1015
1005
|
|
|
1016
1006
|
data = self.get_data()
|
|
1017
|
-
file_reporter
|
|
1007
|
+
if file_reporter is None:
|
|
1008
|
+
file_reporter = self._get_file_reporter(morf)
|
|
1018
1009
|
filename = self._file_mapper(file_reporter.filename)
|
|
1019
1010
|
analysis = analysis_from_file_reporter(data, self.config.precision, file_reporter, filename)
|
|
1020
|
-
self._analysis_cache[morf] = analysis
|
|
1021
1011
|
return analysis
|
|
1022
1012
|
|
|
1023
|
-
def _clear_analysis_caches(self) -> None:
|
|
1024
|
-
"""Forget cached analyses and file reporters, because data changed."""
|
|
1025
|
-
self._analysis_cache.clear()
|
|
1026
|
-
self._file_reporter_cache.clear()
|
|
1027
|
-
|
|
1028
1013
|
def branch_stats(self, morf: TMorf) -> dict[TLineNo, tuple[int, int]]:
|
|
1029
1014
|
"""Get branch statistics about a module.
|
|
1030
1015
|
|
|
@@ -1041,9 +1026,6 @@ class Coverage(TConfigurable):
|
|
|
1041
1026
|
|
|
1042
1027
|
def _get_file_reporter(self, morf: TMorf) -> FileReporter:
|
|
1043
1028
|
"""Get a FileReporter for a module or file name."""
|
|
1044
|
-
cached = self._file_reporter_cache.get(morf)
|
|
1045
|
-
if cached is not None:
|
|
1046
|
-
return cached
|
|
1047
1029
|
assert self._data is not None
|
|
1048
1030
|
plugin = None
|
|
1049
1031
|
file_reporter: str | FileReporter = "python"
|
|
@@ -1068,7 +1050,6 @@ class Coverage(TConfigurable):
|
|
|
1068
1050
|
file_reporter = PythonFileReporter(morf, self)
|
|
1069
1051
|
|
|
1070
1052
|
assert isinstance(file_reporter, FileReporter)
|
|
1071
|
-
self._file_reporter_cache[morf] = file_reporter
|
|
1072
1053
|
return file_reporter
|
|
1073
1054
|
|
|
1074
1055
|
def _get_file_reporters(
|
|
@@ -1093,7 +1074,6 @@ class Coverage(TConfigurable):
|
|
|
1093
1074
|
if not isinstance(morfs, (list, tuple, set)):
|
|
1094
1075
|
morfs = [morfs] # type: ignore[list-item]
|
|
1095
1076
|
|
|
1096
|
-
morfs = sorted(morfs, key=lambda m: m if isinstance(m, str) else m.__name__)
|
|
1097
1077
|
return [(self._get_file_reporter(morf), morf) for morf in morfs]
|
|
1098
1078
|
|
|
1099
1079
|
def _prepare_data_for_reporting(self) -> None:
|
|
@@ -336,8 +336,10 @@ class PythonParser:
|
|
|
336
336
|
`_all_arcs` is the set of arcs in the code.
|
|
337
337
|
|
|
338
338
|
"""
|
|
339
|
-
|
|
340
|
-
|
|
339
|
+
ast_root = self._ast_root
|
|
340
|
+
if ast_root is None:
|
|
341
|
+
ast_root = ast.parse(self.text)
|
|
342
|
+
aaa = AstArcAnalyzer(self.filename, ast_root, self.raw_statements, self.multiline_map)
|
|
341
343
|
aaa.analyze()
|
|
342
344
|
arcs = aaa.arcs
|
|
343
345
|
self._with_jump_fixers = aaa.with_jump_fixers()
|
|
@@ -353,6 +355,10 @@ class PythonParser:
|
|
|
353
355
|
|
|
354
356
|
self._missing_arc_fragments = aaa.missing_arc_fragments
|
|
355
357
|
|
|
358
|
+
# The AST is large and no longer needed: everything derived from it is
|
|
359
|
+
# memoized above. Release it so long-lived parsers don't hold it.
|
|
360
|
+
self._ast_root = None
|
|
361
|
+
|
|
356
362
|
def fix_with_jumps(self, arcs: Iterable[TArc]) -> set[TArc]:
|
|
357
363
|
"""Adjust arcs to fix jumps leaving `with` statements.
|
|
358
364
|
|
|
@@ -93,9 +93,15 @@ def get_analysis_to_report(
|
|
|
93
93
|
if not fr_morfs:
|
|
94
94
|
raise NoDataError("No data to report.")
|
|
95
95
|
|
|
96
|
-
|
|
96
|
+
# fr_morfs is a complete list of all files. FileReporters start very small,
|
|
97
|
+
# but when you use one, it becomes large. We don't want to hold onto them
|
|
98
|
+
# longer than we need to, so instead of a for loop, we'll pop and discard
|
|
99
|
+
# the file reporters as we go.
|
|
100
|
+
fr_morfs.sort(reverse=True)
|
|
101
|
+
while fr_morfs:
|
|
102
|
+
fr, morf = fr_morfs.pop()
|
|
97
103
|
try:
|
|
98
|
-
analysis = coverage._analyze(morf)
|
|
104
|
+
analysis = coverage._analyze(morf, file_reporter=fr)
|
|
99
105
|
except NotPython:
|
|
100
106
|
# Only report errors for .py files, and only if we didn't
|
|
101
107
|
# explicitly suppress those errors.
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: coverage
|
|
3
|
-
Version: 7.15.
|
|
3
|
+
Version: 7.15.2
|
|
4
4
|
Summary: Code coverage measurement for Python
|
|
5
5
|
Home-page: https://github.com/coveragepy/coveragepy
|
|
6
6
|
Author: Ned Batchelder and 261 others
|
|
7
7
|
Author-email: ned@nedbatchelder.com
|
|
8
8
|
License: Apache-2.0
|
|
9
|
-
Project-URL: Documentation, https://coverage.readthedocs.io/en/7.15.
|
|
9
|
+
Project-URL: Documentation, https://coverage.readthedocs.io/en/7.15.2
|
|
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/coveragepy/coveragepy/issues
|
|
12
12
|
Project-URL: Mastodon, https://hachyderm.io/@coveragepy
|
|
@@ -83,7 +83,7 @@ Coverage.py runs on these versions of Python:
|
|
|
83
83
|
Documentation is on `Read the Docs`_. Code repository and issue tracker are on
|
|
84
84
|
`GitHub`_.
|
|
85
85
|
|
|
86
|
-
.. _Read the Docs: https://coverage.readthedocs.io/en/7.15.
|
|
86
|
+
.. _Read the Docs: https://coverage.readthedocs.io/en/7.15.2/
|
|
87
87
|
.. _GitHub: https://github.com/coveragepy/coveragepy
|
|
88
88
|
|
|
89
89
|
|
|
@@ -112,7 +112,7 @@ Getting Started
|
|
|
112
112
|
Looking to run ``coverage`` on your test suite? See the `Quick Start section`_
|
|
113
113
|
of the docs.
|
|
114
114
|
|
|
115
|
-
.. _Quick Start section: https://coverage.readthedocs.io/en/7.15.
|
|
115
|
+
.. _Quick Start section: https://coverage.readthedocs.io/en/7.15.2/#quick-start
|
|
116
116
|
|
|
117
117
|
|
|
118
118
|
Change history
|
|
@@ -120,7 +120,7 @@ Change history
|
|
|
120
120
|
|
|
121
121
|
The complete history of changes is on the `change history page`_.
|
|
122
122
|
|
|
123
|
-
.. _change history page: https://coverage.readthedocs.io/en/7.15.
|
|
123
|
+
.. _change history page: https://coverage.readthedocs.io/en/7.15.2/changes.html
|
|
124
124
|
|
|
125
125
|
|
|
126
126
|
Code of Conduct
|
|
@@ -139,7 +139,7 @@ Contributing
|
|
|
139
139
|
Found a bug? Want to help improve the code or documentation? See the
|
|
140
140
|
`Contributing section`_ of the docs.
|
|
141
141
|
|
|
142
|
-
.. _Contributing section: https://coverage.readthedocs.io/en/7.15.
|
|
142
|
+
.. _Contributing section: https://coverage.readthedocs.io/en/7.15.2/contributing.html
|
|
143
143
|
|
|
144
144
|
|
|
145
145
|
Security
|
|
@@ -167,7 +167,7 @@ Licensed under the `Apache 2.0 License`_. For details, see `NOTICE.txt`_.
|
|
|
167
167
|
:target: https://github.com/coveragepy/coveragepy/actions/workflows/quality.yml
|
|
168
168
|
:alt: Quality check status
|
|
169
169
|
.. |docs| image:: https://readthedocs.org/projects/coverage/badge/?version=latest&style=flat
|
|
170
|
-
:target: https://coverage.readthedocs.io/en/7.15.
|
|
170
|
+
:target: https://coverage.readthedocs.io/en/7.15.2/
|
|
171
171
|
:alt: Documentation
|
|
172
172
|
.. |kit| image:: https://img.shields.io/pypi/v/coverage
|
|
173
173
|
:target: https://pypi.org/project/coverage/
|
|
@@ -69,11 +69,11 @@ project = "Coverage.py"
|
|
|
69
69
|
# @@@ editable
|
|
70
70
|
copyright = "2009–2026, Ned Batchelder" # pylint: disable=redefined-builtin
|
|
71
71
|
# The short X.Y.Z version.
|
|
72
|
-
version = "7.15.
|
|
72
|
+
version = "7.15.2"
|
|
73
73
|
# The full version, including alpha/beta/rc tags.
|
|
74
|
-
release = "7.15.
|
|
74
|
+
release = "7.15.2"
|
|
75
75
|
# The date of release, in "monthname day, year" format.
|
|
76
|
-
release_date = "July
|
|
76
|
+
release_date = "July 15, 2026"
|
|
77
77
|
# @@@ end
|
|
78
78
|
|
|
79
79
|
rst_epilog = f"""
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|