deadtrace 0.1.0a1__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 (1037) hide show
  1. deadtrace-0.1.0a1/.editorconfig +15 -0
  2. deadtrace-0.1.0a1/.gitattributes +4 -0
  3. deadtrace-0.1.0a1/.github/ISSUE_TEMPLATE/bug.yml +29 -0
  4. deadtrace-0.1.0a1/.github/ISSUE_TEMPLATE/design.yml +32 -0
  5. deadtrace-0.1.0a1/.github/dependabot.yml +10 -0
  6. deadtrace-0.1.0a1/.github/pull_request_template.md +11 -0
  7. deadtrace-0.1.0a1/.github/workflows/ci.yml +84 -0
  8. deadtrace-0.1.0a1/.github/workflows/performance.yml +53 -0
  9. deadtrace-0.1.0a1/.github/workflows/publish.yml +94 -0
  10. deadtrace-0.1.0a1/.gitignore +25 -0
  11. deadtrace-0.1.0a1/.python-version +1 -0
  12. deadtrace-0.1.0a1/AGENTS.md +13 -0
  13. deadtrace-0.1.0a1/CHANGELOG.md +245 -0
  14. deadtrace-0.1.0a1/CODE_OF_CONDUCT.md +29 -0
  15. deadtrace-0.1.0a1/CONTRIBUTING.md +62 -0
  16. deadtrace-0.1.0a1/GOVERNANCE.md +15 -0
  17. deadtrace-0.1.0a1/LICENSE +201 -0
  18. deadtrace-0.1.0a1/PKG-INFO +284 -0
  19. deadtrace-0.1.0a1/README.md +258 -0
  20. deadtrace-0.1.0a1/ROADMAP.md +616 -0
  21. deadtrace-0.1.0a1/SECURITY.md +22 -0
  22. deadtrace-0.1.0a1/benchmarks/README.md +101 -0
  23. deadtrace-0.1.0a1/benchmarks/check_budget.py +68 -0
  24. deadtrace-0.1.0a1/benchmarks/generate_scale_fixture.py +66 -0
  25. deadtrace-0.1.0a1/benchmarks/generate_service_fixture.py +218 -0
  26. deadtrace-0.1.0a1/benchmarks/profile_scan.py +38 -0
  27. deadtrace-0.1.0a1/benchmarks/results/2026-09-21-scale-50k-baseline.md +171 -0
  28. deadtrace-0.1.0a1/benchmarks/results/2026-09-21-scale-50k-run1.json +225 -0
  29. deadtrace-0.1.0a1/benchmarks/results/2026-09-21-scale-50k-run2.json +225 -0
  30. deadtrace-0.1.0a1/benchmarks/results/2026-09-21-scale-50k-run3.json +225 -0
  31. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-mypy-branch-run1.json +225 -0
  32. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-mypy-branch-run2.json +225 -0
  33. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-mypy-branch-run3.json +225 -0
  34. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-mypy-main-run1.json +225 -0
  35. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-mypy-main-run2.json +225 -0
  36. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-mypy-main-run3.json +225 -0
  37. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-pygments-branch-run1.json +225 -0
  38. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-pygments-branch-run2.json +225 -0
  39. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-pygments-branch-run3.json +225 -0
  40. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-pygments-main-run1.json +225 -0
  41. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-pygments-main-run2.json +225 -0
  42. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-pygments-main-run3.json +225 -0
  43. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-rich-branch-run1.json +225 -0
  44. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-rich-branch-run2.json +225 -0
  45. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-rich-branch-run3.json +225 -0
  46. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-rich-main-run1.json +225 -0
  47. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-rich-main-run2.json +225 -0
  48. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-rich-main-run3.json +225 -0
  49. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/scale-50k-branch-run1.json +225 -0
  50. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/scale-50k-branch-run2.json +225 -0
  51. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/scale-50k-branch-run3.json +225 -0
  52. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/scale-50k-main-run1.json +225 -0
  53. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/scale-50k-main-run2.json +225 -0
  54. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/scale-50k-main-run3.json +225 -0
  55. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/service-50k-branch-run1.json +225 -0
  56. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/service-50k-branch-run2.json +225 -0
  57. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/service-50k-branch-run3.json +225 -0
  58. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/service-50k-main-run1.json +225 -0
  59. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/service-50k-main-run2.json +225 -0
  60. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/service-50k-main-run3.json +225 -0
  61. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-mypy-branch-run1.json +225 -0
  62. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-mypy-branch-run2.json +225 -0
  63. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-mypy-branch-run3.json +225 -0
  64. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-mypy-main-run1.json +225 -0
  65. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-mypy-main-run2.json +225 -0
  66. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-mypy-main-run3.json +225 -0
  67. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-pygments-branch-run1.json +225 -0
  68. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-pygments-branch-run2.json +225 -0
  69. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-pygments-branch-run3.json +225 -0
  70. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-pygments-main-run1.json +225 -0
  71. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-pygments-main-run2.json +225 -0
  72. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-pygments-main-run3.json +225 -0
  73. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-rich-branch-run1.json +225 -0
  74. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-rich-branch-run2.json +225 -0
  75. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-rich-branch-run3.json +225 -0
  76. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-rich-main-run1.json +225 -0
  77. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-rich-main-run2.json +225 -0
  78. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-rich-main-run3.json +225 -0
  79. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/scale-50k-branch-run1.json +225 -0
  80. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/scale-50k-branch-run2.json +225 -0
  81. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/scale-50k-branch-run3.json +225 -0
  82. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/scale-50k-main-run1.json +225 -0
  83. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/scale-50k-main-run2.json +225 -0
  84. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/scale-50k-main-run3.json +225 -0
  85. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/service-50k-branch-run1.json +225 -0
  86. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/service-50k-branch-run2.json +225 -0
  87. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/service-50k-branch-run3.json +225 -0
  88. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/service-50k-main-run1.json +225 -0
  89. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/service-50k-main-run2.json +225 -0
  90. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/service-50k-main-run3.json +225 -0
  91. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/real-mypy-branch-run1.json +225 -0
  92. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/real-mypy-branch-run2.json +225 -0
  93. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/real-mypy-branch-run3.json +225 -0
  94. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/real-mypy-main-run1.json +225 -0
  95. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/real-mypy-main-run2.json +225 -0
  96. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/real-mypy-main-run3.json +225 -0
  97. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/real-pygments-branch-run1.json +225 -0
  98. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/real-pygments-main-run1.json +225 -0
  99. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/real-rich-branch-run1.json +225 -0
  100. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/real-rich-main-run1.json +225 -0
  101. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/scale-50k-branch-run1.json +225 -0
  102. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/scale-50k-branch-run2.json +225 -0
  103. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/scale-50k-branch-run3.json +225 -0
  104. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/scale-50k-main-run1.json +225 -0
  105. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/scale-50k-main-run2.json +225 -0
  106. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/scale-50k-main-run3.json +225 -0
  107. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/service-50k-branch-run1.json +225 -0
  108. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/service-50k-branch-run2.json +225 -0
  109. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/service-50k-branch-run3.json +225 -0
  110. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/service-50k-main-run1.json +225 -0
  111. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/service-50k-main-run2.json +225 -0
  112. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/service-50k-main-run3.json +225 -0
  113. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/real-_pytest-branch-run1.json +225 -0
  114. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/real-_pytest-main-run1.json +225 -0
  115. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/real-libcst-branch-run1.json +225 -0
  116. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/real-libcst-main-run1.json +225 -0
  117. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/real-mypy-branch-run1.json +225 -0
  118. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/real-mypy-branch-run2.json +225 -0
  119. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/real-mypy-branch-run3.json +225 -0
  120. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/real-mypy-main-run1.json +225 -0
  121. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/real-mypy-main-run2.json +225 -0
  122. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/real-mypy-main-run3.json +225 -0
  123. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/real-pydantic-branch-run1.json +225 -0
  124. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/real-pydantic-main-run1.json +225 -0
  125. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/real-rich-branch-run1.json +225 -0
  126. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/real-rich-main-run1.json +225 -0
  127. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/service-20k-branch-run1.json +225 -0
  128. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/service-20k-main-run1.json +225 -0
  129. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/service-50k-branch-run1.json +225 -0
  130. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/service-50k-branch-run2.json +225 -0
  131. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/service-50k-branch-run3.json +225 -0
  132. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/service-50k-branch-unloaded-run1.json +225 -0
  133. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/service-50k-branch-unloaded-run2.json +225 -0
  134. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/service-50k-branch-unloaded-run3.json +225 -0
  135. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/service-50k-main-run1.json +225 -0
  136. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/service-50k-main-run2.json +225 -0
  137. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/service-50k-main-run3.json +225 -0
  138. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups.md +71 -0
  139. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-mypy-branch-run1.json +225 -0
  140. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-mypy-branch-run2.json +225 -0
  141. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-mypy-branch-run3.json +225 -0
  142. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-mypy-main-run1.json +225 -0
  143. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-mypy-main-run2.json +225 -0
  144. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-mypy-main-run3.json +225 -0
  145. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-pygments-branch-run1.json +225 -0
  146. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-pygments-branch-run2.json +225 -0
  147. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-pygments-branch-run3.json +225 -0
  148. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-pygments-main-run1.json +225 -0
  149. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-pygments-main-run2.json +225 -0
  150. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-pygments-main-run3.json +225 -0
  151. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-rich-branch-run1.json +225 -0
  152. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-rich-branch-run2.json +225 -0
  153. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-rich-branch-run3.json +225 -0
  154. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-rich-main-run1.json +225 -0
  155. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-rich-main-run2.json +225 -0
  156. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-rich-main-run3.json +225 -0
  157. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/scale-50k-branch-run1.json +225 -0
  158. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/scale-50k-branch-run2.json +225 -0
  159. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/scale-50k-branch-run3.json +225 -0
  160. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/scale-50k-main-run1.json +225 -0
  161. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/scale-50k-main-run2.json +225 -0
  162. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/scale-50k-main-run3.json +225 -0
  163. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/service-50k-branch-run1.json +225 -0
  164. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/service-50k-branch-run2.json +225 -0
  165. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/service-50k-branch-run3.json +225 -0
  166. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/service-50k-main-run1.json +225 -0
  167. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/service-50k-main-run2.json +225 -0
  168. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/service-50k-main-run3.json +225 -0
  169. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-mypy-branch-run1.json +225 -0
  170. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-mypy-branch-run2.json +225 -0
  171. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-mypy-branch-run3.json +225 -0
  172. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-mypy-main-run1.json +225 -0
  173. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-mypy-main-run2.json +225 -0
  174. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-mypy-main-run3.json +225 -0
  175. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-pygments-branch-run1.json +225 -0
  176. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-pygments-branch-run2.json +225 -0
  177. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-pygments-branch-run3.json +225 -0
  178. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-pygments-main-run1.json +225 -0
  179. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-pygments-main-run2.json +225 -0
  180. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-pygments-main-run3.json +225 -0
  181. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-rich-branch-run1.json +225 -0
  182. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-rich-branch-run2.json +225 -0
  183. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-rich-branch-run3.json +225 -0
  184. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-rich-main-run1.json +225 -0
  185. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-rich-main-run2.json +225 -0
  186. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-rich-main-run3.json +225 -0
  187. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/scale-50k-branch-run1.json +225 -0
  188. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/scale-50k-branch-run2.json +225 -0
  189. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/scale-50k-branch-run3.json +225 -0
  190. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/scale-50k-main-run1.json +225 -0
  191. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/scale-50k-main-run2.json +225 -0
  192. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/scale-50k-main-run3.json +225 -0
  193. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/service-50k-branch-run1.json +225 -0
  194. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/service-50k-branch-run2.json +225 -0
  195. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/service-50k-branch-run3.json +225 -0
  196. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/service-50k-main-run1.json +225 -0
  197. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/service-50k-main-run2.json +225 -0
  198. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/service-50k-main-run3.json +225 -0
  199. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/real-mypy-branch-run1.json +225 -0
  200. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/real-mypy-branch-run2.json +225 -0
  201. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/real-mypy-branch-run3.json +225 -0
  202. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/real-mypy-main-run1.json +225 -0
  203. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/real-mypy-main-run2.json +225 -0
  204. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/real-mypy-main-run3.json +225 -0
  205. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/real-pygments-branch-run1.json +225 -0
  206. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/real-pygments-main-run1.json +225 -0
  207. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/real-rich-branch-run1.json +225 -0
  208. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/real-rich-main-run1.json +225 -0
  209. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/scale-50k-branch-run1.json +225 -0
  210. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/scale-50k-branch-run2.json +225 -0
  211. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/scale-50k-branch-run3.json +225 -0
  212. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/scale-50k-main-run1.json +225 -0
  213. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/scale-50k-main-run2.json +225 -0
  214. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/scale-50k-main-run3.json +225 -0
  215. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/service-50k-branch-run1.json +225 -0
  216. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/service-50k-branch-run2.json +225 -0
  217. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/service-50k-branch-run3.json +225 -0
  218. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/service-50k-main-run1.json +225 -0
  219. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/service-50k-main-run2.json +225 -0
  220. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/service-50k-main-run3.json +225 -0
  221. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness.md +36 -0
  222. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-scale-50k-main-run1.json +225 -0
  223. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-scale-50k-main-run2.json +225 -0
  224. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-scale-50k-main-run3.json +225 -0
  225. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-scale-50k-single-parse-run1.json +225 -0
  226. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-scale-50k-single-parse-run2.json +225 -0
  227. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-scale-50k-single-parse-run3.json +225 -0
  228. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-scale-50k-single-parse.md +48 -0
  229. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/real-_pytest-branch-run1.json +225 -0
  230. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/real-_pytest-main-run1.json +225 -0
  231. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/real-libcst-branch-run1.json +225 -0
  232. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/real-libcst-main-run1.json +225 -0
  233. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/real-mypy-branch-run1.json +225 -0
  234. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/real-mypy-branch-run2.json +225 -0
  235. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/real-mypy-branch-run3.json +225 -0
  236. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/real-mypy-main-run1.json +225 -0
  237. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/real-mypy-main-run2.json +225 -0
  238. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/real-mypy-main-run3.json +225 -0
  239. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/real-pydantic-branch-run1.json +225 -0
  240. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/real-pydantic-main-run1.json +225 -0
  241. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/real-pygments-branch-run1.json +225 -0
  242. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/real-pygments-branch-run2.json +225 -0
  243. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/real-rich-branch-run1.json +225 -0
  244. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/real-rich-main-run1.json +225 -0
  245. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/scale-50k-branch-run1.json +225 -0
  246. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/scale-50k-branch-run2.json +225 -0
  247. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/scale-50k-branch-run3.json +225 -0
  248. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/scale-50k-main-run1.json +225 -0
  249. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/scale-50k-main-run2.json +225 -0
  250. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/scale-50k-main-run3.json +225 -0
  251. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/service-20k-branch-run1.json +225 -0
  252. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/service-20k-main-run1.json +225 -0
  253. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/service-50k-branch-run1.json +225 -0
  254. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/service-50k-branch-run2.json +225 -0
  255. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/service-50k-branch-run3.json +225 -0
  256. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/service-50k-main-run1.json +225 -0
  257. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/service-50k-main-run2.json +225 -0
  258. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/service-50k-main-run3.json +225 -0
  259. deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast.md +62 -0
  260. deadtrace-0.1.0a1/benchmarks/results/audit-2026-10-01/audit-scale-1.json +231 -0
  261. deadtrace-0.1.0a1/benchmarks/results/audit-2026-10-01/audit-scale-2.json +231 -0
  262. deadtrace-0.1.0a1/benchmarks/results/audit-2026-10-01/audit-scale-3.json +231 -0
  263. deadtrace-0.1.0a1/benchmarks/results/audit-2026-10-01/audit-service-1.json +231 -0
  264. deadtrace-0.1.0a1/benchmarks/results/audit-2026-10-01/audit-service-2.json +231 -0
  265. deadtrace-0.1.0a1/benchmarks/results/audit-2026-10-01/audit-service-3.json +231 -0
  266. deadtrace-0.1.0a1/benchmarks/stage_installed_sources.py +65 -0
  267. deadtrace-0.1.0a1/corpus/README.md +19 -0
  268. deadtrace-0.1.0a1/corpus/frameworks/alembic_environment/CASE.md +8 -0
  269. deadtrace-0.1.0a1/corpus/frameworks/alembic_environment/CASE.toml +33 -0
  270. deadtrace-0.1.0a1/corpus/frameworks/alembic_environment/app/__init__.py +0 -0
  271. deadtrace-0.1.0a1/corpus/frameworks/alembic_environment/app/alembic/env.py +8 -0
  272. deadtrace-0.1.0a1/corpus/frameworks/alembic_environment/app/alembic/versions/0001_initial.py +14 -0
  273. deadtrace-0.1.0a1/corpus/frameworks/alembic_environment/app/main.py +8 -0
  274. deadtrace-0.1.0a1/corpus/frameworks/app_factory/CASE.md +5 -0
  275. deadtrace-0.1.0a1/corpus/frameworks/app_factory/CASE.toml +27 -0
  276. deadtrace-0.1.0a1/corpus/frameworks/app_factory/main.py +35 -0
  277. deadtrace-0.1.0a1/corpus/frameworks/celery_autodiscover_tasks/CASE.md +9 -0
  278. deadtrace-0.1.0a1/corpus/frameworks/celery_autodiscover_tasks/CASE.toml +33 -0
  279. deadtrace-0.1.0a1/corpus/frameworks/celery_autodiscover_tasks/orders/__init__.py +0 -0
  280. deadtrace-0.1.0a1/corpus/frameworks/celery_autodiscover_tasks/orders/legacy_tasks.py +6 -0
  281. deadtrace-0.1.0a1/corpus/frameworks/celery_autodiscover_tasks/orders/receipts.py +6 -0
  282. deadtrace-0.1.0a1/corpus/frameworks/celery_autodiscover_tasks/orders/tasks.py +8 -0
  283. deadtrace-0.1.0a1/corpus/frameworks/celery_autodiscover_tasks/proj/__init__.py +0 -0
  284. deadtrace-0.1.0a1/corpus/frameworks/celery_autodiscover_tasks/proj/celery.py +4 -0
  285. deadtrace-0.1.0a1/corpus/frameworks/celery_autodiscover_tasks/pyproject.toml +3 -0
  286. deadtrace-0.1.0a1/corpus/frameworks/cli_commands/CASE.md +10 -0
  287. deadtrace-0.1.0a1/corpus/frameworks/cli_commands/CASE.toml +49 -0
  288. deadtrace-0.1.0a1/corpus/frameworks/cli_commands/manage.py +24 -0
  289. deadtrace-0.1.0a1/corpus/frameworks/cli_commands/tool.py +17 -0
  290. deadtrace-0.1.0a1/corpus/frameworks/deployment_commands/CASE.md +14 -0
  291. deadtrace-0.1.0a1/corpus/frameworks/deployment_commands/CASE.toml +45 -0
  292. deadtrace-0.1.0a1/corpus/frameworks/deployment_commands/Procfile +1 -0
  293. deadtrace-0.1.0a1/corpus/frameworks/deployment_commands/docker-compose.yml +8 -0
  294. deadtrace-0.1.0a1/corpus/frameworks/deployment_commands/svc/Dockerfile +3 -0
  295. deadtrace-0.1.0a1/corpus/frameworks/deployment_commands/svc/svc/__init__.py +0 -0
  296. deadtrace-0.1.0a1/corpus/frameworks/deployment_commands/svc/svc/logging.conf +4 -0
  297. deadtrace-0.1.0a1/corpus/frameworks/deployment_commands/svc/svc/logs.py +10 -0
  298. deadtrace-0.1.0a1/corpus/frameworks/deployment_commands/svc/svc/main.py +8 -0
  299. deadtrace-0.1.0a1/corpus/frameworks/deployment_commands/svc/svc/profiling.py +10 -0
  300. deadtrace-0.1.0a1/corpus/frameworks/deployment_commands/svc/svc/tasks.py +5 -0
  301. deadtrace-0.1.0a1/corpus/frameworks/deployment_commands/svc/svc/worker.py +6 -0
  302. deadtrace-0.1.0a1/corpus/frameworks/deployment_commands/tools/seed.py +5 -0
  303. deadtrace-0.1.0a1/corpus/frameworks/dishka_alias/CASE.md +4 -0
  304. deadtrace-0.1.0a1/corpus/frameworks/dishka_alias/CASE.toml +21 -0
  305. deadtrace-0.1.0a1/corpus/frameworks/dishka_alias/main.py +35 -0
  306. deadtrace-0.1.0a1/corpus/frameworks/dishka_components_guard/CASE.md +5 -0
  307. deadtrace-0.1.0a1/corpus/frameworks/dishka_components_guard/CASE.toml +15 -0
  308. deadtrace-0.1.0a1/corpus/frameworks/dishka_components_guard/main.py +28 -0
  309. deadtrace-0.1.0a1/corpus/frameworks/dishka_conditional/CASE.md +9 -0
  310. deadtrace-0.1.0a1/corpus/frameworks/dishka_conditional/CASE.toml +21 -0
  311. deadtrace-0.1.0a1/corpus/frameworks/dishka_conditional/main.py +26 -0
  312. deadtrace-0.1.0a1/corpus/frameworks/dishka_context/CASE.md +4 -0
  313. deadtrace-0.1.0a1/corpus/frameworks/dishka_context/CASE.toml +21 -0
  314. deadtrace-0.1.0a1/corpus/frameworks/dishka_context/main.py +36 -0
  315. deadtrace-0.1.0a1/corpus/frameworks/dishka_generator_cleanup/CASE.md +4 -0
  316. deadtrace-0.1.0a1/corpus/frameworks/dishka_generator_cleanup/CASE.toml +21 -0
  317. deadtrace-0.1.0a1/corpus/frameworks/dishka_generator_cleanup/main.py +34 -0
  318. deadtrace-0.1.0a1/corpus/frameworks/dishka_inactive_injection/CASE.md +10 -0
  319. deadtrace-0.1.0a1/corpus/frameworks/dishka_inactive_injection/CASE.toml +21 -0
  320. deadtrace-0.1.0a1/corpus/frameworks/dishka_inactive_injection/main.py +25 -0
  321. deadtrace-0.1.0a1/corpus/frameworks/dishka_requested_service_members/CASE.md +5 -0
  322. deadtrace-0.1.0a1/corpus/frameworks/dishka_requested_service_members/CASE.toml +33 -0
  323. deadtrace-0.1.0a1/corpus/frameworks/dishka_requested_service_members/main.py +40 -0
  324. deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/CASE.md +17 -0
  325. deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/CASE.toml +81 -0
  326. deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/blog/__init__.py +0 -0
  327. deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/blog/drafts.py +2 -0
  328. deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/blog/models.py +8 -0
  329. deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/manage.py +13 -0
  330. deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/mysite/__init__.py +0 -0
  331. deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/mysite/settings.py +8 -0
  332. deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/mysite/urls.py +7 -0
  333. deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/mysite/wsgi.py +12 -0
  334. deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/polls/__init__.py +0 -0
  335. deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/polls/admin.py +9 -0
  336. deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/polls/apps.py +5 -0
  337. deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/polls/management/__init__.py +0 -0
  338. deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/polls/management/commands/__init__.py +0 -0
  339. deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/polls/management/commands/closepoll.py +10 -0
  340. deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/polls/models.py +12 -0
  341. deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/polls/templatetags/__init__.py +0 -0
  342. deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/polls/templatetags/poll_extras.py +8 -0
  343. deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/polls/urls.py +5 -0
  344. deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/polls/utils.py +2 -0
  345. deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/polls/views.py +9 -0
  346. deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/pyproject.toml +3 -0
  347. deadtrace-0.1.0a1/corpus/frameworks/django_framework_conventions/CASE.md +14 -0
  348. deadtrace-0.1.0a1/corpus/frameworks/django_framework_conventions/CASE.toml +45 -0
  349. deadtrace-0.1.0a1/corpus/frameworks/django_framework_conventions/mysite/__init__.py +0 -0
  350. deadtrace-0.1.0a1/corpus/frameworks/django_framework_conventions/mysite/asgi.py +5 -0
  351. deadtrace-0.1.0a1/corpus/frameworks/django_framework_conventions/mysite/settings.py +5 -0
  352. deadtrace-0.1.0a1/corpus/frameworks/django_framework_conventions/shop/__init__.py +0 -0
  353. deadtrace-0.1.0a1/corpus/frameworks/django_framework_conventions/shop/apps.py +8 -0
  354. deadtrace-0.1.0a1/corpus/frameworks/django_framework_conventions/shop/consumers.py +4 -0
  355. deadtrace-0.1.0a1/corpus/frameworks/django_framework_conventions/shop/legacy_migrations/0001_initial.py +11 -0
  356. deadtrace-0.1.0a1/corpus/frameworks/django_framework_conventions/shop/legacy_migrations/__init__.py +0 -0
  357. deadtrace-0.1.0a1/corpus/frameworks/django_framework_conventions/shop/models.py +17 -0
  358. deadtrace-0.1.0a1/corpus/frameworks/django_framework_conventions/shop/routing.py +3 -0
  359. deadtrace-0.1.0a1/corpus/frameworks/django_framework_conventions/shop/unused.py +2 -0
  360. deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/CASE.md +16 -0
  361. deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/CASE.toml +81 -0
  362. deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/blog/__init__.py +0 -0
  363. deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/blog/drafts.py +2 -0
  364. deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/blog/models.py +8 -0
  365. deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/manage.py +13 -0
  366. deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/mysite/__init__.py +0 -0
  367. deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/mysite/settings.py +8 -0
  368. deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/mysite/urls.py +7 -0
  369. deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/mysite/wsgi.py +12 -0
  370. deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/polls/__init__.py +0 -0
  371. deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/polls/admin.py +9 -0
  372. deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/polls/apps.py +5 -0
  373. deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/polls/management/__init__.py +0 -0
  374. deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/polls/management/commands/__init__.py +0 -0
  375. deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/polls/management/commands/closepoll.py +10 -0
  376. deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/polls/models.py +12 -0
  377. deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/polls/templatetags/__init__.py +0 -0
  378. deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/polls/templatetags/poll_extras.py +8 -0
  379. deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/polls/urls.py +5 -0
  380. deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/polls/utils.py +2 -0
  381. deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/polls/views.py +9 -0
  382. deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/pyproject.toml +9 -0
  383. deadtrace-0.1.0a1/corpus/frameworks/django_runpython_keywords/CASE.md +11 -0
  384. deadtrace-0.1.0a1/corpus/frameworks/django_runpython_keywords/CASE.toml +27 -0
  385. deadtrace-0.1.0a1/corpus/frameworks/django_runpython_keywords/mysite/__init__.py +0 -0
  386. deadtrace-0.1.0a1/corpus/frameworks/django_runpython_keywords/mysite/settings.py +1 -0
  387. deadtrace-0.1.0a1/corpus/frameworks/django_runpython_keywords/shop/__init__.py +0 -0
  388. deadtrace-0.1.0a1/corpus/frameworks/django_runpython_keywords/shop/migrations/0001_initial.py +18 -0
  389. deadtrace-0.1.0a1/corpus/frameworks/django_runpython_keywords/shop/migrations/__init__.py +0 -0
  390. deadtrace-0.1.0a1/corpus/frameworks/django_runpython_keywords/shop/unused.py +2 -0
  391. deadtrace-0.1.0a1/corpus/frameworks/external_command_decorator/CASE.md +9 -0
  392. deadtrace-0.1.0a1/corpus/frameworks/external_command_decorator/CASE.toml +15 -0
  393. deadtrace-0.1.0a1/corpus/frameworks/external_command_decorator/main.py +10 -0
  394. deadtrace-0.1.0a1/corpus/frameworks/external_command_decorator/pyproject.toml +9 -0
  395. deadtrace-0.1.0a1/corpus/frameworks/external_keep/CASE.md +4 -0
  396. deadtrace-0.1.0a1/corpus/frameworks/external_keep/CASE.toml +27 -0
  397. deadtrace-0.1.0a1/corpus/frameworks/external_keep/main.py +20 -0
  398. deadtrace-0.1.0a1/corpus/frameworks/external_keep/pyproject.toml +11 -0
  399. deadtrace-0.1.0a1/corpus/frameworks/external_task_decorator_called_through_attribute/CASE.md +9 -0
  400. deadtrace-0.1.0a1/corpus/frameworks/external_task_decorator_called_through_attribute/CASE.toml +15 -0
  401. deadtrace-0.1.0a1/corpus/frameworks/external_task_decorator_called_through_attribute/main.py +12 -0
  402. deadtrace-0.1.0a1/corpus/frameworks/external_task_decorator_called_through_attribute/pyproject.toml +9 -0
  403. deadtrace-0.1.0a1/corpus/frameworks/external_task_decorator_without_reference/CASE.md +9 -0
  404. deadtrace-0.1.0a1/corpus/frameworks/external_task_decorator_without_reference/CASE.toml +15 -0
  405. deadtrace-0.1.0a1/corpus/frameworks/external_task_decorator_without_reference/main.py +12 -0
  406. deadtrace-0.1.0a1/corpus/frameworks/external_task_decorator_without_reference/pyproject.toml +9 -0
  407. deadtrace-0.1.0a1/corpus/frameworks/fastapi_background_task_method/CASE.md +7 -0
  408. deadtrace-0.1.0a1/corpus/frameworks/fastapi_background_task_method/CASE.toml +27 -0
  409. deadtrace-0.1.0a1/corpus/frameworks/fastapi_background_task_method/main.py +22 -0
  410. deadtrace-0.1.0a1/corpus/frameworks/fastapi_monorepo_service_packages/CASE.md +19 -0
  411. deadtrace-0.1.0a1/corpus/frameworks/fastapi_monorepo_service_packages/CASE.toml +62 -0
  412. deadtrace-0.1.0a1/corpus/frameworks/fastapi_monorepo_service_packages/billing/billing/__init__.py +0 -0
  413. deadtrace-0.1.0a1/corpus/frameworks/fastapi_monorepo_service_packages/billing/billing/api.py +9 -0
  414. deadtrace-0.1.0a1/corpus/frameworks/fastapi_monorepo_service_packages/billing/billing/main.py +10 -0
  415. deadtrace-0.1.0a1/corpus/frameworks/fastapi_monorepo_service_packages/libs/common/common/money.py +6 -0
  416. deadtrace-0.1.0a1/corpus/frameworks/fastapi_monorepo_service_packages/report/report/alembic/env.py +3 -0
  417. deadtrace-0.1.0a1/corpus/frameworks/fastapi_monorepo_service_packages/report/report/alembic/versions/0001_init.py +6 -0
  418. deadtrace-0.1.0a1/corpus/frameworks/fastapi_monorepo_service_packages/report/report/api.py +8 -0
  419. deadtrace-0.1.0a1/corpus/frameworks/fastapi_monorepo_service_packages/report/report/main.py +5 -0
  420. deadtrace-0.1.0a1/corpus/frameworks/fastapi_monorepo_service_packages/shop/shop/__init__.py +0 -0
  421. deadtrace-0.1.0a1/corpus/frameworks/fastapi_monorepo_service_packages/shop/shop/main.py +6 -0
  422. deadtrace-0.1.0a1/corpus/frameworks/fastapi_monorepo_service_packages/shop/shop/routes.py +12 -0
  423. deadtrace-0.1.0a1/corpus/frameworks/fastapi_native_lifecycle/CASE.md +4 -0
  424. deadtrace-0.1.0a1/corpus/frameworks/fastapi_native_lifecycle/CASE.toml +33 -0
  425. deadtrace-0.1.0a1/corpus/frameworks/fastapi_native_lifecycle/main.py +53 -0
  426. deadtrace-0.1.0a1/corpus/frameworks/fastapi_router_registry/CASE.md +10 -0
  427. deadtrace-0.1.0a1/corpus/frameworks/fastapi_router_registry/CASE.toml +39 -0
  428. deadtrace-0.1.0a1/corpus/frameworks/fastapi_router_registry/api/__init__.py +5 -0
  429. deadtrace-0.1.0a1/corpus/frameworks/fastapi_router_registry/api/items.py +8 -0
  430. deadtrace-0.1.0a1/corpus/frameworks/fastapi_router_registry/api/legacy.py +8 -0
  431. deadtrace-0.1.0a1/corpus/frameworks/fastapi_router_registry/api/users.py +8 -0
  432. deadtrace-0.1.0a1/corpus/frameworks/fastapi_router_registry/helpers.py +13 -0
  433. deadtrace-0.1.0a1/corpus/frameworks/fastapi_router_registry/main.py +9 -0
  434. deadtrace-0.1.0a1/corpus/frameworks/fastapi_src_package_imports/CASE.md +10 -0
  435. deadtrace-0.1.0a1/corpus/frameworks/fastapi_src_package_imports/CASE.toml +21 -0
  436. deadtrace-0.1.0a1/corpus/frameworks/fastapi_src_package_imports/src/__init__.py +0 -0
  437. deadtrace-0.1.0a1/corpus/frameworks/fastapi_src_package_imports/src/api/__init__.py +0 -0
  438. deadtrace-0.1.0a1/corpus/frameworks/fastapi_src_package_imports/src/api/routes.py +12 -0
  439. deadtrace-0.1.0a1/corpus/frameworks/fastapi_src_package_imports/src/main.py +6 -0
  440. deadtrace-0.1.0a1/corpus/frameworks/fastapi_uncalled_factory/CASE.md +7 -0
  441. deadtrace-0.1.0a1/corpus/frameworks/fastapi_uncalled_factory/CASE.toml +33 -0
  442. deadtrace-0.1.0a1/corpus/frameworks/fastapi_uncalled_factory/main.py +8 -0
  443. deadtrace-0.1.0a1/corpus/frameworks/fastapi_uncalled_factory/pyproject.toml +3 -0
  444. deadtrace-0.1.0a1/corpus/frameworks/fastapi_uncalled_factory/routes.py +16 -0
  445. deadtrace-0.1.0a1/corpus/frameworks/fastapi_unknown_include/CASE.md +9 -0
  446. deadtrace-0.1.0a1/corpus/frameworks/fastapi_unknown_include/CASE.toml +27 -0
  447. deadtrace-0.1.0a1/corpus/frameworks/fastapi_unknown_include/main.py +6 -0
  448. deadtrace-0.1.0a1/corpus/frameworks/fastapi_unknown_include/registry.py +5 -0
  449. deadtrace-0.1.0a1/corpus/frameworks/fastapi_unknown_include/routes.py +14 -0
  450. deadtrace-0.1.0a1/corpus/frameworks/fastapi_wrapped_factory/CASE.md +10 -0
  451. deadtrace-0.1.0a1/corpus/frameworks/fastapi_wrapped_factory/CASE.toml +27 -0
  452. deadtrace-0.1.0a1/corpus/frameworks/fastapi_wrapped_factory/app/__init__.py +0 -0
  453. deadtrace-0.1.0a1/corpus/frameworks/fastapi_wrapped_factory/app/main.py +24 -0
  454. deadtrace-0.1.0a1/corpus/frameworks/flask_application_factory/CASE.md +7 -0
  455. deadtrace-0.1.0a1/corpus/frameworks/flask_application_factory/CASE.toml +33 -0
  456. deadtrace-0.1.0a1/corpus/frameworks/flask_application_factory/pyproject.toml +3 -0
  457. deadtrace-0.1.0a1/corpus/frameworks/flask_application_factory/shop/__init__.py +9 -0
  458. deadtrace-0.1.0a1/corpus/frameworks/flask_application_factory/shop/views.py +16 -0
  459. deadtrace-0.1.0a1/corpus/frameworks/historical_migration/CASE.md +5 -0
  460. deadtrace-0.1.0a1/corpus/frameworks/historical_migration/CASE.toml +27 -0
  461. deadtrace-0.1.0a1/corpus/frameworks/historical_migration/app/migrations/0001_data.py +16 -0
  462. deadtrace-0.1.0a1/corpus/frameworks/historical_migration/main.py +3 -0
  463. deadtrace-0.1.0a1/corpus/frameworks/message_workers/CASE.md +12 -0
  464. deadtrace-0.1.0a1/corpus/frameworks/message_workers/CASE.toml +45 -0
  465. deadtrace-0.1.0a1/corpus/frameworks/message_workers/service/__init__.py +0 -0
  466. deadtrace-0.1.0a1/corpus/frameworks/message_workers/service/handlers.py +12 -0
  467. deadtrace-0.1.0a1/corpus/frameworks/message_workers/service/run_faststream.py +8 -0
  468. deadtrace-0.1.0a1/corpus/frameworks/message_workers/service/run_scheduler.py +11 -0
  469. deadtrace-0.1.0a1/corpus/frameworks/message_workers/service/worker.py +23 -0
  470. deadtrace-0.1.0a1/corpus/frameworks/multiple_apps/CASE.md +4 -0
  471. deadtrace-0.1.0a1/corpus/frameworks/multiple_apps/CASE.toml +21 -0
  472. deadtrace-0.1.0a1/corpus/frameworks/multiple_apps/main.py +14 -0
  473. deadtrace-0.1.0a1/corpus/frameworks/multiple_containers/CASE.md +4 -0
  474. deadtrace-0.1.0a1/corpus/frameworks/multiple_containers/CASE.toml +23 -0
  475. deadtrace-0.1.0a1/corpus/frameworks/multiple_containers/main.py +41 -0
  476. deadtrace-0.1.0a1/corpus/frameworks/package_exports_next_to_application/CASE.md +8 -0
  477. deadtrace-0.1.0a1/corpus/frameworks/package_exports_next_to_application/CASE.toml +33 -0
  478. deadtrace-0.1.0a1/corpus/frameworks/package_exports_next_to_application/pkg/__init__.py +4 -0
  479. deadtrace-0.1.0a1/corpus/frameworks/package_exports_next_to_application/pkg/cli.py +8 -0
  480. deadtrace-0.1.0a1/corpus/frameworks/package_exports_next_to_application/pkg/core.py +11 -0
  481. deadtrace-0.1.0a1/corpus/frameworks/pytest_class_and_conftest_effects/CASE.md +8 -0
  482. deadtrace-0.1.0a1/corpus/frameworks/pytest_class_and_conftest_effects/CASE.toml +27 -0
  483. deadtrace-0.1.0a1/corpus/frameworks/pytest_class_and_conftest_effects/_meta.py +7 -0
  484. deadtrace-0.1.0a1/corpus/frameworks/pytest_class_and_conftest_effects/tests/conftest.py +9 -0
  485. deadtrace-0.1.0a1/corpus/frameworks/pytest_class_and_conftest_effects/tests/test_meta.py +6 -0
  486. deadtrace-0.1.0a1/corpus/frameworks/pytest_dynamic_test_module/CASE.md +7 -0
  487. deadtrace-0.1.0a1/corpus/frameworks/pytest_dynamic_test_module/CASE.toml +21 -0
  488. deadtrace-0.1.0a1/corpus/frameworks/pytest_dynamic_test_module/_cases.py +13 -0
  489. deadtrace-0.1.0a1/corpus/frameworks/pytest_dynamic_test_module/_tool.py +2 -0
  490. deadtrace-0.1.0a1/corpus/frameworks/pytest_dynamic_test_module/pyproject.toml +6 -0
  491. deadtrace-0.1.0a1/corpus/frameworks/pytest_dynamic_test_module/test_generated.py +10 -0
  492. deadtrace-0.1.0a1/corpus/frameworks/pytest_hooks_and_configuration/CASE.md +9 -0
  493. deadtrace-0.1.0a1/corpus/frameworks/pytest_hooks_and_configuration/CASE.toml +33 -0
  494. deadtrace-0.1.0a1/corpus/frameworks/pytest_hooks_and_configuration/checks/__init__.py +0 -0
  495. deadtrace-0.1.0a1/corpus/frameworks/pytest_hooks_and_configuration/checks/check_orders.py +5 -0
  496. deadtrace-0.1.0a1/corpus/frameworks/pytest_hooks_and_configuration/checks/test_legacy.py +2 -0
  497. deadtrace-0.1.0a1/corpus/frameworks/pytest_hooks_and_configuration/conftest.py +14 -0
  498. deadtrace-0.1.0a1/corpus/frameworks/pytest_hooks_and_configuration/orders.py +6 -0
  499. deadtrace-0.1.0a1/corpus/frameworks/pytest_hooks_and_configuration/pyproject.toml +6 -0
  500. deadtrace-0.1.0a1/corpus/frameworks/pytest_hypothesis_given/CASE.md +6 -0
  501. deadtrace-0.1.0a1/corpus/frameworks/pytest_hypothesis_given/CASE.toml +27 -0
  502. deadtrace-0.1.0a1/corpus/frameworks/pytest_hypothesis_given/_tool.py +10 -0
  503. deadtrace-0.1.0a1/corpus/frameworks/pytest_hypothesis_given/test_props.py +18 -0
  504. deadtrace-0.1.0a1/corpus/frameworks/pytest_imported_suite/CASE.md +11 -0
  505. deadtrace-0.1.0a1/corpus/frameworks/pytest_imported_suite/CASE.toml +39 -0
  506. deadtrace-0.1.0a1/corpus/frameworks/pytest_imported_suite/pages.py +2 -0
  507. deadtrace-0.1.0a1/corpus/frameworks/pytest_imported_suite/pyproject.toml +6 -0
  508. deadtrace-0.1.0a1/corpus/frameworks/pytest_imported_suite/tests/__init__.py +0 -0
  509. deadtrace-0.1.0a1/corpus/frameworks/pytest_imported_suite/tests/suite/__init__.py +0 -0
  510. deadtrace-0.1.0a1/corpus/frameworks/pytest_imported_suite/tests/suite/conftest.py +11 -0
  511. deadtrace-0.1.0a1/corpus/frameworks/pytest_imported_suite/tests/suite/test_pages.py +10 -0
  512. deadtrace-0.1.0a1/corpus/frameworks/pytest_imported_suite/tests/suite_shared/__init__.py +0 -0
  513. deadtrace-0.1.0a1/corpus/frameworks/pytest_imported_suite/tests/suite_shared/conftest.py +16 -0
  514. deadtrace-0.1.0a1/corpus/frameworks/pytest_imported_suite/tests/suite_shared/test_shared_pages.py +1 -0
  515. deadtrace-0.1.0a1/corpus/frameworks/pytest_plugin_from_addopts/CASE.md +5 -0
  516. deadtrace-0.1.0a1/corpus/frameworks/pytest_plugin_from_addopts/CASE.toml +21 -0
  517. deadtrace-0.1.0a1/corpus/frameworks/pytest_plugin_from_addopts/_tool.py +10 -0
  518. deadtrace-0.1.0a1/corpus/frameworks/pytest_plugin_from_addopts/pytest.ini +2 -0
  519. deadtrace-0.1.0a1/corpus/frameworks/pytest_plugin_from_addopts/tests/__init__.py +0 -0
  520. deadtrace-0.1.0a1/corpus/frameworks/pytest_plugin_from_addopts/tests/plugin_fixtures.py +10 -0
  521. deadtrace-0.1.0a1/corpus/frameworks/pytest_plugin_from_addopts/tests/test_clock.py +2 -0
  522. deadtrace-0.1.0a1/corpus/frameworks/pytest_plugins_package_prefix/CASE.md +10 -0
  523. deadtrace-0.1.0a1/corpus/frameworks/pytest_plugins_package_prefix/CASE.toml +21 -0
  524. deadtrace-0.1.0a1/corpus/frameworks/pytest_plugins_package_prefix/conftest.py +1 -0
  525. deadtrace-0.1.0a1/corpus/frameworks/pytest_plugins_package_prefix/pyproject.toml +6 -0
  526. deadtrace-0.1.0a1/corpus/frameworks/pytest_plugins_package_prefix/src/__init__.py +0 -0
  527. deadtrace-0.1.0a1/corpus/frameworks/pytest_plugins_package_prefix/src/shop/__init__.py +0 -0
  528. deadtrace-0.1.0a1/corpus/frameworks/pytest_plugins_package_prefix/src/shop/orders.py +2 -0
  529. deadtrace-0.1.0a1/corpus/frameworks/pytest_plugins_package_prefix/src/shop/tests/__init__.py +0 -0
  530. deadtrace-0.1.0a1/corpus/frameworks/pytest_plugins_package_prefix/src/shop/tests/fixtures.py +12 -0
  531. deadtrace-0.1.0a1/corpus/frameworks/pytest_plugins_package_prefix/src/shop/tests/test_orders.py +2 -0
  532. deadtrace-0.1.0a1/corpus/frameworks/pytest_separation/CASE.md +4 -0
  533. deadtrace-0.1.0a1/corpus/frameworks/pytest_separation/CASE.toml +27 -0
  534. deadtrace-0.1.0a1/corpus/frameworks/pytest_separation/app.py +16 -0
  535. deadtrace-0.1.0a1/corpus/frameworks/pytest_separation/tests/conftest.py +7 -0
  536. deadtrace-0.1.0a1/corpus/frameworks/pytest_separation/tests/test_app.py +2 -0
  537. deadtrace-0.1.0a1/corpus/frameworks/pytest_unittest_base_alias/CASE.md +5 -0
  538. deadtrace-0.1.0a1/corpus/frameworks/pytest_unittest_base_alias/CASE.toml +27 -0
  539. deadtrace-0.1.0a1/corpus/frameworks/pytest_unittest_base_alias/_tool.py +10 -0
  540. deadtrace-0.1.0a1/corpus/frameworks/pytest_unittest_base_alias/tests/__init__.py +0 -0
  541. deadtrace-0.1.0a1/corpus/frameworks/pytest_unittest_base_alias/tests/test_suite.py +6 -0
  542. deadtrace-0.1.0a1/corpus/frameworks/pytest_unittest_base_alias/tests/util.py +3 -0
  543. deadtrace-0.1.0a1/corpus/frameworks/report_excluded_caller/CASE.md +5 -0
  544. deadtrace-0.1.0a1/corpus/frameworks/report_excluded_caller/CASE.toml +27 -0
  545. deadtrace-0.1.0a1/corpus/frameworks/report_excluded_caller/hidden.py +9 -0
  546. deadtrace-0.1.0a1/corpus/frameworks/report_excluded_caller/pyproject.toml +16 -0
  547. deadtrace-0.1.0a1/corpus/frameworks/report_excluded_caller/visible.py +6 -0
  548. deadtrace-0.1.0a1/corpus/frameworks/unittest_main_script/CASE.md +5 -0
  549. deadtrace-0.1.0a1/corpus/frameworks/unittest_main_script/CASE.toml +27 -0
  550. deadtrace-0.1.0a1/corpus/frameworks/unittest_main_script/_checks.py +14 -0
  551. deadtrace-0.1.0a1/corpus/frameworks/unpublished_router/CASE.md +4 -0
  552. deadtrace-0.1.0a1/corpus/frameworks/unpublished_router/CASE.toml +21 -0
  553. deadtrace-0.1.0a1/corpus/frameworks/unpublished_router/main.py +14 -0
  554. deadtrace-0.1.0a1/corpus/packaging/project_entry_point/CASE.md +5 -0
  555. deadtrace-0.1.0a1/corpus/packaging/project_entry_point/CASE.toml +27 -0
  556. deadtrace-0.1.0a1/corpus/packaging/project_entry_point/pyproject.toml +7 -0
  557. deadtrace-0.1.0a1/corpus/packaging/project_entry_point/src/acme/cli.py +10 -0
  558. deadtrace-0.1.0a1/corpus/python/abstract_implementation_required/CASE.md +5 -0
  559. deadtrace-0.1.0a1/corpus/python/abstract_implementation_required/CASE.toml +27 -0
  560. deadtrace-0.1.0a1/corpus/python/abstract_implementation_required/_tool.py +31 -0
  561. deadtrace-0.1.0a1/corpus/python/alternative_bindings/CASE.md +10 -0
  562. deadtrace-0.1.0a1/corpus/python/alternative_bindings/CASE.toml +33 -0
  563. deadtrace-0.1.0a1/corpus/python/alternative_bindings/fast.py +6 -0
  564. deadtrace-0.1.0a1/corpus/python/alternative_bindings/main.py +21 -0
  565. deadtrace-0.1.0a1/corpus/python/alternative_bindings/pyproject.toml +9 -0
  566. deadtrace-0.1.0a1/corpus/python/alternative_bindings/slow.py +2 -0
  567. deadtrace-0.1.0a1/corpus/python/annotation_in_class_body/CASE.md +5 -0
  568. deadtrace-0.1.0a1/corpus/python/annotation_in_class_body/CASE.toml +27 -0
  569. deadtrace-0.1.0a1/corpus/python/annotation_in_class_body/_tool.py +29 -0
  570. deadtrace-0.1.0a1/corpus/python/annotation_metadata_calls/CASE.md +11 -0
  571. deadtrace-0.1.0a1/corpus/python/annotation_metadata_calls/CASE.toml +27 -0
  572. deadtrace-0.1.0a1/corpus/python/annotation_metadata_calls/cli.py +37 -0
  573. deadtrace-0.1.0a1/corpus/python/annotation_reads_class_attribute/CASE.md +6 -0
  574. deadtrace-0.1.0a1/corpus/python/annotation_reads_class_attribute/CASE.toml +27 -0
  575. deadtrace-0.1.0a1/corpus/python/annotation_reads_class_attribute/_tool.py +24 -0
  576. deadtrace-0.1.0a1/corpus/python/base_class_of_constructed_class/CASE.md +9 -0
  577. deadtrace-0.1.0a1/corpus/python/base_class_of_constructed_class/CASE.toml +33 -0
  578. deadtrace-0.1.0a1/corpus/python/base_class_of_constructed_class/main.py +16 -0
  579. deadtrace-0.1.0a1/corpus/python/base_class_of_constructed_class/pyproject.toml +9 -0
  580. deadtrace-0.1.0a1/corpus/python/base_initializer_called_through_super/CASE.md +8 -0
  581. deadtrace-0.1.0a1/corpus/python/base_initializer_called_through_super/CASE.toml +33 -0
  582. deadtrace-0.1.0a1/corpus/python/base_initializer_called_through_super/main.py +16 -0
  583. deadtrace-0.1.0a1/corpus/python/base_initializer_called_through_super/pyproject.toml +9 -0
  584. deadtrace-0.1.0a1/corpus/python/branch_assigned_field/CASE.md +15 -0
  585. deadtrace-0.1.0a1/corpus/python/branch_assigned_field/CASE.toml +57 -0
  586. deadtrace-0.1.0a1/corpus/python/branch_assigned_field/_tool.py +127 -0
  587. deadtrace-0.1.0a1/corpus/python/branch_defined_callback/CASE.md +6 -0
  588. deadtrace-0.1.0a1/corpus/python/branch_defined_callback/CASE.toml +21 -0
  589. deadtrace-0.1.0a1/corpus/python/branch_defined_callback/_tool.py +28 -0
  590. deadtrace-0.1.0a1/corpus/python/branch_receiver_flow/CASE.md +10 -0
  591. deadtrace-0.1.0a1/corpus/python/branch_receiver_flow/CASE.toml +25 -0
  592. deadtrace-0.1.0a1/corpus/python/branch_receiver_flow/_tool.py +25 -0
  593. deadtrace-0.1.0a1/corpus/python/branch_receiver_flow/pyproject.toml +4 -0
  594. deadtrace-0.1.0a1/corpus/python/callable_passed_to_project_function/CASE.md +10 -0
  595. deadtrace-0.1.0a1/corpus/python/callable_passed_to_project_function/CASE.toml +21 -0
  596. deadtrace-0.1.0a1/corpus/python/callable_passed_to_project_function/pyproject.toml +9 -0
  597. deadtrace-0.1.0a1/corpus/python/callable_passed_to_project_function/target.py +13 -0
  598. deadtrace-0.1.0a1/corpus/python/class_attribute_read/CASE.md +4 -0
  599. deadtrace-0.1.0a1/corpus/python/class_attribute_read/CASE.toml +33 -0
  600. deadtrace-0.1.0a1/corpus/python/class_attribute_read/_tool.py +23 -0
  601. deadtrace-0.1.0a1/corpus/python/class_creation_hooks/CASE.md +9 -0
  602. deadtrace-0.1.0a1/corpus/python/class_creation_hooks/CASE.toml +27 -0
  603. deadtrace-0.1.0a1/corpus/python/class_creation_hooks/_plugins.py +9 -0
  604. deadtrace-0.1.0a1/corpus/python/class_creation_hooks/_registry.py +7 -0
  605. deadtrace-0.1.0a1/corpus/python/class_creation_hooks/_tool.py +12 -0
  606. deadtrace-0.1.0a1/corpus/python/class_from_computed_base/CASE.md +8 -0
  607. deadtrace-0.1.0a1/corpus/python/class_from_computed_base/CASE.toml +33 -0
  608. deadtrace-0.1.0a1/corpus/python/class_from_computed_base/_lib.py +12 -0
  609. deadtrace-0.1.0a1/corpus/python/class_from_computed_base/_tool.py +28 -0
  610. deadtrace-0.1.0a1/corpus/python/class_of_called_static_method/CASE.md +8 -0
  611. deadtrace-0.1.0a1/corpus/python/class_of_called_static_method/CASE.toml +27 -0
  612. deadtrace-0.1.0a1/corpus/python/class_of_called_static_method/main.py +12 -0
  613. deadtrace-0.1.0a1/corpus/python/class_of_called_static_method/pyproject.toml +9 -0
  614. deadtrace-0.1.0a1/corpus/python/class_passed_to_external_code/CASE.md +10 -0
  615. deadtrace-0.1.0a1/corpus/python/class_passed_to_external_code/CASE.toml +21 -0
  616. deadtrace-0.1.0a1/corpus/python/class_passed_to_external_code/main.py +24 -0
  617. deadtrace-0.1.0a1/corpus/python/class_passed_to_external_code/pyproject.toml +9 -0
  618. deadtrace-0.1.0a1/corpus/python/class_used_only_in_annotations/CASE.md +9 -0
  619. deadtrace-0.1.0a1/corpus/python/class_used_only_in_annotations/CASE.toml +27 -0
  620. deadtrace-0.1.0a1/corpus/python/class_used_only_in_annotations/main.py +14 -0
  621. deadtrace-0.1.0a1/corpus/python/class_used_only_in_annotations/pyproject.toml +9 -0
  622. deadtrace-0.1.0a1/corpus/python/conditional_base_definition/CASE.md +4 -0
  623. deadtrace-0.1.0a1/corpus/python/conditional_base_definition/CASE.toml +29 -0
  624. deadtrace-0.1.0a1/corpus/python/conditional_base_definition/_tool.py +27 -0
  625. deadtrace-0.1.0a1/corpus/python/container_holds_instances/CASE.md +6 -0
  626. deadtrace-0.1.0a1/corpus/python/container_holds_instances/CASE.toml +33 -0
  627. deadtrace-0.1.0a1/corpus/python/container_holds_instances/_tool.py +42 -0
  628. deadtrace-0.1.0a1/corpus/python/dataclass_post_init/CASE.md +8 -0
  629. deadtrace-0.1.0a1/corpus/python/dataclass_post_init/CASE.toml +27 -0
  630. deadtrace-0.1.0a1/corpus/python/dataclass_post_init/main.py +17 -0
  631. deadtrace-0.1.0a1/corpus/python/dataclass_post_init/pyproject.toml +9 -0
  632. deadtrace-0.1.0a1/corpus/python/definition_or_import_fallback/CASE.md +6 -0
  633. deadtrace-0.1.0a1/corpus/python/definition_or_import_fallback/CASE.toml +21 -0
  634. deadtrace-0.1.0a1/corpus/python/definition_or_import_fallback/_tool.py +21 -0
  635. deadtrace-0.1.0a1/corpus/python/deserialized_receiver/CASE.md +10 -0
  636. deadtrace-0.1.0a1/corpus/python/deserialized_receiver/CASE.toml +21 -0
  637. deadtrace-0.1.0a1/corpus/python/deserialized_receiver/_api.py +14 -0
  638. deadtrace-0.1.0a1/corpus/python/deserialized_receiver/_jobs.py +3 -0
  639. deadtrace-0.1.0a1/corpus/python/enum_member_attribute_chain/CASE.md +8 -0
  640. deadtrace-0.1.0a1/corpus/python/enum_member_attribute_chain/CASE.toml +27 -0
  641. deadtrace-0.1.0a1/corpus/python/enum_member_attribute_chain/_tool.py +25 -0
  642. deadtrace-0.1.0a1/corpus/python/external_base_class_hooks/CASE.md +10 -0
  643. deadtrace-0.1.0a1/corpus/python/external_base_class_hooks/CASE.toml +33 -0
  644. deadtrace-0.1.0a1/corpus/python/external_base_class_hooks/main.py +33 -0
  645. deadtrace-0.1.0a1/corpus/python/external_base_class_hooks/pyproject.toml +9 -0
  646. deadtrace-0.1.0a1/corpus/python/external_reflection_call/CASE.md +10 -0
  647. deadtrace-0.1.0a1/corpus/python/external_reflection_call/CASE.toml +27 -0
  648. deadtrace-0.1.0a1/corpus/python/external_reflection_call/_tool.py +24 -0
  649. deadtrace-0.1.0a1/corpus/python/external_reflection_call/pyproject.toml +4 -0
  650. deadtrace-0.1.0a1/corpus/python/external_reflection_value/CASE.md +7 -0
  651. deadtrace-0.1.0a1/corpus/python/external_reflection_value/CASE.toml +21 -0
  652. deadtrace-0.1.0a1/corpus/python/external_reflection_value/_tool.py +15 -0
  653. deadtrace-0.1.0a1/corpus/python/external_reflection_value/pyproject.toml +4 -0
  654. deadtrace-0.1.0a1/corpus/python/finite_dispatch_names/CASE.md +9 -0
  655. deadtrace-0.1.0a1/corpus/python/finite_dispatch_names/CASE.toml +39 -0
  656. deadtrace-0.1.0a1/corpus/python/finite_dispatch_names/_tool.py +30 -0
  657. deadtrace-0.1.0a1/corpus/python/finite_dispatch_names/pyproject.toml +4 -0
  658. deadtrace-0.1.0a1/corpus/python/fixture_requested_by_name/CASE.md +6 -0
  659. deadtrace-0.1.0a1/corpus/python/fixture_requested_by_name/CASE.toml +21 -0
  660. deadtrace-0.1.0a1/corpus/python/fixture_requested_by_name/pkg/__init__.py +0 -0
  661. deadtrace-0.1.0a1/corpus/python/fixture_requested_by_name/pkg/plugin.py +15 -0
  662. deadtrace-0.1.0a1/corpus/python/function_level_import/CASE.md +10 -0
  663. deadtrace-0.1.0a1/corpus/python/function_level_import/CASE.toml +45 -0
  664. deadtrace-0.1.0a1/corpus/python/function_level_import/main.py +13 -0
  665. deadtrace-0.1.0a1/corpus/python/function_level_import/pyproject.toml +9 -0
  666. deadtrace-0.1.0a1/corpus/python/function_level_import/reports.py +2 -0
  667. deadtrace-0.1.0a1/corpus/python/function_level_import/tasks.py +17 -0
  668. deadtrace-0.1.0a1/corpus/python/function_reference_in_registry/CASE.md +11 -0
  669. deadtrace-0.1.0a1/corpus/python/function_reference_in_registry/CASE.toml +33 -0
  670. deadtrace-0.1.0a1/corpus/python/function_reference_in_registry/main.py +21 -0
  671. deadtrace-0.1.0a1/corpus/python/function_reference_in_registry/pyproject.toml +9 -0
  672. deadtrace-0.1.0a1/corpus/python/generic_class_in_annotation/CASE.md +6 -0
  673. deadtrace-0.1.0a1/corpus/python/generic_class_in_annotation/CASE.toml +27 -0
  674. deadtrace-0.1.0a1/corpus/python/generic_class_in_annotation/_tool.py +25 -0
  675. deadtrace-0.1.0a1/corpus/python/getattr_method_by_name/CASE.md +11 -0
  676. deadtrace-0.1.0a1/corpus/python/getattr_method_by_name/CASE.toml +27 -0
  677. deadtrace-0.1.0a1/corpus/python/getattr_method_by_name/_tool.py +35 -0
  678. deadtrace-0.1.0a1/corpus/python/getattr_prefix_dispatch/CASE.md +5 -0
  679. deadtrace-0.1.0a1/corpus/python/getattr_prefix_dispatch/CASE.toml +21 -0
  680. deadtrace-0.1.0a1/corpus/python/getattr_prefix_dispatch/_tool.py +21 -0
  681. deadtrace-0.1.0a1/corpus/python/globals_lookup_by_name/CASE.md +7 -0
  682. deadtrace-0.1.0a1/corpus/python/globals_lookup_by_name/CASE.toml +33 -0
  683. deadtrace-0.1.0a1/corpus/python/globals_lookup_by_name/_tool.py +25 -0
  684. deadtrace-0.1.0a1/corpus/python/implicit_dunder_methods/CASE.md +8 -0
  685. deadtrace-0.1.0a1/corpus/python/implicit_dunder_methods/CASE.toml +33 -0
  686. deadtrace-0.1.0a1/corpus/python/implicit_dunder_methods/main.py +20 -0
  687. deadtrace-0.1.0a1/corpus/python/implicit_dunder_methods/pyproject.toml +9 -0
  688. deadtrace-0.1.0a1/corpus/python/implicit_hooks/CASE.md +6 -0
  689. deadtrace-0.1.0a1/corpus/python/implicit_hooks/CASE.toml +57 -0
  690. deadtrace-0.1.0a1/corpus/python/implicit_hooks/main.py +41 -0
  691. deadtrace-0.1.0a1/corpus/python/implicit_hooks/pyproject.toml +7 -0
  692. deadtrace-0.1.0a1/corpus/python/inspection_classinfo_tuple/CASE.md +9 -0
  693. deadtrace-0.1.0a1/corpus/python/inspection_classinfo_tuple/CASE.toml +21 -0
  694. deadtrace-0.1.0a1/corpus/python/inspection_classinfo_tuple/_tool.py +16 -0
  695. deadtrace-0.1.0a1/corpus/python/inspection_classinfo_tuple/pyproject.toml +4 -0
  696. deadtrace-0.1.0a1/corpus/python/instance_passed_to_library/CASE.md +8 -0
  697. deadtrace-0.1.0a1/corpus/python/instance_passed_to_library/CASE.toml +21 -0
  698. deadtrace-0.1.0a1/corpus/python/instance_passed_to_library/_tool.py +29 -0
  699. deadtrace-0.1.0a1/corpus/python/ipython_display_hooks/CASE.md +9 -0
  700. deadtrace-0.1.0a1/corpus/python/ipython_display_hooks/CASE.toml +27 -0
  701. deadtrace-0.1.0a1/corpus/python/ipython_display_hooks/main.py +13 -0
  702. deadtrace-0.1.0a1/corpus/python/ipython_display_hooks/pyproject.toml +9 -0
  703. deadtrace-0.1.0a1/corpus/python/lazy_export_relative_strings/CASE.md +5 -0
  704. deadtrace-0.1.0a1/corpus/python/lazy_export_relative_strings/CASE.toml +29 -0
  705. deadtrace-0.1.0a1/corpus/python/lazy_export_relative_strings/_lazy/__init__.py +1 -0
  706. deadtrace-0.1.0a1/corpus/python/lazy_export_relative_strings/_lazy/_impl/__init__.py +0 -0
  707. deadtrace-0.1.0a1/corpus/python/lazy_export_relative_strings/_lazy/_impl/tools.py +11 -0
  708. deadtrace-0.1.0a1/corpus/python/lazy_export_relative_strings/_tool.py +13 -0
  709. deadtrace-0.1.0a1/corpus/python/library_public_api/CASE.md +12 -0
  710. deadtrace-0.1.0a1/corpus/python/library_public_api/CASE.toml +75 -0
  711. deadtrace-0.1.0a1/corpus/python/library_public_api/pyproject.toml +3 -0
  712. deadtrace-0.1.0a1/corpus/python/library_public_api/textkit/__init__.py +4 -0
  713. deadtrace-0.1.0a1/corpus/python/library_public_api/textkit/_impl.py +14 -0
  714. deadtrace-0.1.0a1/corpus/python/library_public_api/textkit/models.py +9 -0
  715. deadtrace-0.1.0a1/corpus/python/library_public_api/textkit/utils.py +18 -0
  716. deadtrace-0.1.0a1/corpus/python/library_public_override/CASE.md +9 -0
  717. deadtrace-0.1.0a1/corpus/python/library_public_override/CASE.toml +39 -0
  718. deadtrace-0.1.0a1/corpus/python/library_public_override/pkg/__init__.py +3 -0
  719. deadtrace-0.1.0a1/corpus/python/library_public_override/pkg/_api.py +15 -0
  720. deadtrace-0.1.0a1/corpus/python/library_public_override/pkg/_impl.py +20 -0
  721. deadtrace-0.1.0a1/corpus/python/loaded_module_submodule_import/CASE.md +13 -0
  722. deadtrace-0.1.0a1/corpus/python/loaded_module_submodule_import/CASE.toml +27 -0
  723. deadtrace-0.1.0a1/corpus/python/loaded_module_submodule_import/_legacy/__init__.py +0 -0
  724. deadtrace-0.1.0a1/corpus/python/loaded_module_submodule_import/_legacy/tables.py +5 -0
  725. deadtrace-0.1.0a1/corpus/python/loaded_module_submodule_import/_plugins/_shop/tables.py +5 -0
  726. deadtrace-0.1.0a1/corpus/python/loaded_module_submodule_import/_shop/__init__.py +2 -0
  727. deadtrace-0.1.0a1/corpus/python/loaded_module_submodule_import/_shop/tables.py +5 -0
  728. deadtrace-0.1.0a1/corpus/python/loaded_module_submodule_import/_tool.py +18 -0
  729. deadtrace-0.1.0a1/corpus/python/loop_receiver_flow/CASE.md +10 -0
  730. deadtrace-0.1.0a1/corpus/python/loop_receiver_flow/CASE.toml +25 -0
  731. deadtrace-0.1.0a1/corpus/python/loop_receiver_flow/_tool.py +23 -0
  732. deadtrace-0.1.0a1/corpus/python/loop_receiver_flow/pyproject.toml +4 -0
  733. deadtrace-0.1.0a1/corpus/python/method_on_unannotated_factory_result/CASE.md +9 -0
  734. deadtrace-0.1.0a1/corpus/python/method_on_unannotated_factory_result/CASE.toml +33 -0
  735. deadtrace-0.1.0a1/corpus/python/method_on_unannotated_factory_result/main.py +16 -0
  736. deadtrace-0.1.0a1/corpus/python/method_on_unannotated_factory_result/pyproject.toml +9 -0
  737. deadtrace-0.1.0a1/corpus/python/mixin_calls_subclass_method/CASE.md +7 -0
  738. deadtrace-0.1.0a1/corpus/python/mixin_calls_subclass_method/CASE.toml +33 -0
  739. deadtrace-0.1.0a1/corpus/python/mixin_calls_subclass_method/_tool.py +28 -0
  740. deadtrace-0.1.0a1/corpus/python/module_getattr_hook/CASE.md +6 -0
  741. deadtrace-0.1.0a1/corpus/python/module_getattr_hook/CASE.toml +27 -0
  742. deadtrace-0.1.0a1/corpus/python/module_getattr_hook/_compat.py +16 -0
  743. deadtrace-0.1.0a1/corpus/python/module_getattr_hook/_tool.py +4 -0
  744. deadtrace-0.1.0a1/corpus/python/module_imported_by_name/CASE.md +10 -0
  745. deadtrace-0.1.0a1/corpus/python/module_imported_by_name/CASE.toml +33 -0
  746. deadtrace-0.1.0a1/corpus/python/module_imported_by_name/main.py +14 -0
  747. deadtrace-0.1.0a1/corpus/python/module_imported_by_name/plugins/__init__.py +0 -0
  748. deadtrace-0.1.0a1/corpus/python/module_imported_by_name/plugins/alpha.py +5 -0
  749. deadtrace-0.1.0a1/corpus/python/module_imported_by_name/plugins/beta.py +5 -0
  750. deadtrace-0.1.0a1/corpus/python/module_imported_by_name/pyproject.toml +9 -0
  751. deadtrace-0.1.0a1/corpus/python/module_imported_by_name/tools/__init__.py +0 -0
  752. deadtrace-0.1.0a1/corpus/python/module_imported_by_name/tools/unused.py +2 -0
  753. deadtrace-0.1.0a1/corpus/python/module_imported_for_a_value/CASE.md +9 -0
  754. deadtrace-0.1.0a1/corpus/python/module_imported_for_a_value/CASE.toml +27 -0
  755. deadtrace-0.1.0a1/corpus/python/module_imported_for_a_value/config.py +9 -0
  756. deadtrace-0.1.0a1/corpus/python/module_imported_for_a_value/main.py +9 -0
  757. deadtrace-0.1.0a1/corpus/python/module_imported_for_a_value/pyproject.toml +9 -0
  758. deadtrace-0.1.0a1/corpus/python/nested_function_in_one_branch/CASE.md +9 -0
  759. deadtrace-0.1.0a1/corpus/python/nested_function_in_one_branch/CASE.toml +21 -0
  760. deadtrace-0.1.0a1/corpus/python/nested_function_in_one_branch/main.py +16 -0
  761. deadtrace-0.1.0a1/corpus/python/nested_function_in_one_branch/pyproject.toml +9 -0
  762. deadtrace-0.1.0a1/corpus/python/nominal_external_reflection/CASE.md +7 -0
  763. deadtrace-0.1.0a1/corpus/python/nominal_external_reflection/CASE.toml +27 -0
  764. deadtrace-0.1.0a1/corpus/python/nominal_external_reflection/_tool.py +22 -0
  765. deadtrace-0.1.0a1/corpus/python/nominal_external_reflection/pyproject.toml +4 -0
  766. deadtrace-0.1.0a1/corpus/python/overload_signatures/CASE.md +11 -0
  767. deadtrace-0.1.0a1/corpus/python/overload_signatures/CASE.toml +27 -0
  768. deadtrace-0.1.0a1/corpus/python/overload_signatures/main.py +41 -0
  769. deadtrace-0.1.0a1/corpus/python/overload_signatures/pyproject.toml +9 -0
  770. deadtrace-0.1.0a1/corpus/python/override_called_through_base_annotation/CASE.md +9 -0
  771. deadtrace-0.1.0a1/corpus/python/override_called_through_base_annotation/CASE.toml +39 -0
  772. deadtrace-0.1.0a1/corpus/python/override_called_through_base_annotation/main.py +21 -0
  773. deadtrace-0.1.0a1/corpus/python/override_called_through_base_annotation/pyproject.toml +9 -0
  774. deadtrace-0.1.0a1/corpus/python/override_reached_by_reference/CASE.md +8 -0
  775. deadtrace-0.1.0a1/corpus/python/override_reached_by_reference/CASE.toml +33 -0
  776. deadtrace-0.1.0a1/corpus/python/override_reached_by_reference/_tool.py +46 -0
  777. deadtrace-0.1.0a1/corpus/python/package_reexport/CASE.md +10 -0
  778. deadtrace-0.1.0a1/corpus/python/package_reexport/CASE.toml +33 -0
  779. deadtrace-0.1.0a1/corpus/python/package_reexport/main.py +8 -0
  780. deadtrace-0.1.0a1/corpus/python/package_reexport/pkg/__init__.py +4 -0
  781. deadtrace-0.1.0a1/corpus/python/package_reexport/pkg/_impl.py +11 -0
  782. deadtrace-0.1.0a1/corpus/python/package_reexport/pyproject.toml +9 -0
  783. deadtrace-0.1.0a1/corpus/python/project_decorator_without_call/CASE.md +9 -0
  784. deadtrace-0.1.0a1/corpus/python/project_decorator_without_call/CASE.toml +33 -0
  785. deadtrace-0.1.0a1/corpus/python/project_decorator_without_call/main.py +22 -0
  786. deadtrace-0.1.0a1/corpus/python/project_decorator_without_call/pyproject.toml +9 -0
  787. deadtrace-0.1.0a1/corpus/python/property_from_locals/CASE.md +6 -0
  788. deadtrace-0.1.0a1/corpus/python/property_from_locals/CASE.toml +27 -0
  789. deadtrace-0.1.0a1/corpus/python/property_from_locals/_tool.py +23 -0
  790. deadtrace-0.1.0a1/corpus/python/public_object_fields/CASE.md +9 -0
  791. deadtrace-0.1.0a1/corpus/python/public_object_fields/CASE.toml +21 -0
  792. deadtrace-0.1.0a1/corpus/python/public_object_fields/pkg/__init__.py +1 -0
  793. deadtrace-0.1.0a1/corpus/python/public_object_fields/pkg/_api.py +6 -0
  794. deadtrace-0.1.0a1/corpus/python/public_object_fields/pkg/_objects.py +11 -0
  795. deadtrace-0.1.0a1/corpus/python/public_object_fields/pyproject.toml +1 -0
  796. deadtrace-0.1.0a1/corpus/python/public_return_api/CASE.md +6 -0
  797. deadtrace-0.1.0a1/corpus/python/public_return_api/CASE.toml +21 -0
  798. deadtrace-0.1.0a1/corpus/python/public_return_api/pkg/__init__.py +1 -0
  799. deadtrace-0.1.0a1/corpus/python/public_return_api/pkg/_api.py +5 -0
  800. deadtrace-0.1.0a1/corpus/python/public_return_api/pkg/_objects.py +6 -0
  801. deadtrace-0.1.0a1/corpus/python/public_return_api/pyproject.toml +1 -0
  802. deadtrace-0.1.0a1/corpus/python/pydantic_config_class/CASE.md +7 -0
  803. deadtrace-0.1.0a1/corpus/python/pydantic_config_class/CASE.toml +27 -0
  804. deadtrace-0.1.0a1/corpus/python/pydantic_config_class/_tool.py +21 -0
  805. deadtrace-0.1.0a1/corpus/python/quoted_annotation_classes/CASE.md +7 -0
  806. deadtrace-0.1.0a1/corpus/python/quoted_annotation_classes/CASE.toml +39 -0
  807. deadtrace-0.1.0a1/corpus/python/quoted_annotation_classes/_tool.py +34 -0
  808. deadtrace-0.1.0a1/corpus/python/reexport_from_absent_module/CASE.md +6 -0
  809. deadtrace-0.1.0a1/corpus/python/reexport_from_absent_module/CASE.toml +39 -0
  810. deadtrace-0.1.0a1/corpus/python/reexport_from_absent_module/md/__init__.py +10 -0
  811. deadtrace-0.1.0a1/corpus/python/reexport_from_absent_module/md/_compat.py +3 -0
  812. deadtrace-0.1.0a1/corpus/python/reexport_from_absent_module/md/_impl.py +14 -0
  813. deadtrace-0.1.0a1/corpus/python/reexport_through_conditional_import/CASE.md +5 -0
  814. deadtrace-0.1.0a1/corpus/python/reexport_through_conditional_import/CASE.toml +21 -0
  815. deadtrace-0.1.0a1/corpus/python/reexport_through_conditional_import/_inet.py +2 -0
  816. deadtrace-0.1.0a1/corpus/python/reexport_through_conditional_import/_tool.py +13 -0
  817. deadtrace-0.1.0a1/corpus/python/reexport_through_conditional_import/_util.py +8 -0
  818. deadtrace-0.1.0a1/corpus/python/reflected_reexport/CASE.md +7 -0
  819. deadtrace-0.1.0a1/corpus/python/reflected_reexport/CASE.toml +21 -0
  820. deadtrace-0.1.0a1/corpus/python/reflected_reexport/api.py +1 -0
  821. deadtrace-0.1.0a1/corpus/python/reflected_reexport/main.py +6 -0
  822. deadtrace-0.1.0a1/corpus/python/reflected_reexport/pyproject.toml +4 -0
  823. deadtrace-0.1.0a1/corpus/python/reflected_reexport/worker.py +6 -0
  824. deadtrace-0.1.0a1/corpus/python/reserved_module_names/CASE.md +5 -0
  825. deadtrace-0.1.0a1/corpus/python/reserved_module_names/CASE.toml +21 -0
  826. deadtrace-0.1.0a1/corpus/python/reserved_module_names/_tool.py +14 -0
  827. deadtrace-0.1.0a1/corpus/python/returned_function_reference/CASE.md +8 -0
  828. deadtrace-0.1.0a1/corpus/python/returned_function_reference/CASE.toml +27 -0
  829. deadtrace-0.1.0a1/corpus/python/returned_function_reference/main.py +15 -0
  830. deadtrace-0.1.0a1/corpus/python/returned_function_reference/pyproject.toml +9 -0
  831. deadtrace-0.1.0a1/corpus/python/script_in_tests_directory/CASE.md +6 -0
  832. deadtrace-0.1.0a1/corpus/python/script_in_tests_directory/CASE.toml +27 -0
  833. deadtrace-0.1.0a1/corpus/python/script_in_tests_directory/tests/fuzz.py +14 -0
  834. deadtrace-0.1.0a1/corpus/python/script_in_tests_directory/tests/test_basic.py +2 -0
  835. deadtrace-0.1.0a1/corpus/python/script_run_by_file_name/CASE.md +4 -0
  836. deadtrace-0.1.0a1/corpus/python/script_run_by_file_name/CASE.toml +27 -0
  837. deadtrace-0.1.0a1/corpus/python/script_run_by_file_name/_tool.py +14 -0
  838. deadtrace-0.1.0a1/corpus/python/script_run_by_file_name/_worker.py +9 -0
  839. deadtrace-0.1.0a1/corpus/python/scripts_and_main_modules/CASE.md +9 -0
  840. deadtrace-0.1.0a1/corpus/python/scripts_and_main_modules/CASE.toml +43 -0
  841. deadtrace-0.1.0a1/corpus/python/scripts_and_main_modules/_formatting.py +18 -0
  842. deadtrace-0.1.0a1/corpus/python/scripts_and_main_modules/_maintenance/__init__.py +0 -0
  843. deadtrace-0.1.0a1/corpus/python/scripts_and_main_modules/_maintenance/__main__.py +3 -0
  844. deadtrace-0.1.0a1/corpus/python/scripts_and_main_modules/_maintenance/cleanup.py +4 -0
  845. deadtrace-0.1.0a1/corpus/python/scripts_and_main_modules/pyproject.toml +3 -0
  846. deadtrace-0.1.0a1/corpus/python/scripts_and_main_modules/report.py +9 -0
  847. deadtrace-0.1.0a1/corpus/python/scripts_and_main_modules/tests/test_report.py +9 -0
  848. deadtrace-0.1.0a1/corpus/python/stand_in_for_provided_member/CASE.md +6 -0
  849. deadtrace-0.1.0a1/corpus/python/stand_in_for_provided_member/CASE.toml +21 -0
  850. deadtrace-0.1.0a1/corpus/python/stand_in_for_provided_member/_service.py +14 -0
  851. deadtrace-0.1.0a1/corpus/python/stand_in_for_provided_member/tests/test_service.py +13 -0
  852. deadtrace-0.1.0a1/corpus/python/star_import/CASE.md +9 -0
  853. deadtrace-0.1.0a1/corpus/python/star_import/CASE.toml +27 -0
  854. deadtrace-0.1.0a1/corpus/python/star_import/helpers.py +10 -0
  855. deadtrace-0.1.0a1/corpus/python/star_import/main.py +5 -0
  856. deadtrace-0.1.0a1/corpus/python/star_import/pyproject.toml +9 -0
  857. deadtrace-0.1.0a1/corpus/python/stored_literal_reflection/CASE.md +7 -0
  858. deadtrace-0.1.0a1/corpus/python/stored_literal_reflection/CASE.toml +21 -0
  859. deadtrace-0.1.0a1/corpus/python/stored_literal_reflection/_tool.py +12 -0
  860. deadtrace-0.1.0a1/corpus/python/stored_literal_reflection/pyproject.toml +4 -0
  861. deadtrace-0.1.0a1/corpus/python/submodule_and_package_imports/CASE.md +11 -0
  862. deadtrace-0.1.0a1/corpus/python/submodule_and_package_imports/CASE.toml +27 -0
  863. deadtrace-0.1.0a1/corpus/python/submodule_and_package_imports/jobs/__init__.py +5 -0
  864. deadtrace-0.1.0a1/corpus/python/submodule_and_package_imports/jobs/cli.py +4 -0
  865. deadtrace-0.1.0a1/corpus/python/submodule_and_package_imports/jobs/nightly.py +12 -0
  866. deadtrace-0.1.0a1/corpus/python/submodule_and_package_imports/pyproject.toml +9 -0
  867. deadtrace-0.1.0a1/corpus/python/union_annotated_receiver/CASE.md +8 -0
  868. deadtrace-0.1.0a1/corpus/python/union_annotated_receiver/CASE.toml +21 -0
  869. deadtrace-0.1.0a1/corpus/python/union_annotated_receiver/_tool.py +24 -0
  870. deadtrace-0.1.0a1/corpus/python/unknown_receiver_needs_module/CASE.md +11 -0
  871. deadtrace-0.1.0a1/corpus/python/unknown_receiver_needs_module/CASE.toml +21 -0
  872. deadtrace-0.1.0a1/corpus/python/unknown_receiver_needs_module/_handles.py +3 -0
  873. deadtrace-0.1.0a1/corpus/python/unknown_receiver_needs_module/_legacy.py +3 -0
  874. deadtrace-0.1.0a1/corpus/python/unknown_receiver_needs_module/_tool.py +9 -0
  875. deadtrace-0.1.0a1/corpus/reference/fastapi_dishka_basic/CASE.md +12 -0
  876. deadtrace-0.1.0a1/corpus/reference/fastapi_dishka_basic/CASE.toml +33 -0
  877. deadtrace-0.1.0a1/corpus/reference/fastapi_dishka_basic/app/__init__.py +1 -0
  878. deadtrace-0.1.0a1/corpus/reference/fastapi_dishka_basic/app/domain.py +28 -0
  879. deadtrace-0.1.0a1/corpus/reference/fastapi_dishka_basic/app/main.py +12 -0
  880. deadtrace-0.1.0a1/corpus/reference/fastapi_dishka_basic/app/providers.py +20 -0
  881. deadtrace-0.1.0a1/corpus/reference/fastapi_dishka_basic/app/routes.py +12 -0
  882. deadtrace-0.1.0a1/corpus/reference/fastapi_dishka_basic/pyproject.toml +17 -0
  883. deadtrace-0.1.0a1/docs/adr/0001-decision-records-in-repository.md +58 -0
  884. deadtrace-0.1.0a1/docs/adr/0002-allow-rich-15.md +56 -0
  885. deadtrace-0.1.0a1/docs/adr/0003-pipeline-stage-instrumentation.md +59 -0
  886. deadtrace-0.1.0a1/docs/adr/0004-single-parse-per-module.md +48 -0
  887. deadtrace-0.1.0a1/docs/adr/0005-indexed-symbol-lookups.md +61 -0
  888. deadtrace-0.1.0a1/docs/adr/0006-known-violation-cases.md +54 -0
  889. deadtrace-0.1.0a1/docs/adr/0007-stdlib-ast-frontend.md +68 -0
  890. deadtrace-0.1.0a1/docs/adr/0008-python-core-soundness.md +82 -0
  891. deadtrace-0.1.0a1/docs/adr/0009-implicit-dispatch-and-names.md +57 -0
  892. deadtrace-0.1.0a1/docs/adr/0010-module-execution.md +62 -0
  893. deadtrace-0.1.0a1/docs/adr/0011-automatic-worlds.md +76 -0
  894. deadtrace-0.1.0a1/docs/adr/0012-library-hooks-and-escaped-classes.md +54 -0
  895. deadtrace-0.1.0a1/docs/adr/0013-django-installed-apps.md +59 -0
  896. deadtrace-0.1.0a1/docs/adr/0014-declarative-world-frameworks.md +32 -0
  897. deadtrace-0.1.0a1/docs/adr/0015-source-discovery-and-import-roots.md +56 -0
  898. deadtrace-0.1.0a1/docs/adr/0016-world-local-pytest-facts.md +64 -0
  899. deadtrace-0.1.0a1/docs/adr/0017-conventions-found-by-the-field-audit.md +71 -0
  900. deadtrace-0.1.0a1/docs/adr/0018-second-field-audit.md +72 -0
  901. deadtrace-0.1.0a1/docs/adr/0019-third-field-audit.md +58 -0
  902. deadtrace-0.1.0a1/docs/adr/0020-inherited-members-through-subclasses.md +30 -0
  903. deadtrace-0.1.0a1/docs/adr/0021-comparable-reports-across-source-changes.md +94 -0
  904. deadtrace-0.1.0a1/docs/adr/0022-fifth-field-audit-monorepo-and-workers.md +141 -0
  905. deadtrace-0.1.0a1/docs/adr/0023-deployment-commands-as-roots.md +98 -0
  906. deadtrace-0.1.0a1/docs/adr/0024-tests-imported-into-test-modules.md +45 -0
  907. deadtrace-0.1.0a1/docs/adr/0025-library-and-test-conventions-from-installed-packages.md +89 -0
  908. deadtrace-0.1.0a1/docs/adr/0026-more-conventions-from-installed-packages.md +65 -0
  909. deadtrace-0.1.0a1/docs/adr/0027-recall-of-dead-methods.md +82 -0
  910. deadtrace-0.1.0a1/docs/adr/0028-conventions-from-more-installed-packages.md +88 -0
  911. deadtrace-0.1.0a1/docs/adr/0029-reexports-from-absent-modules-and-classes-in-annotations.md +54 -0
  912. deadtrace-0.1.0a1/docs/adr/0030-input-error-integrity.md +56 -0
  913. deadtrace-0.1.0a1/docs/adr/0031-bounded-artifact-parsing.md +36 -0
  914. deadtrace-0.1.0a1/docs/adr/0032-receiver-flow-violations.md +26 -0
  915. deadtrace-0.1.0a1/docs/adr/0033-receiver-control-flow.md +67 -0
  916. deadtrace-0.1.0a1/docs/adr/0034-finite-local-dispatch-names.md +50 -0
  917. deadtrace-0.1.0a1/docs/adr/0035-external-reflection-provenance.md +29 -0
  918. deadtrace-0.1.0a1/docs/adr/0036-localize-external-value-reflection.md +55 -0
  919. deadtrace-0.1.0a1/docs/adr/0037-standard-nominal-reflection-families.md +56 -0
  920. deadtrace-0.1.0a1/docs/adr/0038-stored-literal-reflection.md +24 -0
  921. deadtrace-0.1.0a1/docs/adr/0039-preserve-stored-literal-callables.md +33 -0
  922. deadtrace-0.1.0a1/docs/adr/0040-reflected-reexport-violation.md +16 -0
  923. deadtrace-0.1.0a1/docs/adr/0041-reflected-module-export-graph.md +32 -0
  924. deadtrace-0.1.0a1/docs/adr/0042-literal-classinfo-consumer-summary.md +43 -0
  925. deadtrace-0.1.0a1/docs/adr/0043-public-object-field-violation.md +22 -0
  926. deadtrace-0.1.0a1/docs/adr/0044-public-object-field-api-closure.md +40 -0
  927. deadtrace-0.1.0a1/docs/adr/0045-public-return-api-violation.md +10 -0
  928. deadtrace-0.1.0a1/docs/adr/0046-declared-public-return-api.md +24 -0
  929. deadtrace-0.1.0a1/docs/adr/0047-field-direct-guard-attribution.md +25 -0
  930. deadtrace-0.1.0a1/docs/adr/0048-object-setattr-store-summary.md +30 -0
  931. deadtrace-0.1.0a1/docs/adr/0049-public-alpha-release.md +41 -0
  932. deadtrace-0.1.0a1/docs/adr/README.md +122 -0
  933. deadtrace-0.1.0a1/docs/analysis-contract.md +29 -0
  934. deadtrace-0.1.0a1/docs/architecture.md +20 -0
  935. deadtrace-0.1.0a1/docs/audit-2026-10-01.md +100 -0
  936. deadtrace-0.1.0a1/docs/external-reflection-results-2026-10-05.md +96 -0
  937. deadtrace-0.1.0a1/docs/finite-names-results-2026-10-05.md +63 -0
  938. deadtrace-0.1.0a1/docs/inspection-consumer-results-2026-10-05.md +55 -0
  939. deadtrace-0.1.0a1/docs/methodology.md +169 -0
  940. deadtrace-0.1.0a1/docs/public-object-api-results-2026-10-05.md +36 -0
  941. deadtrace-0.1.0a1/docs/public-return-api-results-2026-10-05.md +70 -0
  942. deadtrace-0.1.0a1/docs/pydantic-recall-review-2026-10-05.md +77 -0
  943. deadtrace-0.1.0a1/docs/quality-research-2026-10-05.md +116 -0
  944. deadtrace-0.1.0a1/docs/receiver-flow-results-2026-10-05.md +67 -0
  945. deadtrace-0.1.0a1/docs/reflected-reexports-results-2026-10-05.md +65 -0
  946. deadtrace-0.1.0a1/docs/releasing.md +44 -0
  947. deadtrace-0.1.0a1/docs/stored-reflection-results-2026-10-05.md +34 -0
  948. deadtrace-0.1.0a1/docs/support-matrix.md +24 -0
  949. deadtrace-0.1.0a1/fixtures/cases/escaped-callback-helper/CASE.md +4 -0
  950. deadtrace-0.1.0a1/fixtures/cases/escaped-callback-helper/CASE.toml +15 -0
  951. deadtrace-0.1.0a1/fixtures/cases/escaped-callback-helper/target.py +13 -0
  952. deadtrace-0.1.0a1/fixtures/cases/hidden-caller/CASE.md +4 -0
  953. deadtrace-0.1.0a1/fixtures/cases/hidden-caller/CASE.toml +15 -0
  954. deadtrace-0.1.0a1/fixtures/cases/hidden-caller/hidden.py +5 -0
  955. deadtrace-0.1.0a1/fixtures/cases/hidden-caller/target.py +2 -0
  956. deadtrace-0.1.0a1/fixtures/cases/invalid-assembly/CASE.md +4 -0
  957. deadtrace-0.1.0a1/fixtures/cases/invalid-assembly/CASE.toml +15 -0
  958. deadtrace-0.1.0a1/fixtures/cases/invalid-assembly/target.py +6 -0
  959. deadtrace-0.1.0a1/fixtures/cases/legacy-shared-helper/CASE.md +4 -0
  960. deadtrace-0.1.0a1/fixtures/cases/legacy-shared-helper/CASE.toml +15 -0
  961. deadtrace-0.1.0a1/fixtures/cases/legacy-shared-helper/target.py +11 -0
  962. deadtrace-0.1.0a1/fixtures/cases/live-di-chain/CASE.md +6 -0
  963. deadtrace-0.1.0a1/fixtures/cases/live-di-chain/CASE.toml +15 -0
  964. deadtrace-0.1.0a1/fixtures/cases/live-di-chain/target.py +15 -0
  965. deadtrace-0.1.0a1/fixtures/cases/world-isolation/CASE.md +4 -0
  966. deadtrace-0.1.0a1/fixtures/cases/world-isolation/CASE.toml +15 -0
  967. deadtrace-0.1.0a1/fixtures/cases/world-isolation/target.py +16 -0
  968. deadtrace-0.1.0a1/fixtures/known-violations/README.md +22 -0
  969. deadtrace-0.1.0a1/fixtures/recall-gaps/object_setattr_store/CASE.md +9 -0
  970. deadtrace-0.1.0a1/fixtures/recall-gaps/object_setattr_store/CASE.toml +15 -0
  971. deadtrace-0.1.0a1/fixtures/recall-gaps/object_setattr_store/_tool.py +13 -0
  972. deadtrace-0.1.0a1/fixtures/recall-gaps/object_setattr_store/pyproject.toml +4 -0
  973. deadtrace-0.1.0a1/pyproject.toml +95 -0
  974. deadtrace-0.1.0a1/scripts/release_artifacts.py +92 -0
  975. deadtrace-0.1.0a1/scripts/wheel_smoke.py +117 -0
  976. deadtrace-0.1.0a1/src/deadtrace/__init__.py +10 -0
  977. deadtrace-0.1.0a1/src/deadtrace/__main__.py +6 -0
  978. deadtrace-0.1.0a1/src/deadtrace/analysis.py +223 -0
  979. deadtrace-0.1.0a1/src/deadtrace/artifacts.py +87 -0
  980. deadtrace-0.1.0a1/src/deadtrace/baseline.py +199 -0
  981. deadtrace-0.1.0a1/src/deadtrace/benchmark.py +249 -0
  982. deadtrace-0.1.0a1/src/deadtrace/case_validator.py +272 -0
  983. deadtrace-0.1.0a1/src/deadtrace/cli.py +421 -0
  984. deadtrace-0.1.0a1/src/deadtrace/comparison.py +379 -0
  985. deadtrace-0.1.0a1/src/deadtrace/config.py +210 -0
  986. deadtrace-0.1.0a1/src/deadtrace/core.py +569 -0
  987. deadtrace-0.1.0a1/src/deadtrace/deployment.py +323 -0
  988. deadtrace-0.1.0a1/src/deadtrace/diagnostics.py +102 -0
  989. deadtrace-0.1.0a1/src/deadtrace/entry_points.py +123 -0
  990. deadtrace-0.1.0a1/src/deadtrace/findings.py +388 -0
  991. deadtrace-0.1.0a1/src/deadtrace/frameworks.py +3578 -0
  992. deadtrace-0.1.0a1/src/deadtrace/inventory.py +181 -0
  993. deadtrace-0.1.0a1/src/deadtrace/model.py +87 -0
  994. deadtrace-0.1.0a1/src/deadtrace/nominal_types.py +87 -0
  995. deadtrace-0.1.0a1/src/deadtrace/pytest_semantics.py +1310 -0
  996. deadtrace-0.1.0a1/src/deadtrace/python_frontend.py +4702 -0
  997. deadtrace-0.1.0a1/src/deadtrace/receiver_flow.py +79 -0
  998. deadtrace-0.1.0a1/src/deadtrace/report.py +68 -0
  999. deadtrace-0.1.0a1/src/deadtrace/scanner.py +378 -0
  1000. deadtrace-0.1.0a1/src/deadtrace/semantic_report.py +513 -0
  1001. deadtrace-0.1.0a1/src/deadtrace/target_environment.py +192 -0
  1002. deadtrace-0.1.0a1/src/deadtrace/timing.py +98 -0
  1003. deadtrace-0.1.0a1/tests/conftest.py +10 -0
  1004. deadtrace-0.1.0a1/tests/oracle/test_fastapi_dishka_reference.py +46 -0
  1005. deadtrace-0.1.0a1/tests/test_analysis.py +334 -0
  1006. deadtrace-0.1.0a1/tests/test_auto_worlds.py +455 -0
  1007. deadtrace-0.1.0a1/tests/test_benchmark.py +134 -0
  1008. deadtrace-0.1.0a1/tests/test_bounded_inputs.py +200 -0
  1009. deadtrace-0.1.0a1/tests/test_budget_check.py +67 -0
  1010. deadtrace-0.1.0a1/tests/test_case_validator.py +156 -0
  1011. deadtrace-0.1.0a1/tests/test_cli.py +415 -0
  1012. deadtrace-0.1.0a1/tests/test_comparison.py +341 -0
  1013. deadtrace-0.1.0a1/tests/test_config.py +291 -0
  1014. deadtrace-0.1.0a1/tests/test_core.py +233 -0
  1015. deadtrace-0.1.0a1/tests/test_deployment.py +142 -0
  1016. deadtrace-0.1.0a1/tests/test_diagnostics.py +56 -0
  1017. deadtrace-0.1.0a1/tests/test_django.py +158 -0
  1018. deadtrace-0.1.0a1/tests/test_entry_points.py +130 -0
  1019. deadtrace-0.1.0a1/tests/test_frameworks.py +791 -0
  1020. deadtrace-0.1.0a1/tests/test_import_roots_and_dispatch.py +922 -0
  1021. deadtrace-0.1.0a1/tests/test_input_failures.py +155 -0
  1022. deadtrace-0.1.0a1/tests/test_inventory.py +222 -0
  1023. deadtrace-0.1.0a1/tests/test_known_violations.py +40 -0
  1024. deadtrace-0.1.0a1/tests/test_pytest_semantics.py +537 -0
  1025. deadtrace-0.1.0a1/tests/test_python_frontend.py +493 -0
  1026. deadtrace-0.1.0a1/tests/test_python_soundness.py +503 -0
  1027. deadtrace-0.1.0a1/tests/test_recall_gaps.py +19 -0
  1028. deadtrace-0.1.0a1/tests/test_receiver_flow.py +291 -0
  1029. deadtrace-0.1.0a1/tests/test_reference_corpus.py +24 -0
  1030. deadtrace-0.1.0a1/tests/test_release_artifacts.py +76 -0
  1031. deadtrace-0.1.0a1/tests/test_report.py +59 -0
  1032. deadtrace-0.1.0a1/tests/test_report_text.py +104 -0
  1033. deadtrace-0.1.0a1/tests/test_shared_parse.py +74 -0
  1034. deadtrace-0.1.0a1/tests/test_syntax_facts.py +163 -0
  1035. deadtrace-0.1.0a1/tests/test_target_environment.py +113 -0
  1036. deadtrace-0.1.0a1/tests/test_timing.py +59 -0
  1037. deadtrace-0.1.0a1/uv.lock +611 -0
@@ -0,0 +1,15 @@
1
+ root = true
2
+
3
+ [*]
4
+ charset = utf-8
5
+ end_of_line = lf
6
+ insert_final_newline = true
7
+ trim_trailing_whitespace = true
8
+
9
+ [*.py]
10
+ indent_style = space
11
+ indent_size = 4
12
+
13
+ [*.{md,yml,yaml,toml,json}]
14
+ indent_style = space
15
+ indent_size = 2
@@ -0,0 +1,4 @@
1
+ # Normalize every text file to LF in the repository and in each working tree.
2
+ # Ruff is configured with line-ending = "lf", so a Windows checkout made with
3
+ # core.autocrlf=true would otherwise fail `ruff format --check` on unmodified files.
4
+ * text=auto eol=lf
@@ -0,0 +1,29 @@
1
+ name: Bug report
2
+ description: Report incorrect behavior or a false positive/negative
3
+ title: "[bug] "
4
+ labels: ["bug"]
5
+ body:
6
+ - type: textarea
7
+ id: problem
8
+ attributes:
9
+ label: Problem
10
+ description: What happened, and what did you expect?
11
+ validations:
12
+ required: true
13
+ - type: textarea
14
+ id: reproduction
15
+ attributes:
16
+ label: Minimal reproduction
17
+ description: Include source, config, command, and report state. Remove secrets.
18
+ validations:
19
+ required: true
20
+ - type: input
21
+ id: version
22
+ attributes:
23
+ label: Deadtrace version or commit
24
+ validations:
25
+ required: true
26
+ - type: textarea
27
+ id: limitations
28
+ attributes:
29
+ label: Relevant framework and environment details
@@ -0,0 +1,32 @@
1
+ name: Design proposal
2
+ description: Propose a language, framework capability, schema, or architectural change
3
+ title: "[design] "
4
+ labels: ["needs-design"]
5
+ body:
6
+ - type: textarea
7
+ id: user_result
8
+ attributes:
9
+ label: User result
10
+ description: Which concrete decision becomes possible?
11
+ validations:
12
+ required: true
13
+ - type: textarea
14
+ id: case
15
+ attributes:
16
+ label: Real pattern and negative case
17
+ description: Show both the desired behavior and the unsafe false-positive boundary.
18
+ validations:
19
+ required: true
20
+ - type: textarea
21
+ id: evaluation
22
+ attributes:
23
+ label: Independent evaluation
24
+ description: How can the outcome be checked without trusting Deadtrace's own report?
25
+ validations:
26
+ required: true
27
+ - type: textarea
28
+ id: scope
29
+ attributes:
30
+ label: Scope and non-goals
31
+ validations:
32
+ required: true
@@ -0,0 +1,10 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "uv"
4
+ directory: "/"
5
+ schedule:
6
+ interval: "weekly"
7
+ - package-ecosystem: "github-actions"
8
+ directory: "/"
9
+ schedule:
10
+ interval: "weekly"
@@ -0,0 +1,11 @@
1
+ ## Summary
2
+
3
+ <!-- What user-visible problem does this solve, and why this approach? -->
4
+
5
+ ## Test plan
6
+
7
+ <!-- List the checks and cases actually run. -->
8
+
9
+ ## Analysis and compatibility impact
10
+
11
+ <!-- Roots/worlds/guards/gates, config/report schemas, limitations, or “none”. -->
@@ -0,0 +1,84 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ quality:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
16
+ - uses: astral-sh/setup-uv@94527f2e458b27549849d47d273a16bec83a01e9 # v7
17
+ with:
18
+ enable-cache: true
19
+ - run: uv python install 3.12
20
+ - run: uv sync --locked --all-groups
21
+ - run: uv run ruff check .
22
+ - run: uv run ruff format --check .
23
+ - run: uv run mypy
24
+ - run: uv run pytest --cov
25
+ - run: uv run deadtrace cases validate fixtures/cases
26
+ - run: uv run deadtrace cases validate corpus
27
+
28
+ tests:
29
+ strategy:
30
+ fail-fast: false
31
+ matrix:
32
+ os: [ubuntu-latest, windows-latest]
33
+ runs-on: ${{ matrix.os }}
34
+ steps:
35
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
36
+ - uses: astral-sh/setup-uv@94527f2e458b27549849d47d273a16bec83a01e9 # v7
37
+ with:
38
+ enable-cache: true
39
+ - run: uv python install 3.12
40
+ - run: uv sync --locked --all-groups
41
+ - run: uv run pytest
42
+
43
+ build:
44
+ runs-on: ubuntu-latest
45
+ steps:
46
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
47
+ - uses: astral-sh/setup-uv@94527f2e458b27549849d47d273a16bec83a01e9 # v7
48
+ - run: uv python install 3.12
49
+ - run: uv build --python 3.12
50
+ - name: Seal exact candidate distributions
51
+ env:
52
+ CANDIDATE_SHA: ${{ github.sha }}
53
+ run: uv run --isolated --no-project --python 3.12 python scripts/release_artifacts.py seal --sha "$CANDIDATE_SHA"
54
+ - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
55
+ with:
56
+ name: deadtrace-${{ github.sha }}-distributions
57
+ path: dist/*
58
+ if-no-files-found: error
59
+
60
+ wheel-smoke:
61
+ needs: build
62
+ strategy:
63
+ fail-fast: false
64
+ matrix:
65
+ os: [ubuntu-latest, windows-latest]
66
+ runs-on: ${{ matrix.os }}
67
+ steps:
68
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
69
+ - uses: astral-sh/setup-uv@94527f2e458b27549849d47d273a16bec83a01e9 # v7
70
+ - run: uv python install 3.12
71
+ - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
72
+ with:
73
+ name: deadtrace-${{ github.sha }}-distributions
74
+ path: dist
75
+ - name: Verify and smoke installed candidate
76
+ shell: bash
77
+ env:
78
+ CANDIDATE_SHA: ${{ github.sha }}
79
+ run: |
80
+ uv run --isolated --no-project --python 3.12 python scripts/release_artifacts.py verify --sha "$CANDIDATE_SHA"
81
+ workspace="$PWD"
82
+ wheel="$(find "$workspace/dist" -name '*.whl' -print -quit)"
83
+ cd "$(mktemp -d)"
84
+ uv run --isolated --no-project --python 3.12 --with "$wheel" python "$workspace/scripts/wheel_smoke.py"
@@ -0,0 +1,53 @@
1
+ name: Performance
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ lines:
7
+ description: Lines per generated fixture
8
+ default: "50000"
9
+ runs:
10
+ description: Benchmark runs per fixture
11
+ default: "3"
12
+
13
+ permissions:
14
+ contents: read
15
+
16
+ jobs:
17
+ budget:
18
+ strategy:
19
+ fail-fast: false
20
+ matrix:
21
+ os: [ubuntu-latest, windows-latest]
22
+ runs-on: ${{ matrix.os }}
23
+ steps:
24
+ - uses: actions/checkout@v7
25
+ - uses: astral-sh/setup-uv@v7
26
+ - run: uv python install 3.12
27
+ - run: uv build
28
+ - name: Generate fixtures outside the repository
29
+ shell: bash
30
+ run: |
31
+ work="$RUNNER_TEMP/deadtrace-performance"
32
+ uv run --isolated --no-project --python 3.12 python benchmarks/generate_scale_fixture.py \
33
+ "$work/scale" --lines "${{ inputs.lines }}"
34
+ uv run --isolated --no-project --python 3.12 python benchmarks/generate_service_fixture.py \
35
+ "$work/service" --lines "${{ inputs.lines }}"
36
+ - name: Benchmark from the built wheel
37
+ shell: bash
38
+ run: |
39
+ work="$RUNNER_TEMP/deadtrace-performance"
40
+ wheel="$(find "$GITHUB_WORKSPACE/dist" -name '*.whl' -print -quit)"
41
+ mkdir -p "$GITHUB_WORKSPACE/performance"
42
+ cd "$work"
43
+ for fixture in scale service; do
44
+ uv run --isolated --no-project --python 3.12 --with "$wheel" deadtrace benchmark \
45
+ "$work/$fixture" --runs "${{ inputs.runs }}" --format json \
46
+ --output "$GITHUB_WORKSPACE/performance/$fixture-${{ runner.os }}.json"
47
+ done
48
+ - uses: actions/upload-artifact@v7
49
+ with:
50
+ name: performance-${{ runner.os }}
51
+ path: performance/*.json
52
+ - name: Check the budget
53
+ run: uv run --isolated --no-project --python 3.12 python benchmarks/check_budget.py performance/scale-${{ runner.os }}.json performance/service-${{ runner.os }}.json
@@ -0,0 +1,94 @@
1
+ name: Publish verified alpha
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ tag:
7
+ description: Existing version tag on main (for example v0.1.0a1)
8
+ required: true
9
+ type: string
10
+ ci_run_id:
11
+ description: Successful main push CI run for the exact tagged commit
12
+ required: true
13
+ type: string
14
+
15
+ permissions:
16
+ contents: read
17
+ actions: read
18
+
19
+ concurrency:
20
+ group: publish-${{ inputs.tag }}
21
+ cancel-in-progress: false
22
+
23
+ jobs:
24
+ verify:
25
+ if: github.ref == 'refs/heads/main'
26
+ runs-on: ubuntu-latest
27
+ outputs:
28
+ sha: ${{ steps.candidate.outputs.sha }}
29
+ steps:
30
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
31
+ with:
32
+ ref: ${{ inputs.tag }}
33
+ fetch-depth: 0
34
+ - uses: astral-sh/setup-uv@94527f2e458b27549849d47d273a16bec83a01e9 # v7
35
+ - run: uv python install 3.12
36
+ - name: Verify tag and successful exact-commit CI
37
+ id: candidate
38
+ env:
39
+ GH_TOKEN: ${{ github.token }}
40
+ RELEASE_TAG: ${{ inputs.tag }}
41
+ CI_RUN_ID: ${{ inputs.ci_run_id }}
42
+ run: |
43
+ [[ "$RELEASE_TAG" =~ ^v[0-9]+\.[0-9]+\.[0-9]+(a|b|rc)?[0-9]*$ ]]
44
+ [[ "$CI_RUN_ID" =~ ^[0-9]+$ ]]
45
+ sha="$(git rev-parse HEAD)"
46
+ test "$(git rev-parse "refs/tags/$RELEASE_TAG^{commit}")" = "$sha"
47
+ git merge-base --is-ancestor "$sha" origin/main
48
+ gh api "repos/$GITHUB_REPOSITORY/actions/runs/$CI_RUN_ID" > candidate-ci.json
49
+ export CANDIDATE_SHA="$sha"
50
+ uv run --isolated --no-project --python 3.12 python - <<'PY'
51
+ import json, os, tomllib
52
+ from pathlib import Path
53
+ run = json.loads(Path('candidate-ci.json').read_text())
54
+ assert run['repository']['full_name'] == os.environ['GITHUB_REPOSITORY']
55
+ assert run['head_repository']['full_name'] == os.environ['GITHUB_REPOSITORY']
56
+ assert run['path'] == '.github/workflows/ci.yml'
57
+ assert run['event'] == 'push' and run['head_branch'] == 'main'
58
+ assert run['status'] == 'completed' and run['conclusion'] == 'success'
59
+ assert run['head_sha'] == os.environ['CANDIDATE_SHA']
60
+ project = tomllib.loads(Path('pyproject.toml').read_text())['project']
61
+ assert os.environ['RELEASE_TAG'] == 'v' + project['version']
62
+ PY
63
+ echo "sha=$sha" >> "$GITHUB_OUTPUT"
64
+ - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
65
+ with:
66
+ name: deadtrace-${{ steps.candidate.outputs.sha }}-distributions
67
+ path: dist
68
+ run-id: ${{ inputs.ci_run_id }}
69
+ github-token: ${{ github.token }}
70
+ - name: Verify distribution identity and checksums
71
+ env:
72
+ CANDIDATE_SHA: ${{ steps.candidate.outputs.sha }}
73
+ run: |
74
+ uv run --isolated --no-project --python 3.12 python scripts/release_artifacts.py verify --sha "$CANDIDATE_SHA"
75
+ mkdir publish-dist
76
+ cp dist/*.whl dist/*.tar.gz publish-dist/
77
+ - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
78
+ with:
79
+ name: verified-${{ steps.candidate.outputs.sha }}
80
+ path: publish-dist/*
81
+ if-no-files-found: error
82
+
83
+ publish:
84
+ needs: verify
85
+ runs-on: ubuntu-latest
86
+ environment: pypi
87
+ permissions:
88
+ id-token: write
89
+ steps:
90
+ - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
91
+ with:
92
+ name: verified-${{ needs.verify.outputs.sha }}
93
+ path: dist
94
+ - uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
@@ -0,0 +1,25 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *.egg-info/
5
+ .mypy_cache/
6
+ .pytest_cache/
7
+ .pytest-tmp/
8
+ .ruff_cache/
9
+ .coverage
10
+ htmlcov/
11
+
12
+ # Environments and builds
13
+ .venv/
14
+ build/
15
+ dist/
16
+
17
+ # Editors and operating systems
18
+ .idea/
19
+ .vscode/
20
+ .DS_Store
21
+ Thumbs.db
22
+
23
+ # CodeGraph local index
24
+ .codegraph/
25
+ .benchmark-work/
@@ -0,0 +1 @@
1
+ 3.12
@@ -0,0 +1,13 @@
1
+ # Agent guide
2
+
3
+ Read `CONTRIBUTING.md` and the decision records in `docs/adr/` before semantic changes.
4
+
5
+ - Keep one active milestone. The current milestone is the public read-only alpha release
6
+ (ADR-0049); freeze scanner semantics at model 31 while preparing 0.1.0a1.
7
+ - Never import or execute target code from scanner paths.
8
+ - Do not infer future semantics from fixture expectations.
9
+ - Update `CASE.md` and `CASE.toml` only when the independent expected behavior changes.
10
+ - Do not hand-edit `uv.lock`; regenerate it with uv.
11
+ - Run Ruff, mypy, pytest with coverage, the case validator, build, and wheel smoke checks.
12
+ - Record changes to semantic invariants, trust boundaries, dependencies, or schemas in an ADR
13
+ under `docs/adr/`, in the same pull request.
@@ -0,0 +1,245 @@
1
+ # Changelog
2
+
3
+ All notable changes will be documented here. The project follows Semantic Versioning once public
4
+ compatibility commitments are defined; alpha schemas may change between releases.
5
+
6
+ ## Unreleased
7
+
8
+ ## 0.1.0a1 - 2026-10-05
9
+
10
+ First public alpha for Python 3.12. Scanner model `python-fastapi-dishka/31`; inventory schema 0,
11
+ semantic report schema 1. Findings require human review; no deletion-safety guarantee is made.
12
+
13
+ - Static scanning, saved explanations, baselines, report comparison and diagnostic bundles.
14
+ - Documented analysis contract, supported scope and exact-commit release acceptance.
15
+ - Python receiver control-flow joins, finite local dispatch names, external nominal reflection,
16
+ stored literal callable/re-export protection, and public object-field/declared-return API closure
17
+ accumulated through ADR-0033 to ADR-0046.
18
+ - A single CI-built wheel and source distribution are sealed with SHA-256 checksums, exercised
19
+ on Linux and Windows, and published through GitHub OIDC without rebuilding (ADR-0049).
20
+ - The independently pinned `object.__setattr__` recall gap remains guarded on model 31;
21
+ the selected model-32 refinement is deferred. General dynamic dispatch and unmodeled behavior
22
+ retain conservative protection. Field measurements are not market-wide precision claims.
23
+
24
+ The entries below describe the development history included in this first public distribution.
25
+
26
+ ### Added
27
+
28
+ - A portable installed-wheel smoke check exercises inventory, analysis, determinism, explanations,
29
+ baselines, comparisons, and no target execution on both CI operating systems (ADR-0030).
30
+ - Hypothesis `@given` arguments, plugins loaded with `-p` in `addopts`, `unittest.main()`, aliases of
31
+ `unittest.TestCase`, conditional bases and imports, scripts run by file name, and lazy export
32
+ tables are understood (ADR-0028).
33
+ - Dead methods are found in more classes: a class a Dishka binding builds, an instance kept in a
34
+ list or a dictionary, and a class read for an attribute no longer keep all their methods; an
35
+ implementation of an abstract method is retained with its class (ADR-0027).
36
+ - `[tool.deadtrace].exclude` leaves data directories out of the source universe; reports list
37
+ the excluded files (ADR-0018).
38
+ - `cli.commands` capability: Typer commands and callbacks, and Click subcommands and groups.
39
+ - `DT4002` reports a pinned FastAPI or Dishka version that is supported but not oracle-tested.
40
+ - Text reports and `doctor` name the widest guards of production worlds, with the number of
41
+ definitions only they keep possibly running and where they are, when unknown boundaries
42
+ protect much of the project.
43
+ - Reports list the skipped environment and tool directories
44
+ (`source_universe.skipped_directories`, ADR-0015).
45
+ - `alembic.migrations` capability: Alembic environments and revision functions are external
46
+ contracts (ADR-0017).
47
+ - A manually dispatched `Performance` workflow that benchmarks the generated 50k-line scale and
48
+ service fixtures from the built wheel on Linux and Windows, uploads the artifacts, and fails
49
+ above the 30-second or 1-GiB budget (`benchmarks/check_budget.py`).
50
+ - Installable Python package and `deadtrace` CLI.
51
+ - Read-only inventory of functions and classes.
52
+ - World-local reachability, conservative unknown propagation, retention, and negative gates.
53
+ - FastAPI, Dishka, Pydantic, and pytest semantic capabilities with guarded unsupported patterns.
54
+ - Stable review groups `RCH001`–`RCH004`, saved explanations, and schema-1 semantic reports.
55
+ - Explicit baselines, report comparison, CI finding policies, doctor, and benchmark commands.
56
+ - Safe baseline updates and three-state report comparability with explicit source/input changes.
57
+ - Privacy-conscious troubleshooting bundles with a pre-write content preview.
58
+ - Static PEP 621 entry-point worlds with root provenance and guarded dynamic metadata.
59
+ - Automatic worlds without configuration (ADR-0011): `production:scripts` for main guards
60
+ and `__main__` modules, one world per application of Flask, Celery, Starlette, Litestar,
61
+ aiohttp, Sanic, Quart, Falcon, Bottle, or Typer, and `production:library` for the public
62
+ API of projects without applications or entry points, each with its root provenance.
63
+ - Executable semantic corpus and pinned FastAPI/Dishka oracle application.
64
+ - Safety retention for static Django `RunPython` migrations and implicit Python
65
+ property/protocol/metaclass hooks.
66
+ - Whole-source snapshot retry with `DT1002` fallback when files keep changing during a scan.
67
+ - Experimental inventory schema 0 remains available through `--inventory-only`.
68
+ - Strict `[tool.deadtrace]` configuration and report exclusions that do not alter analysis scope.
69
+ - Six independently described seed cases and a lexical manifest validator.
70
+ - Windows/Linux CI, wheel smoke testing, contribution, governance, and security policies.
71
+ - Architecture decision records under `docs/adr/`, starting with the decision to keep them in
72
+ the repository and the acceptance of Rich 15.
73
+ - Sub-stage timings and deterministic size counters for every analysis run
74
+ (`deadtrace.timing`), threaded through source collection, inventory, the Python frontend,
75
+ and framework modeling without changing what any stage computes.
76
+ - `benchmarks/profile_scan.py` and the first committed 50k-line profile under
77
+ `benchmarks/results/`.
78
+ - `benchmarks/generate_service_fixture.py`, a deterministic FastAPI/Dishka/Pydantic service whose
79
+ size grows with symbols, calls, routes, and bindings, and `benchmarks/stage_installed_sources.py`,
80
+ which copies the sources of locked third-party packages as scan targets without importing them.
81
+ The scale fixture alone produces no edges or framework objects and could not show those costs.
82
+ - `fixtures/known-violations/`: cases where a complete world reports code that may run as
83
+ unreached, pinned by `tests/test_known_violations.py` (ADR-0006), and the safety-only case
84
+ expectation `not_candidate`. Twenty-eight were recorded and are now met.
85
+
86
+ ### Changed
87
+
88
+ - Model revision `python-fastapi-dishka/19` (ADR-0026), from 57 more installed packages: the API a
89
+ library's `__init__` re-exports explicitly is a root next to its command line (world
90
+ `production:exports`); quoted annotations name their classes; `return locals()` hands nested
91
+ functions on; `self.name` in a mixin reaches the member of a subclass; a member missing on a typed
92
+ receiver reaches subclass members and test stand-ins.
93
+ - Model revision `python-fastapi-dishka/18` (ADR-0025), from 39 installed libraries: overrides of
94
+ public methods in private implementation classes, module `__getattr__` and `__dir__`, classes
95
+ named by a subscripted annotation, methods passed as values with their overrides and branch
96
+ definitions, `globals()[name]` lookups, test modules that create their tests when imported,
97
+ main-guard programs in test directories, classes derived from a computed base, a definition
98
+ and an import that bind one name, and `request.getfixturevalue("name")` in plugins.
99
+ - Model revision `python-fastapi-dishka/17` (ADR-0024): test functions and classes that a test
100
+ module imports by name or with `*` are collected in the importer and resolve their fixtures from
101
+ its directory and conftests; a directory without Python files says so.
102
+ - Model revision `python-fastapi-dishka/16` (ADR-0023): commands in Compose files, Dockerfiles,
103
+ `Procfile`, Makefiles, shell scripts, supervisord programs, and systemd units that start
104
+ `uvicorn`, `gunicorn`, `hypercorn`, `daphne`, `granian`, `faststream`, `taskiq`, `arq`,
105
+ `dramatiq`, `celery -A`, `python -m`, `python script.py`, or `locust -f` root the world
106
+ `production:commands` when no worlds are configured; gunicorn configuration hooks, locust
107
+ users, and classes that logging configurations name by `class` or `()` are conservative
108
+ roots with their methods (`deployment.commands` capability). A configured world named
109
+ `production:migrations` is rejected, and deployment reading has the timing stage
110
+ `frontend.deployment`.
111
+ - Model revision `python-fastapi-dishka/15` (ADR-0021): reports and baselines stay comparable
112
+ when tests, routes, scripts, or applications are added, when dependencies other than
113
+ unsupported FastAPI or Dishka versions change, and when only the analyzer version changes;
114
+ `compare` lists added and removed worlds and roots as source changes. Fingerprints no longer
115
+ include worlds, so every fingerprint changes once. `baseline update` carries reviewed entries
116
+ over by code and members, and an incomparable baseline names the method fields that differ.
117
+ - The same revision (ADR-0022), from a 624k-line monorepo: imports inside services that hold a
118
+ package of their own name, namespace service packages, and editable libraries such as
119
+ `libs/common/common` resolve; migrations run in their own world `production:migrations`;
120
+ FastStream applications, taskiq schedulers, and arq workers root worlds; unresolved method
121
+ dispatch and `import_module(f"{obj.__module__}.x")` protect only code whose module may run;
122
+ a union annotation gives no single type; `self` fields take the annotated type or the one
123
+ class all methods assign; `getattr` values of known receivers and `Cls(...).method`
124
+ arguments and project instances passed to libraries escape; deserializers such as
125
+ `pickle.loads` open the module gates; classes created for a metaclass or `__init_subclass__`
126
+ are kept; `pytest_asyncio.fixture`, assigned patchers, joined string
127
+ literals, transitive star imports, fixture defaults, conftest top-level code, `pytest_plugins`
128
+ per session, and `RunPython(code=...)` are modeled.
129
+ - Reports and baselines are read back up to 256 MiB, and `scan` warns when a report is larger;
130
+ project inputs keep the 16 MiB limit.
131
+ - A finding's explanation lists its worlds' limitations other than guards once, with counts, and
132
+ the number of guards, instead of copying every guard; reports of single-service projects are
133
+ up to ten times smaller and stay below 16 MiB.
134
+ - Model revision `python-fastapi-dishka/14` (ADR-0020): `Sub.member` with an inherited member
135
+ uses `Sub`, so the hooks bases call on it are reached; pytest-click fixtures are known.
136
+ - Model revision `python-fastapi-dishka/13` (ADR-0019): a FastAPI factory that returns its
137
+ application inside a wrapper, and the uncalled function that calls it, root a web world; a
138
+ package imports its own submodules by absolute name; a `pytest11` plugin's package is also a
139
+ library, and the classes its fixtures return expose their public methods; setuptools `build`
140
+ copies are skipped; nested test classes are collected.
141
+ - Model revision `python-fastapi-dishka/12` (ADR-0018): FastAPI `>=0.100,<1` and Dishka
142
+ `>=1.0,<2` are supported, and only versions outside those ranges weaken worlds (`DT4001`);
143
+ methods of test stand-ins for values from outside the project, fixtures requested with
144
+ `getfixturevalue` or lazy fixtures, and fixtures of `pytest11` plugins are reachable;
145
+ importing a module that is loaded already and `with` targets of outside managers add no
146
+ unknown dispatch; a project without roots reports `DT3004`.
147
+ - The solver marks each distinct boundary target set once per world, and the pytest model no
148
+ longer records per-test fixture visibility; results are unchanged.
149
+ - Model revision `python-fastapi-dishka/11` (ADR-0017), from an audit of six real projects:
150
+ `include_router` in helpers and loops over literal router lists; entry points naming a
151
+ top-level value such as a Typer application; calls inside annotations; attribute chains
152
+ through enumeration members; nested `Config` and `Meta` classes; Django `AppConfig`,
153
+ ASGI/WSGI modules, and `MIGRATION_MODULES`; modules loaded from paths or by computed names and
154
+ their attributes; `Protocol` receivers and test stand-ins; pytest marks and fixtures as
155
+ transparent decorators; closures of retained declarations.
156
+ - pytest facts are local to the tests world, and the model resolves arguments, parametrization,
157
+ plugins, fixture imports, collection patterns, inherited test methods, hooks, and xunit setup
158
+ the way pytest does (ADR-0016).
159
+ - Source discovery skips virtual and conda environments, `site-packages`, `node_modules`,
160
+ `__pypackages__`, and hidden directories; a `src` directory is a package when code imports it,
161
+ and absolute imports also resolve against a script's own directory (ADR-0015).
162
+ - Limitations that every world shares, such as an unreadable file, are printed once in text
163
+ reports.
164
+ - Text reports and `doctor` count identical limitations once and summarize worlds with many
165
+ kinds of `DT2002` guard in one line; the JSON report still lists every guard.
166
+ - A world's `frameworks` list accepts every modeled framework and is documented as declarative
167
+ (ADR-0014): every capability applies to every world.
168
+ - Model revision `python-fastapi-dishka/10` (ADR-0013): a module assigning `INSTALLED_APPS`
169
+ is a Django settings module that imports its applications' packages and `apps`, `models`,
170
+ `admin`, template-tag, and management-command modules, registers model classes, and
171
+ instantiates commands; without configuration each settings module roots a
172
+ `production:django` world. A string may name a module through an attribute it binds.
173
+ - Model revision `python-fastapi-dishka/9` (ADR-0012): `@overload` signatures belong to
174
+ their implementation; single-underscore hooks such as `_repr_html_` are protected like
175
+ special methods; a nested function bound in one branch is reachable through its name; a
176
+ class that escapes exposes its methods, except to `isinstance`, `issubclass`, and
177
+ consumers a capability models.
178
+ - Model revision `python-fastapi-dishka/8` (ADR-0011): FastAPI factories that no module
179
+ calls are applications, and a factory's constructor resolves in its own module; Celery
180
+ `autodiscover_tasks()` may import every `tasks` module. Without `max-steps`, the solver
181
+ budget is twice the node count instead of 100,000 steps.
182
+ - Model revision `python-fastapi-dishka/7` (ADR-0010): an import statement runs the project
183
+ modules on its path wherever it executes, whatever it binds, except under
184
+ `if TYPE_CHECKING:`; a module runs after its package; imports in nested blocks and in
185
+ functions bind names; star imports and package re-exports resolve, for configured roots
186
+ and entry points too; a name bound in alternative branches reaches every alternative.
187
+ - Model revision `python-fastapi-dishka/6` (ADR-0009): every special method of a used class,
188
+ and the methods of classes with an external base that may call them, are protected
189
+ conservatively, with builtins, `abc`, `typing`, `pydantic.BaseModel`, and `dishka.Provider`
190
+ exempt; strings that name a project module or symbol are references; `importlib`
191
+ imports by literal, f-string prefix, or unknown name reach those modules. `DT2002` appears
192
+ only for boundaries that protect a node not otherwise resolved.
193
+ - Model revision `python-fastapi-dishka/5` (ADR-0008): references to project functions and
194
+ classes, member-to-owner and inheritance edges, method resolution order and `super()`, class
195
+ hierarchy dispatch, conservative dispatch on values of unknown type, decorator application and
196
+ registration, evaluated annotations, Python name scoping with local shadowing, and Pydantic
197
+ hooks whenever their model is used. The thirteen recorded known violations are met and moved
198
+ to `corpus/`; `EdgeKind` gains `member`, `inherit`, and `annotation`. `Service` in two Dishka
199
+ corpus cases is now live through its endpoint annotation.
200
+ - The analysis parses with the standard-library `ast` module instead of LibCST, which is no
201
+ longer a dependency (ADR-0007). The 50k-line fixtures scan in 0.6 and 1.2 instead of 11.8 and
202
+ 16.3 seconds and mypy's 129k lines in 2.6 instead of 65.8, with peak RSS roughly halved.
203
+ Reports are byte-identical; `DT1001` messages for unparseable
204
+ files now read `syntax error at line L, column C: <message>`. The benchmark artifact is schema 4:
205
+ `descriptor.libcst_version` is replaced by `descriptor.parser`.
206
+ - Symbol, member, container-binding, and adjacency lookups use indexes built once per analysis
207
+ instead of scanning whole collections per query, and the frontend walks each called function's
208
+ body once instead of once per call site (ADR-0005). On the 50k-line service fixture the affected
209
+ stages take 2.2 instead of 15.9 seconds at the median, and they no longer grow faster than the
210
+ source. Reports are byte-identical.
211
+ - Each module is parsed once and its source positions are resolved once; inventory, the
212
+ Python frontend, and framework discovery share the result (ADR-0004). The 50k-line
213
+ benchmark is 2.7 times faster at the median with byte-identical reports.
214
+ - The benchmark artifact is schema 3: `collect.inventory_parse` is replaced by
215
+ `collect.parse`, which covers the single parse and position pass.
216
+ - The benchmark artifact is schema 2: it records host and tool versions, deterministic
217
+ counters, per-sub-stage seconds, a separate `report_seconds`, and the list of volatile
218
+ fields. `memory_note` moved to `notes.memory`.
219
+
220
+ ### Fixed
221
+
222
+ - Source traversal errors and non-text encoding cookies produce `DT1001` instead of silently
223
+ dropping source or crashing. Configuration reads enforce the 16-MiB input limit; invalid UTF-8
224
+ uses existing input diagnostics. Invalid modeled dependency versions produce the `DT4001`
225
+ compatibility guard (ADR-0030).
226
+ - Package API worlds follow re-exports from all conditional imports, including alternatives to
227
+ absent compiled modules. Class-body and chained annotations retain the classes they name
228
+ (ADR-0029, model revision 22).
229
+ - A report with input issues is comparable with a baseline created from it; the issues were
230
+ stored as tuples and read back as lists.
231
+ - The `pytest.fixtures` capability is listed whether or not the project has tests, so a first
232
+ test no longer changes the analysis method.
233
+ - Repository-wide LF normalization through `.gitattributes`, so a Windows checkout made with
234
+ `core.autocrlf=true` no longer fails `ruff format --check` on unmodified files.
235
+ - The documented wheel smoke command selects Python 3.12 explicitly instead of relying on the
236
+ default interpreter on PATH.
237
+ - Strict mypy no longer fails on Linux. The Windows-only peak working set helper now declares
238
+ its platform precondition instead of relying on a runtime `AttributeError`, which `ctypes`
239
+ raises only at runtime and which mypy reports as `Module has no attribute "WinDLL"`.
240
+
241
+ ### Safety
242
+
243
+ - Static scans never import or execute target modules.
244
+ - Unsupported target versions and unresolved framework assembly block strong negative findings.
245
+ - Baselines annotate findings but never suppress blockers or alter semantic analysis.
@@ -0,0 +1,29 @@
1
+ # Code of Conduct
2
+
3
+ ## Our commitment
4
+
5
+ We are committed to a welcoming, safe, and constructive community regardless of age, body size,
6
+ disability, ethnicity, sex characteristics, gender identity or expression, experience level,
7
+ education, socioeconomic status, nationality, appearance, race, caste, color, religion, or
8
+ sexual identity and orientation.
9
+
10
+ ## Expected behavior
11
+
12
+ - Be respectful, specific, and patient.
13
+ - Critique ideas and evidence, not people.
14
+ - Accept responsibility, apologize when appropriate, and learn from feedback.
15
+ - Protect private information and avoid public speculation about security reports.
16
+ - Prioritize the health of the project and community over individual status.
17
+
18
+ Harassment, threats, discriminatory language, sexualized attention, deliberate intimidation,
19
+ doxxing, and sustained disruption are not acceptable.
20
+
21
+ ## Enforcement
22
+
23
+ Report conduct concerns privately to the repository maintainers through an appropriate private
24
+ GitHub channel. Maintainers will review reports confidentially, avoid conflicts of interest, and
25
+ may remove content, issue warnings, impose temporary restrictions, or permanently exclude a
26
+ participant. Good-faith reporters will not face retaliation.
27
+
28
+ This policy applies in project spaces and when someone is publicly representing the project.
29
+ It is adapted from the Contributor Covenant, version 2.1.