coverage 7.6.7__tar.gz → 7.12.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 (440) hide show
  1. {coverage-7.6.7 → coverage-7.12.0}/.editorconfig +1 -1
  2. {coverage-7.6.7 → coverage-7.12.0}/.git-blame-ignore-revs +10 -0
  3. {coverage-7.6.7 → coverage-7.12.0}/.github/ISSUE_TEMPLATE/bug_report.md +4 -2
  4. {coverage-7.6.7 → coverage-7.12.0}/.github/ISSUE_TEMPLATE/config.yml +1 -1
  5. {coverage-7.6.7 → coverage-7.12.0}/.github/dependabot.yml +1 -0
  6. coverage-7.12.0/.github/workflows/codeql-analysis.yml +83 -0
  7. {coverage-7.6.7 → coverage-7.12.0}/.github/workflows/coverage.yml +83 -41
  8. {coverage-7.6.7 → coverage-7.12.0}/.github/workflows/dependency-review.yml +10 -5
  9. {coverage-7.6.7 → coverage-7.12.0}/.github/workflows/kit.yml +99 -107
  10. coverage-7.12.0/.github/workflows/publish.yml +129 -0
  11. coverage-7.12.0/.github/workflows/python-nightly.yml +114 -0
  12. coverage-7.12.0/.github/workflows/quality.yml +185 -0
  13. {coverage-7.6.7 → coverage-7.12.0}/.github/workflows/testsuite.yml +64 -23
  14. coverage-7.12.0/.github/zizmor.yml +8 -0
  15. coverage-7.12.0/.ignore +25 -0
  16. {coverage-7.6.7 → coverage-7.12.0}/.pre-commit-config.yaml +21 -1
  17. {coverage-7.6.7 → coverage-7.12.0}/.readthedocs.yaml +1 -1
  18. {coverage-7.6.7 → coverage-7.12.0}/CHANGES.rst +777 -233
  19. {coverage-7.6.7 → coverage-7.12.0}/CITATION.cff +2 -2
  20. {coverage-7.6.7 → coverage-7.12.0}/CONTRIBUTORS.txt +11 -0
  21. {coverage-7.6.7 → coverage-7.12.0}/MANIFEST.in +2 -3
  22. {coverage-7.6.7 → coverage-7.12.0}/Makefile +62 -42
  23. {coverage-7.6.7 → coverage-7.12.0}/NOTICE.txt +1 -1
  24. {coverage-7.6.7/coverage.egg-info → coverage-7.12.0}/PKG-INFO +50 -28
  25. {coverage-7.6.7 → coverage-7.12.0}/README.rst +23 -14
  26. {coverage-7.6.7 → coverage-7.12.0}/__main__.py +1 -1
  27. {coverage-7.6.7 → coverage-7.12.0}/ci/comment_on_fixes.py +24 -14
  28. coverage-7.12.0/ci/session.py +33 -0
  29. coverage-7.12.0/ci/trigger_action.py +55 -0
  30. coverage-7.12.0/ci/update_rtfd.py +107 -0
  31. {coverage-7.6.7 → coverage-7.12.0}/coverage/__init__.py +3 -1
  32. {coverage-7.6.7 → coverage-7.12.0}/coverage/__main__.py +3 -1
  33. {coverage-7.6.7 → coverage-7.12.0}/coverage/annotate.py +2 -3
  34. coverage-7.12.0/coverage/bytecode.py +196 -0
  35. {coverage-7.6.7 → coverage-7.12.0}/coverage/cmdline.py +330 -155
  36. {coverage-7.6.7 → coverage-7.12.0}/coverage/collector.py +32 -43
  37. {coverage-7.6.7 → coverage-7.12.0}/coverage/config.py +167 -63
  38. {coverage-7.6.7 → coverage-7.12.0}/coverage/context.py +5 -6
  39. {coverage-7.6.7 → coverage-7.12.0}/coverage/control.py +166 -87
  40. coverage-7.12.0/coverage/core.py +139 -0
  41. {coverage-7.6.7 → coverage-7.12.0}/coverage/ctracer/datastack.c +1 -1
  42. {coverage-7.6.7 → coverage-7.12.0}/coverage/ctracer/datastack.h +1 -1
  43. {coverage-7.6.7 → coverage-7.12.0}/coverage/ctracer/filedisp.c +1 -1
  44. {coverage-7.6.7 → coverage-7.12.0}/coverage/ctracer/filedisp.h +1 -1
  45. {coverage-7.6.7 → coverage-7.12.0}/coverage/ctracer/module.c +39 -33
  46. {coverage-7.6.7 → coverage-7.12.0}/coverage/ctracer/stats.h +1 -1
  47. {coverage-7.6.7 → coverage-7.12.0}/coverage/ctracer/tracer.c +34 -25
  48. {coverage-7.6.7 → coverage-7.12.0}/coverage/ctracer/tracer.h +3 -3
  49. {coverage-7.6.7 → coverage-7.12.0}/coverage/ctracer/util.h +3 -13
  50. {coverage-7.6.7 → coverage-7.12.0}/coverage/data.py +4 -5
  51. {coverage-7.6.7 → coverage-7.12.0}/coverage/debug.py +113 -57
  52. {coverage-7.6.7 → coverage-7.12.0}/coverage/disposition.py +2 -1
  53. coverage-7.12.0/coverage/env.py +135 -0
  54. {coverage-7.6.7 → coverage-7.12.0}/coverage/exceptions.py +29 -7
  55. {coverage-7.6.7 → coverage-7.12.0}/coverage/execfile.py +19 -14
  56. {coverage-7.6.7 → coverage-7.12.0}/coverage/files.py +24 -19
  57. {coverage-7.6.7 → coverage-7.12.0}/coverage/html.py +141 -91
  58. {coverage-7.6.7 → coverage-7.12.0}/coverage/htmlfiles/coverage_html.js +12 -10
  59. {coverage-7.6.7 → coverage-7.12.0}/coverage/htmlfiles/index.html +45 -10
  60. {coverage-7.6.7 → coverage-7.12.0}/coverage/htmlfiles/pyfile.html +2 -2
  61. {coverage-7.6.7/tests/gold/html/styled → coverage-7.12.0/coverage/htmlfiles}/style.css +54 -6
  62. {coverage-7.6.7 → coverage-7.12.0}/coverage/htmlfiles/style.scss +85 -3
  63. {coverage-7.6.7 → coverage-7.12.0}/coverage/inorout.py +62 -45
  64. {coverage-7.6.7 → coverage-7.12.0}/coverage/jsonreport.py +22 -9
  65. {coverage-7.6.7 → coverage-7.12.0}/coverage/lcovreport.py +17 -21
  66. {coverage-7.6.7 → coverage-7.12.0}/coverage/misc.py +51 -47
  67. {coverage-7.6.7 → coverage-7.12.0}/coverage/multiproc.py +13 -8
  68. {coverage-7.6.7 → coverage-7.12.0}/coverage/numbits.py +4 -5
  69. {coverage-7.6.7 → coverage-7.12.0}/coverage/parser.py +196 -270
  70. coverage-7.12.0/coverage/patch.py +166 -0
  71. {coverage-7.6.7 → coverage-7.12.0}/coverage/phystokens.py +25 -26
  72. {coverage-7.6.7 → coverage-7.12.0}/coverage/plugin.py +14 -14
  73. {coverage-7.6.7 → coverage-7.12.0}/coverage/plugin_support.py +37 -36
  74. {coverage-7.6.7 → coverage-7.12.0}/coverage/python.py +13 -14
  75. {coverage-7.6.7 → coverage-7.12.0}/coverage/pytracer.py +41 -34
  76. {coverage-7.6.7 → coverage-7.12.0}/coverage/regions.py +3 -2
  77. {coverage-7.6.7 → coverage-7.12.0}/coverage/report.py +60 -44
  78. {coverage-7.6.7 → coverage-7.12.0}/coverage/report_core.py +7 -10
  79. {coverage-7.6.7 → coverage-7.12.0}/coverage/results.py +156 -73
  80. {coverage-7.6.7 → coverage-7.12.0}/coverage/sqldata.py +261 -211
  81. {coverage-7.6.7 → coverage-7.12.0}/coverage/sqlitedb.py +37 -29
  82. coverage-7.12.0/coverage/sysmon.py +513 -0
  83. {coverage-7.6.7 → coverage-7.12.0}/coverage/templite.py +19 -7
  84. {coverage-7.6.7 → coverage-7.12.0}/coverage/tomlconfig.py +13 -13
  85. {coverage-7.6.7 → coverage-7.12.0}/coverage/tracer.pyi +3 -1
  86. {coverage-7.6.7 → coverage-7.12.0}/coverage/types.py +26 -23
  87. {coverage-7.6.7 → coverage-7.12.0}/coverage/version.py +4 -19
  88. {coverage-7.6.7 → coverage-7.12.0}/coverage/xmlreport.py +17 -14
  89. {coverage-7.6.7 → coverage-7.12.0/coverage.egg-info}/PKG-INFO +50 -28
  90. {coverage-7.6.7 → coverage-7.12.0}/coverage.egg-info/SOURCES.txt +27 -24
  91. {coverage-7.6.7 → coverage-7.12.0}/coverage.egg-info/entry_points.txt +1 -1
  92. {coverage-7.6.7 → coverage-7.12.0}/doc/_static/coverage.css +0 -8
  93. {coverage-7.6.7 → coverage-7.12.0}/doc/api.rst +11 -5
  94. {coverage-7.6.7 → coverage-7.12.0}/doc/api_coverage.rst +1 -1
  95. {coverage-7.6.7 → coverage-7.12.0}/doc/api_coveragedata.rst +1 -1
  96. {coverage-7.6.7 → coverage-7.12.0}/doc/api_exceptions.rst +1 -1
  97. {coverage-7.6.7 → coverage-7.12.0}/doc/api_module.rst +1 -1
  98. {coverage-7.6.7 → coverage-7.12.0}/doc/api_plugin.rst +1 -1
  99. {coverage-7.6.7 → coverage-7.12.0}/doc/branch.rst +1 -1
  100. {coverage-7.6.7 → coverage-7.12.0}/doc/changes.rst +325 -325
  101. {coverage-7.6.7 → coverage-7.12.0}/doc/cog_helpers.py +9 -4
  102. coverage-7.12.0/doc/commands/cmd_annotate.rst +78 -0
  103. coverage-7.12.0/doc/commands/cmd_combine.rst +118 -0
  104. coverage-7.12.0/doc/commands/cmd_debug.rst +128 -0
  105. coverage-7.12.0/doc/commands/cmd_erase.rst +41 -0
  106. coverage-7.12.0/doc/commands/cmd_html.rst +111 -0
  107. coverage-7.12.0/doc/commands/cmd_json.rst +63 -0
  108. coverage-7.12.0/doc/commands/cmd_lcov.rst +55 -0
  109. coverage-7.12.0/doc/commands/cmd_report.rst +140 -0
  110. coverage-7.12.0/doc/commands/cmd_reporting.rst +47 -0
  111. coverage-7.12.0/doc/commands/cmd_run.rst +170 -0
  112. coverage-7.12.0/doc/commands/cmd_xml.rst +98 -0
  113. coverage-7.12.0/doc/commands/index.rst +92 -0
  114. {coverage-7.6.7 → coverage-7.12.0}/doc/conf.py +64 -57
  115. {coverage-7.6.7 → coverage-7.12.0}/doc/config.rst +109 -10
  116. {coverage-7.6.7 → coverage-7.12.0}/doc/contexts.rst +3 -3
  117. {coverage-7.6.7 → coverage-7.12.0}/doc/contributing.rst +97 -75
  118. {coverage-7.6.7 → coverage-7.12.0}/doc/dbschema.rst +3 -3
  119. {coverage-7.6.7 → coverage-7.12.0}/doc/excluding.rst +67 -43
  120. {coverage-7.6.7 → coverage-7.12.0}/doc/faq.rst +57 -17
  121. {coverage-7.6.7 → coverage-7.12.0}/doc/howitworks.rst +34 -18
  122. {coverage-7.6.7 → coverage-7.12.0}/doc/index.rst +19 -15
  123. {coverage-7.6.7 → coverage-7.12.0}/doc/install.rst +1 -1
  124. coverage-7.12.0/doc/messages.rst +205 -0
  125. {coverage-7.6.7 → coverage-7.12.0}/doc/migrating.rst +1 -1
  126. {coverage-7.6.7 → coverage-7.12.0}/doc/other.rst +2 -2
  127. {coverage-7.6.7 → coverage-7.12.0}/doc/plugins.rst +4 -4
  128. {coverage-7.6.7 → coverage-7.12.0}/doc/python-coverage.1.txt +48 -20
  129. {coverage-7.6.7 → coverage-7.12.0}/doc/requirements.in +4 -2
  130. {coverage-7.6.7 → coverage-7.12.0}/doc/requirements.pip +64 -40
  131. {coverage-7.6.7 → coverage-7.12.0}/doc/sleepy.rst +1 -1
  132. {coverage-7.6.7 → coverage-7.12.0}/doc/source.rst +3 -3
  133. coverage-7.12.0/doc/subprocess.rst +152 -0
  134. {coverage-7.6.7 → coverage-7.12.0}/doc/trouble.rst +3 -3
  135. {coverage-7.6.7 → coverage-7.12.0}/doc/whatsnew5x.rst +12 -12
  136. {coverage-7.6.7 → coverage-7.12.0}/howto.txt +15 -44
  137. {coverage-7.6.7 → coverage-7.12.0}/igor.py +84 -87
  138. {coverage-7.6.7 → coverage-7.12.0}/lab/branches.py +3 -2
  139. {coverage-7.6.7 → coverage-7.12.0}/lab/compare_times.sh +1 -1
  140. {coverage-7.6.7 → coverage-7.12.0}/lab/extract_code.py +5 -5
  141. {coverage-7.6.7 → coverage-7.12.0}/lab/goals.py +11 -6
  142. {coverage-7.6.7 → coverage-7.12.0}/lab/hack_pyc.py +25 -12
  143. {coverage-7.6.7 → coverage-7.12.0}/lab/notes/bug1303.txt +1 -1
  144. {coverage-7.6.7 → coverage-7.12.0}/lab/parser.py +28 -45
  145. {coverage-7.6.7 → coverage-7.12.0}/lab/pick.py +1 -1
  146. {coverage-7.6.7 → coverage-7.12.0}/lab/platform_info.py +1 -1
  147. {coverage-7.6.7 → coverage-7.12.0}/lab/run_sysmon.py +34 -25
  148. coverage-7.12.0/lab/run_trace.py +44 -0
  149. {coverage-7.6.7 → coverage-7.12.0}/lab/select_contexts.py +2 -2
  150. {coverage-7.6.7 → coverage-7.12.0}/lab/show_platform.py +1 -1
  151. {coverage-7.6.7 → coverage-7.12.0}/lab/show_pyc.py +47 -24
  152. coverage-7.12.0/lab/warn_executed.py +213 -0
  153. coverage-7.12.0/lab/warn_executed.toml +15 -0
  154. {coverage-7.6.7 → coverage-7.12.0}/metacov.ini +3 -3
  155. {coverage-7.6.7 → coverage-7.12.0}/pyproject.toml +54 -22
  156. {coverage-7.6.7 → coverage-7.12.0}/requirements/dev.in +4 -5
  157. coverage-7.12.0/requirements/dev.pip +228 -0
  158. {coverage-7.6.7 → coverage-7.12.0}/requirements/kit.in +1 -1
  159. coverage-7.12.0/requirements/kit.pip +120 -0
  160. {coverage-7.6.7 → coverage-7.12.0}/requirements/light-threads.in +1 -1
  161. coverage-7.12.0/requirements/light-threads.pip +23 -0
  162. {coverage-7.6.7 → coverage-7.12.0}/requirements/mypy.in +1 -2
  163. coverage-7.12.0/requirements/mypy.pip +52 -0
  164. {coverage-7.6.7 → coverage-7.12.0}/requirements/pins.pip +1 -3
  165. {coverage-7.6.7 → coverage-7.12.0}/requirements/pip.in +1 -1
  166. coverage-7.12.0/requirements/pip.pip +16 -0
  167. {coverage-7.6.7 → coverage-7.12.0}/requirements/pytest.in +1 -1
  168. coverage-7.12.0/requirements/pytest.pip +38 -0
  169. {coverage-7.6.7 → coverage-7.12.0}/requirements/tox.in +1 -1
  170. {coverage-7.6.7 → coverage-7.12.0}/requirements/tox.pip +16 -18
  171. {coverage-7.6.7 → coverage-7.12.0}/setup.py +17 -10
  172. {coverage-7.6.7 → coverage-7.12.0}/tests/__init__.py +1 -1
  173. coverage-7.12.0/tests/conftest.py +111 -0
  174. {coverage-7.6.7 → coverage-7.12.0}/tests/coveragetest.py +44 -48
  175. {coverage-7.6.7 → coverage-7.12.0}/tests/covmodzip1.py +1 -1
  176. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/README.rst +13 -14
  177. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/Makefile +2 -2
  178. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/a/a_py.html +6 -6
  179. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/a/class_index.html +21 -15
  180. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/a/function_index.html +21 -15
  181. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/a/index.html +18 -12
  182. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/b_branch/b_py.html +7 -7
  183. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/b_branch/class_index.html +40 -15
  184. coverage-7.12.0/tests/gold/html/b_branch/function_index.html +193 -0
  185. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/b_branch/index.html +36 -12
  186. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/bom/bom_py.html +6 -6
  187. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/bom/class_index.html +21 -15
  188. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/bom/function_index.html +21 -15
  189. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/bom/index.html +18 -12
  190. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/contexts/class_index.html +21 -15
  191. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/contexts/function_index.html +36 -24
  192. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/contexts/index.html +18 -12
  193. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/contexts/two_tests_py.html +8 -8
  194. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/isolatin1/class_index.html +21 -15
  195. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/isolatin1/function_index.html +21 -15
  196. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/isolatin1/index.html +18 -12
  197. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/isolatin1/isolatin1_py.html +6 -6
  198. {coverage-7.6.7/tests/gold/html/partial_626 → coverage-7.12.0/tests/gold/html/multiline}/class_index.html +47 -22
  199. {coverage-7.6.7/tests/gold/html/b_branch → coverage-7.12.0/tests/gold/html/multiline}/function_index.html +46 -51
  200. {coverage-7.6.7/tests/gold/html/partial_626 → coverage-7.12.0/tests/gold/html/multiline}/index.html +45 -21
  201. coverage-7.12.0/tests/gold/html/multiline/multiline_py.html +117 -0
  202. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/omit_1/class_index.html +36 -24
  203. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/omit_1/function_index.html +36 -24
  204. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/omit_1/index.html +30 -18
  205. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/omit_1/m1_py.html +6 -6
  206. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/omit_1/m2_py.html +6 -6
  207. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/omit_1/m3_py.html +6 -6
  208. {coverage-7.6.7/tests/gold/html/omit_3 → coverage-7.12.0/tests/gold/html/omit_1}/main_py.html +6 -6
  209. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/omit_2/class_index.html +31 -21
  210. {coverage-7.6.7/tests/gold/html/omit_4 → coverage-7.12.0/tests/gold/html/omit_2}/function_index.html +31 -21
  211. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/omit_2/index.html +26 -16
  212. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/omit_2/m2_py.html +6 -6
  213. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/omit_2/m3_py.html +6 -6
  214. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/omit_2/main_py.html +6 -6
  215. {coverage-7.6.7/tests/gold/html/omit_5 → coverage-7.12.0/tests/gold/html/omit_3}/class_index.html +26 -18
  216. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/omit_3/function_index.html +26 -18
  217. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/omit_3/index.html +22 -14
  218. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/omit_3/m3_py.html +6 -6
  219. {coverage-7.6.7/tests/gold/html/omit_4 → coverage-7.12.0/tests/gold/html/omit_3}/main_py.html +6 -6
  220. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/omit_4/class_index.html +31 -21
  221. {coverage-7.6.7/tests/gold/html/omit_2 → coverage-7.12.0/tests/gold/html/omit_4}/function_index.html +31 -21
  222. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/omit_4/index.html +26 -16
  223. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/omit_4/m1_py.html +6 -6
  224. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/omit_4/m3_py.html +6 -6
  225. {coverage-7.6.7/tests/gold/html/omit_1 → coverage-7.12.0/tests/gold/html/omit_4}/main_py.html +6 -6
  226. {coverage-7.6.7/tests/gold/html/omit_3 → coverage-7.12.0/tests/gold/html/omit_5}/class_index.html +26 -18
  227. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/omit_5/function_index.html +26 -18
  228. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/omit_5/index.html +22 -14
  229. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/omit_5/m1_py.html +6 -6
  230. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/omit_5/main_py.html +6 -6
  231. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/other/blah_blah_other_py.html +8 -8
  232. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/other/class_index.html +26 -18
  233. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/other/function_index.html +26 -18
  234. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/other/here_py.html +8 -8
  235. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/other/index.html +23 -15
  236. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/partial/class_index.html +43 -18
  237. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/partial/function_index.html +43 -18
  238. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/partial/index.html +39 -15
  239. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/partial/partial_py.html +12 -12
  240. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/styled/a_py.html +6 -6
  241. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/styled/class_index.html +21 -15
  242. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/styled/function_index.html +21 -15
  243. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/styled/index.html +18 -12
  244. {coverage-7.6.7/coverage/htmlfiles → coverage-7.12.0/tests/gold/html/styled}/style.css +54 -6
  245. coverage-7.6.7/tests/gold/html/support/coverage_html_cb_6fb7b396.js → coverage-7.12.0/tests/gold/html/support/coverage_html_cb_bcae5fc4.js +12 -10
  246. coverage-7.6.7/tests/gold/html/support/style_cb_8e611ae1.css → coverage-7.12.0/tests/gold/html/support/style_cb_8432e98f.css +54 -6
  247. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/unicode/class_index.html +21 -15
  248. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/unicode/function_index.html +21 -15
  249. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/unicode/index.html +18 -12
  250. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/unicode/unicode_py.html +6 -6
  251. {coverage-7.6.7 → coverage-7.12.0}/tests/goldtest.py +17 -18
  252. {coverage-7.6.7 → coverage-7.12.0}/tests/helpers.py +75 -34
  253. {coverage-7.6.7 → coverage-7.12.0}/tests/js/tests.js +1 -1
  254. {coverage-7.6.7 → coverage-7.12.0}/tests/mixins.py +4 -3
  255. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/covmod1.py +1 -1
  256. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/namespace_420/sub1/__init__.py +1 -1
  257. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/pkg1/__main__.py +1 -0
  258. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/pkg1/p1a.py +1 -1
  259. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/pkg1/p1b.py +1 -1
  260. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/pkg1/p1c.py +1 -1
  261. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/pkg1/runmod2.py +2 -1
  262. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/pkg1/sub/__main__.py +1 -0
  263. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/pkg1/sub/ps1a.py +1 -1
  264. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/pkg1/sub/runmod3.py +2 -1
  265. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/pkg2/p2a.py +1 -1
  266. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/pkg2/p2b.py +1 -1
  267. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/plugins/a_plugin.py +1 -1
  268. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/plugins/another.py +3 -2
  269. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/process_test/try_execfile.py +37 -25
  270. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/runmod1.py +2 -1
  271. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/usepkgs.py +1 -1
  272. {coverage-7.6.7 → coverage-7.12.0}/tests/moremodules/namespace_420/sub2/__init__.py +1 -1
  273. {coverage-7.6.7 → coverage-7.12.0}/tests/moremodules/othermods/othera.py +1 -1
  274. {coverage-7.6.7 → coverage-7.12.0}/tests/moremodules/othermods/otherb.py +1 -1
  275. {coverage-7.6.7 → coverage-7.12.0}/tests/moremodules/othermods/sub/osa.py +1 -1
  276. {coverage-7.6.7 → coverage-7.12.0}/tests/moremodules/othermods/sub/osb.py +1 -1
  277. {coverage-7.6.7 → coverage-7.12.0}/tests/osinfo.py +24 -21
  278. {coverage-7.6.7 → coverage-7.12.0}/tests/plugin1.py +5 -3
  279. {coverage-7.6.7 → coverage-7.12.0}/tests/plugin2.py +9 -7
  280. {coverage-7.6.7 → coverage-7.12.0}/tests/plugin_config.py +3 -2
  281. {coverage-7.6.7 → coverage-7.12.0}/tests/select_plugin.py +3 -5
  282. {coverage-7.6.7 → coverage-7.12.0}/tests/stress_phystoken.tok +1 -1
  283. {coverage-7.6.7 → coverage-7.12.0}/tests/stress_phystoken_dos.tok +1 -1
  284. {coverage-7.6.7 → coverage-7.12.0}/tests/test_annotate.py +31 -13
  285. {coverage-7.6.7 → coverage-7.12.0}/tests/test_api.py +313 -154
  286. {coverage-7.6.7 → coverage-7.12.0}/tests/test_arcs.py +574 -284
  287. coverage-7.12.0/tests/test_bytecode.py +49 -0
  288. {coverage-7.6.7 → coverage-7.12.0}/tests/test_cmdline.py +658 -280
  289. {coverage-7.6.7 → coverage-7.12.0}/tests/test_collector.py +12 -6
  290. {coverage-7.6.7 → coverage-7.12.0}/tests/test_concurrency.py +123 -69
  291. {coverage-7.6.7 → coverage-7.12.0}/tests/test_config.py +356 -115
  292. {coverage-7.6.7 → coverage-7.12.0}/tests/test_context.py +43 -26
  293. coverage-7.12.0/tests/test_core.py +155 -0
  294. {coverage-7.6.7 → coverage-7.12.0}/tests/test_coverage.py +546 -317
  295. {coverage-7.6.7 → coverage-7.12.0}/tests/test_data.py +197 -168
  296. {coverage-7.6.7 → coverage-7.12.0}/tests/test_debug.py +117 -67
  297. {coverage-7.6.7 → coverage-7.12.0}/tests/test_execfile.py +65 -41
  298. {coverage-7.6.7 → coverage-7.12.0}/tests/test_filereporter.py +2 -2
  299. {coverage-7.6.7 → coverage-7.12.0}/tests/test_files.py +333 -253
  300. {coverage-7.6.7 → coverage-7.12.0}/tests/test_goldtest.py +30 -21
  301. {coverage-7.6.7 → coverage-7.12.0}/tests/test_html.py +365 -208
  302. {coverage-7.6.7 → coverage-7.12.0}/tests/test_json.py +170 -69
  303. {coverage-7.6.7 → coverage-7.12.0}/tests/test_lcov.py +148 -32
  304. {coverage-7.6.7 → coverage-7.12.0}/tests/test_misc.py +33 -23
  305. {coverage-7.6.7 → coverage-7.12.0}/tests/test_mixins.py +9 -5
  306. {coverage-7.6.7 → coverage-7.12.0}/tests/test_numbits.py +42 -18
  307. {coverage-7.6.7 → coverage-7.12.0}/tests/test_oddball.py +268 -107
  308. {coverage-7.6.7 → coverage-7.12.0}/tests/test_parser.py +354 -208
  309. {coverage-7.6.7 → coverage-7.12.0}/tests/test_phystokens.py +81 -33
  310. {coverage-7.6.7 → coverage-7.12.0}/tests/test_plugins.py +348 -191
  311. {coverage-7.6.7 → coverage-7.12.0}/tests/test_process.py +701 -257
  312. {coverage-7.6.7 → coverage-7.12.0}/tests/test_python.py +13 -12
  313. coverage-7.12.0/tests/test_regions.py +113 -0
  314. {coverage-7.6.7 → coverage-7.12.0}/tests/test_report.py +240 -125
  315. {coverage-7.6.7 → coverage-7.12.0}/tests/test_report_common.py +55 -30
  316. {coverage-7.6.7 → coverage-7.12.0}/tests/test_report_core.py +1 -1
  317. coverage-7.12.0/tests/test_results.py +193 -0
  318. {coverage-7.6.7 → coverage-7.12.0}/tests/test_setup.py +6 -6
  319. {coverage-7.6.7 → coverage-7.12.0}/tests/test_sqlitedb.py +7 -4
  320. {coverage-7.6.7 → coverage-7.12.0}/tests/test_templite.py +120 -75
  321. {coverage-7.6.7 → coverage-7.12.0}/tests/test_testing.py +85 -48
  322. {coverage-7.6.7 → coverage-7.12.0}/tests/test_venv.py +114 -64
  323. coverage-7.12.0/tests/test_version.py +33 -0
  324. {coverage-7.6.7 → coverage-7.12.0}/tests/test_xml.py +149 -107
  325. {coverage-7.6.7 → coverage-7.12.0}/tests/testenv.py +20 -4
  326. {coverage-7.6.7 → coverage-7.12.0}/tests/zipsrc/zip1/zip1.py +1 -1
  327. {coverage-7.6.7 → coverage-7.12.0}/tox.ini +39 -25
  328. coverage-7.6.7/.github/workflows/codeql-analysis.yml +0 -79
  329. coverage-7.6.7/.github/workflows/publish.yml +0 -119
  330. coverage-7.6.7/.github/workflows/python-nightly.yml +0 -133
  331. coverage-7.6.7/.github/workflows/quality.yml +0 -115
  332. coverage-7.6.7/benchmark/.gitignore +0 -1
  333. coverage-7.6.7/benchmark/README.rst +0 -178
  334. coverage-7.6.7/benchmark/benchmark.py +0 -1081
  335. coverage-7.6.7/benchmark/empty.py +0 -29
  336. coverage-7.6.7/benchmark/fake.py +0 -32
  337. coverage-7.6.7/benchmark/run.py +0 -174
  338. coverage-7.6.7/ci/github_releases.py +0 -168
  339. coverage-7.6.7/ci/parse_relnotes.py +0 -123
  340. coverage-7.6.7/ci/session.py +0 -30
  341. coverage-7.6.7/ci/trigger_action.py +0 -29
  342. coverage-7.6.7/coverage/bytecode.py +0 -22
  343. coverage-7.6.7/coverage/core.py +0 -102
  344. coverage-7.6.7/coverage/env.py +0 -125
  345. coverage-7.6.7/coverage/sysmon.py +0 -436
  346. coverage-7.6.7/doc/cmd.rst +0 -1083
  347. coverage-7.6.7/doc/subprocess.rst +0 -100
  348. coverage-7.6.7/lab/bpo_prelude.py +0 -12
  349. coverage-7.6.7/lab/branch_trace.py +0 -17
  350. coverage-7.6.7/lab/coverage-03.dtd +0 -55
  351. coverage-7.6.7/lab/find_class.py +0 -40
  352. coverage-7.6.7/lab/genpy.py +0 -261
  353. coverage-7.6.7/lab/new-data.js +0 -75
  354. coverage-7.6.7/lab/run_trace.py +0 -37
  355. coverage-7.6.7/requirements/dev.pip +0 -198
  356. coverage-7.6.7/requirements/kit.pip +0 -106
  357. coverage-7.6.7/requirements/light-threads.pip +0 -31
  358. coverage-7.6.7/requirements/mypy.pip +0 -52
  359. coverage-7.6.7/requirements/pip-tools.in +0 -8
  360. coverage-7.6.7/requirements/pip-tools.pip +0 -34
  361. coverage-7.6.7/requirements/pip.pip +0 -20
  362. coverage-7.6.7/requirements/pytest.pip +0 -38
  363. coverage-7.6.7/tests/balance_xdist_plugin.py +0 -191
  364. coverage-7.6.7/tests/conftest.py +0 -135
  365. coverage-7.6.7/tests/gold/html/partial_626/function_index.html +0 -123
  366. coverage-7.6.7/tests/gold/html/partial_626/partial_py.html +0 -116
  367. coverage-7.6.7/tests/test_regions.py +0 -113
  368. coverage-7.6.7/tests/test_results.py +0 -164
  369. coverage-7.6.7/tests/test_version.py +0 -43
  370. {coverage-7.6.7 → coverage-7.12.0}/.github/CODE_OF_CONDUCT.md +0 -0
  371. {coverage-7.6.7 → coverage-7.12.0}/.github/FUNDING.yml +0 -0
  372. {coverage-7.6.7 → coverage-7.12.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  373. {coverage-7.6.7 → coverage-7.12.0}/.github/ISSUE_TEMPLATE/support.md +0 -0
  374. {coverage-7.6.7 → coverage-7.12.0}/.github/SECURITY.md +0 -0
  375. {coverage-7.6.7 → coverage-7.12.0}/LICENSE.txt +0 -0
  376. {coverage-7.6.7 → coverage-7.12.0}/ci/README.txt +0 -0
  377. {coverage-7.6.7 → coverage-7.12.0}/coverage/htmlfiles/favicon_32.png +0 -0
  378. {coverage-7.6.7 → coverage-7.12.0}/coverage/htmlfiles/keybd_closed.png +0 -0
  379. {coverage-7.6.7 → coverage-7.12.0}/coverage/py.typed +0 -0
  380. {coverage-7.6.7 → coverage-7.12.0}/coverage.egg-info/dependency_links.txt +0 -0
  381. {coverage-7.6.7 → coverage-7.12.0}/coverage.egg-info/not-zip-safe +0 -0
  382. {coverage-7.6.7 → coverage-7.12.0}/coverage.egg-info/requires.txt +0 -0
  383. {coverage-7.6.7 → coverage-7.12.0}/coverage.egg-info/top_level.txt +0 -0
  384. {coverage-7.6.7 → coverage-7.12.0}/doc/dict.txt +0 -0
  385. {coverage-7.6.7 → coverage-7.12.0}/doc/media/Tidelift_Logos_RGB_Tidelift_Shorthand_On-White.png +0 -0
  386. {coverage-7.6.7 → coverage-7.12.0}/doc/media/Tidelift_Logos_RGB_Tidelift_Shorthand_On-White_small.png +0 -0
  387. {coverage-7.6.7 → coverage-7.12.0}/doc/media/sleepy-snake-600.png +0 -0
  388. {coverage-7.6.7 → coverage-7.12.0}/doc/media/sleepy-snake-circle-150.png +0 -0
  389. {coverage-7.6.7 → coverage-7.12.0}/doc/sample_html/favicon_32_cb_58284776.png +0 -0
  390. {coverage-7.6.7 → coverage-7.12.0}/doc/sample_html/keybd_closed_cb_ce680311.png +0 -0
  391. {coverage-7.6.7 → coverage-7.12.0}/lab/README.txt +0 -0
  392. {coverage-7.6.7 → coverage-7.12.0}/lab/coverage-04.dtd +0 -0
  393. {coverage-7.6.7 → coverage-7.12.0}/lab/notes/arcs-to-branches.txt +0 -0
  394. {coverage-7.6.7 → coverage-7.12.0}/lab/notes/pypy-738-decorated-functions.txt +0 -0
  395. {coverage-7.6.7 → coverage-7.12.0}/lab/parse_all.py +0 -0
  396. {coverage-7.6.7 → coverage-7.12.0}/lab/treetopy.sh +0 -0
  397. {coverage-7.6.7 → coverage-7.12.0}/setup.cfg +0 -0
  398. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/annotate/anno_dir/multi.py,cover +0 -0
  399. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/annotate/anno_dir/z_80084bf2fba02475___init__.py,cover +0 -0
  400. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/annotate/anno_dir/z_80084bf2fba02475_a.py,cover +0 -0
  401. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/annotate/anno_dir/z_b039179a8a4ce2c2___init__.py,cover +0 -0
  402. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/annotate/anno_dir/z_b039179a8a4ce2c2_b.py,cover +0 -0
  403. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/annotate/encodings/utf8.py,cover +0 -0
  404. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/annotate/mae/mae.py,cover +0 -0
  405. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/annotate/multi/a/__init__.py,cover +0 -0
  406. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/annotate/multi/a/a.py,cover +0 -0
  407. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/annotate/multi/b/__init__.py,cover +0 -0
  408. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/annotate/multi/b/b.py,cover +0 -0
  409. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/annotate/multi/multi.py,cover +0 -0
  410. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/annotate/white/white.py,cover +0 -0
  411. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/styled/myextra.css +0 -0
  412. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/support/favicon_32_cb_58284776.png +0 -0
  413. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/html/support/keybd_closed_cb_ce680311.png +0 -0
  414. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/testing/getty/gettysburg.txt +0 -0
  415. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/testing/xml/output.xml +0 -0
  416. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/xml/x_xml/coverage.xml +0 -0
  417. {coverage-7.6.7 → coverage-7.12.0}/tests/gold/xml/y_xml_branch/coverage.xml +0 -0
  418. {coverage-7.6.7 → coverage-7.12.0}/tests/js/index.html +0 -0
  419. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/aa/__init__.py +0 -0
  420. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/aa/afile.odd.py +0 -0
  421. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/aa/afile.py +0 -0
  422. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/aa/bb/__init__.py +0 -0
  423. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/aa/bb/bfile.odd.py +0 -0
  424. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/aa/bb/bfile.py +0 -0
  425. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/aa/bb/cc/__init__.py +0 -0
  426. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/aa/bb/cc/cfile.py +0 -0
  427. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/aa/bb.odd/bfile.py +0 -0
  428. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/aa/zfile.py +0 -0
  429. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/ambiguous/__init__.py +0 -0
  430. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/ambiguous/pkg1/__init__.py +0 -0
  431. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/ambiguous/pkg1/ambiguous.py +0 -0
  432. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/pkg1/__init__.py +0 -0
  433. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/pkg1/sub/__init__.py +0 -0
  434. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/pkg2/__init__.py +0 -0
  435. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/plugins/__init__.py +0 -0
  436. {coverage-7.6.7 → coverage-7.12.0}/tests/modules/process_test/__init__.py +0 -0
  437. {coverage-7.6.7 → coverage-7.12.0}/tests/moremodules/othermods/__init__.py +0 -0
  438. {coverage-7.6.7 → coverage-7.12.0}/tests/moremodules/othermods/sub/__init__.py +0 -0
  439. {coverage-7.6.7 → coverage-7.12.0}/tests/qunit/jquery.tmpl.min.js +0 -0
  440. {coverage-7.6.7 → coverage-7.12.0}/tests/zipsrc/zip1/__init__.py +0 -0
@@ -1,5 +1,5 @@
1
1
  # Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
2
- # For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
2
+ # For details: https://github.com/coveragepy/coveragepy/blob/main/NOTICE.txt
3
3
 
4
4
  # This file is for unifying the coding style for different editors and IDEs.
5
5
  # More information at http://EditorConfig.org
@@ -27,3 +27,13 @@ e4e238a9ed8f2ad2b9060247591b4c057c2953bf
27
27
 
28
28
  # 2024-02-27 style: modernize type hints, a few more f-strings
29
29
  401a63bf08bdfd780b662f64d2dfe3603f2584dd
30
+
31
+ # 2025-08-09 style: ruff check --fix --fixable=I001,Q000 coverage/*.py
32
+ a32cd74bc0aaf0714acaf37beb21c84cbe2ee3ff
33
+
34
+ # 2025-08-21 chore: `ruff format .`
35
+ 82467f72306efdb207af09ace27b6b3ed4c7ad6f
36
+
37
+ # 2025-11-09 move to the coveragepy org GitHub account
38
+ b33a5e889711d27610433ca0040cab67a9fb01f4
39
+ 776f313f5415bc95ea736f6486634c3f9d0b96f4
@@ -11,11 +11,13 @@ assignees: ''
11
11
  A clear and concise description of the bug.
12
12
 
13
13
  **To Reproduce**
14
- How can we reproduce the problem? Please *be specific*. Don't link to a failing CI job. Answer the questions below:
14
+ How can we reproduce the problem? Please *be specific*. Don't link to a failing CI job. Think about the time it will take us to recreate your situation: the easier you make it, the more likely your issue will be addressed.
15
+
16
+ Answer the questions below:
15
17
  1. What version of Python are you using?
16
18
  1. What version of coverage.py shows the problem? The output of `coverage debug sys` is helpful.
17
19
  1. What versions of what packages do you have installed? The output of `pip freeze` is helpful.
18
- 1. What code shows the problem? Give us a specific commit of a specific repo that we can check out. If you've already worked around the problem, please provide a commit before that fix.
20
+ 1. What code shows the problem? Give us a *specific commit* of a *specific repo* that we can check out. If you've already worked around the problem, please provide a commit before that fix.
19
21
  1. What commands should we run to reproduce the problem? *Be specific*. Include everything, even `git clone`, `pip install`, and so on. Explain like we're five!
20
22
 
21
23
  **Expected behavior**
@@ -1,5 +1,5 @@
1
1
  # Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
2
- # For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
2
+ # For details: https://github.com/coveragepy/coveragepy/blob/main/NOTICE.txt
3
3
 
4
4
  # https://help.github.com/en/github/building-a-strong-community/configuring-issue-templates-for-your-repository
5
5
 
@@ -9,6 +9,7 @@ updates:
9
9
  schedule:
10
10
  # Check for updates to GitHub Actions once a week
11
11
  interval: "weekly"
12
+ day: "sunday"
12
13
  groups:
13
14
  action-dependencies:
14
15
  patterns:
@@ -0,0 +1,83 @@
1
+ # For most projects, this workflow file will not need changing; you simply need
2
+ # to commit it to your repository.
3
+ #
4
+ # You may wish to alter this file to override the set of languages analyzed,
5
+ # or to provide custom queries or build logic.
6
+ #
7
+ # ******** NOTE ********
8
+ # We have attempted to detect the languages in your repository. Please check
9
+ # the `language` matrix defined below to confirm you have the correct set of
10
+ # supported CodeQL languages.
11
+ #
12
+ name: "CodeQL"
13
+
14
+ on:
15
+ push:
16
+ branches:
17
+ - main
18
+ pull_request:
19
+ # The branches below must be a subset of the branches above
20
+ branches:
21
+ - main
22
+ schedule:
23
+ - cron: '30 20 * * 6'
24
+
25
+ permissions:
26
+ contents: read
27
+
28
+ concurrency:
29
+ group: "${{ github.workflow }}-${{ github.ref }}"
30
+ cancel-in-progress: true
31
+
32
+ jobs:
33
+ analyze:
34
+ name: Analyze
35
+ runs-on: ubuntu-latest
36
+ permissions:
37
+ actions: read # CodeQL wrote this action.
38
+ contents: read
39
+ security-events: write # CodeQL wrote this action.
40
+
41
+ strategy:
42
+ fail-fast: false
43
+ matrix:
44
+ language:
45
+ - python
46
+ - javascript
47
+ # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
48
+ # Learn more about CodeQL language support at https://git.io/codeql-language-support
49
+
50
+ steps:
51
+ - name: Checkout repository
52
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
53
+ with:
54
+ persist-credentials: false
55
+
56
+ # Initializes the CodeQL tools for scanning.
57
+ - name: Initialize CodeQL
58
+ uses: github/codeql-action/init@014f16e7ab1402f30e7c3329d33797e7948572db # v4.31.3
59
+ with:
60
+ languages: ${{ matrix.language }}
61
+ # If you wish to specify custom queries, you can do so here or in a config file.
62
+ # By default, queries listed here will override any specified in a config file.
63
+ # Prefix the list here with "+" to use these queries and those in the config file.
64
+ # queries: ./path/to/local/query, your-org/your-repo/queries@main
65
+
66
+ # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
67
+ # If this step fails, then you should remove it and run the build manually (see below)
68
+ - name: Autobuild
69
+ uses: github/codeql-action/autobuild@014f16e7ab1402f30e7c3329d33797e7948572db # v4.31.3
70
+
71
+ # ℹ️ Command-line programs to run using the OS shell.
72
+ # 📚 https://git.io/JvXDl
73
+
74
+ # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
75
+ # and modify them (or add more) to build your code if your project
76
+ # uses a compiled language
77
+
78
+ #- run: |
79
+ # make bootstrap
80
+ # make release
81
+
82
+ - name: Perform CodeQL Analysis
83
+ uses: github/codeql-action/analyze@014f16e7ab1402f30e7c3329d33797e7948572db # v4.31.3
@@ -1,5 +1,5 @@
1
1
  # Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
2
- # For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
2
+ # For details: https://github.com/coveragepy/coveragepy/blob/main/NOTICE.txt
3
3
 
4
4
  name: "Coverage"
5
5
 
@@ -8,7 +8,7 @@ on:
8
8
  # on pull requests yet.
9
9
  push:
10
10
  branches:
11
- - master
11
+ - main
12
12
  - "**/*metacov*"
13
13
  workflow_dispatch:
14
14
 
@@ -18,6 +18,7 @@ defaults:
18
18
 
19
19
  env:
20
20
  PIP_DISABLE_PIP_VERSION_CHECK: 1
21
+ COVERAGE_IGOR_VERBOSE: 2
21
22
  FORCE_COLOR: 1 # Get colored pytest output
22
23
 
23
24
  permissions:
@@ -28,12 +29,49 @@ concurrency:
28
29
  cancel-in-progress: true
29
30
 
30
31
  jobs:
32
+ changed:
33
+ name: "Check changed files"
34
+ runs-on: ubuntu-latest
35
+ permissions:
36
+ pull-requests: read # Needed for this check to run on pull requests
37
+ outputs:
38
+ run_coverage: ${{ steps.filter.outputs.run_coverage }}
39
+ workflow: ${{ steps.filter.outputs.workflow }}
40
+ steps:
41
+ - name: "Check out the repo"
42
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
43
+ with:
44
+ persist-credentials: false
45
+
46
+ - name: "Examine changed files"
47
+ uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
48
+ id: filter
49
+ with:
50
+ filters: |
51
+ run_coverage:
52
+ - "*.py"
53
+ - "coverage/**.py"
54
+ - "tests/**.py"
55
+ - "**.h"
56
+ - "**.c"
57
+ - ".github/workflows/coverage.yml"
58
+ - "tox.ini"
59
+ - "metacov.ini"
60
+ - "requirements/*.pip"
61
+ - "tests/gold/**"
62
+
31
63
  coverage:
32
64
  name: "${{ matrix.python-version }} on ${{ matrix.os }}"
33
65
  runs-on: "${{ matrix.os }}-${{ matrix.os-version || 'latest' }}"
34
- timeout-minutes: 30
66
+ timeout-minutes: 10
67
+
68
+ # Only run coverage if Python files or this workflow changed.
69
+ needs: changed
70
+ if: ${{ needs.changed.outputs.run_coverage == 'true' }}
71
+
35
72
  env:
36
73
  MATRIX_ID: "${{ matrix.python-version }}.${{ matrix.os }}"
74
+ TOX_GH_MAJOR_MINOR: "${{ matrix.python-version }}"
37
75
 
38
76
  strategy:
39
77
  matrix:
@@ -46,45 +84,46 @@ jobs:
46
84
  # tox.ini so that tox will run properly. PYVERSIONS
47
85
  # Available versions:
48
86
  # https://github.com/actions/python-versions/blob/main/versions-manifest.json
49
- - "3.9"
50
87
  - "3.10"
51
88
  - "3.11"
52
89
  - "3.12"
53
90
  - "3.13"
91
+ - "3.13t"
54
92
  - "3.14"
55
- - "pypy-3.9"
93
+ - "3.14t"
94
+ - "3.15"
95
+ - "3.15t"
56
96
  - "pypy-3.10"
97
+ - "pypy-3.11"
57
98
  exclude:
58
99
  # Mac PyPy always takes the longest, and doesn't add anything.
59
- - os: macos
60
- python-version: "pypy-3.9"
61
100
  - os: macos
62
101
  python-version: "pypy-3.10"
63
- # Windows pypy 3.9 and 3.10 get stuck with PyPy 7.3.15. I hope to
102
+ - os: macos
103
+ python-version: "pypy-3.11"
104
+ # Windows pypy 3.10 gets stuck with PyPy 7.3.15. I hope to
64
105
  # unstick them, but I don't want that to block all other progress, so
65
106
  # skip them for now.
66
- - os: windows
67
- python-version: "pypy-3.9"
68
107
  - os: windows
69
108
  python-version: "pypy-3.10"
70
109
  # If we need to tweak the os version we can do it with an include like
71
110
  # this:
72
111
  # include:
73
- # - python-version: "3.8"
112
+ # - python-version: "3.12"
74
113
  # os: "macos"
75
- # os-version: "13"
114
+ # os-version: "15"
76
115
 
77
116
  # If one job fails, stop the whole thing.
78
117
  fail-fast: true
79
118
 
80
119
  steps:
81
120
  - name: "Check out the repo"
82
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
121
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
83
122
  with:
84
123
  persist-credentials: false
85
124
 
86
125
  - name: "Set up Python"
87
- uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
126
+ uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
88
127
  with:
89
128
  python-version: "${{ matrix.python-version }}"
90
129
  allow-prereleases: true
@@ -97,22 +136,20 @@ jobs:
97
136
  - name: "Show environment"
98
137
  run: |
99
138
  set -xe
139
+ echo matrix id: $MATRIX_ID
100
140
  python -VV
101
141
  python -m site
102
- env
142
+ env | sort
103
143
 
104
144
  - name: "Install dependencies"
105
145
  run: |
106
- echo matrix id: $MATRIX_ID
107
146
  set -xe
108
- python -VV
109
- python -m site
110
147
  python -m pip install -r requirements/tox.pip
111
148
 
112
149
  - name: "Run tox coverage for ${{ matrix.python-version }}"
113
150
  env:
114
151
  COVERAGE_COVERAGE: "yes"
115
- COVERAGE_CONTEXT: "${{ matrix.python-version }}.${{ matrix.os }}"
152
+ COVERAGE_CONTEXT: "${{ env.MATRIX_ID }}"
116
153
  run: |
117
154
  set -xe
118
155
  python -m tox
@@ -125,7 +162,7 @@ jobs:
125
162
  mv .metacov .metacov.$MATRIX_ID
126
163
 
127
164
  - name: "Upload coverage data"
128
- uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
165
+ uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
129
166
  with:
130
167
  name: metacov-${{ env.MATRIX_ID }}
131
168
  path: .metacov.*
@@ -142,14 +179,14 @@ jobs:
142
179
 
143
180
  steps:
144
181
  - name: "Check out the repo"
145
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
182
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
146
183
  with:
147
184
  persist-credentials: false
148
185
 
149
186
  - name: "Set up Python"
150
- uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
187
+ uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
151
188
  with:
152
- python-version: "3.9" # Minimum of PYVERSIONS
189
+ python-version: "3.10" # Minimum of PYVERSIONS
153
190
  # At a certain point, installing dependencies failed on pypy 3.9 and
154
191
  # 3.10 on Windows. Commenting out the cache here fixed it. Someday
155
192
  # try using the cache again.
@@ -170,7 +207,7 @@ jobs:
170
207
  python igor.py zip_mods
171
208
 
172
209
  - name: "Download coverage data"
173
- uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
210
+ uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
174
211
  with:
175
212
  pattern: metacov-*
176
213
  merge-multiple: true
@@ -184,12 +221,20 @@ jobs:
184
221
  python igor.py combine_html
185
222
 
186
223
  - name: "Upload HTML report"
187
- uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
224
+ uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
188
225
  with:
189
226
  name: html_report
190
227
  path: htmlcov
191
228
  include-hidden-files: true
192
229
 
230
+ - name: "Show text report"
231
+ run: |
232
+ set -xe
233
+ echo "## Coverage: $(python -m coverage report --format=total)%" >> $GITHUB_STEP_SUMMARY
234
+ echo '```' >> $GITHUB_STEP_SUMMARY
235
+ python -m coverage report --skip-covered >> $GITHUB_STEP_SUMMARY
236
+ echo '```' >> $GITHUB_STEP_SUMMARY
237
+
193
238
  - name: "Get total"
194
239
  id: total
195
240
  run: |
@@ -210,26 +255,23 @@ jobs:
210
255
  id: info
211
256
  env:
212
257
  REF: ${{ github.ref }}
258
+ SHA: ${{ github.sha }}
213
259
  run: |
214
- export SHA10=$(echo ${{ github.sha }} | cut -c 1-10)
260
+ export SHA10=$(echo $SHA | cut -c 1-10)
215
261
  export SLUG=$(date +'%Y%m%d')_$SHA10
216
262
  echo "sha10=$SHA10" >> $GITHUB_ENV
217
263
  echo "slug=$SLUG" >> $GITHUB_ENV
218
264
  echo "report_dir=reports/$SLUG/htmlcov" >> $GITHUB_ENV
219
- echo "url=https://htmlpreview.github.io/?https://github.com/nedbat/coverage-reports/blob/main/reports/$SLUG/htmlcov/index.html" >> $GITHUB_ENV
265
+ echo "url=https://htmlpreview.github.io/?https://github.com/coveragepy/metacov-reports/blob/main/reports/$SLUG/htmlcov/index.html" >> $GITHUB_ENV
220
266
  echo "branch=${REF#refs/heads/}" >> $GITHUB_ENV
221
267
 
222
- - name: "Summarize"
223
- env:
224
- TOTAL: ${{ needs.combine.outputs.total }}
225
- run: |
226
- echo "### TOTAL coverage: ${TOTAL}%" >> $GITHUB_STEP_SUMMARY
227
-
228
268
  - name: "Checkout reports repo"
229
- if: ${{ github.ref == 'refs/heads/master' }}
269
+ if: ${{ github.ref == 'refs/heads/main' }}
270
+ env:
271
+ TOKEN: ${{ secrets.COVERAGE_REPORTS_TOKEN }}
230
272
  run: |
231
273
  set -xe
232
- git clone --depth=1 --no-checkout https://${{ secrets.COVERAGE_REPORTS_TOKEN }}@github.com/nedbat/coverage-reports reports_repo
274
+ git clone --depth=1 --no-checkout https://${TOKEN}@github.com/coveragepy/metacov-reports reports_repo
233
275
  cd reports_repo
234
276
  git sparse-checkout init --cone
235
277
  git sparse-checkout set --skip-checks '/*' '!/reports'
@@ -238,16 +280,16 @@ jobs:
238
280
  git checkout main
239
281
 
240
282
  - name: "Download coverage HTML report"
241
- if: ${{ github.ref == 'refs/heads/master' }}
242
- uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
283
+ if: ${{ github.ref == 'refs/heads/main' }}
284
+ uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
243
285
  with:
244
286
  name: html_report
245
287
  path: reports_repo/${{ env.report_dir }}
246
288
 
247
289
  - name: "Push to report repo"
248
290
  if: |
249
- github.repository_owner == 'nedbat'
250
- && github.ref == 'refs/heads/master'
291
+ github.repository_owner == 'coveragepy'
292
+ && github.ref == 'refs/heads/main'
251
293
  env:
252
294
  COMMIT_MESSAGE: ${{ github.event.head_commit.message }}
253
295
  TOTAL: ${{ needs.combine.outputs.total }}
@@ -273,8 +315,8 @@ jobs:
273
315
 
274
316
  - name: "Create badge"
275
317
  if: |
276
- github.repository_owner == 'nedbat'
277
- && github.ref == 'refs/heads/master'
318
+ github.repository_owner == 'coveragepy'
319
+ && github.ref == 'refs/heads/main'
278
320
  # https://gist.githubusercontent.com/nedbat/8c6980f77988a327348f9b02bbaf67f5
279
321
  uses: schneegans/dynamic-badges-action@e9a478b16159b4d31420099ba146cdc50f134483 # v1.7.0
280
322
  with:
@@ -9,7 +9,7 @@ name: 'Dependency Review'
9
9
  on:
10
10
  push:
11
11
  branches:
12
- - master
12
+ - main
13
13
  - nedbat/*
14
14
  pull_request:
15
15
  workflow_dispatch:
@@ -17,18 +17,23 @@ on:
17
17
  permissions:
18
18
  contents: read
19
19
 
20
+ concurrency:
21
+ group: "${{ github.workflow }}-${{ github.ref }}"
22
+ cancel-in-progress: true
23
+
20
24
  jobs:
21
25
  dependency-review:
22
- if: github.repository_owner == 'nedbat'
26
+ name: "Review dependencies"
27
+ if: github.repository_owner == 'coveragepy'
23
28
  runs-on: ubuntu-latest
24
29
  steps:
25
30
  - name: 'Checkout Repository'
26
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
31
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
27
32
  with:
28
33
  persist-credentials: false
29
34
 
30
35
  - name: 'Dependency Review'
31
- uses: actions/dependency-review-action@4081bf99e2866ebe428fc0477b69eb4fcda7220a # v4.4.0
36
+ uses: actions/dependency-review-action@3c4e3dcb1aa7874d2c16be7d79418e9b7efd6261 # v4.8.2
32
37
  with:
33
- base-ref: ${{ github.event.pull_request.base.sha || 'master' }}
38
+ base-ref: ${{ github.event.pull_request.base.sha || 'main' }}
34
39
  head-ref: ${{ github.event.pull_request.head.sha || github.ref }}