coverage 7.11.4a0.dev1__tar.gz → 7.12.1b1__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.11.4a0.dev1 → coverage-7.12.1b1}/.github/dependabot.yml +3 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/.github/workflows/coverage.yml +1 -1
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/CHANGES.rst +22 -8
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/Makefile +6 -3
- {coverage-7.11.4a0.dev1/coverage.egg-info → coverage-7.12.1b1}/PKG-INFO +8 -8
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/__init__.py +0 -2
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/control.py +49 -24
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/ctracer/tracer.c +8 -6
- {coverage-7.11.4a0.dev1/tests/gold/html/styled → coverage-7.12.1b1/coverage/htmlfiles}/style.css +4 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/htmlfiles/style.scss +4 -2
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/patch.py +3 -51
- coverage-7.12.1b1/coverage/pth_file.py +16 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/report.py +1 -1
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/sysmon.py +7 -3
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/version.py +2 -2
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1/coverage.egg-info}/PKG-INFO +8 -8
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage.egg-info/SOURCES.txt +3 -1
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/conf.py +3 -3
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/config.rst +3 -3
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/index.rst +1 -1
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/howto.txt +7 -4
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/igor.py +6 -9
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/metacov.ini +7 -3
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/setup.py +30 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/conftest.py +0 -13
- {coverage-7.11.4a0.dev1/coverage/htmlfiles → coverage-7.12.1b1/tests/gold/html/styled}/style.css +4 -0
- coverage-7.11.4a0.dev1/tests/gold/html/support/style_cb_8432e98f.css → coverage-7.12.1b1/tests/gold/html/support/style_cb_a5a05ca4.css +4 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_process.py +10 -37
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_report.py +1 -1
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tox.ini +8 -8
- coverage-7.12.1b1/zzz_coverage.pth +1 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/.editorconfig +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/.git-blame-ignore-revs +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/.github/CODE_OF_CONDUCT.md +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/.github/FUNDING.yml +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/.github/ISSUE_TEMPLATE/support.md +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/.github/SECURITY.md +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/.github/workflows/codeql-analysis.yml +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/.github/workflows/dependency-review.yml +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/.github/workflows/kit.yml +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/.github/workflows/publish.yml +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/.github/workflows/python-nightly.yml +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/.github/workflows/quality.yml +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/.github/workflows/testsuite.yml +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/.github/zizmor.yml +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/.ignore +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/.pre-commit-config.yaml +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/.readthedocs.yaml +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/CITATION.cff +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/CONTRIBUTORS.txt +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/LICENSE.txt +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/MANIFEST.in +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/NOTICE.txt +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/README.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/__main__.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/ci/README.txt +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/ci/comment_on_fixes.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/ci/session.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/ci/trigger_action.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/ci/update_rtfd.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/__main__.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/annotate.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/bytecode.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/cmdline.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/collector.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/config.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/context.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/core.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/ctracer/datastack.c +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/ctracer/datastack.h +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/ctracer/filedisp.c +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/ctracer/filedisp.h +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/ctracer/module.c +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/ctracer/stats.h +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/ctracer/tracer.h +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/ctracer/util.h +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/data.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/debug.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/disposition.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/env.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/exceptions.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/execfile.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/files.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/html.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/htmlfiles/coverage_html.js +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/htmlfiles/favicon_32.png +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/htmlfiles/index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/htmlfiles/keybd_closed.png +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/htmlfiles/pyfile.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/inorout.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/jsonreport.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/lcovreport.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/misc.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/multiproc.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/numbits.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/parser.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/phystokens.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/plugin.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/plugin_support.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/py.typed +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/python.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/pytracer.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/regions.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/report_core.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/results.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/sqldata.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/sqlitedb.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/templite.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/tomlconfig.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/tracer.pyi +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/types.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage/xmlreport.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage.egg-info/dependency_links.txt +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage.egg-info/entry_points.txt +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage.egg-info/not-zip-safe +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage.egg-info/requires.txt +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/coverage.egg-info/top_level.txt +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/_static/coverage.css +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/api.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/api_coverage.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/api_coveragedata.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/api_exceptions.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/api_module.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/api_plugin.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/branch.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/changes.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/cog_helpers.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/commands/cmd_annotate.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/commands/cmd_combine.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/commands/cmd_debug.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/commands/cmd_erase.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/commands/cmd_html.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/commands/cmd_json.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/commands/cmd_lcov.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/commands/cmd_report.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/commands/cmd_reporting.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/commands/cmd_run.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/commands/cmd_xml.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/commands/index.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/contexts.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/contributing.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/dbschema.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/dict.txt +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/excluding.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/faq.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/howitworks.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/install.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/media/Tidelift_Logos_RGB_Tidelift_Shorthand_On-White.png +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/media/Tidelift_Logos_RGB_Tidelift_Shorthand_On-White_small.png +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/media/sleepy-snake-600.png +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/media/sleepy-snake-circle-150.png +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/messages.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/migrating.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/other.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/plugins.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/python-coverage.1.txt +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/requirements.in +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/requirements.pip +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/sample_html/favicon_32_cb_58284776.png +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/sample_html/keybd_closed_cb_ce680311.png +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/sleepy.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/source.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/subprocess.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/trouble.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/doc/whatsnew5x.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/lab/README.txt +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/lab/branches.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/lab/compare_times.sh +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/lab/coverage-04.dtd +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/lab/extract_code.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/lab/goals.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/lab/hack_pyc.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/lab/notes/arcs-to-branches.txt +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/lab/notes/bug1303.txt +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/lab/notes/pypy-738-decorated-functions.txt +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/lab/parse_all.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/lab/parser.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/lab/pick.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/lab/platform_info.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/lab/run_sysmon.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/lab/run_trace.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/lab/select_contexts.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/lab/show_platform.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/lab/show_pyc.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/lab/treetopy.sh +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/lab/warn_executed.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/lab/warn_executed.toml +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/pyproject.toml +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/requirements/dev.in +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/requirements/dev.pip +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/requirements/kit.in +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/requirements/kit.pip +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/requirements/light-threads.in +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/requirements/light-threads.pip +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/requirements/mypy.in +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/requirements/mypy.pip +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/requirements/pins.pip +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/requirements/pip.in +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/requirements/pip.pip +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/requirements/pytest.in +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/requirements/pytest.pip +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/requirements/tox.in +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/requirements/tox.pip +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/setup.cfg +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/__init__.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/coveragetest.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/covmodzip1.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/README.rst +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/annotate/anno_dir/multi.py,cover +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/annotate/anno_dir/z_80084bf2fba02475___init__.py,cover +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/annotate/anno_dir/z_80084bf2fba02475_a.py,cover +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/annotate/anno_dir/z_b039179a8a4ce2c2___init__.py,cover +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/annotate/anno_dir/z_b039179a8a4ce2c2_b.py,cover +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/annotate/encodings/utf8.py,cover +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/annotate/mae/mae.py,cover +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/annotate/multi/a/__init__.py,cover +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/annotate/multi/a/a.py,cover +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/annotate/multi/b/__init__.py,cover +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/annotate/multi/b/b.py,cover +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/annotate/multi/multi.py,cover +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/annotate/white/white.py,cover +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/Makefile +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/a/a_py.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/a/class_index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/a/function_index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/a/index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/b_branch/b_py.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/b_branch/class_index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/b_branch/function_index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/b_branch/index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/bom/bom_py.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/bom/class_index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/bom/function_index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/bom/index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/contexts/class_index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/contexts/function_index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/contexts/index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/contexts/two_tests_py.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/isolatin1/class_index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/isolatin1/function_index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/isolatin1/index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/isolatin1/isolatin1_py.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/multiline/class_index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/multiline/function_index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/multiline/index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/multiline/multiline_py.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/omit_1/class_index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/omit_1/function_index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/omit_1/index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/omit_1/m1_py.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/omit_1/m2_py.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/omit_1/m3_py.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/omit_1/main_py.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/omit_2/class_index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/omit_2/function_index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/omit_2/index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/omit_2/m2_py.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/omit_2/m3_py.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/omit_2/main_py.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/omit_3/class_index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/omit_3/function_index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/omit_3/index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/omit_3/m3_py.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/omit_3/main_py.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/omit_4/class_index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/omit_4/function_index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/omit_4/index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/omit_4/m1_py.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/omit_4/m3_py.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/omit_4/main_py.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/omit_5/class_index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/omit_5/function_index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/omit_5/index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/omit_5/m1_py.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/omit_5/main_py.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/other/blah_blah_other_py.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/other/class_index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/other/function_index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/other/here_py.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/other/index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/partial/class_index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/partial/function_index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/partial/index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/partial/partial_py.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/styled/a_py.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/styled/class_index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/styled/function_index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/styled/index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/styled/myextra.css +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/support/coverage_html_cb_bcae5fc4.js +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/support/favicon_32_cb_58284776.png +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/support/keybd_closed_cb_ce680311.png +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/unicode/class_index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/unicode/function_index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/unicode/index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/html/unicode/unicode_py.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/testing/getty/gettysburg.txt +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/testing/xml/output.xml +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/xml/x_xml/coverage.xml +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/gold/xml/y_xml_branch/coverage.xml +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/goldtest.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/helpers.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/js/index.html +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/js/tests.js +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/mixins.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/aa/__init__.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/aa/afile.odd.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/aa/afile.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/aa/bb/__init__.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/aa/bb/bfile.odd.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/aa/bb/bfile.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/aa/bb/cc/__init__.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/aa/bb/cc/cfile.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/aa/bb.odd/bfile.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/aa/zfile.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/ambiguous/__init__.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/ambiguous/pkg1/__init__.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/ambiguous/pkg1/ambiguous.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/covmod1.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/namespace_420/sub1/__init__.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/pkg1/__init__.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/pkg1/__main__.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/pkg1/p1a.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/pkg1/p1b.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/pkg1/p1c.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/pkg1/runmod2.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/pkg1/sub/__init__.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/pkg1/sub/__main__.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/pkg1/sub/ps1a.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/pkg1/sub/runmod3.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/pkg2/__init__.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/pkg2/p2a.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/pkg2/p2b.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/plugins/__init__.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/plugins/a_plugin.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/plugins/another.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/process_test/__init__.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/process_test/try_execfile.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/runmod1.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/modules/usepkgs.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/moremodules/namespace_420/sub2/__init__.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/moremodules/othermods/__init__.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/moremodules/othermods/othera.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/moremodules/othermods/otherb.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/moremodules/othermods/sub/__init__.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/moremodules/othermods/sub/osa.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/moremodules/othermods/sub/osb.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/osinfo.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/plugin1.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/plugin2.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/plugin_config.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/qunit/jquery.tmpl.min.js +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/select_plugin.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/stress_phystoken.tok +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/stress_phystoken_dos.tok +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_annotate.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_api.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_arcs.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_bytecode.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_cmdline.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_collector.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_concurrency.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_config.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_context.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_core.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_coverage.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_data.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_debug.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_execfile.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_filereporter.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_files.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_goldtest.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_html.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_json.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_lcov.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_misc.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_mixins.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_numbits.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_oddball.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_parser.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_phystokens.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_plugins.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_python.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_regions.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_report_common.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_report_core.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_results.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_setup.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_sqlitedb.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_templite.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_testing.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_venv.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_version.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/test_xml.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/testenv.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/zipsrc/zip1/__init__.py +0 -0
- {coverage-7.11.4a0.dev1 → coverage-7.12.1b1}/tests/zipsrc/zip1/zip1.py +0 -0
|
@@ -10,6 +10,9 @@ updates:
|
|
|
10
10
|
# Check for updates to GitHub Actions once a week
|
|
11
11
|
interval: "weekly"
|
|
12
12
|
day: "sunday"
|
|
13
|
+
cooldown:
|
|
14
|
+
# https://blog.yossarian.net/2025/11/21/We-should-all-be-using-dependency-cooldowns
|
|
15
|
+
default-days: 10
|
|
13
16
|
groups:
|
|
14
17
|
action-dependencies:
|
|
15
18
|
patterns:
|
|
@@ -262,7 +262,7 @@ jobs:
|
|
|
262
262
|
echo "sha10=$SHA10" >> $GITHUB_ENV
|
|
263
263
|
echo "slug=$SLUG" >> $GITHUB_ENV
|
|
264
264
|
echo "report_dir=reports/$SLUG/htmlcov" >> $GITHUB_ENV
|
|
265
|
-
echo "url=https://
|
|
265
|
+
echo "url=https://coveragepy.github.io/metacov-reports/reports/$SLUG/htmlcov" >> $GITHUB_ENV
|
|
266
266
|
echo "branch=${REF#refs/heads/}" >> $GITHUB_ENV
|
|
267
267
|
|
|
268
268
|
- name: "Checkout reports repo"
|
|
@@ -20,15 +20,31 @@ upgrading your version of coverage.py.
|
|
|
20
20
|
.. Version 9.8.1 — 2027-07-27
|
|
21
21
|
.. --------------------------
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
.. start-releases
|
|
24
|
+
|
|
25
|
+
.. _changes_7-12-1b1:
|
|
26
|
+
|
|
27
|
+
Version 7.12.1b1 — 2025-11-30
|
|
28
|
+
-----------------------------
|
|
29
|
+
|
|
30
|
+
- Fix: coverage.py now includes a permanent .pth file in the distribution which
|
|
31
|
+
is installed with the code. This fixes `issue 2084`_: failure to patch for
|
|
32
|
+
subprocess measurement when site-packages is not writable.
|
|
33
|
+
|
|
34
|
+
.. _issue 2084: https://github.com/coveragepy/coveragepy/issues/2084
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
.. _changes_7-12-0:
|
|
38
|
+
|
|
39
|
+
Version 7.12.0 — 2025-11-18
|
|
40
|
+
---------------------------
|
|
25
41
|
|
|
26
42
|
- The HTML report now shows separate coverage totals for statements and
|
|
27
43
|
branches, as well as the usual combined coverage percentage. Thanks to Ryuta
|
|
28
44
|
Otsuka for the `discussion <issue 2081_>`_ and the `implementation
|
|
29
45
|
<pull 2085_>`_.
|
|
30
46
|
|
|
31
|
-
- The JSON report now
|
|
47
|
+
- The JSON report now includes separate coverage totals for statements and
|
|
32
48
|
branches, thanks to `Ryuta Otsuka <pull 2090_>`_.
|
|
33
49
|
|
|
34
50
|
- Fix: ``except*`` clauses were not handled properly under the "sysmon"
|
|
@@ -38,14 +54,14 @@ Unreleased
|
|
|
38
54
|
- Fix: we now defend against aggressive mocking of ``open()`` that could cause
|
|
39
55
|
errors inside coverage.py. An example of a failure is in `issue 2083`_.
|
|
40
56
|
|
|
41
|
-
- A small tweak to the HTML report: file paths now use thin spaces around
|
|
42
|
-
slashes to make them easier to read.
|
|
43
|
-
|
|
44
57
|
- Fix: in unusual cases where a test suite intentionally exhausts the system's
|
|
45
58
|
file descriptors to test handling errors in ``open()``, coverage.py would
|
|
46
59
|
fail when trying to open source files, as described in `issue 2091`_. This
|
|
47
60
|
is now fixed.
|
|
48
61
|
|
|
62
|
+
- A small tweak to the HTML report: file paths now use thin spaces around
|
|
63
|
+
slashes to make them easier to read.
|
|
64
|
+
|
|
49
65
|
.. _issue 2081: https://github.com/coveragepy/coveragepy/issues/2081
|
|
50
66
|
.. _issue 2083: https://github.com/coveragepy/coveragepy/issues/2083
|
|
51
67
|
.. _pull 2085: https://github.com/coveragepy/coveragepy/pull/2085
|
|
@@ -54,8 +70,6 @@ Unreleased
|
|
|
54
70
|
.. _issue 2091: https://github.com/coveragepy/coveragepy/issues/2091
|
|
55
71
|
|
|
56
72
|
|
|
57
|
-
.. start-releases
|
|
58
|
-
|
|
59
73
|
.. _changes_7-11-3:
|
|
60
74
|
|
|
61
75
|
Version 7.11.3 — 2025-11-09
|
|
@@ -42,6 +42,7 @@ clean: debug_clean _clean_platform ## Remove artifacts of test execution, instal
|
|
|
42
42
|
@rm -f tests/covmain.zip tests/zipmods.zip tests/zip1.zip
|
|
43
43
|
@rm -rf doc/_build doc/_spell doc/sample_html_beta
|
|
44
44
|
@rm -rf tmp
|
|
45
|
+
@rm -rf zzz_coverage.pth
|
|
45
46
|
@rm -rf .*cache */.*cache */*/.*cache */*/*/.*cache .hypothesis
|
|
46
47
|
@rm -rf tests/actual
|
|
47
48
|
@-make -C tests/gold/html clean
|
|
@@ -114,7 +115,9 @@ KITBIN = .tox/$(KITVER)/bin
|
|
|
114
115
|
$(KITBIN):
|
|
115
116
|
tox -q -e $(KITVER) --notest
|
|
116
117
|
|
|
117
|
-
|
|
118
|
+
# Limit to packages that were released more than 10 days ago.
|
|
119
|
+
# https://blog.yossarian.net/2025/11/21/We-should-all-be-using-dependency-cooldowns
|
|
120
|
+
PIP_COMPILE = uv pip compile -q --universal --exclude-newer=$$(date -v-10d +%Y-%m-%d) ${COMPILE_OPTS}
|
|
118
121
|
upgrade: ## Update the *.pip files with the latest packages satisfying *.in files.
|
|
119
122
|
$(MAKE) _upgrade COMPILE_OPTS="--upgrade"
|
|
120
123
|
|
|
@@ -213,7 +216,7 @@ relcommit2: #: Commit the latest sample HTML report (see howto.txt).
|
|
|
213
216
|
git add doc/sample_html
|
|
214
217
|
git commit -am "docs: sample HTML for $$(python setup.py --version)"
|
|
215
218
|
|
|
216
|
-
kit: ## Make the source distribution
|
|
219
|
+
kit: ## Make the source distribution and one wheel
|
|
217
220
|
python -m build
|
|
218
221
|
|
|
219
222
|
pypi_upload: ## Upload the built distributions to PyPI.
|
|
@@ -233,7 +236,7 @@ kit_local:
|
|
|
233
236
|
# don't go crazy trying to figure out why our new code isn't installing.
|
|
234
237
|
find ~/Library/Caches/pip/wheels -name 'coverage-*' -delete
|
|
235
238
|
|
|
236
|
-
build_kits: ## Trigger GitHub to build
|
|
239
|
+
build_kits: ## Trigger GitHub to build all the distributions.
|
|
237
240
|
python ci/trigger_action.py $(REPO_OWNER) build-kits
|
|
238
241
|
|
|
239
242
|
tag: #: Make a git tag with the version number (see howto.txt).
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: coverage
|
|
3
|
-
Version: 7.
|
|
3
|
+
Version: 7.12.1b1
|
|
4
4
|
Summary: Code coverage measurement for Python
|
|
5
5
|
Home-page: https://github.com/coveragepy/coveragepy
|
|
6
6
|
Author: Ned Batchelder and 245 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.12.1b1
|
|
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
|
|
@@ -28,7 +28,7 @@ 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
|
-
Classifier: Development Status ::
|
|
31
|
+
Classifier: Development Status :: 4 - Beta
|
|
32
32
|
Requires-Python: >=3.10
|
|
33
33
|
Description-Content-Type: text/x-rst
|
|
34
34
|
License-File: LICENSE.txt
|
|
@@ -82,7 +82,7 @@ Coverage.py runs on these versions of Python:
|
|
|
82
82
|
Documentation is on `Read the Docs`_. Code repository and issue tracker are on
|
|
83
83
|
`GitHub`_.
|
|
84
84
|
|
|
85
|
-
.. _Read the Docs: https://coverage.readthedocs.io/en/7.
|
|
85
|
+
.. _Read the Docs: https://coverage.readthedocs.io/en/7.12.1b1/
|
|
86
86
|
.. _GitHub: https://github.com/coveragepy/coveragepy
|
|
87
87
|
|
|
88
88
|
**New in 7.x:**
|
|
@@ -132,7 +132,7 @@ Getting Started
|
|
|
132
132
|
Looking to run ``coverage`` on your test suite? See the `Quick Start section`_
|
|
133
133
|
of the docs.
|
|
134
134
|
|
|
135
|
-
.. _Quick Start section: https://coverage.readthedocs.io/en/7.
|
|
135
|
+
.. _Quick Start section: https://coverage.readthedocs.io/en/7.12.1b1/#quick-start
|
|
136
136
|
|
|
137
137
|
|
|
138
138
|
Change history
|
|
@@ -140,7 +140,7 @@ Change history
|
|
|
140
140
|
|
|
141
141
|
The complete history of changes is on the `change history page`_.
|
|
142
142
|
|
|
143
|
-
.. _change history page: https://coverage.readthedocs.io/en/7.
|
|
143
|
+
.. _change history page: https://coverage.readthedocs.io/en/7.12.1b1/changes.html
|
|
144
144
|
|
|
145
145
|
|
|
146
146
|
Code of Conduct
|
|
@@ -159,7 +159,7 @@ Contributing
|
|
|
159
159
|
Found a bug? Want to help improve the code or documentation? See the
|
|
160
160
|
`Contributing section`_ of the docs.
|
|
161
161
|
|
|
162
|
-
.. _Contributing section: https://coverage.readthedocs.io/en/7.
|
|
162
|
+
.. _Contributing section: https://coverage.readthedocs.io/en/7.12.1b1/contributing.html
|
|
163
163
|
|
|
164
164
|
|
|
165
165
|
Security
|
|
@@ -187,7 +187,7 @@ Licensed under the `Apache 2.0 License`_. For details, see `NOTICE.txt`_.
|
|
|
187
187
|
:target: https://github.com/coveragepy/coveragepy/actions/workflows/quality.yml
|
|
188
188
|
:alt: Quality check status
|
|
189
189
|
.. |docs| image:: https://readthedocs.org/projects/coverage/badge/?version=latest&style=flat
|
|
190
|
-
:target: https://coverage.readthedocs.io/en/7.
|
|
190
|
+
:target: https://coverage.readthedocs.io/en/7.12.1b1/
|
|
191
191
|
:alt: Documentation
|
|
192
192
|
.. |kit| image:: https://img.shields.io/pypi/v/coverage
|
|
193
193
|
:target: https://pypi.org/project/coverage/
|
|
@@ -11,8 +11,6 @@ https://coverage.readthedocs.io
|
|
|
11
11
|
|
|
12
12
|
from __future__ import annotations
|
|
13
13
|
|
|
14
|
-
# isort: skip_file
|
|
15
|
-
|
|
16
14
|
# mypy's convention is that "import as" names are public from the module.
|
|
17
15
|
# We import names as themselves to indicate that. Pylint sees it as pointless,
|
|
18
16
|
# so disable its warning.
|
|
@@ -288,9 +288,6 @@ class Coverage(TConfigurable):
|
|
|
288
288
|
self._no_warn_slugs: set[str] = set()
|
|
289
289
|
self._messages = messages
|
|
290
290
|
|
|
291
|
-
# If we're invoked from a .pth file, we shouldn't try to make another one.
|
|
292
|
-
self._make_pth_file = True
|
|
293
|
-
|
|
294
291
|
# A record of all the warnings that have been issued.
|
|
295
292
|
self._warnings: list[str] = []
|
|
296
293
|
|
|
@@ -354,6 +351,17 @@ class Coverage(TConfigurable):
|
|
|
354
351
|
if not env.METACOV:
|
|
355
352
|
_prevent_sub_process_measurement()
|
|
356
353
|
|
|
354
|
+
def __repr__(self) -> str:
|
|
355
|
+
core_name = self._core.tracer_class.__name__ if self._core is not None else "-none-"
|
|
356
|
+
data_file = repr(self._data._filename) if self._data is not None else "-none-"
|
|
357
|
+
return (
|
|
358
|
+
"<Coverage"
|
|
359
|
+
+ f" @0x{id(self):x}"
|
|
360
|
+
+ f" core={core_name}"
|
|
361
|
+
+ f" data_file={data_file}"
|
|
362
|
+
+ ">"
|
|
363
|
+
)
|
|
364
|
+
|
|
357
365
|
def _init(self) -> None:
|
|
358
366
|
"""Set all the initial state.
|
|
359
367
|
|
|
@@ -708,7 +716,7 @@ class Coverage(TConfigurable):
|
|
|
708
716
|
if self._auto_load:
|
|
709
717
|
self.load()
|
|
710
718
|
|
|
711
|
-
apply_patches(self, self.config, self._debug
|
|
719
|
+
apply_patches(self, self.config, self._debug)
|
|
712
720
|
|
|
713
721
|
self._collector.start()
|
|
714
722
|
self._started = True
|
|
@@ -1418,12 +1426,21 @@ if int(os.getenv("COVERAGE_DEBUG_CALLS", 0)): # pragma: debugging
|
|
|
1418
1426
|
)(Coverage)
|
|
1419
1427
|
|
|
1420
1428
|
|
|
1421
|
-
def process_startup(
|
|
1429
|
+
def process_startup(
|
|
1430
|
+
*,
|
|
1431
|
+
force: bool = False,
|
|
1432
|
+
slug: str = "default", # pylint: disable=unused-argument
|
|
1433
|
+
) -> Coverage | None:
|
|
1422
1434
|
"""Call this at Python start-up to perhaps measure coverage.
|
|
1423
1435
|
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
to use.
|
|
1436
|
+
Coverage is started if one of these environment variables is defined:
|
|
1437
|
+
|
|
1438
|
+
- COVERAGE_PROCESS_START: the config file to use.
|
|
1439
|
+
- COVERAGE_PROCESS_CONFIG: the config data to use, a string produced by
|
|
1440
|
+
CoverageConfig.serialize, prefixed by ":data:".
|
|
1441
|
+
|
|
1442
|
+
If one of these is defined, it's used to get the coverage configuration,
|
|
1443
|
+
and coverage is started.
|
|
1427
1444
|
|
|
1428
1445
|
For details, see https://coverage.readthedocs.io/en/latest/subprocess.html.
|
|
1429
1446
|
|
|
@@ -1431,6 +1448,29 @@ def process_startup(*, force: bool = False) -> Coverage | None:
|
|
|
1431
1448
|
not started by this call.
|
|
1432
1449
|
|
|
1433
1450
|
"""
|
|
1451
|
+
# This function can be called more than once in a process, for a few
|
|
1452
|
+
# reasons.
|
|
1453
|
+
#
|
|
1454
|
+
# 1) We install a .pth file in multiple places reported by the site module,
|
|
1455
|
+
# so this function can be called more than once even in simple
|
|
1456
|
+
# situations.
|
|
1457
|
+
#
|
|
1458
|
+
# 2) In some virtualenv configurations the same directory is visible twice
|
|
1459
|
+
# in sys.path. This means that the .pth file will be found twice and
|
|
1460
|
+
# executed twice, executing this function twice.
|
|
1461
|
+
# https://github.com/coveragepy/coveragepy/issues/340 has more details.
|
|
1462
|
+
#
|
|
1463
|
+
# We set a global flag (an attribute on this function) to indicate that
|
|
1464
|
+
# coverage.py has already been started, so we can avoid starting it twice.
|
|
1465
|
+
|
|
1466
|
+
if not force and hasattr(process_startup, "coverage"):
|
|
1467
|
+
# We've annotated this function before, so we must have already
|
|
1468
|
+
# auto-started coverage.py in this process. Nothing to do.
|
|
1469
|
+
return None
|
|
1470
|
+
|
|
1471
|
+
# Now check for the environment variables that request coverage. If they
|
|
1472
|
+
# aren't set, do nothing.
|
|
1473
|
+
|
|
1434
1474
|
config_data = os.getenv("COVERAGE_PROCESS_CONFIG")
|
|
1435
1475
|
cps = os.getenv("COVERAGE_PROCESS_START")
|
|
1436
1476
|
if config_data is not None:
|
|
@@ -1441,27 +1481,12 @@ def process_startup(*, force: bool = False) -> Coverage | None:
|
|
|
1441
1481
|
# No request for coverage, nothing to do.
|
|
1442
1482
|
return None
|
|
1443
1483
|
|
|
1444
|
-
# This function can be called more than once in a process. This happens
|
|
1445
|
-
# because some virtualenv configurations make the same directory visible
|
|
1446
|
-
# twice in sys.path. This means that the .pth file will be found twice,
|
|
1447
|
-
# and executed twice, executing this function twice. We set a global
|
|
1448
|
-
# flag (an attribute on this function) to indicate that coverage.py has
|
|
1449
|
-
# already been started, so we can avoid doing it twice.
|
|
1450
|
-
#
|
|
1451
|
-
# https://github.com/coveragepy/coveragepy/issues/340 has more details.
|
|
1452
|
-
|
|
1453
|
-
if not force and hasattr(process_startup, "coverage"):
|
|
1454
|
-
# We've annotated this function before, so we must have already
|
|
1455
|
-
# auto-started coverage.py in this process. Nothing to do.
|
|
1456
|
-
return None
|
|
1457
|
-
|
|
1458
1484
|
cov = Coverage(config_file=config_file)
|
|
1459
1485
|
process_startup.coverage = cov # type: ignore[attr-defined]
|
|
1460
1486
|
cov._warn_no_data = False
|
|
1461
1487
|
cov._warn_unimported_source = False
|
|
1462
1488
|
cov._warn_preimported_source = False
|
|
1463
1489
|
cov._auto_save = True
|
|
1464
|
-
cov._make_pth_file = False
|
|
1465
1490
|
cov.start()
|
|
1466
1491
|
|
|
1467
1492
|
return cov
|
|
@@ -1471,7 +1496,7 @@ def _after_fork_in_child() -> None:
|
|
|
1471
1496
|
"""Used by patch=fork in the child process to restart coverage."""
|
|
1472
1497
|
if cov := Coverage.current():
|
|
1473
1498
|
cov.stop()
|
|
1474
|
-
process_startup(force=True)
|
|
1499
|
+
process_startup(force=True, slug="fork")
|
|
1475
1500
|
|
|
1476
1501
|
|
|
1477
1502
|
def _prevent_sub_process_measurement() -> None:
|
|
@@ -137,23 +137,25 @@ static void
|
|
|
137
137
|
CTracer_showlog(CTracer * self, int lineno, PyObject * filename, const char * msg)
|
|
138
138
|
{
|
|
139
139
|
if (logging) {
|
|
140
|
+
FILE *flog = fopen("/tmp/debug_trace.txt", "a");
|
|
140
141
|
int depth = self->pdata_stack->depth;
|
|
141
|
-
|
|
142
|
+
fprintf(flog, "%p: %s%3d ", self, indent(depth), depth);
|
|
142
143
|
if (lineno) {
|
|
143
|
-
|
|
144
|
+
fprintf(flog, "%4d", lineno);
|
|
144
145
|
}
|
|
145
146
|
else {
|
|
146
|
-
|
|
147
|
+
fprintf(flog, " ");
|
|
147
148
|
}
|
|
148
149
|
if (filename) {
|
|
149
150
|
PyObject *ascii = PyUnicode_AsASCIIString(filename);
|
|
150
|
-
|
|
151
|
+
fprintf(flog, " %s", PyBytes_AS_STRING(ascii));
|
|
151
152
|
Py_DECREF(ascii);
|
|
152
153
|
}
|
|
153
154
|
if (msg) {
|
|
154
|
-
|
|
155
|
+
fprintf(flog, " %s", msg);
|
|
155
156
|
}
|
|
156
|
-
|
|
157
|
+
fprintf(flog, "\n");
|
|
158
|
+
fclose(flog);
|
|
157
159
|
}
|
|
158
160
|
}
|
|
159
161
|
|
{coverage-7.11.4a0.dev1/tests/gold/html/styled → coverage-7.12.1b1/coverage/htmlfiles}/style.css
RENAMED
|
@@ -344,6 +344,8 @@ kbd { border: 1px solid black; border-color: #888 #333 #333 #888; padding: .1em
|
|
|
344
344
|
|
|
345
345
|
@media (prefers-color-scheme: dark) { #index th { color: #ddd; } }
|
|
346
346
|
|
|
347
|
+
@media (prefers-color-scheme: dark) { #index th { border-color: #444; } }
|
|
348
|
+
|
|
347
349
|
#index th:hover { background: #eee; }
|
|
348
350
|
|
|
349
351
|
@media (prefers-color-scheme: dark) { #index th:hover { background: #333; } }
|
|
@@ -360,6 +362,8 @@ kbd { border: 1px solid black; border-color: #888 #333 #333 #888; padding: .1em
|
|
|
360
362
|
|
|
361
363
|
#index tr.grouphead th { cursor: default; font-style: normal; border-color: #999; }
|
|
362
364
|
|
|
365
|
+
@media (prefers-color-scheme: dark) { #index tr.grouphead th { border-color: #777; } }
|
|
366
|
+
|
|
363
367
|
#index td.name { font-size: 1.15em; }
|
|
364
368
|
|
|
365
369
|
#index td.name a { text-decoration: none; color: inherit; }
|
|
@@ -759,7 +759,8 @@ $border-indicator-width: .2em;
|
|
|
759
759
|
font-style: italic;
|
|
760
760
|
color: $light-gray6;
|
|
761
761
|
@include color-dark($dark-gray6);
|
|
762
|
-
border-color:
|
|
762
|
+
border-color: $light-gray3;
|
|
763
|
+
@include border-color-dark($dark-gray3);
|
|
763
764
|
cursor: pointer;
|
|
764
765
|
&:hover {
|
|
765
766
|
background: $light-gray2;
|
|
@@ -789,7 +790,8 @@ $border-indicator-width: .2em;
|
|
|
789
790
|
th {
|
|
790
791
|
cursor: default;
|
|
791
792
|
font-style: normal;
|
|
792
|
-
border-color:
|
|
793
|
+
border-color: $light-gray4;
|
|
794
|
+
@include border-color-dark($dark-gray4);
|
|
793
795
|
}
|
|
794
796
|
}
|
|
795
797
|
td.name {
|
|
@@ -5,15 +5,12 @@
|
|
|
5
5
|
|
|
6
6
|
from __future__ import annotations
|
|
7
7
|
|
|
8
|
-
import atexit
|
|
9
8
|
import contextlib
|
|
10
9
|
import os
|
|
11
|
-
import site
|
|
12
|
-
from pathlib import Path
|
|
13
10
|
from typing import TYPE_CHECKING, Any, NoReturn
|
|
14
11
|
|
|
15
12
|
from coverage import env
|
|
16
|
-
from coverage.debug import
|
|
13
|
+
from coverage.debug import DevNullDebug
|
|
17
14
|
from coverage.exceptions import ConfigError, CoverageException
|
|
18
15
|
|
|
19
16
|
if TYPE_CHECKING:
|
|
@@ -26,8 +23,6 @@ def apply_patches(
|
|
|
26
23
|
cov: Coverage,
|
|
27
24
|
config: CoverageConfig,
|
|
28
25
|
debug: TDebugCtl,
|
|
29
|
-
*,
|
|
30
|
-
make_pth_file: bool = True,
|
|
31
26
|
) -> None:
|
|
32
27
|
"""Apply invasive patches requested by `[run] patch=`."""
|
|
33
28
|
debug = debug if debug.should("patch") else DevNullDebug()
|
|
@@ -43,7 +38,7 @@ def apply_patches(
|
|
|
43
38
|
_patch_fork(debug)
|
|
44
39
|
|
|
45
40
|
case "subprocess":
|
|
46
|
-
_patch_subprocess(config, debug
|
|
41
|
+
_patch_subprocess(config, debug)
|
|
47
42
|
|
|
48
43
|
case _:
|
|
49
44
|
raise ConfigError(f"Unknown patch {patch!r}")
|
|
@@ -116,51 +111,8 @@ def _patch_fork(debug: TDebugCtl) -> None:
|
|
|
116
111
|
os.register_at_fork(after_in_child=_after_fork_in_child)
|
|
117
112
|
|
|
118
113
|
|
|
119
|
-
def _patch_subprocess(config: CoverageConfig, debug: TDebugCtl
|
|
114
|
+
def _patch_subprocess(config: CoverageConfig, debug: TDebugCtl) -> None:
|
|
120
115
|
"""Write .pth files and set environment vars to measure subprocesses."""
|
|
121
116
|
debug.write("Patching subprocess")
|
|
122
|
-
|
|
123
|
-
if make_pth_file:
|
|
124
|
-
pth_files = create_pth_files(debug)
|
|
125
|
-
|
|
126
|
-
def delete_pth_files() -> None:
|
|
127
|
-
for p in pth_files:
|
|
128
|
-
debug.write(f"Deleting subprocess .pth file: {str(p)!r}")
|
|
129
|
-
p.unlink(missing_ok=True)
|
|
130
|
-
|
|
131
|
-
atexit.register(delete_pth_files)
|
|
132
117
|
assert config.config_file is not None
|
|
133
118
|
os.environ["COVERAGE_PROCESS_CONFIG"] = config.serialize()
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
# Writing .pth files is not obvious. On Windows, getsitepackages() returns two
|
|
137
|
-
# directories. A .pth file in the first will be run, but coverage isn't
|
|
138
|
-
# importable yet. We write into all the places we can, but with defensive
|
|
139
|
-
# import code.
|
|
140
|
-
|
|
141
|
-
PTH_CODE = """\
|
|
142
|
-
try:
|
|
143
|
-
import coverage
|
|
144
|
-
except:
|
|
145
|
-
pass
|
|
146
|
-
else:
|
|
147
|
-
coverage.process_startup()
|
|
148
|
-
"""
|
|
149
|
-
|
|
150
|
-
PTH_TEXT = f"import sys; exec({PTH_CODE!r})\n"
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
def create_pth_files(debug: TDebugCtl = NoDebugging()) -> list[Path]:
|
|
154
|
-
"""Create .pth files for measuring subprocesses."""
|
|
155
|
-
pth_files = []
|
|
156
|
-
for pth_dir in site.getsitepackages():
|
|
157
|
-
pth_file = Path(pth_dir) / f"subcover_{os.getpid()}.pth"
|
|
158
|
-
try:
|
|
159
|
-
if debug.should("patch"):
|
|
160
|
-
debug.write(f"Writing subprocess .pth file: {str(pth_file)!r}")
|
|
161
|
-
pth_file.write_text(PTH_TEXT, encoding="utf-8")
|
|
162
|
-
except OSError: # pragma: cant happen
|
|
163
|
-
continue
|
|
164
|
-
else:
|
|
165
|
-
pth_files.append(pth_file)
|
|
166
|
-
return pth_files
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
|
|
2
|
+
# For details: https://github.com/coveragepy/coveragepy/blob/main/NOTICE.txt
|
|
3
|
+
|
|
4
|
+
# pylint: disable=missing-module-docstring
|
|
5
|
+
# pragma: exclude file from coverage
|
|
6
|
+
# This will become the .pth file for subprocesses.
|
|
7
|
+
|
|
8
|
+
import os
|
|
9
|
+
|
|
10
|
+
if os.getenv("COVERAGE_PROCESS_START") or os.getenv("COVERAGE_PROCESS_CONFIG"):
|
|
11
|
+
try:
|
|
12
|
+
import coverage
|
|
13
|
+
except: # pylint: disable=bare-except
|
|
14
|
+
pass
|
|
15
|
+
else:
|
|
16
|
+
coverage.process_startup(slug="pth")
|
|
@@ -265,7 +265,7 @@ class SysMonitor(Tracer):
|
|
|
265
265
|
self.sysmon_branch_either,
|
|
266
266
|
)
|
|
267
267
|
register(
|
|
268
|
-
events.BRANCH_LEFT,
|
|
268
|
+
events.BRANCH_LEFT,
|
|
269
269
|
self.sysmon_branch_either,
|
|
270
270
|
)
|
|
271
271
|
else:
|
|
@@ -326,6 +326,10 @@ class SysMonitor(Tracer):
|
|
|
326
326
|
if self.stats is not None:
|
|
327
327
|
self.stats["starts"] += 1
|
|
328
328
|
|
|
329
|
+
if code.co_name == "__annotate__":
|
|
330
|
+
# Type annotation code objects don't execute, ignore them.
|
|
331
|
+
return DISABLE
|
|
332
|
+
|
|
329
333
|
# Entering a new frame. Decide if we should trace in this file.
|
|
330
334
|
code_info = self.code_infos.get(id(code))
|
|
331
335
|
tracing_code: bool | None = None
|
|
@@ -385,7 +389,7 @@ class SysMonitor(Tracer):
|
|
|
385
389
|
assert env.PYBEHAVIOR.branch_right_left
|
|
386
390
|
local_events |= (
|
|
387
391
|
events.BRANCH_RIGHT # type:ignore[attr-defined]
|
|
388
|
-
| events.BRANCH_LEFT
|
|
392
|
+
| events.BRANCH_LEFT
|
|
389
393
|
)
|
|
390
394
|
sys_monitoring.set_local_events(self.myid, code, local_events)
|
|
391
395
|
|
|
@@ -495,7 +499,7 @@ class SysMonitor(Tracer):
|
|
|
495
499
|
return DISABLE
|
|
496
500
|
|
|
497
501
|
|
|
498
|
-
@functools.lru_cache(maxsize=
|
|
502
|
+
@functools.lru_cache(maxsize=20)
|
|
499
503
|
def get_multiline_map(filename: str) -> dict[TLineNo, TLineNo]:
|
|
500
504
|
"""Get a PythonParser for the given filename, cached."""
|
|
501
505
|
try:
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: coverage
|
|
3
|
-
Version: 7.
|
|
3
|
+
Version: 7.12.1b1
|
|
4
4
|
Summary: Code coverage measurement for Python
|
|
5
5
|
Home-page: https://github.com/coveragepy/coveragepy
|
|
6
6
|
Author: Ned Batchelder and 245 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.12.1b1
|
|
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
|
|
@@ -28,7 +28,7 @@ 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
|
-
Classifier: Development Status ::
|
|
31
|
+
Classifier: Development Status :: 4 - Beta
|
|
32
32
|
Requires-Python: >=3.10
|
|
33
33
|
Description-Content-Type: text/x-rst
|
|
34
34
|
License-File: LICENSE.txt
|
|
@@ -82,7 +82,7 @@ Coverage.py runs on these versions of Python:
|
|
|
82
82
|
Documentation is on `Read the Docs`_. Code repository and issue tracker are on
|
|
83
83
|
`GitHub`_.
|
|
84
84
|
|
|
85
|
-
.. _Read the Docs: https://coverage.readthedocs.io/en/7.
|
|
85
|
+
.. _Read the Docs: https://coverage.readthedocs.io/en/7.12.1b1/
|
|
86
86
|
.. _GitHub: https://github.com/coveragepy/coveragepy
|
|
87
87
|
|
|
88
88
|
**New in 7.x:**
|
|
@@ -132,7 +132,7 @@ Getting Started
|
|
|
132
132
|
Looking to run ``coverage`` on your test suite? See the `Quick Start section`_
|
|
133
133
|
of the docs.
|
|
134
134
|
|
|
135
|
-
.. _Quick Start section: https://coverage.readthedocs.io/en/7.
|
|
135
|
+
.. _Quick Start section: https://coverage.readthedocs.io/en/7.12.1b1/#quick-start
|
|
136
136
|
|
|
137
137
|
|
|
138
138
|
Change history
|
|
@@ -140,7 +140,7 @@ Change history
|
|
|
140
140
|
|
|
141
141
|
The complete history of changes is on the `change history page`_.
|
|
142
142
|
|
|
143
|
-
.. _change history page: https://coverage.readthedocs.io/en/7.
|
|
143
|
+
.. _change history page: https://coverage.readthedocs.io/en/7.12.1b1/changes.html
|
|
144
144
|
|
|
145
145
|
|
|
146
146
|
Code of Conduct
|
|
@@ -159,7 +159,7 @@ Contributing
|
|
|
159
159
|
Found a bug? Want to help improve the code or documentation? See the
|
|
160
160
|
`Contributing section`_ of the docs.
|
|
161
161
|
|
|
162
|
-
.. _Contributing section: https://coverage.readthedocs.io/en/7.
|
|
162
|
+
.. _Contributing section: https://coverage.readthedocs.io/en/7.12.1b1/contributing.html
|
|
163
163
|
|
|
164
164
|
|
|
165
165
|
Security
|
|
@@ -187,7 +187,7 @@ Licensed under the `Apache 2.0 License`_. For details, see `NOTICE.txt`_.
|
|
|
187
187
|
:target: https://github.com/coveragepy/coveragepy/actions/workflows/quality.yml
|
|
188
188
|
:alt: Quality check status
|
|
189
189
|
.. |docs| image:: https://readthedocs.org/projects/coverage/badge/?version=latest&style=flat
|
|
190
|
-
:target: https://coverage.readthedocs.io/en/7.
|
|
190
|
+
:target: https://coverage.readthedocs.io/en/7.12.1b1/
|
|
191
191
|
:alt: Documentation
|
|
192
192
|
.. |kit| image:: https://img.shields.io/pypi/v/coverage
|
|
193
193
|
:target: https://pypi.org/project/coverage/
|
|
@@ -18,6 +18,7 @@ metacov.ini
|
|
|
18
18
|
pyproject.toml
|
|
19
19
|
setup.py
|
|
20
20
|
tox.ini
|
|
21
|
+
zzz_coverage.pth
|
|
21
22
|
.github/CODE_OF_CONDUCT.md
|
|
22
23
|
.github/FUNDING.yml
|
|
23
24
|
.github/SECURITY.md
|
|
@@ -69,6 +70,7 @@ coverage/patch.py
|
|
|
69
70
|
coverage/phystokens.py
|
|
70
71
|
coverage/plugin.py
|
|
71
72
|
coverage/plugin_support.py
|
|
73
|
+
coverage/pth_file.py
|
|
72
74
|
coverage/py.typed
|
|
73
75
|
coverage/python.py
|
|
74
76
|
coverage/pytracer.py
|
|
@@ -338,7 +340,7 @@ tests/gold/html/styled/style.css
|
|
|
338
340
|
tests/gold/html/support/coverage_html_cb_bcae5fc4.js
|
|
339
341
|
tests/gold/html/support/favicon_32_cb_58284776.png
|
|
340
342
|
tests/gold/html/support/keybd_closed_cb_ce680311.png
|
|
341
|
-
tests/gold/html/support/
|
|
343
|
+
tests/gold/html/support/style_cb_a5a05ca4.css
|
|
342
344
|
tests/gold/html/unicode/class_index.html
|
|
343
345
|
tests/gold/html/unicode/function_index.html
|
|
344
346
|
tests/gold/html/unicode/index.html
|