coverage 7.15.4__tar.gz → 7.16.0__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 (411) hide show
  1. {coverage-7.15.4 → coverage-7.16.0}/.github/workflows/codeql-analysis.yml +3 -3
  2. {coverage-7.15.4 → coverage-7.16.0}/.github/workflows/coverage.yml +1 -1
  3. {coverage-7.15.4 → coverage-7.16.0}/.github/workflows/kit.yml +1 -1
  4. {coverage-7.15.4 → coverage-7.16.0}/.github/workflows/publish.yml +4 -4
  5. {coverage-7.15.4 → coverage-7.16.0}/.github/workflows/quality.yml +3 -2
  6. {coverage-7.15.4 → coverage-7.16.0}/.github/workflows/testsuite.yml +1 -1
  7. coverage-7.16.0/.gitignore +59 -0
  8. {coverage-7.15.4 → coverage-7.16.0}/.pre-commit-config.yaml +1 -1
  9. {coverage-7.15.4 → coverage-7.16.0}/CHANGES.rst +55 -0
  10. {coverage-7.15.4 → coverage-7.16.0}/MANIFEST.in +1 -0
  11. {coverage-7.15.4 → coverage-7.16.0}/Makefile +2 -6
  12. {coverage-7.15.4 → coverage-7.16.0}/PKG-INFO +7 -7
  13. {coverage-7.15.4 → coverage-7.16.0}/ci/comment_on_fixes.py +0 -1
  14. {coverage-7.15.4 → coverage-7.16.0}/coverage/__init__.py +3 -0
  15. {coverage-7.15.4 → coverage-7.16.0}/coverage/annotate.py +7 -3
  16. {coverage-7.15.4 → coverage-7.16.0}/coverage/cmdline.py +2 -2
  17. {coverage-7.15.4 → coverage-7.16.0}/coverage/collector.py +4 -4
  18. {coverage-7.15.4 → coverage-7.16.0}/coverage/config.py +31 -24
  19. {coverage-7.15.4 → coverage-7.16.0}/coverage/control.py +32 -27
  20. {coverage-7.15.4 → coverage-7.16.0}/coverage/debug.py +2 -2
  21. {coverage-7.15.4 → coverage-7.16.0}/coverage/files.py +1 -1
  22. {coverage-7.15.4 → coverage-7.16.0}/coverage/html.py +4 -3
  23. {coverage-7.15.4 → coverage-7.16.0}/coverage/misc.py +8 -0
  24. {coverage-7.15.4 → coverage-7.16.0}/coverage/parser.py +19 -17
  25. {coverage-7.15.4 → coverage-7.16.0}/coverage/plugin.py +3 -3
  26. {coverage-7.15.4 → coverage-7.16.0}/coverage/pytracer.py +1 -1
  27. {coverage-7.15.4 → coverage-7.16.0}/coverage/results.py +5 -4
  28. {coverage-7.15.4 → coverage-7.16.0}/coverage/sqldata.py +43 -21
  29. {coverage-7.15.4 → coverage-7.16.0}/coverage/sysmon.py +2 -2
  30. {coverage-7.15.4 → coverage-7.16.0}/coverage/tomlconfig.py +9 -2
  31. {coverage-7.15.4 → coverage-7.16.0}/coverage/tracer.pyi +1 -1
  32. {coverage-7.15.4 → coverage-7.16.0}/coverage/types.py +4 -4
  33. {coverage-7.15.4 → coverage-7.16.0}/coverage/version.py +1 -1
  34. {coverage-7.15.4 → coverage-7.16.0}/coverage.egg-info/PKG-INFO +7 -7
  35. {coverage-7.15.4 → coverage-7.16.0}/coverage.egg-info/SOURCES.txt +1 -2
  36. {coverage-7.15.4 → coverage-7.16.0}/doc/api_coveragedata.rst +1 -1
  37. {coverage-7.15.4 → coverage-7.16.0}/doc/commands/cmd_lcov.rst +1 -1
  38. {coverage-7.15.4 → coverage-7.16.0}/doc/commands/cmd_run.rst +1 -1
  39. {coverage-7.15.4 → coverage-7.16.0}/doc/conf.py +4 -4
  40. {coverage-7.15.4 → coverage-7.16.0}/doc/config.rst +18 -18
  41. {coverage-7.15.4 → coverage-7.16.0}/doc/contexts.rst +1 -1
  42. {coverage-7.15.4 → coverage-7.16.0}/doc/dbschema.rst +1 -1
  43. {coverage-7.15.4 → coverage-7.16.0}/doc/excluding.rst +2 -2
  44. {coverage-7.15.4 → coverage-7.16.0}/doc/plugins.rst +1 -1
  45. {coverage-7.15.4 → coverage-7.16.0}/doc/requirements.in +2 -2
  46. {coverage-7.15.4 → coverage-7.16.0}/doc/requirements.pip +296 -218
  47. {coverage-7.15.4 → coverage-7.16.0}/howto.txt +3 -5
  48. {coverage-7.15.4 → coverage-7.16.0}/pyproject.toml +18 -1
  49. coverage-7.16.0/requirements/dev.pip +994 -0
  50. coverage-7.16.0/requirements/kit.pip +542 -0
  51. coverage-7.16.0/requirements/light-threads.pip +290 -0
  52. coverage-7.16.0/requirements/mypy.pip +436 -0
  53. coverage-7.16.0/requirements/pip.pip +36 -0
  54. {coverage-7.15.4 → coverage-7.16.0}/requirements/pytest.pip +66 -66
  55. {coverage-7.15.4 → coverage-7.16.0}/requirements/tox.pip +22 -23
  56. {coverage-7.15.4 → coverage-7.16.0}/setup.py +1 -2
  57. {coverage-7.15.4 → coverage-7.16.0}/tests/conftest.py +0 -3
  58. {coverage-7.15.4 → coverage-7.16.0}/tests/coveragetest.py +3 -7
  59. {coverage-7.15.4 → coverage-7.16.0}/tests/goldtest.py +0 -1
  60. {coverage-7.15.4 → coverage-7.16.0}/tests/helpers.py +2 -3
  61. {coverage-7.15.4 → coverage-7.16.0}/tests/hypo.py +6 -0
  62. {coverage-7.15.4 → coverage-7.16.0}/tests/mixins.py +0 -1
  63. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/pkg1/p1a.py +2 -1
  64. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/process_test/try_execfile.py +0 -1
  65. coverage-7.16.0/tests/modules/usepkgs.py +14 -0
  66. {coverage-7.15.4 → coverage-7.16.0}/tests/osinfo.py +0 -1
  67. {coverage-7.15.4 → coverage-7.16.0}/tests/plugin1.py +0 -1
  68. {coverage-7.15.4 → coverage-7.16.0}/tests/plugin2.py +0 -1
  69. {coverage-7.15.4 → coverage-7.16.0}/tests/test_annotate.py +12 -1
  70. {coverage-7.15.4 → coverage-7.16.0}/tests/test_api.py +11 -9
  71. {coverage-7.15.4 → coverage-7.16.0}/tests/test_arcs.py +2 -3
  72. {coverage-7.15.4 → coverage-7.16.0}/tests/test_bytecode.py +1 -3
  73. {coverage-7.15.4 → coverage-7.16.0}/tests/test_cmdline.py +15 -5
  74. {coverage-7.15.4 → coverage-7.16.0}/tests/test_collector.py +0 -1
  75. {coverage-7.15.4 → coverage-7.16.0}/tests/test_concurrency.py +6 -9
  76. {coverage-7.15.4 → coverage-7.16.0}/tests/test_config.py +20 -2
  77. {coverage-7.15.4 → coverage-7.16.0}/tests/test_context.py +0 -2
  78. {coverage-7.15.4 → coverage-7.16.0}/tests/test_core.py +0 -1
  79. {coverage-7.15.4 → coverage-7.16.0}/tests/test_coverage.py +0 -1
  80. {coverage-7.15.4 → coverage-7.16.0}/tests/test_data.py +64 -10
  81. {coverage-7.15.4 → coverage-7.16.0}/tests/test_debug.py +1 -3
  82. {coverage-7.15.4 → coverage-7.16.0}/tests/test_execfile.py +2 -4
  83. {coverage-7.15.4 → coverage-7.16.0}/tests/test_filereporter.py +0 -1
  84. {coverage-7.15.4 → coverage-7.16.0}/tests/test_files.py +11 -3
  85. {coverage-7.15.4 → coverage-7.16.0}/tests/test_goldtest.py +2 -3
  86. {coverage-7.15.4 → coverage-7.16.0}/tests/test_html.py +6 -9
  87. {coverage-7.15.4 → coverage-7.16.0}/tests/test_json.py +4 -8
  88. {coverage-7.15.4 → coverage-7.16.0}/tests/test_lcov.py +0 -1
  89. {coverage-7.15.4 → coverage-7.16.0}/tests/test_misc.py +9 -5
  90. {coverage-7.15.4 → coverage-7.16.0}/tests/test_mixins.py +1 -2
  91. {coverage-7.15.4 → coverage-7.16.0}/tests/test_numbits.py +9 -12
  92. {coverage-7.15.4 → coverage-7.16.0}/tests/test_oddball.py +0 -1
  93. {coverage-7.15.4 → coverage-7.16.0}/tests/test_parser.py +0 -1
  94. {coverage-7.15.4 → coverage-7.16.0}/tests/test_phystokens.py +2 -4
  95. {coverage-7.15.4 → coverage-7.16.0}/tests/test_plugins.py +2 -5
  96. {coverage-7.15.4 → coverage-7.16.0}/tests/test_process.py +5 -6
  97. {coverage-7.15.4 → coverage-7.16.0}/tests/test_python.py +0 -1
  98. {coverage-7.15.4 → coverage-7.16.0}/tests/test_regions.py +0 -1
  99. {coverage-7.15.4 → coverage-7.16.0}/tests/test_report.py +2 -4
  100. {coverage-7.15.4 → coverage-7.16.0}/tests/test_report_common.py +0 -1
  101. {coverage-7.15.4 → coverage-7.16.0}/tests/test_report_core.py +1 -2
  102. {coverage-7.15.4 → coverage-7.16.0}/tests/test_results.py +6 -3
  103. {coverage-7.15.4 → coverage-7.16.0}/tests/test_setup.py +0 -2
  104. {coverage-7.15.4 → coverage-7.16.0}/tests/test_sqlitedb.py +0 -1
  105. {coverage-7.15.4 → coverage-7.16.0}/tests/test_sysmon.py +0 -1
  106. {coverage-7.15.4 → coverage-7.16.0}/tests/test_templite.py +8 -9
  107. {coverage-7.15.4 → coverage-7.16.0}/tests/test_testing.py +1 -3
  108. {coverage-7.15.4 → coverage-7.16.0}/tests/test_venv.py +3 -6
  109. {coverage-7.15.4 → coverage-7.16.0}/tests/test_version.py +0 -1
  110. {coverage-7.15.4 → coverage-7.16.0}/tests/test_xml.py +1 -3
  111. {coverage-7.15.4 → coverage-7.16.0}/tox.ini +1 -1
  112. coverage-7.15.4/requirements/dev.pip +0 -916
  113. coverage-7.15.4/requirements/kit.pip +0 -463
  114. coverage-7.15.4/requirements/light-threads.pip +0 -288
  115. coverage-7.15.4/requirements/mypy.pip +0 -368
  116. coverage-7.15.4/requirements/pip.pip +0 -38
  117. coverage-7.15.4/tests/gold/html/support/favicon_32_cb_c827f16f.png +0 -0
  118. coverage-7.15.4/tests/gold/html/support/keybd_closed_cb_900cfef5.png +0 -0
  119. coverage-7.15.4/tests/modules/usepkgs.py +0 -8
  120. {coverage-7.15.4 → coverage-7.16.0}/.editorconfig +0 -0
  121. {coverage-7.15.4 → coverage-7.16.0}/.git-blame-ignore-revs +0 -0
  122. {coverage-7.15.4 → coverage-7.16.0}/.github/CODE_OF_CONDUCT.md +0 -0
  123. {coverage-7.15.4 → coverage-7.16.0}/.github/FUNDING.yml +0 -0
  124. {coverage-7.15.4 → coverage-7.16.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  125. {coverage-7.15.4 → coverage-7.16.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  126. {coverage-7.15.4 → coverage-7.16.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  127. {coverage-7.15.4 → coverage-7.16.0}/.github/ISSUE_TEMPLATE/support.md +0 -0
  128. {coverage-7.15.4 → coverage-7.16.0}/.github/SECURITY.md +0 -0
  129. {coverage-7.15.4 → coverage-7.16.0}/.github/dependabot.yml +0 -0
  130. {coverage-7.15.4 → coverage-7.16.0}/.github/workflows/dependency-review.yml +0 -0
  131. {coverage-7.15.4 → coverage-7.16.0}/.github/workflows/python-nightly.yml +0 -0
  132. {coverage-7.15.4 → coverage-7.16.0}/.github/zizmor.yml +0 -0
  133. {coverage-7.15.4 → coverage-7.16.0}/.ignore +0 -0
  134. {coverage-7.15.4 → coverage-7.16.0}/.readthedocs.yaml +0 -0
  135. {coverage-7.15.4 → coverage-7.16.0}/CITATION.cff +0 -0
  136. {coverage-7.15.4 → coverage-7.16.0}/CONTRIBUTORS.txt +0 -0
  137. {coverage-7.15.4 → coverage-7.16.0}/LICENSE.txt +0 -0
  138. {coverage-7.15.4 → coverage-7.16.0}/NOTICE.txt +0 -0
  139. {coverage-7.15.4 → coverage-7.16.0}/README.rst +0 -0
  140. {coverage-7.15.4 → coverage-7.16.0}/__main__.py +1 -1
  141. {coverage-7.15.4 → coverage-7.16.0}/a1_coverage.pth +0 -0
  142. {coverage-7.15.4 → coverage-7.16.0}/ci/README.txt +0 -0
  143. {coverage-7.15.4 → coverage-7.16.0}/ci/session.py +0 -0
  144. {coverage-7.15.4 → coverage-7.16.0}/ci/trigger_action.py +0 -0
  145. {coverage-7.15.4 → coverage-7.16.0}/ci/update_rtfd.py +0 -0
  146. {coverage-7.15.4 → coverage-7.16.0}/coverage/__main__.py +0 -0
  147. {coverage-7.15.4 → coverage-7.16.0}/coverage/bytecode.py +0 -0
  148. {coverage-7.15.4 → coverage-7.16.0}/coverage/context.py +0 -0
  149. {coverage-7.15.4 → coverage-7.16.0}/coverage/core.py +0 -0
  150. {coverage-7.15.4 → coverage-7.16.0}/coverage/ctracer/datastack.c +0 -0
  151. {coverage-7.15.4 → coverage-7.16.0}/coverage/ctracer/datastack.h +0 -0
  152. {coverage-7.15.4 → coverage-7.16.0}/coverage/ctracer/filedisp.c +0 -0
  153. {coverage-7.15.4 → coverage-7.16.0}/coverage/ctracer/filedisp.h +0 -0
  154. {coverage-7.15.4 → coverage-7.16.0}/coverage/ctracer/module.c +0 -0
  155. {coverage-7.15.4 → coverage-7.16.0}/coverage/ctracer/stats.h +0 -0
  156. {coverage-7.15.4 → coverage-7.16.0}/coverage/ctracer/tracer.c +0 -0
  157. {coverage-7.15.4 → coverage-7.16.0}/coverage/ctracer/tracer.h +0 -0
  158. {coverage-7.15.4 → coverage-7.16.0}/coverage/ctracer/util.h +0 -0
  159. {coverage-7.15.4 → coverage-7.16.0}/coverage/data.py +0 -0
  160. {coverage-7.15.4 → coverage-7.16.0}/coverage/disposition.py +0 -0
  161. {coverage-7.15.4 → coverage-7.16.0}/coverage/env.py +0 -0
  162. {coverage-7.15.4 → coverage-7.16.0}/coverage/exceptions.py +0 -0
  163. {coverage-7.15.4 → coverage-7.16.0}/coverage/execfile.py +0 -0
  164. {coverage-7.15.4 → coverage-7.16.0}/coverage/htmlfiles/coverage_html.js +0 -0
  165. {coverage-7.15.4 → coverage-7.16.0}/coverage/htmlfiles/favicon_32.png +0 -0
  166. {coverage-7.15.4 → coverage-7.16.0}/coverage/htmlfiles/index.html +0 -0
  167. {coverage-7.15.4 → coverage-7.16.0}/coverage/htmlfiles/keybd_closed.png +0 -0
  168. {coverage-7.15.4 → coverage-7.16.0}/coverage/htmlfiles/pyfile.html +0 -0
  169. {coverage-7.15.4 → coverage-7.16.0}/coverage/htmlfiles/style.css +0 -0
  170. {coverage-7.15.4 → coverage-7.16.0}/coverage/htmlfiles/style.scss +0 -0
  171. {coverage-7.15.4 → coverage-7.16.0}/coverage/inorout.py +0 -0
  172. {coverage-7.15.4 → coverage-7.16.0}/coverage/jsonreport.py +0 -0
  173. {coverage-7.15.4 → coverage-7.16.0}/coverage/lcovreport.py +0 -0
  174. {coverage-7.15.4 → coverage-7.16.0}/coverage/multiproc.py +0 -0
  175. {coverage-7.15.4 → coverage-7.16.0}/coverage/numbits.py +0 -0
  176. {coverage-7.15.4 → coverage-7.16.0}/coverage/patch.py +0 -0
  177. {coverage-7.15.4 → coverage-7.16.0}/coverage/phystokens.py +0 -0
  178. {coverage-7.15.4 → coverage-7.16.0}/coverage/plugin_support.py +0 -0
  179. {coverage-7.15.4 → coverage-7.16.0}/coverage/pth_file.py +0 -0
  180. {coverage-7.15.4 → coverage-7.16.0}/coverage/py.typed +0 -0
  181. {coverage-7.15.4 → coverage-7.16.0}/coverage/python.py +0 -0
  182. {coverage-7.15.4 → coverage-7.16.0}/coverage/regions.py +1 -1
  183. {coverage-7.15.4 → coverage-7.16.0}/coverage/report.py +0 -0
  184. {coverage-7.15.4 → coverage-7.16.0}/coverage/report_core.py +0 -0
  185. {coverage-7.15.4 → coverage-7.16.0}/coverage/sqlitedb.py +0 -0
  186. {coverage-7.15.4 → coverage-7.16.0}/coverage/templite.py +0 -0
  187. {coverage-7.15.4 → coverage-7.16.0}/coverage/xmlreport.py +0 -0
  188. {coverage-7.15.4 → coverage-7.16.0}/coverage.egg-info/dependency_links.txt +0 -0
  189. {coverage-7.15.4 → coverage-7.16.0}/coverage.egg-info/entry_points.txt +0 -0
  190. {coverage-7.15.4 → coverage-7.16.0}/coverage.egg-info/not-zip-safe +0 -0
  191. {coverage-7.15.4 → coverage-7.16.0}/coverage.egg-info/requires.txt +0 -0
  192. {coverage-7.15.4 → coverage-7.16.0}/coverage.egg-info/top_level.txt +0 -0
  193. {coverage-7.15.4 → coverage-7.16.0}/doc/_static/coverage.css +0 -0
  194. {coverage-7.15.4 → coverage-7.16.0}/doc/api.rst +0 -0
  195. {coverage-7.15.4 → coverage-7.16.0}/doc/api_coverage.rst +0 -0
  196. {coverage-7.15.4 → coverage-7.16.0}/doc/api_exceptions.rst +0 -0
  197. {coverage-7.15.4 → coverage-7.16.0}/doc/api_module.rst +0 -0
  198. {coverage-7.15.4 → coverage-7.16.0}/doc/api_plugin.rst +0 -0
  199. {coverage-7.15.4 → coverage-7.16.0}/doc/branch.rst +0 -0
  200. {coverage-7.15.4 → coverage-7.16.0}/doc/changes.rst +0 -0
  201. {coverage-7.15.4 → coverage-7.16.0}/doc/cog_helpers.py +0 -0
  202. {coverage-7.15.4 → coverage-7.16.0}/doc/commands/cmd_annotate.rst +0 -0
  203. {coverage-7.15.4 → coverage-7.16.0}/doc/commands/cmd_combine.rst +0 -0
  204. {coverage-7.15.4 → coverage-7.16.0}/doc/commands/cmd_debug.rst +0 -0
  205. {coverage-7.15.4 → coverage-7.16.0}/doc/commands/cmd_erase.rst +0 -0
  206. {coverage-7.15.4 → coverage-7.16.0}/doc/commands/cmd_html.rst +0 -0
  207. {coverage-7.15.4 → coverage-7.16.0}/doc/commands/cmd_json.rst +0 -0
  208. {coverage-7.15.4 → coverage-7.16.0}/doc/commands/cmd_report.rst +0 -0
  209. {coverage-7.15.4 → coverage-7.16.0}/doc/commands/cmd_reporting.rst +0 -0
  210. {coverage-7.15.4 → coverage-7.16.0}/doc/commands/cmd_xml.rst +0 -0
  211. {coverage-7.15.4 → coverage-7.16.0}/doc/commands/index.rst +0 -0
  212. {coverage-7.15.4 → coverage-7.16.0}/doc/contributing.rst +0 -0
  213. {coverage-7.15.4 → coverage-7.16.0}/doc/dict.txt +0 -0
  214. {coverage-7.15.4 → coverage-7.16.0}/doc/faq.rst +0 -0
  215. {coverage-7.15.4 → coverage-7.16.0}/doc/howitworks.rst +0 -0
  216. {coverage-7.15.4 → coverage-7.16.0}/doc/index.rst +0 -0
  217. {coverage-7.15.4 → coverage-7.16.0}/doc/install.rst +0 -0
  218. {coverage-7.15.4 → coverage-7.16.0}/doc/media/Tidelift_Logos_RGB_Tidelift_Shorthand_On-White.png +0 -0
  219. {coverage-7.15.4 → coverage-7.16.0}/doc/media/Tidelift_Logos_RGB_Tidelift_Shorthand_On-White_small.png +0 -0
  220. {coverage-7.15.4 → coverage-7.16.0}/doc/media/sleepy-snake-600.png +0 -0
  221. {coverage-7.15.4 → coverage-7.16.0}/doc/media/sleepy-snake-circle-150.png +0 -0
  222. {coverage-7.15.4 → coverage-7.16.0}/doc/messages.rst +0 -0
  223. {coverage-7.15.4 → coverage-7.16.0}/doc/migrating.rst +0 -0
  224. {coverage-7.15.4 → coverage-7.16.0}/doc/other.rst +0 -0
  225. {coverage-7.15.4 → coverage-7.16.0}/doc/python-coverage.1.txt +0 -0
  226. {coverage-7.15.4 → coverage-7.16.0}/doc/sleepy.rst +0 -0
  227. {coverage-7.15.4 → coverage-7.16.0}/doc/source.rst +0 -0
  228. {coverage-7.15.4 → coverage-7.16.0}/doc/subprocess.rst +0 -0
  229. {coverage-7.15.4 → coverage-7.16.0}/doc/trouble.rst +0 -0
  230. {coverage-7.15.4 → coverage-7.16.0}/doc/whatsnew5x.rst +0 -0
  231. {coverage-7.15.4 → coverage-7.16.0}/igor.py +0 -0
  232. {coverage-7.15.4 → coverage-7.16.0}/lab/README.txt +0 -0
  233. {coverage-7.15.4 → coverage-7.16.0}/lab/branches.py +0 -0
  234. {coverage-7.15.4 → coverage-7.16.0}/lab/compare_times.sh +0 -0
  235. {coverage-7.15.4 → coverage-7.16.0}/lab/coverage-04.dtd +0 -0
  236. {coverage-7.15.4 → coverage-7.16.0}/lab/extract_code.py +0 -0
  237. {coverage-7.15.4 → coverage-7.16.0}/lab/goals.py +0 -0
  238. {coverage-7.15.4 → coverage-7.16.0}/lab/hack_pyc.py +0 -0
  239. {coverage-7.15.4 → coverage-7.16.0}/lab/notes/arcs-to-branches.txt +0 -0
  240. {coverage-7.15.4 → coverage-7.16.0}/lab/notes/bug1303.txt +0 -0
  241. {coverage-7.15.4 → coverage-7.16.0}/lab/notes/pypy-738-decorated-functions.txt +0 -0
  242. {coverage-7.15.4 → coverage-7.16.0}/lab/parse_all.py +0 -0
  243. {coverage-7.15.4 → coverage-7.16.0}/lab/parser.py +0 -0
  244. {coverage-7.15.4 → coverage-7.16.0}/lab/pick.py +0 -0
  245. {coverage-7.15.4 → coverage-7.16.0}/lab/platform_info.py +0 -0
  246. {coverage-7.15.4 → coverage-7.16.0}/lab/run_sysmon.py +0 -0
  247. {coverage-7.15.4 → coverage-7.16.0}/lab/run_trace.py +0 -0
  248. {coverage-7.15.4 → coverage-7.16.0}/lab/select_contexts.py +0 -0
  249. {coverage-7.15.4 → coverage-7.16.0}/lab/show_platform.py +0 -0
  250. {coverage-7.15.4 → coverage-7.16.0}/lab/show_pyc.py +0 -0
  251. {coverage-7.15.4 → coverage-7.16.0}/lab/treetopy.sh +0 -0
  252. {coverage-7.15.4 → coverage-7.16.0}/lab/warn_executed.py +0 -0
  253. {coverage-7.15.4 → coverage-7.16.0}/lab/warn_executed.toml +0 -0
  254. {coverage-7.15.4 → coverage-7.16.0}/metacov.ini +0 -0
  255. {coverage-7.15.4 → coverage-7.16.0}/requirements/dev.in +0 -0
  256. {coverage-7.15.4 → coverage-7.16.0}/requirements/kit.in +0 -0
  257. {coverage-7.15.4 → coverage-7.16.0}/requirements/light-threads.in +0 -0
  258. {coverage-7.15.4 → coverage-7.16.0}/requirements/mypy.in +0 -0
  259. {coverage-7.15.4 → coverage-7.16.0}/requirements/pins.pip +0 -0
  260. {coverage-7.15.4 → coverage-7.16.0}/requirements/pip.in +0 -0
  261. {coverage-7.15.4 → coverage-7.16.0}/requirements/pytest.in +0 -0
  262. {coverage-7.15.4 → coverage-7.16.0}/requirements/tox.in +0 -0
  263. {coverage-7.15.4 → coverage-7.16.0}/setup.cfg +0 -0
  264. {coverage-7.15.4 → coverage-7.16.0}/tests/__init__.py +0 -0
  265. {coverage-7.15.4 → coverage-7.16.0}/tests/covmodzip1.py +0 -0
  266. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/README.rst +0 -0
  267. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/annotate/anno_dir/multi.py,cover +0 -0
  268. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/annotate/anno_dir/z_80084bf2fba02475___init__.py,cover +0 -0
  269. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/annotate/anno_dir/z_80084bf2fba02475_a.py,cover +0 -0
  270. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/annotate/anno_dir/z_b039179a8a4ce2c2___init__.py,cover +0 -0
  271. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/annotate/anno_dir/z_b039179a8a4ce2c2_b.py,cover +0 -0
  272. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/annotate/encodings/utf8.py,cover +0 -0
  273. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/annotate/mae/mae.py,cover +0 -0
  274. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/annotate/multi/a/__init__.py,cover +0 -0
  275. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/annotate/multi/a/a.py,cover +0 -0
  276. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/annotate/multi/b/__init__.py,cover +0 -0
  277. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/annotate/multi/b/b.py,cover +0 -0
  278. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/annotate/multi/multi.py,cover +0 -0
  279. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/annotate/white/white.py,cover +0 -0
  280. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/Makefile +0 -0
  281. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/a/a_py.html +0 -0
  282. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/a/class_index.html +0 -0
  283. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/a/function_index.html +0 -0
  284. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/a/index.html +0 -0
  285. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/b_branch/b_py.html +0 -0
  286. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/b_branch/class_index.html +0 -0
  287. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/b_branch/function_index.html +0 -0
  288. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/b_branch/index.html +0 -0
  289. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/bom/bom_py.html +0 -0
  290. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/bom/class_index.html +0 -0
  291. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/bom/function_index.html +0 -0
  292. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/bom/index.html +0 -0
  293. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/contexts/class_index.html +0 -0
  294. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/contexts/function_index.html +0 -0
  295. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/contexts/index.html +0 -0
  296. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/contexts/two_tests_py.html +0 -0
  297. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/isolatin1/class_index.html +0 -0
  298. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/isolatin1/function_index.html +0 -0
  299. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/isolatin1/index.html +0 -0
  300. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/isolatin1/isolatin1_py.html +0 -0
  301. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/multiline/class_index.html +0 -0
  302. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/multiline/function_index.html +0 -0
  303. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/multiline/index.html +0 -0
  304. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/multiline/multiline_py.html +0 -0
  305. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/omit_1/class_index.html +0 -0
  306. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/omit_1/function_index.html +0 -0
  307. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/omit_1/index.html +0 -0
  308. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/omit_1/m1_py.html +0 -0
  309. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/omit_1/m2_py.html +0 -0
  310. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/omit_1/m3_py.html +0 -0
  311. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/omit_1/main_py.html +0 -0
  312. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/omit_2/class_index.html +0 -0
  313. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/omit_2/function_index.html +0 -0
  314. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/omit_2/index.html +0 -0
  315. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/omit_2/m2_py.html +0 -0
  316. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/omit_2/m3_py.html +0 -0
  317. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/omit_2/main_py.html +0 -0
  318. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/omit_3/class_index.html +0 -0
  319. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/omit_3/function_index.html +0 -0
  320. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/omit_3/index.html +0 -0
  321. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/omit_3/m3_py.html +0 -0
  322. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/omit_3/main_py.html +0 -0
  323. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/omit_4/class_index.html +0 -0
  324. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/omit_4/function_index.html +0 -0
  325. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/omit_4/index.html +0 -0
  326. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/omit_4/m1_py.html +0 -0
  327. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/omit_4/m3_py.html +0 -0
  328. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/omit_4/main_py.html +0 -0
  329. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/omit_5/class_index.html +0 -0
  330. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/omit_5/function_index.html +0 -0
  331. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/omit_5/index.html +0 -0
  332. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/omit_5/m1_py.html +0 -0
  333. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/omit_5/main_py.html +0 -0
  334. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/other/blah_blah_other_py.html +0 -0
  335. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/other/class_index.html +0 -0
  336. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/other/function_index.html +0 -0
  337. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/other/here_py.html +0 -0
  338. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/other/index.html +0 -0
  339. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/partial/class_index.html +0 -0
  340. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/partial/function_index.html +0 -0
  341. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/partial/index.html +0 -0
  342. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/partial/partial_py.html +0 -0
  343. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/styled/a_py.html +0 -0
  344. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/styled/class_index.html +0 -0
  345. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/styled/function_index.html +0 -0
  346. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/styled/index.html +0 -0
  347. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/styled/myextra.css +0 -0
  348. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/styled/style.css +0 -0
  349. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/support/coverage_html_cb_dd2e7eb5.js +0 -0
  350. {coverage-7.15.4/doc/sample_html → coverage-7.16.0/tests/gold/html/support}/favicon_32_cb_c827f16f.png +0 -0
  351. {coverage-7.15.4/doc/sample_html → coverage-7.16.0/tests/gold/html/support}/keybd_closed_cb_900cfef5.png +0 -0
  352. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/support/style_cb_a90a112a.css +0 -0
  353. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/unicode/class_index.html +0 -0
  354. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/unicode/function_index.html +0 -0
  355. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/unicode/index.html +0 -0
  356. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/html/unicode/unicode_py.html +0 -0
  357. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/testing/getty/gettysburg.txt +0 -0
  358. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/testing/xml/output.xml +0 -0
  359. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/xml/x_xml/coverage.xml +0 -0
  360. {coverage-7.15.4 → coverage-7.16.0}/tests/gold/xml/y_xml_branch/coverage.xml +0 -0
  361. {coverage-7.15.4 → coverage-7.16.0}/tests/js/index.html +0 -0
  362. {coverage-7.15.4 → coverage-7.16.0}/tests/js/tests.js +0 -0
  363. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/aa/__init__.py +0 -0
  364. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/aa/afile.odd.py +0 -0
  365. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/aa/afile.py +0 -0
  366. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/aa/bb/__init__.py +0 -0
  367. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/aa/bb/bfile.odd.py +0 -0
  368. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/aa/bb/bfile.py +0 -0
  369. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/aa/bb/cc/__init__.py +0 -0
  370. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/aa/bb/cc/cfile.py +0 -0
  371. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/aa/bb.odd/bfile.py +0 -0
  372. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/aa/zfile.py +0 -0
  373. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/ambiguous/__init__.py +0 -0
  374. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/ambiguous/pkg1/__init__.py +0 -0
  375. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/ambiguous/pkg1/ambiguous.py +0 -0
  376. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/checkspec.py +0 -0
  377. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/covmod1.py +0 -0
  378. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/namespace_420/sub1/__init__.py +0 -0
  379. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/pkg1/__init__.py +0 -0
  380. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/pkg1/__main__.py +0 -0
  381. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/pkg1/p1b.py +0 -0
  382. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/pkg1/p1c.py +0 -0
  383. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/pkg1/runmod2.py +0 -0
  384. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/pkg1/sub/__init__.py +0 -0
  385. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/pkg1/sub/__main__.py +0 -0
  386. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/pkg1/sub/ps1a.py +0 -0
  387. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/pkg1/sub/runmod3.py +0 -0
  388. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/pkg2/__init__.py +0 -0
  389. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/pkg2/p2a.py +0 -0
  390. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/pkg2/p2b.py +0 -0
  391. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/plugins/__init__.py +0 -0
  392. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/plugins/a_plugin.py +0 -0
  393. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/plugins/another.py +0 -0
  394. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/process_test/__init__.py +0 -0
  395. {coverage-7.15.4 → coverage-7.16.0}/tests/modules/runmod1.py +0 -0
  396. {coverage-7.15.4 → coverage-7.16.0}/tests/moremodules/namespace_420/sub2/__init__.py +0 -0
  397. {coverage-7.15.4 → coverage-7.16.0}/tests/moremodules/othermods/__init__.py +0 -0
  398. {coverage-7.15.4 → coverage-7.16.0}/tests/moremodules/othermods/othera.py +0 -0
  399. {coverage-7.15.4 → coverage-7.16.0}/tests/moremodules/othermods/otherb.py +0 -0
  400. {coverage-7.15.4 → coverage-7.16.0}/tests/moremodules/othermods/sub/__init__.py +0 -0
  401. {coverage-7.15.4 → coverage-7.16.0}/tests/moremodules/othermods/sub/osa.py +0 -0
  402. {coverage-7.15.4 → coverage-7.16.0}/tests/moremodules/othermods/sub/osb.py +0 -0
  403. {coverage-7.15.4 → coverage-7.16.0}/tests/plugin_config.py +0 -0
  404. {coverage-7.15.4 → coverage-7.16.0}/tests/qunit/jquery.tmpl.min.js +0 -0
  405. {coverage-7.15.4 → coverage-7.16.0}/tests/select_plugin.py +0 -0
  406. {coverage-7.15.4 → coverage-7.16.0}/tests/strategies.py +0 -0
  407. {coverage-7.15.4 → coverage-7.16.0}/tests/stress_phystoken.tok +0 -0
  408. {coverage-7.15.4 → coverage-7.16.0}/tests/stress_phystoken_dos.tok +0 -0
  409. {coverage-7.15.4 → coverage-7.16.0}/tests/testenv.py +0 -0
  410. {coverage-7.15.4 → coverage-7.16.0}/tests/zipsrc/zip1/__init__.py +0 -0
  411. {coverage-7.15.4 → coverage-7.16.0}/tests/zipsrc/zip1/zip1.py +0 -0
@@ -55,7 +55,7 @@ jobs:
55
55
 
56
56
  # Initializes the CodeQL tools for scanning.
57
57
  - name: Initialize CodeQL
58
- uses: github/codeql-action/init@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4.37.3
58
+ uses: github/codeql-action/init@ff2f1c621b7f889edc0d3c761ac2e6a3f8cdb0dd # v4.37.7
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@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4.37.3
69
+ uses: github/codeql-action/autobuild@ff2f1c621b7f889edc0d3c761ac2e6a3f8cdb0dd # v4.37.7
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@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4.37.3
83
+ uses: github/codeql-action/analyze@ff2f1c621b7f889edc0d3c761ac2e6a3f8cdb0dd # v4.37.7
@@ -44,7 +44,7 @@ jobs:
44
44
  persist-credentials: false
45
45
 
46
46
  - name: "Examine changed files"
47
- uses: dorny/paths-filter@7b450fff21473bca461d4b92ce414b9d0420d706 # v4.0.2
47
+ uses: dorny/paths-filter@ceb8a2b8f2d89434be7ff52d3de7ec3738c5cc9d # v4.0.3
48
48
  id: filter
49
49
  with:
50
50
  filters: |
@@ -309,7 +309,7 @@ jobs:
309
309
  files=$(find coverage-* 2>/dev/null | wc -l) && [ "$files" -eq "$EXPECTED" ] || exit 1
310
310
 
311
311
  - name: "Sign artifacts"
312
- uses: sigstore/gh-action-sigstore-python@5b79a39c381910c090341a2c9b0bf022c8b387e1 # v3.4.0
312
+ uses: sigstore/gh-action-sigstore-python@790bc6befb9d733738f18d8f895854b453640ec9 # v3.5.0
313
313
  with:
314
314
  inputs: coverage-*.*
315
315
 
@@ -86,12 +86,12 @@ jobs:
86
86
  files=$(find dist/* 2>/dev/null | wc -l) && [ "$files" -eq "$EXPECTED" ] || exit 1
87
87
 
88
88
  - name: "Generate attestations"
89
- uses: actions/attest-build-provenance@0f67c3f4856b2e3261c31976d6725780e5e4c373 # v4.1.1
89
+ uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4.2.2
90
90
  with:
91
91
  subject-path: "dist/*"
92
92
 
93
93
  - name: "Publish dists to Test PyPI"
94
- uses: pypa/gh-action-pypi-publish@ba38be9e461d3875417946c167d0b5f3d385a247 # v1.14.1
94
+ uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
95
95
  with:
96
96
  repository-url: https://test.pypi.org/legacy/
97
97
 
@@ -127,9 +127,9 @@ jobs:
127
127
  files=$(find dist/* 2>/dev/null | wc -l) && [ "$files" -eq "$EXPECTED" ] || exit 1
128
128
 
129
129
  - name: "Generate attestations"
130
- uses: actions/attest-build-provenance@0f67c3f4856b2e3261c31976d6725780e5e4c373 # v4.1.1
130
+ uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4.2.2
131
131
  with:
132
132
  subject-path: "dist/*"
133
133
 
134
134
  - name: "Publish dists to PyPI"
135
- uses: pypa/gh-action-pypi-publish@ba38be9e461d3875417946c167d0b5f3d385a247 # v1.14.1
135
+ uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
@@ -43,7 +43,7 @@ jobs:
43
43
  persist-credentials: false
44
44
 
45
45
  - name: "Examine changed files"
46
- uses: dorny/paths-filter@7b450fff21473bca461d4b92ce414b9d0420d706 # v4.0.2
46
+ uses: dorny/paths-filter@ceb8a2b8f2d89434be7ff52d3de7ec3738c5cc9d # v4.0.3
47
47
  id: filter
48
48
  with:
49
49
  filters: |
@@ -52,6 +52,7 @@ jobs:
52
52
  docs:
53
53
  - "doc/**"
54
54
  - "coverage/**.py"
55
+ - "*.rst"
55
56
  actions:
56
57
  - ".github/workflows/**"
57
58
  workflow:
@@ -184,7 +185,7 @@ jobs:
184
185
  persist-credentials: false
185
186
 
186
187
  - name: "Install uv"
187
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
188
+ uses: astral-sh/setup-uv@ae62891fec2bb8e7d6c99fc78c9fec3a63790f8d # v10.0.0
188
189
  with:
189
190
  enable-cache: false
190
191
 
@@ -43,7 +43,7 @@ jobs:
43
43
  persist-credentials: false
44
44
 
45
45
  - name: "Examine changed files"
46
- uses: dorny/paths-filter@7b450fff21473bca461d4b92ce414b9d0420d706 # v4.0.2
46
+ uses: dorny/paths-filter@ceb8a2b8f2d89434be7ff52d3de7ec3738c5cc9d # v4.0.3
47
47
  id: filter
48
48
  with:
49
49
  filters: |
@@ -0,0 +1,59 @@
1
+ # Files that can appear anywhere in the tree.
2
+ *.pyc
3
+ *.pyo
4
+ *$py.class
5
+ *.pyd
6
+ *.so
7
+ *.bak
8
+ .coverage
9
+ .coverage.*
10
+ .metacov
11
+ .metacov.*
12
+ *.swp
13
+
14
+ # Data files we should ignore in the root, but need for gold files.
15
+ /coverage.xml
16
+ /coverage.json
17
+ /coverage.lcov
18
+
19
+ # Stuff generated by editors.
20
+ .idea/
21
+ .vscode/
22
+ .vimtags
23
+
24
+ # Stuff in the root.
25
+ build
26
+ *.egg-info
27
+ cheats.txt
28
+ dist
29
+ htmlcov
30
+ MANIFEST
31
+ setuptools-*.egg
32
+ .tox
33
+ .noseids
34
+ .cache
35
+ .pytest_cache
36
+ .hypothesis
37
+ .ruby-version
38
+ .venv
39
+
40
+ # Stuff in the test directory.
41
+ covmain.zip
42
+ zipmods.zip
43
+ zip1.zip
44
+ tests/actual
45
+
46
+ # Stuff in the doc directory.
47
+ doc/_build
48
+ doc/_spell
49
+ doc/sample_html
50
+ doc/sample_html_beta
51
+
52
+ # Build intermediaries.
53
+ tmp
54
+ a1_coverage.pth
55
+
56
+ # OS junk
57
+ .DS_Store
58
+
59
+ !.github
@@ -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.16.1
19
+ rev: v0.16.4
20
20
  hooks:
21
21
  - id: ruff-format
22
22
 
@@ -22,6 +22,61 @@ upgrading your version of coverage.py.
22
22
 
23
23
  .. start-releases
24
24
 
25
+ .. _changes_7-16-0:
26
+
27
+ Version 7.16.0 — 2026-08-28
28
+ ---------------------------
29
+
30
+ - When combining files, now path separator slashes will automatically be
31
+ converted to the local file system style. This makes it less necessary to
32
+ define ``[paths]`` configuration to combine data across operating systems.
33
+ Fixes `issue 2266`_.
34
+
35
+ - The :meth:`.Coverage.switch_context` method now returns the previous context.
36
+
37
+ - Fix: previously, a ``[paths]`` pattern would be replaced everywhere in a file
38
+ path when it was only meant to be replaced once, in the leading portion of
39
+ the path. This is now fixed, in `pull 2268`_.
40
+
41
+ - Fixes to validation of options and configuration settings:
42
+
43
+ - Negative precision settings now always cause useful error messages (`pull
44
+ 2261`_).
45
+
46
+ - An invalid regex in the ``--contexts`` option (or the ``[report]
47
+ contexts`` setting) reported a confusing "Couldn't use data file ...:
48
+ user-defined function raised exception" error. Now it raises a proper
49
+ configuration error naming the bad regex, like other regex settings do
50
+ (`pull 2262`_).
51
+
52
+ - Non-string values in TOML configuration settings now produce a helpful
53
+ error message instead of a traceback. This affects list settings whose
54
+ elements aren't strings (like ``omit``, ``exclude_lines``, or a ``[paths]``
55
+ entry), file settings like ``data_file``, and any wrong-typed value in the
56
+ ``[paths]`` section (`pull 2263`_).
57
+
58
+ - ``coverage run`` refuses run-affecting command-line options like
59
+ ``--branch`` alongside ``--concurrency=multiprocessing``, since they can't
60
+ reach the subprocesses. The check only recognized ``multiprocessing`` as
61
+ the entire option value, so ``--concurrency=multiprocessing,thread``
62
+ slipped through and failed later with "Can't combine statement coverage
63
+ data with branch data". Each named concurrency library is now properly
64
+ considered (`pull 2270`_).
65
+
66
+ - Fix: ``coverage annotate -d DIR`` raised an ``AssertionError`` if any
67
+ measured file had an extension other than ``.py``, such as a ``.pyw`` file on
68
+ Windows. The original extension is now restored on the annotated copy (`pull
69
+ 2265`_).
70
+
71
+ .. _pull 2261: https://github.com/coveragepy/coveragepy/pull/2261
72
+ .. _pull 2262: https://github.com/coveragepy/coveragepy/pull/2262
73
+ .. _pull 2263: https://github.com/coveragepy/coveragepy/pull/2263
74
+ .. _pull 2265: https://github.com/coveragepy/coveragepy/pull/2265
75
+ .. _issue 2266: https://github.com/coveragepy/coveragepy/issues/2266
76
+ .. _pull 2268: https://github.com/coveragepy/coveragepy/pull/2268
77
+ .. _pull 2270: https://github.com/coveragepy/coveragepy/pull/2270
78
+
79
+
25
80
  .. _changes_7-15-4:
26
81
 
27
82
  Version 7.15.4 — 2026-08-06
@@ -10,6 +10,7 @@
10
10
 
11
11
  include .editorconfig
12
12
  include .git-blame-ignore-revs
13
+ include .gitignore
13
14
  include .ignore
14
15
  include .pre-commit-config.yaml
15
16
  include .readthedocs.yaml
@@ -58,7 +58,7 @@ clean: debug_clean _clean_platform #- Remove artifacts of test execution, instal
58
58
  @rm -f .tox/*/lib/*/site-packages/a0_metacov.pth
59
59
  @rm -f */.coverage */*/.coverage */*/*/.coverage */*/*/*/.coverage */*/*/*/*/.coverage */*/*/*/*/*/.coverage
60
60
  @rm -f tests/covmain.zip tests/zipmods.zip tests/zip1.zip
61
- @rm -rf doc/_build doc/_spell doc/sample_html_beta
61
+ @rm -rf doc/_build doc/_spell doc/sample_html doc/sample_html_beta
62
62
  @rm -rf tmp
63
63
  @rm -rf a1_coverage.pth
64
64
  @rm -rf .*cache */.*cache */*/.*cache */*/*/.*cache .hypothesis
@@ -208,7 +208,7 @@ sample_html_beta: _sample_cog_html #- Generate sample HTML report for a beta rel
208
208
 
209
209
  ### Kitting: making releases
210
210
 
211
- .PHONY: release_version edit_for_release cheats relbranch relcommit1 relcommit2
211
+ .PHONY: release_version edit_for_release cheats relbranch relcommit1
212
212
  .PHONY: kit pypi_upload test_upload build_kits update_rtd
213
213
  .PHONY: _check_github_auth download_kits
214
214
  .PHONY: tag bump_version
@@ -231,10 +231,6 @@ relbranch: # Create the branch for releasing (see howto.txt).
231
231
  relcommit1: # Commit the first release changes (see howto.txt).
232
232
  git commit -am "docs: prep for $$(python setup.py --version)"
233
233
 
234
- relcommit2: # Commit the latest sample HTML report (see howto.txt).
235
- git add doc/sample_html
236
- git commit -am "docs: sample HTML for $$(python setup.py --version)"
237
-
238
234
  kit: #- Make a source distribution and some wheels.
239
235
  @# Makes sdist and binary wheel for current Python version and platform:
240
236
  python -m build
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: coverage
3
- Version: 7.15.4
3
+ Version: 7.16.0
4
4
  Summary: Code coverage measurement for Python
5
5
  Home-page: https://github.com/coveragepy/coveragepy
6
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.4
9
+ Project-URL: Documentation, https://coverage.readthedocs.io/en/7.16.0
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
@@ -84,7 +84,7 @@ Coverage.py runs on these versions of Python:
84
84
  Documentation is on `Read the Docs`_. Code repository and issue tracker are on
85
85
  `GitHub`_.
86
86
 
87
- .. _Read the Docs: https://coverage.readthedocs.io/en/7.15.4/
87
+ .. _Read the Docs: https://coverage.readthedocs.io/en/7.16.0/
88
88
  .. _GitHub: https://github.com/coveragepy/coveragepy
89
89
 
90
90
 
@@ -113,7 +113,7 @@ Getting Started
113
113
  Looking to run ``coverage`` on your test suite? See the `Quick Start section`_
114
114
  of the docs.
115
115
 
116
- .. _Quick Start section: https://coverage.readthedocs.io/en/7.15.4/#quick-start
116
+ .. _Quick Start section: https://coverage.readthedocs.io/en/7.16.0/#quick-start
117
117
 
118
118
 
119
119
  Change history
@@ -121,7 +121,7 @@ Change history
121
121
 
122
122
  The complete history of changes is on the `change history page`_.
123
123
 
124
- .. _change history page: https://coverage.readthedocs.io/en/7.15.4/changes.html
124
+ .. _change history page: https://coverage.readthedocs.io/en/7.16.0/changes.html
125
125
 
126
126
 
127
127
  Code of Conduct
@@ -140,7 +140,7 @@ Contributing
140
140
  Found a bug? Want to help improve the code or documentation? See the
141
141
  `Contributing section`_ of the docs.
142
142
 
143
- .. _Contributing section: https://coverage.readthedocs.io/en/7.15.4/contributing.html
143
+ .. _Contributing section: https://coverage.readthedocs.io/en/7.16.0/contributing.html
144
144
 
145
145
 
146
146
  Security
@@ -168,7 +168,7 @@ Licensed under the `Apache 2.0 License`_. For details, see `NOTICE.txt`_.
168
168
  :target: https://github.com/coveragepy/coveragepy/actions/workflows/quality.yml
169
169
  :alt: Quality check status
170
170
  .. |docs| image:: https://readthedocs.org/projects/coverage/badge/?version=latest&style=flat
171
- :target: https://coverage.readthedocs.io/en/7.15.4/
171
+ :target: https://coverage.readthedocs.io/en/7.16.0/
172
172
  :alt: Documentation
173
173
  .. |kit| image:: https://img.shields.io/pypi/v/coverage
174
174
  :target: https://pypi.org/project/coverage/
@@ -7,7 +7,6 @@ import re
7
7
  import sys
8
8
 
9
9
  from scriv.scriv import Scriv
10
-
11
10
  from session import get_session
12
11
 
13
12
  scriv = Scriv()
@@ -15,6 +15,9 @@ from __future__ import annotations
15
15
  # We import names as themselves to indicate that. Pylint sees it as pointless,
16
16
  # so disable its warning.
17
17
  # pylint: disable=useless-import-alias
18
+ #
19
+ # Keep ruff from changing the imports in this file.
20
+ # ruff: noqa: I001
18
21
 
19
22
  from coverage.version import (
20
23
  __version__ as __version__,
@@ -75,9 +75,13 @@ class AnnotateReporter:
75
75
 
76
76
  if self.directory:
77
77
  ensure_dir(self.directory)
78
- dest_file = os.path.join(self.directory, flat_rootname(fr.relative_filename()))
79
- assert dest_file.endswith("_py")
80
- dest_file = dest_file[:-3] + ".py"
78
+ rel_fname = fr.relative_filename()
79
+ dest_file = os.path.join(self.directory, flat_rootname(rel_fname))
80
+ # flat_rootname turned the dot of the extension into an underscore.
81
+ # Put the original extension back, whatever it is: .py, .pyw, or
82
+ # something a plugin measures.
83
+ ext = os.path.splitext(rel_fname)[1]
84
+ dest_file = dest_file[: len(dest_file) - len(ext)] + ext
81
85
  else:
82
86
  dest_file = fr.filename
83
87
  dest_file += ",cover"
@@ -24,7 +24,7 @@ from coverage.control import DEFAULT_DATAFILE
24
24
  from coverage.core import CTRACER_FILE
25
25
  from coverage.data import CoverageData, combinable_files, debug_data_file
26
26
  from coverage.debug import info_header, short_stack, write_formatted_info
27
- from coverage.exceptions import NoSource, CoverageException, _ExceptionDuringRun
27
+ from coverage.exceptions import CoverageException, NoSource, _ExceptionDuringRun
28
28
  from coverage.execfile import PyRunner
29
29
  from coverage.results import display_covered, should_fail_under
30
30
  from coverage.version import __url__
@@ -1017,7 +1017,7 @@ class CoverageScript:
1017
1017
  show_help("Can't append to data files in parallel mode.")
1018
1018
  return ERR
1019
1019
 
1020
- if options.concurrency == "multiprocessing":
1020
+ if "multiprocessing" in (options.concurrency or "").split(","):
1021
1021
  # Can't set other run-affecting command line options with
1022
1022
  # multiprocessing.
1023
1023
  for opt_name in ["branch", "include", "omit", "pylib", "source", "timid"]:
@@ -11,7 +11,7 @@ import os
11
11
  import sys
12
12
  from collections.abc import Callable, Collection, Mapping
13
13
  from types import FrameType
14
- from typing import Any, TypeVar, cast
14
+ from typing import Any, ClassVar, TypeVar, cast
15
15
 
16
16
  from coverage import env
17
17
  from coverage.core import Core
@@ -57,7 +57,7 @@ class Collector:
57
57
  # The stack of active Collectors. Collectors are added here when started,
58
58
  # and popped when stopped. Collectors on the stack are paused when not
59
59
  # the top, and resumed when they become the top again.
60
- _collectors: list[Collector] = []
60
+ _collectors: ClassVar[list[Collector]] = []
61
61
 
62
62
  def __init__(
63
63
  self,
@@ -385,7 +385,7 @@ class Collector:
385
385
  """
386
386
  return any(tracer.activity() for tracer in self.tracers)
387
387
 
388
- def switch_context(self, new_context: str | None) -> None:
388
+ def switch_context(self, new_context: str | None) -> str | None:
389
389
  """Switch to a new dynamic context."""
390
390
  context: str | None
391
391
  self.flush_data()
@@ -395,7 +395,7 @@ class Collector:
395
395
  context += "|" + new_context
396
396
  else:
397
397
  context = new_context
398
- self.covdata.set_context(context)
398
+ return self.covdata.set_context(context)
399
399
 
400
400
  def disable_plugin(self, disposition: TFileDisposition) -> None:
401
401
  """Disable the plugin mentioned in `disposition`."""
@@ -263,27 +263,31 @@ class CoverageConfig(TConfigurable, TPluginConfig):
263
263
  # Options for plugins
264
264
  self.plugin_options: dict[str, TConfigSectionOut] = {}
265
265
 
266
- MUST_BE_LIST = {
267
- "debug",
268
- "concurrency",
269
- "plugins",
270
- "report_omit",
271
- "report_include",
272
- "run_omit",
273
- "run_include",
274
- "patch",
275
- }
266
+ MUST_BE_LIST = frozenset(
267
+ (
268
+ "debug",
269
+ "concurrency",
270
+ "plugins",
271
+ "report_omit",
272
+ "report_include",
273
+ "run_omit",
274
+ "run_include",
275
+ "patch",
276
+ )
277
+ )
276
278
 
277
279
  # File paths to make absolute during serialization.
278
280
  # The pairs are (config_key, must_exist).
279
- SERIALIZE_ABSPATH = {
280
- ("data_file", False),
281
- ("debug_file", False),
282
- # `source` can be directories or modules, so don't abspath it if it
283
- # doesn't exist.
284
- ("source", True),
285
- ("source_dirs", False),
286
- }
281
+ SERIALIZE_ABSPATH = frozenset(
282
+ (
283
+ ("data_file", False),
284
+ ("debug_file", False),
285
+ # `source` can be directories or modules, so don't abspath it if it
286
+ # doesn't exist.
287
+ ("source", True),
288
+ ("source_dirs", False),
289
+ )
290
+ )
287
291
 
288
292
  def from_args(self, **kwargs: TConfigValueIn) -> None:
289
293
  """Read config values from `kwargs`."""
@@ -349,9 +353,12 @@ class CoverageConfig(TConfigurable, TPluginConfig):
349
353
 
350
354
  # [paths] is special
351
355
  if cp.has_section("paths"):
352
- for option in cp.options("paths"):
353
- self.paths[option] = cp.getlist("paths", option)
354
- any_set = True
356
+ try:
357
+ for option in cp.options("paths"):
358
+ self.paths[option] = cp.getlist("paths", option)
359
+ any_set = True
360
+ except ValueError as err:
361
+ raise ConfigError(f"Couldn't read config file {filename}: {err}") from err
355
362
 
356
363
  # plugins can have options
357
364
  for plugin in self.plugins:
@@ -387,9 +394,9 @@ class CoverageConfig(TConfigurable, TPluginConfig):
387
394
  }
388
395
 
389
396
  # Mutually exclusive concurrency settings.
390
- LIGHT_THREADS = {"greenlet", "eventlet", "gevent"}
397
+ LIGHT_THREADS = frozenset(("greenlet", "eventlet", "gevent"))
391
398
 
392
- CONFIG_FILE_OPTIONS = [
399
+ CONFIG_FILE_OPTIONS = (
393
400
  # These are *args for _set_attr_from_config_option:
394
401
  # (attr, where, type_="")
395
402
  #
@@ -462,7 +469,7 @@ class CoverageConfig(TConfigurable, TPluginConfig):
462
469
  # [lcov]
463
470
  ("lcov_output", "lcov:output", "file"),
464
471
  ("lcov_line_checksums", "lcov:line_checksums", "boolean"),
465
- ]
472
+ )
466
473
 
467
474
  def _set_attr_from_config_option(
468
475
  self,