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.
- deadtrace-0.1.0a1/.editorconfig +15 -0
- deadtrace-0.1.0a1/.gitattributes +4 -0
- deadtrace-0.1.0a1/.github/ISSUE_TEMPLATE/bug.yml +29 -0
- deadtrace-0.1.0a1/.github/ISSUE_TEMPLATE/design.yml +32 -0
- deadtrace-0.1.0a1/.github/dependabot.yml +10 -0
- deadtrace-0.1.0a1/.github/pull_request_template.md +11 -0
- deadtrace-0.1.0a1/.github/workflows/ci.yml +84 -0
- deadtrace-0.1.0a1/.github/workflows/performance.yml +53 -0
- deadtrace-0.1.0a1/.github/workflows/publish.yml +94 -0
- deadtrace-0.1.0a1/.gitignore +25 -0
- deadtrace-0.1.0a1/.python-version +1 -0
- deadtrace-0.1.0a1/AGENTS.md +13 -0
- deadtrace-0.1.0a1/CHANGELOG.md +245 -0
- deadtrace-0.1.0a1/CODE_OF_CONDUCT.md +29 -0
- deadtrace-0.1.0a1/CONTRIBUTING.md +62 -0
- deadtrace-0.1.0a1/GOVERNANCE.md +15 -0
- deadtrace-0.1.0a1/LICENSE +201 -0
- deadtrace-0.1.0a1/PKG-INFO +284 -0
- deadtrace-0.1.0a1/README.md +258 -0
- deadtrace-0.1.0a1/ROADMAP.md +616 -0
- deadtrace-0.1.0a1/SECURITY.md +22 -0
- deadtrace-0.1.0a1/benchmarks/README.md +101 -0
- deadtrace-0.1.0a1/benchmarks/check_budget.py +68 -0
- deadtrace-0.1.0a1/benchmarks/generate_scale_fixture.py +66 -0
- deadtrace-0.1.0a1/benchmarks/generate_service_fixture.py +218 -0
- deadtrace-0.1.0a1/benchmarks/profile_scan.py +38 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-21-scale-50k-baseline.md +171 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-21-scale-50k-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-21-scale-50k-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-21-scale-50k-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-mypy-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-mypy-branch-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-mypy-branch-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-mypy-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-mypy-main-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-mypy-main-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-pygments-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-pygments-branch-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-pygments-branch-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-pygments-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-pygments-main-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-pygments-main-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-rich-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-rich-branch-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-rich-branch-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-rich-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-rich-main-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/real-rich-main-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/scale-50k-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/scale-50k-branch-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/scale-50k-branch-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/scale-50k-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/scale-50k-main-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/scale-50k-main-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/service-50k-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/service-50k-branch-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/service-50k-branch-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/service-50k-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/service-50k-main-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-automatic-worlds/service-50k-main-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-mypy-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-mypy-branch-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-mypy-branch-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-mypy-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-mypy-main-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-mypy-main-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-pygments-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-pygments-branch-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-pygments-branch-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-pygments-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-pygments-main-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-pygments-main-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-rich-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-rich-branch-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-rich-branch-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-rich-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-rich-main-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/real-rich-main-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/scale-50k-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/scale-50k-branch-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/scale-50k-branch-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/scale-50k-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/scale-50k-main-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/scale-50k-main-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/service-50k-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/service-50k-branch-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/service-50k-branch-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/service-50k-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/service-50k-main-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-django-installed-apps/service-50k-main-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/real-mypy-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/real-mypy-branch-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/real-mypy-branch-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/real-mypy-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/real-mypy-main-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/real-mypy-main-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/real-pygments-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/real-pygments-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/real-rich-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/real-rich-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/scale-50k-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/scale-50k-branch-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/scale-50k-branch-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/scale-50k-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/scale-50k-main-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/scale-50k-main-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/service-50k-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/service-50k-branch-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/service-50k-branch-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/service-50k-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/service-50k-main-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-implicit-dispatch/service-50k-main-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/real-_pytest-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/real-_pytest-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/real-libcst-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/real-libcst-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/real-mypy-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/real-mypy-branch-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/real-mypy-branch-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/real-mypy-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/real-mypy-main-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/real-mypy-main-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/real-pydantic-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/real-pydantic-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/real-rich-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/real-rich-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/service-20k-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/service-20k-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/service-50k-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/service-50k-branch-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/service-50k-branch-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/service-50k-branch-unloaded-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/service-50k-branch-unloaded-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/service-50k-branch-unloaded-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/service-50k-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/service-50k-main-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups/service-50k-main-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-indexed-lookups.md +71 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-mypy-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-mypy-branch-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-mypy-branch-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-mypy-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-mypy-main-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-mypy-main-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-pygments-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-pygments-branch-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-pygments-branch-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-pygments-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-pygments-main-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-pygments-main-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-rich-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-rich-branch-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-rich-branch-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-rich-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-rich-main-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/real-rich-main-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/scale-50k-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/scale-50k-branch-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/scale-50k-branch-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/scale-50k-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/scale-50k-main-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/scale-50k-main-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/service-50k-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/service-50k-branch-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/service-50k-branch-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/service-50k-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/service-50k-main-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-library-hooks/service-50k-main-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-mypy-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-mypy-branch-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-mypy-branch-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-mypy-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-mypy-main-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-mypy-main-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-pygments-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-pygments-branch-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-pygments-branch-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-pygments-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-pygments-main-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-pygments-main-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-rich-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-rich-branch-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-rich-branch-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-rich-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-rich-main-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/real-rich-main-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/scale-50k-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/scale-50k-branch-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/scale-50k-branch-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/scale-50k-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/scale-50k-main-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/scale-50k-main-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/service-50k-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/service-50k-branch-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/service-50k-branch-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/service-50k-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/service-50k-main-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-module-execution/service-50k-main-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/real-mypy-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/real-mypy-branch-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/real-mypy-branch-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/real-mypy-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/real-mypy-main-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/real-mypy-main-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/real-pygments-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/real-pygments-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/real-rich-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/real-rich-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/scale-50k-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/scale-50k-branch-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/scale-50k-branch-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/scale-50k-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/scale-50k-main-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/scale-50k-main-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/service-50k-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/service-50k-branch-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/service-50k-branch-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/service-50k-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/service-50k-main-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness/service-50k-main-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-python-core-soundness.md +36 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-scale-50k-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-scale-50k-main-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-scale-50k-main-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-scale-50k-single-parse-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-scale-50k-single-parse-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-scale-50k-single-parse-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-scale-50k-single-parse.md +48 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/real-_pytest-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/real-_pytest-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/real-libcst-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/real-libcst-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/real-mypy-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/real-mypy-branch-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/real-mypy-branch-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/real-mypy-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/real-mypy-main-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/real-mypy-main-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/real-pydantic-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/real-pydantic-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/real-pygments-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/real-pygments-branch-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/real-rich-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/real-rich-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/scale-50k-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/scale-50k-branch-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/scale-50k-branch-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/scale-50k-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/scale-50k-main-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/scale-50k-main-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/service-20k-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/service-20k-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/service-50k-branch-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/service-50k-branch-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/service-50k-branch-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/service-50k-main-run1.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/service-50k-main-run2.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast/service-50k-main-run3.json +225 -0
- deadtrace-0.1.0a1/benchmarks/results/2026-09-24-stdlib-ast.md +62 -0
- deadtrace-0.1.0a1/benchmarks/results/audit-2026-10-01/audit-scale-1.json +231 -0
- deadtrace-0.1.0a1/benchmarks/results/audit-2026-10-01/audit-scale-2.json +231 -0
- deadtrace-0.1.0a1/benchmarks/results/audit-2026-10-01/audit-scale-3.json +231 -0
- deadtrace-0.1.0a1/benchmarks/results/audit-2026-10-01/audit-service-1.json +231 -0
- deadtrace-0.1.0a1/benchmarks/results/audit-2026-10-01/audit-service-2.json +231 -0
- deadtrace-0.1.0a1/benchmarks/results/audit-2026-10-01/audit-service-3.json +231 -0
- deadtrace-0.1.0a1/benchmarks/stage_installed_sources.py +65 -0
- deadtrace-0.1.0a1/corpus/README.md +19 -0
- deadtrace-0.1.0a1/corpus/frameworks/alembic_environment/CASE.md +8 -0
- deadtrace-0.1.0a1/corpus/frameworks/alembic_environment/CASE.toml +33 -0
- deadtrace-0.1.0a1/corpus/frameworks/alembic_environment/app/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/alembic_environment/app/alembic/env.py +8 -0
- deadtrace-0.1.0a1/corpus/frameworks/alembic_environment/app/alembic/versions/0001_initial.py +14 -0
- deadtrace-0.1.0a1/corpus/frameworks/alembic_environment/app/main.py +8 -0
- deadtrace-0.1.0a1/corpus/frameworks/app_factory/CASE.md +5 -0
- deadtrace-0.1.0a1/corpus/frameworks/app_factory/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/frameworks/app_factory/main.py +35 -0
- deadtrace-0.1.0a1/corpus/frameworks/celery_autodiscover_tasks/CASE.md +9 -0
- deadtrace-0.1.0a1/corpus/frameworks/celery_autodiscover_tasks/CASE.toml +33 -0
- deadtrace-0.1.0a1/corpus/frameworks/celery_autodiscover_tasks/orders/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/celery_autodiscover_tasks/orders/legacy_tasks.py +6 -0
- deadtrace-0.1.0a1/corpus/frameworks/celery_autodiscover_tasks/orders/receipts.py +6 -0
- deadtrace-0.1.0a1/corpus/frameworks/celery_autodiscover_tasks/orders/tasks.py +8 -0
- deadtrace-0.1.0a1/corpus/frameworks/celery_autodiscover_tasks/proj/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/celery_autodiscover_tasks/proj/celery.py +4 -0
- deadtrace-0.1.0a1/corpus/frameworks/celery_autodiscover_tasks/pyproject.toml +3 -0
- deadtrace-0.1.0a1/corpus/frameworks/cli_commands/CASE.md +10 -0
- deadtrace-0.1.0a1/corpus/frameworks/cli_commands/CASE.toml +49 -0
- deadtrace-0.1.0a1/corpus/frameworks/cli_commands/manage.py +24 -0
- deadtrace-0.1.0a1/corpus/frameworks/cli_commands/tool.py +17 -0
- deadtrace-0.1.0a1/corpus/frameworks/deployment_commands/CASE.md +14 -0
- deadtrace-0.1.0a1/corpus/frameworks/deployment_commands/CASE.toml +45 -0
- deadtrace-0.1.0a1/corpus/frameworks/deployment_commands/Procfile +1 -0
- deadtrace-0.1.0a1/corpus/frameworks/deployment_commands/docker-compose.yml +8 -0
- deadtrace-0.1.0a1/corpus/frameworks/deployment_commands/svc/Dockerfile +3 -0
- deadtrace-0.1.0a1/corpus/frameworks/deployment_commands/svc/svc/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/deployment_commands/svc/svc/logging.conf +4 -0
- deadtrace-0.1.0a1/corpus/frameworks/deployment_commands/svc/svc/logs.py +10 -0
- deadtrace-0.1.0a1/corpus/frameworks/deployment_commands/svc/svc/main.py +8 -0
- deadtrace-0.1.0a1/corpus/frameworks/deployment_commands/svc/svc/profiling.py +10 -0
- deadtrace-0.1.0a1/corpus/frameworks/deployment_commands/svc/svc/tasks.py +5 -0
- deadtrace-0.1.0a1/corpus/frameworks/deployment_commands/svc/svc/worker.py +6 -0
- deadtrace-0.1.0a1/corpus/frameworks/deployment_commands/tools/seed.py +5 -0
- deadtrace-0.1.0a1/corpus/frameworks/dishka_alias/CASE.md +4 -0
- deadtrace-0.1.0a1/corpus/frameworks/dishka_alias/CASE.toml +21 -0
- deadtrace-0.1.0a1/corpus/frameworks/dishka_alias/main.py +35 -0
- deadtrace-0.1.0a1/corpus/frameworks/dishka_components_guard/CASE.md +5 -0
- deadtrace-0.1.0a1/corpus/frameworks/dishka_components_guard/CASE.toml +15 -0
- deadtrace-0.1.0a1/corpus/frameworks/dishka_components_guard/main.py +28 -0
- deadtrace-0.1.0a1/corpus/frameworks/dishka_conditional/CASE.md +9 -0
- deadtrace-0.1.0a1/corpus/frameworks/dishka_conditional/CASE.toml +21 -0
- deadtrace-0.1.0a1/corpus/frameworks/dishka_conditional/main.py +26 -0
- deadtrace-0.1.0a1/corpus/frameworks/dishka_context/CASE.md +4 -0
- deadtrace-0.1.0a1/corpus/frameworks/dishka_context/CASE.toml +21 -0
- deadtrace-0.1.0a1/corpus/frameworks/dishka_context/main.py +36 -0
- deadtrace-0.1.0a1/corpus/frameworks/dishka_generator_cleanup/CASE.md +4 -0
- deadtrace-0.1.0a1/corpus/frameworks/dishka_generator_cleanup/CASE.toml +21 -0
- deadtrace-0.1.0a1/corpus/frameworks/dishka_generator_cleanup/main.py +34 -0
- deadtrace-0.1.0a1/corpus/frameworks/dishka_inactive_injection/CASE.md +10 -0
- deadtrace-0.1.0a1/corpus/frameworks/dishka_inactive_injection/CASE.toml +21 -0
- deadtrace-0.1.0a1/corpus/frameworks/dishka_inactive_injection/main.py +25 -0
- deadtrace-0.1.0a1/corpus/frameworks/dishka_requested_service_members/CASE.md +5 -0
- deadtrace-0.1.0a1/corpus/frameworks/dishka_requested_service_members/CASE.toml +33 -0
- deadtrace-0.1.0a1/corpus/frameworks/dishka_requested_service_members/main.py +40 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/CASE.md +17 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/CASE.toml +81 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/blog/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/blog/drafts.py +2 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/blog/models.py +8 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/manage.py +13 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/mysite/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/mysite/settings.py +8 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/mysite/urls.py +7 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/mysite/wsgi.py +12 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/polls/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/polls/admin.py +9 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/polls/apps.py +5 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/polls/management/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/polls/management/commands/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/polls/management/commands/closepoll.py +10 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/polls/models.py +12 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/polls/templatetags/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/polls/templatetags/poll_extras.py +8 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/polls/urls.py +5 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/polls/utils.py +2 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/polls/views.py +9 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_automatic_worlds/pyproject.toml +3 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_framework_conventions/CASE.md +14 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_framework_conventions/CASE.toml +45 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_framework_conventions/mysite/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_framework_conventions/mysite/asgi.py +5 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_framework_conventions/mysite/settings.py +5 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_framework_conventions/shop/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_framework_conventions/shop/apps.py +8 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_framework_conventions/shop/consumers.py +4 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_framework_conventions/shop/legacy_migrations/0001_initial.py +11 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_framework_conventions/shop/legacy_migrations/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_framework_conventions/shop/models.py +17 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_framework_conventions/shop/routing.py +3 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_framework_conventions/shop/unused.py +2 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/CASE.md +16 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/CASE.toml +81 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/blog/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/blog/drafts.py +2 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/blog/models.py +8 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/manage.py +13 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/mysite/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/mysite/settings.py +8 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/mysite/urls.py +7 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/mysite/wsgi.py +12 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/polls/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/polls/admin.py +9 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/polls/apps.py +5 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/polls/management/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/polls/management/commands/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/polls/management/commands/closepoll.py +10 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/polls/models.py +12 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/polls/templatetags/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/polls/templatetags/poll_extras.py +8 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/polls/urls.py +5 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/polls/utils.py +2 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/polls/views.py +9 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_installed_apps/pyproject.toml +9 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_runpython_keywords/CASE.md +11 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_runpython_keywords/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_runpython_keywords/mysite/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_runpython_keywords/mysite/settings.py +1 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_runpython_keywords/shop/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_runpython_keywords/shop/migrations/0001_initial.py +18 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_runpython_keywords/shop/migrations/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/django_runpython_keywords/shop/unused.py +2 -0
- deadtrace-0.1.0a1/corpus/frameworks/external_command_decorator/CASE.md +9 -0
- deadtrace-0.1.0a1/corpus/frameworks/external_command_decorator/CASE.toml +15 -0
- deadtrace-0.1.0a1/corpus/frameworks/external_command_decorator/main.py +10 -0
- deadtrace-0.1.0a1/corpus/frameworks/external_command_decorator/pyproject.toml +9 -0
- deadtrace-0.1.0a1/corpus/frameworks/external_keep/CASE.md +4 -0
- deadtrace-0.1.0a1/corpus/frameworks/external_keep/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/frameworks/external_keep/main.py +20 -0
- deadtrace-0.1.0a1/corpus/frameworks/external_keep/pyproject.toml +11 -0
- deadtrace-0.1.0a1/corpus/frameworks/external_task_decorator_called_through_attribute/CASE.md +9 -0
- deadtrace-0.1.0a1/corpus/frameworks/external_task_decorator_called_through_attribute/CASE.toml +15 -0
- deadtrace-0.1.0a1/corpus/frameworks/external_task_decorator_called_through_attribute/main.py +12 -0
- deadtrace-0.1.0a1/corpus/frameworks/external_task_decorator_called_through_attribute/pyproject.toml +9 -0
- deadtrace-0.1.0a1/corpus/frameworks/external_task_decorator_without_reference/CASE.md +9 -0
- deadtrace-0.1.0a1/corpus/frameworks/external_task_decorator_without_reference/CASE.toml +15 -0
- deadtrace-0.1.0a1/corpus/frameworks/external_task_decorator_without_reference/main.py +12 -0
- deadtrace-0.1.0a1/corpus/frameworks/external_task_decorator_without_reference/pyproject.toml +9 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_background_task_method/CASE.md +7 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_background_task_method/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_background_task_method/main.py +22 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_monorepo_service_packages/CASE.md +19 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_monorepo_service_packages/CASE.toml +62 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_monorepo_service_packages/billing/billing/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_monorepo_service_packages/billing/billing/api.py +9 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_monorepo_service_packages/billing/billing/main.py +10 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_monorepo_service_packages/libs/common/common/money.py +6 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_monorepo_service_packages/report/report/alembic/env.py +3 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_monorepo_service_packages/report/report/alembic/versions/0001_init.py +6 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_monorepo_service_packages/report/report/api.py +8 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_monorepo_service_packages/report/report/main.py +5 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_monorepo_service_packages/shop/shop/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_monorepo_service_packages/shop/shop/main.py +6 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_monorepo_service_packages/shop/shop/routes.py +12 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_native_lifecycle/CASE.md +4 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_native_lifecycle/CASE.toml +33 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_native_lifecycle/main.py +53 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_router_registry/CASE.md +10 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_router_registry/CASE.toml +39 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_router_registry/api/__init__.py +5 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_router_registry/api/items.py +8 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_router_registry/api/legacy.py +8 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_router_registry/api/users.py +8 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_router_registry/helpers.py +13 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_router_registry/main.py +9 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_src_package_imports/CASE.md +10 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_src_package_imports/CASE.toml +21 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_src_package_imports/src/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_src_package_imports/src/api/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_src_package_imports/src/api/routes.py +12 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_src_package_imports/src/main.py +6 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_uncalled_factory/CASE.md +7 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_uncalled_factory/CASE.toml +33 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_uncalled_factory/main.py +8 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_uncalled_factory/pyproject.toml +3 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_uncalled_factory/routes.py +16 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_unknown_include/CASE.md +9 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_unknown_include/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_unknown_include/main.py +6 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_unknown_include/registry.py +5 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_unknown_include/routes.py +14 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_wrapped_factory/CASE.md +10 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_wrapped_factory/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_wrapped_factory/app/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/fastapi_wrapped_factory/app/main.py +24 -0
- deadtrace-0.1.0a1/corpus/frameworks/flask_application_factory/CASE.md +7 -0
- deadtrace-0.1.0a1/corpus/frameworks/flask_application_factory/CASE.toml +33 -0
- deadtrace-0.1.0a1/corpus/frameworks/flask_application_factory/pyproject.toml +3 -0
- deadtrace-0.1.0a1/corpus/frameworks/flask_application_factory/shop/__init__.py +9 -0
- deadtrace-0.1.0a1/corpus/frameworks/flask_application_factory/shop/views.py +16 -0
- deadtrace-0.1.0a1/corpus/frameworks/historical_migration/CASE.md +5 -0
- deadtrace-0.1.0a1/corpus/frameworks/historical_migration/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/frameworks/historical_migration/app/migrations/0001_data.py +16 -0
- deadtrace-0.1.0a1/corpus/frameworks/historical_migration/main.py +3 -0
- deadtrace-0.1.0a1/corpus/frameworks/message_workers/CASE.md +12 -0
- deadtrace-0.1.0a1/corpus/frameworks/message_workers/CASE.toml +45 -0
- deadtrace-0.1.0a1/corpus/frameworks/message_workers/service/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/message_workers/service/handlers.py +12 -0
- deadtrace-0.1.0a1/corpus/frameworks/message_workers/service/run_faststream.py +8 -0
- deadtrace-0.1.0a1/corpus/frameworks/message_workers/service/run_scheduler.py +11 -0
- deadtrace-0.1.0a1/corpus/frameworks/message_workers/service/worker.py +23 -0
- deadtrace-0.1.0a1/corpus/frameworks/multiple_apps/CASE.md +4 -0
- deadtrace-0.1.0a1/corpus/frameworks/multiple_apps/CASE.toml +21 -0
- deadtrace-0.1.0a1/corpus/frameworks/multiple_apps/main.py +14 -0
- deadtrace-0.1.0a1/corpus/frameworks/multiple_containers/CASE.md +4 -0
- deadtrace-0.1.0a1/corpus/frameworks/multiple_containers/CASE.toml +23 -0
- deadtrace-0.1.0a1/corpus/frameworks/multiple_containers/main.py +41 -0
- deadtrace-0.1.0a1/corpus/frameworks/package_exports_next_to_application/CASE.md +8 -0
- deadtrace-0.1.0a1/corpus/frameworks/package_exports_next_to_application/CASE.toml +33 -0
- deadtrace-0.1.0a1/corpus/frameworks/package_exports_next_to_application/pkg/__init__.py +4 -0
- deadtrace-0.1.0a1/corpus/frameworks/package_exports_next_to_application/pkg/cli.py +8 -0
- deadtrace-0.1.0a1/corpus/frameworks/package_exports_next_to_application/pkg/core.py +11 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_class_and_conftest_effects/CASE.md +8 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_class_and_conftest_effects/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_class_and_conftest_effects/_meta.py +7 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_class_and_conftest_effects/tests/conftest.py +9 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_class_and_conftest_effects/tests/test_meta.py +6 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_dynamic_test_module/CASE.md +7 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_dynamic_test_module/CASE.toml +21 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_dynamic_test_module/_cases.py +13 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_dynamic_test_module/_tool.py +2 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_dynamic_test_module/pyproject.toml +6 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_dynamic_test_module/test_generated.py +10 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_hooks_and_configuration/CASE.md +9 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_hooks_and_configuration/CASE.toml +33 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_hooks_and_configuration/checks/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_hooks_and_configuration/checks/check_orders.py +5 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_hooks_and_configuration/checks/test_legacy.py +2 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_hooks_and_configuration/conftest.py +14 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_hooks_and_configuration/orders.py +6 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_hooks_and_configuration/pyproject.toml +6 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_hypothesis_given/CASE.md +6 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_hypothesis_given/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_hypothesis_given/_tool.py +10 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_hypothesis_given/test_props.py +18 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_imported_suite/CASE.md +11 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_imported_suite/CASE.toml +39 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_imported_suite/pages.py +2 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_imported_suite/pyproject.toml +6 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_imported_suite/tests/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_imported_suite/tests/suite/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_imported_suite/tests/suite/conftest.py +11 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_imported_suite/tests/suite/test_pages.py +10 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_imported_suite/tests/suite_shared/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_imported_suite/tests/suite_shared/conftest.py +16 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_imported_suite/tests/suite_shared/test_shared_pages.py +1 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_plugin_from_addopts/CASE.md +5 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_plugin_from_addopts/CASE.toml +21 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_plugin_from_addopts/_tool.py +10 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_plugin_from_addopts/pytest.ini +2 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_plugin_from_addopts/tests/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_plugin_from_addopts/tests/plugin_fixtures.py +10 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_plugin_from_addopts/tests/test_clock.py +2 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_plugins_package_prefix/CASE.md +10 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_plugins_package_prefix/CASE.toml +21 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_plugins_package_prefix/conftest.py +1 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_plugins_package_prefix/pyproject.toml +6 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_plugins_package_prefix/src/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_plugins_package_prefix/src/shop/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_plugins_package_prefix/src/shop/orders.py +2 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_plugins_package_prefix/src/shop/tests/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_plugins_package_prefix/src/shop/tests/fixtures.py +12 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_plugins_package_prefix/src/shop/tests/test_orders.py +2 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_separation/CASE.md +4 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_separation/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_separation/app.py +16 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_separation/tests/conftest.py +7 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_separation/tests/test_app.py +2 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_unittest_base_alias/CASE.md +5 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_unittest_base_alias/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_unittest_base_alias/_tool.py +10 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_unittest_base_alias/tests/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_unittest_base_alias/tests/test_suite.py +6 -0
- deadtrace-0.1.0a1/corpus/frameworks/pytest_unittest_base_alias/tests/util.py +3 -0
- deadtrace-0.1.0a1/corpus/frameworks/report_excluded_caller/CASE.md +5 -0
- deadtrace-0.1.0a1/corpus/frameworks/report_excluded_caller/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/frameworks/report_excluded_caller/hidden.py +9 -0
- deadtrace-0.1.0a1/corpus/frameworks/report_excluded_caller/pyproject.toml +16 -0
- deadtrace-0.1.0a1/corpus/frameworks/report_excluded_caller/visible.py +6 -0
- deadtrace-0.1.0a1/corpus/frameworks/unittest_main_script/CASE.md +5 -0
- deadtrace-0.1.0a1/corpus/frameworks/unittest_main_script/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/frameworks/unittest_main_script/_checks.py +14 -0
- deadtrace-0.1.0a1/corpus/frameworks/unpublished_router/CASE.md +4 -0
- deadtrace-0.1.0a1/corpus/frameworks/unpublished_router/CASE.toml +21 -0
- deadtrace-0.1.0a1/corpus/frameworks/unpublished_router/main.py +14 -0
- deadtrace-0.1.0a1/corpus/packaging/project_entry_point/CASE.md +5 -0
- deadtrace-0.1.0a1/corpus/packaging/project_entry_point/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/packaging/project_entry_point/pyproject.toml +7 -0
- deadtrace-0.1.0a1/corpus/packaging/project_entry_point/src/acme/cli.py +10 -0
- deadtrace-0.1.0a1/corpus/python/abstract_implementation_required/CASE.md +5 -0
- deadtrace-0.1.0a1/corpus/python/abstract_implementation_required/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/python/abstract_implementation_required/_tool.py +31 -0
- deadtrace-0.1.0a1/corpus/python/alternative_bindings/CASE.md +10 -0
- deadtrace-0.1.0a1/corpus/python/alternative_bindings/CASE.toml +33 -0
- deadtrace-0.1.0a1/corpus/python/alternative_bindings/fast.py +6 -0
- deadtrace-0.1.0a1/corpus/python/alternative_bindings/main.py +21 -0
- deadtrace-0.1.0a1/corpus/python/alternative_bindings/pyproject.toml +9 -0
- deadtrace-0.1.0a1/corpus/python/alternative_bindings/slow.py +2 -0
- deadtrace-0.1.0a1/corpus/python/annotation_in_class_body/CASE.md +5 -0
- deadtrace-0.1.0a1/corpus/python/annotation_in_class_body/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/python/annotation_in_class_body/_tool.py +29 -0
- deadtrace-0.1.0a1/corpus/python/annotation_metadata_calls/CASE.md +11 -0
- deadtrace-0.1.0a1/corpus/python/annotation_metadata_calls/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/python/annotation_metadata_calls/cli.py +37 -0
- deadtrace-0.1.0a1/corpus/python/annotation_reads_class_attribute/CASE.md +6 -0
- deadtrace-0.1.0a1/corpus/python/annotation_reads_class_attribute/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/python/annotation_reads_class_attribute/_tool.py +24 -0
- deadtrace-0.1.0a1/corpus/python/base_class_of_constructed_class/CASE.md +9 -0
- deadtrace-0.1.0a1/corpus/python/base_class_of_constructed_class/CASE.toml +33 -0
- deadtrace-0.1.0a1/corpus/python/base_class_of_constructed_class/main.py +16 -0
- deadtrace-0.1.0a1/corpus/python/base_class_of_constructed_class/pyproject.toml +9 -0
- deadtrace-0.1.0a1/corpus/python/base_initializer_called_through_super/CASE.md +8 -0
- deadtrace-0.1.0a1/corpus/python/base_initializer_called_through_super/CASE.toml +33 -0
- deadtrace-0.1.0a1/corpus/python/base_initializer_called_through_super/main.py +16 -0
- deadtrace-0.1.0a1/corpus/python/base_initializer_called_through_super/pyproject.toml +9 -0
- deadtrace-0.1.0a1/corpus/python/branch_assigned_field/CASE.md +15 -0
- deadtrace-0.1.0a1/corpus/python/branch_assigned_field/CASE.toml +57 -0
- deadtrace-0.1.0a1/corpus/python/branch_assigned_field/_tool.py +127 -0
- deadtrace-0.1.0a1/corpus/python/branch_defined_callback/CASE.md +6 -0
- deadtrace-0.1.0a1/corpus/python/branch_defined_callback/CASE.toml +21 -0
- deadtrace-0.1.0a1/corpus/python/branch_defined_callback/_tool.py +28 -0
- deadtrace-0.1.0a1/corpus/python/branch_receiver_flow/CASE.md +10 -0
- deadtrace-0.1.0a1/corpus/python/branch_receiver_flow/CASE.toml +25 -0
- deadtrace-0.1.0a1/corpus/python/branch_receiver_flow/_tool.py +25 -0
- deadtrace-0.1.0a1/corpus/python/branch_receiver_flow/pyproject.toml +4 -0
- deadtrace-0.1.0a1/corpus/python/callable_passed_to_project_function/CASE.md +10 -0
- deadtrace-0.1.0a1/corpus/python/callable_passed_to_project_function/CASE.toml +21 -0
- deadtrace-0.1.0a1/corpus/python/callable_passed_to_project_function/pyproject.toml +9 -0
- deadtrace-0.1.0a1/corpus/python/callable_passed_to_project_function/target.py +13 -0
- deadtrace-0.1.0a1/corpus/python/class_attribute_read/CASE.md +4 -0
- deadtrace-0.1.0a1/corpus/python/class_attribute_read/CASE.toml +33 -0
- deadtrace-0.1.0a1/corpus/python/class_attribute_read/_tool.py +23 -0
- deadtrace-0.1.0a1/corpus/python/class_creation_hooks/CASE.md +9 -0
- deadtrace-0.1.0a1/corpus/python/class_creation_hooks/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/python/class_creation_hooks/_plugins.py +9 -0
- deadtrace-0.1.0a1/corpus/python/class_creation_hooks/_registry.py +7 -0
- deadtrace-0.1.0a1/corpus/python/class_creation_hooks/_tool.py +12 -0
- deadtrace-0.1.0a1/corpus/python/class_from_computed_base/CASE.md +8 -0
- deadtrace-0.1.0a1/corpus/python/class_from_computed_base/CASE.toml +33 -0
- deadtrace-0.1.0a1/corpus/python/class_from_computed_base/_lib.py +12 -0
- deadtrace-0.1.0a1/corpus/python/class_from_computed_base/_tool.py +28 -0
- deadtrace-0.1.0a1/corpus/python/class_of_called_static_method/CASE.md +8 -0
- deadtrace-0.1.0a1/corpus/python/class_of_called_static_method/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/python/class_of_called_static_method/main.py +12 -0
- deadtrace-0.1.0a1/corpus/python/class_of_called_static_method/pyproject.toml +9 -0
- deadtrace-0.1.0a1/corpus/python/class_passed_to_external_code/CASE.md +10 -0
- deadtrace-0.1.0a1/corpus/python/class_passed_to_external_code/CASE.toml +21 -0
- deadtrace-0.1.0a1/corpus/python/class_passed_to_external_code/main.py +24 -0
- deadtrace-0.1.0a1/corpus/python/class_passed_to_external_code/pyproject.toml +9 -0
- deadtrace-0.1.0a1/corpus/python/class_used_only_in_annotations/CASE.md +9 -0
- deadtrace-0.1.0a1/corpus/python/class_used_only_in_annotations/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/python/class_used_only_in_annotations/main.py +14 -0
- deadtrace-0.1.0a1/corpus/python/class_used_only_in_annotations/pyproject.toml +9 -0
- deadtrace-0.1.0a1/corpus/python/conditional_base_definition/CASE.md +4 -0
- deadtrace-0.1.0a1/corpus/python/conditional_base_definition/CASE.toml +29 -0
- deadtrace-0.1.0a1/corpus/python/conditional_base_definition/_tool.py +27 -0
- deadtrace-0.1.0a1/corpus/python/container_holds_instances/CASE.md +6 -0
- deadtrace-0.1.0a1/corpus/python/container_holds_instances/CASE.toml +33 -0
- deadtrace-0.1.0a1/corpus/python/container_holds_instances/_tool.py +42 -0
- deadtrace-0.1.0a1/corpus/python/dataclass_post_init/CASE.md +8 -0
- deadtrace-0.1.0a1/corpus/python/dataclass_post_init/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/python/dataclass_post_init/main.py +17 -0
- deadtrace-0.1.0a1/corpus/python/dataclass_post_init/pyproject.toml +9 -0
- deadtrace-0.1.0a1/corpus/python/definition_or_import_fallback/CASE.md +6 -0
- deadtrace-0.1.0a1/corpus/python/definition_or_import_fallback/CASE.toml +21 -0
- deadtrace-0.1.0a1/corpus/python/definition_or_import_fallback/_tool.py +21 -0
- deadtrace-0.1.0a1/corpus/python/deserialized_receiver/CASE.md +10 -0
- deadtrace-0.1.0a1/corpus/python/deserialized_receiver/CASE.toml +21 -0
- deadtrace-0.1.0a1/corpus/python/deserialized_receiver/_api.py +14 -0
- deadtrace-0.1.0a1/corpus/python/deserialized_receiver/_jobs.py +3 -0
- deadtrace-0.1.0a1/corpus/python/enum_member_attribute_chain/CASE.md +8 -0
- deadtrace-0.1.0a1/corpus/python/enum_member_attribute_chain/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/python/enum_member_attribute_chain/_tool.py +25 -0
- deadtrace-0.1.0a1/corpus/python/external_base_class_hooks/CASE.md +10 -0
- deadtrace-0.1.0a1/corpus/python/external_base_class_hooks/CASE.toml +33 -0
- deadtrace-0.1.0a1/corpus/python/external_base_class_hooks/main.py +33 -0
- deadtrace-0.1.0a1/corpus/python/external_base_class_hooks/pyproject.toml +9 -0
- deadtrace-0.1.0a1/corpus/python/external_reflection_call/CASE.md +10 -0
- deadtrace-0.1.0a1/corpus/python/external_reflection_call/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/python/external_reflection_call/_tool.py +24 -0
- deadtrace-0.1.0a1/corpus/python/external_reflection_call/pyproject.toml +4 -0
- deadtrace-0.1.0a1/corpus/python/external_reflection_value/CASE.md +7 -0
- deadtrace-0.1.0a1/corpus/python/external_reflection_value/CASE.toml +21 -0
- deadtrace-0.1.0a1/corpus/python/external_reflection_value/_tool.py +15 -0
- deadtrace-0.1.0a1/corpus/python/external_reflection_value/pyproject.toml +4 -0
- deadtrace-0.1.0a1/corpus/python/finite_dispatch_names/CASE.md +9 -0
- deadtrace-0.1.0a1/corpus/python/finite_dispatch_names/CASE.toml +39 -0
- deadtrace-0.1.0a1/corpus/python/finite_dispatch_names/_tool.py +30 -0
- deadtrace-0.1.0a1/corpus/python/finite_dispatch_names/pyproject.toml +4 -0
- deadtrace-0.1.0a1/corpus/python/fixture_requested_by_name/CASE.md +6 -0
- deadtrace-0.1.0a1/corpus/python/fixture_requested_by_name/CASE.toml +21 -0
- deadtrace-0.1.0a1/corpus/python/fixture_requested_by_name/pkg/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/python/fixture_requested_by_name/pkg/plugin.py +15 -0
- deadtrace-0.1.0a1/corpus/python/function_level_import/CASE.md +10 -0
- deadtrace-0.1.0a1/corpus/python/function_level_import/CASE.toml +45 -0
- deadtrace-0.1.0a1/corpus/python/function_level_import/main.py +13 -0
- deadtrace-0.1.0a1/corpus/python/function_level_import/pyproject.toml +9 -0
- deadtrace-0.1.0a1/corpus/python/function_level_import/reports.py +2 -0
- deadtrace-0.1.0a1/corpus/python/function_level_import/tasks.py +17 -0
- deadtrace-0.1.0a1/corpus/python/function_reference_in_registry/CASE.md +11 -0
- deadtrace-0.1.0a1/corpus/python/function_reference_in_registry/CASE.toml +33 -0
- deadtrace-0.1.0a1/corpus/python/function_reference_in_registry/main.py +21 -0
- deadtrace-0.1.0a1/corpus/python/function_reference_in_registry/pyproject.toml +9 -0
- deadtrace-0.1.0a1/corpus/python/generic_class_in_annotation/CASE.md +6 -0
- deadtrace-0.1.0a1/corpus/python/generic_class_in_annotation/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/python/generic_class_in_annotation/_tool.py +25 -0
- deadtrace-0.1.0a1/corpus/python/getattr_method_by_name/CASE.md +11 -0
- deadtrace-0.1.0a1/corpus/python/getattr_method_by_name/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/python/getattr_method_by_name/_tool.py +35 -0
- deadtrace-0.1.0a1/corpus/python/getattr_prefix_dispatch/CASE.md +5 -0
- deadtrace-0.1.0a1/corpus/python/getattr_prefix_dispatch/CASE.toml +21 -0
- deadtrace-0.1.0a1/corpus/python/getattr_prefix_dispatch/_tool.py +21 -0
- deadtrace-0.1.0a1/corpus/python/globals_lookup_by_name/CASE.md +7 -0
- deadtrace-0.1.0a1/corpus/python/globals_lookup_by_name/CASE.toml +33 -0
- deadtrace-0.1.0a1/corpus/python/globals_lookup_by_name/_tool.py +25 -0
- deadtrace-0.1.0a1/corpus/python/implicit_dunder_methods/CASE.md +8 -0
- deadtrace-0.1.0a1/corpus/python/implicit_dunder_methods/CASE.toml +33 -0
- deadtrace-0.1.0a1/corpus/python/implicit_dunder_methods/main.py +20 -0
- deadtrace-0.1.0a1/corpus/python/implicit_dunder_methods/pyproject.toml +9 -0
- deadtrace-0.1.0a1/corpus/python/implicit_hooks/CASE.md +6 -0
- deadtrace-0.1.0a1/corpus/python/implicit_hooks/CASE.toml +57 -0
- deadtrace-0.1.0a1/corpus/python/implicit_hooks/main.py +41 -0
- deadtrace-0.1.0a1/corpus/python/implicit_hooks/pyproject.toml +7 -0
- deadtrace-0.1.0a1/corpus/python/inspection_classinfo_tuple/CASE.md +9 -0
- deadtrace-0.1.0a1/corpus/python/inspection_classinfo_tuple/CASE.toml +21 -0
- deadtrace-0.1.0a1/corpus/python/inspection_classinfo_tuple/_tool.py +16 -0
- deadtrace-0.1.0a1/corpus/python/inspection_classinfo_tuple/pyproject.toml +4 -0
- deadtrace-0.1.0a1/corpus/python/instance_passed_to_library/CASE.md +8 -0
- deadtrace-0.1.0a1/corpus/python/instance_passed_to_library/CASE.toml +21 -0
- deadtrace-0.1.0a1/corpus/python/instance_passed_to_library/_tool.py +29 -0
- deadtrace-0.1.0a1/corpus/python/ipython_display_hooks/CASE.md +9 -0
- deadtrace-0.1.0a1/corpus/python/ipython_display_hooks/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/python/ipython_display_hooks/main.py +13 -0
- deadtrace-0.1.0a1/corpus/python/ipython_display_hooks/pyproject.toml +9 -0
- deadtrace-0.1.0a1/corpus/python/lazy_export_relative_strings/CASE.md +5 -0
- deadtrace-0.1.0a1/corpus/python/lazy_export_relative_strings/CASE.toml +29 -0
- deadtrace-0.1.0a1/corpus/python/lazy_export_relative_strings/_lazy/__init__.py +1 -0
- deadtrace-0.1.0a1/corpus/python/lazy_export_relative_strings/_lazy/_impl/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/python/lazy_export_relative_strings/_lazy/_impl/tools.py +11 -0
- deadtrace-0.1.0a1/corpus/python/lazy_export_relative_strings/_tool.py +13 -0
- deadtrace-0.1.0a1/corpus/python/library_public_api/CASE.md +12 -0
- deadtrace-0.1.0a1/corpus/python/library_public_api/CASE.toml +75 -0
- deadtrace-0.1.0a1/corpus/python/library_public_api/pyproject.toml +3 -0
- deadtrace-0.1.0a1/corpus/python/library_public_api/textkit/__init__.py +4 -0
- deadtrace-0.1.0a1/corpus/python/library_public_api/textkit/_impl.py +14 -0
- deadtrace-0.1.0a1/corpus/python/library_public_api/textkit/models.py +9 -0
- deadtrace-0.1.0a1/corpus/python/library_public_api/textkit/utils.py +18 -0
- deadtrace-0.1.0a1/corpus/python/library_public_override/CASE.md +9 -0
- deadtrace-0.1.0a1/corpus/python/library_public_override/CASE.toml +39 -0
- deadtrace-0.1.0a1/corpus/python/library_public_override/pkg/__init__.py +3 -0
- deadtrace-0.1.0a1/corpus/python/library_public_override/pkg/_api.py +15 -0
- deadtrace-0.1.0a1/corpus/python/library_public_override/pkg/_impl.py +20 -0
- deadtrace-0.1.0a1/corpus/python/loaded_module_submodule_import/CASE.md +13 -0
- deadtrace-0.1.0a1/corpus/python/loaded_module_submodule_import/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/python/loaded_module_submodule_import/_legacy/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/python/loaded_module_submodule_import/_legacy/tables.py +5 -0
- deadtrace-0.1.0a1/corpus/python/loaded_module_submodule_import/_plugins/_shop/tables.py +5 -0
- deadtrace-0.1.0a1/corpus/python/loaded_module_submodule_import/_shop/__init__.py +2 -0
- deadtrace-0.1.0a1/corpus/python/loaded_module_submodule_import/_shop/tables.py +5 -0
- deadtrace-0.1.0a1/corpus/python/loaded_module_submodule_import/_tool.py +18 -0
- deadtrace-0.1.0a1/corpus/python/loop_receiver_flow/CASE.md +10 -0
- deadtrace-0.1.0a1/corpus/python/loop_receiver_flow/CASE.toml +25 -0
- deadtrace-0.1.0a1/corpus/python/loop_receiver_flow/_tool.py +23 -0
- deadtrace-0.1.0a1/corpus/python/loop_receiver_flow/pyproject.toml +4 -0
- deadtrace-0.1.0a1/corpus/python/method_on_unannotated_factory_result/CASE.md +9 -0
- deadtrace-0.1.0a1/corpus/python/method_on_unannotated_factory_result/CASE.toml +33 -0
- deadtrace-0.1.0a1/corpus/python/method_on_unannotated_factory_result/main.py +16 -0
- deadtrace-0.1.0a1/corpus/python/method_on_unannotated_factory_result/pyproject.toml +9 -0
- deadtrace-0.1.0a1/corpus/python/mixin_calls_subclass_method/CASE.md +7 -0
- deadtrace-0.1.0a1/corpus/python/mixin_calls_subclass_method/CASE.toml +33 -0
- deadtrace-0.1.0a1/corpus/python/mixin_calls_subclass_method/_tool.py +28 -0
- deadtrace-0.1.0a1/corpus/python/module_getattr_hook/CASE.md +6 -0
- deadtrace-0.1.0a1/corpus/python/module_getattr_hook/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/python/module_getattr_hook/_compat.py +16 -0
- deadtrace-0.1.0a1/corpus/python/module_getattr_hook/_tool.py +4 -0
- deadtrace-0.1.0a1/corpus/python/module_imported_by_name/CASE.md +10 -0
- deadtrace-0.1.0a1/corpus/python/module_imported_by_name/CASE.toml +33 -0
- deadtrace-0.1.0a1/corpus/python/module_imported_by_name/main.py +14 -0
- deadtrace-0.1.0a1/corpus/python/module_imported_by_name/plugins/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/python/module_imported_by_name/plugins/alpha.py +5 -0
- deadtrace-0.1.0a1/corpus/python/module_imported_by_name/plugins/beta.py +5 -0
- deadtrace-0.1.0a1/corpus/python/module_imported_by_name/pyproject.toml +9 -0
- deadtrace-0.1.0a1/corpus/python/module_imported_by_name/tools/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/python/module_imported_by_name/tools/unused.py +2 -0
- deadtrace-0.1.0a1/corpus/python/module_imported_for_a_value/CASE.md +9 -0
- deadtrace-0.1.0a1/corpus/python/module_imported_for_a_value/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/python/module_imported_for_a_value/config.py +9 -0
- deadtrace-0.1.0a1/corpus/python/module_imported_for_a_value/main.py +9 -0
- deadtrace-0.1.0a1/corpus/python/module_imported_for_a_value/pyproject.toml +9 -0
- deadtrace-0.1.0a1/corpus/python/nested_function_in_one_branch/CASE.md +9 -0
- deadtrace-0.1.0a1/corpus/python/nested_function_in_one_branch/CASE.toml +21 -0
- deadtrace-0.1.0a1/corpus/python/nested_function_in_one_branch/main.py +16 -0
- deadtrace-0.1.0a1/corpus/python/nested_function_in_one_branch/pyproject.toml +9 -0
- deadtrace-0.1.0a1/corpus/python/nominal_external_reflection/CASE.md +7 -0
- deadtrace-0.1.0a1/corpus/python/nominal_external_reflection/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/python/nominal_external_reflection/_tool.py +22 -0
- deadtrace-0.1.0a1/corpus/python/nominal_external_reflection/pyproject.toml +4 -0
- deadtrace-0.1.0a1/corpus/python/overload_signatures/CASE.md +11 -0
- deadtrace-0.1.0a1/corpus/python/overload_signatures/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/python/overload_signatures/main.py +41 -0
- deadtrace-0.1.0a1/corpus/python/overload_signatures/pyproject.toml +9 -0
- deadtrace-0.1.0a1/corpus/python/override_called_through_base_annotation/CASE.md +9 -0
- deadtrace-0.1.0a1/corpus/python/override_called_through_base_annotation/CASE.toml +39 -0
- deadtrace-0.1.0a1/corpus/python/override_called_through_base_annotation/main.py +21 -0
- deadtrace-0.1.0a1/corpus/python/override_called_through_base_annotation/pyproject.toml +9 -0
- deadtrace-0.1.0a1/corpus/python/override_reached_by_reference/CASE.md +8 -0
- deadtrace-0.1.0a1/corpus/python/override_reached_by_reference/CASE.toml +33 -0
- deadtrace-0.1.0a1/corpus/python/override_reached_by_reference/_tool.py +46 -0
- deadtrace-0.1.0a1/corpus/python/package_reexport/CASE.md +10 -0
- deadtrace-0.1.0a1/corpus/python/package_reexport/CASE.toml +33 -0
- deadtrace-0.1.0a1/corpus/python/package_reexport/main.py +8 -0
- deadtrace-0.1.0a1/corpus/python/package_reexport/pkg/__init__.py +4 -0
- deadtrace-0.1.0a1/corpus/python/package_reexport/pkg/_impl.py +11 -0
- deadtrace-0.1.0a1/corpus/python/package_reexport/pyproject.toml +9 -0
- deadtrace-0.1.0a1/corpus/python/project_decorator_without_call/CASE.md +9 -0
- deadtrace-0.1.0a1/corpus/python/project_decorator_without_call/CASE.toml +33 -0
- deadtrace-0.1.0a1/corpus/python/project_decorator_without_call/main.py +22 -0
- deadtrace-0.1.0a1/corpus/python/project_decorator_without_call/pyproject.toml +9 -0
- deadtrace-0.1.0a1/corpus/python/property_from_locals/CASE.md +6 -0
- deadtrace-0.1.0a1/corpus/python/property_from_locals/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/python/property_from_locals/_tool.py +23 -0
- deadtrace-0.1.0a1/corpus/python/public_object_fields/CASE.md +9 -0
- deadtrace-0.1.0a1/corpus/python/public_object_fields/CASE.toml +21 -0
- deadtrace-0.1.0a1/corpus/python/public_object_fields/pkg/__init__.py +1 -0
- deadtrace-0.1.0a1/corpus/python/public_object_fields/pkg/_api.py +6 -0
- deadtrace-0.1.0a1/corpus/python/public_object_fields/pkg/_objects.py +11 -0
- deadtrace-0.1.0a1/corpus/python/public_object_fields/pyproject.toml +1 -0
- deadtrace-0.1.0a1/corpus/python/public_return_api/CASE.md +6 -0
- deadtrace-0.1.0a1/corpus/python/public_return_api/CASE.toml +21 -0
- deadtrace-0.1.0a1/corpus/python/public_return_api/pkg/__init__.py +1 -0
- deadtrace-0.1.0a1/corpus/python/public_return_api/pkg/_api.py +5 -0
- deadtrace-0.1.0a1/corpus/python/public_return_api/pkg/_objects.py +6 -0
- deadtrace-0.1.0a1/corpus/python/public_return_api/pyproject.toml +1 -0
- deadtrace-0.1.0a1/corpus/python/pydantic_config_class/CASE.md +7 -0
- deadtrace-0.1.0a1/corpus/python/pydantic_config_class/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/python/pydantic_config_class/_tool.py +21 -0
- deadtrace-0.1.0a1/corpus/python/quoted_annotation_classes/CASE.md +7 -0
- deadtrace-0.1.0a1/corpus/python/quoted_annotation_classes/CASE.toml +39 -0
- deadtrace-0.1.0a1/corpus/python/quoted_annotation_classes/_tool.py +34 -0
- deadtrace-0.1.0a1/corpus/python/reexport_from_absent_module/CASE.md +6 -0
- deadtrace-0.1.0a1/corpus/python/reexport_from_absent_module/CASE.toml +39 -0
- deadtrace-0.1.0a1/corpus/python/reexport_from_absent_module/md/__init__.py +10 -0
- deadtrace-0.1.0a1/corpus/python/reexport_from_absent_module/md/_compat.py +3 -0
- deadtrace-0.1.0a1/corpus/python/reexport_from_absent_module/md/_impl.py +14 -0
- deadtrace-0.1.0a1/corpus/python/reexport_through_conditional_import/CASE.md +5 -0
- deadtrace-0.1.0a1/corpus/python/reexport_through_conditional_import/CASE.toml +21 -0
- deadtrace-0.1.0a1/corpus/python/reexport_through_conditional_import/_inet.py +2 -0
- deadtrace-0.1.0a1/corpus/python/reexport_through_conditional_import/_tool.py +13 -0
- deadtrace-0.1.0a1/corpus/python/reexport_through_conditional_import/_util.py +8 -0
- deadtrace-0.1.0a1/corpus/python/reflected_reexport/CASE.md +7 -0
- deadtrace-0.1.0a1/corpus/python/reflected_reexport/CASE.toml +21 -0
- deadtrace-0.1.0a1/corpus/python/reflected_reexport/api.py +1 -0
- deadtrace-0.1.0a1/corpus/python/reflected_reexport/main.py +6 -0
- deadtrace-0.1.0a1/corpus/python/reflected_reexport/pyproject.toml +4 -0
- deadtrace-0.1.0a1/corpus/python/reflected_reexport/worker.py +6 -0
- deadtrace-0.1.0a1/corpus/python/reserved_module_names/CASE.md +5 -0
- deadtrace-0.1.0a1/corpus/python/reserved_module_names/CASE.toml +21 -0
- deadtrace-0.1.0a1/corpus/python/reserved_module_names/_tool.py +14 -0
- deadtrace-0.1.0a1/corpus/python/returned_function_reference/CASE.md +8 -0
- deadtrace-0.1.0a1/corpus/python/returned_function_reference/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/python/returned_function_reference/main.py +15 -0
- deadtrace-0.1.0a1/corpus/python/returned_function_reference/pyproject.toml +9 -0
- deadtrace-0.1.0a1/corpus/python/script_in_tests_directory/CASE.md +6 -0
- deadtrace-0.1.0a1/corpus/python/script_in_tests_directory/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/python/script_in_tests_directory/tests/fuzz.py +14 -0
- deadtrace-0.1.0a1/corpus/python/script_in_tests_directory/tests/test_basic.py +2 -0
- deadtrace-0.1.0a1/corpus/python/script_run_by_file_name/CASE.md +4 -0
- deadtrace-0.1.0a1/corpus/python/script_run_by_file_name/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/python/script_run_by_file_name/_tool.py +14 -0
- deadtrace-0.1.0a1/corpus/python/script_run_by_file_name/_worker.py +9 -0
- deadtrace-0.1.0a1/corpus/python/scripts_and_main_modules/CASE.md +9 -0
- deadtrace-0.1.0a1/corpus/python/scripts_and_main_modules/CASE.toml +43 -0
- deadtrace-0.1.0a1/corpus/python/scripts_and_main_modules/_formatting.py +18 -0
- deadtrace-0.1.0a1/corpus/python/scripts_and_main_modules/_maintenance/__init__.py +0 -0
- deadtrace-0.1.0a1/corpus/python/scripts_and_main_modules/_maintenance/__main__.py +3 -0
- deadtrace-0.1.0a1/corpus/python/scripts_and_main_modules/_maintenance/cleanup.py +4 -0
- deadtrace-0.1.0a1/corpus/python/scripts_and_main_modules/pyproject.toml +3 -0
- deadtrace-0.1.0a1/corpus/python/scripts_and_main_modules/report.py +9 -0
- deadtrace-0.1.0a1/corpus/python/scripts_and_main_modules/tests/test_report.py +9 -0
- deadtrace-0.1.0a1/corpus/python/stand_in_for_provided_member/CASE.md +6 -0
- deadtrace-0.1.0a1/corpus/python/stand_in_for_provided_member/CASE.toml +21 -0
- deadtrace-0.1.0a1/corpus/python/stand_in_for_provided_member/_service.py +14 -0
- deadtrace-0.1.0a1/corpus/python/stand_in_for_provided_member/tests/test_service.py +13 -0
- deadtrace-0.1.0a1/corpus/python/star_import/CASE.md +9 -0
- deadtrace-0.1.0a1/corpus/python/star_import/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/python/star_import/helpers.py +10 -0
- deadtrace-0.1.0a1/corpus/python/star_import/main.py +5 -0
- deadtrace-0.1.0a1/corpus/python/star_import/pyproject.toml +9 -0
- deadtrace-0.1.0a1/corpus/python/stored_literal_reflection/CASE.md +7 -0
- deadtrace-0.1.0a1/corpus/python/stored_literal_reflection/CASE.toml +21 -0
- deadtrace-0.1.0a1/corpus/python/stored_literal_reflection/_tool.py +12 -0
- deadtrace-0.1.0a1/corpus/python/stored_literal_reflection/pyproject.toml +4 -0
- deadtrace-0.1.0a1/corpus/python/submodule_and_package_imports/CASE.md +11 -0
- deadtrace-0.1.0a1/corpus/python/submodule_and_package_imports/CASE.toml +27 -0
- deadtrace-0.1.0a1/corpus/python/submodule_and_package_imports/jobs/__init__.py +5 -0
- deadtrace-0.1.0a1/corpus/python/submodule_and_package_imports/jobs/cli.py +4 -0
- deadtrace-0.1.0a1/corpus/python/submodule_and_package_imports/jobs/nightly.py +12 -0
- deadtrace-0.1.0a1/corpus/python/submodule_and_package_imports/pyproject.toml +9 -0
- deadtrace-0.1.0a1/corpus/python/union_annotated_receiver/CASE.md +8 -0
- deadtrace-0.1.0a1/corpus/python/union_annotated_receiver/CASE.toml +21 -0
- deadtrace-0.1.0a1/corpus/python/union_annotated_receiver/_tool.py +24 -0
- deadtrace-0.1.0a1/corpus/python/unknown_receiver_needs_module/CASE.md +11 -0
- deadtrace-0.1.0a1/corpus/python/unknown_receiver_needs_module/CASE.toml +21 -0
- deadtrace-0.1.0a1/corpus/python/unknown_receiver_needs_module/_handles.py +3 -0
- deadtrace-0.1.0a1/corpus/python/unknown_receiver_needs_module/_legacy.py +3 -0
- deadtrace-0.1.0a1/corpus/python/unknown_receiver_needs_module/_tool.py +9 -0
- deadtrace-0.1.0a1/corpus/reference/fastapi_dishka_basic/CASE.md +12 -0
- deadtrace-0.1.0a1/corpus/reference/fastapi_dishka_basic/CASE.toml +33 -0
- deadtrace-0.1.0a1/corpus/reference/fastapi_dishka_basic/app/__init__.py +1 -0
- deadtrace-0.1.0a1/corpus/reference/fastapi_dishka_basic/app/domain.py +28 -0
- deadtrace-0.1.0a1/corpus/reference/fastapi_dishka_basic/app/main.py +12 -0
- deadtrace-0.1.0a1/corpus/reference/fastapi_dishka_basic/app/providers.py +20 -0
- deadtrace-0.1.0a1/corpus/reference/fastapi_dishka_basic/app/routes.py +12 -0
- deadtrace-0.1.0a1/corpus/reference/fastapi_dishka_basic/pyproject.toml +17 -0
- deadtrace-0.1.0a1/docs/adr/0001-decision-records-in-repository.md +58 -0
- deadtrace-0.1.0a1/docs/adr/0002-allow-rich-15.md +56 -0
- deadtrace-0.1.0a1/docs/adr/0003-pipeline-stage-instrumentation.md +59 -0
- deadtrace-0.1.0a1/docs/adr/0004-single-parse-per-module.md +48 -0
- deadtrace-0.1.0a1/docs/adr/0005-indexed-symbol-lookups.md +61 -0
- deadtrace-0.1.0a1/docs/adr/0006-known-violation-cases.md +54 -0
- deadtrace-0.1.0a1/docs/adr/0007-stdlib-ast-frontend.md +68 -0
- deadtrace-0.1.0a1/docs/adr/0008-python-core-soundness.md +82 -0
- deadtrace-0.1.0a1/docs/adr/0009-implicit-dispatch-and-names.md +57 -0
- deadtrace-0.1.0a1/docs/adr/0010-module-execution.md +62 -0
- deadtrace-0.1.0a1/docs/adr/0011-automatic-worlds.md +76 -0
- deadtrace-0.1.0a1/docs/adr/0012-library-hooks-and-escaped-classes.md +54 -0
- deadtrace-0.1.0a1/docs/adr/0013-django-installed-apps.md +59 -0
- deadtrace-0.1.0a1/docs/adr/0014-declarative-world-frameworks.md +32 -0
- deadtrace-0.1.0a1/docs/adr/0015-source-discovery-and-import-roots.md +56 -0
- deadtrace-0.1.0a1/docs/adr/0016-world-local-pytest-facts.md +64 -0
- deadtrace-0.1.0a1/docs/adr/0017-conventions-found-by-the-field-audit.md +71 -0
- deadtrace-0.1.0a1/docs/adr/0018-second-field-audit.md +72 -0
- deadtrace-0.1.0a1/docs/adr/0019-third-field-audit.md +58 -0
- deadtrace-0.1.0a1/docs/adr/0020-inherited-members-through-subclasses.md +30 -0
- deadtrace-0.1.0a1/docs/adr/0021-comparable-reports-across-source-changes.md +94 -0
- deadtrace-0.1.0a1/docs/adr/0022-fifth-field-audit-monorepo-and-workers.md +141 -0
- deadtrace-0.1.0a1/docs/adr/0023-deployment-commands-as-roots.md +98 -0
- deadtrace-0.1.0a1/docs/adr/0024-tests-imported-into-test-modules.md +45 -0
- deadtrace-0.1.0a1/docs/adr/0025-library-and-test-conventions-from-installed-packages.md +89 -0
- deadtrace-0.1.0a1/docs/adr/0026-more-conventions-from-installed-packages.md +65 -0
- deadtrace-0.1.0a1/docs/adr/0027-recall-of-dead-methods.md +82 -0
- deadtrace-0.1.0a1/docs/adr/0028-conventions-from-more-installed-packages.md +88 -0
- deadtrace-0.1.0a1/docs/adr/0029-reexports-from-absent-modules-and-classes-in-annotations.md +54 -0
- deadtrace-0.1.0a1/docs/adr/0030-input-error-integrity.md +56 -0
- deadtrace-0.1.0a1/docs/adr/0031-bounded-artifact-parsing.md +36 -0
- deadtrace-0.1.0a1/docs/adr/0032-receiver-flow-violations.md +26 -0
- deadtrace-0.1.0a1/docs/adr/0033-receiver-control-flow.md +67 -0
- deadtrace-0.1.0a1/docs/adr/0034-finite-local-dispatch-names.md +50 -0
- deadtrace-0.1.0a1/docs/adr/0035-external-reflection-provenance.md +29 -0
- deadtrace-0.1.0a1/docs/adr/0036-localize-external-value-reflection.md +55 -0
- deadtrace-0.1.0a1/docs/adr/0037-standard-nominal-reflection-families.md +56 -0
- deadtrace-0.1.0a1/docs/adr/0038-stored-literal-reflection.md +24 -0
- deadtrace-0.1.0a1/docs/adr/0039-preserve-stored-literal-callables.md +33 -0
- deadtrace-0.1.0a1/docs/adr/0040-reflected-reexport-violation.md +16 -0
- deadtrace-0.1.0a1/docs/adr/0041-reflected-module-export-graph.md +32 -0
- deadtrace-0.1.0a1/docs/adr/0042-literal-classinfo-consumer-summary.md +43 -0
- deadtrace-0.1.0a1/docs/adr/0043-public-object-field-violation.md +22 -0
- deadtrace-0.1.0a1/docs/adr/0044-public-object-field-api-closure.md +40 -0
- deadtrace-0.1.0a1/docs/adr/0045-public-return-api-violation.md +10 -0
- deadtrace-0.1.0a1/docs/adr/0046-declared-public-return-api.md +24 -0
- deadtrace-0.1.0a1/docs/adr/0047-field-direct-guard-attribution.md +25 -0
- deadtrace-0.1.0a1/docs/adr/0048-object-setattr-store-summary.md +30 -0
- deadtrace-0.1.0a1/docs/adr/0049-public-alpha-release.md +41 -0
- deadtrace-0.1.0a1/docs/adr/README.md +122 -0
- deadtrace-0.1.0a1/docs/analysis-contract.md +29 -0
- deadtrace-0.1.0a1/docs/architecture.md +20 -0
- deadtrace-0.1.0a1/docs/audit-2026-10-01.md +100 -0
- deadtrace-0.1.0a1/docs/external-reflection-results-2026-10-05.md +96 -0
- deadtrace-0.1.0a1/docs/finite-names-results-2026-10-05.md +63 -0
- deadtrace-0.1.0a1/docs/inspection-consumer-results-2026-10-05.md +55 -0
- deadtrace-0.1.0a1/docs/methodology.md +169 -0
- deadtrace-0.1.0a1/docs/public-object-api-results-2026-10-05.md +36 -0
- deadtrace-0.1.0a1/docs/public-return-api-results-2026-10-05.md +70 -0
- deadtrace-0.1.0a1/docs/pydantic-recall-review-2026-10-05.md +77 -0
- deadtrace-0.1.0a1/docs/quality-research-2026-10-05.md +116 -0
- deadtrace-0.1.0a1/docs/receiver-flow-results-2026-10-05.md +67 -0
- deadtrace-0.1.0a1/docs/reflected-reexports-results-2026-10-05.md +65 -0
- deadtrace-0.1.0a1/docs/releasing.md +44 -0
- deadtrace-0.1.0a1/docs/stored-reflection-results-2026-10-05.md +34 -0
- deadtrace-0.1.0a1/docs/support-matrix.md +24 -0
- deadtrace-0.1.0a1/fixtures/cases/escaped-callback-helper/CASE.md +4 -0
- deadtrace-0.1.0a1/fixtures/cases/escaped-callback-helper/CASE.toml +15 -0
- deadtrace-0.1.0a1/fixtures/cases/escaped-callback-helper/target.py +13 -0
- deadtrace-0.1.0a1/fixtures/cases/hidden-caller/CASE.md +4 -0
- deadtrace-0.1.0a1/fixtures/cases/hidden-caller/CASE.toml +15 -0
- deadtrace-0.1.0a1/fixtures/cases/hidden-caller/hidden.py +5 -0
- deadtrace-0.1.0a1/fixtures/cases/hidden-caller/target.py +2 -0
- deadtrace-0.1.0a1/fixtures/cases/invalid-assembly/CASE.md +4 -0
- deadtrace-0.1.0a1/fixtures/cases/invalid-assembly/CASE.toml +15 -0
- deadtrace-0.1.0a1/fixtures/cases/invalid-assembly/target.py +6 -0
- deadtrace-0.1.0a1/fixtures/cases/legacy-shared-helper/CASE.md +4 -0
- deadtrace-0.1.0a1/fixtures/cases/legacy-shared-helper/CASE.toml +15 -0
- deadtrace-0.1.0a1/fixtures/cases/legacy-shared-helper/target.py +11 -0
- deadtrace-0.1.0a1/fixtures/cases/live-di-chain/CASE.md +6 -0
- deadtrace-0.1.0a1/fixtures/cases/live-di-chain/CASE.toml +15 -0
- deadtrace-0.1.0a1/fixtures/cases/live-di-chain/target.py +15 -0
- deadtrace-0.1.0a1/fixtures/cases/world-isolation/CASE.md +4 -0
- deadtrace-0.1.0a1/fixtures/cases/world-isolation/CASE.toml +15 -0
- deadtrace-0.1.0a1/fixtures/cases/world-isolation/target.py +16 -0
- deadtrace-0.1.0a1/fixtures/known-violations/README.md +22 -0
- deadtrace-0.1.0a1/fixtures/recall-gaps/object_setattr_store/CASE.md +9 -0
- deadtrace-0.1.0a1/fixtures/recall-gaps/object_setattr_store/CASE.toml +15 -0
- deadtrace-0.1.0a1/fixtures/recall-gaps/object_setattr_store/_tool.py +13 -0
- deadtrace-0.1.0a1/fixtures/recall-gaps/object_setattr_store/pyproject.toml +4 -0
- deadtrace-0.1.0a1/pyproject.toml +95 -0
- deadtrace-0.1.0a1/scripts/release_artifacts.py +92 -0
- deadtrace-0.1.0a1/scripts/wheel_smoke.py +117 -0
- deadtrace-0.1.0a1/src/deadtrace/__init__.py +10 -0
- deadtrace-0.1.0a1/src/deadtrace/__main__.py +6 -0
- deadtrace-0.1.0a1/src/deadtrace/analysis.py +223 -0
- deadtrace-0.1.0a1/src/deadtrace/artifacts.py +87 -0
- deadtrace-0.1.0a1/src/deadtrace/baseline.py +199 -0
- deadtrace-0.1.0a1/src/deadtrace/benchmark.py +249 -0
- deadtrace-0.1.0a1/src/deadtrace/case_validator.py +272 -0
- deadtrace-0.1.0a1/src/deadtrace/cli.py +421 -0
- deadtrace-0.1.0a1/src/deadtrace/comparison.py +379 -0
- deadtrace-0.1.0a1/src/deadtrace/config.py +210 -0
- deadtrace-0.1.0a1/src/deadtrace/core.py +569 -0
- deadtrace-0.1.0a1/src/deadtrace/deployment.py +323 -0
- deadtrace-0.1.0a1/src/deadtrace/diagnostics.py +102 -0
- deadtrace-0.1.0a1/src/deadtrace/entry_points.py +123 -0
- deadtrace-0.1.0a1/src/deadtrace/findings.py +388 -0
- deadtrace-0.1.0a1/src/deadtrace/frameworks.py +3578 -0
- deadtrace-0.1.0a1/src/deadtrace/inventory.py +181 -0
- deadtrace-0.1.0a1/src/deadtrace/model.py +87 -0
- deadtrace-0.1.0a1/src/deadtrace/nominal_types.py +87 -0
- deadtrace-0.1.0a1/src/deadtrace/pytest_semantics.py +1310 -0
- deadtrace-0.1.0a1/src/deadtrace/python_frontend.py +4702 -0
- deadtrace-0.1.0a1/src/deadtrace/receiver_flow.py +79 -0
- deadtrace-0.1.0a1/src/deadtrace/report.py +68 -0
- deadtrace-0.1.0a1/src/deadtrace/scanner.py +378 -0
- deadtrace-0.1.0a1/src/deadtrace/semantic_report.py +513 -0
- deadtrace-0.1.0a1/src/deadtrace/target_environment.py +192 -0
- deadtrace-0.1.0a1/src/deadtrace/timing.py +98 -0
- deadtrace-0.1.0a1/tests/conftest.py +10 -0
- deadtrace-0.1.0a1/tests/oracle/test_fastapi_dishka_reference.py +46 -0
- deadtrace-0.1.0a1/tests/test_analysis.py +334 -0
- deadtrace-0.1.0a1/tests/test_auto_worlds.py +455 -0
- deadtrace-0.1.0a1/tests/test_benchmark.py +134 -0
- deadtrace-0.1.0a1/tests/test_bounded_inputs.py +200 -0
- deadtrace-0.1.0a1/tests/test_budget_check.py +67 -0
- deadtrace-0.1.0a1/tests/test_case_validator.py +156 -0
- deadtrace-0.1.0a1/tests/test_cli.py +415 -0
- deadtrace-0.1.0a1/tests/test_comparison.py +341 -0
- deadtrace-0.1.0a1/tests/test_config.py +291 -0
- deadtrace-0.1.0a1/tests/test_core.py +233 -0
- deadtrace-0.1.0a1/tests/test_deployment.py +142 -0
- deadtrace-0.1.0a1/tests/test_diagnostics.py +56 -0
- deadtrace-0.1.0a1/tests/test_django.py +158 -0
- deadtrace-0.1.0a1/tests/test_entry_points.py +130 -0
- deadtrace-0.1.0a1/tests/test_frameworks.py +791 -0
- deadtrace-0.1.0a1/tests/test_import_roots_and_dispatch.py +922 -0
- deadtrace-0.1.0a1/tests/test_input_failures.py +155 -0
- deadtrace-0.1.0a1/tests/test_inventory.py +222 -0
- deadtrace-0.1.0a1/tests/test_known_violations.py +40 -0
- deadtrace-0.1.0a1/tests/test_pytest_semantics.py +537 -0
- deadtrace-0.1.0a1/tests/test_python_frontend.py +493 -0
- deadtrace-0.1.0a1/tests/test_python_soundness.py +503 -0
- deadtrace-0.1.0a1/tests/test_recall_gaps.py +19 -0
- deadtrace-0.1.0a1/tests/test_receiver_flow.py +291 -0
- deadtrace-0.1.0a1/tests/test_reference_corpus.py +24 -0
- deadtrace-0.1.0a1/tests/test_release_artifacts.py +76 -0
- deadtrace-0.1.0a1/tests/test_report.py +59 -0
- deadtrace-0.1.0a1/tests/test_report_text.py +104 -0
- deadtrace-0.1.0a1/tests/test_shared_parse.py +74 -0
- deadtrace-0.1.0a1/tests/test_syntax_facts.py +163 -0
- deadtrace-0.1.0a1/tests/test_target_environment.py +113 -0
- deadtrace-0.1.0a1/tests/test_timing.py +59 -0
- 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,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,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.
|