coverage 3.6__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 (596) hide show
  1. coverage-7.12.0/.editorconfig +53 -0
  2. coverage-7.12.0/.git-blame-ignore-revs +39 -0
  3. coverage-7.12.0/.github/CODE_OF_CONDUCT.md +8 -0
  4. coverage-7.12.0/.github/FUNDING.yml +2 -0
  5. coverage-7.12.0/.github/ISSUE_TEMPLATE/bug_report.md +27 -0
  6. coverage-7.12.0/.github/ISSUE_TEMPLATE/config.yml +13 -0
  7. coverage-7.12.0/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  8. coverage-7.12.0/.github/ISSUE_TEMPLATE/support.md +26 -0
  9. coverage-7.12.0/.github/SECURITY.md +4 -0
  10. coverage-7.12.0/.github/dependabot.yml +18 -0
  11. coverage-7.12.0/.github/workflows/codeql-analysis.yml +83 -0
  12. coverage-7.12.0/.github/workflows/coverage.yml +330 -0
  13. coverage-7.12.0/.github/workflows/dependency-review.yml +39 -0
  14. coverage-7.12.0/.github/workflows/kit.yml +304 -0
  15. coverage-7.12.0/.github/workflows/publish.yml +129 -0
  16. coverage-7.12.0/.github/workflows/python-nightly.yml +114 -0
  17. coverage-7.12.0/.github/workflows/quality.yml +185 -0
  18. coverage-7.12.0/.github/workflows/testsuite.yml +171 -0
  19. coverage-7.12.0/.github/zizmor.yml +8 -0
  20. coverage-7.12.0/.ignore +25 -0
  21. coverage-7.12.0/.pre-commit-config.yaml +36 -0
  22. coverage-7.12.0/.readthedocs.yaml +26 -0
  23. coverage-7.12.0/CHANGES.rst +2225 -0
  24. coverage-7.12.0/CITATION.cff +22 -0
  25. coverage-7.12.0/CONTRIBUTORS.txt +250 -0
  26. coverage-7.12.0/LICENSE.txt +177 -0
  27. coverage-7.12.0/MANIFEST.in +48 -0
  28. coverage-7.12.0/Makefile +314 -0
  29. coverage-7.12.0/NOTICE.txt +14 -0
  30. coverage-7.12.0/PKG-INFO +221 -0
  31. coverage-7.12.0/README.rst +171 -0
  32. coverage-7.12.0/__main__.py +12 -0
  33. coverage-7.12.0/ci/README.txt +1 -0
  34. coverage-7.12.0/ci/comment_on_fixes.py +60 -0
  35. coverage-7.12.0/ci/session.py +33 -0
  36. coverage-7.12.0/ci/trigger_action.py +55 -0
  37. coverage-7.12.0/ci/update_rtfd.py +107 -0
  38. coverage-7.12.0/coverage/__init__.py +40 -0
  39. coverage-7.12.0/coverage/__main__.py +12 -0
  40. coverage-7.12.0/coverage/annotate.py +114 -0
  41. coverage-7.12.0/coverage/bytecode.py +196 -0
  42. coverage-7.12.0/coverage/cmdline.py +1184 -0
  43. coverage-7.12.0/coverage/collector.py +486 -0
  44. coverage-7.12.0/coverage/config.py +731 -0
  45. coverage-7.12.0/coverage/context.py +74 -0
  46. coverage-7.12.0/coverage/control.py +1481 -0
  47. coverage-7.12.0/coverage/core.py +139 -0
  48. coverage-7.12.0/coverage/ctracer/datastack.c +50 -0
  49. coverage-7.12.0/coverage/ctracer/datastack.h +45 -0
  50. coverage-7.12.0/coverage/ctracer/filedisp.c +85 -0
  51. coverage-7.12.0/coverage/ctracer/filedisp.h +26 -0
  52. coverage-7.12.0/coverage/ctracer/module.c +79 -0
  53. coverage-7.12.0/coverage/ctracer/stats.h +29 -0
  54. coverage-7.12.0/coverage/ctracer/tracer.c +1149 -0
  55. coverage-7.12.0/coverage/ctracer/tracer.h +72 -0
  56. coverage-7.12.0/coverage/ctracer/util.h +75 -0
  57. coverage-7.12.0/coverage/data.py +227 -0
  58. coverage-7.12.0/coverage/debug.py +669 -0
  59. coverage-7.12.0/coverage/disposition.py +59 -0
  60. coverage-7.12.0/coverage/env.py +135 -0
  61. coverage-7.12.0/coverage/exceptions.py +85 -0
  62. coverage-7.12.0/coverage/execfile.py +329 -0
  63. coverage-7.12.0/coverage/files.py +553 -0
  64. coverage-7.12.0/coverage/html.py +860 -0
  65. coverage-7.12.0/coverage/htmlfiles/coverage_html.js +735 -0
  66. coverage-7.12.0/coverage/htmlfiles/favicon_32.png +0 -0
  67. coverage-7.12.0/coverage/htmlfiles/index.html +199 -0
  68. coverage-7.12.0/coverage/htmlfiles/keybd_closed.png +0 -0
  69. coverage-7.12.0/coverage/htmlfiles/pyfile.html +149 -0
  70. coverage-7.12.0/coverage/htmlfiles/style.css +385 -0
  71. coverage-7.12.0/coverage/htmlfiles/style.scss +842 -0
  72. coverage-7.12.0/coverage/inorout.py +614 -0
  73. coverage-7.12.0/coverage/jsonreport.py +192 -0
  74. coverage-7.12.0/coverage/lcovreport.py +219 -0
  75. coverage-7.12.0/coverage/misc.py +373 -0
  76. coverage-7.12.0/coverage/multiproc.py +120 -0
  77. coverage-7.12.0/coverage/numbits.py +146 -0
  78. coverage-7.12.0/coverage/parser.py +1215 -0
  79. coverage-7.12.0/coverage/patch.py +166 -0
  80. coverage-7.12.0/coverage/phystokens.py +197 -0
  81. coverage-7.12.0/coverage/plugin.py +617 -0
  82. coverage-7.12.0/coverage/plugin_support.py +299 -0
  83. coverage-7.12.0/coverage/py.typed +1 -0
  84. coverage-7.12.0/coverage/python.py +272 -0
  85. coverage-7.12.0/coverage/pytracer.py +369 -0
  86. coverage-7.12.0/coverage/regions.py +127 -0
  87. coverage-7.12.0/coverage/report.py +298 -0
  88. coverage-7.12.0/coverage/report_core.py +117 -0
  89. coverage-7.12.0/coverage/results.py +502 -0
  90. coverage-7.12.0/coverage/sqldata.py +1153 -0
  91. coverage-7.12.0/coverage/sqlitedb.py +239 -0
  92. coverage-7.12.0/coverage/sysmon.py +513 -0
  93. coverage-7.12.0/coverage/templite.py +318 -0
  94. coverage-7.12.0/coverage/tomlconfig.py +210 -0
  95. coverage-7.12.0/coverage/tracer.pyi +43 -0
  96. coverage-7.12.0/coverage/types.py +206 -0
  97. coverage-7.12.0/coverage/version.py +35 -0
  98. coverage-7.12.0/coverage/xmlreport.py +264 -0
  99. coverage-7.12.0/coverage.egg-info/PKG-INFO +221 -0
  100. coverage-7.12.0/coverage.egg-info/SOURCES.txt +396 -0
  101. coverage-7.12.0/coverage.egg-info/entry_points.txt +4 -0
  102. coverage-7.12.0/coverage.egg-info/requires.txt +5 -0
  103. coverage-7.12.0/doc/_static/coverage.css +109 -0
  104. coverage-7.12.0/doc/api.rst +64 -0
  105. coverage-7.12.0/doc/api_coverage.rst +12 -0
  106. coverage-7.12.0/doc/api_coveragedata.rst +13 -0
  107. coverage-7.12.0/doc/api_exceptions.rst +11 -0
  108. coverage-7.12.0/doc/api_module.rst +38 -0
  109. coverage-7.12.0/doc/api_plugin.rst +38 -0
  110. {coverage-3.6 → coverage-7.12.0}/doc/branch.rst +35 -24
  111. coverage-7.12.0/doc/changes.rst +2795 -0
  112. coverage-7.12.0/doc/cog_helpers.py +102 -0
  113. coverage-7.12.0/doc/commands/cmd_annotate.rst +78 -0
  114. coverage-7.12.0/doc/commands/cmd_combine.rst +118 -0
  115. coverage-7.12.0/doc/commands/cmd_debug.rst +128 -0
  116. coverage-7.12.0/doc/commands/cmd_erase.rst +41 -0
  117. coverage-7.12.0/doc/commands/cmd_html.rst +111 -0
  118. coverage-7.12.0/doc/commands/cmd_json.rst +63 -0
  119. coverage-7.12.0/doc/commands/cmd_lcov.rst +55 -0
  120. coverage-7.12.0/doc/commands/cmd_report.rst +140 -0
  121. coverage-7.12.0/doc/commands/cmd_reporting.rst +47 -0
  122. coverage-7.12.0/doc/commands/cmd_run.rst +170 -0
  123. coverage-7.12.0/doc/commands/cmd_xml.rst +98 -0
  124. coverage-7.12.0/doc/commands/index.rst +92 -0
  125. coverage-7.12.0/doc/conf.py +259 -0
  126. coverage-7.12.0/doc/config.rst +1012 -0
  127. coverage-7.12.0/doc/contexts.rst +148 -0
  128. coverage-7.12.0/doc/contributing.rst +326 -0
  129. coverage-7.12.0/doc/dbschema.rst +128 -0
  130. coverage-7.12.0/doc/dict.txt +283 -0
  131. coverage-7.12.0/doc/excluding.rst +372 -0
  132. coverage-7.12.0/doc/faq.rst +208 -0
  133. coverage-7.12.0/doc/howitworks.rst +133 -0
  134. coverage-7.12.0/doc/index.rst +253 -0
  135. coverage-7.12.0/doc/install.rst +89 -0
  136. coverage-7.12.0/doc/media/Tidelift_Logos_RGB_Tidelift_Shorthand_On-White.png +0 -0
  137. coverage-7.12.0/doc/media/Tidelift_Logos_RGB_Tidelift_Shorthand_On-White_small.png +0 -0
  138. coverage-7.12.0/doc/media/sleepy-snake-600.png +0 -0
  139. coverage-7.12.0/doc/media/sleepy-snake-circle-150.png +0 -0
  140. coverage-7.12.0/doc/messages.rst +205 -0
  141. coverage-7.12.0/doc/migrating.rst +66 -0
  142. coverage-7.12.0/doc/other.rst +136 -0
  143. coverage-7.12.0/doc/plugins.rst +137 -0
  144. coverage-7.12.0/doc/python-coverage.1.txt +487 -0
  145. coverage-7.12.0/doc/requirements.in +20 -0
  146. coverage-7.12.0/doc/requirements.pip +139 -0
  147. coverage-7.12.0/doc/sample_html/favicon_32_cb_58284776.png +0 -0
  148. coverage-7.12.0/doc/sample_html/keybd_closed_cb_ce680311.png +0 -0
  149. coverage-7.12.0/doc/sleepy.rst +16 -0
  150. coverage-7.12.0/doc/source.rst +244 -0
  151. coverage-7.12.0/doc/subprocess.rst +152 -0
  152. coverage-7.12.0/doc/trouble.rst +62 -0
  153. coverage-7.12.0/doc/whatsnew5x.rst +152 -0
  154. coverage-7.12.0/howto.txt +77 -0
  155. coverage-7.12.0/igor.py +546 -0
  156. coverage-7.12.0/lab/README.txt +4 -0
  157. coverage-7.12.0/lab/branches.py +82 -0
  158. coverage-7.12.0/lab/compare_times.sh +63 -0
  159. coverage-7.12.0/lab/coverage-04.dtd +60 -0
  160. coverage-7.12.0/lab/extract_code.py +72 -0
  161. coverage-7.12.0/lab/goals.py +100 -0
  162. coverage-7.12.0/lab/hack_pyc.py +98 -0
  163. coverage-7.12.0/lab/notes/arcs-to-branches.txt +24 -0
  164. coverage-7.12.0/lab/notes/bug1303.txt +92 -0
  165. coverage-7.12.0/lab/notes/pypy-738-decorated-functions.txt +97 -0
  166. coverage-7.12.0/lab/parse_all.py +18 -0
  167. coverage-7.12.0/lab/parser.py +220 -0
  168. coverage-7.12.0/lab/pick.py +72 -0
  169. coverage-7.12.0/lab/platform_info.py +26 -0
  170. coverage-7.12.0/lab/run_sysmon.py +119 -0
  171. coverage-7.12.0/lab/run_trace.py +44 -0
  172. coverage-7.12.0/lab/select_contexts.py +66 -0
  173. coverage-7.12.0/lab/show_platform.py +19 -0
  174. coverage-7.12.0/lab/show_pyc.py +217 -0
  175. coverage-7.12.0/lab/treetopy.sh +6 -0
  176. coverage-7.12.0/lab/warn_executed.py +213 -0
  177. coverage-7.12.0/lab/warn_executed.toml +15 -0
  178. coverage-7.12.0/metacov.ini +102 -0
  179. coverage-7.12.0/pyproject.toml +188 -0
  180. coverage-7.12.0/requirements/dev.in +29 -0
  181. coverage-7.12.0/requirements/dev.pip +228 -0
  182. coverage-7.12.0/requirements/kit.in +20 -0
  183. coverage-7.12.0/requirements/kit.pip +120 -0
  184. coverage-7.12.0/requirements/light-threads.in +13 -0
  185. coverage-7.12.0/requirements/light-threads.pip +23 -0
  186. coverage-7.12.0/requirements/mypy.in +10 -0
  187. coverage-7.12.0/requirements/mypy.pip +52 -0
  188. coverage-7.12.0/requirements/pins.pip +4 -0
  189. coverage-7.12.0/requirements/pip.in +11 -0
  190. coverage-7.12.0/requirements/pip.pip +16 -0
  191. coverage-7.12.0/requirements/pytest.in +19 -0
  192. coverage-7.12.0/requirements/pytest.pip +38 -0
  193. coverage-7.12.0/requirements/tox.in +16 -0
  194. coverage-7.12.0/requirements/tox.pip +44 -0
  195. {coverage-3.6 → coverage-7.12.0}/setup.cfg +4 -5
  196. coverage-7.12.0/setup.py +225 -0
  197. coverage-7.12.0/tests/__init__.py +4 -0
  198. coverage-7.12.0/tests/conftest.py +111 -0
  199. coverage-7.12.0/tests/coveragetest.py +516 -0
  200. coverage-7.12.0/tests/covmodzip1.py +10 -0
  201. coverage-7.12.0/tests/gold/README.rst +48 -0
  202. coverage-3.6/test/farm/annotate/gold_anno_dir/b_b.py,cover → coverage-7.12.0/tests/gold/annotate/anno_dir/z_b039179a8a4ce2c2_b.py,cover +1 -1
  203. coverage-7.12.0/tests/gold/annotate/encodings/utf8.py,cover +4 -0
  204. coverage-7.12.0/tests/gold/annotate/mae/mae.py,cover +10 -0
  205. coverage-7.12.0/tests/gold/html/Makefile +31 -0
  206. coverage-7.12.0/tests/gold/html/a/a_py.html +102 -0
  207. coverage-7.12.0/tests/gold/html/a/class_index.html +121 -0
  208. coverage-7.12.0/tests/gold/html/a/function_index.html +121 -0
  209. coverage-7.12.0/tests/gold/html/a/index.html +117 -0
  210. coverage-7.12.0/tests/gold/html/b_branch/b_py.html +126 -0
  211. coverage-7.12.0/tests/gold/html/b_branch/class_index.html +148 -0
  212. coverage-7.12.0/tests/gold/html/b_branch/function_index.html +193 -0
  213. coverage-7.12.0/tests/gold/html/b_branch/index.html +143 -0
  214. coverage-7.12.0/tests/gold/html/bom/bom_py.html +102 -0
  215. coverage-7.12.0/tests/gold/html/bom/class_index.html +121 -0
  216. coverage-7.12.0/tests/gold/html/bom/function_index.html +121 -0
  217. coverage-7.12.0/tests/gold/html/bom/index.html +117 -0
  218. coverage-7.12.0/tests/gold/html/contexts/class_index.html +121 -0
  219. coverage-7.12.0/tests/gold/html/contexts/function_index.html +151 -0
  220. coverage-7.12.0/tests/gold/html/contexts/index.html +117 -0
  221. coverage-7.12.0/tests/gold/html/contexts/two_tests_py.html +126 -0
  222. coverage-7.12.0/tests/gold/html/isolatin1/class_index.html +121 -0
  223. coverage-7.12.0/tests/gold/html/isolatin1/function_index.html +121 -0
  224. coverage-7.12.0/tests/gold/html/isolatin1/index.html +117 -0
  225. coverage-7.12.0/tests/gold/html/isolatin1/isolatin1_py.html +102 -0
  226. coverage-7.12.0/tests/gold/html/multiline/class_index.html +148 -0
  227. coverage-7.12.0/tests/gold/html/multiline/function_index.html +148 -0
  228. coverage-7.12.0/tests/gold/html/multiline/index.html +143 -0
  229. coverage-7.12.0/tests/gold/html/multiline/multiline_py.html +117 -0
  230. coverage-7.12.0/tests/gold/html/omit_1/class_index.html +151 -0
  231. coverage-7.12.0/tests/gold/html/omit_1/function_index.html +151 -0
  232. coverage-7.12.0/tests/gold/html/omit_1/index.html +144 -0
  233. coverage-7.12.0/tests/gold/html/omit_1/m1_py.html +99 -0
  234. coverage-7.12.0/tests/gold/html/omit_1/m2_py.html +99 -0
  235. coverage-7.12.0/tests/gold/html/omit_1/m3_py.html +99 -0
  236. coverage-7.12.0/tests/gold/html/omit_1/main_py.html +107 -0
  237. coverage-7.12.0/tests/gold/html/omit_2/class_index.html +141 -0
  238. coverage-7.12.0/tests/gold/html/omit_2/function_index.html +141 -0
  239. coverage-7.12.0/tests/gold/html/omit_2/index.html +135 -0
  240. coverage-7.12.0/tests/gold/html/omit_2/m2_py.html +99 -0
  241. coverage-7.12.0/tests/gold/html/omit_2/m3_py.html +99 -0
  242. coverage-7.12.0/tests/gold/html/omit_2/main_py.html +107 -0
  243. coverage-7.12.0/tests/gold/html/omit_3/class_index.html +131 -0
  244. coverage-7.12.0/tests/gold/html/omit_3/function_index.html +131 -0
  245. coverage-7.12.0/tests/gold/html/omit_3/index.html +126 -0
  246. coverage-7.12.0/tests/gold/html/omit_3/m3_py.html +99 -0
  247. coverage-7.12.0/tests/gold/html/omit_3/main_py.html +107 -0
  248. coverage-7.12.0/tests/gold/html/omit_4/class_index.html +141 -0
  249. coverage-7.12.0/tests/gold/html/omit_4/function_index.html +141 -0
  250. coverage-7.12.0/tests/gold/html/omit_4/index.html +135 -0
  251. coverage-7.12.0/tests/gold/html/omit_4/m1_py.html +99 -0
  252. coverage-7.12.0/tests/gold/html/omit_4/m3_py.html +99 -0
  253. coverage-7.12.0/tests/gold/html/omit_4/main_py.html +107 -0
  254. coverage-7.12.0/tests/gold/html/omit_5/class_index.html +131 -0
  255. coverage-7.12.0/tests/gold/html/omit_5/function_index.html +131 -0
  256. coverage-7.12.0/tests/gold/html/omit_5/index.html +126 -0
  257. coverage-7.12.0/tests/gold/html/omit_5/m1_py.html +99 -0
  258. coverage-7.12.0/tests/gold/html/omit_5/main_py.html +107 -0
  259. coverage-7.12.0/tests/gold/html/other/blah_blah_other_py.html +101 -0
  260. coverage-7.12.0/tests/gold/html/other/class_index.html +131 -0
  261. coverage-7.12.0/tests/gold/html/other/function_index.html +131 -0
  262. coverage-7.12.0/tests/gold/html/other/here_py.html +103 -0
  263. coverage-7.12.0/tests/gold/html/other/index.html +126 -0
  264. coverage-7.12.0/tests/gold/html/partial/class_index.html +148 -0
  265. coverage-7.12.0/tests/gold/html/partial/function_index.html +148 -0
  266. coverage-7.12.0/tests/gold/html/partial/index.html +143 -0
  267. coverage-7.12.0/tests/gold/html/partial/partial_py.html +116 -0
  268. coverage-7.12.0/tests/gold/html/styled/a_py.html +103 -0
  269. coverage-7.12.0/tests/gold/html/styled/class_index.html +122 -0
  270. coverage-7.12.0/tests/gold/html/styled/function_index.html +122 -0
  271. coverage-7.12.0/tests/gold/html/styled/index.html +118 -0
  272. coverage-7.12.0/tests/gold/html/styled/myextra.css +1 -0
  273. coverage-7.12.0/tests/gold/html/styled/style.css +385 -0
  274. coverage-7.12.0/tests/gold/html/support/coverage_html_cb_bcae5fc4.js +735 -0
  275. coverage-7.12.0/tests/gold/html/support/favicon_32_cb_58284776.png +0 -0
  276. coverage-7.12.0/tests/gold/html/support/keybd_closed_cb_ce680311.png +0 -0
  277. coverage-7.12.0/tests/gold/html/support/style_cb_8432e98f.css +385 -0
  278. coverage-7.12.0/tests/gold/html/unicode/class_index.html +121 -0
  279. coverage-7.12.0/tests/gold/html/unicode/function_index.html +121 -0
  280. coverage-7.12.0/tests/gold/html/unicode/index.html +117 -0
  281. coverage-7.12.0/tests/gold/html/unicode/unicode_py.html +102 -0
  282. coverage-7.12.0/tests/gold/testing/getty/gettysburg.txt +4 -0
  283. coverage-7.12.0/tests/gold/testing/xml/output.xml +6 -0
  284. coverage-7.12.0/tests/gold/xml/x_xml/coverage.xml +22 -0
  285. coverage-7.12.0/tests/gold/xml/y_xml_branch/coverage.xml +24 -0
  286. coverage-7.12.0/tests/goldtest.py +196 -0
  287. coverage-7.12.0/tests/helpers.py +416 -0
  288. {coverage-3.6/test → coverage-7.12.0/tests}/js/index.html +9 -18
  289. {coverage-3.6/test → coverage-7.12.0/tests}/js/tests.js +52 -46
  290. coverage-7.12.0/tests/mixins.py +151 -0
  291. coverage-7.12.0/tests/modules/ambiguous/pkg1/__init__.py +1 -0
  292. coverage-7.12.0/tests/modules/ambiguous/pkg1/ambiguous.py +2 -0
  293. coverage-7.12.0/tests/modules/covmod1.py +6 -0
  294. coverage-7.12.0/tests/modules/namespace_420/sub1/__init__.py +4 -0
  295. coverage-7.12.0/tests/modules/pkg1/__init__.py +2 -0
  296. {coverage-3.6/test → coverage-7.12.0/tests}/modules/pkg1/__main__.py +2 -1
  297. coverage-7.12.0/tests/modules/pkg1/p1a.py +8 -0
  298. coverage-7.12.0/tests/modules/pkg1/p1b.py +6 -0
  299. coverage-7.12.0/tests/modules/pkg1/p1c.py +6 -0
  300. coverage-7.12.0/tests/modules/pkg1/runmod2.py +7 -0
  301. {coverage-3.6/test → coverage-7.12.0/tests}/modules/pkg1/sub/__main__.py +2 -1
  302. coverage-7.12.0/tests/modules/pkg1/sub/ps1a.py +6 -0
  303. coverage-7.12.0/tests/modules/pkg1/sub/runmod3.py +7 -0
  304. coverage-7.12.0/tests/modules/pkg2/p2a.py +6 -0
  305. coverage-7.12.0/tests/modules/pkg2/p2b.py +6 -0
  306. coverage-7.12.0/tests/modules/plugins/a_plugin.py +19 -0
  307. coverage-7.12.0/tests/modules/plugins/another.py +22 -0
  308. coverage-7.12.0/tests/modules/process_test/try_execfile.py +127 -0
  309. coverage-7.12.0/tests/modules/runmod1.py +7 -0
  310. coverage-7.12.0/tests/modules/usepkgs.py +8 -0
  311. coverage-7.12.0/tests/moremodules/namespace_420/sub2/__init__.py +4 -0
  312. coverage-7.12.0/tests/moremodules/othermods/othera.py +5 -0
  313. coverage-7.12.0/tests/moremodules/othermods/otherb.py +5 -0
  314. coverage-7.12.0/tests/moremodules/othermods/sub/osa.py +5 -0
  315. coverage-7.12.0/tests/moremodules/othermods/sub/osb.py +5 -0
  316. coverage-7.12.0/tests/osinfo.py +91 -0
  317. coverage-7.12.0/tests/plugin1.py +63 -0
  318. coverage-7.12.0/tests/plugin2.py +74 -0
  319. coverage-7.12.0/tests/plugin_config.py +32 -0
  320. coverage-7.12.0/tests/select_plugin.py +35 -0
  321. {coverage-3.6/test → coverage-7.12.0/tests}/stress_phystoken.tok +14 -1
  322. {coverage-3.6/test → coverage-7.12.0/tests}/stress_phystoken_dos.tok +4 -1
  323. coverage-7.12.0/tests/test_annotate.py +145 -0
  324. coverage-7.12.0/tests/test_api.py +1639 -0
  325. coverage-7.12.0/tests/test_arcs.py +2423 -0
  326. coverage-7.12.0/tests/test_bytecode.py +49 -0
  327. coverage-7.12.0/tests/test_cmdline.py +1612 -0
  328. coverage-7.12.0/tests/test_collector.py +58 -0
  329. coverage-7.12.0/tests/test_concurrency.py +863 -0
  330. coverage-7.12.0/tests/test_config.py +1061 -0
  331. coverage-7.12.0/tests/test_context.py +311 -0
  332. coverage-7.12.0/tests/test_core.py +155 -0
  333. coverage-7.12.0/tests/test_coverage.py +1859 -0
  334. coverage-7.12.0/tests/test_data.py +1055 -0
  335. coverage-7.12.0/tests/test_debug.py +511 -0
  336. coverage-7.12.0/tests/test_execfile.py +344 -0
  337. coverage-7.12.0/tests/test_filereporter.py +104 -0
  338. coverage-7.12.0/tests/test_files.py +788 -0
  339. coverage-7.12.0/tests/test_goldtest.py +188 -0
  340. coverage-7.12.0/tests/test_html.py +1572 -0
  341. coverage-7.12.0/tests/test_json.py +662 -0
  342. coverage-7.12.0/tests/test_lcov.py +644 -0
  343. coverage-7.12.0/tests/test_misc.py +186 -0
  344. coverage-7.12.0/tests/test_mixins.py +86 -0
  345. coverage-7.12.0/tests/test_numbits.py +190 -0
  346. coverage-7.12.0/tests/test_oddball.py +789 -0
  347. coverage-7.12.0/tests/test_parser.py +1322 -0
  348. coverage-7.12.0/tests/test_phystokens.py +288 -0
  349. coverage-7.12.0/tests/test_plugins.py +1332 -0
  350. coverage-7.12.0/tests/test_process.py +1798 -0
  351. coverage-7.12.0/tests/test_python.py +87 -0
  352. coverage-7.12.0/tests/test_regions.py +113 -0
  353. coverage-7.12.0/tests/test_report.py +1246 -0
  354. coverage-7.12.0/tests/test_report_common.py +304 -0
  355. coverage-7.12.0/tests/test_report_core.py +69 -0
  356. coverage-7.12.0/tests/test_results.py +193 -0
  357. coverage-7.12.0/tests/test_setup.py +60 -0
  358. coverage-7.12.0/tests/test_sqlitedb.py +105 -0
  359. coverage-7.12.0/tests/test_templite.py +387 -0
  360. coverage-7.12.0/tests/test_testing.py +489 -0
  361. coverage-7.12.0/tests/test_venv.py +402 -0
  362. coverage-7.12.0/tests/test_version.py +33 -0
  363. coverage-7.12.0/tests/test_xml.py +614 -0
  364. coverage-7.12.0/tests/testenv.py +42 -0
  365. coverage-7.12.0/tests/zipsrc/zip1/zip1.py +7 -0
  366. coverage-7.12.0/tox.ini +146 -0
  367. coverage-3.6/AUTHORS.txt +0 -41
  368. coverage-3.6/CHANGES.txt +0 -943
  369. coverage-3.6/MANIFEST.in +0 -16
  370. coverage-3.6/PKG-INFO +0 -38
  371. coverage-3.6/README.txt +0 -9
  372. coverage-3.6/coverage/__init__.py +0 -120
  373. coverage-3.6/coverage/__main__.py +0 -4
  374. coverage-3.6/coverage/annotate.py +0 -101
  375. coverage-3.6/coverage/backward.py +0 -147
  376. coverage-3.6/coverage/bytecode.py +0 -91
  377. coverage-3.6/coverage/cmdline.py +0 -730
  378. coverage-3.6/coverage/codeunit.py +0 -145
  379. coverage-3.6/coverage/collector.py +0 -340
  380. coverage-3.6/coverage/config.py +0 -211
  381. coverage-3.6/coverage/control.py +0 -720
  382. coverage-3.6/coverage/data.py +0 -270
  383. coverage-3.6/coverage/execfile.py +0 -138
  384. coverage-3.6/coverage/files.py +0 -289
  385. coverage-3.6/coverage/fullcoverage/encodings.py +0 -57
  386. coverage-3.6/coverage/html.py +0 -367
  387. coverage-3.6/coverage/htmlfiles/coverage_html.js +0 -376
  388. coverage-3.6/coverage/htmlfiles/index.html +0 -104
  389. coverage-3.6/coverage/htmlfiles/jquery-1.4.3.min.js +0 -166
  390. coverage-3.6/coverage/htmlfiles/jquery.hotkeys.js +0 -99
  391. coverage-3.6/coverage/htmlfiles/jquery.isonscreen.js +0 -53
  392. coverage-3.6/coverage/htmlfiles/jquery.tablesorter.min.js +0 -2
  393. coverage-3.6/coverage/htmlfiles/keybd_closed.png +0 -0
  394. coverage-3.6/coverage/htmlfiles/keybd_open.png +0 -0
  395. coverage-3.6/coverage/htmlfiles/pyfile.html +0 -90
  396. coverage-3.6/coverage/htmlfiles/style.css +0 -300
  397. coverage-3.6/coverage/misc.py +0 -159
  398. coverage-3.6/coverage/parser.py +0 -662
  399. coverage-3.6/coverage/phystokens.py +0 -206
  400. coverage-3.6/coverage/report.py +0 -92
  401. coverage-3.6/coverage/results.py +0 -254
  402. coverage-3.6/coverage/summary.py +0 -86
  403. coverage-3.6/coverage/templite.py +0 -166
  404. coverage-3.6/coverage/tracer.c +0 -730
  405. coverage-3.6/coverage/version.py +0 -9
  406. coverage-3.6/coverage/xmlreport.py +0 -150
  407. coverage-3.6/coverage.egg-info/PKG-INFO +0 -38
  408. coverage-3.6/coverage.egg-info/SOURCES.txt +0 -237
  409. coverage-3.6/coverage.egg-info/entry_points.txt +0 -5
  410. coverage-3.6/doc/api.rst +0 -47
  411. coverage-3.6/doc/changes.rst +0 -629
  412. coverage-3.6/doc/cmd.rst +0 -365
  413. coverage-3.6/doc/config.rst +0 -198
  414. coverage-3.6/doc/contributing.rst +0 -164
  415. coverage-3.6/doc/excluding.rst +0 -105
  416. coverage-3.6/doc/faq.rst +0 -116
  417. coverage-3.6/doc/index.rst +0 -171
  418. coverage-3.6/doc/install.rst +0 -80
  419. coverage-3.6/doc/source.rst +0 -74
  420. coverage-3.6/doc/subprocess.rst +0 -66
  421. coverage-3.6/doc/trouble.rst +0 -88
  422. coverage-3.6/igor.py +0 -255
  423. coverage-3.6/requirements.txt +0 -5
  424. coverage-3.6/setup.py +0 -199
  425. coverage-3.6/test/__init__.py +0 -1
  426. coverage-3.6/test/backtest.py +0 -49
  427. coverage-3.6/test/backunittest.py +0 -115
  428. coverage-3.6/test/coveragetest.py +0 -465
  429. coverage-3.6/test/covmodzip1.py +0 -3
  430. coverage-3.6/test/eggsrc/egg1/egg1.py +0 -4
  431. coverage-3.6/test/eggsrc/setup.py +0 -8
  432. coverage-3.6/test/farm/annotate/annotate_dir.py +0 -7
  433. coverage-3.6/test/farm/annotate/gold_v24/white.py,cover +0 -33
  434. coverage-3.6/test/farm/annotate/run.py +0 -7
  435. coverage-3.6/test/farm/annotate/run_multi.py +0 -7
  436. coverage-3.6/test/farm/annotate/src/a/a.py +0 -5
  437. coverage-3.6/test/farm/annotate/src/b/b.py +0 -3
  438. coverage-3.6/test/farm/annotate/src/multi.py +0 -5
  439. coverage-3.6/test/farm/annotate/src/white.py +0 -33
  440. coverage-3.6/test/farm/html/gold_a/a.html +0 -95
  441. coverage-3.6/test/farm/html/gold_a/index.html +0 -89
  442. coverage-3.6/test/farm/html/gold_b_branch/b.html +0 -139
  443. coverage-3.6/test/farm/html/gold_b_branch/index.html +0 -101
  444. coverage-3.6/test/farm/html/gold_bom/bom.html +0 -104
  445. coverage-3.6/test/farm/html/gold_bom/index.html +0 -90
  446. coverage-3.6/test/farm/html/gold_isolatin1/index.html +0 -89
  447. coverage-3.6/test/farm/html/gold_isolatin1/isolatin1.html +0 -91
  448. coverage-3.6/test/farm/html/gold_omit_1/index.html +0 -116
  449. coverage-3.6/test/farm/html/gold_omit_1/m1.html +0 -85
  450. coverage-3.6/test/farm/html/gold_omit_1/m2.html +0 -85
  451. coverage-3.6/test/farm/html/gold_omit_1/m3.html +0 -85
  452. coverage-3.6/test/farm/html/gold_omit_1/main.html +0 -101
  453. coverage-3.6/test/farm/html/gold_omit_2/index.html +0 -107
  454. coverage-3.6/test/farm/html/gold_omit_2/m2.html +0 -85
  455. coverage-3.6/test/farm/html/gold_omit_2/m3.html +0 -85
  456. coverage-3.6/test/farm/html/gold_omit_2/main.html +0 -101
  457. coverage-3.6/test/farm/html/gold_omit_3/index.html +0 -98
  458. coverage-3.6/test/farm/html/gold_omit_3/m3.html +0 -85
  459. coverage-3.6/test/farm/html/gold_omit_3/main.html +0 -101
  460. coverage-3.6/test/farm/html/gold_omit_4/index.html +0 -107
  461. coverage-3.6/test/farm/html/gold_omit_4/m1.html +0 -85
  462. coverage-3.6/test/farm/html/gold_omit_4/m3.html +0 -85
  463. coverage-3.6/test/farm/html/gold_omit_4/main.html +0 -101
  464. coverage-3.6/test/farm/html/gold_omit_5/index.html +0 -98
  465. coverage-3.6/test/farm/html/gold_omit_5/m1.html +0 -85
  466. coverage-3.6/test/farm/html/gold_omit_5/main.html +0 -101
  467. coverage-3.6/test/farm/html/gold_other/blah_blah_other.html +0 -89
  468. coverage-3.6/test/farm/html/gold_other/here.html +0 -97
  469. coverage-3.6/test/farm/html/gold_other/index.html +0 -98
  470. coverage-3.6/test/farm/html/gold_partial/index.html +0 -101
  471. coverage-3.6/test/farm/html/gold_partial/partial.html +0 -121
  472. coverage-3.6/test/farm/html/gold_styled/a.html +0 -95
  473. coverage-3.6/test/farm/html/gold_styled/extra.css +0 -1
  474. coverage-3.6/test/farm/html/gold_styled/index.html +0 -89
  475. coverage-3.6/test/farm/html/gold_styled/style.css +0 -275
  476. coverage-3.6/test/farm/html/gold_unicode/index.html +0 -89
  477. coverage-3.6/test/farm/html/gold_unicode/unicode.html +0 -91
  478. coverage-3.6/test/farm/html/gold_x_xml/coverage.xml +0 -20
  479. coverage-3.6/test/farm/html/gold_y_xml_branch/coverage.xml +0 -22
  480. coverage-3.6/test/farm/html/othersrc/other.py +0 -4
  481. coverage-3.6/test/farm/html/run_a.py +0 -25
  482. coverage-3.6/test/farm/html/run_a_xml_1.py +0 -21
  483. coverage-3.6/test/farm/html/run_a_xml_2.py +0 -21
  484. coverage-3.6/test/farm/html/run_b_branch.py +0 -28
  485. coverage-3.6/test/farm/html/run_bom.py +0 -21
  486. coverage-3.6/test/farm/html/run_isolatin1.py +0 -21
  487. coverage-3.6/test/farm/html/run_omit_1.py +0 -12
  488. coverage-3.6/test/farm/html/run_omit_2.py +0 -12
  489. coverage-3.6/test/farm/html/run_omit_3.py +0 -12
  490. coverage-3.6/test/farm/html/run_omit_4.py +0 -12
  491. coverage-3.6/test/farm/html/run_omit_5.py +0 -12
  492. coverage-3.6/test/farm/html/run_other.py +0 -26
  493. coverage-3.6/test/farm/html/run_partial.py +0 -32
  494. coverage-3.6/test/farm/html/run_styled.py +0 -28
  495. coverage-3.6/test/farm/html/run_tabbed.py +0 -24
  496. coverage-3.6/test/farm/html/run_unicode.py +0 -30
  497. coverage-3.6/test/farm/html/run_y_xml_branch.py +0 -21
  498. coverage-3.6/test/farm/html/src/a.py +0 -7
  499. coverage-3.6/test/farm/html/src/b.py +0 -29
  500. coverage-3.6/test/farm/html/src/bom.py +0 -11
  501. coverage-3.6/test/farm/html/src/coverage.xml +0 -20
  502. coverage-3.6/test/farm/html/src/extra.css +0 -1
  503. coverage-3.6/test/farm/html/src/here.py +0 -8
  504. coverage-3.6/test/farm/html/src/isolatin1.py +0 -5
  505. coverage-3.6/test/farm/html/src/m1.py +0 -2
  506. coverage-3.6/test/farm/html/src/m2.py +0 -2
  507. coverage-3.6/test/farm/html/src/m3.py +0 -2
  508. coverage-3.6/test/farm/html/src/main.py +0 -10
  509. coverage-3.6/test/farm/html/src/omit4.ini +0 -2
  510. coverage-3.6/test/farm/html/src/omit5.ini +0 -8
  511. coverage-3.6/test/farm/html/src/partial.py +0 -18
  512. coverage-3.6/test/farm/html/src/run_a_xml_2.ini +0 -3
  513. coverage-3.6/test/farm/html/src/tabbed.py +0 -7
  514. coverage-3.6/test/farm/html/src/unicode.py +0 -5
  515. coverage-3.6/test/farm/html/src/y.py +0 -9
  516. coverage-3.6/test/farm/run/run_chdir.py +0 -12
  517. coverage-3.6/test/farm/run/run_timid.py +0 -60
  518. coverage-3.6/test/farm/run/run_xxx.py +0 -12
  519. coverage-3.6/test/farm/run/src/chdir.py +0 -4
  520. coverage-3.6/test/farm/run/src/showtrace.py +0 -23
  521. coverage-3.6/test/farm/run/src/xxx +0 -8
  522. coverage-3.6/test/modules/covmod1.py +0 -3
  523. coverage-3.6/test/modules/pkg1/__init__.py +0 -3
  524. coverage-3.6/test/modules/pkg1/p1a.py +0 -5
  525. coverage-3.6/test/modules/pkg1/p1b.py +0 -3
  526. coverage-3.6/test/modules/pkg1/p1c.py +0 -3
  527. coverage-3.6/test/modules/pkg1/runmod2.py +0 -3
  528. coverage-3.6/test/modules/pkg1/sub/ps1a.py +0 -3
  529. coverage-3.6/test/modules/pkg1/sub/runmod3.py +0 -3
  530. coverage-3.6/test/modules/pkg2/p2a.py +0 -3
  531. coverage-3.6/test/modules/pkg2/p2b.py +0 -3
  532. coverage-3.6/test/modules/runmod1.py +0 -3
  533. coverage-3.6/test/modules/usepkgs.py +0 -4
  534. coverage-3.6/test/moremodules/othermods/othera.py +0 -2
  535. coverage-3.6/test/moremodules/othermods/otherb.py +0 -2
  536. coverage-3.6/test/moremodules/othermods/sub/osa.py +0 -2
  537. coverage-3.6/test/moremodules/othermods/sub/osb.py +0 -2
  538. coverage-3.6/test/osinfo.py +0 -71
  539. coverage-3.6/test/qunit/qunit.css +0 -225
  540. coverage-3.6/test/qunit/qunit.js +0 -1448
  541. coverage-3.6/test/test_api.py +0 -571
  542. coverage-3.6/test/test_arcs.py +0 -571
  543. coverage-3.6/test/test_cmdline.py +0 -702
  544. coverage-3.6/test/test_codeunit.py +0 -103
  545. coverage-3.6/test/test_config.py +0 -225
  546. coverage-3.6/test/test_coverage.py +0 -1730
  547. coverage-3.6/test/test_data.py +0 -146
  548. coverage-3.6/test/test_execfile.py +0 -116
  549. coverage-3.6/test/test_farm.py +0 -366
  550. coverage-3.6/test/test_files.py +0 -169
  551. coverage-3.6/test/test_html.py +0 -297
  552. coverage-3.6/test/test_misc.py +0 -73
  553. coverage-3.6/test/test_oddball.py +0 -386
  554. coverage-3.6/test/test_parser.py +0 -131
  555. coverage-3.6/test/test_phystokens.py +0 -79
  556. coverage-3.6/test/test_process.py +0 -575
  557. coverage-3.6/test/test_results.py +0 -60
  558. coverage-3.6/test/test_summary.py +0 -298
  559. coverage-3.6/test/test_templite.py +0 -204
  560. coverage-3.6/test/test_testing.py +0 -192
  561. coverage-3.6/test/test_xml.py +0 -84
  562. coverage-3.6/test/try_execfile.py +0 -34
  563. coverage-3.6/test_old.sh +0 -8
  564. coverage-3.6/tox.ini +0 -32
  565. {coverage-3.6 → coverage-7.12.0}/coverage.egg-info/dependency_links.txt +0 -0
  566. {coverage-3.6 → coverage-7.12.0}/coverage.egg-info/not-zip-safe +0 -0
  567. {coverage-3.6 → coverage-7.12.0}/coverage.egg-info/top_level.txt +0 -0
  568. {coverage-3.6/test/farm/annotate/gold_anno_dir → coverage-7.12.0/tests/gold/annotate/anno_dir}/multi.py,cover +0 -0
  569. /coverage-3.6/test/eggsrc/egg1/__init__.py → /coverage-7.12.0/tests/gold/annotate/anno_dir/z_80084bf2fba02475___init__.py,cover +0 -0
  570. /coverage-3.6/test/farm/annotate/gold_anno_dir/a_a.py,cover → /coverage-7.12.0/tests/gold/annotate/anno_dir/z_80084bf2fba02475_a.py,cover +0 -0
  571. /coverage-3.6/test/farm/annotate/gold_anno_dir/a___init__.py,cover → /coverage-7.12.0/tests/gold/annotate/anno_dir/z_b039179a8a4ce2c2___init__.py,cover +0 -0
  572. {coverage-3.6/test/farm/annotate/gold_multi → coverage-7.12.0/tests/gold/annotate/multi}/a/__init__.py,cover +0 -0
  573. {coverage-3.6/test/farm/annotate/gold_multi → coverage-7.12.0/tests/gold/annotate/multi}/a/a.py,cover +0 -0
  574. {coverage-3.6/test/farm/annotate/gold_multi → coverage-7.12.0/tests/gold/annotate/multi}/b/__init__.py,cover +0 -0
  575. {coverage-3.6/test/farm/annotate/gold_multi → coverage-7.12.0/tests/gold/annotate/multi}/b/b.py,cover +0 -0
  576. {coverage-3.6/test/farm/annotate/gold_multi → coverage-7.12.0/tests/gold/annotate/multi}/multi.py,cover +0 -0
  577. {coverage-3.6/test/farm/annotate/gold → coverage-7.12.0/tests/gold/annotate/white}/white.py,cover +0 -0
  578. {coverage-3.6/test → coverage-7.12.0/tests}/modules/aa/__init__.py +0 -0
  579. {coverage-3.6/test → coverage-7.12.0/tests}/modules/aa/afile.odd.py +0 -0
  580. {coverage-3.6/test → coverage-7.12.0/tests}/modules/aa/afile.py +0 -0
  581. {coverage-3.6/test → coverage-7.12.0/tests}/modules/aa/bb/__init__.py +0 -0
  582. {coverage-3.6/test → coverage-7.12.0/tests}/modules/aa/bb/bfile.odd.py +0 -0
  583. {coverage-3.6/test → coverage-7.12.0/tests}/modules/aa/bb/bfile.py +0 -0
  584. {coverage-3.6/test/farm/annotate/src/a → coverage-7.12.0/tests/modules/aa/bb/cc}/__init__.py +0 -0
  585. {coverage-3.6/test → coverage-7.12.0/tests}/modules/aa/bb/cc/cfile.py +0 -0
  586. {coverage-3.6/test → coverage-7.12.0/tests}/modules/aa/bb.odd/bfile.py +0 -0
  587. {coverage-3.6/test → coverage-7.12.0/tests}/modules/aa/zfile.py +0 -0
  588. {coverage-3.6/test/farm/annotate/src/b → coverage-7.12.0/tests/modules/ambiguous}/__init__.py +0 -0
  589. {coverage-3.6/test/modules/aa/bb/cc → coverage-7.12.0/tests/modules/pkg1/sub}/__init__.py +0 -0
  590. {coverage-3.6/test → coverage-7.12.0/tests}/modules/pkg2/__init__.py +0 -0
  591. {coverage-3.6/test/modules/pkg1/sub → coverage-7.12.0/tests/modules/plugins}/__init__.py +0 -0
  592. {coverage-3.6/test/moremodules/othermods → coverage-7.12.0/tests/modules/process_test}/__init__.py +0 -0
  593. {coverage-3.6/test/moremodules/othermods/sub → coverage-7.12.0/tests/moremodules/othermods}/__init__.py +0 -0
  594. /coverage-3.6/test/farm/annotate/gold_anno_dir/b___init__.py,cover → /coverage-7.12.0/tests/moremodules/othermods/sub/__init__.py +0 -0
  595. {coverage-3.6/test → coverage-7.12.0/tests}/qunit/jquery.tmpl.min.js +0 -0
  596. /coverage-3.6/test/farm/run/src/subdir/placeholder → /coverage-7.12.0/tests/zipsrc/zip1/__init__.py +0 -0
@@ -0,0 +1,53 @@
1
+ # Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
2
+ # For details: https://github.com/coveragepy/coveragepy/blob/main/NOTICE.txt
3
+
4
+ # This file is for unifying the coding style for different editors and IDEs.
5
+ # More information at http://EditorConfig.org
6
+
7
+ root = true
8
+
9
+ [*]
10
+ charset = utf-8
11
+ end_of_line = lf
12
+ indent_size = 4
13
+ indent_style = space
14
+ insert_final_newline = true
15
+ max_line_length = 80
16
+ trim_trailing_whitespace = true
17
+
18
+ [*.py]
19
+ max_line_length = 100
20
+
21
+ [*.pyi]
22
+ max_line_length = 100
23
+
24
+ [*.c]
25
+ max_line_length = 100
26
+
27
+ [*.h]
28
+ max_line_length = 100
29
+
30
+ [*.{yml,yaml}]
31
+ indent_size = 2
32
+
33
+ [*.rst]
34
+ max_line_length = 79
35
+
36
+ [*.tok]
37
+ trim_trailing_whitespace = false
38
+
39
+ [*_dos.tok]
40
+ end_of_line = crlf
41
+
42
+ [Makefile]
43
+ indent_style = tab
44
+ indent_size = 8
45
+
46
+ [*,cover]
47
+ trim_trailing_whitespace = false
48
+
49
+ [*.diff]
50
+ trim_trailing_whitespace = false
51
+
52
+ [.git/*]
53
+ trim_trailing_whitespace = false
@@ -0,0 +1,39 @@
1
+ # Commits to ignore when doing git-blame.
2
+
3
+ # 2023-01-05 style: use good style for annotated defaults parameters
4
+ 78444f4c06df6a634fa67dd99ee7c07b6b633d9e
5
+
6
+ # 2023-01-06 style(perf): blacken lab/benchmark.py
7
+ bf6c12f5da54db7c5c0cc47cbf22c70f686e8236
8
+
9
+ # 2023-03-22 style: use double-quotes
10
+ 16abd82b6e87753184e8308c4b2606ff3979f8d3
11
+ b7be64538aa480fce641349d3053e9a84862d571
12
+
13
+ # 2023-04-01 style: use double-quotes in JavaScript
14
+ b03ab92bae24c54f1d5a98baa3af6b9a18de4d36
15
+
16
+ # 2023-11-04 style: ruff format igor.py, setup.py, __main__.py
17
+ acb80450d7c033a6ea6e06eb2e74d3590c268435
18
+
19
+ # 2023-11-20 style: fr"" is better than rf"", for real
20
+ d8daa08b347fe6b7099c437b09d926eb999d0803
21
+
22
+ # 2023-12-02 style: check_coverage close parens should be on their own line
23
+ 5d0b5d4464b84adb6389c8894c207a323edb2b2b
24
+
25
+ # 2024-02-27 style: fix COM812 Trailing comma missing
26
+ e4e238a9ed8f2ad2b9060247591b4c057c2953bf
27
+
28
+ # 2024-02-27 style: modernize type hints, a few more f-strings
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
@@ -0,0 +1,8 @@
1
+ # Treat each other well
2
+
3
+ Everyone participating in the coverage.py project, and in particular in the
4
+ issue tracker, pull requests, and social media activity, is expected to treat
5
+ other people with respect and to follow the guidelines articulated in the
6
+ [Python Community Code of Conduct][psf_coc].
7
+
8
+ [psf_coc]: https://www.python.org/psf/codeofconduct/
@@ -0,0 +1,2 @@
1
+ github: nedbat
2
+ tidelift: pypi/coverage
@@ -0,0 +1,27 @@
1
+ ---
2
+ name: Bug report
3
+ about: Report a problem with coverage.py
4
+ title: ''
5
+ labels: bug
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Describe the bug**
11
+ A clear and concise description of the bug.
12
+
13
+ **To Reproduce**
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:
17
+ 1. What version of Python are you using?
18
+ 1. What version of coverage.py shows the problem? The output of `coverage debug sys` is helpful.
19
+ 1. What versions of what packages do you have installed? The output of `pip freeze` is helpful.
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.
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!
22
+
23
+ **Expected behavior**
24
+ A clear and concise description of what you expected to happen.
25
+
26
+ **Additional context**
27
+ Add any other context about the problem here.
@@ -0,0 +1,13 @@
1
+ # Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
2
+ # For details: https://github.com/coveragepy/coveragepy/blob/main/NOTICE.txt
3
+
4
+ # https://help.github.com/en/github/building-a-strong-community/configuring-issue-templates-for-your-repository
5
+
6
+ blank_issues_enabled: false
7
+ contact_links:
8
+ - name: Frequently Asked Questions
9
+ url: https://coverage.readthedocs.io/en/latest/faq.html
10
+ about: Some common problems are described here.
11
+ - name: Tidelift security contact
12
+ url: https://tidelift.com/security
13
+ about: Please report security vulnerabilities here.
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an idea for coverage.py
4
+ title: ''
5
+ labels: enhancement
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Is your feature request related to a problem? Please describe.**
11
+ A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12
+
13
+ **Describe the solution you'd like**
14
+ A clear and concise description of what you want to happen.
15
+
16
+ **Describe alternatives you've considered**
17
+ A clear and concise description of any alternative solutions or features you've considered.
18
+
19
+ **Additional context**
20
+ Add any other context about the feature request here.
@@ -0,0 +1,26 @@
1
+ ---
2
+ name: Support request
3
+ about: Ask for help using coverage.py
4
+ title: ''
5
+ labels: support
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Have you asked elsewhere?**
11
+
12
+ There are other good places to ask for help using coverage.py. These places let
13
+ other people suggest solutions, are more likely places for people to find your
14
+ question:
15
+
16
+ - [Stack Overflow](https://stackoverflow.com/questions/tagged/coverage.py)
17
+ - [discuss.python.org](https://discuss.python.org/search?q=coverage.py)
18
+
19
+ **Describe your situation**
20
+
21
+ Wherever you ask your question, be sure to explain:
22
+
23
+ - What you did
24
+ - What happened
25
+ - How that was different than what you wanted to happen
26
+ - What kind of help you need
@@ -0,0 +1,4 @@
1
+ # Security Disclosures
2
+
3
+ To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security).
4
+ Tidelift will coordinate the fix and disclosure with maintainers.
@@ -0,0 +1,18 @@
1
+ # From:
2
+ # https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/keeping-your-actions-up-to-date-with-dependabot
3
+ # Set update schedule for GitHub Actions
4
+
5
+ version: 2
6
+ updates:
7
+ - package-ecosystem: "github-actions"
8
+ directory: "/"
9
+ schedule:
10
+ # Check for updates to GitHub Actions once a week
11
+ interval: "weekly"
12
+ day: "sunday"
13
+ groups:
14
+ action-dependencies:
15
+ patterns:
16
+ - "*"
17
+ commit-message:
18
+ prefix: "chore"
@@ -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
@@ -0,0 +1,330 @@
1
+ # Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
2
+ # For details: https://github.com/coveragepy/coveragepy/blob/main/NOTICE.txt
3
+
4
+ name: "Coverage"
5
+
6
+ on:
7
+ # As currently structured, this adds too many jobs (checks?), so don't run it
8
+ # on pull requests yet.
9
+ push:
10
+ branches:
11
+ - main
12
+ - "**/*metacov*"
13
+ workflow_dispatch:
14
+
15
+ defaults:
16
+ run:
17
+ shell: bash
18
+
19
+ env:
20
+ PIP_DISABLE_PIP_VERSION_CHECK: 1
21
+ COVERAGE_IGOR_VERBOSE: 2
22
+ FORCE_COLOR: 1 # Get colored pytest output
23
+
24
+ permissions:
25
+ contents: read
26
+
27
+ concurrency:
28
+ group: "${{ github.workflow }}-${{ github.ref }}"
29
+ cancel-in-progress: true
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
+
63
+ coverage:
64
+ name: "${{ matrix.python-version }} on ${{ matrix.os }}"
65
+ runs-on: "${{ matrix.os }}-${{ matrix.os-version || 'latest' }}"
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
+
72
+ env:
73
+ MATRIX_ID: "${{ matrix.python-version }}.${{ matrix.os }}"
74
+ TOX_GH_MAJOR_MINOR: "${{ matrix.python-version }}"
75
+
76
+ strategy:
77
+ matrix:
78
+ os:
79
+ - ubuntu
80
+ - macos
81
+ - windows
82
+ python-version:
83
+ # When changing this list, be sure to check the [gh] list in
84
+ # tox.ini so that tox will run properly. PYVERSIONS
85
+ # Available versions:
86
+ # https://github.com/actions/python-versions/blob/main/versions-manifest.json
87
+ - "3.10"
88
+ - "3.11"
89
+ - "3.12"
90
+ - "3.13"
91
+ - "3.13t"
92
+ - "3.14"
93
+ - "3.14t"
94
+ - "3.15"
95
+ - "3.15t"
96
+ - "pypy-3.10"
97
+ - "pypy-3.11"
98
+ exclude:
99
+ # Mac PyPy always takes the longest, and doesn't add anything.
100
+ - os: macos
101
+ python-version: "pypy-3.10"
102
+ - os: macos
103
+ python-version: "pypy-3.11"
104
+ # Windows pypy 3.10 gets stuck with PyPy 7.3.15. I hope to
105
+ # unstick them, but I don't want that to block all other progress, so
106
+ # skip them for now.
107
+ - os: windows
108
+ python-version: "pypy-3.10"
109
+ # If we need to tweak the os version we can do it with an include like
110
+ # this:
111
+ # include:
112
+ # - python-version: "3.12"
113
+ # os: "macos"
114
+ # os-version: "15"
115
+
116
+ # If one job fails, stop the whole thing.
117
+ fail-fast: true
118
+
119
+ steps:
120
+ - name: "Check out the repo"
121
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
122
+ with:
123
+ persist-credentials: false
124
+
125
+ - name: "Set up Python"
126
+ uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
127
+ with:
128
+ python-version: "${{ matrix.python-version }}"
129
+ allow-prereleases: true
130
+ # At a certain point, installing dependencies failed on pypy 3.9 and
131
+ # 3.10 on Windows. Commenting out the cache here fixed it. Someday
132
+ # try using the cache again.
133
+ #cache: pip
134
+ #cache-dependency-path: 'requirements/*.pip'
135
+
136
+ - name: "Show environment"
137
+ run: |
138
+ set -xe
139
+ echo matrix id: $MATRIX_ID
140
+ python -VV
141
+ python -m site
142
+ env | sort
143
+
144
+ - name: "Install dependencies"
145
+ run: |
146
+ set -xe
147
+ python -m pip install -r requirements/tox.pip
148
+
149
+ - name: "Run tox coverage for ${{ matrix.python-version }}"
150
+ env:
151
+ COVERAGE_COVERAGE: "yes"
152
+ COVERAGE_CONTEXT: "${{ env.MATRIX_ID }}"
153
+ run: |
154
+ set -xe
155
+ python -m tox
156
+
157
+ - name: "Combine data"
158
+ env:
159
+ COVERAGE_RCFILE: "metacov.ini"
160
+ run: |
161
+ python -m coverage combine
162
+ mv .metacov .metacov.$MATRIX_ID
163
+
164
+ - name: "Upload coverage data"
165
+ uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
166
+ with:
167
+ name: metacov-${{ env.MATRIX_ID }}
168
+ path: .metacov.*
169
+ include-hidden-files: true
170
+
171
+ combine:
172
+ name: "Combine coverage data"
173
+ needs: coverage
174
+ runs-on: ubuntu-latest
175
+ outputs:
176
+ total: ${{ steps.total.outputs.total }}
177
+ env:
178
+ COVERAGE_RCFILE: "metacov.ini"
179
+
180
+ steps:
181
+ - name: "Check out the repo"
182
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
183
+ with:
184
+ persist-credentials: false
185
+
186
+ - name: "Set up Python"
187
+ uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
188
+ with:
189
+ python-version: "3.10" # Minimum of PYVERSIONS
190
+ # At a certain point, installing dependencies failed on pypy 3.9 and
191
+ # 3.10 on Windows. Commenting out the cache here fixed it. Someday
192
+ # try using the cache again.
193
+ #cache: pip
194
+ #cache-dependency-path: 'requirements/*.pip'
195
+
196
+ - name: "Show environment"
197
+ run: |
198
+ set -xe
199
+ python -VV
200
+ python -m site
201
+ env | sort
202
+
203
+ - name: "Install dependencies"
204
+ run: |
205
+ set -xe
206
+ python -m pip install -e .
207
+ python igor.py zip_mods
208
+
209
+ - name: "Download coverage data"
210
+ uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
211
+ with:
212
+ pattern: metacov-*
213
+ merge-multiple: true
214
+
215
+ - name: "Combine and report"
216
+ id: combine
217
+ env:
218
+ COVERAGE_CONTEXT: "yes"
219
+ run: |
220
+ set -xe
221
+ python igor.py combine_html
222
+
223
+ - name: "Upload HTML report"
224
+ uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
225
+ with:
226
+ name: html_report
227
+ path: htmlcov
228
+ include-hidden-files: true
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
+
238
+ - name: "Get total"
239
+ id: total
240
+ run: |
241
+ echo "total=$(python -m coverage report --format=total)" >> $GITHUB_OUTPUT
242
+
243
+ publish:
244
+ name: "Publish coverage report"
245
+ needs: combine
246
+ runs-on: ubuntu-latest
247
+
248
+ steps:
249
+ - name: "Show environment"
250
+ run: |
251
+ set -xe
252
+ env | sort
253
+
254
+ - name: "Compute info for later steps"
255
+ id: info
256
+ env:
257
+ REF: ${{ github.ref }}
258
+ SHA: ${{ github.sha }}
259
+ run: |
260
+ export SHA10=$(echo $SHA | cut -c 1-10)
261
+ export SLUG=$(date +'%Y%m%d')_$SHA10
262
+ echo "sha10=$SHA10" >> $GITHUB_ENV
263
+ echo "slug=$SLUG" >> $GITHUB_ENV
264
+ echo "report_dir=reports/$SLUG/htmlcov" >> $GITHUB_ENV
265
+ echo "url=https://htmlpreview.github.io/?https://github.com/coveragepy/metacov-reports/blob/main/reports/$SLUG/htmlcov/index.html" >> $GITHUB_ENV
266
+ echo "branch=${REF#refs/heads/}" >> $GITHUB_ENV
267
+
268
+ - name: "Checkout reports repo"
269
+ if: ${{ github.ref == 'refs/heads/main' }}
270
+ env:
271
+ TOKEN: ${{ secrets.COVERAGE_REPORTS_TOKEN }}
272
+ run: |
273
+ set -xe
274
+ git clone --depth=1 --no-checkout https://${TOKEN}@github.com/coveragepy/metacov-reports reports_repo
275
+ cd reports_repo
276
+ git sparse-checkout init --cone
277
+ git sparse-checkout set --skip-checks '/*' '!/reports'
278
+ git config user.name nedbat
279
+ git config user.email ned@nedbatchelder.com
280
+ git checkout main
281
+
282
+ - name: "Download coverage HTML report"
283
+ if: ${{ github.ref == 'refs/heads/main' }}
284
+ uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
285
+ with:
286
+ name: html_report
287
+ path: reports_repo/${{ env.report_dir }}
288
+
289
+ - name: "Push to report repo"
290
+ if: |
291
+ github.repository_owner == 'coveragepy'
292
+ && github.ref == 'refs/heads/main'
293
+ env:
294
+ COMMIT_MESSAGE: ${{ github.event.head_commit.message }}
295
+ TOTAL: ${{ needs.combine.outputs.total }}
296
+ run: |
297
+ set -xe
298
+ # Make the redirect to the latest report.
299
+ echo "<html><head>" > reports_repo/latest.html
300
+ echo "<meta http-equiv='refresh' content='0;url=${url}' />" >> reports_repo/latest.html
301
+ echo "<body>Coverage report redirect..." >> reports_repo/latest.html
302
+ # Make the commit message.
303
+ echo "${TOTAL}% - ${COMMIT_MESSAGE}" > commit.txt
304
+ echo "" >> commit.txt
305
+ echo "${url}" >> commit.txt
306
+ echo "${sha10}: ${branch}" >> commit.txt
307
+ # Commit.
308
+ cd ./reports_repo
309
+ git sparse-checkout set --skip-checks '/*' ${report_dir}
310
+ rm ${report_dir}/.gitignore
311
+ git add ${report_dir} latest.html
312
+ git commit --file=../commit.txt
313
+ git push
314
+ echo "[${url}](${url})" >> $GITHUB_STEP_SUMMARY
315
+
316
+ - name: "Create badge"
317
+ if: |
318
+ github.repository_owner == 'coveragepy'
319
+ && github.ref == 'refs/heads/main'
320
+ # https://gist.githubusercontent.com/nedbat/8c6980f77988a327348f9b02bbaf67f5
321
+ uses: schneegans/dynamic-badges-action@e9a478b16159b4d31420099ba146cdc50f134483 # v1.7.0
322
+ with:
323
+ auth: ${{ secrets.METACOV_GIST_SECRET }}
324
+ gistID: 8c6980f77988a327348f9b02bbaf67f5
325
+ filename: metacov.json
326
+ label: Coverage
327
+ message: ${{ needs.combine.outputs.total }}%
328
+ minColorRange: 60
329
+ maxColorRange: 95
330
+ valColorRange: ${{ needs.combine.outputs.total }}
@@ -0,0 +1,39 @@
1
+ # Dependency Review Action
2
+ #
3
+ # This Action will scan dependency manifest files that change as part of a Pull Reqest, surfacing known-vulnerable versions of the packages declared or updated in the PR. Once installed, if the workflow run is marked as required, PRs introducing known-vulnerable packages will be blocked from merging.
4
+ #
5
+ # Source repository: https://github.com/actions/dependency-review-action
6
+ # Public documentation: https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review#dependency-review-enforcement
7
+
8
+ name: 'Dependency Review'
9
+ on:
10
+ push:
11
+ branches:
12
+ - main
13
+ - nedbat/*
14
+ pull_request:
15
+ workflow_dispatch:
16
+
17
+ permissions:
18
+ contents: read
19
+
20
+ concurrency:
21
+ group: "${{ github.workflow }}-${{ github.ref }}"
22
+ cancel-in-progress: true
23
+
24
+ jobs:
25
+ dependency-review:
26
+ name: "Review dependencies"
27
+ if: github.repository_owner == 'coveragepy'
28
+ runs-on: ubuntu-latest
29
+ steps:
30
+ - name: 'Checkout Repository'
31
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
32
+ with:
33
+ persist-credentials: false
34
+
35
+ - name: 'Dependency Review'
36
+ uses: actions/dependency-review-action@3c4e3dcb1aa7874d2c16be7d79418e9b7efd6261 # v4.8.2
37
+ with:
38
+ base-ref: ${{ github.event.pull_request.base.sha || 'main' }}
39
+ head-ref: ${{ github.event.pull_request.head.sha || github.ref }}