gp3mlpy 0.1.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 (376) hide show
  1. gp3mlpy-0.1.0/.github/workflows/ci.yml +109 -0
  2. gp3mlpy-0.1.0/.github/workflows/pages.yml +51 -0
  3. gp3mlpy-0.1.0/.github/workflows/parity.yml +469 -0
  4. gp3mlpy-0.1.0/.github/workflows/publish.yml +141 -0
  5. gp3mlpy-0.1.0/.gitignore +15 -0
  6. gp3mlpy-0.1.0/.zenodo.json +22 -0
  7. gp3mlpy-0.1.0/CHANGELOG.md +19 -0
  8. gp3mlpy-0.1.0/CITATION.cff +12 -0
  9. gp3mlpy-0.1.0/CODE_OF_CONDUCT.md +3 -0
  10. gp3mlpy-0.1.0/CONTRIBUTING.md +7 -0
  11. gp3mlpy-0.1.0/FILE_MANIFEST.csv +250 -0
  12. gp3mlpy-0.1.0/FILE_MANIFEST.json +1254 -0
  13. gp3mlpy-0.1.0/GOVERNANCE.md +7 -0
  14. gp3mlpy-0.1.0/LICENSE +21 -0
  15. gp3mlpy-0.1.0/MANUAL_UPLOAD.md +30 -0
  16. gp3mlpy-0.1.0/PARITY_STATUS.md +34 -0
  17. gp3mlpy-0.1.0/PKG-INFO +258 -0
  18. gp3mlpy-0.1.0/PROHIBITED-USE.md +16 -0
  19. gp3mlpy-0.1.0/README.md +199 -0
  20. gp3mlpy-0.1.0/REFERENCE_BASELINE.md +5 -0
  21. gp3mlpy-0.1.0/RELEASE_CHECKLIST.md +115 -0
  22. gp3mlpy-0.1.0/SECURITY.md +3 -0
  23. gp3mlpy-0.1.0/UPLOAD_CHECKLIST.md +23 -0
  24. gp3mlpy-0.1.0/VALIDATION_REPORT.md +87 -0
  25. gp3mlpy-0.1.0/docs/api-map.md +143 -0
  26. gp3mlpy-0.1.0/docs/articles/analysis-plan-governance.md +12 -0
  27. gp3mlpy-0.1.0/docs/articles/api-stability-contracts.md +25 -0
  28. gp3mlpy-0.1.0/docs/articles/assigned-condition-discrimination.md +15 -0
  29. gp3mlpy-0.1.0/docs/articles/contaminated-manifest-leakage.md +13 -0
  30. gp3mlpy-0.1.0/docs/articles/cross-package-interoperability.md +22 -0
  31. gp3mlpy-0.1.0/docs/articles/dataset-shift-and-robustness.md +71 -0
  32. gp3mlpy-0.1.0/docs/articles/decision-governance.md +73 -0
  33. gp3mlpy-0.1.0/docs/articles/external-validation-reporting.md +17 -0
  34. gp3mlpy-0.1.0/docs/articles/governance-standards-profile.md +71 -0
  35. gp3mlpy-0.1.0/docs/articles/group-aware-conformal-prediction.md +15 -0
  36. gp3mlpy-0.1.0/docs/articles/index.md +86 -0
  37. gp3mlpy-0.1.0/docs/articles/integrated-research-workflow.md +32 -0
  38. gp3mlpy-0.1.0/docs/articles/nested-grouped-resampling.md +15 -0
  39. gp3mlpy-0.1.0/docs/articles/observed-behavioral-endpoint.md +13 -0
  40. gp3mlpy-0.1.0/docs/articles/optional-engine-portability.md +63 -0
  41. gp3mlpy-0.1.0/docs/articles/participant-generalization.md +13 -0
  42. gp3mlpy-0.1.0/docs/articles/participant-stimulus-generalization.md +13 -0
  43. gp3mlpy-0.1.0/docs/articles/portable-research-artifacts.md +16 -0
  44. gp3mlpy-0.1.0/docs/articles/recording-quality-review.md +21 -0
  45. gp3mlpy-0.1.0/docs/articles/reproducibility-hardening.md +18 -0
  46. gp3mlpy-0.1.0/docs/articles/stimulus-generalization.md +13 -0
  47. gp3mlpy-0.1.0/docs/assets/brand/gp3mlpy-mark.svg +26 -0
  48. gp3mlpy-0.1.0/docs/assets/plots/dataset-shift.svg +1301 -0
  49. gp3mlpy-0.1.0/docs/assets/plots/engine-capabilities.svg +1097 -0
  50. gp3mlpy-0.1.0/docs/assets/plots/governance-profile.svg +1167 -0
  51. gp3mlpy-0.1.0/docs/assets/plots/threshold-evaluation.svg +1315 -0
  52. gp3mlpy-0.1.0/docs/index.md +226 -0
  53. gp3mlpy-0.1.0/docs/key-concepts.md +93 -0
  54. gp3mlpy-0.1.0/docs/plots.md +100 -0
  55. gp3mlpy-0.1.0/docs/reference/apply_gazepoint_calibrator.md +15 -0
  56. gp3mlpy-0.1.0/docs/reference/apply_gazepoint_decision_rule.md +21 -0
  57. gp3mlpy-0.1.0/docs/reference/as_gp3ml_data.md +15 -0
  58. gp3mlpy-0.1.0/docs/reference/assert_gp3ml_engine_available.md +15 -0
  59. gp3mlpy-0.1.0/docs/reference/assert_gp3ml_use_case.md +15 -0
  60. gp3mlpy-0.1.0/docs/reference/assess_gazepoint_calibration.md +23 -0
  61. gp3mlpy-0.1.0/docs/reference/assess_gazepoint_conformal_coverage.md +21 -0
  62. gp3mlpy-0.1.0/docs/reference/audit_gazepoint_abstention.md +15 -0
  63. gp3mlpy-0.1.0/docs/reference/audit_gazepoint_dataset_shift.md +21 -0
  64. gp3mlpy-0.1.0/docs/reference/audit_gazepoint_group_folds.md +15 -0
  65. gp3mlpy-0.1.0/docs/reference/audit_gazepoint_missingness_shift.md +21 -0
  66. gp3mlpy-0.1.0/docs/reference/audit_gazepoint_ml_leakage.md +27 -0
  67. gp3mlpy-0.1.0/docs/reference/audit_gazepoint_model_robustness.md +22 -0
  68. gp3mlpy-0.1.0/docs/reference/audit_gazepoint_nested_resampling.md +17 -0
  69. gp3mlpy-0.1.0/docs/reference/audit_gazepoint_plan_deviations.md +21 -0
  70. gp3mlpy-0.1.0/docs/reference/audit_gazepoint_reproducibility.md +19 -0
  71. gp3mlpy-0.1.0/docs/reference/audit_gp3ml_api_stability.md +15 -0
  72. gp3mlpy-0.1.0/docs/reference/audit_gp3ml_governance_profile.md +15 -0
  73. gp3mlpy-0.1.0/docs/reference/bake_gazepoint_preprocessor.md +15 -0
  74. gp3mlpy-0.1.0/docs/reference/bootstrap_gazepoint_metrics.md +24 -0
  75. gp3mlpy-0.1.0/docs/reference/bootstrap_gazepoint_metrics_by_unit.md +30 -0
  76. gp3mlpy-0.1.0/docs/reference/capture_gazepoint_environment.md +19 -0
  77. gp3mlpy-0.1.0/docs/reference/collect_gazepoint_fold_predictions.md +15 -0
  78. gp3mlpy-0.1.0/docs/reference/combine_gazepoint_handoffs.md +19 -0
  79. gp3mlpy-0.1.0/docs/reference/compare_gazepoint_environments.md +15 -0
  80. gp3mlpy-0.1.0/docs/reference/compare_gazepoint_models.md +15 -0
  81. gp3mlpy-0.1.0/docs/reference/create_external_validation_report.md +19 -0
  82. gp3mlpy-0.1.0/docs/reference/create_gazepoint_decision_rule.md +28 -0
  83. gp3mlpy-0.1.0/docs/reference/create_gazepoint_feature_manifest.md +28 -0
  84. gp3mlpy-0.1.0/docs/reference/create_gazepoint_group_folds.md +28 -0
  85. gp3mlpy-0.1.0/docs/reference/create_gazepoint_handoff.md +25 -0
  86. gp3mlpy-0.1.0/docs/reference/create_gazepoint_model_artifact.md +24 -0
  87. gp3mlpy-0.1.0/docs/reference/create_gazepoint_model_card.md +24 -0
  88. gp3mlpy-0.1.0/docs/reference/create_gazepoint_nested_folds.md +23 -0
  89. gp3mlpy-0.1.0/docs/reference/create_gazepoint_release_evidence.md +22 -0
  90. gp3mlpy-0.1.0/docs/reference/create_gazepoint_release_model_card.md +29 -0
  91. gp3mlpy-0.1.0/docs/reference/create_gazepoint_reproducibility_report.md +21 -0
  92. gp3mlpy-0.1.0/docs/reference/create_gazepoint_synthetic_manifest.md +21 -0
  93. gp3mlpy-0.1.0/docs/reference/create_gazepoint_synthetic_task.md +21 -0
  94. gp3mlpy-0.1.0/docs/reference/create_gazepoint_tuning_grid.md +25 -0
  95. gp3mlpy-0.1.0/docs/reference/create_gp3ml_governance_profile.md +19 -0
  96. gp3mlpy-0.1.0/docs/reference/declare_gazepoint_analysis_plan.md +35 -0
  97. gp3mlpy-0.1.0/docs/reference/declare_gazepoint_external_dataset.md +26 -0
  98. gp3mlpy-0.1.0/docs/reference/declare_gazepoint_task.md +28 -0
  99. gp3mlpy-0.1.0/docs/reference/diagnose_gazepoint_group_folds.md +15 -0
  100. gp3mlpy-0.1.0/docs/reference/evaluate_external_validation.md +22 -0
  101. gp3mlpy-0.1.0/docs/reference/evaluate_gazepoint_external_transportability.md +26 -0
  102. gp3mlpy-0.1.0/docs/reference/evaluate_gazepoint_feature_stability.md +15 -0
  103. gp3mlpy-0.1.0/docs/reference/evaluate_gazepoint_group_folds.md +31 -0
  104. gp3mlpy-0.1.0/docs/reference/evaluate_gazepoint_missingness_sensitivity.md +15 -0
  105. gp3mlpy-0.1.0/docs/reference/evaluate_gazepoint_nested_resampling.md +30 -0
  106. gp3mlpy-0.1.0/docs/reference/evaluate_gazepoint_seed_stability.md +15 -0
  107. gp3mlpy-0.1.0/docs/reference/evaluate_gazepoint_threshold_stability.md +20 -0
  108. gp3mlpy-0.1.0/docs/reference/evaluate_gazepoint_thresholds.md +22 -0
  109. gp3mlpy-0.1.0/docs/reference/fit_gazepoint_calibrator.md +20 -0
  110. gp3mlpy-0.1.0/docs/reference/fit_gazepoint_conformal.md +25 -0
  111. gp3mlpy-0.1.0/docs/reference/fit_gazepoint_deep_model.md +28 -0
  112. gp3mlpy-0.1.0/docs/reference/fit_gazepoint_model.md +25 -0
  113. gp3mlpy-0.1.0/docs/reference/fit_gazepoint_preprocessor.md +23 -0
  114. gp3mlpy-0.1.0/docs/reference/gazepoint_classification_metrics.md +21 -0
  115. gp3mlpy-0.1.0/docs/reference/gazepoint_performance_metrics.md +21 -0
  116. gp3mlpy-0.1.0/docs/reference/gazepoint_regression_metrics.md +15 -0
  117. gp3mlpy-0.1.0/docs/reference/gp3ml_api_contracts.md +15 -0
  118. gp3mlpy-0.1.0/docs/reference/gp3ml_available_engines.md +15 -0
  119. gp3mlpy-0.1.0/docs/reference/gp3ml_engine_capabilities.md +15 -0
  120. gp3mlpy-0.1.0/docs/reference/gp3ml_interop_contracts.md +15 -0
  121. gp3mlpy-0.1.0/docs/reference/gp3ml_object_schema.md +15 -0
  122. gp3mlpy-0.1.0/docs/reference/gp3ml_prohibited_uses.md +15 -0
  123. gp3mlpy-0.1.0/docs/reference/index.md +129 -0
  124. gp3mlpy-0.1.0/docs/reference/integrate_black_box_model.md +23 -0
  125. gp3mlpy-0.1.0/docs/reference/lock_gazepoint_analysis_plan.md +15 -0
  126. gp3mlpy-0.1.0/docs/reference/normalize_gazepoint_artifact_text.md +15 -0
  127. gp3mlpy-0.1.0/docs/reference/predict_gazepoint_interval.md +15 -0
  128. gp3mlpy-0.1.0/docs/reference/predict_gazepoint_set.md +15 -0
  129. gp3mlpy-0.1.0/docs/reference/restore_gazepoint_model_artifact.md +15 -0
  130. gp3mlpy-0.1.0/docs/reference/select_gazepoint_model.md +24 -0
  131. gp3mlpy-0.1.0/docs/reference/select_gazepoint_threshold.md +25 -0
  132. gp3mlpy-0.1.0/docs/reference/simulate_gazepoint_governed_data.md +20 -0
  133. gp3mlpy-0.1.0/docs/reference/simulate_gazepoint_research_handoffs.md +20 -0
  134. gp3mlpy-0.1.0/docs/reference/split_gazepoint_ml_data.md +27 -0
  135. gp3mlpy-0.1.0/docs/reference/summarize_gazepoint_resample_performance.md +21 -0
  136. gp3mlpy-0.1.0/docs/reference/summarize_gazepoint_resample_uncertainty.md +21 -0
  137. gp3mlpy-0.1.0/docs/reference/summarize_gazepoint_shift.md +15 -0
  138. gp3mlpy-0.1.0/docs/reference/test_gazepoint_model_portability.md +20 -0
  139. gp3mlpy-0.1.0/docs/reference/train_gazepoint_classifier.md +15 -0
  140. gp3mlpy-0.1.0/docs/reference/tune_gazepoint_model.md +26 -0
  141. gp3mlpy-0.1.0/docs/reference/validate_gazepoint_analysis_plan.md +15 -0
  142. gp3mlpy-0.1.0/docs/reference/validate_gazepoint_conformal.md +15 -0
  143. gp3mlpy-0.1.0/docs/reference/validate_gazepoint_decision_rule.md +15 -0
  144. gp3mlpy-0.1.0/docs/reference/validate_gazepoint_environment.md +15 -0
  145. gp3mlpy-0.1.0/docs/reference/validate_gazepoint_feature_manifest.md +15 -0
  146. gp3mlpy-0.1.0/docs/reference/validate_gazepoint_fold_diagnostics.md +15 -0
  147. gp3mlpy-0.1.0/docs/reference/validate_gazepoint_group_folds.md +15 -0
  148. gp3mlpy-0.1.0/docs/reference/validate_gazepoint_handoff.md +15 -0
  149. gp3mlpy-0.1.0/docs/reference/validate_gazepoint_ml_roles.md +15 -0
  150. gp3mlpy-0.1.0/docs/reference/validate_gazepoint_ml_split.md +15 -0
  151. gp3mlpy-0.1.0/docs/reference/validate_gazepoint_model_artifact.md +15 -0
  152. gp3mlpy-0.1.0/docs/reference/validate_gazepoint_model_tuning.md +17 -0
  153. gp3mlpy-0.1.0/docs/reference/validate_gazepoint_nested_evaluation.md +17 -0
  154. gp3mlpy-0.1.0/docs/reference/validate_gazepoint_nested_folds.md +17 -0
  155. gp3mlpy-0.1.0/docs/reference/validate_gazepoint_release_checksums.md +15 -0
  156. gp3mlpy-0.1.0/docs/reference/validate_gazepoint_resample_evaluation.md +17 -0
  157. gp3mlpy-0.1.0/docs/reference/validate_gazepoint_research_bundle.md +15 -0
  158. gp3mlpy-0.1.0/docs/reference/validate_gazepoint_ro_crate.md +15 -0
  159. gp3mlpy-0.1.0/docs/reference/validate_gazepoint_target_uncertainty.md +17 -0
  160. gp3mlpy-0.1.0/docs/reference/validate_gazepoint_transportability.md +17 -0
  161. gp3mlpy-0.1.0/docs/reference/validate_gp3ml_object_contract.md +15 -0
  162. gp3mlpy-0.1.0/docs/reference/with_gazepoint_reproducible_output.md +15 -0
  163. gp3mlpy-0.1.0/docs/reference/write_external_validation_report.md +15 -0
  164. gp3mlpy-0.1.0/docs/reference/write_gazepoint_analysis_plan.md +15 -0
  165. gp3mlpy-0.1.0/docs/reference/write_gazepoint_feature_manifest_csv.md +21 -0
  166. gp3mlpy-0.1.0/docs/reference/write_gazepoint_fold_diagnostics_csv.md +23 -0
  167. gp3mlpy-0.1.0/docs/reference/write_gazepoint_group_folds_csv.md +25 -0
  168. gp3mlpy-0.1.0/docs/reference/write_gazepoint_ml_leakage_audit_csv.md +21 -0
  169. gp3mlpy-0.1.0/docs/reference/write_gazepoint_ml_split_csv.md +23 -0
  170. gp3mlpy-0.1.0/docs/reference/write_gazepoint_model_card.md +20 -0
  171. gp3mlpy-0.1.0/docs/reference/write_gazepoint_model_tuning.md +21 -0
  172. gp3mlpy-0.1.0/docs/reference/write_gazepoint_nested_evaluation.md +20 -0
  173. gp3mlpy-0.1.0/docs/reference/write_gazepoint_release_checksums.md +15 -0
  174. gp3mlpy-0.1.0/docs/reference/write_gazepoint_release_model_card.md +20 -0
  175. gp3mlpy-0.1.0/docs/reference/write_gazepoint_reproducibility_audit.md +20 -0
  176. gp3mlpy-0.1.0/docs/reference/write_gazepoint_reproducibility_report.md +15 -0
  177. gp3mlpy-0.1.0/docs/reference/write_gazepoint_resample_evaluation.md +20 -0
  178. gp3mlpy-0.1.0/docs/reference/write_gazepoint_ro_crate.md +25 -0
  179. gp3mlpy-0.1.0/docs/reference/write_gazepoint_target_uncertainty.md +20 -0
  180. gp3mlpy-0.1.0/docs/reference/write_gazepoint_transportability_report.md +15 -0
  181. gp3mlpy-0.1.0/docs/reference/write_gp3ml_api_contracts.md +20 -0
  182. gp3mlpy-0.1.0/docs/reference/write_gp3ml_governance_profile.md +15 -0
  183. gp3mlpy-0.1.0/docs/stylesheets/extra.css +211 -0
  184. gp3mlpy-0.1.0/examples/analysis-plan-governance.py +6 -0
  185. gp3mlpy-0.1.0/examples/api-stability-contracts.py +6 -0
  186. gp3mlpy-0.1.0/examples/assigned-condition-discrimination.py +10 -0
  187. gp3mlpy-0.1.0/examples/contaminated-manifest-leakage.py +6 -0
  188. gp3mlpy-0.1.0/examples/cross-package-interoperability.py +6 -0
  189. gp3mlpy-0.1.0/examples/dataset-shift-and-robustness.py +6 -0
  190. gp3mlpy-0.1.0/examples/decision-governance.py +6 -0
  191. gp3mlpy-0.1.0/examples/external-validation-reporting.py +6 -0
  192. gp3mlpy-0.1.0/examples/governance-standards-profile.py +6 -0
  193. gp3mlpy-0.1.0/examples/group-aware-conformal-prediction.py +6 -0
  194. gp3mlpy-0.1.0/examples/integrated-research-workflow.py +10 -0
  195. gp3mlpy-0.1.0/examples/nested-grouped-resampling.py +6 -0
  196. gp3mlpy-0.1.0/examples/observed-behavioral-endpoint.py +6 -0
  197. gp3mlpy-0.1.0/examples/optional-engine-portability.py +6 -0
  198. gp3mlpy-0.1.0/examples/participant-generalization.py +10 -0
  199. gp3mlpy-0.1.0/examples/participant-stimulus-generalization.py +10 -0
  200. gp3mlpy-0.1.0/examples/portable-research-artifacts.py +6 -0
  201. gp3mlpy-0.1.0/examples/recording-quality-review.py +10 -0
  202. gp3mlpy-0.1.0/examples/reproducibility-hardening.py +6 -0
  203. gp3mlpy-0.1.0/examples/stimulus-generalization.py +10 -0
  204. gp3mlpy-0.1.0/mkdocs.yml +101 -0
  205. gp3mlpy-0.1.0/parity/README.md +79 -0
  206. gp3mlpy-0.1.0/parity/build_matrix.py +118 -0
  207. gp3mlpy-0.1.0/parity/calibration_cases.csv +18 -0
  208. gp3mlpy-0.1.0/parity/compare_calibration.py +202 -0
  209. gp3mlpy-0.1.0/parity/compare_core.py +153 -0
  210. gp3mlpy-0.1.0/parity/compare_diagnostics.py +138 -0
  211. gp3mlpy-0.1.0/parity/compare_external_validation.py +233 -0
  212. gp3mlpy-0.1.0/parity/compare_final_reporting.py +273 -0
  213. gp3mlpy-0.1.0/parity/compare_governance.py +140 -0
  214. gp3mlpy-0.1.0/parity/compare_leakage.py +94 -0
  215. gp3mlpy-0.1.0/parity/compare_metrics_engines.py +394 -0
  216. gp3mlpy-0.1.0/parity/compare_model_execution.py +214 -0
  217. gp3mlpy-0.1.0/parity/compare_nested_resampling.py +242 -0
  218. gp3mlpy-0.1.0/parity/compare_preprocessing.py +156 -0
  219. gp3mlpy-0.1.0/parity/compare_resample_outputs.py +155 -0
  220. gp3mlpy-0.1.0/parity/compare_resampling.py +201 -0
  221. gp3mlpy-0.1.0/parity/compare_splitting.py +113 -0
  222. gp3mlpy-0.1.0/parity/compare_synthetic.py +246 -0
  223. gp3mlpy-0.1.0/parity/compare_target_uncertainty.py +331 -0
  224. gp3mlpy-0.1.0/parity/compare_tuning_objects.py +164 -0
  225. gp3mlpy-0.1.0/parity/core_cases.csv +6 -0
  226. gp3mlpy-0.1.0/parity/diagnostics_cases.csv +25 -0
  227. gp3mlpy-0.1.0/parity/external_validation_cases.csv +26 -0
  228. gp3mlpy-0.1.0/parity/final_reporting_cases.csv +34 -0
  229. gp3mlpy-0.1.0/parity/fixtures/calibration.json +35 -0
  230. gp3mlpy-0.1.0/parity/fixtures/core_metrics.json +51 -0
  231. gp3mlpy-0.1.0/parity/fixtures/diagnostics.json +37 -0
  232. gp3mlpy-0.1.0/parity/fixtures/external_validation.json +13 -0
  233. gp3mlpy-0.1.0/parity/fixtures/final_reporting.json +9 -0
  234. gp3mlpy-0.1.0/parity/fixtures/governance.json +254 -0
  235. gp3mlpy-0.1.0/parity/fixtures/leakage.json +31 -0
  236. gp3mlpy-0.1.0/parity/fixtures/metrics_engines.json +102 -0
  237. gp3mlpy-0.1.0/parity/fixtures/model_execution.json +12 -0
  238. gp3mlpy-0.1.0/parity/fixtures/nested_resampling.json +12 -0
  239. gp3mlpy-0.1.0/parity/fixtures/preprocessing.json +48 -0
  240. gp3mlpy-0.1.0/parity/fixtures/resample_outputs.json +37 -0
  241. gp3mlpy-0.1.0/parity/fixtures/resampling.json +43 -0
  242. gp3mlpy-0.1.0/parity/fixtures/splitting.json +42 -0
  243. gp3mlpy-0.1.0/parity/fixtures/synthetic.json +52 -0
  244. gp3mlpy-0.1.0/parity/fixtures/target_uncertainty.json +45 -0
  245. gp3mlpy-0.1.0/parity/fixtures/tuning_objects.json +17 -0
  246. gp3mlpy-0.1.0/parity/governance_cases.csv +29 -0
  247. gp3mlpy-0.1.0/parity/leakage_cases.csv +17 -0
  248. gp3mlpy-0.1.0/parity/metrics_engines_cases.csv +12 -0
  249. gp3mlpy-0.1.0/parity/model_execution_cases.csv +25 -0
  250. gp3mlpy-0.1.0/parity/nested_resampling_cases.csv +24 -0
  251. gp3mlpy-0.1.0/parity/preprocessing_cases.csv +17 -0
  252. gp3mlpy-0.1.0/parity/resample_outputs_cases.csv +25 -0
  253. gp3mlpy-0.1.0/parity/resampling_cases.csv +23 -0
  254. gp3mlpy-0.1.0/parity/run_python_calibration.py +290 -0
  255. gp3mlpy-0.1.0/parity/run_python_core.py +84 -0
  256. gp3mlpy-0.1.0/parity/run_python_diagnostics.py +374 -0
  257. gp3mlpy-0.1.0/parity/run_python_external_validation.py +322 -0
  258. gp3mlpy-0.1.0/parity/run_python_final_reporting.py +378 -0
  259. gp3mlpy-0.1.0/parity/run_python_governance.py +239 -0
  260. gp3mlpy-0.1.0/parity/run_python_leakage.py +185 -0
  261. gp3mlpy-0.1.0/parity/run_python_metrics_engines.py +341 -0
  262. gp3mlpy-0.1.0/parity/run_python_model_execution.py +404 -0
  263. gp3mlpy-0.1.0/parity/run_python_nested_resampling.py +414 -0
  264. gp3mlpy-0.1.0/parity/run_python_preprocessing.py +290 -0
  265. gp3mlpy-0.1.0/parity/run_python_resample_outputs.py +375 -0
  266. gp3mlpy-0.1.0/parity/run_python_resampling.py +406 -0
  267. gp3mlpy-0.1.0/parity/run_python_splitting.py +300 -0
  268. gp3mlpy-0.1.0/parity/run_python_synthetic.py +300 -0
  269. gp3mlpy-0.1.0/parity/run_python_target_uncertainty.py +451 -0
  270. gp3mlpy-0.1.0/parity/run_python_tuning_objects.py +224 -0
  271. gp3mlpy-0.1.0/parity/run_r_calibration.R +315 -0
  272. gp3mlpy-0.1.0/parity/run_r_core.R +93 -0
  273. gp3mlpy-0.1.0/parity/run_r_diagnostics.R +338 -0
  274. gp3mlpy-0.1.0/parity/run_r_external_validation.R +449 -0
  275. gp3mlpy-0.1.0/parity/run_r_final_reporting.R +366 -0
  276. gp3mlpy-0.1.0/parity/run_r_governance.R +274 -0
  277. gp3mlpy-0.1.0/parity/run_r_leakage.R +163 -0
  278. gp3mlpy-0.1.0/parity/run_r_metrics_engines.R +300 -0
  279. gp3mlpy-0.1.0/parity/run_r_model_execution.R +422 -0
  280. gp3mlpy-0.1.0/parity/run_r_nested_resampling.R +373 -0
  281. gp3mlpy-0.1.0/parity/run_r_preprocessing.R +299 -0
  282. gp3mlpy-0.1.0/parity/run_r_resample_outputs.R +25 -0
  283. gp3mlpy-0.1.0/parity/run_r_resample_outputs_helpers.R +310 -0
  284. gp3mlpy-0.1.0/parity/run_r_resample_outputs_impl.R +145 -0
  285. gp3mlpy-0.1.0/parity/run_r_resampling.R +437 -0
  286. gp3mlpy-0.1.0/parity/run_r_splitting.R +290 -0
  287. gp3mlpy-0.1.0/parity/run_r_synthetic.R +288 -0
  288. gp3mlpy-0.1.0/parity/run_r_target_uncertainty.R +106 -0
  289. gp3mlpy-0.1.0/parity/run_r_target_uncertainty_impl.R +460 -0
  290. gp3mlpy-0.1.0/parity/run_r_tuning_objects.R +28 -0
  291. gp3mlpy-0.1.0/parity/run_r_tuning_objects_helpers.R +175 -0
  292. gp3mlpy-0.1.0/parity/run_r_tuning_objects_impl.R +132 -0
  293. gp3mlpy-0.1.0/parity/splitting_cases.csv +24 -0
  294. gp3mlpy-0.1.0/parity/synthetic_cases.csv +14 -0
  295. gp3mlpy-0.1.0/parity/target_uncertainty_cases.csv +29 -0
  296. gp3mlpy-0.1.0/parity/tuning_objects_cases.csv +27 -0
  297. gp3mlpy-0.1.0/pyproject.toml +88 -0
  298. gp3mlpy-0.1.0/reference/r_api_inventory.csv +128 -0
  299. gp3mlpy-0.1.0/reference/r_articles.json +22 -0
  300. gp3mlpy-0.1.0/reference/r_example_inventory.json +51 -0
  301. gp3mlpy-0.1.0/reference/r_failure_contracts.json +266 -0
  302. gp3mlpy-0.1.0/reference/r_plot_methods.json +18 -0
  303. gp3mlpy-0.1.0/reference/r_print_methods.json +51 -0
  304. gp3mlpy-0.1.0/reference/r_public_classes.json +40 -0
  305. gp3mlpy-0.1.0/reference/r_tests_inventory.json +34 -0
  306. gp3mlpy-0.1.0/reference/reference_summary.json +15 -0
  307. gp3mlpy-0.1.0/scripts/build_doc_assets.py +128 -0
  308. gp3mlpy-0.1.0/scripts/check_installed_wheel.py +18 -0
  309. gp3mlpy-0.1.0/scripts/generate_reference_layer.py +137 -0
  310. gp3mlpy-0.1.0/scripts/run_quality_gates.ps1 +34 -0
  311. gp3mlpy-0.1.0/scripts/run_quality_gates.sh +13 -0
  312. gp3mlpy-0.1.0/scripts/validate_release.py +135 -0
  313. gp3mlpy-0.1.0/src/gp3mlpy/__init__.py +101 -0
  314. gp3mlpy-0.1.0/src/gp3mlpy/__init__.pyi +207 -0
  315. gp3mlpy-0.1.0/src/gp3mlpy/_reference_docs.py +3 -0
  316. gp3mlpy-0.1.0/src/gp3mlpy/_reprs.py +361 -0
  317. gp3mlpy-0.1.0/src/gp3mlpy/_utils.py +133 -0
  318. gp3mlpy-0.1.0/src/gp3mlpy/analysis_plan.py +129 -0
  319. gp3mlpy-0.1.0/src/gp3mlpy/api_contracts.py +223 -0
  320. gp3mlpy-0.1.0/src/gp3mlpy/calibration.py +159 -0
  321. gp3mlpy-0.1.0/src/gp3mlpy/conformal.py +153 -0
  322. gp3mlpy-0.1.0/src/gp3mlpy/dataset_shift.py +108 -0
  323. gp3mlpy-0.1.0/src/gp3mlpy/decision_governance.py +238 -0
  324. gp3mlpy-0.1.0/src/gp3mlpy/deep_learning.py +78 -0
  325. gp3mlpy-0.1.0/src/gp3mlpy/engine_capabilities.py +87 -0
  326. gp3mlpy-0.1.0/src/gp3mlpy/environment.py +69 -0
  327. gp3mlpy-0.1.0/src/gp3mlpy/exceptions.py +7 -0
  328. gp3mlpy-0.1.0/src/gp3mlpy/external_validation.py +467 -0
  329. gp3mlpy-0.1.0/src/gp3mlpy/feature_provenance.py +153 -0
  330. gp3mlpy-0.1.0/src/gp3mlpy/governance_profiles.py +42 -0
  331. gp3mlpy-0.1.0/src/gp3mlpy/governance_reports.py +153 -0
  332. gp3mlpy-0.1.0/src/gp3mlpy/interoperability.py +93 -0
  333. gp3mlpy-0.1.0/src/gp3mlpy/leakage.py +179 -0
  334. gp3mlpy-0.1.0/src/gp3mlpy/metrics.py +252 -0
  335. gp3mlpy-0.1.0/src/gp3mlpy/model_artifacts.py +186 -0
  336. gp3mlpy-0.1.0/src/gp3mlpy/model_engines.py +350 -0
  337. gp3mlpy-0.1.0/src/gp3mlpy/model_tuning.py +417 -0
  338. gp3mlpy-0.1.0/src/gp3mlpy/nested_resampling.py +311 -0
  339. gp3mlpy-0.1.0/src/gp3mlpy/objects.py +218 -0
  340. gp3mlpy-0.1.0/src/gp3mlpy/plotting.py +128 -0
  341. gp3mlpy-0.1.0/src/gp3mlpy/preprocessing.py +154 -0
  342. gp3mlpy-0.1.0/src/gp3mlpy/py.typed +0 -0
  343. gp3mlpy-0.1.0/src/gp3mlpy/release_provenance.py +29 -0
  344. gp3mlpy-0.1.0/src/gp3mlpy/reproducibility.py +69 -0
  345. gp3mlpy-0.1.0/src/gp3mlpy/resample_evaluation.py +181 -0
  346. gp3mlpy-0.1.0/src/gp3mlpy/resampling.py +193 -0
  347. gp3mlpy-0.1.0/src/gp3mlpy/resampling_diagnostics.py +268 -0
  348. gp3mlpy-0.1.0/src/gp3mlpy/research_workflow.py +50 -0
  349. gp3mlpy-0.1.0/src/gp3mlpy/ro_crate.py +65 -0
  350. gp3mlpy-0.1.0/src/gp3mlpy/roadmap_reporting.py +271 -0
  351. gp3mlpy-0.1.0/src/gp3mlpy/robustness.py +70 -0
  352. gp3mlpy-0.1.0/src/gp3mlpy/splitting.py +209 -0
  353. gp3mlpy-0.1.0/src/gp3mlpy/synthetic.py +94 -0
  354. gp3mlpy-0.1.0/src/gp3mlpy/target_uncertainty.py +129 -0
  355. gp3mlpy-0.1.0/src/gp3mlpy/task_governance.py +201 -0
  356. gp3mlpy-0.1.0/tests/test_core_contracts.py +221 -0
  357. gp3mlpy-0.1.0/tests/test_coverage_decision_conformal_shift.py +405 -0
  358. gp3mlpy-0.1.0/tests/test_coverage_engines_tuning.py +664 -0
  359. gp3mlpy-0.1.0/tests/test_coverage_exact_cleanup.py +970 -0
  360. gp3mlpy-0.1.0/tests/test_coverage_external_validation.py +433 -0
  361. gp3mlpy-0.1.0/tests/test_coverage_final_arcs.py +37 -0
  362. gp3mlpy-0.1.0/tests/test_coverage_final_residuals.py +527 -0
  363. gp3mlpy-0.1.0/tests/test_coverage_governance_contracts_tail.py +578 -0
  364. gp3mlpy-0.1.0/tests/test_coverage_leakage_plotting_tail.py +516 -0
  365. gp3mlpy-0.1.0/tests/test_coverage_metrics_governance.py +535 -0
  366. gp3mlpy-0.1.0/tests/test_coverage_reporting_artifacts.py +528 -0
  367. gp3mlpy-0.1.0/tests/test_coverage_splitting_resampling.py +485 -0
  368. gp3mlpy-0.1.0/tests/test_coverage_utils_objects.py +303 -0
  369. gp3mlpy-0.1.0/tests/test_coverage_zero_residuals.py +276 -0
  370. gp3mlpy-0.1.0/tests/test_examples.py +13 -0
  371. gp3mlpy-0.1.0/tests/test_failure_contracts.py +116 -0
  372. gp3mlpy-0.1.0/tests/test_r_parity_governance_order.py +41 -0
  373. gp3mlpy-0.1.0/tests/test_r_parity_preprocessing_logical.py +55 -0
  374. gp3mlpy-0.1.0/tests/test_r_parity_tuning_formatting.py +21 -0
  375. gp3mlpy-0.1.0/tests/test_reference_inventory.py +74 -0
  376. gp3mlpy-0.1.0/uv.lock +3302 -0
@@ -0,0 +1,109 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main, source-tree]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ jobs:
13
+ core:
14
+ name: core-${{ matrix.os }}-py${{ matrix.python }}
15
+ strategy:
16
+ fail-fast: false
17
+ matrix:
18
+ os: [ubuntu-latest, windows-latest, macos-latest]
19
+ python: ['3.11', '3.12', '3.13']
20
+ runs-on: ${{ matrix.os }}
21
+ steps:
22
+ - uses: actions/checkout@v7
23
+ - uses: actions/setup-python@v7
24
+ with:
25
+ python-version: ${{ matrix.python }}
26
+ - name: Install core and test dependencies
27
+ run: python -m pip install -e ".[dev]"
28
+ - name: Run test suite
29
+ env:
30
+ MPLBACKEND: Agg
31
+ run: python -m pytest -q
32
+
33
+ coverage:
34
+ runs-on: ubuntu-latest
35
+ steps:
36
+ - uses: actions/checkout@v7
37
+ - uses: actions/setup-python@v7
38
+ with:
39
+ python-version: '3.11'
40
+ - name: Install coverage dependencies
41
+ run: python -m pip install -e ".[dev]"
42
+ - name: Enforce 100% line and branch coverage
43
+ env:
44
+ MPLBACKEND: Agg
45
+ run: >-
46
+ python -m pytest
47
+ --cov=gp3mlpy
48
+ --cov-branch
49
+ --cov-report=term-missing
50
+ --cov-fail-under=100
51
+ -q
52
+
53
+ quality:
54
+ runs-on: ubuntu-latest
55
+ steps:
56
+ - uses: actions/checkout@v7
57
+ - uses: actions/setup-python@v7
58
+ with:
59
+ python-version: '3.13'
60
+ - run: python -m pip install -e ".[dev]"
61
+ - name: Compile source
62
+ run: python -m compileall -q src/gp3mlpy tests scripts/build_doc_assets.py
63
+ - name: Ruff semantic lint
64
+ run: ruff check src tests examples scripts/build_doc_assets.py
65
+ - name: Public typing contract
66
+ run: mypy --follow-imports=skip src/gp3mlpy/__init__.pyi
67
+
68
+ docs:
69
+ runs-on: ubuntu-latest
70
+ steps:
71
+ - uses: actions/checkout@v7
72
+ - uses: actions/setup-python@v7
73
+ with:
74
+ python-version: '3.13'
75
+ - run: python -m pip install -e ".[docs]"
76
+ - name: Generate documentation plot assets
77
+ env:
78
+ MPLBACKEND: Agg
79
+ run: python scripts/build_doc_assets.py
80
+ - name: Build strict documentation
81
+ run: mkdocs build --strict
82
+
83
+ package:
84
+ runs-on: ubuntu-latest
85
+ steps:
86
+ - uses: actions/checkout@v7
87
+ - uses: actions/setup-python@v7
88
+ with:
89
+ python-version: '3.13'
90
+ - run: python -m pip install build twine
91
+ - run: python -m build
92
+ - run: python -m twine check dist/*
93
+ - name: Install built wheel and verify frozen API
94
+ shell: bash
95
+ run: |
96
+ set -euo pipefail
97
+ wheel=$(find dist -maxdepth 1 -name '*.whl' -print -quit)
98
+ python -m venv /tmp/gp3mlpy-wheel
99
+ /tmp/gp3mlpy-wheel/bin/python -m pip install "$wheel"
100
+ cd /tmp
101
+ /tmp/gp3mlpy-wheel/bin/python - <<'PY'
102
+ import gp3mlpy
103
+ exports = gp3mlpy.gp3ml_api_contracts().exports
104
+ assert len(exports) == 127
105
+ assert int((exports['stability'] == 'stable').sum()) == 71
106
+ assert int((exports['stability'] == 'experimental').sum()) == 56
107
+ assert gp3mlpy.r_reference_version == '0.3.0'
108
+ print('installed-wheel API smoke: PASS')
109
+ PY
@@ -0,0 +1,51 @@
1
+ name: Deploy documentation
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ workflow_dispatch:
7
+
8
+ permissions:
9
+ contents: read
10
+ pages: write
11
+ id-token: write
12
+
13
+ concurrency:
14
+ group: pages
15
+ cancel-in-progress: true
16
+
17
+ jobs:
18
+ build:
19
+ runs-on: ubuntu-latest
20
+ steps:
21
+ - name: Checkout
22
+ uses: actions/checkout@v7
23
+ - name: Set up Python
24
+ uses: actions/setup-python@v7
25
+ with:
26
+ python-version: '3.13'
27
+ - name: Install package and documentation dependencies
28
+ run: python -m pip install -e ".[docs]"
29
+ - name: Generate documentation plot assets
30
+ env:
31
+ MPLBACKEND: Agg
32
+ run: python scripts/build_doc_assets.py
33
+ - name: Build MkDocs site
34
+ run: mkdocs build --strict
35
+ - name: Configure GitHub Pages
36
+ uses: actions/configure-pages@v5
37
+ - name: Upload GitHub Pages artifact
38
+ uses: actions/upload-pages-artifact@v4
39
+ with:
40
+ path: site
41
+
42
+ deploy:
43
+ needs: build
44
+ runs-on: ubuntu-latest
45
+ environment:
46
+ name: github-pages
47
+ url: ${{ steps.deployment.outputs.page_url }}
48
+ steps:
49
+ - name: Deploy GitHub Pages
50
+ id: deployment
51
+ uses: actions/deploy-pages@v4
@@ -0,0 +1,469 @@
1
+ name: R/Python behavioral parity
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - parity/r-0.3.0-behavioral-freeze
7
+ paths:
8
+ - 'parity/**'
9
+ - 'reference/r_api_inventory.csv'
10
+ - 'src/gp3mlpy/**'
11
+ - 'tests/test_r_parity_*.py'
12
+ - 'pyproject.toml'
13
+ - '.github/workflows/parity.yml'
14
+ pull_request:
15
+ paths:
16
+ - 'parity/**'
17
+ - 'reference/r_api_inventory.csv'
18
+ - 'src/gp3mlpy/**'
19
+ - 'tests/test_r_parity_*.py'
20
+ - 'pyproject.toml'
21
+ - '.github/workflows/parity.yml'
22
+ workflow_dispatch:
23
+
24
+ permissions:
25
+ contents: read
26
+
27
+ jobs:
28
+ deterministic-core:
29
+ runs-on: ubuntu-latest
30
+ steps:
31
+ - uses: actions/checkout@v7
32
+
33
+ - uses: actions/setup-python@v7
34
+ with:
35
+ python-version: '3.13'
36
+
37
+ - uses: r-lib/actions/setup-r@v2
38
+ with:
39
+ r-version: 'release'
40
+ use-public-rspm: true
41
+
42
+ - name: Install gp3mlpy
43
+ run: python -m pip install -e .
44
+
45
+ - name: Install R parity helper
46
+ shell: bash
47
+ run: Rscript -e 'install.packages("jsonlite", repos="https://cloud.r-project.org")'
48
+
49
+ - name: Download frozen gp3ml 0.3.0 archive
50
+ shell: bash
51
+ run: |
52
+ curl --fail --location --retry 3 \
53
+ --output /tmp/gp3ml_0.3.0.tar.gz \
54
+ https://github.com/stefanosbalaskas/gp3ml/releases/download/v0.3.0/gp3ml_0.3.0.tar.gz
55
+ echo '04c5fdb017c63ecbf6f5e85c29fff6492880201a2f2aa5c3c1d3fe998e60bae6 /tmp/gp3ml_0.3.0.tar.gz' | sha256sum --check
56
+
57
+ - name: Install frozen gp3ml reference
58
+ shell: bash
59
+ run: R CMD INSTALL /tmp/gp3ml_0.3.0.tar.gz
60
+
61
+ - name: Execute Python deterministic core fixtures
62
+ run: >-
63
+ python parity/run_python_core.py
64
+ parity/fixtures/core_metrics.json
65
+ parity/results/python-core.json
66
+
67
+ - name: Execute R deterministic core fixtures
68
+ shell: bash
69
+ run: >-
70
+ Rscript parity/run_r_core.R
71
+ parity/fixtures/core_metrics.json
72
+ parity/results/r-core.json
73
+
74
+ - name: Compare deterministic core behavior
75
+ run: >-
76
+ python parity/compare_core.py
77
+ parity/fixtures/core_metrics.json
78
+ parity/results/r-core.json
79
+ parity/results/python-core.json
80
+ parity/results/core-report.json
81
+
82
+ - name: Execute Python governance fixtures
83
+ run: >-
84
+ python parity/run_python_governance.py
85
+ parity/fixtures/governance.json
86
+ parity/results/python-governance.json
87
+
88
+ - name: Execute R governance fixtures
89
+ shell: bash
90
+ run: >-
91
+ Rscript parity/run_r_governance.R
92
+ parity/fixtures/governance.json
93
+ parity/results/r-governance.json
94
+
95
+ - name: Compare governance behavior
96
+ run: >-
97
+ python parity/compare_governance.py
98
+ parity/fixtures/governance.json
99
+ parity/results/r-governance.json
100
+ parity/results/python-governance.json
101
+ parity/results/governance-report.json
102
+
103
+ - name: Execute Python leakage fixtures
104
+ run: >-
105
+ python parity/run_python_leakage.py
106
+ parity/fixtures/leakage.json
107
+ parity/results/python-leakage.json
108
+
109
+ - name: Execute R leakage fixtures
110
+ shell: bash
111
+ run: >-
112
+ Rscript parity/run_r_leakage.R
113
+ parity/fixtures/leakage.json
114
+ parity/results/r-leakage.json
115
+
116
+ - name: Compare leakage behavior
117
+ run: >-
118
+ python parity/compare_leakage.py
119
+ parity/fixtures/leakage.json
120
+ parity/results/r-leakage.json
121
+ parity/results/python-leakage.json
122
+ parity/results/leakage-report.json
123
+
124
+ - name: Execute Python splitting fixtures
125
+ run: >-
126
+ python parity/run_python_splitting.py
127
+ parity/fixtures/splitting.json
128
+ parity/results/python-splitting.json
129
+
130
+ - name: Execute R splitting fixtures
131
+ shell: bash
132
+ run: >-
133
+ Rscript parity/run_r_splitting.R
134
+ parity/fixtures/splitting.json
135
+ parity/results/r-splitting.json
136
+
137
+ - name: Compare splitting behavior
138
+ run: >-
139
+ python parity/compare_splitting.py
140
+ parity/fixtures/splitting.json
141
+ parity/results/r-splitting.json
142
+ parity/results/python-splitting.json
143
+ parity/results/splitting-report.json
144
+
145
+ - name: Execute Python group-resampling fixtures
146
+ run: >-
147
+ python parity/run_python_resampling.py
148
+ parity/fixtures/resampling.json
149
+ parity/results/python-resampling.json
150
+
151
+ - name: Execute R group-resampling fixtures
152
+ shell: bash
153
+ run: >-
154
+ Rscript parity/run_r_resampling.R
155
+ parity/fixtures/resampling.json
156
+ parity/results/r-resampling.json
157
+
158
+ - name: Compare group-resampling behavior
159
+ run: >-
160
+ python parity/compare_resampling.py
161
+ parity/fixtures/resampling.json
162
+ parity/results/r-resampling.json
163
+ parity/results/python-resampling.json
164
+ parity/results/resampling-report.json
165
+
166
+ - name: Execute Python fold-diagnostics fixtures
167
+ run: >-
168
+ python parity/run_python_diagnostics.py
169
+ parity/fixtures/diagnostics.json
170
+ parity/results/python-diagnostics.json
171
+
172
+ - name: Execute R fold-diagnostics fixtures
173
+ shell: bash
174
+ run: >-
175
+ Rscript parity/run_r_diagnostics.R
176
+ parity/fixtures/diagnostics.json
177
+ parity/results/r-diagnostics.json
178
+
179
+ - name: Compare fold-diagnostics behavior
180
+ run: >-
181
+ python parity/compare_diagnostics.py
182
+ parity/fixtures/diagnostics.json
183
+ parity/results/r-diagnostics.json
184
+ parity/results/python-diagnostics.json
185
+ parity/results/diagnostics-report.json
186
+
187
+ - name: Execute Python calibration fixtures
188
+ run: >-
189
+ python parity/run_python_calibration.py
190
+ parity/fixtures/calibration.json
191
+ parity/results/python-calibration.json
192
+
193
+ - name: Execute R calibration fixtures
194
+ shell: bash
195
+ run: >-
196
+ Rscript parity/run_r_calibration.R
197
+ parity/fixtures/calibration.json
198
+ parity/results/r-calibration.json
199
+
200
+ - name: Compare calibration behavior
201
+ run: >-
202
+ python parity/compare_calibration.py
203
+ parity/fixtures/calibration.json
204
+ parity/results/r-calibration.json
205
+ parity/results/python-calibration.json
206
+ parity/results/calibration-report.json
207
+
208
+ - name: Execute Python preprocessing fixtures
209
+ run: >-
210
+ python parity/run_python_preprocessing.py
211
+ parity/fixtures/preprocessing.json
212
+ parity/results/python-preprocessing.json
213
+
214
+ - name: Execute R preprocessing fixtures
215
+ shell: bash
216
+ run: >-
217
+ Rscript parity/run_r_preprocessing.R
218
+ parity/fixtures/preprocessing.json
219
+ parity/results/r-preprocessing.json
220
+
221
+ - name: Compare preprocessing behavior
222
+ run: >-
223
+ python parity/compare_preprocessing.py
224
+ parity/fixtures/preprocessing.json
225
+ parity/results/r-preprocessing.json
226
+ parity/results/python-preprocessing.json
227
+ parity/results/preprocessing-report.json
228
+
229
+ - name: Execute Python synthetic workflows fixtures
230
+ run: >-
231
+ python parity/run_python_synthetic.py
232
+ parity/fixtures/synthetic.json
233
+ parity/results/python-synthetic.json
234
+
235
+ - name: Execute R synthetic workflows fixtures
236
+ shell: bash
237
+ run: >-
238
+ Rscript parity/run_r_synthetic.R
239
+ parity/fixtures/synthetic.json
240
+ parity/results/r-synthetic.json
241
+
242
+ - name: Compare synthetic workflows behavior
243
+ run: >-
244
+ python parity/compare_synthetic.py
245
+ parity/fixtures/synthetic.json
246
+ parity/results/r-synthetic.json
247
+ parity/results/python-synthetic.json
248
+ parity/results/synthetic-report.json
249
+
250
+ - name: Execute Python target-uncertainty fixtures
251
+ run: >-
252
+ python parity/run_python_target_uncertainty.py
253
+ parity/fixtures/target_uncertainty.json
254
+ parity/results/python-target-uncertainty.json
255
+
256
+ - name: Execute R target-uncertainty fixtures
257
+ shell: bash
258
+ run: >-
259
+ Rscript parity/run_r_target_uncertainty.R
260
+ parity/fixtures/target_uncertainty.json
261
+ parity/results/r-target-uncertainty.json
262
+
263
+ - name: Compare target-uncertainty behavior
264
+ run: >-
265
+ python parity/compare_target_uncertainty.py
266
+ parity/fixtures/target_uncertainty.json
267
+ parity/results/r-target-uncertainty.json
268
+ parity/results/python-target-uncertainty.json
269
+ parity/results/target-uncertainty-report.json
270
+
271
+ - name: Execute Python metrics/engines fixtures
272
+ run: >-
273
+ python parity/run_python_metrics_engines.py
274
+ parity/fixtures/metrics_engines.json
275
+ parity/results/python-metrics-engines.json
276
+
277
+ - name: Execute R metrics/engines fixtures
278
+ shell: bash
279
+ run: >-
280
+ Rscript parity/run_r_metrics_engines.R
281
+ parity/fixtures/metrics_engines.json
282
+ parity/results/r-metrics-engines.json
283
+
284
+ - name: Compare metrics/engines behavior
285
+ run: >-
286
+ python parity/compare_metrics_engines.py
287
+ parity/fixtures/metrics_engines.json
288
+ parity/results/r-metrics-engines.json
289
+ parity/results/python-metrics-engines.json
290
+ parity/results/metrics-engines-report.json
291
+
292
+ - name: Execute Python resample-output fixtures
293
+ run: >-
294
+ python parity/run_python_resample_outputs.py
295
+ parity/fixtures/resample_outputs.json
296
+ parity/results/python-resample-outputs.json
297
+
298
+ - name: Execute R resample-output fixtures
299
+ shell: bash
300
+ run: >-
301
+ Rscript parity/run_r_resample_outputs.R
302
+ parity/fixtures/resample_outputs.json
303
+ parity/results/r-resample-outputs.json
304
+
305
+ - name: Compare resample-output behavior
306
+ run: >-
307
+ python parity/compare_resample_outputs.py
308
+ parity/fixtures/resample_outputs.json
309
+ parity/results/r-resample-outputs.json
310
+ parity/results/python-resample-outputs.json
311
+ parity/results/resample-outputs-report.json
312
+
313
+ - name: Execute Python tuning-object fixtures
314
+ run: >-
315
+ python parity/run_python_tuning_objects.py
316
+ parity/fixtures/tuning_objects.json
317
+ parity/results/python-tuning-objects.json
318
+
319
+ - name: Execute R tuning-object fixtures
320
+ shell: bash
321
+ run: >-
322
+ Rscript parity/run_r_tuning_objects.R
323
+ parity/fixtures/tuning_objects.json
324
+ parity/results/r-tuning-objects.json
325
+
326
+ - name: Compare tuning-object behavior
327
+ run: >-
328
+ python parity/compare_tuning_objects.py
329
+ parity/fixtures/tuning_objects.json
330
+ parity/tuning_objects_cases.csv
331
+ parity/results/r-tuning-objects.json
332
+ parity/results/python-tuning-objects.json
333
+ parity/results/tuning-objects-report.json
334
+
335
+ - name: Execute Python model-execution fixtures
336
+ run: >-
337
+ python parity/run_python_model_execution.py
338
+ parity/fixtures/model_execution.json
339
+ parity/results/python-model-execution.json
340
+
341
+ - name: Execute R model-execution fixtures
342
+ shell: bash
343
+ run: >-
344
+ Rscript parity/run_r_model_execution.R
345
+ parity/fixtures/model_execution.json
346
+ parity/results/r-model-execution.json
347
+
348
+ - name: Compare model-execution behavior
349
+ run: >-
350
+ python parity/compare_model_execution.py
351
+ parity/fixtures/model_execution.json
352
+ parity/model_execution_cases.csv
353
+ parity/results/r-model-execution.json
354
+ parity/results/python-model-execution.json
355
+ parity/results/model-execution-report.json
356
+
357
+ - name: Execute Python nested-resampling fixtures
358
+ run: >-
359
+ python parity/run_python_nested_resampling.py
360
+ parity/fixtures/nested_resampling.json
361
+ parity/results/python-nested-resampling.json
362
+
363
+ - name: Execute R nested-resampling fixtures
364
+ shell: bash
365
+ run: >-
366
+ Rscript parity/run_r_nested_resampling.R
367
+ parity/fixtures/nested_resampling.json
368
+ parity/results/r-nested-resampling.json
369
+
370
+ - name: Compare nested-resampling behavior
371
+ run: >-
372
+ python parity/compare_nested_resampling.py
373
+ parity/fixtures/nested_resampling.json
374
+ parity/nested_resampling_cases.csv
375
+ parity/results/r-nested-resampling.json
376
+ parity/results/python-nested-resampling.json
377
+ parity/results/nested-resampling-report.json
378
+
379
+ - name: Execute Python external-validation fixtures
380
+ run: >-
381
+ python parity/run_python_external_validation.py
382
+ parity/fixtures/external_validation.json
383
+ parity/results/python-external-validation.json
384
+
385
+ - name: Execute R external-validation fixtures
386
+ shell: bash
387
+ run: >-
388
+ Rscript parity/run_r_external_validation.R
389
+ parity/fixtures/external_validation.json
390
+ parity/results/r-external-validation.json
391
+
392
+ - name: Compare external-validation behavior
393
+ run: >-
394
+ python parity/compare_external_validation.py
395
+ parity/fixtures/external_validation.json
396
+ parity/external_validation_cases.csv
397
+ parity/results/r-external-validation.json
398
+ parity/results/python-external-validation.json
399
+ parity/results/external-validation-report.json
400
+
401
+ - name: Execute Python final-reporting fixtures
402
+ run: >-
403
+ python parity/run_python_final_reporting.py
404
+ parity/fixtures/final_reporting.json
405
+ parity/results/python-final-reporting.json
406
+
407
+ - name: Execute R final-reporting fixtures
408
+ shell: bash
409
+ run: >-
410
+ Rscript parity/run_r_final_reporting.R
411
+ parity/fixtures/final_reporting.json
412
+ parity/results/r-final-reporting.json
413
+
414
+ - name: Compare final-reporting behavior
415
+ run: >-
416
+ python parity/compare_final_reporting.py
417
+ parity/fixtures/final_reporting.json
418
+ parity/final_reporting_cases.csv
419
+ parity/results/r-final-reporting.json
420
+ parity/results/python-final-reporting.json
421
+ parity/results/final-reporting-report.json
422
+
423
+ - name: Build stable API parity matrix
424
+ run: >-
425
+ python parity/build_matrix.py
426
+ reference/r_api_inventory.csv
427
+ parity/results/stable-api-matrix.csv
428
+ parity/core_cases.csv
429
+ parity/results/core-report.json
430
+ parity/governance_cases.csv
431
+ parity/results/governance-report.json
432
+ parity/leakage_cases.csv
433
+ parity/results/leakage-report.json
434
+ parity/splitting_cases.csv
435
+ parity/results/splitting-report.json
436
+ parity/resampling_cases.csv
437
+ parity/results/resampling-report.json
438
+ parity/diagnostics_cases.csv
439
+ parity/results/diagnostics-report.json
440
+ parity/calibration_cases.csv
441
+ parity/results/calibration-report.json
442
+ parity/preprocessing_cases.csv
443
+ parity/results/preprocessing-report.json
444
+ parity/synthetic_cases.csv
445
+ parity/results/synthetic-report.json
446
+ parity/target_uncertainty_cases.csv
447
+ parity/results/target-uncertainty-report.json
448
+ parity/metrics_engines_cases.csv
449
+ parity/results/metrics-engines-report.json
450
+ parity/resample_outputs_cases.csv
451
+ parity/results/resample-outputs-report.json
452
+ parity/tuning_objects_cases.csv
453
+ parity/results/tuning-objects-report.json
454
+ parity/model_execution_cases.csv
455
+ parity/results/model-execution-report.json
456
+ parity/nested_resampling_cases.csv
457
+ parity/results/nested-resampling-report.json
458
+ parity/external_validation_cases.csv
459
+ parity/results/external-validation-report.json
460
+ parity/final_reporting_cases.csv
461
+ parity/results/final-reporting-report.json
462
+
463
+ - name: Upload parity evidence
464
+ if: always()
465
+ uses: actions/upload-artifact@v4
466
+ with:
467
+ name: gp3ml-r-python-parity
468
+ path: parity/results/
469
+ if-no-files-found: warn