benchmark-reliability 0.2.1__tar.gz → 0.3.0__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 (90) hide show
  1. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/PKG-INFO +12 -12
  2. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/README.md +8 -8
  3. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/pyproject.toml +8 -4
  4. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/setup.py +4 -3
  5. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/src/benchmark_reliability.egg-info/PKG-INFO +12 -12
  6. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/src/benchmark_reliability.egg-info/SOURCES.txt +30 -0
  7. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/src/brf/__init__.py +3 -1
  8. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/src/brf/analyzer.py +6 -9
  9. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/src/brf/registry/cli.py +22 -65
  10. benchmark_reliability-0.3.0/src/brf/registry/manifest.yaml +66 -0
  11. benchmark_reliability-0.3.0/src/brf/registry/registry_v2.1.json +1634 -0
  12. benchmark_reliability-0.3.0/src/brf/registry/sources/__init__.py +155 -0
  13. benchmark_reliability-0.3.0/src/brf/registry/sources/abalone.py +44 -0
  14. benchmark_reliability-0.3.0/src/brf/registry/sources/air_quality_uci.py +73 -0
  15. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/src/brf/registry/sources/assistments.py +3 -8
  16. benchmark_reliability-0.3.0/src/brf/registry/sources/auto_mpg.py +47 -0
  17. benchmark_reliability-0.3.0/src/brf/registry/sources/boston_housing.py +42 -0
  18. benchmark_reliability-0.3.0/src/brf/registry/sources/climate_weather.py +49 -0
  19. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/src/brf/registry/sources/college_scorecard.py +1 -11
  20. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/src/brf/registry/sources/colleges_aaup.py +0 -1
  21. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/src/brf/registry/sources/colleges_usnews.py +9 -16
  22. benchmark_reliability-0.3.0/src/brf/registry/sources/cpu_act.py +41 -0
  23. benchmark_reliability-0.3.0/src/brf/registry/sources/credit_card.py +45 -0
  24. benchmark_reliability-0.3.0/src/brf/registry/sources/cross_domain_batch.py +154 -0
  25. benchmark_reliability-0.3.0/src/brf/registry/sources/customer_churn.py +47 -0
  26. benchmark_reliability-0.3.0/src/brf/registry/sources/electricity.py +44 -0
  27. benchmark_reliability-0.3.0/src/brf/registry/sources/energy_building.py +44 -0
  28. benchmark_reliability-0.3.0/src/brf/registry/sources/energy_efficiency.py +42 -0
  29. benchmark_reliability-0.3.0/src/brf/registry/sources/entrance_exam.py +65 -0
  30. benchmark_reliability-0.3.0/src/brf/registry/sources/external_validation.py +180 -0
  31. benchmark_reliability-0.3.0/src/brf/registry/sources/german_credit.py +46 -0
  32. benchmark_reliability-0.3.0/src/brf/registry/sources/higher_ed.py +62 -0
  33. benchmark_reliability-0.3.0/src/brf/registry/sources/kaggle_students_performance.py +46 -0
  34. benchmark_reliability-0.3.0/src/brf/registry/sources/kdd_cup_2010.py +85 -0
  35. benchmark_reliability-0.3.0/src/brf/registry/sources/law_school.py +51 -0
  36. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/src/brf/registry/sources/mathe.py +0 -1
  37. benchmark_reliability-0.3.0/src/brf/registry/sources/mm_tba.py +161 -0
  38. benchmark_reliability-0.3.0/src/brf/registry/sources/nursery.py +56 -0
  39. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/src/brf/registry/sources/oli.py +2 -15
  40. benchmark_reliability-0.3.0/src/brf/registry/sources/olympics.py +55 -0
  41. benchmark_reliability-0.3.0/src/brf/registry/sources/oulad.py +75 -0
  42. benchmark_reliability-0.3.0/src/brf/registry/sources/pisa2015.py +62 -0
  43. benchmark_reliability-0.3.0/src/brf/registry/sources/pollution.py +42 -0
  44. benchmark_reliability-0.3.0/src/brf/registry/sources/real_estate.py +48 -0
  45. benchmark_reliability-0.3.0/src/brf/registry/sources/seoul_bike.py +43 -0
  46. benchmark_reliability-0.3.0/src/brf/registry/sources/student_absences.py +50 -0
  47. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/src/brf/registry/sources/student_depression.py +6 -17
  48. benchmark_reliability-0.3.0/src/brf/registry/sources/student_dropout.py +51 -0
  49. benchmark_reliability-0.3.0/src/brf/registry/sources/student_health.py +52 -0
  50. benchmark_reliability-0.3.0/src/brf/registry/sources/students_exam_scores.py +55 -0
  51. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/src/brf/registry/sources/tae.py +0 -1
  52. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/src/brf/registry/sources/turkiye.py +0 -3
  53. benchmark_reliability-0.3.0/src/brf/registry/sources/uci_student.py +52 -0
  54. benchmark_reliability-0.3.0/src/brf/registry/sources/uci_student_math.py +58 -0
  55. benchmark_reliability-0.3.0/src/brf/registry/sources/wine_quality.py +54 -0
  56. benchmark_reliability-0.3.0/src/brf/registry/sources/xapi_edu.py +70 -0
  57. benchmark_reliability-0.3.0/src/brf/registry/sources/yacht.py +42 -0
  58. benchmark_reliability-0.3.0/src/brf/registry/verify.py +114 -0
  59. benchmark_reliability-0.2.1/src/brf/registry/manifest.yaml +0 -47
  60. benchmark_reliability-0.2.1/src/brf/registry/sources/__init__.py +0 -216
  61. benchmark_reliability-0.2.1/src/brf/registry/sources/entrance_exam.py +0 -55
  62. benchmark_reliability-0.2.1/src/brf/registry/sources/higher_ed.py +0 -53
  63. benchmark_reliability-0.2.1/src/brf/registry/sources/mm_tba.py +0 -49
  64. benchmark_reliability-0.2.1/src/brf/registry/sources/oulad.py +0 -52
  65. benchmark_reliability-0.2.1/src/brf/registry/sources/student_dropout.py +0 -75
  66. benchmark_reliability-0.2.1/src/brf/registry/sources/uci_student.py +0 -53
  67. benchmark_reliability-0.2.1/src/brf/registry/sources/xapi_edu.py +0 -51
  68. benchmark_reliability-0.2.1/src/brf/registry/verify.py +0 -73
  69. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/setup.cfg +0 -0
  70. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/src/benchmark_reliability.egg-info/dependency_links.txt +0 -0
  71. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/src/benchmark_reliability.egg-info/entry_points.txt +0 -0
  72. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/src/benchmark_reliability.egg-info/requires.txt +0 -0
  73. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/src/benchmark_reliability.egg-info/top_level.txt +0 -0
  74. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/src/brf/cli.py +0 -0
  75. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/src/brf/metrics/__init__.py +0 -0
  76. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/src/brf/metrics/baseline_gap.py +0 -0
  77. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/src/brf/metrics/instability.py +0 -0
  78. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/src/brf/metrics/metadata.py +0 -0
  79. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/src/brf/metrics/null_test.py +0 -0
  80. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/src/brf/phase/__init__.py +0 -0
  81. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/src/brf/phase/classifier.py +0 -0
  82. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/src/brf/phase/embedding.py +0 -0
  83. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/src/brf/phase/visualization.py +0 -0
  84. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/src/brf/registry/__init__.py +0 -0
  85. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/src/brf/report/__init__.py +0 -0
  86. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/src/brf/report/json_export.py +0 -0
  87. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/src/brf/report/latex_export.py +0 -0
  88. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/tests/test_analyzer.py +0 -0
  89. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/tests/test_metrics.py +0 -0
  90. {benchmark_reliability-0.2.1 → benchmark_reliability-0.3.0}/tests/test_phase.py +0 -0
@@ -1,11 +1,11 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: benchmark-reliability
3
- Version: 0.2.1
3
+ Version: 0.3.0
4
4
  Summary: Benchmark Reliability Framework (BRF) - dataset-level reliability auditing with built-in benchmark registry
5
5
  Author-email: zhanglizhuo <zhanglizhuo@gmail.com>
6
6
  License: MIT
7
- Project-URL: Homepage, https://github.com/zhanglizhuo/BenchmarkReliability
8
- Project-URL: Repository, https://github.com/zhanglizhuo/BenchmarkReliability
7
+ Project-URL: Homepage, https://github.com/zhanglizhuo/BRFPackage
8
+ Project-URL: Repository, https://github.com/zhanglizhuo/BRFPackage
9
9
  Keywords: benchmark reliability,dataset auditing,educational AI,machine learning,registry
10
10
  Classifier: Development Status :: 3 - Alpha
11
11
  Classifier: License :: OSI Approved :: MIT License
@@ -65,9 +65,9 @@ print(analyzer.diagnose()["summary"])
65
65
  for dim, issue in analyzer.diagnose()["details"].items():
66
66
  print(f" {dim}: {issue}")
67
67
 
68
- # Percentile rank against 25 audited benchmarks
68
+ # Percentile rank against the 51 benchmarks in the BRF Registry (v2.1 reference)
69
69
  print(analyzer.rank())
70
- # {'S_percentile': 16.0, 'E_percentile': 36.0, ...}
70
+ # {'S_percentile': 17.6, 'E_percentile': 27.5, 'reference': 'BRF Registry v2.1 (51 benchmarks)'}
71
71
 
72
72
  # One-paragraph recommendation
73
73
  print(analyzer.recommend())
@@ -77,7 +77,7 @@ print(analyzer.recommend())
77
77
 
78
78
  ```bash
79
79
  $ brf registry list
80
- BRF Registry -- 16 datasets
80
+ BRF Registry
81
81
 
82
82
  assistments ASSISTments 2009-2010 N= 3729 G= 124
83
83
  college_scorecard US College Scorecard N= 7804 G= 59
@@ -95,7 +95,7 @@ BRF Audit: Teaching Assistant Evaluation (tae)
95
95
  ### Download and verify all datasets
96
96
 
97
97
  ```bash
98
- $ brf registry sync # download + SHA-256 verify all 16 datasets
98
+ $ brf registry sync # download + SHA-256 verify all
99
99
  $ brf registry info oulad
100
100
  name: oulad
101
101
  display_name: Open University Learning Analytics Dataset
@@ -122,7 +122,7 @@ communication shorthand only --- **the signal is in the continuous values**.
122
122
 
123
123
  Use `analyzer.diagnose()` for per-dimension explanations and actionable
124
124
  recommendations, or `analyzer.rank()` to see percentile scores against
125
- the 25 benchmarks in the BRF Registry.
125
+ the 51 benchmarks in the BRF Registry (v2.1 reference).
126
126
 
127
127
  ## CLI Reference
128
128
 
@@ -152,8 +152,8 @@ To cite the BRF framework and package (JOSS paper forthcoming):
152
152
  @software{zhang2026brf,
153
153
  author = {Lizhuo Zhang},
154
154
  title = {benchmark-reliability: Benchmark Reliability Framework},
155
- url = {https://github.com/zhanglizhuo/BenchmarkReliability},
156
- version = {0.1.5},
155
+ url = {https://github.com/zhanglizhuo/BRFPackage},
156
+ version = {0.3.0},
157
157
  year = {2026},
158
158
  }
159
159
  ```
@@ -162,7 +162,7 @@ The behavior audit protocol is described in:
162
162
 
163
163
  > Zhang, L. *BehaviorAudit: a four-dimension protocol for auditing
164
164
  > benchmark reliability under group-aware evaluation.*
165
- > Scientific Reports (under review).
165
+ > Scientific Reports (2026). https://doi.org/10.1038/s41598-026-69629-6
166
166
 
167
167
  ## Related Work
168
168
 
@@ -38,9 +38,9 @@ print(analyzer.diagnose()["summary"])
38
38
  for dim, issue in analyzer.diagnose()["details"].items():
39
39
  print(f" {dim}: {issue}")
40
40
 
41
- # Percentile rank against 25 audited benchmarks
41
+ # Percentile rank against the 51 benchmarks in the BRF Registry (v2.1 reference)
42
42
  print(analyzer.rank())
43
- # {'S_percentile': 16.0, 'E_percentile': 36.0, ...}
43
+ # {'S_percentile': 17.6, 'E_percentile': 27.5, 'reference': 'BRF Registry v2.1 (51 benchmarks)'}
44
44
 
45
45
  # One-paragraph recommendation
46
46
  print(analyzer.recommend())
@@ -50,7 +50,7 @@ print(analyzer.recommend())
50
50
 
51
51
  ```bash
52
52
  $ brf registry list
53
- BRF Registry -- 16 datasets
53
+ BRF Registry
54
54
 
55
55
  assistments ASSISTments 2009-2010 N= 3729 G= 124
56
56
  college_scorecard US College Scorecard N= 7804 G= 59
@@ -68,7 +68,7 @@ BRF Audit: Teaching Assistant Evaluation (tae)
68
68
  ### Download and verify all datasets
69
69
 
70
70
  ```bash
71
- $ brf registry sync # download + SHA-256 verify all 16 datasets
71
+ $ brf registry sync # download + SHA-256 verify all
72
72
  $ brf registry info oulad
73
73
  name: oulad
74
74
  display_name: Open University Learning Analytics Dataset
@@ -95,7 +95,7 @@ communication shorthand only --- **the signal is in the continuous values**.
95
95
 
96
96
  Use `analyzer.diagnose()` for per-dimension explanations and actionable
97
97
  recommendations, or `analyzer.rank()` to see percentile scores against
98
- the 25 benchmarks in the BRF Registry.
98
+ the 51 benchmarks in the BRF Registry (v2.1 reference).
99
99
 
100
100
  ## CLI Reference
101
101
 
@@ -125,8 +125,8 @@ To cite the BRF framework and package (JOSS paper forthcoming):
125
125
  @software{zhang2026brf,
126
126
  author = {Lizhuo Zhang},
127
127
  title = {benchmark-reliability: Benchmark Reliability Framework},
128
- url = {https://github.com/zhanglizhuo/BenchmarkReliability},
129
- version = {0.1.5},
128
+ url = {https://github.com/zhanglizhuo/BRFPackage},
129
+ version = {0.3.0},
130
130
  year = {2026},
131
131
  }
132
132
  ```
@@ -135,7 +135,7 @@ The behavior audit protocol is described in:
135
135
 
136
136
  > Zhang, L. *BehaviorAudit: a four-dimension protocol for auditing
137
137
  > benchmark reliability under group-aware evaluation.*
138
- > Scientific Reports (under review).
138
+ > Scientific Reports (2026). https://doi.org/10.1038/s41598-026-69629-6
139
139
 
140
140
  ## Related Work
141
141
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "benchmark-reliability"
7
- version = "0.2.1"
7
+ version = "0.3.0"
8
8
  description = "Benchmark Reliability Framework (BRF) - dataset-level reliability auditing with built-in benchmark registry"
9
9
  readme = "README.md"
10
10
  license = { text = "MIT" }
@@ -37,14 +37,18 @@ dependencies = [
37
37
  brf = "brf.cli:main"
38
38
 
39
39
  [project.urls]
40
- Homepage = "https://github.com/zhanglizhuo/BenchmarkReliability"
41
- Repository = "https://github.com/zhanglizhuo/BenchmarkReliability"
40
+ Homepage = "https://github.com/zhanglizhuo/BRFPackage"
41
+ Repository = "https://github.com/zhanglizhuo/BRFPackage"
42
42
 
43
43
  [tool.setuptools]
44
44
  license-files = []
45
45
 
46
46
  [tool.setuptools.packages.find]
47
47
  where = ["src"]
48
+ include = ["brf", "brf.metrics", "brf.phase", "brf.registry", "brf.registry.sources", "brf.report"]
48
49
 
49
50
  [tool.setuptools.package-data]
50
- "brf.registry" = ["manifest.yaml"]
51
+ "brf.registry" = ["manifest.yaml", "registry_v2.1.json"]
52
+
53
+ [tool.setuptools.exclude-package-data]
54
+ "brf.registry" = ["cache/*", "cache/**/*"]
@@ -2,15 +2,16 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name="benchmark-reliability",
5
- version="0.2.1",
5
+ version="0.3.0",
6
6
  packages=find_packages(where="src"),
7
7
  package_dir={"": "src"},
8
8
  package_data={
9
9
  "brf.registry": ["manifest.yaml"],
10
10
  },
11
11
  install_requires=[
12
- "numpy>=1.18",
13
- "scikit-learn>=0.24",
12
+ "numpy>=1.21",
13
+ "scikit-learn>=1.0",
14
+ "matplotlib>=3.5",
14
15
  "pandas>=1.1",
15
16
  "scipy>=1.5",
16
17
  "openml>=0.12",
@@ -1,11 +1,11 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: benchmark-reliability
3
- Version: 0.2.1
3
+ Version: 0.3.0
4
4
  Summary: Benchmark Reliability Framework (BRF) - dataset-level reliability auditing with built-in benchmark registry
5
5
  Author-email: zhanglizhuo <zhanglizhuo@gmail.com>
6
6
  License: MIT
7
- Project-URL: Homepage, https://github.com/zhanglizhuo/BenchmarkReliability
8
- Project-URL: Repository, https://github.com/zhanglizhuo/BenchmarkReliability
7
+ Project-URL: Homepage, https://github.com/zhanglizhuo/BRFPackage
8
+ Project-URL: Repository, https://github.com/zhanglizhuo/BRFPackage
9
9
  Keywords: benchmark reliability,dataset auditing,educational AI,machine learning,registry
10
10
  Classifier: Development Status :: 3 - Alpha
11
11
  Classifier: License :: OSI Approved :: MIT License
@@ -65,9 +65,9 @@ print(analyzer.diagnose()["summary"])
65
65
  for dim, issue in analyzer.diagnose()["details"].items():
66
66
  print(f" {dim}: {issue}")
67
67
 
68
- # Percentile rank against 25 audited benchmarks
68
+ # Percentile rank against the 51 benchmarks in the BRF Registry (v2.1 reference)
69
69
  print(analyzer.rank())
70
- # {'S_percentile': 16.0, 'E_percentile': 36.0, ...}
70
+ # {'S_percentile': 17.6, 'E_percentile': 27.5, 'reference': 'BRF Registry v2.1 (51 benchmarks)'}
71
71
 
72
72
  # One-paragraph recommendation
73
73
  print(analyzer.recommend())
@@ -77,7 +77,7 @@ print(analyzer.recommend())
77
77
 
78
78
  ```bash
79
79
  $ brf registry list
80
- BRF Registry -- 16 datasets
80
+ BRF Registry
81
81
 
82
82
  assistments ASSISTments 2009-2010 N= 3729 G= 124
83
83
  college_scorecard US College Scorecard N= 7804 G= 59
@@ -95,7 +95,7 @@ BRF Audit: Teaching Assistant Evaluation (tae)
95
95
  ### Download and verify all datasets
96
96
 
97
97
  ```bash
98
- $ brf registry sync # download + SHA-256 verify all 16 datasets
98
+ $ brf registry sync # download + SHA-256 verify all
99
99
  $ brf registry info oulad
100
100
  name: oulad
101
101
  display_name: Open University Learning Analytics Dataset
@@ -122,7 +122,7 @@ communication shorthand only --- **the signal is in the continuous values**.
122
122
 
123
123
  Use `analyzer.diagnose()` for per-dimension explanations and actionable
124
124
  recommendations, or `analyzer.rank()` to see percentile scores against
125
- the 25 benchmarks in the BRF Registry.
125
+ the 51 benchmarks in the BRF Registry (v2.1 reference).
126
126
 
127
127
  ## CLI Reference
128
128
 
@@ -152,8 +152,8 @@ To cite the BRF framework and package (JOSS paper forthcoming):
152
152
  @software{zhang2026brf,
153
153
  author = {Lizhuo Zhang},
154
154
  title = {benchmark-reliability: Benchmark Reliability Framework},
155
- url = {https://github.com/zhanglizhuo/BenchmarkReliability},
156
- version = {0.1.5},
155
+ url = {https://github.com/zhanglizhuo/BRFPackage},
156
+ version = {0.3.0},
157
157
  year = {2026},
158
158
  }
159
159
  ```
@@ -162,7 +162,7 @@ The behavior audit protocol is described in:
162
162
 
163
163
  > Zhang, L. *BehaviorAudit: a four-dimension protocol for auditing
164
164
  > benchmark reliability under group-aware evaluation.*
165
- > Scientific Reports (under review).
165
+ > Scientific Reports (2026). https://doi.org/10.1038/s41598-026-69629-6
166
166
 
167
167
  ## Related Work
168
168
 
@@ -22,24 +22,54 @@ src/brf/phase/visualization.py
22
22
  src/brf/registry/__init__.py
23
23
  src/brf/registry/cli.py
24
24
  src/brf/registry/manifest.yaml
25
+ src/brf/registry/registry_v2.1.json
25
26
  src/brf/registry/verify.py
26
27
  src/brf/registry/sources/__init__.py
28
+ src/brf/registry/sources/abalone.py
29
+ src/brf/registry/sources/air_quality_uci.py
27
30
  src/brf/registry/sources/assistments.py
31
+ src/brf/registry/sources/auto_mpg.py
32
+ src/brf/registry/sources/boston_housing.py
33
+ src/brf/registry/sources/climate_weather.py
28
34
  src/brf/registry/sources/college_scorecard.py
29
35
  src/brf/registry/sources/colleges_aaup.py
30
36
  src/brf/registry/sources/colleges_usnews.py
37
+ src/brf/registry/sources/cpu_act.py
38
+ src/brf/registry/sources/credit_card.py
39
+ src/brf/registry/sources/cross_domain_batch.py
40
+ src/brf/registry/sources/customer_churn.py
41
+ src/brf/registry/sources/electricity.py
42
+ src/brf/registry/sources/energy_building.py
43
+ src/brf/registry/sources/energy_efficiency.py
31
44
  src/brf/registry/sources/entrance_exam.py
45
+ src/brf/registry/sources/external_validation.py
46
+ src/brf/registry/sources/german_credit.py
32
47
  src/brf/registry/sources/higher_ed.py
48
+ src/brf/registry/sources/kaggle_students_performance.py
49
+ src/brf/registry/sources/kdd_cup_2010.py
50
+ src/brf/registry/sources/law_school.py
33
51
  src/brf/registry/sources/mathe.py
34
52
  src/brf/registry/sources/mm_tba.py
53
+ src/brf/registry/sources/nursery.py
35
54
  src/brf/registry/sources/oli.py
55
+ src/brf/registry/sources/olympics.py
36
56
  src/brf/registry/sources/oulad.py
57
+ src/brf/registry/sources/pisa2015.py
58
+ src/brf/registry/sources/pollution.py
59
+ src/brf/registry/sources/real_estate.py
60
+ src/brf/registry/sources/seoul_bike.py
61
+ src/brf/registry/sources/student_absences.py
37
62
  src/brf/registry/sources/student_depression.py
38
63
  src/brf/registry/sources/student_dropout.py
64
+ src/brf/registry/sources/student_health.py
65
+ src/brf/registry/sources/students_exam_scores.py
39
66
  src/brf/registry/sources/tae.py
40
67
  src/brf/registry/sources/turkiye.py
41
68
  src/brf/registry/sources/uci_student.py
69
+ src/brf/registry/sources/uci_student_math.py
70
+ src/brf/registry/sources/wine_quality.py
42
71
  src/brf/registry/sources/xapi_edu.py
72
+ src/brf/registry/sources/yacht.py
43
73
  src/brf/report/__init__.py
44
74
  src/brf/report/json_export.py
45
75
  src/brf/report/latex_export.py
@@ -1,6 +1,8 @@
1
1
  from .analyzer import BRFAnalyzer
2
2
 
3
- __all__ = ["BRFAnalyzer"]
3
+ __version__ = "0.3.0"
4
+
5
+ __all__ = ["BRFAnalyzer", "__version__"]
4
6
 
5
7
  # Registry is lazily imported to avoid circular dependencies
6
8
  # Use: from brf.registry import REGISTRY_SOURCES, list_sources
@@ -27,7 +27,7 @@ class BRFAnalyzer:
27
27
  raise ValueError("n_splits must be >= 2")
28
28
  self.n_splits = n_splits
29
29
  self.n_permutations = n_permutations
30
- self.model = model or Ridge(alpha=1.0)
30
+ self.model = model if model is not None else Ridge(alpha=1.0)
31
31
  self.seed = seed
32
32
  self.scale = scale
33
33
 
@@ -251,10 +251,10 @@ class BRFAnalyzer:
251
251
  }
252
252
 
253
253
  def rank(self) -> Dict[str, float]:
254
- """Percentile rank of S and E against the BRF Registry v1.5 benchmarks.
254
+ """Percentile rank of S and E against the BRF Registry v2.1 benchmarks.
255
255
 
256
256
  Returns percentiles (0-100) indicating where this dataset's S and E
257
- fall relative to the 25 audited benchmarks. Requires the registry
257
+ fall relative to the audited benchmarks in the bundled Registry reference (v2.1). Requires
258
258
  data to be accessible.
259
259
  """
260
260
  if not self._fitted:
@@ -273,7 +273,7 @@ class BRFAnalyzer:
273
273
  return {
274
274
  "S_percentile": round(pctile(s_vals, self.S), 1),
275
275
  "E_percentile": round(pctile(e_vals, self.E), 1),
276
- "reference": f"BRF Registry v1.5 ({len(s_vals)} benchmarks)",
276
+ "reference": f"BRF Registry v2.1 ({len(s_vals)} benchmarks)",
277
277
  }
278
278
 
279
279
  def recommend(self, n_samples: Optional[int] = None,
@@ -316,12 +316,9 @@ class BRFAnalyzer:
316
316
  """Load Registry reference data for percentile ranking."""
317
317
  if self._registry_ref is not None:
318
318
  return self._registry_ref
319
- # Search for registry_v1.5.json in known locations
319
+ # Bundled registry reference (ships with the package at brf/registry/)
320
320
  candidates = [
321
- Path(__file__).parent.parent.parent.parent
322
- / "BRFRegistry" / "results" / "registry_v1.5.json",
323
- Path(__file__).parent.parent.parent
324
- / "BRFRegistry" / "results" / "registry_v1.5.json",
321
+ Path(__file__).parent / "registry" / "registry_v2.1.json",
325
322
  ]
326
323
  for p in candidates:
327
324
  if p.exists():
@@ -1,38 +1,11 @@
1
- """BRF Registry CLI -- download, verify, and prepare datasets.
2
-
3
- Usage::
4
-
5
- # List all datasets
6
- python -m registry.cli list
7
-
8
- # Download a dataset (with verification)
9
- python -m registry.cli download tae
10
- python -m registry.cli download --all
11
-
12
- # Verify checksums
13
- python -m registry.cli verify tae
14
- python -m registry.cli verify --all
15
-
16
- # Sync (download + verify all)
17
- python -m registry.cli sync
18
-
19
- # Show metadata
20
- python -m registry.cli info tae
21
- """
22
-
23
- from __future__ import annotations
24
-
25
1
  import argparse
26
2
  from pathlib import Path
27
3
 
28
- import sys
29
-
30
4
  from .sources import REGISTRY_SOURCES, list_sources
31
5
  from .verify import verify_dataset, verify_all
32
6
 
33
7
 
34
8
  def cmd_list():
35
- """List all registered datasets."""
36
9
  print(f"BRF Registry -- {len(list_sources())} datasets\n")
37
10
  for key in list_sources():
38
11
  source = REGISTRY_SOURCES[key]
@@ -40,16 +13,11 @@ def cmd_list():
40
13
  f"N={source.n_samples:>5d} G={source.n_groups:>4d}")
41
14
 
42
15
 
43
- def cmd_download(key: str = None, all_: bool = False):
44
- """Download dataset(s)."""
45
- if all_:
46
- keys = list_sources()
47
- elif key:
48
- keys = [key]
49
- else:
16
+ def cmd_download(key=None, all_=False):
17
+ keys = list_sources() if all_ else ([key] if key else [])
18
+ if not keys:
50
19
  print("Usage: download <key> or download --all")
51
20
  return
52
-
53
21
  for k in keys:
54
22
  source = REGISTRY_SOURCES.get(k)
55
23
  if source is None:
@@ -59,17 +27,14 @@ def cmd_download(key: str = None, all_: bool = False):
59
27
  try:
60
28
  path = source.download()
61
29
  print(f" -> {path}")
62
- # Verify after download
63
- if source.sha256:
64
- ok = source._check_sha256(path) if isinstance(path, Path) else True
65
- if not ok:
30
+ if source.sha256 and isinstance(path, Path):
31
+ if not source._check_sha256(path):
66
32
  print(f" WARNING: SHA-256 mismatch!")
67
33
  except Exception as e:
68
34
  print(f" FAILED: {e}")
69
35
 
70
36
 
71
- def cmd_verify(key: str = None, all_: bool = False):
72
- """Verify dataset checksums."""
37
+ def cmd_verify(key=None, all_=False):
73
38
  if all_:
74
39
  verify_all()
75
40
  elif key:
@@ -79,7 +44,6 @@ def cmd_verify(key: str = None, all_: bool = False):
79
44
 
80
45
 
81
46
  def cmd_sync():
82
- """Download + verify all datasets."""
83
47
  print("Syncing all datasets...")
84
48
  for key in list_sources():
85
49
  source = REGISTRY_SOURCES[key]
@@ -87,45 +51,38 @@ def cmd_sync():
87
51
  try:
88
52
  path = source.download()
89
53
  print(f" Downloaded to {path}")
90
- if source.sha256:
91
- ok = source._check_sha256(path) if isinstance(path, Path) else True
54
+ if source.sha256 and isinstance(path, Path):
55
+ ok = source._check_sha256(path)
92
56
  print(f" Checksum: {'OK' if ok else 'FAIL'}")
93
57
  except Exception as e:
94
58
  print(f" FAILED: {e}")
95
59
 
96
60
 
97
- def cmd_info(key: str):
98
- """Show dataset metadata."""
61
+ def cmd_info(key):
99
62
  source = REGISTRY_SOURCES.get(key)
100
63
  if source is None:
101
64
  print(f"Unknown dataset: {key}")
102
65
  return
103
- meta = source.metadata()
104
- for k, v in meta.items():
66
+ for k, v in source.metadata().items():
105
67
  print(f" {k}: {v}")
106
68
 
107
69
 
108
70
  def main():
109
71
  parser = argparse.ArgumentParser(description="BRF Registry CLI")
110
- sub = parser.add_subparsers(dest="command", help="Command")
111
-
112
- sub.add_parser("list", help="List all datasets")
113
-
114
- dl = sub.add_parser("download", help="Download dataset(s)")
115
- dl.add_argument("key", nargs="?", help="Dataset key")
116
- dl.add_argument("--all", action="store_true", help="Download all")
117
-
118
- vf = sub.add_parser("verify", help="Verify checksums")
119
- vf.add_argument("key", nargs="?", help="Dataset key")
120
- vf.add_argument("--all", action="store_true", help="Verify all")
121
-
122
- sub.add_parser("sync", help="Download + verify all datasets")
123
-
124
- info = sub.add_parser("info", help="Show dataset metadata")
125
- info.add_argument("key", help="Dataset key")
72
+ sub = parser.add_subparsers(dest="command")
73
+
74
+ sub.add_parser("list")
75
+ dl = sub.add_parser("download")
76
+ dl.add_argument("key", nargs="?")
77
+ dl.add_argument("--all", action="store_true")
78
+ vf = sub.add_parser("verify")
79
+ vf.add_argument("key", nargs="?")
80
+ vf.add_argument("--all", action="store_true")
81
+ sub.add_parser("sync")
82
+ info = sub.add_parser("info")
83
+ info.add_argument("key")
126
84
 
127
85
  args = parser.parse_args()
128
-
129
86
  if args.command == "list":
130
87
  cmd_list()
131
88
  elif args.command == "download":
@@ -0,0 +1,66 @@
1
+ brf_results:
2
+ fragile: 0
3
+ reliable: 42
4
+ void: 9
5
+ datasets:
6
+ - abalone
7
+ - air_quality
8
+ - airfoil
9
+ - assistments
10
+ - auto_mpg
11
+ - bike_sharing
12
+ - boston_housing
13
+ - breast_cancer
14
+ - california_housing
15
+ - ccpp
16
+ - college_scorecard
17
+ - colleges_aaup
18
+ - colleges_usnews
19
+ - concrete
20
+ - cpu_act
21
+ - credit_card
22
+ - customer_churn
23
+ - diabetes
24
+ - energy_building
25
+ - energy_efficiency
26
+ - entrance_exam
27
+ - german_credit
28
+ - higher_ed
29
+ - kaggle_students_performance
30
+ - kdd_cup_2010
31
+ - law_school
32
+ - linnerud
33
+ - mathe
34
+ - mm_tba
35
+ - nursery
36
+ - oli
37
+ - oulad
38
+ - pisa2015
39
+ - pollution
40
+ - real_estate
41
+ - climate_weather
42
+ - seoul_bike
43
+ - olympics
44
+ - student_absences
45
+ - student_depression
46
+ - student_dropout
47
+ - student_health
48
+ - students_exam_scores
49
+ - electricity
50
+ - tae
51
+ - turkiye
52
+ - uci_student
53
+ - uci_student_math
54
+ - wine_quality
55
+ - xapi_edu
56
+ - yacht
57
+ description: 'Curated collection of group-aware benchmark datasets across education,
58
+ engineering, transportation, energy, healthcare, finance, environmental, business,
59
+ sports, and fitness domains with standardized metadata, reproducibility scripts,
60
+ and BRF (Benchmark Reliability Framework) audit results. v2.1 expands from 35 to
61
+ 51 datasets. All source modules are self-contained.
62
+
63
+ '
64
+ release_date: '2026-09-10'
65
+ total_datasets: 51
66
+ version: '2.1'