├── .github ├── FUNDING.yml ├── dependabot.yml └── workflows │ ├── benchmark.yml │ ├── ci.yml │ ├── dev-release-test.yml │ └── release.yml ├── .gitignore ├── .pre-commit-config.yaml ├── .pre-commit-hooks.yaml ├── Cargo.lock ├── Cargo.toml ├── LICENSE ├── README.md ├── benchmarks ├── .gitignore ├── .python-version ├── README.md ├── main.py ├── pyproject.toml ├── results │ ├── 0.2.3.md │ ├── 0.3.1.md │ ├── 0.3.10.md │ ├── 0.3.11.md │ ├── 0.3.12.md │ ├── 0.3.2.md │ ├── 0.3.3.md │ ├── 0.3.4.md │ ├── 0.3.5.md │ ├── 0.3.6.md │ ├── 0.3.7.md │ └── latest.md ├── src │ ├── benchmark_runner.py │ ├── performance_monitor.py │ ├── report_generator.py │ └── tool_wrapper.py ├── test_data │ ├── large_requirements.txt │ ├── small_requirements.txt │ └── uv.lock └── uv.lock ├── fixtures ├── pipfile-tests │ ├── Pipfile │ └── Pipfile.lock ├── pipfile-vulnerable-tests │ └── Pipfile ├── requirements-tests-vulnerable │ └── requirements.txt └── requirements-tests │ ├── requirements-dev.txt │ └── requirements.txt ├── pyproject.toml ├── python └── pysentry │ └── __init__.py └── src ├── cache ├── audit.rs ├── mod.rs └── storage.rs ├── cli.rs ├── config.rs ├── dependency ├── mod.rs ├── resolvers │ ├── mod.rs │ ├── pip_tools.rs │ └── uv.rs └── scanner.rs ├── error.rs ├── lib.rs ├── main.rs ├── output ├── mod.rs ├── report.rs └── sarif.rs ├── parsers ├── lock.rs ├── mod.rs ├── pipfile.rs ├── pipfile_lock.rs ├── poetry_lock.rs ├── pylock.rs ├── pyproject.rs └── requirements.rs ├── providers ├── mod.rs ├── osv.rs ├── pypa.rs ├── pypi.rs └── retry.rs ├── python.rs ├── types.rs └── vulnerability ├── database.rs ├── matcher.rs └── mod.rs /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | buy_me_a_coffee: nyudenkov 2 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/.github/dependabot.yml -------------------------------------------------------------------------------- /.github/workflows/benchmark.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/.github/workflows/benchmark.yml -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.github/workflows/dev-release-test.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/.github/workflows/dev-release-test.yml -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/.github/workflows/release.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/.gitignore -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/.pre-commit-config.yaml -------------------------------------------------------------------------------- /.pre-commit-hooks.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/.pre-commit-hooks.yaml -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/Cargo.lock -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/Cargo.toml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/README.md -------------------------------------------------------------------------------- /benchmarks/.gitignore: -------------------------------------------------------------------------------- 1 | workdirs 2 | cache 3 | -------------------------------------------------------------------------------- /benchmarks/.python-version: -------------------------------------------------------------------------------- 1 | 3.11 2 | -------------------------------------------------------------------------------- /benchmarks/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/benchmarks/README.md -------------------------------------------------------------------------------- /benchmarks/main.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/benchmarks/main.py -------------------------------------------------------------------------------- /benchmarks/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/benchmarks/pyproject.toml -------------------------------------------------------------------------------- /benchmarks/results/0.2.3.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/benchmarks/results/0.2.3.md -------------------------------------------------------------------------------- /benchmarks/results/0.3.1.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/benchmarks/results/0.3.1.md -------------------------------------------------------------------------------- /benchmarks/results/0.3.10.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/benchmarks/results/0.3.10.md -------------------------------------------------------------------------------- /benchmarks/results/0.3.11.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/benchmarks/results/0.3.11.md -------------------------------------------------------------------------------- /benchmarks/results/0.3.12.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/benchmarks/results/0.3.12.md -------------------------------------------------------------------------------- /benchmarks/results/0.3.2.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/benchmarks/results/0.3.2.md -------------------------------------------------------------------------------- /benchmarks/results/0.3.3.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/benchmarks/results/0.3.3.md -------------------------------------------------------------------------------- /benchmarks/results/0.3.4.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/benchmarks/results/0.3.4.md -------------------------------------------------------------------------------- /benchmarks/results/0.3.5.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/benchmarks/results/0.3.5.md -------------------------------------------------------------------------------- /benchmarks/results/0.3.6.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/benchmarks/results/0.3.6.md -------------------------------------------------------------------------------- /benchmarks/results/0.3.7.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/benchmarks/results/0.3.7.md -------------------------------------------------------------------------------- /benchmarks/results/latest.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/benchmarks/results/latest.md -------------------------------------------------------------------------------- /benchmarks/src/benchmark_runner.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/benchmarks/src/benchmark_runner.py -------------------------------------------------------------------------------- /benchmarks/src/performance_monitor.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/benchmarks/src/performance_monitor.py -------------------------------------------------------------------------------- /benchmarks/src/report_generator.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/benchmarks/src/report_generator.py -------------------------------------------------------------------------------- /benchmarks/src/tool_wrapper.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/benchmarks/src/tool_wrapper.py -------------------------------------------------------------------------------- /benchmarks/test_data/large_requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/benchmarks/test_data/large_requirements.txt -------------------------------------------------------------------------------- /benchmarks/test_data/small_requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/benchmarks/test_data/small_requirements.txt -------------------------------------------------------------------------------- /benchmarks/test_data/uv.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/benchmarks/test_data/uv.lock -------------------------------------------------------------------------------- /benchmarks/uv.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/benchmarks/uv.lock -------------------------------------------------------------------------------- /fixtures/pipfile-tests/Pipfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/fixtures/pipfile-tests/Pipfile -------------------------------------------------------------------------------- /fixtures/pipfile-tests/Pipfile.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/fixtures/pipfile-tests/Pipfile.lock -------------------------------------------------------------------------------- /fixtures/pipfile-vulnerable-tests/Pipfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/fixtures/pipfile-vulnerable-tests/Pipfile -------------------------------------------------------------------------------- /fixtures/requirements-tests-vulnerable/requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/fixtures/requirements-tests-vulnerable/requirements.txt -------------------------------------------------------------------------------- /fixtures/requirements-tests/requirements-dev.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/fixtures/requirements-tests/requirements-dev.txt -------------------------------------------------------------------------------- /fixtures/requirements-tests/requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/fixtures/requirements-tests/requirements.txt -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/pyproject.toml -------------------------------------------------------------------------------- /python/pysentry/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/python/pysentry/__init__.py -------------------------------------------------------------------------------- /src/cache/audit.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/cache/audit.rs -------------------------------------------------------------------------------- /src/cache/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/cache/mod.rs -------------------------------------------------------------------------------- /src/cache/storage.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/cache/storage.rs -------------------------------------------------------------------------------- /src/cli.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/cli.rs -------------------------------------------------------------------------------- /src/config.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/config.rs -------------------------------------------------------------------------------- /src/dependency/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/dependency/mod.rs -------------------------------------------------------------------------------- /src/dependency/resolvers/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/dependency/resolvers/mod.rs -------------------------------------------------------------------------------- /src/dependency/resolvers/pip_tools.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/dependency/resolvers/pip_tools.rs -------------------------------------------------------------------------------- /src/dependency/resolvers/uv.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/dependency/resolvers/uv.rs -------------------------------------------------------------------------------- /src/dependency/scanner.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/dependency/scanner.rs -------------------------------------------------------------------------------- /src/error.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/error.rs -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/lib.rs -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/main.rs -------------------------------------------------------------------------------- /src/output/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/output/mod.rs -------------------------------------------------------------------------------- /src/output/report.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/output/report.rs -------------------------------------------------------------------------------- /src/output/sarif.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/output/sarif.rs -------------------------------------------------------------------------------- /src/parsers/lock.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/parsers/lock.rs -------------------------------------------------------------------------------- /src/parsers/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/parsers/mod.rs -------------------------------------------------------------------------------- /src/parsers/pipfile.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/parsers/pipfile.rs -------------------------------------------------------------------------------- /src/parsers/pipfile_lock.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/parsers/pipfile_lock.rs -------------------------------------------------------------------------------- /src/parsers/poetry_lock.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/parsers/poetry_lock.rs -------------------------------------------------------------------------------- /src/parsers/pylock.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/parsers/pylock.rs -------------------------------------------------------------------------------- /src/parsers/pyproject.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/parsers/pyproject.rs -------------------------------------------------------------------------------- /src/parsers/requirements.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/parsers/requirements.rs -------------------------------------------------------------------------------- /src/providers/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/providers/mod.rs -------------------------------------------------------------------------------- /src/providers/osv.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/providers/osv.rs -------------------------------------------------------------------------------- /src/providers/pypa.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/providers/pypa.rs -------------------------------------------------------------------------------- /src/providers/pypi.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/providers/pypi.rs -------------------------------------------------------------------------------- /src/providers/retry.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/providers/retry.rs -------------------------------------------------------------------------------- /src/python.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/python.rs -------------------------------------------------------------------------------- /src/types.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/types.rs -------------------------------------------------------------------------------- /src/vulnerability/database.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/vulnerability/database.rs -------------------------------------------------------------------------------- /src/vulnerability/matcher.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/vulnerability/matcher.rs -------------------------------------------------------------------------------- /src/vulnerability/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyudenkov/pysentry/HEAD/src/vulnerability/mod.rs --------------------------------------------------------------------------------