openstef 3.4.93.dev0__tar.gz → 4.0.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 (658) hide show
  1. openstef-4.0.0/.github/CODEOWNERS +7 -0
  2. openstef-4.0.0/.github/CODE_OF_CONDUCT.md +72 -0
  3. openstef-4.0.0/.github/CONTRIBUTING.md +39 -0
  4. openstef-4.0.0/.github/ISSUE_TEMPLATE/bug_report.md +31 -0
  5. openstef-4.0.0/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  6. openstef-4.0.0/.github/ISSUE_TEMPLATE/openstef-4-0-project-story.md +47 -0
  7. openstef-4.0.0/.github/pr-labeler.yml +7 -0
  8. openstef-4.0.0/.github/workflows/_job_quality_check.yaml +68 -0
  9. openstef-4.0.0/.github/workflows/check.yaml +21 -0
  10. openstef-4.0.0/.github/workflows/citations.yaml +41 -0
  11. openstef-4.0.0/.github/workflows/docs.yaml +89 -0
  12. openstef-4.0.0/.github/workflows/pr-labeler.yaml +21 -0
  13. openstef-4.0.0/.github/workflows/release-dev.yaml +65 -0
  14. openstef-4.0.0/.github/workflows/release-v4.yaml +83 -0
  15. openstef-4.0.0/.gitignore +146 -0
  16. openstef-4.0.0/.python-version +1 -0
  17. openstef-4.0.0/CITATION.cff +63 -0
  18. openstef-4.0.0/COMMITTERS.md +9 -0
  19. openstef-4.0.0/LICENSES/MPL-2.0.txt +373 -0
  20. openstef-4.0.0/PKG-INFO +154 -0
  21. openstef-4.0.0/README.md +117 -0
  22. openstef-4.0.0/REUSE.toml +21 -0
  23. openstef-4.0.0/THIRD_PARTY_LICENSES.md +1291 -0
  24. openstef-4.0.0/docs/.gitkeep +3 -0
  25. openstef-4.0.0/docs/README.md +0 -0
  26. openstef-4.0.0/docs/autosummary_cache.py +132 -0
  27. openstef-4.0.0/docs/autosummary_helpers.py +40 -0
  28. openstef-4.0.0/docs/pyproject.toml +48 -0
  29. openstef-4.0.0/docs/source/_figures/generate_concept_figures.py +351 -0
  30. openstef-4.0.0/docs/source/_figures/generate_guide_figures.py +272 -0
  31. openstef-4.0.0/docs/source/_static/css/.gitkeep +0 -0
  32. openstef-4.0.0/docs/source/_static/css/custom.css +24 -0
  33. openstef-4.0.0/docs/source/_static/versions.json +8 -0
  34. openstef-4.0.0/docs/source/_static/versions.json.license +3 -0
  35. openstef-4.0.0/docs/source/_templates/custom_class.rst +13 -0
  36. openstef-4.0.0/docs/source/_templates/custom_class_noindex.rst +14 -0
  37. openstef-4.0.0/docs/source/_templates/custom_function.rst +10 -0
  38. openstef-4.0.0/docs/source/_templates/module_overview.rst +71 -0
  39. openstef-4.0.0/docs/source/_templates/package_overview.rst +100 -0
  40. openstef-4.0.0/docs/source/api/beam.rst +23 -0
  41. openstef-4.0.0/docs/source/api/core.rst +26 -0
  42. openstef-4.0.0/docs/source/api/index.rst +102 -0
  43. openstef-4.0.0/docs/source/api/meta.rst +21 -0
  44. openstef-4.0.0/docs/source/api/models.rst +26 -0
  45. openstef-4.0.0/docs/source/conf.py +460 -0
  46. openstef-4.0.0/docs/source/contribute/_getting_help.rst +15 -0
  47. openstef-4.0.0/docs/source/contribute/code_of_conduct.rst +11 -0
  48. openstef-4.0.0/docs/source/contribute/code_style_guide.rst +1171 -0
  49. openstef-4.0.0/docs/source/contribute/contributing_guide.rst +276 -0
  50. openstef-4.0.0/docs/source/contribute/development_setup.rst +186 -0
  51. openstef-4.0.0/docs/source/contribute/development_workflow.rst +333 -0
  52. openstef-4.0.0/docs/source/contribute/document.rst +506 -0
  53. openstef-4.0.0/docs/source/contribute/index.rst +211 -0
  54. openstef-4.0.0/docs/source/diagrams/user_guide/concepts/beam_diagram_1.mmd +17 -0
  55. openstef-4.0.0/docs/source/diagrams/user_guide/concepts/beam_diagram_1.mmd.license +3 -0
  56. openstef-4.0.0/docs/source/diagrams/user_guide/concepts/component_splitting_diagram_1.mmd +17 -0
  57. openstef-4.0.0/docs/source/diagrams/user_guide/concepts/component_splitting_diagram_1.mmd.license +3 -0
  58. openstef-4.0.0/docs/source/diagrams/user_guide/concepts/intro_to_energy_forecasting_diagram_1.mmd +11 -0
  59. openstef-4.0.0/docs/source/diagrams/user_guide/concepts/intro_to_energy_forecasting_diagram_1.mmd.license +3 -0
  60. openstef-4.0.0/docs/source/diagrams/user_guide/concepts/metalearning_diagram_1.mmd +24 -0
  61. openstef-4.0.0/docs/source/diagrams/user_guide/concepts/metalearning_diagram_1.mmd.license +3 -0
  62. openstef-4.0.0/docs/source/diagrams/user_guide/concepts/metalearning_diagram_2.mmd +14 -0
  63. openstef-4.0.0/docs/source/diagrams/user_guide/concepts/metalearning_diagram_2.mmd.license +3 -0
  64. openstef-4.0.0/docs/source/diagrams/user_guide/concepts/metalearning_diagram_3.mmd +20 -0
  65. openstef-4.0.0/docs/source/diagrams/user_guide/concepts/metalearning_diagram_3.mmd.license +3 -0
  66. openstef-4.0.0/docs/source/diagrams/user_guide/concepts/models_diagram_1.mmd +21 -0
  67. openstef-4.0.0/docs/source/diagrams/user_guide/concepts/models_diagram_1.mmd.license +3 -0
  68. openstef-4.0.0/docs/source/diagrams/user_guide/getting_started/migration_diagram_1.mmd +12 -0
  69. openstef-4.0.0/docs/source/diagrams/user_guide/getting_started/migration_diagram_1.mmd.license +3 -0
  70. openstef-4.0.0/docs/source/diagrams/user_guide/guides/datasets_diagram_1.mmd +17 -0
  71. openstef-4.0.0/docs/source/diagrams/user_guide/guides/datasets_diagram_1.mmd.license +3 -0
  72. openstef-4.0.0/docs/source/diagrams/user_guide/guides/datasets_diagram_2.mmd +17 -0
  73. openstef-4.0.0/docs/source/diagrams/user_guide/guides/datasets_diagram_2.mmd.license +3 -0
  74. openstef-4.0.0/docs/source/diagrams/user_guide/guides/deployment_diagram_1.mmd +16 -0
  75. openstef-4.0.0/docs/source/diagrams/user_guide/guides/deployment_diagram_1.mmd.license +3 -0
  76. openstef-4.0.0/docs/source/diagrams/user_guide/guides/deployment_diagram_2.mmd +20 -0
  77. openstef-4.0.0/docs/source/diagrams/user_guide/guides/deployment_diagram_2.mmd.license +3 -0
  78. openstef-4.0.0/docs/source/diagrams/user_guide/guides/forecasting_diagram_1.mmd +24 -0
  79. openstef-4.0.0/docs/source/diagrams/user_guide/guides/forecasting_diagram_1.mmd.license +3 -0
  80. openstef-4.0.0/docs/source/diagrams/user_guide/guides/probabilistic_forecasting_diagram_1.mmd +16 -0
  81. openstef-4.0.0/docs/source/diagrams/user_guide/guides/probabilistic_forecasting_diagram_1.mmd.license +3 -0
  82. openstef-4.0.0/docs/source/diagrams/user_guide/guides/reliability_fallback_diagram_1.mmd +21 -0
  83. openstef-4.0.0/docs/source/diagrams/user_guide/guides/reliability_fallback_diagram_1.mmd.license +3 -0
  84. openstef-4.0.0/docs/source/diagrams/user_guide/guides/reliability_fallback_diagram_2.mmd +14 -0
  85. openstef-4.0.0/docs/source/diagrams/user_guide/guides/reliability_fallback_diagram_2.mmd.license +3 -0
  86. openstef-4.0.0/docs/source/examples.rst +120 -0
  87. openstef-4.0.0/docs/source/images/concepts/aggregation_comparison.svg +1 -0
  88. openstef-4.0.0/docs/source/images/concepts/aggregation_comparison.svg.license +3 -0
  89. openstef-4.0.0/docs/source/images/concepts/backtesting_simulation.gif +0 -0
  90. openstef-4.0.0/docs/source/images/concepts/backtesting_simulation.gif.license +3 -0
  91. openstef-4.0.0/docs/source/images/concepts/forecast_confidence_bands.svg +1 -0
  92. openstef-4.0.0/docs/source/images/concepts/forecast_confidence_bands.svg.license +3 -0
  93. openstef-4.0.0/docs/source/images/concepts/weekly_load_profile.svg +1 -0
  94. openstef-4.0.0/docs/source/images/concepts/weekly_load_profile.svg.license +3 -0
  95. openstef-4.0.0/docs/source/images/guides/calibration_plot.svg +1 -0
  96. openstef-4.0.0/docs/source/images/guides/calibration_plot.svg.license +3 -0
  97. openstef-4.0.0/docs/source/images/guides/flatline_detection.svg +2587 -0
  98. openstef-4.0.0/docs/source/images/guides/flatline_detection.svg.license +3 -0
  99. openstef-4.0.0/docs/source/images/guides/probabilistic_fan_chart.svg +1 -0
  100. openstef-4.0.0/docs/source/images/guides/probabilistic_fan_chart.svg.license +3 -0
  101. openstef-4.0.0/docs/source/images/methodology_train_predict.pptx +0 -0
  102. openstef-4.0.0/docs/source/images/methodology_train_predict.pptx.license +3 -0
  103. openstef-4.0.0/docs/source/images/methodology_train_predict.svg +1 -0
  104. openstef-4.0.0/docs/source/images/methodology_train_predict.svg.license +3 -0
  105. openstef-4.0.0/docs/source/images/uncertainty_estimation.svg +1 -0
  106. openstef-4.0.0/docs/source/images/uncertainty_estimation.svg.license +3 -0
  107. openstef-4.0.0/docs/source/index.rst +176 -0
  108. openstef-4.0.0/docs/source/js/.gitkeep +0 -0
  109. openstef-4.0.0/docs/source/logos/favicon.ico +0 -0
  110. openstef-4.0.0/docs/source/logos/logo_openstef_small.png +0 -0
  111. openstef-3.4.93.dev0/openstef/data/dazls_model_3.4.24/dazls_stored_3.4.24_baseline_model.z.license → openstef-4.0.0/docs/source/logos/logo_openstef_small.png.license +1 -1
  112. openstef-4.0.0/docs/source/logos/openstef-horizontal-color.svg +1 -0
  113. openstef-4.0.0/docs/source/logos/openstef-horizontal-color.svg.license +3 -0
  114. openstef-4.0.0/docs/source/logos/openstef-horizontal-white.svg +1 -0
  115. openstef-4.0.0/docs/source/logos/openstef-horizontal-white.svg.license +3 -0
  116. openstef-4.0.0/docs/source/project/citing.rst +40 -0
  117. openstef-4.0.0/docs/source/project/committee.rst +29 -0
  118. openstef-4.0.0/docs/source/project/index.rst +38 -0
  119. openstef-4.0.0/docs/source/project/license.rst +24 -0
  120. openstef-4.0.0/docs/source/project/maintainers.rst +27 -0
  121. openstef-4.0.0/docs/source/project/support.rst +30 -0
  122. openstef-4.0.0/docs/source/user_guide/concepts/beam.rst +235 -0
  123. openstef-4.0.0/docs/source/user_guide/concepts/component_splitting.rst +189 -0
  124. openstef-4.0.0/docs/source/user_guide/concepts/index.rst +55 -0
  125. openstef-4.0.0/docs/source/user_guide/concepts/intro_to_energy_forecasting.rst +173 -0
  126. openstef-4.0.0/docs/source/user_guide/concepts/metalearning.rst +131 -0
  127. openstef-4.0.0/docs/source/user_guide/concepts/models.rst +202 -0
  128. openstef-4.0.0/docs/source/user_guide/external_resources.rst +13 -0
  129. openstef-4.0.0/docs/source/user_guide/getting_started/index.rst +41 -0
  130. openstef-4.0.0/docs/source/user_guide/getting_started/installation.rst +397 -0
  131. openstef-4.0.0/docs/source/user_guide/getting_started/migration.rst +320 -0
  132. openstef-4.0.0/docs/source/user_guide/guides/deployment.rst +176 -0
  133. openstef-4.0.0/docs/source/user_guide/guides/forecasting.rst +156 -0
  134. openstef-4.0.0/docs/source/user_guide/guides/index.rst +76 -0
  135. openstef-4.0.0/docs/source/user_guide/guides/probabilistic_forecasting.rst +229 -0
  136. openstef-4.0.0/docs/source/user_guide/guides/reliability_fallback.rst +270 -0
  137. openstef-4.0.0/docs/source/user_guide/index.rst +51 -0
  138. openstef-4.0.0/docs/source/user_guide/intro/index.rst +17 -0
  139. openstef-4.0.0/docs/source/user_guide/intro/methodology_train_predict.rst +29 -0
  140. openstef-4.0.0/docs/source/user_guide/logging.rst +218 -0
  141. openstef-4.0.0/docs/source/user_guide/tutorials.rst +14 -0
  142. openstef-4.0.0/docs/sync_sources.py +65 -0
  143. openstef-4.0.0/examples/.gitkeep +3 -0
  144. openstef-4.0.0/examples/README.md +13 -0
  145. openstef-4.0.0/examples/__init__.py +4 -0
  146. openstef-4.0.0/examples/benchmarks/README.md +40 -0
  147. openstef-4.0.0/examples/benchmarks/__init__.py +4 -0
  148. openstef-4.0.0/examples/benchmarks/custom/README.md +136 -0
  149. openstef-4.0.0/examples/benchmarks/custom/__init__.py +4 -0
  150. openstef-4.0.0/examples/benchmarks/custom/compare_benchmark_runs.ipynb +130 -0
  151. openstef-4.0.0/examples/benchmarks/custom/compare_benchmark_runs.ipynb.license +3 -0
  152. openstef-4.0.0/examples/benchmarks/custom/compare_benchmark_runs.py +88 -0
  153. openstef-4.0.0/examples/benchmarks/custom/custom_benchmark.ipynb +307 -0
  154. openstef-4.0.0/examples/benchmarks/custom/custom_benchmark.ipynb.license +3 -0
  155. openstef-4.0.0/examples/benchmarks/custom/custom_benchmark.py +246 -0
  156. openstef-4.0.0/examples/benchmarks/custom/custom_forecaster.ipynb +176 -0
  157. openstef-4.0.0/examples/benchmarks/custom/custom_forecaster.ipynb.license +3 -0
  158. openstef-4.0.0/examples/benchmarks/custom/custom_forecaster.py +139 -0
  159. openstef-4.0.0/examples/benchmarks/custom/evaluate_existing_forecasts.ipynb +241 -0
  160. openstef-4.0.0/examples/benchmarks/custom/evaluate_existing_forecasts.ipynb.license +3 -0
  161. openstef-4.0.0/examples/benchmarks/custom/evaluate_existing_forecasts.py +176 -0
  162. openstef-4.0.0/examples/benchmarks/custom/run_custom_benchmark.ipynb +204 -0
  163. openstef-4.0.0/examples/benchmarks/custom/run_custom_benchmark.ipynb.license +3 -0
  164. openstef-4.0.0/examples/benchmarks/custom/run_custom_benchmark.py +138 -0
  165. openstef-4.0.0/examples/benchmarks/custom/run_liander2024_benchmark.ipynb +216 -0
  166. openstef-4.0.0/examples/benchmarks/custom/run_liander2024_benchmark.ipynb.license +3 -0
  167. openstef-4.0.0/examples/benchmarks/custom/run_liander2024_benchmark.py +150 -0
  168. openstef-4.0.0/examples/benchmarks/liander2024/README.md +26 -0
  169. openstef-4.0.0/examples/benchmarks/liander2024/__init__.py +4 -0
  170. openstef-4.0.0/examples/benchmarks/liander2024/compare_benchmark_runs.ipynb +149 -0
  171. openstef-4.0.0/examples/benchmarks/liander2024/compare_benchmark_runs.ipynb.license +3 -0
  172. openstef-4.0.0/examples/benchmarks/liander2024/compare_benchmark_runs.py +95 -0
  173. openstef-4.0.0/examples/benchmarks/liander2024/run_ensemble_benchmark.ipynb +266 -0
  174. openstef-4.0.0/examples/benchmarks/liander2024/run_ensemble_benchmark.ipynb.license +3 -0
  175. openstef-4.0.0/examples/benchmarks/liander2024/run_ensemble_benchmark.py +188 -0
  176. openstef-4.0.0/examples/benchmarks/liander2024/run_xgboost_gblinear_benchmark.ipynb +240 -0
  177. openstef-4.0.0/examples/benchmarks/liander2024/run_xgboost_gblinear_benchmark.ipynb.license +3 -0
  178. openstef-4.0.0/examples/benchmarks/liander2024/run_xgboost_gblinear_benchmark.py +174 -0
  179. openstef-4.0.0/examples/pyproject.toml +28 -0
  180. openstef-4.0.0/examples/tutorials/.gitignore +16 -0
  181. openstef-4.0.0/examples/tutorials/backtesting_quickstart.ipynb +441 -0
  182. openstef-4.0.0/examples/tutorials/backtesting_quickstart.py +318 -0
  183. openstef-4.0.0/examples/tutorials/custom_pipeline.ipynb +498 -0
  184. openstef-4.0.0/examples/tutorials/custom_pipeline.py +319 -0
  185. openstef-4.0.0/examples/tutorials/datasets.py +517 -0
  186. openstef-4.0.0/examples/tutorials/ensemble_forecasting.ipynb +535 -0
  187. openstef-4.0.0/examples/tutorials/ensemble_forecasting.py +348 -0
  188. openstef-4.0.0/examples/tutorials/feature_engineering.ipynb +1556 -0
  189. openstef-4.0.0/examples/tutorials/feature_engineering.py +1074 -0
  190. openstef-4.0.0/examples/tutorials/forecasting_quickstart.ipynb +358 -0
  191. openstef-4.0.0/examples/tutorials/forecasting_quickstart.py +227 -0
  192. openstef-4.0.0/examples/tutorials/hyperparameter_tuning_with_optuna.ipynb +527 -0
  193. openstef-4.0.0/examples/tutorials/hyperparameter_tuning_with_optuna.py +341 -0
  194. openstef-4.0.0/examples/tutorials/model_explainability.ipynb +346 -0
  195. openstef-4.0.0/examples/tutorials/model_explainability.py +202 -0
  196. openstef-4.0.0/examples/tutorials/quantile_calibration.ipynb +375 -0
  197. openstef-4.0.0/examples/tutorials/quantile_calibration.py +255 -0
  198. openstef-4.0.0/packages/openstef-beam/README.md +7 -0
  199. openstef-4.0.0/packages/openstef-beam/pyproject.toml +57 -0
  200. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/__init__.py +43 -0
  201. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/analysis/__init__.py +32 -0
  202. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/analysis/analysis_pipeline.py +194 -0
  203. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/analysis/models/__init__.py +24 -0
  204. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/analysis/models/target_metadata.py +97 -0
  205. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/analysis/models/visualization_aggregation.py +61 -0
  206. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/analysis/models/visualization_output.py +93 -0
  207. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/analysis/plots/__init__.py +27 -0
  208. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/analysis/plots/forecast_time_series_plotter.py +683 -0
  209. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/analysis/plots/grouped_target_metric_plotter.py +173 -0
  210. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/analysis/plots/precision_recall_curve_plotter.py +151 -0
  211. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/analysis/plots/quantile_calibration_box_plotter.py +196 -0
  212. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/analysis/plots/quantile_probability_plotter.py +153 -0
  213. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/analysis/plots/summary_table_plotter.py +80 -0
  214. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/analysis/plots/windowed_metric_plotter.py +141 -0
  215. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/analysis/visualizations/__init__.py +33 -0
  216. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/analysis/visualizations/base.py +250 -0
  217. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/analysis/visualizations/grouped_target_metric_visualization.py +351 -0
  218. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/analysis/visualizations/precision_recall_curve_visualization.py +195 -0
  219. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/analysis/visualizations/quantile_calibration_box_visualization.py +240 -0
  220. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/analysis/visualizations/quantile_probability_visualization.py +221 -0
  221. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/analysis/visualizations/summary_table_visualization.py +311 -0
  222. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/analysis/visualizations/timeseries_visualization.py +155 -0
  223. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/analysis/visualizations/windowed_metric_visualization.py +429 -0
  224. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/backtesting/__init__.py +23 -0
  225. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/backtesting/backtest_callback.py +9 -0
  226. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/backtesting/backtest_event.py +57 -0
  227. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/backtesting/backtest_event_generator.py +207 -0
  228. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/backtesting/backtest_forecaster/__init__.py +25 -0
  229. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/backtesting/backtest_forecaster/dummy_forecaster.py +73 -0
  230. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/backtesting/backtest_forecaster/mixins.py +236 -0
  231. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/backtesting/backtest_pipeline.py +301 -0
  232. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/backtesting/restricted_horizon_timeseries.py +72 -0
  233. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/benchmarking/__init__.py +55 -0
  234. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/benchmarking/baselines/__init__.py +17 -0
  235. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/benchmarking/baselines/openstef4.py +243 -0
  236. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/benchmarking/benchmark_comparison_pipeline.py +255 -0
  237. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/benchmarking/benchmark_pipeline.py +420 -0
  238. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/benchmarking/benchmarks/__init__.py +14 -0
  239. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/benchmarking/benchmarks/liander2024.py +239 -0
  240. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/benchmarking/callbacks/__init__.py +10 -0
  241. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/benchmarking/callbacks/base.py +230 -0
  242. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/benchmarking/callbacks/strict_execution_callback.py +39 -0
  243. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/benchmarking/models/__init__.py +9 -0
  244. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/benchmarking/models/benchmark_target.py +116 -0
  245. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/benchmarking/storage/__init__.py +16 -0
  246. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/benchmarking/storage/base.py +254 -0
  247. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/benchmarking/storage/local_storage.py +163 -0
  248. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/benchmarking/storage/s3_storage.py +193 -0
  249. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/benchmarking/target_provider.py +412 -0
  250. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/evaluation/__init__.py +43 -0
  251. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/evaluation/evaluation_pipeline.py +316 -0
  252. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/evaluation/metric_providers.py +753 -0
  253. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/evaluation/models/__init__.py +21 -0
  254. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/evaluation/models/report.py +150 -0
  255. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/evaluation/models/subset.py +100 -0
  256. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/evaluation/models/window.py +132 -0
  257. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/evaluation/window_iterators.py +117 -0
  258. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/metrics/__init__.py +58 -0
  259. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/metrics/metrics_deterministic.py +625 -0
  260. openstef-4.0.0/packages/openstef-beam/src/openstef_beam/metrics/metrics_probabilistic.py +273 -0
  261. {openstef-3.4.93.dev0/openstef/logging → openstef-4.0.0/packages/openstef-beam/tests}/__init__.py +1 -1
  262. {openstef-3.4.93.dev0/openstef/plotting → openstef-4.0.0/packages/openstef-beam/tests/unit}/__init__.py +1 -1
  263. openstef-4.0.0/packages/openstef-beam/tests/unit/analysis/__init__.py +0 -0
  264. openstef-4.0.0/packages/openstef-beam/tests/unit/analysis/plots/__init__.py +0 -0
  265. openstef-4.0.0/packages/openstef-beam/tests/unit/analysis/plots/test_forecast_time_series_plotter.py +467 -0
  266. openstef-4.0.0/packages/openstef-beam/tests/unit/analysis/plots/test_grouped_target_metric_plotter.py +114 -0
  267. openstef-4.0.0/packages/openstef-beam/tests/unit/analysis/plots/test_precision_recall_curve_plotter.py +100 -0
  268. openstef-4.0.0/packages/openstef-beam/tests/unit/analysis/plots/test_quantile_calibration_box_plotter.py +114 -0
  269. openstef-4.0.0/packages/openstef-beam/tests/unit/analysis/plots/test_quantile_probability_plotter.py +124 -0
  270. openstef-4.0.0/packages/openstef-beam/tests/unit/analysis/plots/test_summary_table_plotter.py +25 -0
  271. openstef-4.0.0/packages/openstef-beam/tests/unit/analysis/plots/test_windowed_metric_plotter.py +91 -0
  272. openstef-4.0.0/packages/openstef-beam/tests/unit/analysis/test_analysis_pipeline.py +296 -0
  273. openstef-4.0.0/packages/openstef-beam/tests/unit/analysis/visualizations/__init__.py +0 -0
  274. openstef-4.0.0/packages/openstef-beam/tests/unit/analysis/visualizations/conftest.py +194 -0
  275. openstef-4.0.0/packages/openstef-beam/tests/unit/analysis/visualizations/test_grouped_target_metric_visualization.py +468 -0
  276. openstef-4.0.0/packages/openstef-beam/tests/unit/analysis/visualizations/test_precision_recall_curve_visualization.py +217 -0
  277. openstef-4.0.0/packages/openstef-beam/tests/unit/analysis/visualizations/test_quantile_calibration_box_visualization.py +282 -0
  278. openstef-4.0.0/packages/openstef-beam/tests/unit/analysis/visualizations/test_quantile_probability_visualization.py +241 -0
  279. openstef-4.0.0/packages/openstef-beam/tests/unit/analysis/visualizations/test_summary_table_visualization.py +186 -0
  280. openstef-4.0.0/packages/openstef-beam/tests/unit/analysis/visualizations/test_timeseries_visualization.py +162 -0
  281. openstef-4.0.0/packages/openstef-beam/tests/unit/analysis/visualizations/test_windowed_metric_visualization.py +496 -0
  282. openstef-4.0.0/packages/openstef-beam/tests/unit/backtesting/__init__.py +0 -0
  283. openstef-4.0.0/packages/openstef-beam/tests/unit/backtesting/test_backtest_event_generator.py +220 -0
  284. openstef-4.0.0/packages/openstef-beam/tests/unit/backtesting/test_backtest_pipeline.py +382 -0
  285. openstef-4.0.0/packages/openstef-beam/tests/unit/backtesting/test_batch_prediction.py +212 -0
  286. openstef-4.0.0/packages/openstef-beam/tests/unit/benchmarking/__init__.py +0 -0
  287. openstef-4.0.0/packages/openstef-beam/tests/unit/benchmarking/baselines/__init__.py +3 -0
  288. openstef-4.0.0/packages/openstef-beam/tests/unit/benchmarking/baselines/test_openstef4.py +182 -0
  289. openstef-4.0.0/packages/openstef-beam/tests/unit/benchmarking/storage/__init__.py +0 -0
  290. openstef-4.0.0/packages/openstef-beam/tests/unit/benchmarking/storage/test_local_storage.py +300 -0
  291. openstef-4.0.0/packages/openstef-beam/tests/unit/benchmarking/storage/test_s3_storage.py +287 -0
  292. openstef-4.0.0/packages/openstef-beam/tests/unit/benchmarking/test_benchmark_pipeline.py +443 -0
  293. openstef-4.0.0/packages/openstef-beam/tests/unit/benchmarking/test_target_provider.py +158 -0
  294. openstef-4.0.0/packages/openstef-beam/tests/unit/evaluation/__init__.py +3 -0
  295. openstef-4.0.0/packages/openstef-beam/tests/unit/evaluation/models/__init__.py +3 -0
  296. openstef-4.0.0/packages/openstef-beam/tests/unit/evaluation/models/test_window.py +72 -0
  297. openstef-4.0.0/packages/openstef-beam/tests/unit/evaluation/test_evaluation_pipeline.py +153 -0
  298. openstef-4.0.0/packages/openstef-beam/tests/unit/evaluation/test_metric_provider.py +123 -0
  299. openstef-4.0.0/packages/openstef-beam/tests/unit/evaluation/test_window_iterators.py +87 -0
  300. openstef-4.0.0/packages/openstef-beam/tests/unit/metrics/__init__.py +0 -0
  301. openstef-4.0.0/packages/openstef-beam/tests/unit/metrics/test_metrics_deterministic.py +590 -0
  302. openstef-4.0.0/packages/openstef-beam/tests/unit/metrics/test_metrics_probabilistic.py +186 -0
  303. openstef-4.0.0/packages/openstef-beam/tests/utils/__init__.py +0 -0
  304. openstef-4.0.0/packages/openstef-beam/tests/utils/mocks.py +109 -0
  305. openstef-4.0.0/packages/openstef-core/README.md +7 -0
  306. openstef-4.0.0/packages/openstef-core/pyproject.toml +49 -0
  307. openstef-4.0.0/packages/openstef-core/src/openstef_core/__init__.py +4 -0
  308. openstef-4.0.0/packages/openstef-core/src/openstef_core/base_model.py +205 -0
  309. openstef-4.0.0/packages/openstef-core/src/openstef_core/constants.py +10 -0
  310. openstef-4.0.0/packages/openstef-core/src/openstef_core/datasets/__init__.py +37 -0
  311. openstef-4.0.0/packages/openstef-core/src/openstef_core/datasets/mixins.py +221 -0
  312. openstef-4.0.0/packages/openstef-core/src/openstef_core/datasets/timeseries_dataset.py +521 -0
  313. openstef-4.0.0/packages/openstef-core/src/openstef_core/datasets/validated_datasets.py +616 -0
  314. openstef-4.0.0/packages/openstef-core/src/openstef_core/datasets/validation.py +150 -0
  315. openstef-4.0.0/packages/openstef-core/src/openstef_core/datasets/versioned_timeseries_dataset.py +338 -0
  316. openstef-4.0.0/packages/openstef-core/src/openstef_core/exceptions.py +217 -0
  317. openstef-4.0.0/packages/openstef-core/src/openstef_core/mixins/__init__.py +24 -0
  318. openstef-4.0.0/packages/openstef-core/src/openstef_core/mixins/param_ranges.py +131 -0
  319. openstef-4.0.0/packages/openstef-core/src/openstef_core/mixins/predictor.py +307 -0
  320. openstef-4.0.0/packages/openstef-core/src/openstef_core/mixins/stateful.py +132 -0
  321. openstef-4.0.0/packages/openstef-core/src/openstef_core/mixins/transform.py +184 -0
  322. openstef-4.0.0/packages/openstef-core/src/openstef_core/testing.py +306 -0
  323. openstef-4.0.0/packages/openstef-core/src/openstef_core/transforms/__init__.py +17 -0
  324. openstef-4.0.0/packages/openstef-core/src/openstef_core/transforms/dataset_transforms.py +82 -0
  325. openstef-4.0.0/packages/openstef-core/src/openstef_core/types.py +453 -0
  326. openstef-4.0.0/packages/openstef-core/src/openstef_core/utils/__init__.py +34 -0
  327. openstef-4.0.0/packages/openstef-core/src/openstef_core/utils/datetime.py +109 -0
  328. openstef-4.0.0/packages/openstef-core/src/openstef_core/utils/invariants.py +31 -0
  329. openstef-4.0.0/packages/openstef-core/src/openstef_core/utils/itertools.py +108 -0
  330. openstef-4.0.0/packages/openstef-core/src/openstef_core/utils/multiprocessing.py +77 -0
  331. openstef-4.0.0/packages/openstef-core/src/openstef_core/utils/pandas.py +105 -0
  332. openstef-4.0.0/packages/openstef-core/src/openstef_core/utils/pydantic.py +59 -0
  333. openstef-4.0.0/packages/openstef-core/tests/__init__.py +3 -0
  334. openstef-4.0.0/packages/openstef-core/tests/unit/__init__.py +0 -0
  335. openstef-4.0.0/packages/openstef-core/tests/unit/datasets/__init__.py +0 -0
  336. openstef-4.0.0/packages/openstef-core/tests/unit/datasets/test_mixins.py +55 -0
  337. openstef-4.0.0/packages/openstef-core/tests/unit/datasets/test_timeseries_dataset.py +337 -0
  338. openstef-4.0.0/packages/openstef-core/tests/unit/datasets/test_validation.py +160 -0
  339. openstef-4.0.0/packages/openstef-core/tests/unit/datasets/test_versioned_timeseries_dataset.py +345 -0
  340. openstef-4.0.0/packages/openstef-core/tests/unit/datasets/utils.py +28 -0
  341. openstef-4.0.0/packages/openstef-core/tests/unit/mixins/__init__.py +0 -0
  342. openstef-4.0.0/packages/openstef-core/tests/unit/mixins/test_stateful.py +118 -0
  343. openstef-4.0.0/packages/openstef-core/tests/unit/mixins/test_transform.py +132 -0
  344. openstef-4.0.0/packages/openstef-core/tests/unit/test_base_model.py +66 -0
  345. openstef-4.0.0/packages/openstef-core/tests/unit/test_hyperparams_tuning.py +115 -0
  346. openstef-4.0.0/packages/openstef-core/tests/unit/test_param_ranges.py +112 -0
  347. openstef-4.0.0/packages/openstef-core/tests/unit/test_types.py +456 -0
  348. openstef-4.0.0/packages/openstef-core/tests/unit/transforms/__init__.py +0 -0
  349. openstef-4.0.0/packages/openstef-core/tests/unit/utils/__init__.py +0 -0
  350. openstef-4.0.0/packages/openstef-core/tests/unit/utils/test_datetime.py +159 -0
  351. openstef-4.0.0/packages/openstef-core/tests/unit/utils/test_itertools.py +100 -0
  352. openstef-4.0.0/packages/openstef-core/tests/unit/utils/test_multiprocessing.py +51 -0
  353. openstef-4.0.0/packages/openstef-core/tests/unit/utils/test_pandas.py +56 -0
  354. openstef-4.0.0/packages/openstef-meta/README.md +0 -0
  355. openstef-4.0.0/packages/openstef-meta/pyproject.toml +42 -0
  356. openstef-4.0.0/packages/openstef-meta/src/openstef_meta/__init__.py +13 -0
  357. openstef-4.0.0/packages/openstef-meta/src/openstef_meta/models/__init__.py +5 -0
  358. openstef-4.0.0/packages/openstef-meta/src/openstef_meta/models/ensemble_forecasting_model.py +677 -0
  359. openstef-4.0.0/packages/openstef-meta/src/openstef_meta/models/forecast_combiners/__init__.py +25 -0
  360. openstef-4.0.0/packages/openstef-meta/src/openstef_meta/models/forecast_combiners/forecast_combiner.py +129 -0
  361. openstef-4.0.0/packages/openstef-meta/src/openstef_meta/models/forecast_combiners/learned_weights_combiner.py +397 -0
  362. openstef-4.0.0/packages/openstef-meta/src/openstef_meta/models/forecast_combiners/stacking_combiner.py +133 -0
  363. openstef-4.0.0/packages/openstef-meta/src/openstef_meta/presets/__init__.py +12 -0
  364. openstef-4.0.0/packages/openstef-meta/src/openstef_meta/presets/forecasting_workflow.py +645 -0
  365. openstef-4.0.0/packages/openstef-meta/src/openstef_meta/utils/__init__.py +9 -0
  366. openstef-4.0.0/packages/openstef-meta/src/openstef_meta/utils/datasets.py +48 -0
  367. openstef-4.0.0/packages/openstef-meta/tests/integration/__init__.py +0 -0
  368. openstef-4.0.0/packages/openstef-meta/tests/integration/test_ensemble_forecasting_model.py +104 -0
  369. openstef-4.0.0/packages/openstef-meta/tests/unit/integrations/__init__.py +3 -0
  370. openstef-4.0.0/packages/openstef-meta/tests/unit/integrations/test_mlflow_storage_callback_ensemble.py +321 -0
  371. openstef-4.0.0/packages/openstef-meta/tests/unit/models/__init__.py +0 -0
  372. openstef-4.0.0/packages/openstef-meta/tests/unit/models/conftest.py +59 -0
  373. openstef-4.0.0/packages/openstef-meta/tests/unit/models/forecast_combiners/__init__.py +0 -0
  374. openstef-4.0.0/packages/openstef-meta/tests/unit/models/forecast_combiners/conftest.py +58 -0
  375. openstef-4.0.0/packages/openstef-meta/tests/unit/models/forecast_combiners/test_learned_weights_combiner.py +168 -0
  376. openstef-4.0.0/packages/openstef-meta/tests/unit/models/forecast_combiners/test_stacking_combiner.py +100 -0
  377. openstef-4.0.0/packages/openstef-meta/tests/unit/models/forecasting/__init__.py +0 -0
  378. openstef-4.0.0/packages/openstef-meta/tests/unit/models/test_ensemble_forecasting_model.py +208 -0
  379. openstef-4.0.0/packages/openstef-meta/tests/unit/utils/__init__.py +0 -0
  380. openstef-4.0.0/packages/openstef-meta/tests/unit/utils/test_datasets.py +79 -0
  381. openstef-4.0.0/packages/openstef-models/README.md +7 -0
  382. openstef-4.0.0/packages/openstef-models/pyproject.toml +59 -0
  383. openstef-4.0.0/packages/openstef-models/src/openstef_models/__init__.py +13 -0
  384. openstef-4.0.0/packages/openstef-models/src/openstef_models/explainability/__init__.py +18 -0
  385. openstef-4.0.0/packages/openstef-models/src/openstef_models/explainability/mixins.py +126 -0
  386. openstef-4.0.0/packages/openstef-models/src/openstef_models/explainability/plotters/__init__.py +17 -0
  387. openstef-4.0.0/packages/openstef-models/src/openstef_models/explainability/plotters/contributions_plotter.py +228 -0
  388. openstef-4.0.0/packages/openstef-models/src/openstef_models/explainability/plotters/feature_importance_plotter.py +59 -0
  389. openstef-4.0.0/packages/openstef-models/src/openstef_models/integrations/__init__.py +12 -0
  390. openstef-4.0.0/packages/openstef-models/src/openstef_models/integrations/joblib/__init__.py +15 -0
  391. openstef-4.0.0/packages/openstef-models/src/openstef_models/integrations/joblib/joblib_model_serializer.py +68 -0
  392. openstef-4.0.0/packages/openstef-models/src/openstef_models/integrations/mlflow/__init__.py +26 -0
  393. openstef-4.0.0/packages/openstef-models/src/openstef_models/integrations/mlflow/mlflow_storage.py +332 -0
  394. openstef-4.0.0/packages/openstef-models/src/openstef_models/integrations/mlflow/mlflow_storage_callback.py +383 -0
  395. openstef-4.0.0/packages/openstef-models/src/openstef_models/integrations/optuna/__init__.py +23 -0
  396. openstef-4.0.0/packages/openstef-models/src/openstef_models/integrations/optuna/tuner.py +354 -0
  397. openstef-4.0.0/packages/openstef-models/src/openstef_models/mixins/__init__.py +14 -0
  398. openstef-4.0.0/packages/openstef-models/src/openstef_models/mixins/callbacks.py +93 -0
  399. openstef-4.0.0/packages/openstef-models/src/openstef_models/mixins/model_serializer.py +72 -0
  400. openstef-4.0.0/packages/openstef-models/src/openstef_models/models/__init__.py +18 -0
  401. openstef-4.0.0/packages/openstef-models/src/openstef_models/models/component_splitting/__init__.py +17 -0
  402. openstef-4.0.0/packages/openstef-models/src/openstef_models/models/component_splitting/component_splitter.py +65 -0
  403. openstef-4.0.0/packages/openstef-models/src/openstef_models/models/component_splitting/constant_component_splitter.py +152 -0
  404. openstef-4.0.0/packages/openstef-models/src/openstef_models/models/component_splitting/linear_component_splitter.py +212 -0
  405. openstef-4.0.0/packages/openstef-models/src/openstef_models/models/component_splitting/linear_component_splitter_model/linear_component_splitter_model.z +0 -0
  406. openstef-4.0.0/packages/openstef-models/src/openstef_models/models/component_splitting/linear_component_splitter_model/linear_component_splitter_model.z.license +3 -0
  407. openstef-4.0.0/packages/openstef-models/src/openstef_models/models/component_splitting_model.py +119 -0
  408. openstef-4.0.0/packages/openstef-models/src/openstef_models/models/forecasting/__init__.py +9 -0
  409. openstef-4.0.0/packages/openstef-models/src/openstef_models/models/forecasting/base_case_forecaster.py +177 -0
  410. openstef-4.0.0/packages/openstef-models/src/openstef_models/models/forecasting/constant_quantile_forecaster.py +127 -0
  411. openstef-4.0.0/packages/openstef-models/src/openstef_models/models/forecasting/flatliner_forecaster.py +111 -0
  412. openstef-4.0.0/packages/openstef-models/src/openstef_models/models/forecasting/forecaster.py +140 -0
  413. openstef-4.0.0/packages/openstef-models/src/openstef_models/models/forecasting/gblinear_forecaster.py +335 -0
  414. openstef-4.0.0/packages/openstef-models/src/openstef_models/models/forecasting/lgbm_forecaster.py +342 -0
  415. openstef-4.0.0/packages/openstef-models/src/openstef_models/models/forecasting/lgbmlinear_forecaster.py +344 -0
  416. openstef-4.0.0/packages/openstef-models/src/openstef_models/models/forecasting/median_forecaster.py +320 -0
  417. openstef-4.0.0/packages/openstef-models/src/openstef_models/models/forecasting/xgboost_forecaster.py +414 -0
  418. openstef-4.0.0/packages/openstef-models/src/openstef_models/models/forecasting_model.py +609 -0
  419. openstef-4.0.0/packages/openstef-models/src/openstef_models/presets/__init__.py +19 -0
  420. openstef-4.0.0/packages/openstef-models/src/openstef_models/presets/forecasting_workflow.py +590 -0
  421. openstef-4.0.0/packages/openstef-models/src/openstef_models/testing.py +98 -0
  422. openstef-4.0.0/packages/openstef-models/src/openstef_models/transforms/__init__.py +26 -0
  423. openstef-4.0.0/packages/openstef-models/src/openstef_models/transforms/energy_domain/__init__.py +14 -0
  424. openstef-4.0.0/packages/openstef-models/src/openstef_models/transforms/energy_domain/wind_power_feature_adder.py +135 -0
  425. openstef-4.0.0/packages/openstef-models/src/openstef_models/transforms/general/__init__.py +37 -0
  426. openstef-4.0.0/packages/openstef-models/src/openstef_models/transforms/general/dimensionality_reducer.py +138 -0
  427. openstef-4.0.0/packages/openstef-models/src/openstef_models/transforms/general/empty_feature_remover.py +120 -0
  428. openstef-4.0.0/packages/openstef-models/src/openstef_models/transforms/general/flagger.py +97 -0
  429. openstef-4.0.0/packages/openstef-models/src/openstef_models/transforms/general/imputer.py +278 -0
  430. openstef-4.0.0/packages/openstef-models/src/openstef_models/transforms/general/nan_dropper.py +89 -0
  431. openstef-4.0.0/packages/openstef-models/src/openstef_models/transforms/general/outlier_handler.py +178 -0
  432. openstef-4.0.0/packages/openstef-models/src/openstef_models/transforms/general/sample_weighter.py +309 -0
  433. openstef-4.0.0/packages/openstef-models/src/openstef_models/transforms/general/scaler.py +122 -0
  434. openstef-4.0.0/packages/openstef-models/src/openstef_models/transforms/general/selector.py +83 -0
  435. openstef-4.0.0/packages/openstef-models/src/openstef_models/transforms/general/shifter.py +130 -0
  436. openstef-4.0.0/packages/openstef-models/src/openstef_models/transforms/postprocessing/__init__.py +16 -0
  437. openstef-4.0.0/packages/openstef-models/src/openstef_models/transforms/postprocessing/confidence_interval_applicator.py +232 -0
  438. openstef-4.0.0/packages/openstef-models/src/openstef_models/transforms/postprocessing/isotonic_quantile_calibrator.py +229 -0
  439. openstef-4.0.0/packages/openstef-models/src/openstef_models/transforms/postprocessing/quantile_sorter.py +78 -0
  440. openstef-4.0.0/packages/openstef-models/src/openstef_models/transforms/time_domain/__init__.py +29 -0
  441. openstef-4.0.0/packages/openstef-models/src/openstef_models/transforms/time_domain/cyclic_features_adder.py +171 -0
  442. openstef-4.0.0/packages/openstef-models/src/openstef_models/transforms/time_domain/datetime_features_adder.py +111 -0
  443. openstef-4.0.0/packages/openstef-models/src/openstef_models/transforms/time_domain/holiday_features_adder.py +168 -0
  444. openstef-4.0.0/packages/openstef-models/src/openstef_models/transforms/time_domain/lags_adder.py +388 -0
  445. openstef-4.0.0/packages/openstef-models/src/openstef_models/transforms/time_domain/rolling_aggregates_adder.py +170 -0
  446. openstef-4.0.0/packages/openstef-models/src/openstef_models/transforms/time_domain/versioned_lags_adder.py +139 -0
  447. openstef-4.0.0/packages/openstef-models/src/openstef_models/transforms/validation/__init__.py +16 -0
  448. openstef-4.0.0/packages/openstef-models/src/openstef_models/transforms/validation/completeness_checker.py +123 -0
  449. openstef-4.0.0/packages/openstef-models/src/openstef_models/transforms/validation/flatline_checker.py +152 -0
  450. openstef-4.0.0/packages/openstef-models/src/openstef_models/transforms/validation/input_consistency_checker.py +67 -0
  451. openstef-4.0.0/packages/openstef-models/src/openstef_models/transforms/weather_domain/__init__.py +20 -0
  452. openstef-4.0.0/packages/openstef-models/src/openstef_models/transforms/weather_domain/atmosphere_derived_features_adder.py +205 -0
  453. openstef-4.0.0/packages/openstef-models/src/openstef_models/transforms/weather_domain/daylight_feature_adder.py +74 -0
  454. openstef-4.0.0/packages/openstef-models/src/openstef_models/transforms/weather_domain/radiation_derived_features_adder.py +165 -0
  455. openstef-4.0.0/packages/openstef-models/src/openstef_models/utils/__init__.py +9 -0
  456. openstef-4.0.0/packages/openstef-models/src/openstef_models/utils/data_split.py +346 -0
  457. openstef-4.0.0/packages/openstef-models/src/openstef_models/utils/evaluation_functions.py +30 -0
  458. openstef-4.0.0/packages/openstef-models/src/openstef_models/utils/feature_selection.py +225 -0
  459. openstef-4.0.0/packages/openstef-models/src/openstef_models/utils/loss_functions.py +256 -0
  460. openstef-4.0.0/packages/openstef-models/src/openstef_models/utils/multi_quantile_regressor.py +157 -0
  461. openstef-4.0.0/packages/openstef-models/src/openstef_models/utils/xgboost.py +45 -0
  462. openstef-4.0.0/packages/openstef-models/src/openstef_models/workflows/__init__.py +16 -0
  463. openstef-4.0.0/packages/openstef-models/src/openstef_models/workflows/callbacks/__init__.py +13 -0
  464. openstef-4.0.0/packages/openstef-models/src/openstef_models/workflows/callbacks/data_save.py +108 -0
  465. openstef-4.0.0/packages/openstef-models/src/openstef_models/workflows/callbacks/model_performance_callback.py +92 -0
  466. openstef-4.0.0/packages/openstef-models/src/openstef_models/workflows/custom_component_split_workflow.py +154 -0
  467. openstef-4.0.0/packages/openstef-models/src/openstef_models/workflows/custom_forecasting_workflow.py +206 -0
  468. openstef-4.0.0/packages/openstef-models/tests/__init__.py +3 -0
  469. openstef-4.0.0/packages/openstef-models/tests/integration/__init__.py +0 -0
  470. openstef-4.0.0/packages/openstef-models/tests/integration/test_integration.py +17 -0
  471. openstef-4.0.0/packages/openstef-models/tests/unit/__init__.py +0 -0
  472. openstef-4.0.0/packages/openstef-models/tests/unit/explainability/__init__.py +0 -0
  473. openstef-4.0.0/packages/openstef-models/tests/unit/explainability/plotters/__init__.py +0 -0
  474. openstef-4.0.0/packages/openstef-models/tests/unit/explainability/plotters/test_contributions_plotter.py +219 -0
  475. openstef-4.0.0/packages/openstef-models/tests/unit/integrations/__init__.py +5 -0
  476. openstef-4.0.0/packages/openstef-models/tests/unit/integrations/joblib/__init__.py +5 -0
  477. openstef-4.0.0/packages/openstef-models/tests/unit/integrations/joblib/test_joblib_model_serializer.py +36 -0
  478. openstef-4.0.0/packages/openstef-models/tests/unit/integrations/mlflow/__init__.py +3 -0
  479. openstef-4.0.0/packages/openstef-models/tests/unit/integrations/mlflow/test_mlflow_storage.py +192 -0
  480. openstef-4.0.0/packages/openstef-models/tests/unit/integrations/mlflow/test_mlflow_storage_callback.py +291 -0
  481. openstef-4.0.0/packages/openstef-models/tests/unit/integrations/optuna/__init__.py +0 -0
  482. openstef-4.0.0/packages/openstef-models/tests/unit/integrations/optuna/test_tuner.py +304 -0
  483. openstef-4.0.0/packages/openstef-models/tests/unit/models/__init__.py +0 -0
  484. openstef-4.0.0/packages/openstef-models/tests/unit/models/component_splitting/__init__.py +3 -0
  485. openstef-4.0.0/packages/openstef-models/tests/unit/models/component_splitting/test_constant_component_splitter.py +144 -0
  486. openstef-4.0.0/packages/openstef-models/tests/unit/models/component_splitting/test_linear_component_splitter.py +92 -0
  487. openstef-4.0.0/packages/openstef-models/tests/unit/models/forecasting/__init__.py +0 -0
  488. openstef-4.0.0/packages/openstef-models/tests/unit/models/forecasting/conftest.py +59 -0
  489. openstef-4.0.0/packages/openstef-models/tests/unit/models/forecasting/test_base_case_forecaster.py +264 -0
  490. openstef-4.0.0/packages/openstef-models/tests/unit/models/forecasting/test_constant_quantile_forecaster.py +109 -0
  491. openstef-4.0.0/packages/openstef-models/tests/unit/models/forecasting/test_flatliner_forecaster.py +66 -0
  492. openstef-4.0.0/packages/openstef-models/tests/unit/models/forecasting/test_gblinear_forecaster.py +159 -0
  493. openstef-4.0.0/packages/openstef-models/tests/unit/models/forecasting/test_lgbm_forecaster.py +173 -0
  494. openstef-4.0.0/packages/openstef-models/tests/unit/models/forecasting/test_lgbmlinear_forecaster.py +147 -0
  495. openstef-4.0.0/packages/openstef-models/tests/unit/models/forecasting/test_median_forecaster.py +460 -0
  496. openstef-4.0.0/packages/openstef-models/tests/unit/models/forecasting/test_xgboost_forecaster.py +194 -0
  497. openstef-4.0.0/packages/openstef-models/tests/unit/models/test_forecasting_model.py +301 -0
  498. openstef-4.0.0/packages/openstef-models/tests/unit/test_example.py +7 -0
  499. openstef-4.0.0/packages/openstef-models/tests/unit/transforms/__init__.py +0 -0
  500. openstef-4.0.0/packages/openstef-models/tests/unit/transforms/energy_domain/__init__.py +0 -0
  501. openstef-4.0.0/packages/openstef-models/tests/unit/transforms/energy_domain/test_wind_power_feature_adder.py +118 -0
  502. openstef-4.0.0/packages/openstef-models/tests/unit/transforms/general/__init__.py +0 -0
  503. openstef-4.0.0/packages/openstef-models/tests/unit/transforms/general/test_dimensionality_reducer.py +115 -0
  504. openstef-4.0.0/packages/openstef-models/tests/unit/transforms/general/test_empty_feature_remover.py +148 -0
  505. openstef-4.0.0/packages/openstef-models/tests/unit/transforms/general/test_flagger.py +61 -0
  506. openstef-4.0.0/packages/openstef-models/tests/unit/transforms/general/test_imputer.py +396 -0
  507. openstef-4.0.0/packages/openstef-models/tests/unit/transforms/general/test_nan_dropper.py +48 -0
  508. openstef-4.0.0/packages/openstef-models/tests/unit/transforms/general/test_outlier_handler.py +234 -0
  509. openstef-4.0.0/packages/openstef-models/tests/unit/transforms/general/test_sample_weighter.py +280 -0
  510. openstef-4.0.0/packages/openstef-models/tests/unit/transforms/general/test_scaler.py +129 -0
  511. openstef-4.0.0/packages/openstef-models/tests/unit/transforms/general/test_selector.py +82 -0
  512. openstef-4.0.0/packages/openstef-models/tests/unit/transforms/general/test_shifter.py +174 -0
  513. openstef-4.0.0/packages/openstef-models/tests/unit/transforms/postprocessing/__init__.py +5 -0
  514. openstef-4.0.0/packages/openstef-models/tests/unit/transforms/postprocessing/test_confidence_interval_applicator.py +203 -0
  515. openstef-4.0.0/packages/openstef-models/tests/unit/transforms/postprocessing/test_isotonic_quantile_calibrator.py +200 -0
  516. openstef-4.0.0/packages/openstef-models/tests/unit/transforms/postprocessing/test_quantile_sorter.py +48 -0
  517. openstef-4.0.0/packages/openstef-models/tests/unit/transforms/time_domain/__init__.py +0 -0
  518. openstef-4.0.0/packages/openstef-models/tests/unit/transforms/time_domain/test_cyclic_features_adder.py +117 -0
  519. openstef-4.0.0/packages/openstef-models/tests/unit/transforms/time_domain/test_datetime_features_adder.py +118 -0
  520. openstef-4.0.0/packages/openstef-models/tests/unit/transforms/time_domain/test_holiday_features_adder.py +155 -0
  521. openstef-4.0.0/packages/openstef-models/tests/unit/transforms/time_domain/test_lags_adder.py +535 -0
  522. openstef-4.0.0/packages/openstef-models/tests/unit/transforms/time_domain/test_rolling_aggregates_adder.py +242 -0
  523. openstef-4.0.0/packages/openstef-models/tests/unit/transforms/time_domain/test_versioned_lags_adder.py +225 -0
  524. openstef-4.0.0/packages/openstef-models/tests/unit/transforms/validation/__init__.py +0 -0
  525. openstef-4.0.0/packages/openstef-models/tests/unit/transforms/validation/test_completeness_checker.py +169 -0
  526. openstef-4.0.0/packages/openstef-models/tests/unit/transforms/validation/test_flatline_checker.py +149 -0
  527. openstef-4.0.0/packages/openstef-models/tests/unit/transforms/validation/test_input_consistency_checker.py +81 -0
  528. openstef-4.0.0/packages/openstef-models/tests/unit/transforms/weather_domain/__init__.py +0 -0
  529. openstef-4.0.0/packages/openstef-models/tests/unit/transforms/weather_domain/test_atmosphere_derived_features_adder.py +113 -0
  530. openstef-4.0.0/packages/openstef-models/tests/unit/transforms/weather_domain/test_daylight_feature_adder.py +102 -0
  531. openstef-4.0.0/packages/openstef-models/tests/unit/transforms/weather_domain/test_radiation_derived_featuers_adder.py +343 -0
  532. openstef-4.0.0/packages/openstef-models/tests/unit/utils/__init__.py +3 -0
  533. openstef-4.0.0/packages/openstef-models/tests/unit/utils/test_data_split.py +162 -0
  534. openstef-4.0.0/packages/openstef-models/tests/unit/utils/test_feature_selection.py +125 -0
  535. openstef-4.0.0/packages/openstef-models/tests/unit/utils/test_loss_functions.py +416 -0
  536. openstef-4.0.0/packages/openstef-models/tests/unit/utils/test_multi_quantile_regressor.py +118 -0
  537. openstef-4.0.0/packages/openstef-models/tests/unit/workflows/__init__.py +0 -0
  538. openstef-4.0.0/packages/openstef-models/tests/unit/workflows/callbacks/__init__.py +0 -0
  539. openstef-4.0.0/packages/openstef-models/tests/unit/workflows/callbacks/test_model_performance_callback.py +83 -0
  540. openstef-4.0.0/pyproject.toml +441 -0
  541. openstef-4.0.0/sonar-project.properties +18 -0
  542. openstef-4.0.0/tools/check_notebook_outputs.py +37 -0
  543. openstef-4.0.0/tools/reuse-fix.py +390 -0
  544. openstef-4.0.0/uv.lock +5691 -0
  545. openstef-3.4.93.dev0/PKG-INFO +0 -181
  546. openstef-3.4.93.dev0/README.md +0 -125
  547. openstef-3.4.93.dev0/openstef/__init__.py +0 -14
  548. openstef-3.4.93.dev0/openstef/__main__.py +0 -3
  549. openstef-3.4.93.dev0/openstef/app_settings.py +0 -26
  550. openstef-3.4.93.dev0/openstef/data/NL_terrestrial_radiation.csv +0 -25585
  551. openstef-3.4.93.dev0/openstef/data/dazls_model_3.4.24/dazls_stored_3.4.24_baseline_model.z +0 -0
  552. openstef-3.4.93.dev0/openstef/data/dazls_model_3.4.24/dazls_stored_3.4.24_model_card.md +0 -18
  553. openstef-3.4.93.dev0/openstef/data/dazls_model_3.4.24/dazls_stored_3.4.24_model_card.md.license +0 -3
  554. openstef-3.4.93.dev0/openstef/data/dutch_holidays.csv +0 -1759
  555. openstef-3.4.93.dev0/openstef/data/dutch_holidays.csv.license +0 -3
  556. openstef-3.4.93.dev0/openstef/data/pv_single_coefs.csv +0 -601
  557. openstef-3.4.93.dev0/openstef/data/pv_single_coefs.csv.license +0 -3
  558. openstef-3.4.93.dev0/openstef/data_classes/__init__.py +0 -3
  559. openstef-3.4.93.dev0/openstef/data_classes/data_prep.py +0 -104
  560. openstef-3.4.93.dev0/openstef/data_classes/model_specifications.py +0 -34
  561. openstef-3.4.93.dev0/openstef/data_classes/prediction_job.py +0 -173
  562. openstef-3.4.93.dev0/openstef/data_classes/split_function.py +0 -98
  563. openstef-3.4.93.dev0/openstef/enums.py +0 -146
  564. openstef-3.4.93.dev0/openstef/exceptions.py +0 -74
  565. openstef-3.4.93.dev0/openstef/feature_engineering/__init__.py +0 -3
  566. openstef-3.4.93.dev0/openstef/feature_engineering/apply_features.py +0 -137
  567. openstef-3.4.93.dev0/openstef/feature_engineering/bidding_zone_to_country_mapping.py +0 -107
  568. openstef-3.4.93.dev0/openstef/feature_engineering/cyclic_features.py +0 -152
  569. openstef-3.4.93.dev0/openstef/feature_engineering/data_preparation.py +0 -145
  570. openstef-3.4.93.dev0/openstef/feature_engineering/feature_adder.py +0 -206
  571. openstef-3.4.93.dev0/openstef/feature_engineering/feature_applicator.py +0 -202
  572. openstef-3.4.93.dev0/openstef/feature_engineering/general.py +0 -129
  573. openstef-3.4.93.dev0/openstef/feature_engineering/holiday_features.py +0 -239
  574. openstef-3.4.93.dev0/openstef/feature_engineering/lag_features.py +0 -165
  575. openstef-3.4.93.dev0/openstef/feature_engineering/missing_values_transformer.py +0 -141
  576. openstef-3.4.93.dev0/openstef/feature_engineering/rolling_features.py +0 -62
  577. openstef-3.4.93.dev0/openstef/feature_engineering/weather_features.py +0 -486
  578. openstef-3.4.93.dev0/openstef/logging/base_logger.py +0 -34
  579. openstef-3.4.93.dev0/openstef/logging/logger_factory.py +0 -17
  580. openstef-3.4.93.dev0/openstef/logging/logger_types.py +0 -10
  581. openstef-3.4.93.dev0/openstef/logging/standard_logger.py +0 -33
  582. openstef-3.4.93.dev0/openstef/logging/structlog_logger.py +0 -38
  583. openstef-3.4.93.dev0/openstef/metrics/__init__.py +0 -3
  584. openstef-3.4.93.dev0/openstef/metrics/figure.py +0 -303
  585. openstef-3.4.93.dev0/openstef/metrics/metrics.py +0 -489
  586. openstef-3.4.93.dev0/openstef/metrics/reporter.py +0 -215
  587. openstef-3.4.93.dev0/openstef/model/__init__.py +0 -3
  588. openstef-3.4.93.dev0/openstef/model/basecase.py +0 -82
  589. openstef-3.4.93.dev0/openstef/model/confidence_interval_applicator.py +0 -235
  590. openstef-3.4.93.dev0/openstef/model/fallback.py +0 -83
  591. openstef-3.4.93.dev0/openstef/model/metamodels/__init__.py +0 -3
  592. openstef-3.4.93.dev0/openstef/model/metamodels/feature_clipper.py +0 -108
  593. openstef-3.4.93.dev0/openstef/model/metamodels/grouped_regressor.py +0 -222
  594. openstef-3.4.93.dev0/openstef/model/metamodels/missing_values_handler.py +0 -138
  595. openstef-3.4.93.dev0/openstef/model/model_creator.py +0 -211
  596. openstef-3.4.93.dev0/openstef/model/objective.py +0 -456
  597. openstef-3.4.93.dev0/openstef/model/objective_creator.py +0 -65
  598. openstef-3.4.93.dev0/openstef/model/regressors/__init__.py +0 -3
  599. openstef-3.4.93.dev0/openstef/model/regressors/arima.py +0 -197
  600. openstef-3.4.93.dev0/openstef/model/regressors/custom_regressor.py +0 -64
  601. openstef-3.4.93.dev0/openstef/model/regressors/dazls.py +0 -116
  602. openstef-3.4.93.dev0/openstef/model/regressors/flatliner.py +0 -110
  603. openstef-3.4.93.dev0/openstef/model/regressors/gblinear_quantile.py +0 -333
  604. openstef-3.4.93.dev0/openstef/model/regressors/lgbm.py +0 -29
  605. openstef-3.4.93.dev0/openstef/model/regressors/linear.py +0 -90
  606. openstef-3.4.93.dev0/openstef/model/regressors/linear_quantile.py +0 -305
  607. openstef-3.4.93.dev0/openstef/model/regressors/median.py +0 -333
  608. openstef-3.4.93.dev0/openstef/model/regressors/regressor.py +0 -114
  609. openstef-3.4.93.dev0/openstef/model/regressors/xgb.py +0 -48
  610. openstef-3.4.93.dev0/openstef/model/regressors/xgb_multioutput_quantile.py +0 -261
  611. openstef-3.4.93.dev0/openstef/model/regressors/xgb_quantile.py +0 -228
  612. openstef-3.4.93.dev0/openstef/model/serializer.py +0 -457
  613. openstef-3.4.93.dev0/openstef/model/standard_deviation_generator.py +0 -81
  614. openstef-3.4.93.dev0/openstef/model_selection/__init__.py +0 -3
  615. openstef-3.4.93.dev0/openstef/model_selection/model_selection.py +0 -313
  616. openstef-3.4.93.dev0/openstef/monitoring/__init__.py +0 -3
  617. openstef-3.4.93.dev0/openstef/monitoring/performance_meter.py +0 -92
  618. openstef-3.4.93.dev0/openstef/monitoring/teams.py +0 -197
  619. openstef-3.4.93.dev0/openstef/pipeline/__init__.py +0 -3
  620. openstef-3.4.93.dev0/openstef/pipeline/create_basecase_forecast.py +0 -125
  621. openstef-3.4.93.dev0/openstef/pipeline/create_component_forecast.py +0 -160
  622. openstef-3.4.93.dev0/openstef/pipeline/create_forecast.py +0 -167
  623. openstef-3.4.93.dev0/openstef/pipeline/optimize_hyperparameters.py +0 -311
  624. openstef-3.4.93.dev0/openstef/pipeline/train_create_forecast_backtest.py +0 -163
  625. openstef-3.4.93.dev0/openstef/pipeline/train_model.py +0 -574
  626. openstef-3.4.93.dev0/openstef/pipeline/utils.py +0 -52
  627. openstef-3.4.93.dev0/openstef/plotting/load_forecast_plotter.py +0 -216
  628. openstef-3.4.93.dev0/openstef/postprocessing/__init__.py +0 -3
  629. openstef-3.4.93.dev0/openstef/postprocessing/postprocessing.py +0 -268
  630. openstef-3.4.93.dev0/openstef/preprocessing/__init__.py +0 -3
  631. openstef-3.4.93.dev0/openstef/preprocessing/preprocessing.py +0 -42
  632. openstef-3.4.93.dev0/openstef/settings.py +0 -15
  633. openstef-3.4.93.dev0/openstef/tasks/__init__.py +0 -3
  634. openstef-3.4.93.dev0/openstef/tasks/calculate_kpi.py +0 -317
  635. openstef-3.4.93.dev0/openstef/tasks/create_basecase_forecast.py +0 -118
  636. openstef-3.4.93.dev0/openstef/tasks/create_components_forecast.py +0 -153
  637. openstef-3.4.93.dev0/openstef/tasks/create_forecast.py +0 -141
  638. openstef-3.4.93.dev0/openstef/tasks/create_solar_forecast.py +0 -419
  639. openstef-3.4.93.dev0/openstef/tasks/create_wind_forecast.py +0 -80
  640. openstef-3.4.93.dev0/openstef/tasks/optimize_hyperparameters.py +0 -135
  641. openstef-3.4.93.dev0/openstef/tasks/split_forecast.py +0 -265
  642. openstef-3.4.93.dev0/openstef/tasks/train_model.py +0 -236
  643. openstef-3.4.93.dev0/openstef/tasks/utils/__init__.py +0 -3
  644. openstef-3.4.93.dev0/openstef/tasks/utils/dependencies.py +0 -107
  645. openstef-3.4.93.dev0/openstef/tasks/utils/predictionjobloop.py +0 -243
  646. openstef-3.4.93.dev0/openstef/tasks/utils/taskcontext.py +0 -152
  647. openstef-3.4.93.dev0/openstef/validation/__init__.py +0 -3
  648. openstef-3.4.93.dev0/openstef/validation/validation.py +0 -324
  649. openstef-3.4.93.dev0/openstef.egg-info/PKG-INFO +0 -181
  650. openstef-3.4.93.dev0/openstef.egg-info/SOURCES.txt +0 -116
  651. openstef-3.4.93.dev0/openstef.egg-info/dependency_links.txt +0 -1
  652. openstef-3.4.93.dev0/openstef.egg-info/requires.txt +0 -31
  653. openstef-3.4.93.dev0/openstef.egg-info/top_level.txt +0 -1
  654. openstef-3.4.93.dev0/pyproject.toml +0 -21
  655. openstef-3.4.93.dev0/setup.cfg +0 -9
  656. openstef-3.4.93.dev0/setup.py +0 -71
  657. /openstef-3.4.93.dev0/LICENSE → /openstef-4.0.0/LICENSE.md +0 -0
  658. /openstef-3.4.93.dev0/openstef/data/NL_terrestrial_radiation.csv.license → /openstef-4.0.0/docs/source/logos/favicon.ico.license +0 -0
@@ -0,0 +1,7 @@
1
+ # SPDX-FileCopyrightText: 2025 Contributors to the OpenSTEF project <openstef@lfenergy.org>
2
+ #
3
+ # SPDX-License-Identifier: MPL-2.0
4
+
5
+ # Require review from maintainers for CI/CD workflow changes
6
+ .github/workflows/ @OpenSTEF/openstef-maintainers
7
+ .github/CODEOWNERS @OpenSTEF/openstef-maintainers
@@ -0,0 +1,72 @@
1
+ <!--
2
+ SPDX-FileCopyrightText: 2017-2025 Contributors to the OpenSTEF project <openstef@lfenergy.org>
3
+
4
+ SPDX-License-Identifier: MPL-2.0
5
+ -->
6
+
7
+ # Code of Conduct
8
+
9
+ ## Our Pledge
10
+
11
+ In the interest of fostering an open and welcoming environment, we as
12
+ contributors and maintainers pledge to making participation in our project and
13
+ our community a harassment-free experience for everyone, regardless of age, body
14
+ size, disability, ethnicity, gender identity and expression, level of
15
+ experience, education, socio-economic status, nationality, personal appearance,
16
+ race, religion, or sexual identity and orientation.
17
+
18
+ ## Our Standards
19
+
20
+ Examples of behavior that contributes to creating a positive environment
21
+ include:
22
+
23
+ * Using welcoming and inclusive language
24
+ * Being respectful of differing viewpoints and experiences
25
+ * Gracefully accepting constructive criticism
26
+ * Focusing on what is best for the community
27
+ * Showing empathy towards other community members
28
+
29
+ Examples of unacceptable behavior by participants include:
30
+
31
+ * The use of sexualized language or imagery and unwelcome sexual attention or
32
+ advances
33
+ * Trolling, insulting/derogatory comments, and personal or political attacks
34
+ * Public or private harassment
35
+ * Publishing others' private information, such as a physical or electronic
36
+ address, without explicit permission
37
+ * Other conduct which could reasonably be considered inappropriate in a
38
+ professional setting
39
+
40
+ ## Our Responsibilities
41
+
42
+ Project maintainers are responsible for clarifying the standards of acceptable
43
+ behavior and are expected to take appropriate and fair corrective action in
44
+ response to any instances of unacceptable behavior.
45
+
46
+ Project maintainers have the right and responsibility to remove, edit, or reject
47
+ comments, commits, code, wiki edits, issues, and other contributions that are
48
+ not aligned to this Code of Conduct, or to ban temporarily or permanently any
49
+ contributor for other behaviors that they deem inappropriate, threatening,
50
+ offensive, or harmful.
51
+
52
+ ## Scope
53
+
54
+ This Code of Conduct applies both within project spaces and in public spaces
55
+ when an individual is representing the project or its community. Examples of
56
+ representing a project or community include using an official project e-mail
57
+ address, posting via an official social media account, or acting as an appointed
58
+ representative at an online or offline event. Representation of a project may be
59
+ further defined and clarified by project maintainers.
60
+
61
+
62
+ ## Conflict Resolution
63
+
64
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at openstef@lfenergy.org. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
65
+
66
+ Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project’s leadership.
67
+
68
+ ## Attribution
69
+
70
+ This Code of Conduct is adapted from the Contributor Covenant, version 1.4,
71
+ available at
72
+ https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
@@ -0,0 +1,39 @@
1
+ <!--
2
+ SPDX-FileCopyrightText: 2025 Contributors to the OpenSTEF project <openstef@lfenergy.org>
3
+
4
+ SPDX-License-Identifier: MPL-2.0
5
+ -->
6
+
7
+ # Contributing to OpenSTEF
8
+
9
+ Thank you for your interest in contributing to OpenSTEF! 🚀
10
+
11
+ ## Quick Start
12
+
13
+ 1. **Read our contributing guide**: [openstef.github.io/openstef/contribute](https://openstef.github.io/openstef/contribute/index.html)
14
+ 2. **Install dependencies**: `uv sync --group dev`
15
+ 3. **Make your changes** and ensure all checks pass: `uv run poe all --check`
16
+ 4. **Submit a pull request**
17
+
18
+ ## Documentation
19
+
20
+ For information about:
21
+
22
+ - 🛠️ **Development setup** - Environment setup with uv and modern Python tools
23
+ - 🔄 **Development workflow** - Branch naming, commit messages, and PR process
24
+ - 📝 **Documentation guidelines** - Writing docs and examples
25
+ - 🧪 **Testing standards** - Writing and running tests
26
+ - 📋 **Style guide** - Code formatting and quality standards
27
+
28
+ **Visit our full contributing guide: [openstef.github.io/openstef/contribute](https://openstef.github.io/openstef/contribute/index.html)**
29
+
30
+ ## Getting Help
31
+
32
+ - 💬 **Slack**: [LF Energy workspace](https://slack.lfenergy.org/) (#openstef channel)
33
+ - 🐛 **Issues**: [GitHub Issues](https://github.com/OpenSTEF/openstef/issues)
34
+ - 📧 **Email**: openstef@lfenergy.org
35
+ - 📖 **Support**: [Support page](https://openstef.github.io/openstef/project/support.html)
36
+
37
+ ## Good First Issues
38
+
39
+ New contributors should look for [`good first issue`](https://github.com/OpenSTEF/openstef/labels/good%20first%20issue) labels!
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to help us improve
4
+ title: ''
5
+ labels: ''
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Describe the bug**
11
+ A clear and concise description of what the bug is.
12
+
13
+ **To Reproduce**
14
+ Steps to reproduce the behavior:
15
+ 1. Go to '...'
16
+ 2. Click on '....'
17
+
18
+ **Expected behavior**
19
+ A clear and concise description of what you expected to happen.
20
+
21
+ **Screenshots**
22
+ If applicable, add screenshots to help explain your problem.
23
+
24
+ **Desktop (please complete the following information):**
25
+ - OS: [e.g. iOS]
26
+ - Browser [e.g. chrome, safari]
27
+ - Version [e.g. 22]
28
+
29
+
30
+ **Additional context**
31
+ Add any other context about the problem here.
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an idea for this project
4
+ title: ''
5
+ labels: ''
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Is your feature request related to a problem? Please describe.**
11
+ A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12
+
13
+ **Describe the solution you'd like**
14
+ A clear and concise description of what you want to happen.
15
+
16
+ **Describe alternatives you've considered**
17
+ A clear and concise description of any alternative solutions or features you've considered.
18
+
19
+ **Additional context**
20
+ Add any other context or screenshots about the feature request here.
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: OpenSTEF 4.0 Project Story
3
+ about: Describe this issue template's purpose here.
4
+ title: "[OpenSTEF 4.0] "
5
+ labels: OpenSTEF 4.0
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ As
11
+ I want to
12
+ So that I
13
+
14
+ 🌍 Background
15
+
16
+ > [!IMPORTANT]
17
+ > Changes should be done by forking [OpenSTEF 4.0.0 tracking branch](https://github.com/OpenSTEF/openstef/tree/release/v4.0.0) (`release/v4.0.0`) and then make a PR back onto `release/v4.0.0` branch.
18
+ > Please read the [contributing guide](https://openstef.github.io/openstef/v4/contribute/index.html) before you start.
19
+
20
+ ❗Priority (What if we don't do this?/Are there any deadlines? etc.)
21
+
22
+ Definition of Done:
23
+
24
+ ✅ Acceptance criteria
25
+
26
+ - [ ]
27
+
28
+ 📄 Documentation criteria:
29
+
30
+ Interfaces with other products and services
31
+
32
+ Update relevant confluence pages
33
+
34
+ 🧪 Test criteria:
35
+
36
+ Unit tests written and passed
37
+
38
+ ⌛ Dependencies:
39
+
40
+ N/A
41
+
42
+ 🚀 Releasing:
43
+
44
+ N/A
45
+
46
+ Other information:
47
+
@@ -0,0 +1,7 @@
1
+ # SPDX-FileCopyrightText: 2017-2025 Contributors to the OpenSTEF project <openstef@lfenergy.org>
2
+ #
3
+ # SPDX-License-Identifier: MPL-2.0
4
+ # config of action in ./workflows/...
5
+ feature: ['feature*', 'feat*']
6
+ fix: ['fix*','bugfix*','hotfix*', 'bug*']
7
+ chore: ['chore*', 'doc*']
@@ -0,0 +1,68 @@
1
+ # SPDX-FileCopyrightText: 2025 Contributors to the OpenSTEF project <openstef@lfenergy.org>
2
+ #
3
+ # SPDX-License-Identifier: MPL-2.0
4
+
5
+ name: Quality Check
6
+ on:
7
+ workflow_call:
8
+ inputs:
9
+ # _SKIP*: sometimes you want to quickly test something, without having the whole suite kicking in.
10
+ # This is a lazy way to switch on and off steps. But never set it to true in main.
11
+ _SKIP_QUALITY:
12
+ type: boolean
13
+ default: false
14
+ description: for debug purposes only - if true skip all quality checks.
15
+
16
+ jobs:
17
+ builder:
18
+ name: Quality Checks
19
+ # Avoid duplicate runs: run on push (same-repo branches) OR on pull_request only if from a fork
20
+ runs-on: ubuntu-latest
21
+ steps:
22
+ - name: Checkout # Must be done before using composite actions
23
+ uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
24
+ with:
25
+ show-progress: false # very verbose for not much
26
+ - name: Install uv
27
+ uses: astral-sh/setup-uv@d0d8abe699bfb85fec6de9f7adb5ae17292296ff # v6
28
+ # uv is needed for qa and deploy, so is kinda always needed. No need to skip it.
29
+ with:
30
+ activate-environment: true
31
+ enable-cache: true
32
+ - name: Install dependencies
33
+ if: ${{ always() }}
34
+ run: uv sync --frozen --no-install-project --all-groups --all-extras --all-packages
35
+
36
+ # Run quality checks
37
+ - name: reuse
38
+ if: ${{ ! inputs._SKIP_QUALITY && always() }}
39
+ run: poe reuse
40
+ - name: licensecheck
41
+ if: ${{ ! inputs._SKIP_QUALITY && always() }}
42
+ run: poe licensecheck --check
43
+ - name: lint
44
+ if: ${{ ! inputs._SKIP_QUALITY && always() }}
45
+ run: poe lint --check
46
+ - name: format
47
+ if: ${{ ! inputs._SKIP_QUALITY && always() }}
48
+ run: poe format --check
49
+ - name: format-pyproject
50
+ if: ${{ ! inputs._SKIP_QUALITY && always() }}
51
+ run: poe format-pyproject --check
52
+ - name: typing
53
+ if: ${{ ! inputs._SKIP_QUALITY && always() }}
54
+ run: poe type
55
+ - name: tests
56
+ if: ${{ ! inputs._SKIP_QUALITY && always() }}
57
+ run: poe tests
58
+ - name: doctests
59
+ if: ${{ ! inputs._SKIP_QUALITY && always() }}
60
+ run: poe doctests
61
+ - name: notebooks-check
62
+ if: ${{ ! inputs._SKIP_QUALITY && always() }}
63
+ run: poe notebooks-check
64
+
65
+ - name: Stop if any quality step failed
66
+ # All tests are run with always() not to stop on the first error. This step makes the workflow fail if any quality step failed.
67
+ if: ${{ failure() }}
68
+ run: exit 1
@@ -0,0 +1,21 @@
1
+ # SPDX-FileCopyrightText: 2025 Contributors to the OpenSTEF project <openstef@lfenergy.org>
2
+ # SPDX-License-Identifier: MPL-2.0
3
+
4
+ name: Quality Check
5
+ concurrency:
6
+ group: ${{ github.workflow }}-${{ github.ref }}
7
+ cancel-in-progress: true
8
+
9
+ on:
10
+ push:
11
+ branches: ['main']
12
+ pull_request:
13
+ types: [opened, synchronize, reopened, closed]
14
+
15
+ permissions:
16
+ contents: read
17
+
18
+ jobs:
19
+ quality:
20
+ name: Quality Checks
21
+ uses: ./.github/workflows/_job_quality_check.yaml
@@ -0,0 +1,41 @@
1
+ # SPDX-FileCopyrightText: 2017-2025 Contributors to the OpenSTEF project <openstef@lfenergy.org>
2
+ #
3
+ # SPDX-License-Identifier: MPL-2.0
4
+
5
+ name: Validate citation
6
+
7
+ on:
8
+ # Run pipeline on push event of main branch, or when CITATIONS path has changed
9
+ push:
10
+ branches:
11
+ - main
12
+ paths:
13
+ - CITATION.cff
14
+ - .github/workflows/citations.yml
15
+ pull_request:
16
+ paths:
17
+ - CITATION.cff
18
+ - .github/workflows/citations.yml
19
+ # Run pipeline from another workflow
20
+ workflow_call:
21
+ # Run this workflow manually from the Actions tab
22
+ workflow_dispatch:
23
+
24
+ concurrency:
25
+ group: ${{ github.workflow }}-${{ github.ref }}-citations
26
+ cancel-in-progress: true
27
+
28
+ permissions:
29
+ contents: read
30
+
31
+ jobs:
32
+ validate-citations:
33
+ runs-on: ubuntu-24.04
34
+ steps:
35
+ - name: checkout
36
+ uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
37
+ - name: Install R
38
+ run: |
39
+ sudo apt-get update && sudo apt-get install -y r-base
40
+ - name: Validate CITATION.cff
41
+ uses: dieghernan/cff-validator@114aae53e1850c3757733beb60036941900e3dc3 # v4
@@ -0,0 +1,89 @@
1
+ # SPDX-FileCopyrightText: 2025 Contributors to the OpenSTEF project <openstef@lfenergy.org>
2
+ #
3
+ # SPDX-License-Identifier: MPL-2.0
4
+
5
+ name: Deploy Documentation
6
+
7
+ on:
8
+ push:
9
+ branches: [ main ]
10
+ workflow_dispatch:
11
+
12
+ permissions:
13
+ contents: write
14
+ pages: write
15
+ id-token: write
16
+
17
+ jobs:
18
+ deploy-docs:
19
+ name: Build and Deploy Documentation
20
+ runs-on: ubuntu-latest
21
+
22
+ steps:
23
+ - name: Checkout main
24
+ uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
25
+ with:
26
+ show-progress: false
27
+
28
+ - name: Install uv
29
+ uses: astral-sh/setup-uv@d0d8abe699bfb85fec6de9f7adb5ae17292296ff # v6
30
+ with:
31
+ activate-environment: true
32
+ enable-cache: true
33
+
34
+ - name: Install dependencies
35
+ run: uv sync --frozen --no-install-project --all-groups --all-extras
36
+
37
+ - name: Build Sphinx documentation
38
+ run: poe docs
39
+
40
+ - name: Checkout gh-pages branch for deployment
41
+ uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
42
+ with:
43
+ ref: gh-pages
44
+ path: gh-pages-repo
45
+ show-progress: false
46
+
47
+ - name: Update documentation
48
+ run: |
49
+ # One-shot: archive the existing v3 site into /v3/ if not already done.
50
+ # Detected by absence of /v3/ and presence of index.html at the root.
51
+ if [ ! -d gh-pages-repo/v3 ] && [ -f gh-pages-repo/index.html ]; then
52
+ echo "Archiving existing v3 documentation to gh-pages-repo/v3/"
53
+ mkdir -p gh-pages-repo/v3
54
+ find gh-pages-repo -maxdepth 1 -mindepth 1 \
55
+ ! -name v3 ! -name v4 ! -name .git ! -name .nojekyll \
56
+ -exec mv {} gh-pages-repo/v3/ \;
57
+ fi
58
+
59
+ # Clear root (but preserve /v3/, /v4/, .git, .nojekyll) and deploy.
60
+ find gh-pages-repo -maxdepth 1 -mindepth 1 \
61
+ ! -name v3 ! -name v4 ! -name .git ! -name .nojekyll \
62
+ -exec rm -rf {} +
63
+ cp -r docs/build/html/. gh-pages-repo/
64
+
65
+ - name: Configure git, stage, and commit changes
66
+ run: |
67
+ cd gh-pages-repo
68
+
69
+ # Configure git
70
+ git config --local user.email "action@github.com"
71
+ git config --local user.name "GitHub Action"
72
+
73
+ # Stage changes
74
+ git add -A
75
+
76
+ # Check if there are staged changes and commit if so
77
+ if ! git diff --staged --quiet; then
78
+ git commit -m "Deploy documentation from $(echo $GITHUB_SHA | cut -c1-7)"
79
+ echo "✅ Changes committed successfully"
80
+ else
81
+ echo "ℹ️ No changes to commit"
82
+ fi
83
+
84
+ - name: Push changes to gh-pages
85
+ uses: ad-m/github-push-action@77c5b412c50b723d2a4fbc6d71fb5723bcd439aa # v1
86
+ with:
87
+ github_token: ${{ secrets.GITHUB_TOKEN }}
88
+ branch: gh-pages
89
+ directory: gh-pages-repo
@@ -0,0 +1,21 @@
1
+ # SPDX-FileCopyrightText: 2017-2022 Contributors to the OpenSTEF project <openstef@lfenergy.org>
2
+ #
3
+ # SPDX-License-Identifier: MPL-2.0
4
+ # Automatically label PRs, config in ../pr-labler.yml
5
+ name: PR Labeler
6
+ on:
7
+ pull_request:
8
+ types: [opened]
9
+
10
+ jobs:
11
+ pr-labeler:
12
+ permissions:
13
+ contents: read # To read config file
14
+ pull-requests: write # To add labels
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - uses: TimonVS/pr-labeler-action@f9c084306ce8b3f488a8f3ee1ccedc6da131d1af # v5
18
+ with:
19
+ configuration-path: .github/pr-labeler.yml
20
+ env:
21
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,65 @@
1
+ # SPDX-FileCopyrightText: 2025 Contributors to the OpenSTEF project <openstef@lfenergy.org>
2
+ # SPDX-License-Identifier: MPL-2.0
3
+
4
+ name: Dev Release
5
+ concurrency:
6
+ group: ${{ github.workflow }}-${{ github.ref }}
7
+ cancel-in-progress: true
8
+
9
+ on:
10
+ push:
11
+ branches: ['main']
12
+
13
+ permissions:
14
+ contents: read
15
+
16
+ jobs:
17
+ quality:
18
+ name: Quality Checks
19
+ uses: ./.github/workflows/_job_quality_check.yaml
20
+
21
+ deploy-dev:
22
+ name: Release Dev Version
23
+ needs: quality
24
+ runs-on: ubuntu-latest
25
+ if: ${{ needs.quality.result == 'success' }}
26
+ permissions:
27
+ # IMPORTANT: this permission is mandatory for trusted publishing
28
+ id-token: write
29
+ steps:
30
+ - name: Checkout
31
+ uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
32
+ with:
33
+ fetch-depth: 0
34
+ show-progress: false
35
+ - name: Install uv
36
+ uses: astral-sh/setup-uv@d0d8abe699bfb85fec6de9f7adb5ae17292296ff # v6
37
+ with:
38
+ activate-environment: true
39
+ enable-cache: true
40
+ - name: Install build dependencies
41
+ run: uv sync --frozen --no-install-project --all-groups --all-extras
42
+
43
+ # Start of release steps
44
+ - name: Compute ephemeral dev version
45
+ id: ver
46
+ run: |
47
+ set -euo pipefail
48
+ BASE_VERSION="4.0.0"
49
+ TS=$(date -u +%Y%m%d%H%M)
50
+ HASH=$(git rev-parse --short=8 HEAD)
51
+ VERSION="${BASE_VERSION}.dev${TS}+g${HASH}"
52
+ echo "Computed version: $VERSION"
53
+ echo "version=${VERSION}" >> "$GITHUB_OUTPUT"
54
+ - name: Apply version
55
+ run: poe version --version '${{ steps.ver.outputs.version }}'
56
+ - name: Build all packages
57
+ run: poe build
58
+ - name: Publish packages
59
+ if: false # Set to true once mvp is ready.
60
+ env:
61
+ UV_PUBLISH_USERNAME: ${{ secrets.PYPI_USERNAME }}
62
+ UV_PUBLISH_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
63
+ run: uv publish
64
+ - name: Summary
65
+ run: echo "Published version ${{ steps.ver.outputs.version }}"
@@ -0,0 +1,83 @@
1
+ # SPDX-FileCopyrightText: 2025 Contributors to the OpenSTEF project <openstef@lfenergy.org>
2
+ # SPDX-License-Identifier: MPL-2.0
3
+
4
+ name: Release V4
5
+ concurrency:
6
+ group: ${{ github.workflow }}-${{ github.ref }}
7
+ cancel-in-progress: true
8
+
9
+ on:
10
+ release:
11
+ types: [published]
12
+ workflow_dispatch:
13
+ inputs:
14
+ version:
15
+ description: 'Version tag to release (e.g., v4.1.0 or 4.1.0). Prefixing with v is optional.'
16
+ required: true
17
+ default: ""
18
+
19
+ permissions:
20
+ contents: read
21
+
22
+ jobs:
23
+ quality:
24
+ if: ${{ startsWith(github.ref, 'refs/tags/v4.') || (github.event_name == 'workflow_dispatch' && startsWith(github.event.inputs.version, 'v4')) }}
25
+ name: Quality Checks
26
+ uses: ./.github/workflows/_job_quality_check.yaml
27
+
28
+ release-pypi:
29
+ name: Release PyPI Package
30
+ needs: quality
31
+ runs-on: ubuntu-latest
32
+ environment: release
33
+ if: ${{ (startsWith(github.ref, 'refs/tags/v4.') || (github.event_name == 'workflow_dispatch' && startsWith(github.event.inputs.version, 'v4'))) && needs.quality.result == 'success' }}
34
+ permissions:
35
+ # IMPORTANT: this permission is mandatory for trusted publishing
36
+ id-token: write
37
+ steps:
38
+ - name: Checkout
39
+ uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
40
+ with:
41
+ fetch-depth: 0
42
+ show-progress: false
43
+ - name: Install uv
44
+ uses: astral-sh/setup-uv@d0d8abe699bfb85fec6de9f7adb5ae17292296ff # v6
45
+ with:
46
+ activate-environment: true
47
+ enable-cache: true
48
+ - name: Install build dependencies
49
+ run: uv sync --frozen --no-install-project --all-groups --all-extras
50
+
51
+ # Start of release steps
52
+ - name: Set version from release
53
+ id: ver
54
+ env:
55
+ RELEASE_TAG: ${{ github.event.release.tag_name }}
56
+ INPUT_VERSION: ${{ github.event.inputs.version }}
57
+ run: |
58
+ # Prefer release payload tag_name, otherwise fallback to the workflow_dispatch input
59
+ if [ -n "$RELEASE_TAG" ]; then
60
+ VERSION="$RELEASE_TAG"
61
+ elif [ -n "$INPUT_VERSION" ]; then
62
+ VERSION="$INPUT_VERSION"
63
+ else
64
+ # As a last-resort fallback, try to get the ref tag from GITHUB_REF
65
+ if [[ "$GITHUB_REF" == refs/tags/* ]]; then
66
+ VERSION="${GITHUB_REF#refs/tags/}"
67
+ else
68
+ echo "No version provided via release or workflow input, aborting"
69
+ exit 1
70
+ fi
71
+ fi
72
+ # Remove leading 'v' if present
73
+ VERSION="${VERSION#v}"
74
+ echo "Release version: $VERSION"
75
+ echo "version=${VERSION}" >> "$GITHUB_OUTPUT"
76
+ - name: Apply version
77
+ run: poe version --version "${{ steps.ver.outputs.version }}"
78
+ - name: Build all packages
79
+ run: poe build
80
+ - name: Publish packages
81
+ run: uv publish --trusted-publishing always
82
+ - name: Summary
83
+ run: echo "Published version ${{ steps.ver.outputs.version }}"