evalsuite-python 0.4.0__tar.gz → 0.4.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/CHANGELOG.md +18 -0
  2. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/PKG-INFO +8 -2
  3. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/README.md +7 -1
  4. evalsuite_python-0.4.1/src/evalsuite/_bench_metrics.py +1391 -0
  5. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/benchmarks.py +17 -7
  6. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/cli/main.py +3 -2
  7. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/clinical/metrics.py +7 -4
  8. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/text/generation.py +9 -8
  9. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/version.py +1 -1
  10. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/output/test_benchmarks.py +34 -0
  11. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/.gitignore +0 -0
  12. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/CONTRIBUTING.md +0 -0
  13. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/LICENSE +0 -0
  14. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/pyproject.toml +0 -0
  15. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/__init__.py +0 -0
  16. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/__main__.py +0 -0
  17. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/api.py +0 -0
  18. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/calibration.py +0 -0
  19. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/classification/__init__.py +0 -0
  20. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/classification/_common.py +0 -0
  21. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/classification/metrics.py +0 -0
  22. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/cli/__init__.py +0 -0
  23. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/clinical/__init__.py +0 -0
  24. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/clinical/report.py +0 -0
  25. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/core/__init__.py +0 -0
  26. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/core/context.py +0 -0
  27. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/core/exceptions.py +0 -0
  28. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/core/export.py +0 -0
  29. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/core/registry.py +0 -0
  30. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/core/result.py +0 -0
  31. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/core/types.py +0 -0
  32. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/core/validation.py +0 -0
  33. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/plot.py +0 -0
  34. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/py.typed +0 -0
  35. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/regression/__init__.py +0 -0
  36. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/regression/metrics.py +0 -0
  37. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/reporting.py +0 -0
  38. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/stats/__init__.py +0 -0
  39. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/stats/_resolve.py +0 -0
  40. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/stats/compare.py +0 -0
  41. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/stats/effect.py +0 -0
  42. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/stats/hypothesis.py +0 -0
  43. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/stats/intervals.py +0 -0
  44. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/stats/paired.py +0 -0
  45. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/stats/results.py +0 -0
  46. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/text/__init__.py +0 -0
  47. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/text/_common.py +0 -0
  48. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/text/factuality.py +0 -0
  49. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/text/judge.py +0 -0
  50. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/text/qa.py +0 -0
  51. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/text/rag.py +0 -0
  52. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/text/reasoning.py +0 -0
  53. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/text/report.py +0 -0
  54. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/text/retrieval.py +0 -0
  55. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/text/semantic.py +0 -0
  56. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/text/structured.py +0 -0
  57. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/vision/__init__.py +0 -0
  58. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/vision/detection.py +0 -0
  59. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/src/evalsuite/vision/segmentation.py +0 -0
  60. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/__init__.py +0 -0
  61. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/classification/__init__.py +0 -0
  62. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/classification/test_against_sklearn.py +0 -0
  63. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/clinical/__init__.py +0 -0
  64. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/clinical/test_outputs.py +0 -0
  65. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/clinical/test_v020.py +0 -0
  66. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/conftest.py +0 -0
  67. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/integration/__init__.py +0 -0
  68. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/integration/test_qa.py +0 -0
  69. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/integration/test_readme_examples.py +0 -0
  70. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/integration/test_repo_hygiene.py +0 -0
  71. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/output/__init__.py +0 -0
  72. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/output/test_cli.py +0 -0
  73. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/output/test_plot.py +0 -0
  74. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/output/test_reporting.py +0 -0
  75. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/regression/__init__.py +0 -0
  76. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/regression/test_against_sklearn.py +0 -0
  77. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/stats/__init__.py +0 -0
  78. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/stats/test_branches.py +0 -0
  79. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/stats/test_compare.py +0 -0
  80. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/stats/test_reference.py +0 -0
  81. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/text/__init__.py +0 -0
  82. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/text/test_against_references.py +0 -0
  83. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/text/test_text_edges.py +0 -0
  84. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/text/test_v040.py +0 -0
  85. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/unit/__init__.py +0 -0
  86. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/unit/test_core.py +0 -0
  87. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/unit/test_edges.py +0 -0
  88. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/vision/__init__.py +0 -0
  89. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/vision/test_detection.py +0 -0
  90. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/vision/test_edges.py +0 -0
  91. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/vision/test_outputs.py +0 -0
  92. {evalsuite_python-0.4.0 → evalsuite_python-0.4.1}/tests/vision/test_segmentation.py +0 -0
@@ -6,6 +6,24 @@ All notable changes to this project are documented here. The format follows
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.4.1] - 2026-10-09
10
+
11
+ Benchmarks for every metric. No API changed.
12
+
13
+ ### Added
14
+ - `run_benchmarks(suite="metrics")` and `evalsuite benchmark --suite metrics`: one row for each of the 147
15
+ registered metrics and statistics functions, compared with a reference library (scikit-learn, SciPy,
16
+ statsmodels, pycocotools, sacreBLEU, rouge-score, NLTK, pycocoevalcap, ranx, krippendorff, choix, POT,
17
+ jsonschema) where one exists, otherwise with an independent NumPy / standard-library implementation of
18
+ the textbook formula; learned, judge-dependent and randomised procedures are timed alone. All 128
19
+ comparisons agree to 1e-9. A test keeps the suite in step with the registry.
20
+ - `scripts/bench_metrics_report.py` renders the per-metric table for BENCHMARKS.md and the website.
21
+
22
+ ### Changed
23
+ - `net_benefit` at a single threshold computes in one pass instead of sorting (about 3× faster).
24
+ - `perplexity` and `cross_entropy` validate the pooled tokens once instead of each sequence separately
25
+ (5–9× faster for many short sequences); errors still name the offending sequence.
26
+
9
27
  ## [0.4.0] - 2026-10-09
10
28
 
11
29
  LLM evaluation (the v0.4.0 roadmap). No existing API changed.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: evalsuite-python
3
- Version: 0.4.0
3
+ Version: 0.4.1
4
4
  Summary: A unified Python framework for machine-learning, clinical, statistical, segmentation, object-detection, uncertainty, and model evaluation.
5
5
  Project-URL: Homepage, https://evalsuite-nine.vercel.app
6
6
  Project-URL: Documentation, https://evalsuite-nine.vercel.app/docs
@@ -82,7 +82,7 @@ Description-Content-Type: text/markdown
82
82
  EvalSuite brings classification, regression, clinical, statistical, segmentation and object-detection
83
83
  evaluation into one consistent, validated, documented framework.
84
84
 
85
- > **Status: stable (0.4.0).** Every item on the 0.1.0, 0.2.0, 0.3.0 and 0.4.0 roadmaps is implemented and verified
85
+ > **Status: stable (0.4.1).** Every item on the 0.1.0, 0.2.0, 0.3.0 and 0.4.0 roadmaps is implemented and verified
86
86
  > (except SPICE, which needs a Java scene-graph parser).
87
87
  > **LLM evaluation is available from 0.4.0**; LLM systems, safety and operations are planned for 0.5.0.
88
88
 
@@ -343,6 +343,12 @@ alphabetical order:
343
343
  | text: METEOR, exact and stem matches (10000 sentences) | NLTK | 488.1 | 626.7 | **1.3×** |
344
344
  | text: ROUGE-1, ROUGE-2, ROUGE-L (10000 sentences) | rouge-score | 1290.1 | 1095.6 | 0.85× |
345
345
 
346
+ **Every metric is benchmarked too** (`evalsuite benchmark --suite metrics`): all 147 registered metrics and
347
+ statistics functions at 10,000 and 100,000 samples. 79 are compared with a reference library, 49 with an
348
+ independent textbook formula and 19 (learned, judge-dependent or randomised) are timed alone; **all 128
349
+ comparisons agree**, and against the libraries the geometric-mean speed-up is **2.76×** (123 of 158
350
+ measurements faster). Per-metric table in BENCHMARKS.md.
351
+
346
352
  `evaluate()` validates inputs once and builds the confusion matrix once for all metrics, which is where most
347
353
  of the speed-up comes from. Hypothesis tests use SciPy underneath, so they match its speed at best; rows
348
354
  below 1× pay for input validation and the extra intervals and effect sizes EvalSuite reports. Reproduce on
@@ -10,7 +10,7 @@
10
10
  EvalSuite brings classification, regression, clinical, statistical, segmentation and object-detection
11
11
  evaluation into one consistent, validated, documented framework.
12
12
 
13
- > **Status: stable (0.4.0).** Every item on the 0.1.0, 0.2.0, 0.3.0 and 0.4.0 roadmaps is implemented and verified
13
+ > **Status: stable (0.4.1).** Every item on the 0.1.0, 0.2.0, 0.3.0 and 0.4.0 roadmaps is implemented and verified
14
14
  > (except SPICE, which needs a Java scene-graph parser).
15
15
  > **LLM evaluation is available from 0.4.0**; LLM systems, safety and operations are planned for 0.5.0.
16
16
 
@@ -271,6 +271,12 @@ alphabetical order:
271
271
  | text: METEOR, exact and stem matches (10000 sentences) | NLTK | 488.1 | 626.7 | **1.3×** |
272
272
  | text: ROUGE-1, ROUGE-2, ROUGE-L (10000 sentences) | rouge-score | 1290.1 | 1095.6 | 0.85× |
273
273
 
274
+ **Every metric is benchmarked too** (`evalsuite benchmark --suite metrics`): all 147 registered metrics and
275
+ statistics functions at 10,000 and 100,000 samples. 79 are compared with a reference library, 49 with an
276
+ independent textbook formula and 19 (learned, judge-dependent or randomised) are timed alone; **all 128
277
+ comparisons agree**, and against the libraries the geometric-mean speed-up is **2.76×** (123 of 158
278
+ measurements faster). Per-metric table in BENCHMARKS.md.
279
+
274
280
  `evaluate()` validates inputs once and builds the confusion matrix once for all metrics, which is where most
275
281
  of the speed-up comes from. Hypothesis tests use SciPy underneath, so they match its speed at best; rows
276
282
  below 1× pay for input validation and the extra intervals and effect sizes EvalSuite reports. Reproduce on