openstef 3.2.75__tar.gz → 3.2.76__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 (98) hide show
  1. {openstef-3.2.75 → openstef-3.2.76}/PKG-INFO +1 -1
  2. {openstef-3.2.75 → openstef-3.2.76}/openstef/pipeline/train_model.py +1 -1
  3. {openstef-3.2.75 → openstef-3.2.76}/openstef/tasks/train_model.py +25 -2
  4. {openstef-3.2.75 → openstef-3.2.76}/openstef.egg-info/PKG-INFO +1 -1
  5. {openstef-3.2.75 → openstef-3.2.76}/setup.py +1 -1
  6. {openstef-3.2.75 → openstef-3.2.76}/LICENSE +0 -0
  7. {openstef-3.2.75 → openstef-3.2.76}/README.md +0 -0
  8. {openstef-3.2.75 → openstef-3.2.76}/openstef/__init__.py +0 -0
  9. {openstef-3.2.75 → openstef-3.2.76}/openstef/__main__.py +0 -0
  10. {openstef-3.2.75 → openstef-3.2.76}/openstef/data/dazls_stored.sav +0 -0
  11. {openstef-3.2.75 → openstef-3.2.76}/openstef/data/dazls_stored.sav.license +0 -0
  12. {openstef-3.2.75 → openstef-3.2.76}/openstef/data/dazls_stored_3.2.49.sav +0 -0
  13. {openstef-3.2.75 → openstef-3.2.76}/openstef/data/dazls_stored_3.2.49.sav.license +0 -0
  14. {openstef-3.2.75 → openstef-3.2.76}/openstef/data/dutch_holidays_2020-2022.csv +0 -0
  15. {openstef-3.2.75 → openstef-3.2.76}/openstef/data/dutch_holidays_2020-2022.csv.license +0 -0
  16. {openstef-3.2.75 → openstef-3.2.76}/openstef/data/pv_single_coefs.csv +0 -0
  17. {openstef-3.2.75 → openstef-3.2.76}/openstef/data/pv_single_coefs.csv.license +0 -0
  18. {openstef-3.2.75 → openstef-3.2.76}/openstef/data_classes/__init__.py +0 -0
  19. {openstef-3.2.75 → openstef-3.2.76}/openstef/data_classes/data_prep.py +0 -0
  20. {openstef-3.2.75 → openstef-3.2.76}/openstef/data_classes/model_specifications.py +0 -0
  21. {openstef-3.2.75 → openstef-3.2.76}/openstef/data_classes/prediction_job.py +0 -0
  22. {openstef-3.2.75 → openstef-3.2.76}/openstef/data_classes/split_function.py +0 -0
  23. {openstef-3.2.75 → openstef-3.2.76}/openstef/enums.py +0 -0
  24. {openstef-3.2.75 → openstef-3.2.76}/openstef/exceptions.py +0 -0
  25. {openstef-3.2.75 → openstef-3.2.76}/openstef/feature_engineering/__init__.py +0 -0
  26. {openstef-3.2.75 → openstef-3.2.76}/openstef/feature_engineering/apply_features.py +0 -0
  27. {openstef-3.2.75 → openstef-3.2.76}/openstef/feature_engineering/data_preparation.py +0 -0
  28. {openstef-3.2.75 → openstef-3.2.76}/openstef/feature_engineering/feature_adder.py +0 -0
  29. {openstef-3.2.75 → openstef-3.2.76}/openstef/feature_engineering/feature_applicator.py +0 -0
  30. {openstef-3.2.75 → openstef-3.2.76}/openstef/feature_engineering/general.py +0 -0
  31. {openstef-3.2.75 → openstef-3.2.76}/openstef/feature_engineering/historic_features.py +0 -0
  32. {openstef-3.2.75 → openstef-3.2.76}/openstef/feature_engineering/holiday_features.py +0 -0
  33. {openstef-3.2.75 → openstef-3.2.76}/openstef/feature_engineering/lag_features.py +0 -0
  34. {openstef-3.2.75 → openstef-3.2.76}/openstef/feature_engineering/weather_features.py +0 -0
  35. {openstef-3.2.75 → openstef-3.2.76}/openstef/metrics/__init__.py +0 -0
  36. {openstef-3.2.75 → openstef-3.2.76}/openstef/metrics/figure.py +0 -0
  37. {openstef-3.2.75 → openstef-3.2.76}/openstef/metrics/metrics.py +0 -0
  38. {openstef-3.2.75 → openstef-3.2.76}/openstef/metrics/reporter.py +0 -0
  39. {openstef-3.2.75 → openstef-3.2.76}/openstef/model/__init__.py +0 -0
  40. {openstef-3.2.75 → openstef-3.2.76}/openstef/model/basecase.py +0 -0
  41. {openstef-3.2.75 → openstef-3.2.76}/openstef/model/confidence_interval_applicator.py +0 -0
  42. {openstef-3.2.75 → openstef-3.2.76}/openstef/model/fallback.py +0 -0
  43. {openstef-3.2.75 → openstef-3.2.76}/openstef/model/metamodels/__init__.py +0 -0
  44. {openstef-3.2.75 → openstef-3.2.76}/openstef/model/metamodels/grouped_regressor.py +0 -0
  45. {openstef-3.2.75 → openstef-3.2.76}/openstef/model/metamodels/missing_values_handler.py +0 -0
  46. {openstef-3.2.75 → openstef-3.2.76}/openstef/model/model_creator.py +0 -0
  47. {openstef-3.2.75 → openstef-3.2.76}/openstef/model/objective.py +0 -0
  48. {openstef-3.2.75 → openstef-3.2.76}/openstef/model/objective_creator.py +0 -0
  49. {openstef-3.2.75 → openstef-3.2.76}/openstef/model/regressors/__init__.py +0 -0
  50. {openstef-3.2.75 → openstef-3.2.76}/openstef/model/regressors/arima.py +0 -0
  51. {openstef-3.2.75 → openstef-3.2.76}/openstef/model/regressors/custom_regressor.py +0 -0
  52. {openstef-3.2.75 → openstef-3.2.76}/openstef/model/regressors/dazls.py +0 -0
  53. {openstef-3.2.75 → openstef-3.2.76}/openstef/model/regressors/lgbm.py +0 -0
  54. {openstef-3.2.75 → openstef-3.2.76}/openstef/model/regressors/linear.py +0 -0
  55. {openstef-3.2.75 → openstef-3.2.76}/openstef/model/regressors/proloaf.py +0 -0
  56. {openstef-3.2.75 → openstef-3.2.76}/openstef/model/regressors/regressor.py +0 -0
  57. {openstef-3.2.75 → openstef-3.2.76}/openstef/model/regressors/xgb.py +0 -0
  58. {openstef-3.2.75 → openstef-3.2.76}/openstef/model/regressors/xgb_quantile.py +0 -0
  59. {openstef-3.2.75 → openstef-3.2.76}/openstef/model/serializer.py +0 -0
  60. {openstef-3.2.75 → openstef-3.2.76}/openstef/model/standard_deviation_generator.py +0 -0
  61. {openstef-3.2.75 → openstef-3.2.76}/openstef/model_selection/__init__.py +0 -0
  62. {openstef-3.2.75 → openstef-3.2.76}/openstef/model_selection/model_selection.py +0 -0
  63. {openstef-3.2.75 → openstef-3.2.76}/openstef/monitoring/__init__.py +0 -0
  64. {openstef-3.2.75 → openstef-3.2.76}/openstef/monitoring/performance_meter.py +0 -0
  65. {openstef-3.2.75 → openstef-3.2.76}/openstef/monitoring/teams.py +0 -0
  66. {openstef-3.2.75 → openstef-3.2.76}/openstef/pipeline/__init__.py +0 -0
  67. {openstef-3.2.75 → openstef-3.2.76}/openstef/pipeline/create_basecase_forecast.py +0 -0
  68. {openstef-3.2.75 → openstef-3.2.76}/openstef/pipeline/create_component_forecast.py +0 -0
  69. {openstef-3.2.75 → openstef-3.2.76}/openstef/pipeline/create_forecast.py +0 -0
  70. {openstef-3.2.75 → openstef-3.2.76}/openstef/pipeline/optimize_hyperparameters.py +0 -0
  71. {openstef-3.2.75 → openstef-3.2.76}/openstef/pipeline/train_create_forecast_backtest.py +0 -0
  72. {openstef-3.2.75 → openstef-3.2.76}/openstef/pipeline/utils.py +0 -0
  73. {openstef-3.2.75 → openstef-3.2.76}/openstef/postprocessing/__init__.py +0 -0
  74. {openstef-3.2.75 → openstef-3.2.76}/openstef/postprocessing/postprocessing.py +0 -0
  75. {openstef-3.2.75 → openstef-3.2.76}/openstef/preprocessing/__init__.py +0 -0
  76. {openstef-3.2.75 → openstef-3.2.76}/openstef/preprocessing/preprocessing.py +0 -0
  77. {openstef-3.2.75 → openstef-3.2.76}/openstef/tasks/__init__.py +0 -0
  78. {openstef-3.2.75 → openstef-3.2.76}/openstef/tasks/calculate_kpi.py +0 -0
  79. {openstef-3.2.75 → openstef-3.2.76}/openstef/tasks/create_basecase_forecast.py +0 -0
  80. {openstef-3.2.75 → openstef-3.2.76}/openstef/tasks/create_components_forecast.py +0 -0
  81. {openstef-3.2.75 → openstef-3.2.76}/openstef/tasks/create_forecast.py +0 -0
  82. {openstef-3.2.75 → openstef-3.2.76}/openstef/tasks/create_solar_forecast.py +0 -0
  83. {openstef-3.2.75 → openstef-3.2.76}/openstef/tasks/create_wind_forecast.py +0 -0
  84. {openstef-3.2.75 → openstef-3.2.76}/openstef/tasks/optimize_hyperparameters.py +0 -0
  85. {openstef-3.2.75 → openstef-3.2.76}/openstef/tasks/run_tracy.py +0 -0
  86. {openstef-3.2.75 → openstef-3.2.76}/openstef/tasks/split_forecast.py +0 -0
  87. {openstef-3.2.75 → openstef-3.2.76}/openstef/tasks/utils/__init__.py +0 -0
  88. {openstef-3.2.75 → openstef-3.2.76}/openstef/tasks/utils/dependencies.py +0 -0
  89. {openstef-3.2.75 → openstef-3.2.76}/openstef/tasks/utils/predictionjobloop.py +0 -0
  90. {openstef-3.2.75 → openstef-3.2.76}/openstef/tasks/utils/taskcontext.py +0 -0
  91. {openstef-3.2.75 → openstef-3.2.76}/openstef/validation/__init__.py +0 -0
  92. {openstef-3.2.75 → openstef-3.2.76}/openstef/validation/validation.py +0 -0
  93. {openstef-3.2.75 → openstef-3.2.76}/openstef.egg-info/SOURCES.txt +0 -0
  94. {openstef-3.2.75 → openstef-3.2.76}/openstef.egg-info/dependency_links.txt +0 -0
  95. {openstef-3.2.75 → openstef-3.2.76}/openstef.egg-info/requires.txt +0 -0
  96. {openstef-3.2.75 → openstef-3.2.76}/openstef.egg-info/top_level.txt +0 -0
  97. {openstef-3.2.75 → openstef-3.2.76}/pyproject.toml +0 -0
  98. {openstef-3.2.75 → openstef-3.2.76}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: openstef
3
- Version: 3.2.75
3
+ Version: 3.2.76
4
4
  Summary: Open short term energy forecaster
5
5
  Home-page: https://github.com/OpenSTEF/openstef
6
6
  Author: Alliander N.V
@@ -61,7 +61,7 @@ def train_model_pipeline(
61
61
  - The test dataset with forecasts
62
62
 
63
63
  """
64
- # Initialize logger and serializer
64
+ # Initialize serializer
65
65
  serializer = MLflowSerializer(mlflow_tracking_uri=mlflow_tracking_uri)
66
66
 
67
67
  # Get old model and age
@@ -26,10 +26,16 @@ from openstef.data_classes.prediction_job import PredictionJobDataClass
26
26
 
27
27
  from openstef.enums import MLModelType, PipelineType
28
28
  from openstef.exceptions import SkipSaveTrainingForecasts
29
- from openstef.pipeline.train_model import train_model_pipeline
29
+ from openstef.pipeline.train_model import (
30
+ train_model_pipeline,
31
+ train_pipeline_step_load_model,
32
+ MAXIMUM_MODEL_AGE,
33
+ )
30
34
  from openstef.tasks.utils.predictionjobloop import PredictionJobLoop
31
35
  from openstef.tasks.utils.taskcontext import TaskContext
32
36
 
37
+ from openstef.model.serializer import MLflowSerializer
38
+
33
39
  TRAINING_PERIOD_DAYS: int = 120
34
40
  DEFAULT_CHECK_MODEL_AGE: bool = True
35
41
 
@@ -84,13 +90,30 @@ def train_model_task(
84
90
 
85
91
  context.perf_meter.checkpoint("Added metadata to PredictionJob")
86
92
 
93
+ # Check the model age before retrieving the input data to speed up train job.
94
+ # (The exact same model age check is also part of the "train_model_pipeline".)
95
+
96
+ # Initialize serializer
97
+ serializer = MLflowSerializer(mlflow_tracking_uri=mlflow_tracking_uri)
98
+
99
+ # Get old model and age
100
+ _, _, old_model_age = train_pipeline_step_load_model(pj, serializer)
101
+
102
+ # Check old model age and continue yes/no
103
+ if (old_model_age < MAXIMUM_MODEL_AGE) and check_old_model_age:
104
+ context.perf_meter.checkpoint(
105
+ f"Old model is younger than {MAXIMUM_MODEL_AGE} days, skip training"
106
+ )
107
+ if pj.save_train_forecasts:
108
+ raise SkipSaveTrainingForecasts
109
+ return
110
+
87
111
  # Define start and end of the training input data
88
112
  if datetime_end is None:
89
113
  datetime_end = datetime.utcnow()
90
114
  if datetime_start is None:
91
115
  datetime_start = datetime_end - timedelta(days=TRAINING_PERIOD_DAYS)
92
116
 
93
- # todo: See if we can check model age before getting the data
94
117
  # Get training input data from database
95
118
  input_data = context.database.get_model_input(
96
119
  pid=pj["id"],
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: openstef
3
- Version: 3.2.75
3
+ Version: 3.2.76
4
4
  Summary: Open short term energy forecaster
5
5
  Home-page: https://github.com/OpenSTEF/openstef
6
6
  Author: Alliander N.V
@@ -29,7 +29,7 @@ def read_long_description_from_readme():
29
29
 
30
30
  setup(
31
31
  name="openstef",
32
- version="3.2.75",
32
+ version="3.2.76",
33
33
  packages=find_packages(include=["openstef", "openstef.*"]),
34
34
  description="Open short term energy forecaster",
35
35
  long_description=read_long_description_from_readme(),
File without changes
File without changes
File without changes
File without changes
File without changes