openstef 4.0.1__tar.gz → 4.1.1.dev0__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 (629) hide show
  1. openstef-4.1.1.dev0/.github/ISSUE_TEMPLATE/openstef-project-story.md +38 -0
  2. {openstef-4.0.1 → openstef-4.1.1.dev0}/.github/dependabot.yml +12 -0
  3. {openstef-4.0.1 → openstef-4.1.1.dev0}/.github/workflows/_job_quality_check.yaml +18 -5
  4. {openstef-4.0.1 → openstef-4.1.1.dev0}/.github/workflows/check.yaml +2 -1
  5. {openstef-4.0.1 → openstef-4.1.1.dev0}/.github/workflows/citations.yaml +1 -1
  6. openstef-4.1.1.dev0/.github/workflows/docs-check.yaml +62 -0
  7. {openstef-4.0.1 → openstef-4.1.1.dev0}/.github/workflows/docs.yaml +4 -4
  8. {openstef-4.0.1 → openstef-4.1.1.dev0}/.github/workflows/release-v4.yaml +18 -5
  9. {openstef-4.0.1 → openstef-4.1.1.dev0}/.gitignore +5 -4
  10. openstef-4.0.1/README.md → openstef-4.1.1.dev0/PKG-INFO +81 -10
  11. openstef-4.0.1/PKG-INFO → openstef-4.1.1.dev0/README.md +41 -47
  12. openstef-4.1.1.dev0/SECURITY.md +57 -0
  13. openstef-4.1.1.dev0/docs/pyproject.toml +59 -0
  14. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/api/beam.rst +3 -1
  15. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/api/index.rst +1 -1
  16. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/conf.py +30 -1
  17. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/contribute/code_of_conduct.rst +2 -2
  18. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/contribute/code_style_guide.rst +43 -5
  19. openstef-4.1.1.dev0/docs/source/contribute/contributing_guide.rst +13 -0
  20. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/contribute/development_setup.rst +24 -10
  21. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/contribute/development_workflow.rst +3 -2
  22. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/contribute/index.rst +8 -8
  23. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/examples.rst +5 -2
  24. openstef-4.1.1.dev0/docs/source/images/guides/liander2024_rcrps_by_group.png +0 -0
  25. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/user_guide/concepts/models.rst +5 -0
  26. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/user_guide/external_resources.rst +0 -4
  27. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/user_guide/getting_started/installation.rst +90 -29
  28. openstef-4.1.1.dev0/docs/source/user_guide/guides/benchmark_results.rst +317 -0
  29. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/user_guide/guides/deployment.rst +17 -0
  30. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/user_guide/guides/index.rst +7 -0
  31. openstef-4.1.1.dev0/docs/sync_sources.py +171 -0
  32. openstef-4.1.1.dev0/examples/README.md +21 -0
  33. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/benchmarks/README.md +1 -1
  34. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/benchmarks/custom/README.md +1 -1
  35. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/benchmarks/custom/compare_benchmark_runs.ipynb +2 -1
  36. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/benchmarks/custom/compare_benchmark_runs.py +1 -1
  37. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/benchmarks/custom/custom_benchmark.ipynb +3 -2
  38. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/benchmarks/custom/custom_benchmark.py +2 -2
  39. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/benchmarks/custom/custom_forecaster.ipynb +2 -1
  40. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/benchmarks/custom/custom_forecaster.py +1 -1
  41. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/benchmarks/custom/evaluate_existing_forecasts.ipynb +2 -1
  42. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/benchmarks/custom/evaluate_existing_forecasts.py +1 -1
  43. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/benchmarks/custom/run_custom_benchmark.ipynb +2 -1
  44. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/benchmarks/custom/run_custom_benchmark.py +1 -1
  45. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/benchmarks/custom/run_liander2024_benchmark.ipynb +2 -1
  46. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/benchmarks/custom/run_liander2024_benchmark.py +1 -1
  47. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/benchmarks/liander2024/compare_benchmark_runs.ipynb +2 -1
  48. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/benchmarks/liander2024/compare_benchmark_runs.py +1 -1
  49. openstef-4.1.1.dev0/examples/benchmarks/liander2024/run_chronos2_benchmark.ipynb +296 -0
  50. openstef-4.1.1.dev0/examples/benchmarks/liander2024/run_chronos2_benchmark.py +203 -0
  51. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/benchmarks/liander2024/run_ensemble_benchmark.ipynb +2 -1
  52. openstef-4.1.1.dev0/examples/benchmarks/liander2024/run_ensemble_benchmark.ipynb.license +3 -0
  53. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/benchmarks/liander2024/run_ensemble_benchmark.py +1 -1
  54. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/benchmarks/liander2024/run_xgboost_gblinear_benchmark.ipynb +2 -1
  55. openstef-4.1.1.dev0/examples/benchmarks/liander2024/run_xgboost_gblinear_benchmark.ipynb.license +3 -0
  56. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/benchmarks/liander2024/run_xgboost_gblinear_benchmark.py +1 -1
  57. openstef-4.1.1.dev0/examples/deployment/.gitignore +8 -0
  58. openstef-4.1.1.dev0/examples/deployment/README.md +90 -0
  59. openstef-4.1.1.dev0/examples/deployment/poe_tasks.toml +70 -0
  60. openstef-4.1.1.dev0/examples/deployment/pyproject.toml +43 -0
  61. openstef-4.1.1.dev0/examples/deployment/src/airflow_app/__init__.py +3 -0
  62. openstef-4.1.1.dev0/examples/deployment/src/airflow_app/dags/openstef_forecast.py +50 -0
  63. openstef-4.1.1.dev0/examples/deployment/src/airflow_app/dags/openstef_train.py +45 -0
  64. openstef-4.1.1.dev0/examples/deployment/src/celery_app/__init__.py +3 -0
  65. openstef-4.1.1.dev0/examples/deployment/src/celery_app/app.py +62 -0
  66. openstef-4.1.1.dev0/examples/deployment/src/celery_app/run.py +41 -0
  67. openstef-4.1.1.dev0/examples/deployment/src/celery_app/tasks.py +56 -0
  68. openstef-4.1.1.dev0/examples/deployment/src/common/__init__.py +3 -0
  69. openstef-4.1.1.dev0/examples/deployment/src/common/config.py +113 -0
  70. openstef-4.1.1.dev0/examples/deployment/src/common/pipeline.py +75 -0
  71. openstef-4.1.1.dev0/examples/deployment/src/common/services.py +70 -0
  72. openstef-4.1.1.dev0/examples/deployment/src/dagster_app/__init__.py +3 -0
  73. openstef-4.1.1.dev0/examples/deployment/src/dagster_app/definitions.py +69 -0
  74. openstef-4.1.1.dev0/examples/deployment/src/dagster_app/run.py +33 -0
  75. openstef-4.1.1.dev0/examples/deployment/tests/test_deployment.py +68 -0
  76. openstef-4.1.1.dev0/examples/pyproject.toml +35 -0
  77. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/tutorials/backtesting_quickstart.ipynb +2 -1
  78. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/tutorials/backtesting_quickstart.py +1 -1
  79. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/tutorials/custom_pipeline.ipynb +2 -1
  80. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/tutorials/custom_pipeline.py +1 -1
  81. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/tutorials/datasets.py +14 -12
  82. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/tutorials/ensemble_forecasting.ipynb +2 -1
  83. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/tutorials/ensemble_forecasting.py +1 -1
  84. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/tutorials/feature_engineering.ipynb +2 -1
  85. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/tutorials/feature_engineering.py +1 -1
  86. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/tutorials/forecasting_quickstart.ipynb +2 -1
  87. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/tutorials/forecasting_quickstart.py +1 -1
  88. openstef-4.1.1.dev0/examples/tutorials/foundation_model_forecasting.ipynb +472 -0
  89. openstef-4.1.1.dev0/examples/tutorials/foundation_model_forecasting.py +277 -0
  90. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/tutorials/hyperparameter_tuning_with_optuna.ipynb +3 -2
  91. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/tutorials/hyperparameter_tuning_with_optuna.py +2 -2
  92. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/tutorials/model_explainability.ipynb +2 -1
  93. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/tutorials/model_explainability.py +1 -1
  94. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/tutorials/quantile_calibration.ipynb +24 -19
  95. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/tutorials/quantile_calibration.py +23 -19
  96. openstef-4.1.1.dev0/jupytext.toml +7 -0
  97. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/pyproject.toml +10 -15
  98. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/analysis/models/visualization_aggregation.py +2 -0
  99. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/analysis/models/visualization_output.py +1 -1
  100. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/analysis/plots/forecast_time_series_plotter.py +99 -53
  101. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/analysis/plots/grouped_target_metric_plotter.py +10 -8
  102. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/analysis/plots/precision_recall_curve_plotter.py +10 -8
  103. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/analysis/plots/quantile_calibration_box_plotter.py +12 -10
  104. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/analysis/plots/quantile_probability_plotter.py +10 -8
  105. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/analysis/plots/summary_table_plotter.py +14 -12
  106. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/analysis/plots/windowed_metric_plotter.py +9 -7
  107. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/analysis/visualizations/summary_table_visualization.py +33 -24
  108. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/backtesting/backtest_event_generator.py +1 -1
  109. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/backtesting/backtest_forecaster/dummy_forecaster.py +3 -0
  110. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/backtesting/backtest_forecaster/mixins.py +1 -1
  111. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/benchmarking/benchmarks/liander2024.py +1 -1
  112. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/benchmarking/storage/s3_storage.py +2 -2
  113. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/benchmarking/target_provider.py +6 -4
  114. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/evaluation/evaluation_pipeline.py +17 -15
  115. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/evaluation/metric_providers.py +15 -11
  116. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/evaluation/models/window.py +10 -6
  117. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/evaluation/window_iterators.py +2 -2
  118. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/metrics/__init__.py +2 -0
  119. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/metrics/metrics_deterministic.py +51 -13
  120. openstef-4.1.1.dev0/packages/openstef-beam/src/openstef_beam/metrics/metrics_helpers.py +47 -0
  121. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/metrics/metrics_probabilistic.py +43 -37
  122. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/analysis/plots/test_forecast_time_series_plotter.py +104 -26
  123. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/analysis/plots/test_grouped_target_metric_plotter.py +3 -3
  124. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/analysis/plots/test_precision_recall_curve_plotter.py +2 -2
  125. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/analysis/plots/test_quantile_calibration_box_plotter.py +15 -15
  126. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/analysis/plots/test_quantile_probability_plotter.py +3 -3
  127. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/analysis/plots/test_windowed_metric_plotter.py +3 -3
  128. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/analysis/test_analysis_pipeline.py +3 -1
  129. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/analysis/visualizations/conftest.py +6 -4
  130. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/analysis/visualizations/test_quantile_calibration_box_visualization.py +73 -65
  131. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/analysis/visualizations/test_quantile_probability_visualization.py +42 -36
  132. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/analysis/visualizations/test_summary_table_visualization.py +1 -1
  133. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/analysis/visualizations/test_timeseries_visualization.py +18 -12
  134. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/analysis/visualizations/test_windowed_metric_visualization.py +7 -7
  135. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/backtesting/test_backtest_pipeline.py +4 -1
  136. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/backtesting/test_batch_prediction.py +4 -0
  137. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/benchmarking/baselines/test_openstef4.py +16 -7
  138. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/benchmarking/storage/test_local_storage.py +3 -2
  139. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/benchmarking/storage/test_s3_storage.py +12 -11
  140. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/benchmarking/test_benchmark_pipeline.py +22 -17
  141. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/benchmarking/test_target_provider.py +7 -6
  142. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/metrics/test_metrics_deterministic.py +33 -0
  143. openstef-4.1.1.dev0/packages/openstef-beam/tests/unit/metrics/test_metrics_helpers.py +31 -0
  144. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/metrics/test_metrics_probabilistic.py +34 -12
  145. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/utils/mocks.py +3 -0
  146. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/pyproject.toml +4 -8
  147. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/src/openstef_core/base_model.py +5 -2
  148. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/src/openstef_core/datasets/timeseries_dataset.py +6 -6
  149. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/src/openstef_core/datasets/validated_datasets.py +8 -6
  150. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/src/openstef_core/datasets/validation.py +1 -3
  151. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/src/openstef_core/datasets/versioned_timeseries_dataset.py +3 -6
  152. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/src/openstef_core/exceptions.py +13 -8
  153. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/src/openstef_core/mixins/predictor.py +1 -1
  154. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/src/openstef_core/mixins/stateful.py +4 -3
  155. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/src/openstef_core/mixins/transform.py +1 -0
  156. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/src/openstef_core/testing.py +6 -6
  157. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/src/openstef_core/types.py +15 -13
  158. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/src/openstef_core/utils/__init__.py +6 -0
  159. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/src/openstef_core/utils/multiprocessing.py +2 -4
  160. openstef-4.1.1.dev0/packages/openstef-core/src/openstef_core/utils/numpy.py +105 -0
  161. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/src/openstef_core/utils/pandas.py +4 -4
  162. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/tests/unit/datasets/test_mixins.py +14 -10
  163. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/tests/unit/datasets/test_timeseries_dataset.py +45 -35
  164. openstef-4.1.1.dev0/packages/openstef-core/tests/unit/datasets/test_validated_datasets.py +382 -0
  165. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/tests/unit/datasets/test_versioned_timeseries_dataset.py +135 -65
  166. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/tests/unit/mixins/test_stateful.py +1 -1
  167. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/tests/unit/mixins/test_transform.py +1 -1
  168. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/tests/unit/test_hyperparams_tuning.py +13 -13
  169. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/tests/unit/test_param_ranges.py +1 -1
  170. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/tests/unit/test_types.py +51 -41
  171. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/tests/unit/utils/test_datetime.py +1 -1
  172. openstef-4.1.1.dev0/packages/openstef-core/tests/unit/utils/test_numpy.py +179 -0
  173. openstef-4.1.1.dev0/packages/openstef-foundation-models/README.md +56 -0
  174. openstef-4.1.1.dev0/packages/openstef-foundation-models/pyproject.toml +75 -0
  175. openstef-4.1.1.dev0/packages/openstef-foundation-models/src/openstef_foundation_models/__init__.py +12 -0
  176. openstef-4.1.1.dev0/packages/openstef-foundation-models/src/openstef_foundation_models/inference/__init__.py +32 -0
  177. openstef-4.1.1.dev0/packages/openstef-foundation-models/src/openstef_foundation_models/inference/backend.py +43 -0
  178. openstef-4.1.1.dev0/packages/openstef-foundation-models/src/openstef_foundation_models/inference/onnx_backend.py +237 -0
  179. openstef-4.1.1.dev0/packages/openstef-foundation-models/src/openstef_foundation_models/inference/provider_selection.py +142 -0
  180. openstef-4.1.1.dev0/packages/openstef-foundation-models/src/openstef_foundation_models/inference/providers.py +158 -0
  181. openstef-4.1.1.dev0/packages/openstef-foundation-models/src/openstef_foundation_models/integrations/__init__.py +5 -0
  182. openstef-4.1.1.dev0/packages/openstef-foundation-models/src/openstef_foundation_models/integrations/beam.py +203 -0
  183. openstef-4.1.1.dev0/packages/openstef-foundation-models/src/openstef_foundation_models/models/__init__.py +17 -0
  184. openstef-4.1.1.dev0/packages/openstef-foundation-models/src/openstef_foundation_models/models/catalog.py +105 -0
  185. openstef-4.1.1.dev0/packages/openstef-foundation-models/src/openstef_foundation_models/models/checkpoint.py +212 -0
  186. openstef-4.1.1.dev0/packages/openstef-foundation-models/src/openstef_foundation_models/models/forecasting/__init__.py +21 -0
  187. openstef-4.1.1.dev0/packages/openstef-foundation-models/src/openstef_foundation_models/models/forecasting/chronos2_forecaster.py +283 -0
  188. openstef-4.1.1.dev0/packages/openstef-foundation-models/src/openstef_foundation_models/presets/__init__.py +23 -0
  189. openstef-4.1.1.dev0/packages/openstef-foundation-models/src/openstef_foundation_models/presets/forecasting_workflow.py +205 -0
  190. openstef-4.1.1.dev0/packages/openstef-foundation-models/tests/integration/conftest.py +60 -0
  191. openstef-4.1.1.dev0/packages/openstef-foundation-models/tests/integration/test_beam_integration.py +77 -0
  192. openstef-4.1.1.dev0/packages/openstef-foundation-models/tests/integration/test_chronos2_onnx.py +218 -0
  193. openstef-4.1.1.dev0/packages/openstef-foundation-models/tests/unit/inference/test_onnx_backend.py +105 -0
  194. openstef-4.1.1.dev0/packages/openstef-foundation-models/tests/unit/inference/test_provider_selection.py +98 -0
  195. openstef-4.1.1.dev0/packages/openstef-foundation-models/tests/unit/inference/test_providers.py +49 -0
  196. openstef-4.1.1.dev0/packages/openstef-foundation-models/tests/unit/integrations/__init__.py +3 -0
  197. openstef-4.1.1.dev0/packages/openstef-foundation-models/tests/unit/integrations/test_beam.py +442 -0
  198. openstef-4.1.1.dev0/packages/openstef-foundation-models/tests/unit/models/__init__.py +3 -0
  199. openstef-4.1.1.dev0/packages/openstef-foundation-models/tests/unit/models/forecasting/__init__.py +3 -0
  200. openstef-4.1.1.dev0/packages/openstef-foundation-models/tests/unit/models/forecasting/test_chronos2_forecaster.py +521 -0
  201. openstef-4.1.1.dev0/packages/openstef-foundation-models/tests/unit/models/test_catalog.py +38 -0
  202. openstef-4.1.1.dev0/packages/openstef-foundation-models/tests/unit/presets/__init__.py +3 -0
  203. openstef-4.1.1.dev0/packages/openstef-foundation-models/tests/unit/presets/test_forecasting_workflow.py +196 -0
  204. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-meta/pyproject.toml +6 -10
  205. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-meta/src/openstef_meta/models/ensemble_forecasting_model.py +1 -1
  206. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-meta/src/openstef_meta/models/forecast_combiners/forecast_combiner.py +4 -1
  207. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-meta/src/openstef_meta/models/forecast_combiners/learned_weights_combiner.py +18 -15
  208. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-meta/src/openstef_meta/models/forecast_combiners/stacking_combiner.py +2 -1
  209. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-meta/src/openstef_meta/presets/forecasting_workflow.py +1 -1
  210. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-meta/tests/integration/test_ensemble_forecasting_model.py +9 -6
  211. openstef-4.1.1.dev0/packages/openstef-meta/tests/unit/integrations/__init__.py +3 -0
  212. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-meta/tests/unit/integrations/test_mlflow_storage_callback_ensemble.py +6 -5
  213. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-meta/tests/unit/models/forecast_combiners/conftest.py +14 -10
  214. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-meta/tests/unit/models/test_ensemble_forecasting_model.py +5 -1
  215. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-meta/tests/unit/utils/test_datasets.py +14 -10
  216. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/pyproject.toml +15 -12
  217. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/explainability/plotters/contributions_plotter.py +7 -7
  218. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/integrations/__init__.py +1 -1
  219. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/integrations/joblib/joblib_model_serializer.py +2 -2
  220. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/integrations/mlflow/mlflow_storage.py +8 -0
  221. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/integrations/mlflow/mlflow_storage_callback.py +5 -5
  222. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/integrations/optuna/tuner.py +5 -4
  223. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/models/component_splitting/constant_component_splitter.py +2 -1
  224. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/models/component_splitting/linear_component_splitter.py +2 -2
  225. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/models/forecasting/base_case_forecaster.py +2 -2
  226. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/models/forecasting/constant_quantile_forecaster.py +1 -1
  227. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/models/forecasting/gblinear_forecaster.py +3 -1
  228. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/models/forecasting/lgbm_forecaster.py +5 -3
  229. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/models/forecasting/lgbmlinear_forecaster.py +4 -3
  230. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/models/forecasting/median_forecaster.py +5 -7
  231. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/models/forecasting/xgboost_forecaster.py +3 -1
  232. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/models/forecasting_model.py +75 -6
  233. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/presets/forecasting_workflow.py +6 -4
  234. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/transforms/general/dimensionality_reducer.py +2 -2
  235. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/transforms/general/empty_feature_remover.py +2 -2
  236. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/transforms/general/imputer.py +1 -1
  237. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/transforms/general/nan_dropper.py +1 -1
  238. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/transforms/general/sample_weighter.py +1 -25
  239. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/transforms/general/scaler.py +1 -1
  240. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/transforms/general/shifter.py +2 -2
  241. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/transforms/postprocessing/confidence_interval_applicator.py +4 -4
  242. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/transforms/postprocessing/isotonic_quantile_calibrator.py +3 -3
  243. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/transforms/time_domain/cyclic_features_adder.py +1 -1
  244. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/transforms/time_domain/datetime_features_adder.py +15 -9
  245. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/transforms/time_domain/holiday_features_adder.py +7 -5
  246. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/transforms/time_domain/lags_adder.py +3 -12
  247. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/transforms/time_domain/rolling_aggregates_adder.py +7 -11
  248. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/transforms/time_domain/versioned_lags_adder.py +7 -3
  249. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/transforms/validation/flatline_checker.py +1 -1
  250. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/transforms/weather_domain/atmosphere_derived_features_adder.py +1 -1
  251. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/transforms/weather_domain/daylight_feature_adder.py +1 -1
  252. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/transforms/weather_domain/radiation_derived_features_adder.py +5 -5
  253. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/utils/data_split.py +5 -5
  254. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/utils/evaluation_functions.py +2 -2
  255. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/utils/feature_selection.py +1 -12
  256. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/utils/loss_functions.py +2 -2
  257. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/utils/multi_quantile_regressor.py +4 -4
  258. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/workflows/custom_forecasting_workflow.py +61 -0
  259. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/explainability/plotters/test_contributions_plotter.py +2 -2
  260. openstef-4.1.1.dev0/packages/openstef-models/tests/unit/integrations/mlflow/__init__.py +3 -0
  261. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/integrations/mlflow/test_mlflow_storage.py +29 -9
  262. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/integrations/mlflow/test_mlflow_storage_callback.py +6 -5
  263. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/integrations/optuna/test_tuner.py +11 -9
  264. openstef-4.1.1.dev0/packages/openstef-models/tests/unit/models/component_splitting/__init__.py +3 -0
  265. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/models/forecasting/test_base_case_forecaster.py +20 -0
  266. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/models/forecasting/test_constant_quantile_forecaster.py +26 -0
  267. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/models/forecasting/test_lgbm_forecaster.py +1 -1
  268. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/models/forecasting/test_lgbmlinear_forecaster.py +1 -1
  269. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/models/forecasting/test_median_forecaster.py +6 -6
  270. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/models/test_forecasting_model.py +163 -4
  271. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/transforms/general/test_imputer.py +1 -1
  272. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/transforms/general/test_outlier_handler.py +3 -2
  273. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/transforms/general/test_scaler.py +1 -1
  274. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/transforms/postprocessing/test_isotonic_quantile_calibrator.py +1 -1
  275. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/transforms/time_domain/test_datetime_features_adder.py +29 -0
  276. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/transforms/time_domain/test_rolling_aggregates_adder.py +42 -0
  277. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/transforms/time_domain/test_versioned_lags_adder.py +53 -43
  278. openstef-4.1.1.dev0/packages/openstef-models/tests/unit/utils/__init__.py +3 -0
  279. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/utils/test_data_split.py +1 -1
  280. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/utils/test_multi_quantile_regressor.py +2 -2
  281. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/workflows/callbacks/test_model_performance_callback.py +12 -6
  282. openstef-4.1.1.dev0/packages/openstef-models/tests/unit/workflows/test_custom_forecasting_workflow.py +134 -0
  283. openstef-4.1.1.dev0/poe_tasks.toml +190 -0
  284. openstef-4.1.1.dev0/pyproject.toml +258 -0
  285. openstef-4.1.1.dev0/ruff.toml +113 -0
  286. openstef-4.1.1.dev0/sonar-project.properties +43 -0
  287. openstef-4.1.1.dev0/uv.lock +7684 -0
  288. openstef-4.0.1/.github/CODE_OF_CONDUCT.md +0 -72
  289. openstef-4.0.1/.github/CONTRIBUTING.md +0 -39
  290. openstef-4.0.1/.github/ISSUE_TEMPLATE/openstef-4-0-project-story.md +0 -47
  291. openstef-4.0.1/.github/workflows/release-dev.yaml +0 -65
  292. openstef-4.0.1/docs/pyproject.toml +0 -48
  293. openstef-4.0.1/docs/source/contribute/contributing_guide.rst +0 -276
  294. openstef-4.0.1/docs/sync_sources.py +0 -65
  295. openstef-4.0.1/examples/README.md +0 -13
  296. openstef-4.0.1/examples/pyproject.toml +0 -28
  297. openstef-4.0.1/pyproject.toml +0 -441
  298. openstef-4.0.1/sonar-project.properties +0 -18
  299. openstef-4.0.1/uv.lock +0 -5691
  300. {openstef-4.0.1 → openstef-4.1.1.dev0}/.github/CODEOWNERS +0 -0
  301. {openstef-4.0.1 → openstef-4.1.1.dev0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  302. {openstef-4.0.1 → openstef-4.1.1.dev0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  303. {openstef-4.0.1 → openstef-4.1.1.dev0}/.github/pr-labeler.yml +0 -0
  304. {openstef-4.0.1 → openstef-4.1.1.dev0}/.github/workflows/pr-labeler.yaml +0 -0
  305. {openstef-4.0.1 → openstef-4.1.1.dev0}/.python-version +0 -0
  306. {openstef-4.0.1 → openstef-4.1.1.dev0}/CITATION.cff +0 -0
  307. {openstef-4.0.1 → openstef-4.1.1.dev0}/COMMITTERS.md +0 -0
  308. {openstef-4.0.1 → openstef-4.1.1.dev0}/LICENSE.md +0 -0
  309. {openstef-4.0.1 → openstef-4.1.1.dev0}/LICENSES/MPL-2.0.txt +0 -0
  310. {openstef-4.0.1 → openstef-4.1.1.dev0}/REUSE.toml +0 -0
  311. /openstef-4.0.1/THIRD_PARTY_LICENSES.md → /openstef-4.1.1.dev0/THIRD_PARTY_NOTICES.md +0 -0
  312. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/.gitkeep +0 -0
  313. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/README.md +0 -0
  314. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/autosummary_cache.py +0 -0
  315. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/autosummary_helpers.py +0 -0
  316. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/_figures/generate_concept_figures.py +0 -0
  317. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/_figures/generate_guide_figures.py +0 -0
  318. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/_static/css/.gitkeep +0 -0
  319. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/_static/css/custom.css +0 -0
  320. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/_static/versions.json +0 -0
  321. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/_static/versions.json.license +0 -0
  322. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/_templates/custom_class.rst +0 -0
  323. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/_templates/custom_class_noindex.rst +0 -0
  324. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/_templates/custom_function.rst +0 -0
  325. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/_templates/module_overview.rst +0 -0
  326. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/_templates/package_overview.rst +0 -0
  327. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/api/core.rst +0 -0
  328. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/api/meta.rst +0 -0
  329. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/api/models.rst +0 -0
  330. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/contribute/_getting_help.rst +0 -0
  331. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/contribute/document.rst +0 -0
  332. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/diagrams/user_guide/concepts/beam_diagram_1.mmd +0 -0
  333. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/diagrams/user_guide/concepts/beam_diagram_1.mmd.license +0 -0
  334. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/diagrams/user_guide/concepts/component_splitting_diagram_1.mmd +0 -0
  335. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/diagrams/user_guide/concepts/component_splitting_diagram_1.mmd.license +0 -0
  336. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/diagrams/user_guide/concepts/intro_to_energy_forecasting_diagram_1.mmd +0 -0
  337. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/diagrams/user_guide/concepts/intro_to_energy_forecasting_diagram_1.mmd.license +0 -0
  338. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/diagrams/user_guide/concepts/metalearning_diagram_1.mmd +0 -0
  339. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/diagrams/user_guide/concepts/metalearning_diagram_1.mmd.license +0 -0
  340. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/diagrams/user_guide/concepts/metalearning_diagram_2.mmd +0 -0
  341. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/diagrams/user_guide/concepts/metalearning_diagram_2.mmd.license +0 -0
  342. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/diagrams/user_guide/concepts/metalearning_diagram_3.mmd +0 -0
  343. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/diagrams/user_guide/concepts/metalearning_diagram_3.mmd.license +0 -0
  344. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/diagrams/user_guide/concepts/models_diagram_1.mmd +0 -0
  345. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/diagrams/user_guide/concepts/models_diagram_1.mmd.license +0 -0
  346. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/diagrams/user_guide/getting_started/migration_diagram_1.mmd +0 -0
  347. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/diagrams/user_guide/getting_started/migration_diagram_1.mmd.license +0 -0
  348. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/diagrams/user_guide/guides/datasets_diagram_1.mmd +0 -0
  349. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/diagrams/user_guide/guides/datasets_diagram_1.mmd.license +0 -0
  350. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/diagrams/user_guide/guides/datasets_diagram_2.mmd +0 -0
  351. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/diagrams/user_guide/guides/datasets_diagram_2.mmd.license +0 -0
  352. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/diagrams/user_guide/guides/deployment_diagram_1.mmd +0 -0
  353. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/diagrams/user_guide/guides/deployment_diagram_1.mmd.license +0 -0
  354. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/diagrams/user_guide/guides/deployment_diagram_2.mmd +0 -0
  355. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/diagrams/user_guide/guides/deployment_diagram_2.mmd.license +0 -0
  356. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/diagrams/user_guide/guides/forecasting_diagram_1.mmd +0 -0
  357. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/diagrams/user_guide/guides/forecasting_diagram_1.mmd.license +0 -0
  358. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/diagrams/user_guide/guides/probabilistic_forecasting_diagram_1.mmd +0 -0
  359. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/diagrams/user_guide/guides/probabilistic_forecasting_diagram_1.mmd.license +0 -0
  360. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/diagrams/user_guide/guides/reliability_fallback_diagram_1.mmd +0 -0
  361. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/diagrams/user_guide/guides/reliability_fallback_diagram_1.mmd.license +0 -0
  362. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/diagrams/user_guide/guides/reliability_fallback_diagram_2.mmd +0 -0
  363. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/diagrams/user_guide/guides/reliability_fallback_diagram_2.mmd.license +0 -0
  364. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/images/concepts/aggregation_comparison.svg +0 -0
  365. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/images/concepts/aggregation_comparison.svg.license +0 -0
  366. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/images/concepts/backtesting_simulation.gif +0 -0
  367. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/images/concepts/backtesting_simulation.gif.license +0 -0
  368. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/images/concepts/forecast_confidence_bands.svg +0 -0
  369. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/images/concepts/forecast_confidence_bands.svg.license +0 -0
  370. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/images/concepts/weekly_load_profile.svg +0 -0
  371. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/images/concepts/weekly_load_profile.svg.license +0 -0
  372. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/images/guides/calibration_plot.svg +0 -0
  373. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/images/guides/calibration_plot.svg.license +0 -0
  374. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/images/guides/flatline_detection.svg +0 -0
  375. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/images/guides/flatline_detection.svg.license +0 -0
  376. /openstef-4.0.1/docs/source/images/guides/probabilistic_fan_chart.svg.license → /openstef-4.1.1.dev0/docs/source/images/guides/liander2024_rcrps_by_group.png.license +0 -0
  377. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/images/guides/probabilistic_fan_chart.svg +0 -0
  378. /openstef-4.0.1/examples/benchmarks/custom/compare_benchmark_runs.ipynb.license → /openstef-4.1.1.dev0/docs/source/images/guides/probabilistic_fan_chart.svg.license +0 -0
  379. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/images/methodology_train_predict.pptx +0 -0
  380. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/images/methodology_train_predict.pptx.license +0 -0
  381. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/images/methodology_train_predict.svg +0 -0
  382. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/images/methodology_train_predict.svg.license +0 -0
  383. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/images/uncertainty_estimation.svg +0 -0
  384. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/images/uncertainty_estimation.svg.license +0 -0
  385. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/index.rst +0 -0
  386. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/js/.gitkeep +0 -0
  387. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/logos/favicon.ico +0 -0
  388. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/logos/favicon.ico.license +0 -0
  389. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/logos/logo_openstef_small.png +0 -0
  390. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/logos/logo_openstef_small.png.license +0 -0
  391. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/logos/openstef-horizontal-color.svg +0 -0
  392. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/logos/openstef-horizontal-color.svg.license +0 -0
  393. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/logos/openstef-horizontal-white.svg +0 -0
  394. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/logos/openstef-horizontal-white.svg.license +0 -0
  395. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/project/citing.rst +0 -0
  396. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/project/committee.rst +0 -0
  397. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/project/index.rst +0 -0
  398. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/project/license.rst +0 -0
  399. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/project/maintainers.rst +0 -0
  400. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/project/support.rst +0 -0
  401. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/user_guide/concepts/beam.rst +0 -0
  402. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/user_guide/concepts/component_splitting.rst +0 -0
  403. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/user_guide/concepts/index.rst +0 -0
  404. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/user_guide/concepts/intro_to_energy_forecasting.rst +0 -0
  405. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/user_guide/concepts/metalearning.rst +0 -0
  406. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/user_guide/getting_started/index.rst +0 -0
  407. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/user_guide/getting_started/migration.rst +0 -0
  408. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/user_guide/guides/forecasting.rst +0 -0
  409. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/user_guide/guides/probabilistic_forecasting.rst +0 -0
  410. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/user_guide/guides/reliability_fallback.rst +0 -0
  411. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/user_guide/index.rst +0 -0
  412. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/user_guide/intro/index.rst +0 -0
  413. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/user_guide/intro/methodology_train_predict.rst +0 -0
  414. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/user_guide/logging.rst +0 -0
  415. {openstef-4.0.1 → openstef-4.1.1.dev0}/docs/source/user_guide/tutorials.rst +0 -0
  416. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/.gitkeep +0 -0
  417. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/__init__.py +0 -0
  418. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/benchmarks/__init__.py +0 -0
  419. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/benchmarks/custom/__init__.py +0 -0
  420. {openstef-4.0.1/examples/benchmarks/liander2024 → openstef-4.1.1.dev0/examples/benchmarks/custom}/compare_benchmark_runs.ipynb.license +0 -0
  421. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/benchmarks/custom/custom_benchmark.ipynb.license +0 -0
  422. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/benchmarks/custom/custom_forecaster.ipynb.license +0 -0
  423. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/benchmarks/custom/evaluate_existing_forecasts.ipynb.license +0 -0
  424. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/benchmarks/custom/run_custom_benchmark.ipynb.license +0 -0
  425. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/benchmarks/custom/run_liander2024_benchmark.ipynb.license +0 -0
  426. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/benchmarks/liander2024/README.md +0 -0
  427. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/benchmarks/liander2024/__init__.py +0 -0
  428. /openstef-4.0.1/examples/benchmarks/liander2024/run_ensemble_benchmark.ipynb.license → /openstef-4.1.1.dev0/examples/benchmarks/liander2024/compare_benchmark_runs.ipynb.license +0 -0
  429. /openstef-4.0.1/examples/benchmarks/liander2024/run_xgboost_gblinear_benchmark.ipynb.license → /openstef-4.1.1.dev0/examples/benchmarks/liander2024/run_chronos2_benchmark.ipynb.license +0 -0
  430. {openstef-4.0.1 → openstef-4.1.1.dev0}/examples/tutorials/.gitignore +0 -0
  431. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/README.md +0 -0
  432. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/__init__.py +0 -0
  433. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/analysis/__init__.py +0 -0
  434. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/analysis/analysis_pipeline.py +0 -0
  435. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/analysis/models/__init__.py +0 -0
  436. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/analysis/models/target_metadata.py +0 -0
  437. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/analysis/plots/__init__.py +0 -0
  438. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/analysis/visualizations/__init__.py +0 -0
  439. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/analysis/visualizations/base.py +0 -0
  440. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/analysis/visualizations/grouped_target_metric_visualization.py +0 -0
  441. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/analysis/visualizations/precision_recall_curve_visualization.py +0 -0
  442. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/analysis/visualizations/quantile_calibration_box_visualization.py +0 -0
  443. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/analysis/visualizations/quantile_probability_visualization.py +0 -0
  444. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/analysis/visualizations/timeseries_visualization.py +0 -0
  445. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/analysis/visualizations/windowed_metric_visualization.py +0 -0
  446. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/backtesting/__init__.py +0 -0
  447. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/backtesting/backtest_callback.py +0 -0
  448. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/backtesting/backtest_event.py +0 -0
  449. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/backtesting/backtest_forecaster/__init__.py +0 -0
  450. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/backtesting/backtest_pipeline.py +0 -0
  451. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/backtesting/restricted_horizon_timeseries.py +0 -0
  452. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/benchmarking/__init__.py +0 -0
  453. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/benchmarking/baselines/__init__.py +0 -0
  454. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/benchmarking/baselines/openstef4.py +0 -0
  455. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/benchmarking/benchmark_comparison_pipeline.py +0 -0
  456. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/benchmarking/benchmark_pipeline.py +0 -0
  457. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/benchmarking/benchmarks/__init__.py +0 -0
  458. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/benchmarking/callbacks/__init__.py +0 -0
  459. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/benchmarking/callbacks/base.py +0 -0
  460. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/benchmarking/callbacks/strict_execution_callback.py +0 -0
  461. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/benchmarking/models/__init__.py +0 -0
  462. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/benchmarking/models/benchmark_target.py +0 -0
  463. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/benchmarking/storage/__init__.py +0 -0
  464. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/benchmarking/storage/base.py +0 -0
  465. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/benchmarking/storage/local_storage.py +0 -0
  466. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/evaluation/__init__.py +0 -0
  467. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/evaluation/models/__init__.py +0 -0
  468. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/evaluation/models/report.py +0 -0
  469. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/src/openstef_beam/evaluation/models/subset.py +0 -0
  470. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/__init__.py +0 -0
  471. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/__init__.py +0 -0
  472. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/analysis/__init__.py +0 -0
  473. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/analysis/plots/__init__.py +0 -0
  474. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/analysis/plots/test_summary_table_plotter.py +0 -0
  475. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/analysis/visualizations/__init__.py +0 -0
  476. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/analysis/visualizations/test_grouped_target_metric_visualization.py +0 -0
  477. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/analysis/visualizations/test_precision_recall_curve_visualization.py +0 -0
  478. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/backtesting/__init__.py +0 -0
  479. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/backtesting/test_backtest_event_generator.py +0 -0
  480. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/benchmarking/__init__.py +0 -0
  481. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/benchmarking/baselines/__init__.py +0 -0
  482. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/benchmarking/storage/__init__.py +0 -0
  483. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/evaluation/__init__.py +0 -0
  484. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/evaluation/models/__init__.py +0 -0
  485. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/evaluation/models/test_window.py +0 -0
  486. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/evaluation/test_evaluation_pipeline.py +0 -0
  487. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/evaluation/test_metric_provider.py +0 -0
  488. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/evaluation/test_window_iterators.py +0 -0
  489. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/unit/metrics/__init__.py +0 -0
  490. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-beam/tests/utils/__init__.py +0 -0
  491. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/README.md +0 -0
  492. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/src/openstef_core/__init__.py +0 -0
  493. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/src/openstef_core/constants.py +0 -0
  494. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/src/openstef_core/datasets/__init__.py +0 -0
  495. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/src/openstef_core/datasets/mixins.py +0 -0
  496. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/src/openstef_core/mixins/__init__.py +0 -0
  497. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/src/openstef_core/mixins/param_ranges.py +0 -0
  498. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/src/openstef_core/transforms/__init__.py +0 -0
  499. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/src/openstef_core/transforms/dataset_transforms.py +0 -0
  500. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/src/openstef_core/utils/datetime.py +0 -0
  501. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/src/openstef_core/utils/invariants.py +0 -0
  502. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/src/openstef_core/utils/itertools.py +0 -0
  503. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/src/openstef_core/utils/pydantic.py +0 -0
  504. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/tests/__init__.py +0 -0
  505. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/tests/unit/__init__.py +0 -0
  506. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/tests/unit/datasets/__init__.py +0 -0
  507. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/tests/unit/datasets/test_validation.py +0 -0
  508. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/tests/unit/datasets/utils.py +0 -0
  509. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/tests/unit/mixins/__init__.py +0 -0
  510. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/tests/unit/test_base_model.py +0 -0
  511. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/tests/unit/transforms/__init__.py +0 -0
  512. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/tests/unit/utils/__init__.py +0 -0
  513. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/tests/unit/utils/test_itertools.py +0 -0
  514. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/tests/unit/utils/test_multiprocessing.py +0 -0
  515. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-core/tests/unit/utils/test_pandas.py +0 -0
  516. {openstef-4.0.1/packages/openstef-meta/tests/unit/integrations → openstef-4.1.1.dev0/packages/openstef-foundation-models/tests}/__init__.py +0 -0
  517. {openstef-4.0.1/packages/openstef-models/tests/unit/integrations/mlflow → openstef-4.1.1.dev0/packages/openstef-foundation-models/tests/integration}/__init__.py +0 -0
  518. {openstef-4.0.1/packages/openstef-models/tests/unit/models/component_splitting → openstef-4.1.1.dev0/packages/openstef-foundation-models/tests/unit}/__init__.py +0 -0
  519. {openstef-4.0.1/packages/openstef-models/tests/unit/utils → openstef-4.1.1.dev0/packages/openstef-foundation-models/tests/unit/inference}/__init__.py +0 -0
  520. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-meta/README.md +0 -0
  521. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-meta/src/openstef_meta/__init__.py +0 -0
  522. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-meta/src/openstef_meta/models/__init__.py +0 -0
  523. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-meta/src/openstef_meta/models/forecast_combiners/__init__.py +0 -0
  524. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-meta/src/openstef_meta/presets/__init__.py +0 -0
  525. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-meta/src/openstef_meta/utils/__init__.py +0 -0
  526. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-meta/src/openstef_meta/utils/datasets.py +0 -0
  527. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-meta/tests/integration/__init__.py +0 -0
  528. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-meta/tests/unit/models/__init__.py +0 -0
  529. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-meta/tests/unit/models/conftest.py +0 -0
  530. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-meta/tests/unit/models/forecast_combiners/__init__.py +0 -0
  531. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-meta/tests/unit/models/forecast_combiners/test_learned_weights_combiner.py +0 -0
  532. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-meta/tests/unit/models/forecast_combiners/test_stacking_combiner.py +0 -0
  533. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-meta/tests/unit/models/forecasting/__init__.py +0 -0
  534. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-meta/tests/unit/utils/__init__.py +0 -0
  535. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/README.md +0 -0
  536. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/__init__.py +0 -0
  537. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/explainability/__init__.py +0 -0
  538. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/explainability/mixins.py +0 -0
  539. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/explainability/plotters/__init__.py +0 -0
  540. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/explainability/plotters/feature_importance_plotter.py +0 -0
  541. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/integrations/joblib/__init__.py +0 -0
  542. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/integrations/mlflow/__init__.py +0 -0
  543. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/integrations/optuna/__init__.py +0 -0
  544. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/mixins/__init__.py +0 -0
  545. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/mixins/callbacks.py +0 -0
  546. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/mixins/model_serializer.py +0 -0
  547. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/models/__init__.py +0 -0
  548. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/models/component_splitting/__init__.py +0 -0
  549. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/models/component_splitting/component_splitter.py +0 -0
  550. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/models/component_splitting/linear_component_splitter_model/linear_component_splitter_model.z +0 -0
  551. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/models/component_splitting/linear_component_splitter_model/linear_component_splitter_model.z.license +0 -0
  552. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/models/component_splitting_model.py +0 -0
  553. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/models/forecasting/__init__.py +0 -0
  554. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/models/forecasting/flatliner_forecaster.py +0 -0
  555. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/models/forecasting/forecaster.py +0 -0
  556. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/presets/__init__.py +0 -0
  557. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/testing.py +0 -0
  558. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/transforms/__init__.py +0 -0
  559. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/transforms/energy_domain/__init__.py +0 -0
  560. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/transforms/energy_domain/wind_power_feature_adder.py +0 -0
  561. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/transforms/general/__init__.py +0 -0
  562. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/transforms/general/flagger.py +0 -0
  563. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/transforms/general/outlier_handler.py +0 -0
  564. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/transforms/general/selector.py +0 -0
  565. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/transforms/postprocessing/__init__.py +0 -0
  566. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/transforms/postprocessing/quantile_sorter.py +0 -0
  567. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/transforms/time_domain/__init__.py +0 -0
  568. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/transforms/validation/__init__.py +0 -0
  569. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/transforms/validation/completeness_checker.py +0 -0
  570. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/transforms/validation/input_consistency_checker.py +0 -0
  571. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/transforms/weather_domain/__init__.py +0 -0
  572. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/utils/__init__.py +0 -0
  573. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/utils/xgboost.py +0 -0
  574. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/workflows/__init__.py +0 -0
  575. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/workflows/callbacks/__init__.py +0 -0
  576. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/workflows/callbacks/data_save.py +0 -0
  577. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/workflows/callbacks/model_performance_callback.py +0 -0
  578. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/src/openstef_models/workflows/custom_component_split_workflow.py +0 -0
  579. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/__init__.py +0 -0
  580. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/integration/__init__.py +0 -0
  581. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/integration/test_integration.py +0 -0
  582. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/__init__.py +0 -0
  583. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/explainability/__init__.py +0 -0
  584. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/explainability/plotters/__init__.py +0 -0
  585. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/integrations/__init__.py +0 -0
  586. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/integrations/joblib/__init__.py +0 -0
  587. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/integrations/joblib/test_joblib_model_serializer.py +0 -0
  588. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/integrations/optuna/__init__.py +0 -0
  589. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/models/__init__.py +0 -0
  590. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/models/component_splitting/test_constant_component_splitter.py +0 -0
  591. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/models/component_splitting/test_linear_component_splitter.py +0 -0
  592. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/models/forecasting/__init__.py +0 -0
  593. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/models/forecasting/conftest.py +0 -0
  594. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/models/forecasting/test_flatliner_forecaster.py +0 -0
  595. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/models/forecasting/test_gblinear_forecaster.py +0 -0
  596. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/models/forecasting/test_xgboost_forecaster.py +0 -0
  597. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/test_example.py +0 -0
  598. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/transforms/__init__.py +0 -0
  599. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/transforms/energy_domain/__init__.py +0 -0
  600. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/transforms/energy_domain/test_wind_power_feature_adder.py +0 -0
  601. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/transforms/general/__init__.py +0 -0
  602. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/transforms/general/test_dimensionality_reducer.py +0 -0
  603. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/transforms/general/test_empty_feature_remover.py +0 -0
  604. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/transforms/general/test_flagger.py +0 -0
  605. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/transforms/general/test_nan_dropper.py +0 -0
  606. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/transforms/general/test_sample_weighter.py +0 -0
  607. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/transforms/general/test_selector.py +0 -0
  608. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/transforms/general/test_shifter.py +0 -0
  609. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/transforms/postprocessing/__init__.py +0 -0
  610. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/transforms/postprocessing/test_confidence_interval_applicator.py +0 -0
  611. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/transforms/postprocessing/test_quantile_sorter.py +0 -0
  612. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/transforms/time_domain/__init__.py +0 -0
  613. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/transforms/time_domain/test_cyclic_features_adder.py +0 -0
  614. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/transforms/time_domain/test_holiday_features_adder.py +0 -0
  615. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/transforms/time_domain/test_lags_adder.py +0 -0
  616. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/transforms/validation/__init__.py +0 -0
  617. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/transforms/validation/test_completeness_checker.py +0 -0
  618. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/transforms/validation/test_flatline_checker.py +0 -0
  619. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/transforms/validation/test_input_consistency_checker.py +0 -0
  620. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/transforms/weather_domain/__init__.py +0 -0
  621. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/transforms/weather_domain/test_atmosphere_derived_features_adder.py +0 -0
  622. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/transforms/weather_domain/test_daylight_feature_adder.py +0 -0
  623. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/transforms/weather_domain/test_radiation_derived_featuers_adder.py +0 -0
  624. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/utils/test_feature_selection.py +0 -0
  625. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/utils/test_loss_functions.py +0 -0
  626. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/workflows/__init__.py +0 -0
  627. {openstef-4.0.1 → openstef-4.1.1.dev0}/packages/openstef-models/tests/unit/workflows/callbacks/__init__.py +0 -0
  628. {openstef-4.0.1 → openstef-4.1.1.dev0}/tools/check_notebook_outputs.py +0 -0
  629. {openstef-4.0.1 → openstef-4.1.1.dev0}/tools/reuse-fix.py +0 -0
@@ -0,0 +1,38 @@
1
+ ---
2
+ name: OpenSTEF Project Story
3
+ about: Describe a new feature or improvement for OpenSTEF
4
+ title: ''
5
+ labels: 'OpenSTEF 4'
6
+ assignees: ''
7
+ ---
8
+
9
+ As
10
+ I want to
11
+ So that I
12
+
13
+ 🌍 Background
14
+
15
+ > [!IMPORTANT]
16
+ > Changes should be done by forking [main branch](https://github.com/OpenSTEF/openstef/tree/main) (`main`) and then make a PR back onto `main` branch.
17
+ > Please read the [contributing guide](https://openstef.github.io/openstef/contribute/index.html) before you start.
18
+
19
+ ❗Priority (What if we don't do this?/Are there any deadlines? etc.)
20
+
21
+ Definition of Done:
22
+
23
+ ✅ Acceptance criteria
24
+ - [ ]
25
+
26
+ 📄 Documentation criteria:
27
+ Update relevant documentation pages
28
+
29
+ 🧪 Test criteria:
30
+ Unit tests written and passed
31
+
32
+ ⌛ Dependencies:
33
+ N/A
34
+
35
+ 🚀 Releasing:
36
+ N/A
37
+
38
+ Other information:
@@ -4,6 +4,12 @@
4
4
  # Dependabot configuration for the OpenSTEF uv workspace.
5
5
  #
6
6
  # - Patch/minor updates are grouped into daily PRs; majors stay individual.
7
+ # - lockfile-only: updates touch uv.lock only, never widen pyproject.toml
8
+ # constraints, so no "update X requirement from A to B" PRs.
9
+ # - Linters/formatters (ruff, ty, pyproject-fmt) are isolated in their own group:
10
+ # their releases routinely add rules/checks or restyle files and fail the quality
11
+ # gate, so they land in a dedicated PR rather than blocking unrelated library or
12
+ # security updates.
7
13
  # - Cooldown delays brand-new releases by a few days as supply-chain protection.
8
14
  # - Security advisories are in their own group, exempt from cooldown.
9
15
 
@@ -24,6 +30,7 @@ updates:
24
30
  time: "06:00"
25
31
  timezone: Europe/Amsterdam
26
32
  open-pull-requests-limit: 10
33
+ versioning-strategy: lockfile-only
27
34
  commit-message:
28
35
  prefix: "chore(deps)"
29
36
  include: scope
@@ -39,8 +46,13 @@ updates:
39
46
  python-security:
40
47
  applies-to: security-updates
41
48
  update-types: [patch, minor]
49
+ python-linters:
50
+ applies-to: version-updates
51
+ patterns: ["ruff", "ty", "pyproject-fmt"]
52
+ update-types: [patch, minor]
42
53
  python-versions:
43
54
  applies-to: version-updates
55
+ exclude-patterns: ["ruff", "ty", "pyproject-fmt"]
44
56
  update-types: [patch, minor]
45
57
 
46
58
  - package-ecosystem: github-actions
@@ -20,18 +20,19 @@ jobs:
20
20
  runs-on: ubuntu-latest
21
21
  steps:
22
22
  - name: Checkout # Must be done before using composite actions
23
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
23
+ uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
24
24
  with:
25
+ fetch-depth: 0 # full history gives Sonar accurate new-code / blame info
25
26
  show-progress: false # very verbose for not much
26
27
  - name: Install uv
27
- uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
28
+ uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
28
29
  # uv is needed for qa and deploy, so is kinda always needed. No need to skip it.
29
30
  with:
30
31
  activate-environment: true
31
32
  enable-cache: true
32
33
  - name: Install dependencies
33
34
  if: ${{ always() }}
34
- run: uv sync --frozen --no-install-project --all-groups --all-extras --all-packages
35
+ run: uv sync --frozen --no-install-project
35
36
 
36
37
  # Run quality checks
37
38
  - name: reuse
@@ -52,16 +53,28 @@ jobs:
52
53
  - name: typing
53
54
  if: ${{ ! inputs._SKIP_QUALITY && always() }}
54
55
  run: poe type
56
+ - name: typing tests
57
+ if: ${{ ! inputs._SKIP_QUALITY && always() }}
58
+ run: poe type-tests
55
59
  - name: tests
56
60
  if: ${{ ! inputs._SKIP_QUALITY && always() }}
57
- run: poe tests
61
+ run: poe tests --relaxed
58
62
  - name: doctests
59
63
  if: ${{ ! inputs._SKIP_QUALITY && always() }}
60
- run: poe doctests
64
+ run: poe doctests --relaxed
61
65
  - name: notebooks-check
62
66
  if: ${{ ! inputs._SKIP_QUALITY && always() }}
63
67
  run: poe notebooks-check
64
68
 
69
+ # Upload analysis + coverage.xml (produced by the tests step) to SonarCloud.
70
+ # Skipped on fork PRs, which cannot access the SONAR_TOKEN secret.
71
+ - name: SonarCloud scan
72
+ if: ${{ ! inputs._SKIP_QUALITY && !cancelled() && (github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository) }}
73
+ uses: SonarSource/sonarqube-scan-action@713881670b6b3676cda39549040e2d88c70d582e # v8.2.0
74
+ env:
75
+ SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
76
+ SONAR_HOST_URL: https://sonarcloud.io
77
+
65
78
  - name: Stop if any quality step failed
66
79
  # 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
80
  if: ${{ failure() }}
@@ -10,7 +10,7 @@ on:
10
10
  push:
11
11
  branches: ['main']
12
12
  pull_request:
13
- types: [opened, synchronize, reopened, closed]
13
+ types: [opened, synchronize, reopened]
14
14
 
15
15
  permissions:
16
16
  contents: read
@@ -19,3 +19,4 @@ jobs:
19
19
  quality:
20
20
  name: Quality Checks
21
21
  uses: ./.github/workflows/_job_quality_check.yaml
22
+ secrets: inherit
@@ -33,7 +33,7 @@ jobs:
33
33
  runs-on: ubuntu-24.04
34
34
  steps:
35
35
  - name: checkout
36
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
36
+ uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
37
37
  - name: Install R
38
38
  run: |
39
39
  sudo apt-get update && sudo apt-get install -y r-base
@@ -0,0 +1,62 @@
1
+ # SPDX-FileCopyrightText: 2026 Contributors to the OpenSTEF project <openstef@lfenergy.org>
2
+ # SPDX-License-Identifier: MPL-2.0
3
+
4
+ # Builds the documentation on PRs WITHOUT deploying it, so that changes which
5
+ # break the docs build (e.g. a dependency bump that breaks notebook execution
6
+ # or static figure export) are caught before they reach main, where the
7
+ # Deploy Documentation workflow would otherwise fail.
8
+ #
9
+ # The build executes the tutorials, so it is slow. It therefore only runs when
10
+ # a PR touches inputs that can affect the build (dependencies, docs sources,
11
+ # example notebooks), and can also be triggered manually from the Actions tab.
12
+
13
+ name: Docs Build Check
14
+
15
+ concurrency:
16
+ group: ${{ github.workflow }}-${{ github.ref }}
17
+ cancel-in-progress: true
18
+
19
+ on:
20
+ pull_request:
21
+ paths:
22
+ - "uv.lock"
23
+ - "**/pyproject.toml"
24
+ - "docs/**"
25
+ - "examples/**"
26
+ - ".github/workflows/docs-check.yaml"
27
+ workflow_dispatch:
28
+
29
+ permissions:
30
+ contents: read
31
+
32
+ jobs:
33
+ build-docs:
34
+ name: Build Documentation (no deploy)
35
+ runs-on: ubuntu-latest
36
+
37
+ steps:
38
+ - name: Checkout
39
+ uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
40
+ with:
41
+ show-progress: false
42
+
43
+ - name: Install uv
44
+ uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
45
+ with:
46
+ activate-environment: true
47
+ enable-cache: true
48
+
49
+ - name: Install dependencies
50
+ run: uv sync --frozen --no-install-project
51
+
52
+ - name: Build Sphinx documentation
53
+ run: poe docs
54
+
55
+ - name: Upload built docs
56
+ if: ${{ always() }}
57
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
58
+ with:
59
+ name: docs-html
60
+ path: docs/build/html
61
+ retention-days: 7
62
+ if-no-files-found: ignore
@@ -21,24 +21,24 @@ jobs:
21
21
 
22
22
  steps:
23
23
  - name: Checkout main
24
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
24
+ uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
25
25
  with:
26
26
  show-progress: false
27
27
 
28
28
  - name: Install uv
29
- uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
29
+ uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
30
30
  with:
31
31
  activate-environment: true
32
32
  enable-cache: true
33
33
 
34
34
  - name: Install dependencies
35
- run: uv sync --frozen --no-install-project --all-groups --all-extras
35
+ run: uv sync --frozen --no-install-project
36
36
 
37
37
  - name: Build Sphinx documentation
38
38
  run: poe docs
39
39
 
40
40
  - name: Checkout gh-pages branch for deployment
41
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
41
+ uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
42
42
  with:
43
43
  ref: gh-pages
44
44
  path: gh-pages-repo
@@ -32,21 +32,23 @@ jobs:
32
32
  environment: release
33
33
  if: ${{ (startsWith(github.ref, 'refs/tags/v4.') || (github.event_name == 'workflow_dispatch' && startsWith(github.event.inputs.version, 'v4'))) && needs.quality.result == 'success' }}
34
34
  permissions:
35
- # IMPORTANT: this permission is mandatory for trusted publishing
35
+ # IMPORTANT: this permission is mandatory for trusted publishing and keyless signing
36
36
  id-token: write
37
+ # Required to attach signed artifacts/bundles to the GitHub Release
38
+ contents: write
37
39
  steps:
38
40
  - name: Checkout
39
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
41
+ uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
40
42
  with:
41
43
  fetch-depth: 0
42
44
  show-progress: false
43
45
  - name: Install uv
44
- uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
46
+ uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
45
47
  with:
46
48
  activate-environment: true
47
49
  enable-cache: true
48
50
  - name: Install build dependencies
49
- run: uv sync --frozen --no-install-project --all-groups --all-extras
51
+ run: uv sync --frozen --no-install-project --no-default-groups --group build
50
52
 
51
53
  # Start of release steps
52
54
  - name: Set version from release
@@ -77,7 +79,18 @@ jobs:
77
79
  run: poe version --version "${{ steps.ver.outputs.version }}"
78
80
  - name: Build all packages
79
81
  run: poe build
82
+ - name: Sign distributions (PEP 740 attestations, keyless OIDC)
83
+ run: uv run --no-sync pypi-attestations sign dist/*.whl dist/*.tar.gz
80
84
  - name: Publish packages
85
+ # uv uploads the matching *.publish.attestation alongside each distribution
81
86
  run: uv publish --trusted-publishing always
87
+ - name: Sign distributions (Sigstore bundles for offline verification)
88
+ run: uv run --no-sync sigstore sign dist/*.whl dist/*.tar.gz
89
+ - name: Attach signed artifacts to the GitHub Release
90
+ if: ${{ github.event_name == 'release' }}
91
+ env:
92
+ GH_TOKEN: ${{ github.token }}
93
+ TAG: ${{ github.event.release.tag_name }}
94
+ run: gh release upload "$TAG" dist/*.whl dist/*.tar.gz dist/*.sigstore.json --clobber
82
95
  - name: Summary
83
- run: echo "Published version ${{ steps.ver.outputs.version }}"
96
+ run: echo "Published and signed version ${{ steps.ver.outputs.version }}"
@@ -35,10 +35,6 @@ MANIFEST
35
35
  # Ruff
36
36
  .ruff_cache/
37
37
 
38
- # Pyright
39
- .pyright/
40
- # pyright-report/
41
-
42
38
  # Test, coverage, tox
43
39
  .pytest_cache/
44
40
  .coverage
@@ -69,6 +65,8 @@ docs/_build/
69
65
  docs/source/api/generated/
70
66
  docs/source/tutorials/
71
67
  docs/source/benchmarks/
68
+ # Community health files materialized from OpenSTEF/.github at build time
69
+ docs/source/contribute/_community/
72
70
  docs/source/user_guide/**/quick_start_tutorial.py
73
71
  docs/source/user_guide/**/feature_engineering_tutorial.py
74
72
  docs/source/user_guide/**/datasets_tutorial.py
@@ -135,6 +133,9 @@ benchmark_results*/
135
133
  # Local dataset files
136
134
  liander_dataset/
137
135
 
136
+ # Deployment example run artifacts (MLflow store, forecasts, dataset, Celery/Airflow state)
137
+ openstef_deployment_runs/
138
+
138
139
  # Mlflow
139
140
  /mlflow
140
141
  /mlflow_artifacts_local
@@ -1,3 +1,43 @@
1
+ Metadata-Version: 2.4
2
+ Name: openstef
3
+ Version: 4.1.1.dev0
4
+ Summary: Open Short Term Energy forecasting library
5
+ Project-URL: Documentation, https://openstef.github.io/openstef/index.html
6
+ Project-URL: Homepage, https://lfenergy.org/projects/openstef/
7
+ Project-URL: Issues, https://github.com/OpenSTEF/openstef/issues
8
+ Project-URL: Repository, https://github.com/OpenSTEF/openstef
9
+ Author-email: "Alliander N.V" <openstef@lfenergy.org>
10
+ License-Expression: MPL-2.0
11
+ License-File: LICENSE.md
12
+ Keywords: energy,forecasting,machinelearning
13
+ Classifier: Development Status :: 5 - Production/Stable
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Programming Language :: Python :: 3 :: Only
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Requires-Python: <4.0,>=3.12
19
+ Requires-Dist: openstef-core==4.1.1.dev0
20
+ Requires-Dist: openstef-models[xgb-cpu]==4.1.1.dev0
21
+ Provides-Extra: all
22
+ Requires-Dist: openstef-beam[all]==4.1.1.dev0; extra == 'all'
23
+ Requires-Dist: openstef-core==4.1.1.dev0; extra == 'all'
24
+ Requires-Dist: openstef-foundation-models[cpu]==4.1.1.dev0; extra == 'all'
25
+ Requires-Dist: openstef-meta==4.1.1.dev0; extra == 'all'
26
+ Requires-Dist: openstef-models[xgb-cpu]==4.1.1.dev0; extra == 'all'
27
+ Provides-Extra: beam
28
+ Requires-Dist: huggingface-hub>=0.35.3; extra == 'beam'
29
+ Requires-Dist: openstef-beam==4.1.1.dev0; extra == 'beam'
30
+ Provides-Extra: core
31
+ Requires-Dist: openstef-core==4.1.1.dev0; extra == 'core'
32
+ Provides-Extra: foundation-models
33
+ Requires-Dist: openstef-foundation-models[cpu]==4.1.1.dev0; extra == 'foundation-models'
34
+ Provides-Extra: meta
35
+ Requires-Dist: openstef-meta==4.1.1.dev0; extra == 'meta'
36
+ Provides-Extra: models
37
+ Requires-Dist: openstef-meta==4.1.1.dev0; extra == 'models'
38
+ Requires-Dist: openstef-models[xgb-cpu]==4.1.1.dev0; extra == 'models'
39
+ Description-Content-Type: text/markdown
40
+
1
41
  <!--
2
42
  SPDX-FileCopyrightText: 2017-2025 Contributors to the OpenSTEF project <openstef@lfenergy.org>
3
43
 
@@ -6,7 +46,7 @@ SPDX-License-Identifier: MPL-2.0
6
46
 
7
47
  <p align="center">
8
48
  <a href="https://www.lfenergy.org/projects/openstef/">
9
- <img src="https://raw.githubusercontent.com/OpenSTEF/openstef/main/docs/source/_static/logo.png" alt="OpenSTEF Logo" width="400">
49
+ <img src="https://raw.githubusercontent.com/OpenSTEF/openstef/main/docs/source/logos/openstef-horizontal-color.svg" alt="OpenSTEF Logo" width="400">
10
50
  </a>
11
51
  </p>
12
52
 
@@ -17,7 +57,16 @@ SPDX-License-Identifier: MPL-2.0
17
57
  [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/5585/badge)](https://bestpractices.coreinfrastructure.org/projects/5585)
18
58
  [![License: MPL-2.0](https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg)](LICENSE.md)
19
59
  [![Python 3.12+](https://img.shields.io/badge/python-3.12%2B-blue.svg)](https://www.python.org/downloads/)
20
- [![Release](https://img.shields.io/badge/release-v4.0.0-blue.svg)](https://github.com/paula-passet/openstef_Sia/releases/tag/release/v4.0.0)
60
+ ![GitHub Release](https://img.shields.io/github/v/release/openstef/openstef)
61
+
62
+
63
+ [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=OpenSTEF_openstef&metric=alert_status)](https://sonarcloud.io/summary/overall?id=OpenSTEF_openstef)
64
+ [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=OpenSTEF_openstef&metric=coverage)](https://sonarcloud.io/summary/overall?id=OpenSTEF_openstef)
65
+ [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=OpenSTEF_openstef&metric=sqale_rating)](https://sonarcloud.io/summary/overall?id=OpenSTEF_openstef)
66
+ [![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=OpenSTEF_openstef&metric=reliability_rating)](https://sonarcloud.io/summary/overall?id=OpenSTEF_openstef)
67
+ [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=OpenSTEF_openstef&metric=security_rating)](https://sonarcloud.io/summary/overall?id=OpenSTEF_openstef)
68
+ [![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=OpenSTEF_openstef&metric=vulnerabilities)](https://sonarcloud.io/summary/overall?id=OpenSTEF_openstef)
69
+
21
70
 
22
71
  ## What is OpenSTEF
23
72
 
@@ -42,27 +91,46 @@ OpenSTEF 4.0.0 is organized as a monorepo with specialized packages under the `p
42
91
  **Requirements:** Python ≥3.12, 64-bit OS (Windows, macOS, Linux)
43
92
 
44
93
  ```bash
45
- # Install the complete framework
94
+ # Minimal-but-runnable convenience layer (core + models with CPU XGBoost)
46
95
  pip install openstef
47
96
 
97
+ # Everything, CPU flavour
98
+ pip install "openstef[all]"
99
+
48
100
  # Or install individual packages
49
101
  pip install openstef-models
50
102
  pip install openstef-beam
51
103
  pip install openstef-core
52
104
 
53
- # With optional features
105
+ # Optional feature extras (additive)
54
106
  pip install "openstef-models[lgbm]"
55
- pip install "openstef-models[xgb-cpu]"
107
+ pip install "openstef-models[tuning]"
56
108
  pip install "openstef-beam[all]"
57
109
  ```
58
110
 
111
+ **Compute runtimes (pick one per package).** Packages with a heavy runtime ship
112
+ mutually exclusive CPU and GPU builds as conflicting extras — install one, not both:
113
+
114
+ ```bash
115
+ # Foundation models (Chronos-2): CPU everywhere, GPU on CUDA Linux/Windows
116
+ pip install "openstef-foundation-models[cpu]"
117
+ pip install "openstef-foundation-models[gpu]"
118
+
119
+ # XGBoost models: CPU or GPU
120
+ pip install "openstef-models[xgb-cpu]"
121
+ pip install "openstef-models[xgb-gpu]"
122
+ ```
123
+
124
+ The `openstef` meta-package always ships the CPU builds; for GPU, install the
125
+ component package directly with its `[gpu]` extra.
126
+
59
127
  Using [uv](https://docs.astral.sh/uv/) (recommended for development):
60
128
 
61
129
  ```bash
62
130
  uv add openstef
63
131
  ```
64
132
 
65
- For the complete installation guide including troubleshooting, see the [Installation Documentation](https://openstef.github.io/openstef/user_guide/installation.html).
133
+ For the complete installation guide including troubleshooting, see the [Installation Documentation](https://openstef.github.io/openstef/user_guide/getting_started/installation.html).
66
134
 
67
135
  ## Examples
68
136
 
@@ -71,7 +139,7 @@ Tutorials and usage examples are available in the [`examples/`](examples/) folde
71
139
  - Forecasting quickstart
72
140
  - Feature engineering
73
141
 
74
- Additional tutorials are available in the [online documentation](https://openstef.github.io/openstef/user_guide/tutorials.html).
142
+ Additional tutorials are available in the [online documentation](https://openstef.github.io/openstef/examples.html).
75
143
 
76
144
  ## License
77
145
 
@@ -92,15 +160,18 @@ We welcome contributions to OpenSTEF 4.0!
92
160
  ### Quick Development Setup
93
161
 
94
162
  ```bash
95
- # Clone and set up for development
163
+ # Clone and set up for development (one command installs the full CPU dev env)
96
164
  git clone https://github.com/OpenSTEF/openstef.git
97
165
  cd openstef
98
- uv sync --dev
166
+ uv sync
99
167
 
100
168
  # Run tests and quality checks
101
169
  uv run poe all
102
170
  ```
103
171
 
172
+ > GPU dev env (CUDA; Linux/Windows): `uv sync --no-default-groups --group dev-gpu`.
173
+ > Do not use `--all-groups`/`--all-extras` — the CPU and GPU runtimes conflict.
174
+
104
175
  **Code of Conduct**: We follow the [Contributor Code of Conduct](https://openstef.github.io/openstef/contribute/code_of_conduct.html) to ensure a welcoming environment for all contributors.
105
176
  ## Citations
106
177
 
@@ -114,4 +185,4 @@ If you use OpenSTEF in your research or publications, please cite the project. R
114
185
  - **Email:** openstef@lfenergy.org
115
186
  - **Community meeting:** [OpenSTEF four-weekly community meeting](https://lf-energy.atlassian.net/wiki/spaces/OS/pages/32278358/OpenSTEF+four-weekly+community+meeting)
116
187
  - **Issues:** [GitHub Issue Tracker](https://github.com/OpenSTEF/openstef/issues)
117
- - **Support Guide:** [How to get help](https://openstef.github.io/openstef/project/support.html)
188
+ - **Support Guide:** [How to get help](https://openstef.github.io/openstef/project/support.html)
@@ -1,40 +1,3 @@
1
- Metadata-Version: 2.4
2
- Name: openstef
3
- Version: 4.0.1
4
- Summary: Open Short Term Energy forecasting library
5
- Project-URL: Documentation, https://openstef.github.io/openstef/index.html
6
- Project-URL: Homepage, https://lfenergy.org/projects/openstef/
7
- Project-URL: Issues, https://github.com/OpenSTEF/openstef/issues
8
- Project-URL: Repository, https://github.com/OpenSTEF/openstef
9
- Author-email: "Alliander N.V" <openstef@lfenergy.org>
10
- License-Expression: MPL-2.0
11
- License-File: LICENSE.md
12
- Keywords: energy,forecasting,machinelearning
13
- Classifier: Development Status :: 5 - Production/Stable
14
- Classifier: Intended Audience :: Developers
15
- Classifier: Programming Language :: Python :: 3 :: Only
16
- Classifier: Programming Language :: Python :: 3.12
17
- Classifier: Programming Language :: Python :: 3.13
18
- Requires-Python: <4.0,>=3.12
19
- Requires-Dist: openstef-core==4.0.1
20
- Requires-Dist: openstef-models[xgb-cpu]==4.0.1
21
- Provides-Extra: all
22
- Requires-Dist: openstef-beam[all]==4.0.1; extra == 'all'
23
- Requires-Dist: openstef-core==4.0.1; extra == 'all'
24
- Requires-Dist: openstef-meta==4.0.1; extra == 'all'
25
- Requires-Dist: openstef-models[xgb-cpu]==4.0.1; extra == 'all'
26
- Provides-Extra: beam
27
- Requires-Dist: huggingface-hub>=0.35.3; extra == 'beam'
28
- Requires-Dist: openstef-beam==4.0.1; extra == 'beam'
29
- Provides-Extra: core
30
- Requires-Dist: openstef-core==4.0.1; extra == 'core'
31
- Provides-Extra: meta
32
- Requires-Dist: openstef-meta==4.0.1; extra == 'meta'
33
- Provides-Extra: models
34
- Requires-Dist: openstef-meta==4.0.1; extra == 'models'
35
- Requires-Dist: openstef-models[xgb-cpu]==4.0.1; extra == 'models'
36
- Description-Content-Type: text/markdown
37
-
38
1
  <!--
39
2
  SPDX-FileCopyrightText: 2017-2025 Contributors to the OpenSTEF project <openstef@lfenergy.org>
40
3
 
@@ -43,7 +6,7 @@ SPDX-License-Identifier: MPL-2.0
43
6
 
44
7
  <p align="center">
45
8
  <a href="https://www.lfenergy.org/projects/openstef/">
46
- <img src="https://raw.githubusercontent.com/OpenSTEF/openstef/main/docs/source/_static/logo.png" alt="OpenSTEF Logo" width="400">
9
+ <img src="https://raw.githubusercontent.com/OpenSTEF/openstef/main/docs/source/logos/openstef-horizontal-color.svg" alt="OpenSTEF Logo" width="400">
47
10
  </a>
48
11
  </p>
49
12
 
@@ -54,7 +17,16 @@ SPDX-License-Identifier: MPL-2.0
54
17
  [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/5585/badge)](https://bestpractices.coreinfrastructure.org/projects/5585)
55
18
  [![License: MPL-2.0](https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg)](LICENSE.md)
56
19
  [![Python 3.12+](https://img.shields.io/badge/python-3.12%2B-blue.svg)](https://www.python.org/downloads/)
57
- [![Release](https://img.shields.io/badge/release-v4.0.0-blue.svg)](https://github.com/paula-passet/openstef_Sia/releases/tag/release/v4.0.0)
20
+ ![GitHub Release](https://img.shields.io/github/v/release/openstef/openstef)
21
+
22
+
23
+ [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=OpenSTEF_openstef&metric=alert_status)](https://sonarcloud.io/summary/overall?id=OpenSTEF_openstef)
24
+ [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=OpenSTEF_openstef&metric=coverage)](https://sonarcloud.io/summary/overall?id=OpenSTEF_openstef)
25
+ [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=OpenSTEF_openstef&metric=sqale_rating)](https://sonarcloud.io/summary/overall?id=OpenSTEF_openstef)
26
+ [![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=OpenSTEF_openstef&metric=reliability_rating)](https://sonarcloud.io/summary/overall?id=OpenSTEF_openstef)
27
+ [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=OpenSTEF_openstef&metric=security_rating)](https://sonarcloud.io/summary/overall?id=OpenSTEF_openstef)
28
+ [![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=OpenSTEF_openstef&metric=vulnerabilities)](https://sonarcloud.io/summary/overall?id=OpenSTEF_openstef)
29
+
58
30
 
59
31
  ## What is OpenSTEF
60
32
 
@@ -79,27 +51,46 @@ OpenSTEF 4.0.0 is organized as a monorepo with specialized packages under the `p
79
51
  **Requirements:** Python ≥3.12, 64-bit OS (Windows, macOS, Linux)
80
52
 
81
53
  ```bash
82
- # Install the complete framework
54
+ # Minimal-but-runnable convenience layer (core + models with CPU XGBoost)
83
55
  pip install openstef
84
56
 
57
+ # Everything, CPU flavour
58
+ pip install "openstef[all]"
59
+
85
60
  # Or install individual packages
86
61
  pip install openstef-models
87
62
  pip install openstef-beam
88
63
  pip install openstef-core
89
64
 
90
- # With optional features
65
+ # Optional feature extras (additive)
91
66
  pip install "openstef-models[lgbm]"
92
- pip install "openstef-models[xgb-cpu]"
67
+ pip install "openstef-models[tuning]"
93
68
  pip install "openstef-beam[all]"
94
69
  ```
95
70
 
71
+ **Compute runtimes (pick one per package).** Packages with a heavy runtime ship
72
+ mutually exclusive CPU and GPU builds as conflicting extras — install one, not both:
73
+
74
+ ```bash
75
+ # Foundation models (Chronos-2): CPU everywhere, GPU on CUDA Linux/Windows
76
+ pip install "openstef-foundation-models[cpu]"
77
+ pip install "openstef-foundation-models[gpu]"
78
+
79
+ # XGBoost models: CPU or GPU
80
+ pip install "openstef-models[xgb-cpu]"
81
+ pip install "openstef-models[xgb-gpu]"
82
+ ```
83
+
84
+ The `openstef` meta-package always ships the CPU builds; for GPU, install the
85
+ component package directly with its `[gpu]` extra.
86
+
96
87
  Using [uv](https://docs.astral.sh/uv/) (recommended for development):
97
88
 
98
89
  ```bash
99
90
  uv add openstef
100
91
  ```
101
92
 
102
- For the complete installation guide including troubleshooting, see the [Installation Documentation](https://openstef.github.io/openstef/user_guide/installation.html).
93
+ For the complete installation guide including troubleshooting, see the [Installation Documentation](https://openstef.github.io/openstef/user_guide/getting_started/installation.html).
103
94
 
104
95
  ## Examples
105
96
 
@@ -108,7 +99,7 @@ Tutorials and usage examples are available in the [`examples/`](examples/) folde
108
99
  - Forecasting quickstart
109
100
  - Feature engineering
110
101
 
111
- Additional tutorials are available in the [online documentation](https://openstef.github.io/openstef/user_guide/tutorials.html).
102
+ Additional tutorials are available in the [online documentation](https://openstef.github.io/openstef/examples.html).
112
103
 
113
104
  ## License
114
105
 
@@ -129,15 +120,18 @@ We welcome contributions to OpenSTEF 4.0!
129
120
  ### Quick Development Setup
130
121
 
131
122
  ```bash
132
- # Clone and set up for development
123
+ # Clone and set up for development (one command installs the full CPU dev env)
133
124
  git clone https://github.com/OpenSTEF/openstef.git
134
125
  cd openstef
135
- uv sync --dev
126
+ uv sync
136
127
 
137
128
  # Run tests and quality checks
138
129
  uv run poe all
139
130
  ```
140
131
 
132
+ > GPU dev env (CUDA; Linux/Windows): `uv sync --no-default-groups --group dev-gpu`.
133
+ > Do not use `--all-groups`/`--all-extras` — the CPU and GPU runtimes conflict.
134
+
141
135
  **Code of Conduct**: We follow the [Contributor Code of Conduct](https://openstef.github.io/openstef/contribute/code_of_conduct.html) to ensure a welcoming environment for all contributors.
142
136
  ## Citations
143
137
 
@@ -151,4 +145,4 @@ If you use OpenSTEF in your research or publications, please cite the project. R
151
145
  - **Email:** openstef@lfenergy.org
152
146
  - **Community meeting:** [OpenSTEF four-weekly community meeting](https://lf-energy.atlassian.net/wiki/spaces/OS/pages/32278358/OpenSTEF+four-weekly+community+meeting)
153
147
  - **Issues:** [GitHub Issue Tracker](https://github.com/OpenSTEF/openstef/issues)
154
- - **Support Guide:** [How to get help](https://openstef.github.io/openstef/project/support.html)
148
+ - **Support Guide:** [How to get help](https://openstef.github.io/openstef/project/support.html)