pysentry-rs 0.3.0__tar.gz → 0.3.2__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 (63) hide show
  1. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/Cargo.lock +9 -9
  2. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/Cargo.toml +3 -3
  3. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/PKG-INFO +48 -1
  4. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/README.md +47 -0
  5. pysentry_rs-0.3.2/benchmarks/results/0.3.1.md +141 -0
  6. pysentry_rs-0.3.2/benchmarks/results/latest.md +141 -0
  7. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/src/cli.rs +383 -7
  8. pysentry_rs-0.3.2/src/config.rs +584 -0
  9. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/src/lib.rs +5 -0
  10. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/src/main.rs +39 -5
  11. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/src/python.rs +20 -0
  12. pysentry_rs-0.3.0/benchmarks/results/latest.md +0 -141
  13. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/.github/FUNDING.yml +0 -0
  14. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/.github/dependabot.yml +0 -0
  15. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/.github/workflows/benchmark.yml +0 -0
  16. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/.github/workflows/ci.yml +0 -0
  17. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/.github/workflows/release.yml +0 -0
  18. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/.gitignore +0 -0
  19. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/.pre-commit-config.yaml +0 -0
  20. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/LICENSE +0 -0
  21. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/benchmarks/.gitignore +0 -0
  22. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/benchmarks/.python-version +0 -0
  23. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/benchmarks/README.md +0 -0
  24. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/benchmarks/main.py +0 -0
  25. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/benchmarks/pyproject.toml +0 -0
  26. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/benchmarks/results/0.2.3.md +0 -0
  27. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/benchmarks/src/benchmark_runner.py +0 -0
  28. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/benchmarks/src/performance_monitor.py +0 -0
  29. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/benchmarks/src/report_generator.py +0 -0
  30. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/benchmarks/src/tool_wrapper.py +0 -0
  31. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/benchmarks/test_data/large_requirements.txt +0 -0
  32. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/benchmarks/test_data/small_requirements.txt +0 -0
  33. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/benchmarks/uv.lock +0 -0
  34. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/fixtures/requirements-tests/requirements-dev.txt +0 -0
  35. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/fixtures/requirements-tests/requirements.txt +0 -0
  36. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/fixtures/requirements-tests-vulnerable/requirements.txt +0 -0
  37. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/pyproject.toml +0 -0
  38. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/python/pysentry/__init__.py +0 -0
  39. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/src/cache/audit.rs +0 -0
  40. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/src/cache/mod.rs +0 -0
  41. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/src/cache/storage.rs +0 -0
  42. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/src/dependency/mod.rs +0 -0
  43. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/src/dependency/resolvers/mod.rs +0 -0
  44. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/src/dependency/resolvers/pip_tools.rs +0 -0
  45. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/src/dependency/resolvers/uv.rs +0 -0
  46. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/src/dependency/scanner.rs +0 -0
  47. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/src/error.rs +0 -0
  48. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/src/output/mod.rs +0 -0
  49. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/src/output/report.rs +0 -0
  50. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/src/output/sarif.rs +0 -0
  51. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/src/parsers/lock.rs +0 -0
  52. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/src/parsers/mod.rs +0 -0
  53. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/src/parsers/poetry_lock.rs +0 -0
  54. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/src/parsers/pyproject.rs +0 -0
  55. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/src/parsers/requirements.rs +0 -0
  56. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/src/providers/mod.rs +0 -0
  57. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/src/providers/osv.rs +0 -0
  58. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/src/providers/pypa.rs +0 -0
  59. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/src/providers/pypi.rs +0 -0
  60. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/src/types.rs +0 -0
  61. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/src/vulnerability/database.rs +0 -0
  62. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/src/vulnerability/matcher.rs +0 -0
  63. {pysentry_rs-0.3.0 → pysentry_rs-0.3.2}/src/vulnerability/mod.rs +0 -0
@@ -93,9 +93,9 @@ dependencies = [
93
93
 
94
94
  [[package]]
95
95
  name = "anyhow"
96
- version = "1.0.98"
96
+ version = "1.0.99"
97
97
  source = "registry+https://github.com/rust-lang/crates.io-index"
98
- checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487"
98
+ checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100"
99
99
 
100
100
  [[package]]
101
101
  name = "arbitrary"
@@ -209,9 +209,9 @@ dependencies = [
209
209
 
210
210
  [[package]]
211
211
  name = "clap"
212
- version = "4.5.43"
212
+ version = "4.5.45"
213
213
  source = "registry+https://github.com/rust-lang/crates.io-index"
214
- checksum = "50fd97c9dc2399518aa331917ac6f274280ec5eb34e555dd291899745c48ec6f"
214
+ checksum = "1fc0e74a703892159f5ae7d3aac52c8e6c392f5ae5f359c70b5881d60aaac318"
215
215
  dependencies = [
216
216
  "clap_builder",
217
217
  "clap_derive",
@@ -219,9 +219,9 @@ dependencies = [
219
219
 
220
220
  [[package]]
221
221
  name = "clap_builder"
222
- version = "4.5.43"
222
+ version = "4.5.44"
223
223
  source = "registry+https://github.com/rust-lang/crates.io-index"
224
- checksum = "c35b5830294e1fa0462034af85cc95225a4cb07092c088c55bda3147cfcd8f65"
224
+ checksum = "b3e7f4214277f3c7aa526a59dd3fbe306a370daee1f8b7b8c987069cd8e888a8"
225
225
  dependencies = [
226
226
  "anstream",
227
227
  "anstyle",
@@ -231,9 +231,9 @@ dependencies = [
231
231
 
232
232
  [[package]]
233
233
  name = "clap_derive"
234
- version = "4.5.41"
234
+ version = "4.5.45"
235
235
  source = "registry+https://github.com/rust-lang/crates.io-index"
236
- checksum = "ef4f52386a59ca4c860f7393bcf8abd8dfd91ecccc0f774635ff68e92eeef491"
236
+ checksum = "14cb31bb0a7d536caef2639baa7fad459e15c3144efefa6dbd1c84562c4739f6"
237
237
  dependencies = [
238
238
  "heck",
239
239
  "proc-macro2",
@@ -1121,7 +1121,7 @@ dependencies = [
1121
1121
 
1122
1122
  [[package]]
1123
1123
  name = "pysentry"
1124
- version = "0.3.0"
1124
+ version = "0.3.2"
1125
1125
  dependencies = [
1126
1126
  "anyhow",
1127
1127
  "async-trait",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "pysentry"
3
- version = "0.3.0"
3
+ version = "0.3.2"
4
4
  edition = "2021"
5
5
  rust-version = "1.79"
6
6
  description = "Security vulnerability auditing for Python packages"
@@ -22,10 +22,10 @@ path = "src/main.rs"
22
22
  python = ["pyo3"]
23
23
 
24
24
  [dependencies]
25
- anyhow = "1.0.98"
25
+ anyhow = "1.0.99"
26
26
  async-trait = "0.1.88"
27
27
  chrono = { version = "0.4.41", features = ["serde"] }
28
- clap = { version = "4.5.43", features = ["derive"] }
28
+ clap = { version = "4.5.45", features = ["derive"] }
29
29
  dirs = "6.0.0"
30
30
  fs-err = "3.1.1"
31
31
  futures = "0.3.31"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pysentry-rs
3
- Version: 0.3.0
3
+ Version: 0.3.2
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)
@@ -289,6 +289,52 @@ pysentry --no-resolution-cache --format json --output security-report.json
289
289
 
290
290
  ## Configuration
291
291
 
292
+ PySentry supports TOML-based configuration files for persistent settings management. Configuration files follow a hierarchical discovery pattern:
293
+
294
+ 1. **Project-level**: `.pysentry.toml` in current or parent directories
295
+ 2. **User-level**: `~/.config/pysentry/config.toml` (Linux/macOS)
296
+ 3. **System-level**: `/etc/pysentry/config.toml` (Unix systems)
297
+
298
+ ### Configuration File Example
299
+
300
+ ```toml
301
+ version = 1
302
+
303
+ [defaults]
304
+ format = "json"
305
+ severity = "medium"
306
+ fail_on = "high"
307
+ scope = "all"
308
+ direct_only = false
309
+
310
+ [sources]
311
+ enabled = ["pypa", "osv"]
312
+
313
+ [resolver]
314
+ type = "uv"
315
+ fallback = "pip-tools"
316
+
317
+ [cache]
318
+ enabled = true
319
+ resolution_ttl = 48
320
+ vulnerability_ttl = 72
321
+
322
+ [output]
323
+ quiet = false
324
+ verbose = false
325
+ color = "auto"
326
+
327
+ [ignore]
328
+ ids = ["CVE-2023-12345", "GHSA-xxxx-yyyy-zzzz"]
329
+ ```
330
+
331
+ ### Environment Variables
332
+
333
+ | Variable | Description | Example |
334
+ |----------|-------------|---------|
335
+ | `PYSENTRY_CONFIG` | Override config file path | `PYSENTRY_CONFIG=/path/to/config.toml` |
336
+ | `PYSENTRY_NO_CONFIG` | Disable all config file loading | `PYSENTRY_NO_CONFIG=1` |
337
+
292
338
  ### Command Line Options
293
339
 
294
340
  | Option | Description | Default |
@@ -299,6 +345,7 @@ pysentry --no-resolution-cache --format json --output security-report.json
299
345
  | `--sources` | Vulnerability sources: `pypa`, `pypi`, `osv` (multiple) | `pypa` |
300
346
  | `--all-extras` | Include all dependencies (main + dev + optional) | `false` |
301
347
  | `--direct-only` | Check only direct dependencies | `false` |
348
+ | `--detailed` | Show full vulnerability descriptions instead of truncated| `false` |
302
349
  | `--ignore` | Vulnerability IDs to ignore (repeatable) | `[]` |
303
350
  | `--output` | Output file path | `stdout` |
304
351
  | `--no-cache` | Disable all caching | `false` |
@@ -263,6 +263,52 @@ pysentry --no-resolution-cache --format json --output security-report.json
263
263
 
264
264
  ## Configuration
265
265
 
266
+ PySentry supports TOML-based configuration files for persistent settings management. Configuration files follow a hierarchical discovery pattern:
267
+
268
+ 1. **Project-level**: `.pysentry.toml` in current or parent directories
269
+ 2. **User-level**: `~/.config/pysentry/config.toml` (Linux/macOS)
270
+ 3. **System-level**: `/etc/pysentry/config.toml` (Unix systems)
271
+
272
+ ### Configuration File Example
273
+
274
+ ```toml
275
+ version = 1
276
+
277
+ [defaults]
278
+ format = "json"
279
+ severity = "medium"
280
+ fail_on = "high"
281
+ scope = "all"
282
+ direct_only = false
283
+
284
+ [sources]
285
+ enabled = ["pypa", "osv"]
286
+
287
+ [resolver]
288
+ type = "uv"
289
+ fallback = "pip-tools"
290
+
291
+ [cache]
292
+ enabled = true
293
+ resolution_ttl = 48
294
+ vulnerability_ttl = 72
295
+
296
+ [output]
297
+ quiet = false
298
+ verbose = false
299
+ color = "auto"
300
+
301
+ [ignore]
302
+ ids = ["CVE-2023-12345", "GHSA-xxxx-yyyy-zzzz"]
303
+ ```
304
+
305
+ ### Environment Variables
306
+
307
+ | Variable | Description | Example |
308
+ |----------|-------------|---------|
309
+ | `PYSENTRY_CONFIG` | Override config file path | `PYSENTRY_CONFIG=/path/to/config.toml` |
310
+ | `PYSENTRY_NO_CONFIG` | Disable all config file loading | `PYSENTRY_NO_CONFIG=1` |
311
+
266
312
  ### Command Line Options
267
313
 
268
314
  | Option | Description | Default |
@@ -273,6 +319,7 @@ pysentry --no-resolution-cache --format json --output security-report.json
273
319
  | `--sources` | Vulnerability sources: `pypa`, `pypi`, `osv` (multiple) | `pypa` |
274
320
  | `--all-extras` | Include all dependencies (main + dev + optional) | `false` |
275
321
  | `--direct-only` | Check only direct dependencies | `false` |
322
+ | `--detailed` | Show full vulnerability descriptions instead of truncated| `false` |
276
323
  | `--ignore` | Vulnerability IDs to ignore (repeatable) | `[]` |
277
324
  | `--output` | Output file path | `stdout` |
278
325
  | `--no-cache` | Disable all caching | `false` |
@@ -0,0 +1,141 @@
1
+ # PySentry - pip-audit Benchmark Report
2
+
3
+ **Generated:** 2025-08-12 18:55:26
4
+ **Duration:** 1m 54.40s
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.213s) - 42.00x faster than slowest
13
+ - **Memory Efficient:** pysentry-osv (10.02 MB) - 10.69x less memory than highest
14
+
15
+ ### Small_Requirements Dataset - Hot Cache
16
+ - **Fastest:** pysentry-pypi (0.223s) - 35.50x faster than slowest
17
+ - **Memory Efficient:** pysentry-osv (10.18 MB) - 9.89x less memory than highest
18
+
19
+ ### Large_Requirements Dataset - Cold Cache
20
+ - **Fastest:** pysentry-pypi (0.679s) - 28.20x faster than slowest
21
+ - **Memory Efficient:** pysentry-osv (10.27 MB) - 10.21x less memory than highest
22
+
23
+ ### Large_Requirements Dataset - Hot Cache
24
+ - **Fastest:** pysentry-pypi (0.692s) - 23.06x faster than slowest
25
+ - **Memory Efficient:** pysentry-pypi (9.86 MB) - 9.55x 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.60 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.213s | 1.00x |
44
+ | 🥈 pysentry-pypa | 1.004s | 4.71x |
45
+ | pysentry-osv | 1.006s | 4.72x |
46
+ | pysentry-all-sources | 1.013s | 4.75x |
47
+ | pip-audit-default | 8.951s | 42.00x |
48
+
49
+ #### Memory Usage Comparison
50
+
51
+ | Tool Configuration | Peak Memory | Relative Performance |
52
+ |---------------------|---------------------|---------------------|
53
+ | 🥇 pysentry-osv | 10.02 MB | 1.00x |
54
+ | 🥈 pysentry-pypi | 11.68 MB | 1.17x |
55
+ | pip-audit-default | 45.42 MB | 4.53x |
56
+ | pysentry-pypa | 52.72 MB | 5.26x |
57
+ | pysentry-all-sources | 107.07 MB | 10.69x |
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.223s | 1.00x |
66
+ | 🥈 pysentry-pypa | 0.723s | 3.24x |
67
+ | pysentry-osv | 0.969s | 4.34x |
68
+ | pysentry-all-sources | 1.037s | 4.65x |
69
+ | pip-audit-default | 7.922s | 35.50x |
70
+
71
+ #### Memory Usage Comparison
72
+
73
+ | Tool Configuration | Peak Memory | Relative Performance |
74
+ |---------------------|---------------------|---------------------|
75
+ | 🥇 pysentry-osv | 10.18 MB | 1.00x |
76
+ | 🥈 pysentry-pypi | 10.59 MB | 1.04x |
77
+ | pip-audit-default | 44.28 MB | 4.35x |
78
+ | pysentry-pypa | 73.74 MB | 7.24x |
79
+ | pysentry-all-sources | 100.68 MB | 9.89x |
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.679s | 1.00x |
88
+ | 🥈 pysentry-pypa | 1.142s | 1.68x |
89
+ | pysentry-osv | 3.365s | 4.95x |
90
+ | pysentry-all-sources | 3.649s | 5.37x |
91
+ | pip-audit-default | 19.161s | 28.20x |
92
+
93
+ #### Memory Usage Comparison
94
+
95
+ | Tool Configuration | Peak Memory | Relative Performance |
96
+ |---------------------|---------------------|---------------------|
97
+ | 🥇 pysentry-osv | 10.27 MB | 1.00x |
98
+ | 🥈 pysentry-pypi | 10.36 MB | 1.01x |
99
+ | pip-audit-default | 47.43 MB | 4.62x |
100
+ | pysentry-pypa | 70.21 MB | 6.84x |
101
+ | pysentry-all-sources | 104.85 MB | 10.21x |
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.692s | 1.00x |
110
+ | 🥈 pysentry-pypa | 1.119s | 1.62x |
111
+ | pysentry-osv | 2.963s | 4.28x |
112
+ | pysentry-all-sources | 4.382s | 6.33x |
113
+ | pip-audit-default | 15.954s | 23.06x |
114
+
115
+ #### Memory Usage Comparison
116
+
117
+ | Tool Configuration | Peak Memory | Relative Performance |
118
+ |---------------------|---------------------|---------------------|
119
+ | 🥇 pysentry-pypi | 9.86 MB | 1.00x |
120
+ | 🥈 pysentry-osv | 10.14 MB | 1.03x |
121
+ | pip-audit-default | 47.00 MB | 4.77x |
122
+ | pysentry-pypa | 73.75 MB | 7.48x |
123
+ | pysentry-all-sources | 94.11 MB | 9.55x |
124
+
125
+ ## Detailed Analysis
126
+
127
+ ### Pysentry Performance
128
+
129
+ - **Execution Time:** Avg: 1.511s, Min: 0.213s, Max: 4.382s
130
+
131
+ - **Memory Usage:** Avg: 47.51 MB, Min: 9.86 MB, Max: 107.07 MB
132
+
133
+ - **Success Rate:** 100.0% (16/16)
134
+
135
+ ### Pip-Audit Performance
136
+
137
+ - **Execution Time:** Avg: 12.997s, Min: 7.922s, Max: 19.161s
138
+
139
+ - **Memory Usage:** Avg: 46.03 MB, Min: 44.28 MB, Max: 47.43 MB
140
+
141
+ - **Success Rate:** 100.0% (4/4)
@@ -0,0 +1,141 @@
1
+ # PySentry - pip-audit Benchmark Report
2
+
3
+ **Generated:** 2025-08-12 18:55:26
4
+ **Duration:** 1m 54.40s
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.213s) - 42.00x faster than slowest
13
+ - **Memory Efficient:** pysentry-osv (10.02 MB) - 10.69x less memory than highest
14
+
15
+ ### Small_Requirements Dataset - Hot Cache
16
+ - **Fastest:** pysentry-pypi (0.223s) - 35.50x faster than slowest
17
+ - **Memory Efficient:** pysentry-osv (10.18 MB) - 9.89x less memory than highest
18
+
19
+ ### Large_Requirements Dataset - Cold Cache
20
+ - **Fastest:** pysentry-pypi (0.679s) - 28.20x faster than slowest
21
+ - **Memory Efficient:** pysentry-osv (10.27 MB) - 10.21x less memory than highest
22
+
23
+ ### Large_Requirements Dataset - Hot Cache
24
+ - **Fastest:** pysentry-pypi (0.692s) - 23.06x faster than slowest
25
+ - **Memory Efficient:** pysentry-pypi (9.86 MB) - 9.55x 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.60 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.213s | 1.00x |
44
+ | 🥈 pysentry-pypa | 1.004s | 4.71x |
45
+ | pysentry-osv | 1.006s | 4.72x |
46
+ | pysentry-all-sources | 1.013s | 4.75x |
47
+ | pip-audit-default | 8.951s | 42.00x |
48
+
49
+ #### Memory Usage Comparison
50
+
51
+ | Tool Configuration | Peak Memory | Relative Performance |
52
+ |---------------------|---------------------|---------------------|
53
+ | 🥇 pysentry-osv | 10.02 MB | 1.00x |
54
+ | 🥈 pysentry-pypi | 11.68 MB | 1.17x |
55
+ | pip-audit-default | 45.42 MB | 4.53x |
56
+ | pysentry-pypa | 52.72 MB | 5.26x |
57
+ | pysentry-all-sources | 107.07 MB | 10.69x |
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.223s | 1.00x |
66
+ | 🥈 pysentry-pypa | 0.723s | 3.24x |
67
+ | pysentry-osv | 0.969s | 4.34x |
68
+ | pysentry-all-sources | 1.037s | 4.65x |
69
+ | pip-audit-default | 7.922s | 35.50x |
70
+
71
+ #### Memory Usage Comparison
72
+
73
+ | Tool Configuration | Peak Memory | Relative Performance |
74
+ |---------------------|---------------------|---------------------|
75
+ | 🥇 pysentry-osv | 10.18 MB | 1.00x |
76
+ | 🥈 pysentry-pypi | 10.59 MB | 1.04x |
77
+ | pip-audit-default | 44.28 MB | 4.35x |
78
+ | pysentry-pypa | 73.74 MB | 7.24x |
79
+ | pysentry-all-sources | 100.68 MB | 9.89x |
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.679s | 1.00x |
88
+ | 🥈 pysentry-pypa | 1.142s | 1.68x |
89
+ | pysentry-osv | 3.365s | 4.95x |
90
+ | pysentry-all-sources | 3.649s | 5.37x |
91
+ | pip-audit-default | 19.161s | 28.20x |
92
+
93
+ #### Memory Usage Comparison
94
+
95
+ | Tool Configuration | Peak Memory | Relative Performance |
96
+ |---------------------|---------------------|---------------------|
97
+ | 🥇 pysentry-osv | 10.27 MB | 1.00x |
98
+ | 🥈 pysentry-pypi | 10.36 MB | 1.01x |
99
+ | pip-audit-default | 47.43 MB | 4.62x |
100
+ | pysentry-pypa | 70.21 MB | 6.84x |
101
+ | pysentry-all-sources | 104.85 MB | 10.21x |
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.692s | 1.00x |
110
+ | 🥈 pysentry-pypa | 1.119s | 1.62x |
111
+ | pysentry-osv | 2.963s | 4.28x |
112
+ | pysentry-all-sources | 4.382s | 6.33x |
113
+ | pip-audit-default | 15.954s | 23.06x |
114
+
115
+ #### Memory Usage Comparison
116
+
117
+ | Tool Configuration | Peak Memory | Relative Performance |
118
+ |---------------------|---------------------|---------------------|
119
+ | 🥇 pysentry-pypi | 9.86 MB | 1.00x |
120
+ | 🥈 pysentry-osv | 10.14 MB | 1.03x |
121
+ | pip-audit-default | 47.00 MB | 4.77x |
122
+ | pysentry-pypa | 73.75 MB | 7.48x |
123
+ | pysentry-all-sources | 94.11 MB | 9.55x |
124
+
125
+ ## Detailed Analysis
126
+
127
+ ### Pysentry Performance
128
+
129
+ - **Execution Time:** Avg: 1.511s, Min: 0.213s, Max: 4.382s
130
+
131
+ - **Memory Usage:** Avg: 47.51 MB, Min: 9.86 MB, Max: 107.07 MB
132
+
133
+ - **Success Rate:** 100.0% (16/16)
134
+
135
+ ### Pip-Audit Performance
136
+
137
+ - **Execution Time:** Avg: 12.997s, Min: 7.922s, Max: 19.161s
138
+
139
+ - **Memory Usage:** Avg: 46.03 MB, Min: 44.28 MB, Max: 47.43 MB
140
+
141
+ - **Success Rate:** 100.0% (4/4)