coverage 7.15.2__tar.gz → 7.15.4__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.
Files changed (409) hide show
  1. {coverage-7.15.2 → coverage-7.15.4}/.github/workflows/codeql-analysis.yml +4 -4
  2. {coverage-7.15.2 → coverage-7.15.4}/.github/workflows/coverage.yml +16 -10
  3. {coverage-7.15.2 → coverage-7.15.4}/.github/workflows/dependency-review.yml +1 -1
  4. {coverage-7.15.2 → coverage-7.15.4}/.github/workflows/kit.yml +23 -9
  5. {coverage-7.15.2 → coverage-7.15.4}/.github/workflows/publish.yml +3 -3
  6. {coverage-7.15.2 → coverage-7.15.4}/.github/workflows/python-nightly.yml +1 -1
  7. {coverage-7.15.2 → coverage-7.15.4}/.github/workflows/quality.yml +9 -9
  8. {coverage-7.15.2 → coverage-7.15.4}/.github/workflows/testsuite.yml +3 -3
  9. {coverage-7.15.2 → coverage-7.15.4}/.pre-commit-config.yaml +1 -1
  10. {coverage-7.15.2 → coverage-7.15.4}/CHANGES.rst +46 -0
  11. {coverage-7.15.2 → coverage-7.15.4}/CONTRIBUTORS.txt +2 -0
  12. {coverage-7.15.2 → coverage-7.15.4}/PKG-INFO +10 -9
  13. {coverage-7.15.2 → coverage-7.15.4}/README.rst +1 -1
  14. {coverage-7.15.2 → coverage-7.15.4}/coverage/cmdline.py +1 -4
  15. {coverage-7.15.2 → coverage-7.15.4}/coverage/collector.py +1 -4
  16. {coverage-7.15.2 → coverage-7.15.4}/coverage/config.py +1 -5
  17. {coverage-7.15.2 → coverage-7.15.4}/coverage/control.py +9 -4
  18. {coverage-7.15.2 → coverage-7.15.4}/coverage/core.py +4 -0
  19. {coverage-7.15.2 → coverage-7.15.4}/coverage/env.py +1 -1
  20. {coverage-7.15.2 → coverage-7.15.4}/coverage/exceptions.py +0 -18
  21. {coverage-7.15.2 → coverage-7.15.4}/coverage/html.py +1 -10
  22. {coverage-7.15.2 → coverage-7.15.4}/coverage/htmlfiles/index.html +4 -4
  23. {coverage-7.15.2 → coverage-7.15.4}/coverage/htmlfiles/pyfile.html +4 -4
  24. {coverage-7.15.2 → coverage-7.15.4}/coverage/inorout.py +1 -4
  25. {coverage-7.15.2 → coverage-7.15.4}/coverage/lcovreport.py +18 -4
  26. {coverage-7.15.2 → coverage-7.15.4}/coverage/numbits.py +18 -0
  27. {coverage-7.15.2 → coverage-7.15.4}/coverage/parser.py +4 -6
  28. {coverage-7.15.2 → coverage-7.15.4}/coverage/phystokens.py +7 -0
  29. {coverage-7.15.2 → coverage-7.15.4}/coverage/plugin.py +1 -2
  30. {coverage-7.15.2 → coverage-7.15.4}/coverage/plugin_support.py +1 -5
  31. {coverage-7.15.2 → coverage-7.15.4}/coverage/pytracer.py +1 -4
  32. {coverage-7.15.2 → coverage-7.15.4}/coverage/sqldata.py +8 -23
  33. {coverage-7.15.2 → coverage-7.15.4}/coverage/sqlitedb.py +1 -4
  34. {coverage-7.15.2 → coverage-7.15.4}/coverage/sysmon.py +1 -1
  35. {coverage-7.15.2 → coverage-7.15.4}/coverage/templite.py +0 -4
  36. {coverage-7.15.2 → coverage-7.15.4}/coverage/tomlconfig.py +0 -2
  37. {coverage-7.15.2 → coverage-7.15.4}/coverage/tracer.pyi +2 -2
  38. {coverage-7.15.2 → coverage-7.15.4}/coverage/version.py +1 -1
  39. {coverage-7.15.2 → coverage-7.15.4}/coverage.egg-info/PKG-INFO +10 -9
  40. {coverage-7.15.2 → coverage-7.15.4}/coverage.egg-info/SOURCES.txt +1 -0
  41. {coverage-7.15.2 → coverage-7.15.4}/doc/conf.py +3 -3
  42. {coverage-7.15.2 → coverage-7.15.4}/doc/index.rst +1 -1
  43. {coverage-7.15.2 → coverage-7.15.4}/doc/messages.rst +8 -1
  44. coverage-7.15.4/doc/requirements.pip +750 -0
  45. {coverage-7.15.2 → coverage-7.15.4}/howto.txt +12 -1
  46. {coverage-7.15.2 → coverage-7.15.4}/pyproject.toml +17 -12
  47. {coverage-7.15.2 → coverage-7.15.4}/requirements/dev.pip +398 -357
  48. coverage-7.15.4/requirements/kit.pip +463 -0
  49. coverage-7.15.4/requirements/light-threads.pip +288 -0
  50. coverage-7.15.4/requirements/mypy.pip +368 -0
  51. coverage-7.15.4/requirements/pip.pip +38 -0
  52. {coverage-7.15.2 → coverage-7.15.4}/requirements/pytest.in +1 -1
  53. {coverage-7.15.2 → coverage-7.15.4}/requirements/pytest.pip +67 -7
  54. {coverage-7.15.2 → coverage-7.15.4}/requirements/tox.pip +28 -27
  55. {coverage-7.15.2 → coverage-7.15.4}/setup.py +1 -1
  56. {coverage-7.15.2 → coverage-7.15.4}/tests/conftest.py +10 -8
  57. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/b_branch/b_py.html +1 -1
  58. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/bom/bom_py.html +2 -2
  59. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/contexts/two_tests_py.html +1 -1
  60. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/isolatin1/isolatin1_py.html +1 -1
  61. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/multiline/multiline_py.html +3 -3
  62. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/other/blah_blah_other_py.html +2 -2
  63. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/partial/partial_py.html +2 -2
  64. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/unicode/unicode_py.html +2 -2
  65. coverage-7.15.4/tests/hypo.py +39 -0
  66. {coverage-7.15.2 → coverage-7.15.4}/tests/mixins.py +0 -1
  67. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/process_test/try_execfile.py +3 -3
  68. {coverage-7.15.2 → coverage-7.15.4}/tests/strategies.py +7 -0
  69. {coverage-7.15.2 → coverage-7.15.4}/tests/test_api.py +13 -0
  70. {coverage-7.15.2 → coverage-7.15.4}/tests/test_arcs.py +1 -1
  71. {coverage-7.15.2 → coverage-7.15.4}/tests/test_data.py +1 -4
  72. {coverage-7.15.2 → coverage-7.15.4}/tests/test_html.py +47 -10
  73. {coverage-7.15.2 → coverage-7.15.4}/tests/test_lcov.py +25 -0
  74. {coverage-7.15.2 → coverage-7.15.4}/tests/test_misc.py +33 -20
  75. {coverage-7.15.2 → coverage-7.15.4}/tests/test_numbits.py +11 -3
  76. {coverage-7.15.2 → coverage-7.15.4}/tests/test_setup.py +2 -0
  77. {coverage-7.15.2 → coverage-7.15.4}/tests/testenv.py +4 -0
  78. coverage-7.15.2/doc/requirements.pip +0 -738
  79. coverage-7.15.2/requirements/kit.pip +0 -483
  80. coverage-7.15.2/requirements/light-threads.pip +0 -273
  81. coverage-7.15.2/requirements/mypy.pip +0 -304
  82. coverage-7.15.2/requirements/pip.pip +0 -38
  83. {coverage-7.15.2 → coverage-7.15.4}/.editorconfig +0 -0
  84. {coverage-7.15.2 → coverage-7.15.4}/.git-blame-ignore-revs +0 -0
  85. {coverage-7.15.2 → coverage-7.15.4}/.github/CODE_OF_CONDUCT.md +0 -0
  86. {coverage-7.15.2 → coverage-7.15.4}/.github/FUNDING.yml +0 -0
  87. {coverage-7.15.2 → coverage-7.15.4}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  88. {coverage-7.15.2 → coverage-7.15.4}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  89. {coverage-7.15.2 → coverage-7.15.4}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  90. {coverage-7.15.2 → coverage-7.15.4}/.github/ISSUE_TEMPLATE/support.md +0 -0
  91. {coverage-7.15.2 → coverage-7.15.4}/.github/SECURITY.md +0 -0
  92. {coverage-7.15.2 → coverage-7.15.4}/.github/dependabot.yml +0 -0
  93. {coverage-7.15.2 → coverage-7.15.4}/.github/zizmor.yml +0 -0
  94. {coverage-7.15.2 → coverage-7.15.4}/.ignore +0 -0
  95. {coverage-7.15.2 → coverage-7.15.4}/.readthedocs.yaml +0 -0
  96. {coverage-7.15.2 → coverage-7.15.4}/CITATION.cff +0 -0
  97. {coverage-7.15.2 → coverage-7.15.4}/LICENSE.txt +0 -0
  98. {coverage-7.15.2 → coverage-7.15.4}/MANIFEST.in +0 -0
  99. {coverage-7.15.2 → coverage-7.15.4}/Makefile +0 -0
  100. {coverage-7.15.2 → coverage-7.15.4}/NOTICE.txt +0 -0
  101. {coverage-7.15.2 → coverage-7.15.4}/__main__.py +0 -0
  102. {coverage-7.15.2 → coverage-7.15.4}/a1_coverage.pth +0 -0
  103. {coverage-7.15.2 → coverage-7.15.4}/ci/README.txt +0 -0
  104. {coverage-7.15.2 → coverage-7.15.4}/ci/comment_on_fixes.py +0 -0
  105. {coverage-7.15.2 → coverage-7.15.4}/ci/session.py +0 -0
  106. {coverage-7.15.2 → coverage-7.15.4}/ci/trigger_action.py +0 -0
  107. {coverage-7.15.2 → coverage-7.15.4}/ci/update_rtfd.py +0 -0
  108. {coverage-7.15.2 → coverage-7.15.4}/coverage/__init__.py +0 -0
  109. {coverage-7.15.2 → coverage-7.15.4}/coverage/__main__.py +0 -0
  110. {coverage-7.15.2 → coverage-7.15.4}/coverage/annotate.py +0 -0
  111. {coverage-7.15.2 → coverage-7.15.4}/coverage/bytecode.py +0 -0
  112. {coverage-7.15.2 → coverage-7.15.4}/coverage/context.py +0 -0
  113. {coverage-7.15.2 → coverage-7.15.4}/coverage/ctracer/datastack.c +0 -0
  114. {coverage-7.15.2 → coverage-7.15.4}/coverage/ctracer/datastack.h +0 -0
  115. {coverage-7.15.2 → coverage-7.15.4}/coverage/ctracer/filedisp.c +0 -0
  116. {coverage-7.15.2 → coverage-7.15.4}/coverage/ctracer/filedisp.h +0 -0
  117. {coverage-7.15.2 → coverage-7.15.4}/coverage/ctracer/module.c +0 -0
  118. {coverage-7.15.2 → coverage-7.15.4}/coverage/ctracer/stats.h +0 -0
  119. {coverage-7.15.2 → coverage-7.15.4}/coverage/ctracer/tracer.c +0 -0
  120. {coverage-7.15.2 → coverage-7.15.4}/coverage/ctracer/tracer.h +0 -0
  121. {coverage-7.15.2 → coverage-7.15.4}/coverage/ctracer/util.h +0 -0
  122. {coverage-7.15.2 → coverage-7.15.4}/coverage/data.py +0 -0
  123. {coverage-7.15.2 → coverage-7.15.4}/coverage/debug.py +0 -0
  124. {coverage-7.15.2 → coverage-7.15.4}/coverage/disposition.py +0 -0
  125. {coverage-7.15.2 → coverage-7.15.4}/coverage/execfile.py +0 -0
  126. {coverage-7.15.2 → coverage-7.15.4}/coverage/files.py +0 -0
  127. {coverage-7.15.2 → coverage-7.15.4}/coverage/htmlfiles/coverage_html.js +0 -0
  128. {coverage-7.15.2 → coverage-7.15.4}/coverage/htmlfiles/favicon_32.png +0 -0
  129. {coverage-7.15.2 → coverage-7.15.4}/coverage/htmlfiles/keybd_closed.png +0 -0
  130. {coverage-7.15.2 → coverage-7.15.4}/coverage/htmlfiles/style.css +0 -0
  131. {coverage-7.15.2 → coverage-7.15.4}/coverage/htmlfiles/style.scss +0 -0
  132. {coverage-7.15.2 → coverage-7.15.4}/coverage/jsonreport.py +0 -0
  133. {coverage-7.15.2 → coverage-7.15.4}/coverage/misc.py +0 -0
  134. {coverage-7.15.2 → coverage-7.15.4}/coverage/multiproc.py +0 -0
  135. {coverage-7.15.2 → coverage-7.15.4}/coverage/patch.py +0 -0
  136. {coverage-7.15.2 → coverage-7.15.4}/coverage/pth_file.py +0 -0
  137. {coverage-7.15.2 → coverage-7.15.4}/coverage/py.typed +0 -0
  138. {coverage-7.15.2 → coverage-7.15.4}/coverage/python.py +0 -0
  139. {coverage-7.15.2 → coverage-7.15.4}/coverage/regions.py +0 -0
  140. {coverage-7.15.2 → coverage-7.15.4}/coverage/report.py +0 -0
  141. {coverage-7.15.2 → coverage-7.15.4}/coverage/report_core.py +0 -0
  142. {coverage-7.15.2 → coverage-7.15.4}/coverage/results.py +0 -0
  143. {coverage-7.15.2 → coverage-7.15.4}/coverage/types.py +0 -0
  144. {coverage-7.15.2 → coverage-7.15.4}/coverage/xmlreport.py +0 -0
  145. {coverage-7.15.2 → coverage-7.15.4}/coverage.egg-info/dependency_links.txt +0 -0
  146. {coverage-7.15.2 → coverage-7.15.4}/coverage.egg-info/entry_points.txt +0 -0
  147. {coverage-7.15.2 → coverage-7.15.4}/coverage.egg-info/not-zip-safe +0 -0
  148. {coverage-7.15.2 → coverage-7.15.4}/coverage.egg-info/requires.txt +0 -0
  149. {coverage-7.15.2 → coverage-7.15.4}/coverage.egg-info/top_level.txt +0 -0
  150. {coverage-7.15.2 → coverage-7.15.4}/doc/_static/coverage.css +0 -0
  151. {coverage-7.15.2 → coverage-7.15.4}/doc/api.rst +0 -0
  152. {coverage-7.15.2 → coverage-7.15.4}/doc/api_coverage.rst +0 -0
  153. {coverage-7.15.2 → coverage-7.15.4}/doc/api_coveragedata.rst +0 -0
  154. {coverage-7.15.2 → coverage-7.15.4}/doc/api_exceptions.rst +0 -0
  155. {coverage-7.15.2 → coverage-7.15.4}/doc/api_module.rst +0 -0
  156. {coverage-7.15.2 → coverage-7.15.4}/doc/api_plugin.rst +0 -0
  157. {coverage-7.15.2 → coverage-7.15.4}/doc/branch.rst +0 -0
  158. {coverage-7.15.2 → coverage-7.15.4}/doc/changes.rst +0 -0
  159. {coverage-7.15.2 → coverage-7.15.4}/doc/cog_helpers.py +0 -0
  160. {coverage-7.15.2 → coverage-7.15.4}/doc/commands/cmd_annotate.rst +0 -0
  161. {coverage-7.15.2 → coverage-7.15.4}/doc/commands/cmd_combine.rst +0 -0
  162. {coverage-7.15.2 → coverage-7.15.4}/doc/commands/cmd_debug.rst +0 -0
  163. {coverage-7.15.2 → coverage-7.15.4}/doc/commands/cmd_erase.rst +0 -0
  164. {coverage-7.15.2 → coverage-7.15.4}/doc/commands/cmd_html.rst +0 -0
  165. {coverage-7.15.2 → coverage-7.15.4}/doc/commands/cmd_json.rst +0 -0
  166. {coverage-7.15.2 → coverage-7.15.4}/doc/commands/cmd_lcov.rst +0 -0
  167. {coverage-7.15.2 → coverage-7.15.4}/doc/commands/cmd_report.rst +0 -0
  168. {coverage-7.15.2 → coverage-7.15.4}/doc/commands/cmd_reporting.rst +0 -0
  169. {coverage-7.15.2 → coverage-7.15.4}/doc/commands/cmd_run.rst +0 -0
  170. {coverage-7.15.2 → coverage-7.15.4}/doc/commands/cmd_xml.rst +0 -0
  171. {coverage-7.15.2 → coverage-7.15.4}/doc/commands/index.rst +0 -0
  172. {coverage-7.15.2 → coverage-7.15.4}/doc/config.rst +0 -0
  173. {coverage-7.15.2 → coverage-7.15.4}/doc/contexts.rst +0 -0
  174. {coverage-7.15.2 → coverage-7.15.4}/doc/contributing.rst +0 -0
  175. {coverage-7.15.2 → coverage-7.15.4}/doc/dbschema.rst +0 -0
  176. {coverage-7.15.2 → coverage-7.15.4}/doc/dict.txt +0 -0
  177. {coverage-7.15.2 → coverage-7.15.4}/doc/excluding.rst +0 -0
  178. {coverage-7.15.2 → coverage-7.15.4}/doc/faq.rst +0 -0
  179. {coverage-7.15.2 → coverage-7.15.4}/doc/howitworks.rst +0 -0
  180. {coverage-7.15.2 → coverage-7.15.4}/doc/install.rst +0 -0
  181. {coverage-7.15.2 → coverage-7.15.4}/doc/media/Tidelift_Logos_RGB_Tidelift_Shorthand_On-White.png +0 -0
  182. {coverage-7.15.2 → coverage-7.15.4}/doc/media/Tidelift_Logos_RGB_Tidelift_Shorthand_On-White_small.png +0 -0
  183. {coverage-7.15.2 → coverage-7.15.4}/doc/media/sleepy-snake-600.png +0 -0
  184. {coverage-7.15.2 → coverage-7.15.4}/doc/media/sleepy-snake-circle-150.png +0 -0
  185. {coverage-7.15.2 → coverage-7.15.4}/doc/migrating.rst +0 -0
  186. {coverage-7.15.2 → coverage-7.15.4}/doc/other.rst +0 -0
  187. {coverage-7.15.2 → coverage-7.15.4}/doc/plugins.rst +0 -0
  188. {coverage-7.15.2 → coverage-7.15.4}/doc/python-coverage.1.txt +0 -0
  189. {coverage-7.15.2 → coverage-7.15.4}/doc/requirements.in +0 -0
  190. {coverage-7.15.2 → coverage-7.15.4}/doc/sample_html/favicon_32_cb_c827f16f.png +0 -0
  191. {coverage-7.15.2 → coverage-7.15.4}/doc/sample_html/keybd_closed_cb_900cfef5.png +0 -0
  192. {coverage-7.15.2 → coverage-7.15.4}/doc/sleepy.rst +0 -0
  193. {coverage-7.15.2 → coverage-7.15.4}/doc/source.rst +0 -0
  194. {coverage-7.15.2 → coverage-7.15.4}/doc/subprocess.rst +0 -0
  195. {coverage-7.15.2 → coverage-7.15.4}/doc/trouble.rst +0 -0
  196. {coverage-7.15.2 → coverage-7.15.4}/doc/whatsnew5x.rst +0 -0
  197. {coverage-7.15.2 → coverage-7.15.4}/igor.py +0 -0
  198. {coverage-7.15.2 → coverage-7.15.4}/lab/README.txt +0 -0
  199. {coverage-7.15.2 → coverage-7.15.4}/lab/branches.py +0 -0
  200. {coverage-7.15.2 → coverage-7.15.4}/lab/compare_times.sh +0 -0
  201. {coverage-7.15.2 → coverage-7.15.4}/lab/coverage-04.dtd +0 -0
  202. {coverage-7.15.2 → coverage-7.15.4}/lab/extract_code.py +0 -0
  203. {coverage-7.15.2 → coverage-7.15.4}/lab/goals.py +0 -0
  204. {coverage-7.15.2 → coverage-7.15.4}/lab/hack_pyc.py +0 -0
  205. {coverage-7.15.2 → coverage-7.15.4}/lab/notes/arcs-to-branches.txt +0 -0
  206. {coverage-7.15.2 → coverage-7.15.4}/lab/notes/bug1303.txt +0 -0
  207. {coverage-7.15.2 → coverage-7.15.4}/lab/notes/pypy-738-decorated-functions.txt +0 -0
  208. {coverage-7.15.2 → coverage-7.15.4}/lab/parse_all.py +0 -0
  209. {coverage-7.15.2 → coverage-7.15.4}/lab/parser.py +0 -0
  210. {coverage-7.15.2 → coverage-7.15.4}/lab/pick.py +0 -0
  211. {coverage-7.15.2 → coverage-7.15.4}/lab/platform_info.py +0 -0
  212. {coverage-7.15.2 → coverage-7.15.4}/lab/run_sysmon.py +0 -0
  213. {coverage-7.15.2 → coverage-7.15.4}/lab/run_trace.py +0 -0
  214. {coverage-7.15.2 → coverage-7.15.4}/lab/select_contexts.py +0 -0
  215. {coverage-7.15.2 → coverage-7.15.4}/lab/show_platform.py +0 -0
  216. {coverage-7.15.2 → coverage-7.15.4}/lab/show_pyc.py +0 -0
  217. {coverage-7.15.2 → coverage-7.15.4}/lab/treetopy.sh +0 -0
  218. {coverage-7.15.2 → coverage-7.15.4}/lab/warn_executed.py +0 -0
  219. {coverage-7.15.2 → coverage-7.15.4}/lab/warn_executed.toml +0 -0
  220. {coverage-7.15.2 → coverage-7.15.4}/metacov.ini +0 -0
  221. {coverage-7.15.2 → coverage-7.15.4}/requirements/dev.in +0 -0
  222. {coverage-7.15.2 → coverage-7.15.4}/requirements/kit.in +0 -0
  223. {coverage-7.15.2 → coverage-7.15.4}/requirements/light-threads.in +0 -0
  224. {coverage-7.15.2 → coverage-7.15.4}/requirements/mypy.in +0 -0
  225. {coverage-7.15.2 → coverage-7.15.4}/requirements/pins.pip +0 -0
  226. {coverage-7.15.2 → coverage-7.15.4}/requirements/pip.in +0 -0
  227. {coverage-7.15.2 → coverage-7.15.4}/requirements/tox.in +0 -0
  228. {coverage-7.15.2 → coverage-7.15.4}/setup.cfg +0 -0
  229. {coverage-7.15.2 → coverage-7.15.4}/tests/__init__.py +0 -0
  230. {coverage-7.15.2 → coverage-7.15.4}/tests/coveragetest.py +0 -0
  231. {coverage-7.15.2 → coverage-7.15.4}/tests/covmodzip1.py +0 -0
  232. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/README.rst +0 -0
  233. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/annotate/anno_dir/multi.py,cover +0 -0
  234. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/annotate/anno_dir/z_80084bf2fba02475___init__.py,cover +0 -0
  235. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/annotate/anno_dir/z_80084bf2fba02475_a.py,cover +0 -0
  236. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/annotate/anno_dir/z_b039179a8a4ce2c2___init__.py,cover +0 -0
  237. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/annotate/anno_dir/z_b039179a8a4ce2c2_b.py,cover +0 -0
  238. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/annotate/encodings/utf8.py,cover +0 -0
  239. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/annotate/mae/mae.py,cover +0 -0
  240. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/annotate/multi/a/__init__.py,cover +0 -0
  241. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/annotate/multi/a/a.py,cover +0 -0
  242. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/annotate/multi/b/__init__.py,cover +0 -0
  243. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/annotate/multi/b/b.py,cover +0 -0
  244. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/annotate/multi/multi.py,cover +0 -0
  245. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/annotate/white/white.py,cover +0 -0
  246. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/Makefile +0 -0
  247. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/a/a_py.html +0 -0
  248. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/a/class_index.html +0 -0
  249. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/a/function_index.html +0 -0
  250. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/a/index.html +0 -0
  251. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/b_branch/class_index.html +0 -0
  252. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/b_branch/function_index.html +0 -0
  253. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/b_branch/index.html +0 -0
  254. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/bom/class_index.html +0 -0
  255. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/bom/function_index.html +0 -0
  256. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/bom/index.html +0 -0
  257. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/contexts/class_index.html +0 -0
  258. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/contexts/function_index.html +0 -0
  259. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/contexts/index.html +0 -0
  260. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/isolatin1/class_index.html +0 -0
  261. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/isolatin1/function_index.html +0 -0
  262. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/isolatin1/index.html +0 -0
  263. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/multiline/class_index.html +0 -0
  264. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/multiline/function_index.html +0 -0
  265. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/multiline/index.html +0 -0
  266. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/omit_1/class_index.html +0 -0
  267. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/omit_1/function_index.html +0 -0
  268. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/omit_1/index.html +0 -0
  269. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/omit_1/m1_py.html +0 -0
  270. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/omit_1/m2_py.html +0 -0
  271. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/omit_1/m3_py.html +0 -0
  272. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/omit_1/main_py.html +0 -0
  273. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/omit_2/class_index.html +0 -0
  274. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/omit_2/function_index.html +0 -0
  275. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/omit_2/index.html +0 -0
  276. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/omit_2/m2_py.html +0 -0
  277. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/omit_2/m3_py.html +0 -0
  278. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/omit_2/main_py.html +0 -0
  279. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/omit_3/class_index.html +0 -0
  280. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/omit_3/function_index.html +0 -0
  281. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/omit_3/index.html +0 -0
  282. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/omit_3/m3_py.html +0 -0
  283. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/omit_3/main_py.html +0 -0
  284. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/omit_4/class_index.html +0 -0
  285. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/omit_4/function_index.html +0 -0
  286. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/omit_4/index.html +0 -0
  287. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/omit_4/m1_py.html +0 -0
  288. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/omit_4/m3_py.html +0 -0
  289. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/omit_4/main_py.html +0 -0
  290. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/omit_5/class_index.html +0 -0
  291. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/omit_5/function_index.html +0 -0
  292. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/omit_5/index.html +0 -0
  293. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/omit_5/m1_py.html +0 -0
  294. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/omit_5/main_py.html +0 -0
  295. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/other/class_index.html +0 -0
  296. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/other/function_index.html +0 -0
  297. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/other/here_py.html +0 -0
  298. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/other/index.html +0 -0
  299. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/partial/class_index.html +0 -0
  300. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/partial/function_index.html +0 -0
  301. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/partial/index.html +0 -0
  302. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/styled/a_py.html +0 -0
  303. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/styled/class_index.html +0 -0
  304. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/styled/function_index.html +0 -0
  305. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/styled/index.html +0 -0
  306. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/styled/myextra.css +0 -0
  307. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/styled/style.css +0 -0
  308. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/support/coverage_html_cb_dd2e7eb5.js +0 -0
  309. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/support/favicon_32_cb_c827f16f.png +0 -0
  310. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/support/keybd_closed_cb_900cfef5.png +0 -0
  311. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/support/style_cb_a90a112a.css +0 -0
  312. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/unicode/class_index.html +0 -0
  313. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/unicode/function_index.html +0 -0
  314. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/html/unicode/index.html +0 -0
  315. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/testing/getty/gettysburg.txt +0 -0
  316. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/testing/xml/output.xml +0 -0
  317. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/xml/x_xml/coverage.xml +0 -0
  318. {coverage-7.15.2 → coverage-7.15.4}/tests/gold/xml/y_xml_branch/coverage.xml +0 -0
  319. {coverage-7.15.2 → coverage-7.15.4}/tests/goldtest.py +0 -0
  320. {coverage-7.15.2 → coverage-7.15.4}/tests/helpers.py +0 -0
  321. {coverage-7.15.2 → coverage-7.15.4}/tests/js/index.html +0 -0
  322. {coverage-7.15.2 → coverage-7.15.4}/tests/js/tests.js +0 -0
  323. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/aa/__init__.py +0 -0
  324. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/aa/afile.odd.py +0 -0
  325. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/aa/afile.py +0 -0
  326. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/aa/bb/__init__.py +0 -0
  327. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/aa/bb/bfile.odd.py +0 -0
  328. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/aa/bb/bfile.py +0 -0
  329. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/aa/bb/cc/__init__.py +0 -0
  330. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/aa/bb/cc/cfile.py +0 -0
  331. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/aa/bb.odd/bfile.py +0 -0
  332. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/aa/zfile.py +0 -0
  333. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/ambiguous/__init__.py +0 -0
  334. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/ambiguous/pkg1/__init__.py +0 -0
  335. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/ambiguous/pkg1/ambiguous.py +0 -0
  336. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/checkspec.py +0 -0
  337. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/covmod1.py +0 -0
  338. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/namespace_420/sub1/__init__.py +0 -0
  339. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/pkg1/__init__.py +0 -0
  340. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/pkg1/__main__.py +0 -0
  341. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/pkg1/p1a.py +0 -0
  342. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/pkg1/p1b.py +0 -0
  343. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/pkg1/p1c.py +0 -0
  344. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/pkg1/runmod2.py +0 -0
  345. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/pkg1/sub/__init__.py +0 -0
  346. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/pkg1/sub/__main__.py +0 -0
  347. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/pkg1/sub/ps1a.py +0 -0
  348. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/pkg1/sub/runmod3.py +0 -0
  349. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/pkg2/__init__.py +0 -0
  350. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/pkg2/p2a.py +0 -0
  351. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/pkg2/p2b.py +0 -0
  352. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/plugins/__init__.py +0 -0
  353. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/plugins/a_plugin.py +0 -0
  354. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/plugins/another.py +0 -0
  355. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/process_test/__init__.py +0 -0
  356. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/runmod1.py +0 -0
  357. {coverage-7.15.2 → coverage-7.15.4}/tests/modules/usepkgs.py +0 -0
  358. {coverage-7.15.2 → coverage-7.15.4}/tests/moremodules/namespace_420/sub2/__init__.py +0 -0
  359. {coverage-7.15.2 → coverage-7.15.4}/tests/moremodules/othermods/__init__.py +0 -0
  360. {coverage-7.15.2 → coverage-7.15.4}/tests/moremodules/othermods/othera.py +0 -0
  361. {coverage-7.15.2 → coverage-7.15.4}/tests/moremodules/othermods/otherb.py +0 -0
  362. {coverage-7.15.2 → coverage-7.15.4}/tests/moremodules/othermods/sub/__init__.py +0 -0
  363. {coverage-7.15.2 → coverage-7.15.4}/tests/moremodules/othermods/sub/osa.py +0 -0
  364. {coverage-7.15.2 → coverage-7.15.4}/tests/moremodules/othermods/sub/osb.py +0 -0
  365. {coverage-7.15.2 → coverage-7.15.4}/tests/osinfo.py +0 -0
  366. {coverage-7.15.2 → coverage-7.15.4}/tests/plugin1.py +0 -0
  367. {coverage-7.15.2 → coverage-7.15.4}/tests/plugin2.py +0 -0
  368. {coverage-7.15.2 → coverage-7.15.4}/tests/plugin_config.py +0 -0
  369. {coverage-7.15.2 → coverage-7.15.4}/tests/qunit/jquery.tmpl.min.js +0 -0
  370. {coverage-7.15.2 → coverage-7.15.4}/tests/select_plugin.py +0 -0
  371. {coverage-7.15.2 → coverage-7.15.4}/tests/stress_phystoken.tok +0 -0
  372. {coverage-7.15.2 → coverage-7.15.4}/tests/stress_phystoken_dos.tok +0 -0
  373. {coverage-7.15.2 → coverage-7.15.4}/tests/test_annotate.py +0 -0
  374. {coverage-7.15.2 → coverage-7.15.4}/tests/test_bytecode.py +0 -0
  375. {coverage-7.15.2 → coverage-7.15.4}/tests/test_cmdline.py +0 -0
  376. {coverage-7.15.2 → coverage-7.15.4}/tests/test_collector.py +0 -0
  377. {coverage-7.15.2 → coverage-7.15.4}/tests/test_concurrency.py +0 -0
  378. {coverage-7.15.2 → coverage-7.15.4}/tests/test_config.py +0 -0
  379. {coverage-7.15.2 → coverage-7.15.4}/tests/test_context.py +0 -0
  380. {coverage-7.15.2 → coverage-7.15.4}/tests/test_core.py +0 -0
  381. {coverage-7.15.2 → coverage-7.15.4}/tests/test_coverage.py +0 -0
  382. {coverage-7.15.2 → coverage-7.15.4}/tests/test_debug.py +0 -0
  383. {coverage-7.15.2 → coverage-7.15.4}/tests/test_execfile.py +0 -0
  384. {coverage-7.15.2 → coverage-7.15.4}/tests/test_filereporter.py +0 -0
  385. {coverage-7.15.2 → coverage-7.15.4}/tests/test_files.py +0 -0
  386. {coverage-7.15.2 → coverage-7.15.4}/tests/test_goldtest.py +0 -0
  387. {coverage-7.15.2 → coverage-7.15.4}/tests/test_json.py +0 -0
  388. {coverage-7.15.2 → coverage-7.15.4}/tests/test_mixins.py +0 -0
  389. {coverage-7.15.2 → coverage-7.15.4}/tests/test_oddball.py +0 -0
  390. {coverage-7.15.2 → coverage-7.15.4}/tests/test_parser.py +0 -0
  391. {coverage-7.15.2 → coverage-7.15.4}/tests/test_phystokens.py +0 -0
  392. {coverage-7.15.2 → coverage-7.15.4}/tests/test_plugins.py +0 -0
  393. {coverage-7.15.2 → coverage-7.15.4}/tests/test_process.py +0 -0
  394. {coverage-7.15.2 → coverage-7.15.4}/tests/test_python.py +0 -0
  395. {coverage-7.15.2 → coverage-7.15.4}/tests/test_regions.py +0 -0
  396. {coverage-7.15.2 → coverage-7.15.4}/tests/test_report.py +0 -0
  397. {coverage-7.15.2 → coverage-7.15.4}/tests/test_report_common.py +0 -0
  398. {coverage-7.15.2 → coverage-7.15.4}/tests/test_report_core.py +0 -0
  399. {coverage-7.15.2 → coverage-7.15.4}/tests/test_results.py +0 -0
  400. {coverage-7.15.2 → coverage-7.15.4}/tests/test_sqlitedb.py +0 -0
  401. {coverage-7.15.2 → coverage-7.15.4}/tests/test_sysmon.py +0 -0
  402. {coverage-7.15.2 → coverage-7.15.4}/tests/test_templite.py +0 -0
  403. {coverage-7.15.2 → coverage-7.15.4}/tests/test_testing.py +0 -0
  404. {coverage-7.15.2 → coverage-7.15.4}/tests/test_venv.py +0 -0
  405. {coverage-7.15.2 → coverage-7.15.4}/tests/test_version.py +0 -0
  406. {coverage-7.15.2 → coverage-7.15.4}/tests/test_xml.py +0 -0
  407. {coverage-7.15.2 → coverage-7.15.4}/tests/zipsrc/zip1/__init__.py +0 -0
  408. {coverage-7.15.2 → coverage-7.15.4}/tests/zipsrc/zip1/zip1.py +0 -0
  409. {coverage-7.15.2 → coverage-7.15.4}/tox.ini +0 -0
@@ -49,13 +49,13 @@ jobs:
49
49
 
50
50
  steps:
51
51
  - name: "Check out the repo"
52
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
52
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
53
53
  with:
54
54
  persist-credentials: false
55
55
 
56
56
  # Initializes the CodeQL tools for scanning.
57
57
  - name: Initialize CodeQL
58
- uses: github/codeql-action/init@54f647b7e1bb85c95cddabcd46b0c578ec92bc1a # v4.36.3
58
+ uses: github/codeql-action/init@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4.37.3
59
59
  with:
60
60
  languages: ${{ matrix.language }}
61
61
  # If you wish to specify custom queries, you can do so here or in a config file.
@@ -66,7 +66,7 @@ jobs:
66
66
  # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
67
67
  # If this step fails, then you should remove it and run the build manually (see below)
68
68
  - name: Autobuild
69
- uses: github/codeql-action/autobuild@54f647b7e1bb85c95cddabcd46b0c578ec92bc1a # v4.36.3
69
+ uses: github/codeql-action/autobuild@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4.37.3
70
70
 
71
71
  # ℹ️ Command-line programs to run using the OS shell.
72
72
  # 📚 https://git.io/JvXDl
@@ -80,4 +80,4 @@ jobs:
80
80
  # make release
81
81
 
82
82
  - name: Perform CodeQL Analysis
83
- uses: github/codeql-action/analyze@54f647b7e1bb85c95cddabcd46b0c578ec92bc1a # v4.36.3
83
+ uses: github/codeql-action/analyze@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4.37.3
@@ -4,8 +4,7 @@
4
4
  name: "Coverage"
5
5
 
6
6
  on:
7
- # As currently structured, this adds too many jobs (checks?), so don't run it
8
- # on pull requests yet.
7
+ pull_request:
9
8
  push:
10
9
  branches:
11
10
  - main
@@ -40,7 +39,7 @@ jobs:
40
39
  workflow: ${{ steps.filter.outputs.workflow }}
41
40
  steps:
42
41
  - name: "Check out the repo"
43
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
42
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
44
43
  with:
45
44
  persist-credentials: false
46
45
 
@@ -121,12 +120,12 @@ jobs:
121
120
 
122
121
  steps:
123
122
  - name: "Check out the repo"
124
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
123
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
125
124
  with:
126
125
  persist-credentials: false
127
126
 
128
127
  - name: "Set up Python"
129
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
128
+ uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
130
129
  with:
131
130
  python-version: "${{ matrix.python-version }}"
132
131
  allow-prereleases: true
@@ -182,12 +181,12 @@ jobs:
182
181
 
183
182
  steps:
184
183
  - name: "Check out the repo"
185
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
184
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
186
185
  with:
187
186
  persist-credentials: false
188
187
 
189
188
  - name: "Set up Python"
190
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
189
+ uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
191
190
  with:
192
191
  python-version: "3.10" # Minimum of PYVERSIONS
193
192
  # At a certain point, installing dependencies failed on pypy 3.9 and
@@ -245,6 +244,7 @@ jobs:
245
244
  echo '```' >> "$GITHUB_STEP_SUMMARY"
246
245
  python -m coverage report -m --skip-covered >> "$GITHUB_STEP_SUMMARY"
247
246
  echo '```' >> "$GITHUB_STEP_SUMMARY"
247
+ cat "$GITHUB_STEP_SUMMARY"
248
248
 
249
249
  - name: "Get total"
250
250
  id: total
@@ -256,9 +256,15 @@ jobs:
256
256
  # Maybe someday goals will be a real feature
257
257
  python -m pip install wcmatch
258
258
  # Very crude check that nothing catastrophic has happened.
259
- python lab/goals.py --group 90 "coverage/*.py" "tests/*.py"
259
+ if ! python lab/goals.py --group 90 "coverage/*.py" "tests/*.py"; then
260
+ echo '***** Total coverage is less than 90%!'
261
+ exit 1
262
+ fi
260
263
  # Absolutely all of our test code should be covered.
261
- python lab/goals.py --file 100 "tests/test_*.py"
264
+ if ! python lab/goals.py --file 100 "tests/test_*.py"; then
265
+ echo '***** Coverage of test files must be 100%!'
266
+ exit 1
267
+ fi
262
268
 
263
269
  publish:
264
270
  name: "Publish coverage report"
@@ -344,7 +350,7 @@ jobs:
344
350
  github.repository_owner == 'coveragepy'
345
351
  && github.ref == 'refs/heads/main'
346
352
  # https://gist.githubusercontent.com/nedbat/8c6980f77988a327348f9b02bbaf67f5
347
- uses: schneegans/dynamic-badges-action@0e50b8bad39e7e1afd3e4e9c2b7dd145fad07501 # v1.8.0
353
+ uses: schneegans/dynamic-badges-action@28b0fa8bdeb46170ac397105ece0c1fe58f68910 # v1.9.0
348
354
  with:
349
355
  # Personal access token: gist access
350
356
  auth: ${{ secrets.METACOV_GIST_SECRET }}
@@ -29,7 +29,7 @@ jobs:
29
29
  runs-on: ubuntu-latest
30
30
  steps:
31
31
  - name: "Check out the repo"
32
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
32
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
33
33
  with:
34
34
  persist-credentials: false
35
35
 
@@ -36,7 +36,7 @@ env:
36
36
  PIP_DISABLE_PIP_VERSION_CHECK: 1
37
37
  # PYVERSIONS: changing the list of versions will change the number of
38
38
  # expected distributions. This must match the same number in publish.yml.
39
- EXPECTED: 91
39
+ EXPECTED: 121
40
40
 
41
41
  permissions:
42
42
  contents: read
@@ -79,13 +79,13 @@ jobs:
79
79
  # # of Python: https://cibuildwheel.readthedocs.io/en/stable/options/#enable
80
80
  # # When changing this, also adjust SHIPPING_WHEELS in env.py.
81
81
  #
82
- # pys = ["cp310", "cp311", "cp312", "cp313", "cp314"]
82
+ # pys = ["cp310", "cp311", "cp312", "cp313", "cp314", "cp315"]
83
83
  # cipy = "3.11" # PYVERSIONS, default for cibuildwheel
84
84
  #
85
85
  # # Some OS/arch combinations need overrides for the Python versions:
86
86
  # os_arch_pys = {
87
87
  # # ("macos", "arm64"): ["cp38", "cp39", "cp310", "cp311", "cp312"],
88
- # ("windows", "ARM64"): ["cp311", "cp312", "cp313", "cp314"],
88
+ # ("windows", "ARM64"): ["cp311", "cp312", "cp313", "cp314", "cp315"],
89
89
  # }
90
90
  #
91
91
  # #----- ^^^ ---------------------- ^^^ -----
@@ -117,51 +117,61 @@ jobs:
117
117
  - {"os": "ubuntu", "py": "cp312", "arch": "x86_64", "cipy": "3.11"}
118
118
  - {"os": "ubuntu", "py": "cp313", "arch": "x86_64", "cipy": "3.11"}
119
119
  - {"os": "ubuntu", "py": "cp314", "arch": "x86_64", "cipy": "3.11"}
120
+ - {"os": "ubuntu", "py": "cp315", "arch": "x86_64", "cipy": "3.11"}
120
121
  - {"os": "ubuntu", "py": "cp310", "arch": "i686", "cipy": "3.11"}
121
122
  - {"os": "ubuntu", "py": "cp311", "arch": "i686", "cipy": "3.11"}
122
123
  - {"os": "ubuntu", "py": "cp312", "arch": "i686", "cipy": "3.11"}
123
124
  - {"os": "ubuntu", "py": "cp313", "arch": "i686", "cipy": "3.11"}
124
125
  - {"os": "ubuntu", "py": "cp314", "arch": "i686", "cipy": "3.11"}
126
+ - {"os": "ubuntu", "py": "cp315", "arch": "i686", "cipy": "3.11"}
125
127
  - {"os": "ubuntu", "py": "cp310", "arch": "aarch64", "cipy": "3.11", "os-version": "22.04-arm"}
126
128
  - {"os": "ubuntu", "py": "cp311", "arch": "aarch64", "cipy": "3.11", "os-version": "22.04-arm"}
127
129
  - {"os": "ubuntu", "py": "cp312", "arch": "aarch64", "cipy": "3.11", "os-version": "22.04-arm"}
128
130
  - {"os": "ubuntu", "py": "cp313", "arch": "aarch64", "cipy": "3.11", "os-version": "22.04-arm"}
129
131
  - {"os": "ubuntu", "py": "cp314", "arch": "aarch64", "cipy": "3.11", "os-version": "22.04-arm"}
132
+ - {"os": "ubuntu", "py": "cp315", "arch": "aarch64", "cipy": "3.11", "os-version": "22.04-arm"}
130
133
  - {"os": "ubuntu", "py": "cp310", "arch": "riscv64", "cipy": "3.11"}
131
134
  - {"os": "ubuntu", "py": "cp311", "arch": "riscv64", "cipy": "3.11"}
132
135
  - {"os": "ubuntu", "py": "cp312", "arch": "riscv64", "cipy": "3.11"}
133
136
  - {"os": "ubuntu", "py": "cp313", "arch": "riscv64", "cipy": "3.11"}
134
137
  - {"os": "ubuntu", "py": "cp314", "arch": "riscv64", "cipy": "3.11"}
138
+ - {"os": "ubuntu", "py": "cp315", "arch": "riscv64", "cipy": "3.11"}
135
139
  - {"os": "ubuntu", "py": "cp310", "arch": "ppc64le", "cipy": "3.11", "os-version": "24.04-ppc64le"}
136
140
  - {"os": "ubuntu", "py": "cp311", "arch": "ppc64le", "cipy": "3.11", "os-version": "24.04-ppc64le"}
137
141
  - {"os": "ubuntu", "py": "cp312", "arch": "ppc64le", "cipy": "3.11", "os-version": "24.04-ppc64le"}
138
142
  - {"os": "ubuntu", "py": "cp313", "arch": "ppc64le", "cipy": "3.11", "os-version": "24.04-ppc64le"}
139
143
  - {"os": "ubuntu", "py": "cp314", "arch": "ppc64le", "cipy": "3.11", "os-version": "24.04-ppc64le"}
144
+ - {"os": "ubuntu", "py": "cp315", "arch": "ppc64le", "cipy": "3.11", "os-version": "24.04-ppc64le"}
140
145
  - {"os": "macos", "py": "cp310", "arch": "arm64", "cipy": "3.11", "os-version": "14"}
141
146
  - {"os": "macos", "py": "cp311", "arch": "arm64", "cipy": "3.11", "os-version": "14"}
142
147
  - {"os": "macos", "py": "cp312", "arch": "arm64", "cipy": "3.11", "os-version": "14"}
143
148
  - {"os": "macos", "py": "cp313", "arch": "arm64", "cipy": "3.11", "os-version": "14"}
144
149
  - {"os": "macos", "py": "cp314", "arch": "arm64", "cipy": "3.11", "os-version": "14"}
150
+ - {"os": "macos", "py": "cp315", "arch": "arm64", "cipy": "3.11", "os-version": "14"}
145
151
  - {"os": "macos", "py": "cp310", "arch": "x86_64", "cipy": "3.11", "os-version": "14"}
146
152
  - {"os": "macos", "py": "cp311", "arch": "x86_64", "cipy": "3.11", "os-version": "14"}
147
153
  - {"os": "macos", "py": "cp312", "arch": "x86_64", "cipy": "3.11", "os-version": "14"}
148
154
  - {"os": "macos", "py": "cp313", "arch": "x86_64", "cipy": "3.11", "os-version": "14"}
149
155
  - {"os": "macos", "py": "cp314", "arch": "x86_64", "cipy": "3.11", "os-version": "14"}
156
+ - {"os": "macos", "py": "cp315", "arch": "x86_64", "cipy": "3.11", "os-version": "14"}
150
157
  - {"os": "windows", "py": "cp310", "arch": "x86", "cipy": "3.11"}
151
158
  - {"os": "windows", "py": "cp311", "arch": "x86", "cipy": "3.11"}
152
159
  - {"os": "windows", "py": "cp312", "arch": "x86", "cipy": "3.11"}
153
160
  - {"os": "windows", "py": "cp313", "arch": "x86", "cipy": "3.11"}
154
161
  - {"os": "windows", "py": "cp314", "arch": "x86", "cipy": "3.11"}
162
+ - {"os": "windows", "py": "cp315", "arch": "x86", "cipy": "3.11"}
155
163
  - {"os": "windows", "py": "cp310", "arch": "AMD64", "cipy": "3.11"}
156
164
  - {"os": "windows", "py": "cp311", "arch": "AMD64", "cipy": "3.11"}
157
165
  - {"os": "windows", "py": "cp312", "arch": "AMD64", "cipy": "3.11"}
158
166
  - {"os": "windows", "py": "cp313", "arch": "AMD64", "cipy": "3.11"}
159
167
  - {"os": "windows", "py": "cp314", "arch": "AMD64", "cipy": "3.11"}
168
+ - {"os": "windows", "py": "cp315", "arch": "AMD64", "cipy": "3.11"}
160
169
  - {"os": "windows", "py": "cp311", "arch": "ARM64", "cipy": "3.11", "os-version": "11-arm"}
161
170
  - {"os": "windows", "py": "cp312", "arch": "ARM64", "cipy": "3.11", "os-version": "11-arm"}
162
171
  - {"os": "windows", "py": "cp313", "arch": "ARM64", "cipy": "3.11", "os-version": "11-arm"}
163
172
  - {"os": "windows", "py": "cp314", "arch": "ARM64", "cipy": "3.11", "os-version": "11-arm"}
164
- # [[[end]]] (sum: AhCqn9SafY)
173
+ - {"os": "windows", "py": "cp315", "arch": "ARM64", "cipy": "3.11", "os-version": "11-arm"}
174
+ # [[[end]]] (sum: N6DRns0iG/)
165
175
  # ^^^^^^^^^^^^^^^
166
176
  # If a check fails and points to this checksum line, it means you edited
167
177
  # the matrix directly instead of editing the Python code in the comment
@@ -172,13 +182,13 @@ jobs:
172
182
 
173
183
  steps:
174
184
  - name: "Check out the repo"
175
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
185
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
176
186
  with:
177
187
  persist-credentials: false
178
188
 
179
189
  - name: "Install Python"
180
190
  if: ${{ matrix.arch != 'ppc64le' }}
181
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
191
+ uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
182
192
  with:
183
193
  python-version: "${{ matrix.cipy }}"
184
194
  cache: pip
@@ -204,12 +214,16 @@ jobs:
204
214
  if: ${{ matrix.arch == 'riscv64' }}
205
215
  uses: docker/setup-qemu-action@96fe6ef7f33517b61c61be40b68a1882f3264fb8 # v4.2.0
206
216
 
217
+ - name: "Show environment"
218
+ run: |
219
+ python -VV
220
+ python -m site
221
+
207
222
  - name: "Build binary wheels"
208
223
  env:
209
224
  CIBW_BUILD: ${{ matrix.py }}*-*
210
225
  CIBW_ARCHS: ${{ matrix.arch }}
211
226
  CIBW_ENVIRONMENT: PIP_DISABLE_PIP_VERSION_CHECK=1
212
- CIBW_ENABLE: cpython-prerelease
213
227
  CIBW_TEST_COMMAND: python -c "from coverage.tracer import CTracer; print('CTracer OK!')"
214
228
  run: |
215
229
  python -m cibuildwheel --output-dir wheelhouse
@@ -234,12 +248,12 @@ jobs:
234
248
  runs-on: ubuntu-latest
235
249
  steps:
236
250
  - name: "Check out the repo"
237
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
251
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
238
252
  with:
239
253
  persist-credentials: false
240
254
 
241
255
  - name: "Install Python"
242
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
256
+ uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
243
257
  with:
244
258
  python-version: "3.11" # PYVERSIONS: the kit-building version
245
259
  cache: pip
@@ -17,7 +17,7 @@ defaults:
17
17
  env:
18
18
  # PYVERSIONS: changing the list of versions will change the number of
19
19
  # expected distributions. This must match the same number in kit.yml.
20
- EXPECTED: 91
20
+ EXPECTED: 121
21
21
 
22
22
  permissions:
23
23
  contents: read
@@ -91,7 +91,7 @@ jobs:
91
91
  subject-path: "dist/*"
92
92
 
93
93
  - name: "Publish dists to Test PyPI"
94
- uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0
94
+ uses: pypa/gh-action-pypi-publish@ba38be9e461d3875417946c167d0b5f3d385a247 # v1.14.1
95
95
  with:
96
96
  repository-url: https://test.pypi.org/legacy/
97
97
 
@@ -132,4 +132,4 @@ jobs:
132
132
  subject-path: "dist/*"
133
133
 
134
134
  - name: "Publish dists to PyPI"
135
- uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0
135
+ uses: pypa/gh-action-pypi-publish@ba38be9e461d3875417946c167d0b5f3d385a247 # v1.14.1
@@ -59,7 +59,7 @@ jobs:
59
59
 
60
60
  steps:
61
61
  - name: "Check out the repo"
62
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
62
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
63
63
  with:
64
64
  persist-credentials: false
65
65
 
@@ -38,7 +38,7 @@ jobs:
38
38
  workflow: ${{ steps.filter.outputs.workflow }}
39
39
  steps:
40
40
  - name: "Check out the repo"
41
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
41
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
42
42
  with:
43
43
  persist-credentials: false
44
44
 
@@ -74,12 +74,12 @@ jobs:
74
74
 
75
75
  steps:
76
76
  - name: "Check out the repo"
77
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
77
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
78
78
  with:
79
79
  persist-credentials: false
80
80
 
81
81
  - name: "Install Python"
82
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
82
+ uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
83
83
  with:
84
84
  python-version: "3.10" # Minimum of PYVERSIONS
85
85
  cache: pip
@@ -104,12 +104,12 @@ jobs:
104
104
 
105
105
  steps:
106
106
  - name: "Check out the repo"
107
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
107
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
108
108
  with:
109
109
  persist-credentials: false
110
110
 
111
111
  - name: "Install Python"
112
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
112
+ uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
113
113
  with:
114
114
  python-version: "3.10" # Minimum of PYVERSIONS
115
115
  cache: pip
@@ -134,7 +134,7 @@ jobs:
134
134
 
135
135
  steps:
136
136
  - name: "Check out the repo"
137
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
137
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
138
138
  with:
139
139
  persist-credentials: false
140
140
 
@@ -144,7 +144,7 @@ jobs:
144
144
  git fetch origin main --depth=1
145
145
 
146
146
  - name: "Install Python"
147
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
147
+ uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
148
148
  with:
149
149
  python-version: "3.12" # Doc version from PYVERSIONS
150
150
  cache: pip
@@ -179,12 +179,12 @@ jobs:
179
179
 
180
180
  steps:
181
181
  - name: "Check out the repo"
182
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
182
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
183
183
  with:
184
184
  persist-credentials: false
185
185
 
186
186
  - name: "Install uv"
187
- uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
187
+ uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
188
188
  with:
189
189
  enable-cache: false
190
190
 
@@ -38,7 +38,7 @@ jobs:
38
38
  run_tests: ${{ steps.filter.outputs.run_tests }}
39
39
  steps:
40
40
  - name: "Check out the repo"
41
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
41
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
42
42
  with:
43
43
  persist-credentials: false
44
44
 
@@ -116,12 +116,12 @@ jobs:
116
116
 
117
117
  steps:
118
118
  - name: "Check out the repo"
119
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
119
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
120
120
  with:
121
121
  persist-credentials: false
122
122
 
123
123
  - name: "Set up Python"
124
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
124
+ uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
125
125
  with:
126
126
  python-version: "${{ matrix.python-version }}"
127
127
  allow-prereleases: true
@@ -16,7 +16,7 @@ repos:
16
16
  exclude: "stress_phystoken|\\.py,cover$"
17
17
 
18
18
  - repo: https://github.com/astral-sh/ruff-pre-commit
19
- rev: v0.15.20
19
+ rev: v0.16.1
20
20
  hooks:
21
21
  - id: ruff-format
22
22
 
@@ -22,6 +22,52 @@ upgrading your version of coverage.py.
22
22
 
23
23
  .. start-releases
24
24
 
25
+ .. _changes_7-15-4:
26
+
27
+ Version 7.15.4 — 2026-08-06
28
+ ---------------------------
29
+
30
+ - Fix: in the HTML report, a source file name containing a double quote (legal
31
+ on POSIX) wasn't escaped where it's dropped into the ``href`` of the index
32
+ and prev/next links, so it could close the attribute early and inject markup.
33
+ Page URLs are now escaped. Thanks, `Rajath Mohare <pull 2227_>`_.
34
+
35
+ - Fix: the LCOV report wrote file names and other fields into its
36
+ line-oriented records without neutralizing control characters. A measured
37
+ file whose name contained a newline (legal on POSIX) could forge extra
38
+ records, inflating the coverage seen by tools that read the report. Control
39
+ characters in a field are now replaced. Thanks, `Rajath Mohare <pull
40
+ 2226_>`_.
41
+
42
+ - Wheels are now provided for Python 3.15.
43
+
44
+ .. _pull 2226: https://github.com/coveragepy/coveragepy/pull/2226
45
+ .. _pull 2227: https://github.com/coveragepy/coveragepy/pull/2227
46
+
47
+
48
+ .. _changes_7-15-3:
49
+
50
+ Version 7.15.3 — 2026-08-02
51
+ ---------------------------
52
+
53
+ - Fix: the sysmon core is incompatible with dynamic contexts. Previously, the
54
+ combination would be prevented when read from the coverage.py configuration.
55
+ But using the context API as pytest-cov does, contexts would be silently
56
+ dropped. Now a warning is issued, thanks to `Jisang Han <pull 2234_>`_.
57
+ Closes `issue 2200`_.
58
+
59
+ - A performance improvement in the low-level line number bookkeeping when
60
+ combining data files, thanks to `Kevin Turcios <pull 2239_>`_.
61
+
62
+ - Performance improvement in HTML reporting by reducing the number of times
63
+ files have to be parsed, thanks to `Kevin Turcios <pull 2240_>`_.
64
+
65
+ .. _issue 2200: https://github.com/coveragepy/coveragepy/issues/2200
66
+ .. _pull 2234: https://github.com/coveragepy/coveragepy/pull/2234
67
+ .. _pull 2239: https://github.com/coveragepy/coveragepy/pull/2239
68
+ .. _pull 2240: https://github.com/coveragepy/coveragepy/pull/2240
69
+
70
+
25
71
  .. _changes_7-15-2:
26
72
 
27
73
  Version 7.15.2 — 2026-07-15
@@ -123,6 +123,7 @@ Jeremy Fleischman
123
123
  Jerin Peter George
124
124
  Jessamyn Smith
125
125
  Jianrong Zhao
126
+ Jisang Han
126
127
  Joanna Ejzel
127
128
  Joe Doherty
128
129
  Joe Jevnik
@@ -139,6 +140,7 @@ Karthikeyan Singaravelan
139
140
  Kassandra Keeton
140
141
  Ken Schackart
141
142
  Kevin Brown-Silva
143
+ Kevin Turcios
142
144
  Kjell Braden
143
145
  Krystian Kichewko
144
146
  Kumar Aditya
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: coverage
3
- Version: 7.15.2
3
+ Version: 7.15.4
4
4
  Summary: Code coverage measurement for Python
5
5
  Home-page: https://github.com/coveragepy/coveragepy
6
- Author: Ned Batchelder and 261 others
6
+ Author: Ned Batchelder and 263 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.2
9
+ Project-URL: Documentation, https://coverage.readthedocs.io/en/7.15.4
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
@@ -33,6 +33,7 @@ Classifier: Topic :: Software Development :: Testing
33
33
  Requires-Python: >=3.10
34
34
  Description-Content-Type: text/x-rst
35
35
  License-File: LICENSE.txt
36
+ License-File: NOTICE.txt
36
37
  Provides-Extra: toml
37
38
  Requires-Dist: tomli; python_full_version <= "3.11.0a6" and extra == "toml"
38
39
  Dynamic: author
@@ -77,13 +78,13 @@ Coverage.py runs on these versions of Python:
77
78
 
78
79
  .. PYVERSIONS
79
80
 
80
- * Python 3.10 through 3.15 beta, including free-threading.
81
+ * Python 3.10 through 3.15 rc1, including free-threading.
81
82
  * PyPy3 versions 3.10 and 3.11.
82
83
 
83
84
  Documentation is on `Read the Docs`_. Code repository and issue tracker are on
84
85
  `GitHub`_.
85
86
 
86
- .. _Read the Docs: https://coverage.readthedocs.io/en/7.15.2/
87
+ .. _Read the Docs: https://coverage.readthedocs.io/en/7.15.4/
87
88
  .. _GitHub: https://github.com/coveragepy/coveragepy
88
89
 
89
90
 
@@ -112,7 +113,7 @@ Getting Started
112
113
  Looking to run ``coverage`` on your test suite? See the `Quick Start section`_
113
114
  of the docs.
114
115
 
115
- .. _Quick Start section: https://coverage.readthedocs.io/en/7.15.2/#quick-start
116
+ .. _Quick Start section: https://coverage.readthedocs.io/en/7.15.4/#quick-start
116
117
 
117
118
 
118
119
  Change history
@@ -120,7 +121,7 @@ Change history
120
121
 
121
122
  The complete history of changes is on the `change history page`_.
122
123
 
123
- .. _change history page: https://coverage.readthedocs.io/en/7.15.2/changes.html
124
+ .. _change history page: https://coverage.readthedocs.io/en/7.15.4/changes.html
124
125
 
125
126
 
126
127
  Code of Conduct
@@ -139,7 +140,7 @@ Contributing
139
140
  Found a bug? Want to help improve the code or documentation? See the
140
141
  `Contributing section`_ of the docs.
141
142
 
142
- .. _Contributing section: https://coverage.readthedocs.io/en/7.15.2/contributing.html
143
+ .. _Contributing section: https://coverage.readthedocs.io/en/7.15.4/contributing.html
143
144
 
144
145
 
145
146
  Security
@@ -167,7 +168,7 @@ Licensed under the `Apache 2.0 License`_. For details, see `NOTICE.txt`_.
167
168
  :target: https://github.com/coveragepy/coveragepy/actions/workflows/quality.yml
168
169
  :alt: Quality check status
169
170
  .. |docs| image:: https://readthedocs.org/projects/coverage/badge/?version=latest&style=flat
170
- :target: https://coverage.readthedocs.io/en/7.15.2/
171
+ :target: https://coverage.readthedocs.io/en/7.15.4/
171
172
  :alt: Documentation
172
173
  .. |kit| image:: https://img.shields.io/pypi/v/coverage
173
174
  :target: https://pypi.org/project/coverage/
@@ -26,7 +26,7 @@ Coverage.py runs on these versions of Python:
26
26
 
27
27
  .. PYVERSIONS
28
28
 
29
- * Python 3.10 through 3.15 beta, including free-threading.
29
+ * Python 3.10 through 3.15 rc1, including free-threading.
30
30
  * PyPy3 versions 3.10 and 3.11.
31
31
 
32
32
  Documentation is on `Read the Docs`_. Code repository and issue tracker are on
@@ -432,8 +432,6 @@ class CoverageOptionParser(optparse.OptionParser):
432
432
  class OptionParserError(Exception):
433
433
  """Used to stop the optparse error handler ending the process."""
434
434
 
435
- pass
436
-
437
435
  def parse_args_ok(self, args: list[str]) -> tuple[bool, optparse.Values | None, list[str]]:
438
436
  """Call optparse.parse_args, but return a triple:
439
437
 
@@ -753,8 +751,7 @@ def show_help(
753
751
  # coverage-3.5-script.py. argv[0] is the .py file, but we want to
754
752
  # get back to the original form.
755
753
  auto_suffix = "-script.py"
756
- if program_name.endswith(auto_suffix):
757
- program_name = program_name[: -len(auto_suffix)]
754
+ program_name = program_name.removesuffix(auto_suffix)
758
755
 
759
756
  help_params = dict(coverage.__dict__)
760
757
  help_params["__url__"] = __url__
@@ -148,10 +148,7 @@ class Collector:
148
148
 
149
149
  if self.concur_id_func and not hasattr(core.tracer_class, "concur_id_func"):
150
150
  raise ConfigError(
151
- "Can't support concurrency={} with {}, only threads are supported.".format(
152
- tried,
153
- self.tracer_name(),
154
- ),
151
+ f"Can't support concurrency={tried} with {self.tracer_name()}, only threads are supported.",
155
152
  )
156
153
 
157
154
  if do_threading or not concurrency:
@@ -344,11 +344,7 @@ class CoverageConfig(TConfigurable, TPluginConfig):
344
344
  if real_section:
345
345
  for unknown in set(cp.options(section)) - options:
346
346
  warn(
347
- "Unrecognized option '[{}] {}=' in config file {}".format(
348
- real_section,
349
- unknown,
350
- filename,
351
- ),
347
+ f"Unrecognized option '[{real_section}] {unknown}=' in config file {filename}",
352
348
  )
353
349
 
354
350
  # [paths] is special
@@ -794,6 +794,14 @@ class Coverage(TConfigurable):
794
794
  if not self._started: # pragma: part started
795
795
  raise CoverageException("Cannot switch context, coverage is not started")
796
796
 
797
+ assert self._core is not None
798
+ if not self._core.supports_dynamic_contexts:
799
+ self._warn(
800
+ "Dynamic contexts aren't supported with core=sysmon; "
801
+ + "context data may be incomplete",
802
+ slug="no-sysmon-context",
803
+ once=True,
804
+ )
797
805
  assert self._collector is not None
798
806
  if self._collector.should_start_context:
799
807
  self._warn("Conflicting dynamic contexts", slug="dynamic-conflict", once=True)
@@ -1040,10 +1048,7 @@ class Coverage(TConfigurable):
1040
1048
  file_reporter = plugin.file_reporter(mapped_morf)
1041
1049
  if file_reporter is None:
1042
1050
  raise PluginError(
1043
- "Plugin {!r} did not provide a file reporter for {!r}.".format(
1044
- plugin._coverage_plugin_name,
1045
- morf,
1046
- ),
1051
+ f"Plugin {plugin._coverage_plugin_name!r} did not provide a file reporter for {morf!r}.",
1047
1052
  )
1048
1053
 
1049
1054
  if file_reporter == "python":