pysentry-rs 0.3.5__tar.gz → 0.3.7__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.

Potentially problematic release.


This version of pysentry-rs might be problematic. Click here for more details.

Files changed (77) hide show
  1. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/.github/dependabot.yml +0 -6
  2. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/.github/workflows/ci.yml +2 -0
  3. pysentry_rs-0.3.7/.pre-commit-hooks.yaml +10 -0
  4. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/Cargo.lock +14 -14
  5. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/Cargo.toml +6 -6
  6. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/PKG-INFO +8 -5
  7. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/README.md +7 -4
  8. pysentry_rs-0.3.7/benchmarks/results/0.3.5.md +141 -0
  9. pysentry_rs-0.3.7/benchmarks/results/0.3.6.md +141 -0
  10. pysentry_rs-0.3.7/benchmarks/results/latest.md +141 -0
  11. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/src/cli.rs +97 -71
  12. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/src/config.rs +4 -0
  13. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/src/dependency/scanner.rs +92 -39
  14. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/src/error.rs +1 -1
  15. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/src/lib.rs +13 -3
  16. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/src/output/report.rs +27 -2
  17. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/src/output/sarif.rs +12 -0
  18. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/src/parsers/lock.rs +245 -6
  19. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/src/parsers/mod.rs +62 -12
  20. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/src/parsers/pipfile.rs +9 -7
  21. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/src/parsers/pipfile_lock.rs +4 -4
  22. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/src/parsers/poetry_lock.rs +4 -4
  23. pysentry_rs-0.3.7/src/parsers/pylock.rs +771 -0
  24. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/src/parsers/pyproject.rs +13 -10
  25. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/src/parsers/requirements.rs +3 -3
  26. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/src/providers/osv.rs +1 -0
  27. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/src/providers/pypa.rs +47 -0
  28. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/src/providers/pypi.rs +1 -0
  29. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/src/vulnerability/database.rs +4 -0
  30. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/src/vulnerability/matcher.rs +68 -5
  31. pysentry_rs-0.3.5/.pre-commit-hooks.yaml +0 -10
  32. pysentry_rs-0.3.5/benchmarks/results/latest.md +0 -141
  33. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/.github/FUNDING.yml +0 -0
  34. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/.github/workflows/benchmark.yml +0 -0
  35. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/.github/workflows/release.yml +0 -0
  36. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/.gitignore +0 -0
  37. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/.pre-commit-config.yaml +0 -0
  38. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/LICENSE +0 -0
  39. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/benchmarks/.gitignore +0 -0
  40. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/benchmarks/.python-version +0 -0
  41. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/benchmarks/README.md +0 -0
  42. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/benchmarks/main.py +0 -0
  43. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/benchmarks/pyproject.toml +0 -0
  44. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/benchmarks/results/0.2.3.md +0 -0
  45. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/benchmarks/results/0.3.1.md +0 -0
  46. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/benchmarks/results/0.3.2.md +0 -0
  47. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/benchmarks/results/0.3.3.md +0 -0
  48. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/benchmarks/results/0.3.4.md +0 -0
  49. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/benchmarks/src/benchmark_runner.py +0 -0
  50. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/benchmarks/src/performance_monitor.py +0 -0
  51. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/benchmarks/src/report_generator.py +0 -0
  52. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/benchmarks/src/tool_wrapper.py +0 -0
  53. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/benchmarks/test_data/large_requirements.txt +0 -0
  54. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/benchmarks/test_data/small_requirements.txt +0 -0
  55. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/benchmarks/test_data/uv.lock +0 -0
  56. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/benchmarks/uv.lock +0 -0
  57. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/fixtures/pipfile-tests/Pipfile +0 -0
  58. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/fixtures/pipfile-tests/Pipfile.lock +0 -0
  59. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/fixtures/pipfile-vulnerable-tests/Pipfile +0 -0
  60. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/fixtures/requirements-tests/requirements-dev.txt +0 -0
  61. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/fixtures/requirements-tests/requirements.txt +0 -0
  62. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/fixtures/requirements-tests-vulnerable/requirements.txt +0 -0
  63. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/pyproject.toml +0 -0
  64. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/python/pysentry/__init__.py +0 -0
  65. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/src/cache/audit.rs +0 -0
  66. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/src/cache/mod.rs +0 -0
  67. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/src/cache/storage.rs +0 -0
  68. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/src/dependency/mod.rs +0 -0
  69. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/src/dependency/resolvers/mod.rs +0 -0
  70. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/src/dependency/resolvers/pip_tools.rs +0 -0
  71. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/src/dependency/resolvers/uv.rs +0 -0
  72. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/src/main.rs +0 -0
  73. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/src/output/mod.rs +0 -0
  74. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/src/providers/mod.rs +0 -0
  75. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/src/python.rs +0 -0
  76. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/src/types.rs +0 -0
  77. {pysentry_rs-0.3.5 → pysentry_rs-0.3.7}/src/vulnerability/mod.rs +0 -0
@@ -11,16 +11,10 @@ updates:
11
11
  patterns:
12
12
  - "*"
13
13
 
14
- # Python dependencies (pyproject.toml only)
15
14
  - package-ecosystem: "pip"
16
15
  directory: "/"
17
16
  schedule:
18
17
  interval: "weekly"
19
- open-pull-requests-limit: 10
20
- allow:
21
- - dependency-type: "all"
22
- ignore:
23
- - dependency-name: "*"
24
18
  groups:
25
19
  python-dependencies:
26
20
  patterns:
@@ -10,6 +10,7 @@ on:
10
10
  - ".editorconfig"
11
11
  - ".github/dependabot.yml"
12
12
  - ".github/FUNDING.yml"
13
+ - ".pre-commit-hooks.yaml"
13
14
  pull_request:
14
15
  branches: [main]
15
16
  paths-ignore:
@@ -19,6 +20,7 @@ on:
19
20
  - ".editorconfig"
20
21
  - ".github/dependabot.yml"
21
22
  - ".github/FUNDING.yml"
23
+ - ".pre-commit-hooks.yaml"
22
24
 
23
25
  env:
24
26
  CARGO_TERM_COLOR: always
@@ -0,0 +1,10 @@
1
+ - id: pysentry
2
+ name: pysentry (DEPRECATED - moved to nyudenkov/pysentry-pre-commit)
3
+ description: "⚠️ DEPRECATED - See github.com/nyudenkov/pysentry-pre-commit"
4
+ entry: pysentry-rs
5
+ language: python
6
+ always_run: true
7
+ additional_dependencies:
8
+ ["pysentry-rs==0.3.5", "uv==0.8.9", "pip-tools==7.5.0"]
9
+ minimum_pre_commit_version: "2.9.2"
10
+ types: [python]
@@ -1137,7 +1137,7 @@ dependencies = [
1137
1137
 
1138
1138
  [[package]]
1139
1139
  name = "pysentry"
1140
- version = "0.3.5"
1140
+ version = "0.3.7"
1141
1141
  dependencies = [
1142
1142
  "anyhow",
1143
1143
  "async-trait",
@@ -1277,9 +1277,9 @@ dependencies = [
1277
1277
 
1278
1278
  [[package]]
1279
1279
  name = "regex"
1280
- version = "1.11.1"
1280
+ version = "1.11.2"
1281
1281
  source = "registry+https://github.com/rust-lang/crates.io-index"
1282
- checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"
1282
+ checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912"
1283
1283
  dependencies = [
1284
1284
  "aho-corasick",
1285
1285
  "memchr",
@@ -1512,9 +1512,9 @@ dependencies = [
1512
1512
 
1513
1513
  [[package]]
1514
1514
  name = "serde_json"
1515
- version = "1.0.142"
1515
+ version = "1.0.143"
1516
1516
  source = "registry+https://github.com/rust-lang/crates.io-index"
1517
- checksum = "030fedb782600dcbd6f02d479bf0d817ac3bb40d644745b769d6a96bc3afc5a7"
1517
+ checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a"
1518
1518
  dependencies = [
1519
1519
  "itoa",
1520
1520
  "memchr",
@@ -1686,31 +1686,31 @@ checksum = "e502f78cdbb8ba4718f566c418c52bc729126ffd16baee5baa718cf25dd5a69a"
1686
1686
 
1687
1687
  [[package]]
1688
1688
  name = "tempfile"
1689
- version = "3.20.0"
1689
+ version = "3.21.0"
1690
1690
  source = "registry+https://github.com/rust-lang/crates.io-index"
1691
- checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1"
1691
+ checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e"
1692
1692
  dependencies = [
1693
1693
  "fastrand",
1694
1694
  "getrandom 0.3.3",
1695
1695
  "once_cell",
1696
1696
  "rustix",
1697
- "windows-sys 0.59.0",
1697
+ "windows-sys 0.60.2",
1698
1698
  ]
1699
1699
 
1700
1700
  [[package]]
1701
1701
  name = "thiserror"
1702
- version = "2.0.15"
1702
+ version = "2.0.16"
1703
1703
  source = "registry+https://github.com/rust-lang/crates.io-index"
1704
- checksum = "80d76d3f064b981389ecb4b6b7f45a0bf9fdac1d5b9204c7bd6714fecc302850"
1704
+ checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0"
1705
1705
  dependencies = [
1706
1706
  "thiserror-impl",
1707
1707
  ]
1708
1708
 
1709
1709
  [[package]]
1710
1710
  name = "thiserror-impl"
1711
- version = "2.0.15"
1711
+ version = "2.0.16"
1712
1712
  source = "registry+https://github.com/rust-lang/crates.io-index"
1713
- checksum = "44d29feb33e986b6ea906bd9c3559a856983f92371b3eaa5e83782a351623de0"
1713
+ checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960"
1714
1714
  dependencies = [
1715
1715
  "proc-macro2",
1716
1716
  "quote",
@@ -2524,9 +2524,9 @@ dependencies = [
2524
2524
 
2525
2525
  [[package]]
2526
2526
  name = "zip"
2527
- version = "4.3.0"
2527
+ version = "4.5.0"
2528
2528
  source = "registry+https://github.com/rust-lang/crates.io-index"
2529
- checksum = "9aed4ac33e8eb078c89e6cbb1d5c4c7703ec6d299fc3e7c3695af8f8b423468b"
2529
+ checksum = "8835eb39822904d39cb19465de1159e05d371973f0c6df3a365ad50565ddc8b9"
2530
2530
  dependencies = [
2531
2531
  "arbitrary",
2532
2532
  "crc32fast",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "pysentry"
3
- version = "0.3.5"
3
+ version = "0.3.7"
4
4
  edition = "2021"
5
5
  rust-version = "1.79"
6
6
  description = "Security vulnerability auditing for Python packages"
@@ -32,17 +32,17 @@ futures = "0.3.31"
32
32
  owo-colors = "4.2.2"
33
33
  pep440_rs = "0.7.3"
34
34
  pyo3 = { version = "0.25.1", features = ["extension-module"], optional = true }
35
- regex = "1.11.1"
35
+ regex = "1.11.2"
36
36
  reqwest = { version = "0.12.23", features = ["json", "stream", "rustls-tls-native-roots"], default-features = false }
37
37
  rustc-hash = "2.1.1"
38
38
  serde = { version = "1.0.219", features = ["derive"] }
39
- serde_json = "1.0.142"
39
+ serde_json = "1.0.143"
40
40
  serde_yaml = "0.9.34"
41
41
  sha2 = "0.10.9"
42
- tempfile = "3.20.0"
43
- thiserror = "2.0.15"
42
+ tempfile = "3.21.0"
43
+ thiserror = "2.0.16"
44
44
  tokio = { version = "1.47.1", features = ["fs", "io-util", "rt-multi-thread", "macros", "process"] }
45
45
  toml = "0.9.5"
46
46
  tracing = "0.1.41"
47
47
  tracing-subscriber = { version = "0.3.19", features = ["env-filter"] }
48
- zip = { version = "4.3.0", default-features = false, features = ["deflate"] }
48
+ zip = { version = "4.5.0", default-features = false, features = ["deflate"] }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pysentry-rs
3
- Version: 0.3.5
3
+ Version: 0.3.7
4
4
  Classifier: Development Status :: 4 - Beta
5
5
  Classifier: Intended Audience :: Developers
6
6
  Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
@@ -27,6 +27,7 @@ Project-URL: Issues, https://github.com/nyudenkov/pysentry/issues
27
27
  # 🐍 PySentry
28
28
 
29
29
  [![OSV Integration](https://img.shields.io/badge/OSV-Integrated-blue)](https://google.github.io/osv.dev/)
30
+ [![PyPI Downloads](https://static.pepy.tech/badge/pysentry-rs/week)](https://pepy.tech/projects/pysentry-rs)
30
31
 
31
32
  [Help to test and improve](https://github.com/nyudenkov/pysentry/issues/12) | [Latest PySentry - pip-audit benchmark](benchmarks/results/latest.md)
32
33
 
@@ -36,11 +37,11 @@ A fast, reliable security vulnerability scanner for Python projects, written in
36
37
 
37
38
  ## Overview
38
39
 
39
- PySentry audits Python projects for known security vulnerabilities by analyzing dependency files (`uv.lock`, `poetry.lock`, `Pipfile.lock`, `pyproject.toml`, `Pipfile`, `requirements.txt`) and cross-referencing them against multiple vulnerability databases. It provides comprehensive reporting with support for various output formats and filtering options.
40
+ PySentry audits Python projects for known security vulnerabilities by analyzing dependency files (`uv.lock`, `poetry.lock`, `Pipfile.lock`, `pylock.toml`, `pyproject.toml`, `Pipfile`, `requirements.txt`) and cross-referencing them against multiple vulnerability databases. It provides comprehensive reporting with support for various output formats and filtering options.
40
41
 
41
42
  ## Key Features
42
43
 
43
- - **Multiple Project Formats**: Supports `uv.lock`, `poetry.lock`, `Pipfile.lock`, `pyproject.toml`, `Pipfile`, and `requirements.txt` files
44
+ - **Multiple Project Formats**: Supports `uv.lock`, `poetry.lock`, `Pipfile.lock`, `pylock.toml`, `pyproject.toml`, `Pipfile`, and `requirements.txt` files
44
45
  - **External Resolver Integration**: Leverages `uv` and `pip-tools` for accurate requirements.txt constraint solving
45
46
  - **Multiple Data Sources**:
46
47
  - PyPA Advisory Database (default)
@@ -299,7 +300,8 @@ Add PySentry to your `.pre-commit-config.yaml`:
299
300
 
300
301
  ```yaml
301
302
  repos:
302
- - repo: https://github.com/nyudenkov/pysentry
303
+ - repo: https://github.com/pysentry/pysentry-pre-commit
304
+ rev: v0.3.6
303
305
  hooks:
304
306
  - id: pysentry # default pysentry settings
305
307
  ```
@@ -308,7 +310,8 @@ repos:
308
310
 
309
311
  ```yaml
310
312
  repos:
311
- - repo: https://github.com/nyudenkov/pysentry
313
+ - repo: https://github.com/pysentry/pysentry-pre-commit
314
+ rev: v0.3.6
312
315
  hooks:
313
316
  - id: pysentry
314
317
  args: ["--sources", "pypa,osv", "--fail-on", "high"]
@@ -1,6 +1,7 @@
1
1
  # 🐍 PySentry
2
2
 
3
3
  [![OSV Integration](https://img.shields.io/badge/OSV-Integrated-blue)](https://google.github.io/osv.dev/)
4
+ [![PyPI Downloads](https://static.pepy.tech/badge/pysentry-rs/week)](https://pepy.tech/projects/pysentry-rs)
4
5
 
5
6
  [Help to test and improve](https://github.com/nyudenkov/pysentry/issues/12) | [Latest PySentry - pip-audit benchmark](benchmarks/results/latest.md)
6
7
 
@@ -10,11 +11,11 @@ A fast, reliable security vulnerability scanner for Python projects, written in
10
11
 
11
12
  ## Overview
12
13
 
13
- PySentry audits Python projects for known security vulnerabilities by analyzing dependency files (`uv.lock`, `poetry.lock`, `Pipfile.lock`, `pyproject.toml`, `Pipfile`, `requirements.txt`) and cross-referencing them against multiple vulnerability databases. It provides comprehensive reporting with support for various output formats and filtering options.
14
+ PySentry audits Python projects for known security vulnerabilities by analyzing dependency files (`uv.lock`, `poetry.lock`, `Pipfile.lock`, `pylock.toml`, `pyproject.toml`, `Pipfile`, `requirements.txt`) and cross-referencing them against multiple vulnerability databases. It provides comprehensive reporting with support for various output formats and filtering options.
14
15
 
15
16
  ## Key Features
16
17
 
17
- - **Multiple Project Formats**: Supports `uv.lock`, `poetry.lock`, `Pipfile.lock`, `pyproject.toml`, `Pipfile`, and `requirements.txt` files
18
+ - **Multiple Project Formats**: Supports `uv.lock`, `poetry.lock`, `Pipfile.lock`, `pylock.toml`, `pyproject.toml`, `Pipfile`, and `requirements.txt` files
18
19
  - **External Resolver Integration**: Leverages `uv` and `pip-tools` for accurate requirements.txt constraint solving
19
20
  - **Multiple Data Sources**:
20
21
  - PyPA Advisory Database (default)
@@ -273,7 +274,8 @@ Add PySentry to your `.pre-commit-config.yaml`:
273
274
 
274
275
  ```yaml
275
276
  repos:
276
- - repo: https://github.com/nyudenkov/pysentry
277
+ - repo: https://github.com/pysentry/pysentry-pre-commit
278
+ rev: v0.3.6
277
279
  hooks:
278
280
  - id: pysentry # default pysentry settings
279
281
  ```
@@ -282,7 +284,8 @@ repos:
282
284
 
283
285
  ```yaml
284
286
  repos:
285
- - repo: https://github.com/nyudenkov/pysentry
287
+ - repo: https://github.com/pysentry/pysentry-pre-commit
288
+ rev: v0.3.6
286
289
  hooks:
287
290
  - id: pysentry
288
291
  args: ["--sources", "pypa,osv", "--fail-on", "high"]
@@ -0,0 +1,141 @@
1
+ # PySentry - pip-audit Benchmark Report
2
+
3
+ **Generated:** 2025-08-18 17:01:27
4
+ **Duration:** 1m 57.61s
5
+ **Total Tests:** 20
6
+
7
+ ## Executive Summary
8
+
9
+ **Overall Success Rate:** 100.0% (20/20 successful runs)
10
+
11
+ ### Small_Requirements Dataset - Cold Cache
12
+ - **Fastest:** pysentry-pypi (0.326s) - 27.96x faster than slowest
13
+ - **Memory Efficient:** pysentry-osv (11.90 MB) - 7.77x less memory than highest
14
+
15
+ ### Small_Requirements Dataset - Hot Cache
16
+ - **Fastest:** pysentry-pypi (0.227s) - 34.73x faster than slowest
17
+ - **Memory Efficient:** pysentry-pypi (9.57 MB) - 10.54x less memory than highest
18
+
19
+ ### Large_Requirements Dataset - Cold Cache
20
+ - **Fastest:** pysentry-pypi (0.810s) - 25.84x faster than slowest
21
+ - **Memory Efficient:** pysentry-osv (11.85 MB) - 7.91x less memory than highest
22
+
23
+ ### Large_Requirements Dataset - Hot Cache
24
+ - **Fastest:** pysentry-pypi (0.667s) - 23.10x faster than slowest
25
+ - **Memory Efficient:** pysentry-pypi (9.42 MB) - 10.74x less memory than highest
26
+
27
+ ## Test Environment
28
+
29
+ - **Platform:** Linux-6.11.0-1018-azure-x86_64-with-glibc2.39
30
+ - **Python Version:** 3.11.13
31
+ - **CPU Cores:** 4
32
+ - **Total Memory:** 15.62 GB
33
+ - **Available Memory:** 14.63 GB
34
+
35
+ ## Performance Comparison
36
+
37
+ ### Small_Requirements Dataset - Cold Cache
38
+
39
+ #### Execution Time Comparison
40
+
41
+ | Tool Configuration | Execution Time | Relative Performance |
42
+ |---------------------|---------------------|---------------------|
43
+ | 🥇 pysentry-pypi | 0.326s | 1.00x |
44
+ | 🥈 pysentry-osv | 1.027s | 3.15x |
45
+ | pysentry-all-sources | 1.188s | 3.65x |
46
+ | pysentry-pypa | 1.232s | 3.78x |
47
+ | pip-audit-default | 9.108s | 27.96x |
48
+
49
+ #### Memory Usage Comparison
50
+
51
+ | Tool Configuration | Peak Memory | Relative Performance |
52
+ |---------------------|---------------------|---------------------|
53
+ | 🥇 pysentry-osv | 11.90 MB | 1.00x |
54
+ | 🥈 pysentry-pypi | 13.23 MB | 1.11x |
55
+ | pip-audit-default | 45.44 MB | 3.82x |
56
+ | pysentry-pypa | 75.45 MB | 6.34x |
57
+ | pysentry-all-sources | 92.43 MB | 7.77x |
58
+
59
+ ### Small_Requirements Dataset - Hot Cache
60
+
61
+ #### Execution Time Comparison
62
+
63
+ | Tool Configuration | Execution Time | Relative Performance |
64
+ |---------------------|---------------------|---------------------|
65
+ | 🥇 pysentry-pypi | 0.227s | 1.00x |
66
+ | 🥈 pysentry-osv | 0.917s | 4.04x |
67
+ | pysentry-all-sources | 1.036s | 4.57x |
68
+ | pysentry-pypa | 1.107s | 4.88x |
69
+ | pip-audit-default | 7.881s | 34.73x |
70
+
71
+ #### Memory Usage Comparison
72
+
73
+ | Tool Configuration | Peak Memory | Relative Performance |
74
+ |---------------------|---------------------|---------------------|
75
+ | 🥇 pysentry-pypi | 9.57 MB | 1.00x |
76
+ | 🥈 pysentry-osv | 10.85 MB | 1.13x |
77
+ | pip-audit-default | 44.36 MB | 4.63x |
78
+ | pysentry-pypa | 53.60 MB | 5.60x |
79
+ | pysentry-all-sources | 100.87 MB | 10.54x |
80
+
81
+ ### Large_Requirements Dataset - Cold Cache
82
+
83
+ #### Execution Time Comparison
84
+
85
+ | Tool Configuration | Execution Time | Relative Performance |
86
+ |---------------------|---------------------|---------------------|
87
+ | 🥇 pysentry-pypi | 0.810s | 1.00x |
88
+ | 🥈 pysentry-pypa | 1.324s | 1.63x |
89
+ | pysentry-osv | 3.834s | 4.73x |
90
+ | pysentry-all-sources | 3.965s | 4.89x |
91
+ | pip-audit-default | 20.942s | 25.84x |
92
+
93
+ #### Memory Usage Comparison
94
+
95
+ | Tool Configuration | Peak Memory | Relative Performance |
96
+ |---------------------|---------------------|---------------------|
97
+ | 🥇 pysentry-osv | 11.85 MB | 1.00x |
98
+ | 🥈 pysentry-pypi | 13.98 MB | 1.18x |
99
+ | pip-audit-default | 47.18 MB | 3.98x |
100
+ | pysentry-pypa | 71.19 MB | 6.01x |
101
+ | pysentry-all-sources | 93.71 MB | 7.91x |
102
+
103
+ ### Large_Requirements Dataset - Hot Cache
104
+
105
+ #### Execution Time Comparison
106
+
107
+ | Tool Configuration | Execution Time | Relative Performance |
108
+ |---------------------|---------------------|---------------------|
109
+ | 🥇 pysentry-pypi | 0.667s | 1.00x |
110
+ | 🥈 pysentry-pypa | 1.321s | 1.98x |
111
+ | pysentry-all-sources | 3.341s | 5.01x |
112
+ | pysentry-osv | 3.600s | 5.40x |
113
+ | pip-audit-default | 15.406s | 23.10x |
114
+
115
+ #### Memory Usage Comparison
116
+
117
+ | Tool Configuration | Peak Memory | Relative Performance |
118
+ |---------------------|---------------------|---------------------|
119
+ | 🥇 pysentry-pypi | 9.42 MB | 1.00x |
120
+ | 🥈 pysentry-osv | 10.72 MB | 1.14x |
121
+ | pip-audit-default | 47.33 MB | 5.02x |
122
+ | pysentry-pypa | 72.12 MB | 7.65x |
123
+ | pysentry-all-sources | 101.22 MB | 10.74x |
124
+
125
+ ## Detailed Analysis
126
+
127
+ ### Pysentry Performance
128
+
129
+ - **Execution Time:** Avg: 1.620s, Min: 0.227s, Max: 3.965s
130
+
131
+ - **Memory Usage:** Avg: 47.01 MB, Min: 9.42 MB, Max: 101.22 MB
132
+
133
+ - **Success Rate:** 100.0% (16/16)
134
+
135
+ ### Pip-Audit Performance
136
+
137
+ - **Execution Time:** Avg: 13.334s, Min: 7.881s, Max: 20.942s
138
+
139
+ - **Memory Usage:** Avg: 46.08 MB, Min: 44.36 MB, Max: 47.33 MB
140
+
141
+ - **Success Rate:** 100.0% (4/4)
@@ -0,0 +1,141 @@
1
+ # PySentry - pip-audit Benchmark Report
2
+
3
+ **Generated:** 2025-08-21 19:52:35
4
+ **Duration:** 1m 56.44s
5
+ **Total Tests:** 20
6
+
7
+ ## Executive Summary
8
+
9
+ **Overall Success Rate:** 100.0% (20/20 successful runs)
10
+
11
+ ### Small_Requirements Dataset - Cold Cache
12
+ - **Fastest:** pysentry-pypi (0.250s) - 35.37x faster than slowest
13
+ - **Memory Efficient:** pysentry-osv (11.03 MB) - 9.68x less memory than highest
14
+
15
+ ### Small_Requirements Dataset - Hot Cache
16
+ - **Fastest:** pysentry-pypi (0.221s) - 35.46x faster than slowest
17
+ - **Memory Efficient:** pysentry-osv (10.81 MB) - 9.68x less memory than highest
18
+
19
+ ### Large_Requirements Dataset - Cold Cache
20
+ - **Fastest:** pysentry-pypi (0.722s) - 27.16x faster than slowest
21
+ - **Memory Efficient:** pysentry-osv (10.93 MB) - 9.84x less memory than highest
22
+
23
+ ### Large_Requirements Dataset - Hot Cache
24
+ - **Fastest:** pysentry-pypi (0.686s) - 23.48x faster than slowest
25
+ - **Memory Efficient:** pysentry-osv (11.07 MB) - 9.83x less memory than highest
26
+
27
+ ## Test Environment
28
+
29
+ - **Platform:** Linux-6.11.0-1018-azure-x86_64-with-glibc2.39
30
+ - **Python Version:** 3.11.13
31
+ - **CPU Cores:** 4
32
+ - **Total Memory:** 15.62 GB
33
+ - **Available Memory:** 14.63 GB
34
+
35
+ ## Performance Comparison
36
+
37
+ ### Small_Requirements Dataset - Cold Cache
38
+
39
+ #### Execution Time Comparison
40
+
41
+ | Tool Configuration | Execution Time | Relative Performance |
42
+ |---------------------|---------------------|---------------------|
43
+ | 🥇 pysentry-pypi | 0.250s | 1.00x |
44
+ | 🥈 pysentry-osv | 1.045s | 4.18x |
45
+ | pysentry-all-sources | 1.152s | 4.60x |
46
+ | pysentry-pypa | 1.155s | 4.61x |
47
+ | pip-audit-default | 8.852s | 35.37x |
48
+
49
+ #### Memory Usage Comparison
50
+
51
+ | Tool Configuration | Peak Memory | Relative Performance |
52
+ |---------------------|---------------------|---------------------|
53
+ | 🥇 pysentry-osv | 11.03 MB | 1.00x |
54
+ | 🥈 pysentry-pypi | 11.64 MB | 1.06x |
55
+ | pip-audit-default | 45.64 MB | 4.14x |
56
+ | pysentry-pypa | 75.38 MB | 6.84x |
57
+ | pysentry-all-sources | 106.78 MB | 9.68x |
58
+
59
+ ### Small_Requirements Dataset - Hot Cache
60
+
61
+ #### Execution Time Comparison
62
+
63
+ | Tool Configuration | Execution Time | Relative Performance |
64
+ |---------------------|---------------------|---------------------|
65
+ | 🥇 pysentry-pypi | 0.221s | 1.00x |
66
+ | 🥈 pysentry-pypa | 0.729s | 3.29x |
67
+ | pysentry-osv | 0.982s | 4.43x |
68
+ | pysentry-all-sources | 1.112s | 5.02x |
69
+ | pip-audit-default | 7.854s | 35.46x |
70
+
71
+ #### Memory Usage Comparison
72
+
73
+ | Tool Configuration | Peak Memory | Relative Performance |
74
+ |---------------------|---------------------|---------------------|
75
+ | 🥇 pysentry-osv | 10.81 MB | 1.00x |
76
+ | 🥈 pysentry-pypi | 11.93 MB | 1.10x |
77
+ | pip-audit-default | 44.88 MB | 4.15x |
78
+ | pysentry-pypa | 69.38 MB | 6.42x |
79
+ | pysentry-all-sources | 104.60 MB | 9.68x |
80
+
81
+ ### Large_Requirements Dataset - Cold Cache
82
+
83
+ #### Execution Time Comparison
84
+
85
+ | Tool Configuration | Execution Time | Relative Performance |
86
+ |---------------------|---------------------|---------------------|
87
+ | 🥇 pysentry-pypi | 0.722s | 1.00x |
88
+ | 🥈 pysentry-pypa | 1.258s | 1.74x |
89
+ | pysentry-all-sources | 3.183s | 4.41x |
90
+ | pysentry-osv | 3.714s | 5.14x |
91
+ | pip-audit-default | 19.619s | 27.16x |
92
+
93
+ #### Memory Usage Comparison
94
+
95
+ | Tool Configuration | Peak Memory | Relative Performance |
96
+ |---------------------|---------------------|---------------------|
97
+ | 🥇 pysentry-osv | 10.93 MB | 1.00x |
98
+ | 🥈 pysentry-pypi | 14.27 MB | 1.31x |
99
+ | pip-audit-default | 47.34 MB | 4.33x |
100
+ | pysentry-pypa | 74.92 MB | 6.85x |
101
+ | pysentry-all-sources | 107.52 MB | 9.84x |
102
+
103
+ ### Large_Requirements Dataset - Hot Cache
104
+
105
+ #### Execution Time Comparison
106
+
107
+ | Tool Configuration | Execution Time | Relative Performance |
108
+ |---------------------|---------------------|---------------------|
109
+ | 🥇 pysentry-pypi | 0.686s | 1.00x |
110
+ | 🥈 pysentry-pypa | 1.206s | 1.76x |
111
+ | pysentry-all-sources | 3.464s | 5.05x |
112
+ | pysentry-osv | 3.799s | 5.54x |
113
+ | pip-audit-default | 16.105s | 23.48x |
114
+
115
+ #### Memory Usage Comparison
116
+
117
+ | Tool Configuration | Peak Memory | Relative Performance |
118
+ |---------------------|---------------------|---------------------|
119
+ | 🥇 pysentry-osv | 11.07 MB | 1.00x |
120
+ | 🥈 pysentry-pypi | 11.27 MB | 1.02x |
121
+ | pip-audit-default | 47.18 MB | 4.26x |
122
+ | pysentry-pypa | 52.84 MB | 4.77x |
123
+ | pysentry-all-sources | 108.84 MB | 9.83x |
124
+
125
+ ## Detailed Analysis
126
+
127
+ ### Pysentry Performance
128
+
129
+ - **Execution Time:** Avg: 1.542s, Min: 0.221s, Max: 3.799s
130
+
131
+ - **Memory Usage:** Avg: 49.58 MB, Min: 10.81 MB, Max: 108.84 MB
132
+
133
+ - **Success Rate:** 100.0% (16/16)
134
+
135
+ ### Pip-Audit Performance
136
+
137
+ - **Execution Time:** Avg: 13.108s, Min: 7.854s, Max: 19.619s
138
+
139
+ - **Memory Usage:** Avg: 46.26 MB, Min: 44.88 MB, Max: 47.34 MB
140
+
141
+ - **Success Rate:** 100.0% (4/4)
@@ -0,0 +1,141 @@
1
+ # PySentry - pip-audit Benchmark Report
2
+
3
+ **Generated:** 2025-08-21 19:52:35
4
+ **Duration:** 1m 56.44s
5
+ **Total Tests:** 20
6
+
7
+ ## Executive Summary
8
+
9
+ **Overall Success Rate:** 100.0% (20/20 successful runs)
10
+
11
+ ### Small_Requirements Dataset - Cold Cache
12
+ - **Fastest:** pysentry-pypi (0.250s) - 35.37x faster than slowest
13
+ - **Memory Efficient:** pysentry-osv (11.03 MB) - 9.68x less memory than highest
14
+
15
+ ### Small_Requirements Dataset - Hot Cache
16
+ - **Fastest:** pysentry-pypi (0.221s) - 35.46x faster than slowest
17
+ - **Memory Efficient:** pysentry-osv (10.81 MB) - 9.68x less memory than highest
18
+
19
+ ### Large_Requirements Dataset - Cold Cache
20
+ - **Fastest:** pysentry-pypi (0.722s) - 27.16x faster than slowest
21
+ - **Memory Efficient:** pysentry-osv (10.93 MB) - 9.84x less memory than highest
22
+
23
+ ### Large_Requirements Dataset - Hot Cache
24
+ - **Fastest:** pysentry-pypi (0.686s) - 23.48x faster than slowest
25
+ - **Memory Efficient:** pysentry-osv (11.07 MB) - 9.83x less memory than highest
26
+
27
+ ## Test Environment
28
+
29
+ - **Platform:** Linux-6.11.0-1018-azure-x86_64-with-glibc2.39
30
+ - **Python Version:** 3.11.13
31
+ - **CPU Cores:** 4
32
+ - **Total Memory:** 15.62 GB
33
+ - **Available Memory:** 14.63 GB
34
+
35
+ ## Performance Comparison
36
+
37
+ ### Small_Requirements Dataset - Cold Cache
38
+
39
+ #### Execution Time Comparison
40
+
41
+ | Tool Configuration | Execution Time | Relative Performance |
42
+ |---------------------|---------------------|---------------------|
43
+ | 🥇 pysentry-pypi | 0.250s | 1.00x |
44
+ | 🥈 pysentry-osv | 1.045s | 4.18x |
45
+ | pysentry-all-sources | 1.152s | 4.60x |
46
+ | pysentry-pypa | 1.155s | 4.61x |
47
+ | pip-audit-default | 8.852s | 35.37x |
48
+
49
+ #### Memory Usage Comparison
50
+
51
+ | Tool Configuration | Peak Memory | Relative Performance |
52
+ |---------------------|---------------------|---------------------|
53
+ | 🥇 pysentry-osv | 11.03 MB | 1.00x |
54
+ | 🥈 pysentry-pypi | 11.64 MB | 1.06x |
55
+ | pip-audit-default | 45.64 MB | 4.14x |
56
+ | pysentry-pypa | 75.38 MB | 6.84x |
57
+ | pysentry-all-sources | 106.78 MB | 9.68x |
58
+
59
+ ### Small_Requirements Dataset - Hot Cache
60
+
61
+ #### Execution Time Comparison
62
+
63
+ | Tool Configuration | Execution Time | Relative Performance |
64
+ |---------------------|---------------------|---------------------|
65
+ | 🥇 pysentry-pypi | 0.221s | 1.00x |
66
+ | 🥈 pysentry-pypa | 0.729s | 3.29x |
67
+ | pysentry-osv | 0.982s | 4.43x |
68
+ | pysentry-all-sources | 1.112s | 5.02x |
69
+ | pip-audit-default | 7.854s | 35.46x |
70
+
71
+ #### Memory Usage Comparison
72
+
73
+ | Tool Configuration | Peak Memory | Relative Performance |
74
+ |---------------------|---------------------|---------------------|
75
+ | 🥇 pysentry-osv | 10.81 MB | 1.00x |
76
+ | 🥈 pysentry-pypi | 11.93 MB | 1.10x |
77
+ | pip-audit-default | 44.88 MB | 4.15x |
78
+ | pysentry-pypa | 69.38 MB | 6.42x |
79
+ | pysentry-all-sources | 104.60 MB | 9.68x |
80
+
81
+ ### Large_Requirements Dataset - Cold Cache
82
+
83
+ #### Execution Time Comparison
84
+
85
+ | Tool Configuration | Execution Time | Relative Performance |
86
+ |---------------------|---------------------|---------------------|
87
+ | 🥇 pysentry-pypi | 0.722s | 1.00x |
88
+ | 🥈 pysentry-pypa | 1.258s | 1.74x |
89
+ | pysentry-all-sources | 3.183s | 4.41x |
90
+ | pysentry-osv | 3.714s | 5.14x |
91
+ | pip-audit-default | 19.619s | 27.16x |
92
+
93
+ #### Memory Usage Comparison
94
+
95
+ | Tool Configuration | Peak Memory | Relative Performance |
96
+ |---------------------|---------------------|---------------------|
97
+ | 🥇 pysentry-osv | 10.93 MB | 1.00x |
98
+ | 🥈 pysentry-pypi | 14.27 MB | 1.31x |
99
+ | pip-audit-default | 47.34 MB | 4.33x |
100
+ | pysentry-pypa | 74.92 MB | 6.85x |
101
+ | pysentry-all-sources | 107.52 MB | 9.84x |
102
+
103
+ ### Large_Requirements Dataset - Hot Cache
104
+
105
+ #### Execution Time Comparison
106
+
107
+ | Tool Configuration | Execution Time | Relative Performance |
108
+ |---------------------|---------------------|---------------------|
109
+ | 🥇 pysentry-pypi | 0.686s | 1.00x |
110
+ | 🥈 pysentry-pypa | 1.206s | 1.76x |
111
+ | pysentry-all-sources | 3.464s | 5.05x |
112
+ | pysentry-osv | 3.799s | 5.54x |
113
+ | pip-audit-default | 16.105s | 23.48x |
114
+
115
+ #### Memory Usage Comparison
116
+
117
+ | Tool Configuration | Peak Memory | Relative Performance |
118
+ |---------------------|---------------------|---------------------|
119
+ | 🥇 pysentry-osv | 11.07 MB | 1.00x |
120
+ | 🥈 pysentry-pypi | 11.27 MB | 1.02x |
121
+ | pip-audit-default | 47.18 MB | 4.26x |
122
+ | pysentry-pypa | 52.84 MB | 4.77x |
123
+ | pysentry-all-sources | 108.84 MB | 9.83x |
124
+
125
+ ## Detailed Analysis
126
+
127
+ ### Pysentry Performance
128
+
129
+ - **Execution Time:** Avg: 1.542s, Min: 0.221s, Max: 3.799s
130
+
131
+ - **Memory Usage:** Avg: 49.58 MB, Min: 10.81 MB, Max: 108.84 MB
132
+
133
+ - **Success Rate:** 100.0% (16/16)
134
+
135
+ ### Pip-Audit Performance
136
+
137
+ - **Execution Time:** Avg: 13.108s, Min: 7.854s, Max: 19.619s
138
+
139
+ - **Memory Usage:** Avg: 46.26 MB, Min: 44.88 MB, Max: 47.34 MB
140
+
141
+ - **Success Rate:** 100.0% (4/4)