Merged
Conversation
Signed-off-by: F.N. Claessen <felix@seita.nl>
Signed-off-by: F.N. Claessen <felix@seita.nl>
Signed-off-by: F.N. Claessen <felix@seita.nl>
Signed-off-by: F.N. Claessen <felix@seita.nl>
Signed-off-by: F.N. Claessen <felix@seita.nl>
Signed-off-by: F.N. Claessen <felix@seita.nl>
Signed-off-by: F.N. Claessen <felix@seita.nl>
…t_timing_parameters_of_forecaster_parameters_schema"`) Signed-off-by: F.N. Claessen <felix@seita.nl>
Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com>
Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com>
…ameter in expected_timing_output Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com>
Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com>
Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com>
This reverts commit d5c77f1.
Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com>
Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com>
Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com>
Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com>
…hema Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com>
Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com>
…ParametersSchema Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com>
…riod) Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com>
…ncy (predict_period) Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com>
…metersSchema validation Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com>
Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com>
…f FutureWarning: 'H' is deprecated Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com>
Signed-off-by: F.N. Claessen <claessen@seita.nl>
… error messages Signed-off-by: F.N. Claessen <claessen@seita.nl>
Signed-off-by: F.N. Claessen <claessen@seita.nl>
Signed-off-by: F.N. Claessen <claessen@seita.nl>
Signed-off-by: F.N. Claessen <claessen@seita.nl>
Signed-off-by: F.N. Claessen <claessen@seita.nl>
Signed-off-by: F.N. Claessen <claessen@seita.nl>
Signed-off-by: F.N. Claessen <claessen@seita.nl>
Signed-off-by: F.N. Claessen <claessen@seita.nl>
Signed-off-by: F.N. Claessen <claessen@seita.nl>
Signed-off-by: F.N. Claessen <claessen@seita.nl>
…er to add new fields) Signed-off-by: F.N. Claessen <claessen@seita.nl>
Signed-off-by: F.N. Claessen <claessen@seita.nl>
Signed-off-by: F.N. Claessen <claessen@seita.nl>
Signed-off-by: F.N. Claessen <claessen@seita.nl>
Signed-off-by: F.N. Claessen <claessen@seita.nl>
Signed-off-by: F.N. Claessen <claessen@seita.nl>
…r messages Signed-off-by: F.N. Claessen <claessen@seita.nl>
…messages Signed-off-by: F.N. Claessen <claessen@seita.nl>
Signed-off-by: F.N. Claessen <claessen@seita.nl>
…essages Signed-off-by: F.N. Claessen <claessen@seita.nl>
Signed-off-by: F.N. Claessen <claessen@seita.nl>
Signed-off-by: F.N. Claessen <claessen@seita.nl>
Signed-off-by: F.N. Claessen <claessen@seita.nl>
Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com>
* feat: make predict retrain-frequency default to planning horizon then min(planning_horizon, data["max_forecast_horizon"]) Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * refactor: simplify end_date calculation to use predict_period instead of timedelta Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * feat: default max_forecast_horizon to predict_period Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * feat: add validation for max_forecast_horizon to ensure it does not exceed predict_period Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * feat: set default forecast_frequency based on min of planning_horizon, predict_period, and max_forecast_horizon Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * fix: add planning horizon from config Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * dev: uncomment out tests that were failing Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * fix: fix test cae forecast_frequency expectation it should be 12 hours not 48hours since we want New forecast viewpoint every 12 hours Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * fix: tests should expect 5 cycles. the test passes when we expect 1cycle Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * feat: add duration to schema Signed-off-by: F.N. Claessen <claessen@seita.nl> * feat: pass original data to `resolve_config` so we can check whether start, end and duration have been passed Signed-off-by: F.N. Claessen <claessen@seita.nl> * feat: move end_date calculation up Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * feat: fix max-forecast-horizon and forecast freq default calculation Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * dev: remove breakpoint Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * feat: throw ValidationError in case start, end and duration are all passed Signed-off-by: F.N. Claessen <claessen@seita.nl> * fix: remove unneeded validation Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * style: run pre-commit Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * refactor: move check to pre_load Signed-off-by: F.N. Claessen <claessen@seita.nl> * dev: comment out tests cases that pass Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * fix: fix calculation for retrain_freq Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * Revert "dev: comment out tests cases that pass" This reverts commit 9e7acc9. * style: run pre-commit Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * chore: regenerate openapi-spec.json Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * refactor: move parametrized cases next to case descriptions Signed-off-by: F.N. Claessen <claessen@seita.nl> * dev: remove breakpoint Signed-off-by: F.N. Claessen <claessen@seita.nl> * fix: check predict period Signed-off-by: F.N. Claessen <claessen@seita.nl> * fix: case 1 Signed-off-by: F.N. Claessen <claessen@seita.nl> * feat: improve error message for failing test cases Signed-off-by: F.N. Claessen <claessen@seita.nl> * dev: case 2 needs further investigation Signed-off-by: F.N. Claessen <claessen@seita.nl> * fix: case 4 Signed-off-by: F.N. Claessen <claessen@seita.nl> * fix: partially fix case 5 Signed-off-by: F.N. Claessen <claessen@seita.nl> * dev: case 5 needs further investigation Signed-off-by: F.N. Claessen <claessen@seita.nl> * fix: case 6 Signed-off-by: F.N. Claessen <claessen@seita.nl> * dev: comment out test cases that need further investigation, and preferably these should also become enumerated cases with similarly annotated expectations Signed-off-by: F.N. Claessen <claessen@seita.nl> * docs: move the documented defaults and choices for timing parameters to the post_load docstring where these are actually acted upon Signed-off-by: F.N. Claessen <claessen@seita.nl> * fix: correctly set retrain_frequency_in_hours Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * fix: streamline job metadata handling in run method to prevent undefined variable issue Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * refactor: rename parameter name to match field name Signed-off-by: F.N. Claessen <claessen@seita.nl> * fix: stop mixing up retrain-frequency and predict-period Signed-off-by: F.N. Claessen <claessen@seita.nl> * fix: false variable name Signed-off-by: F.N. Claessen <claessen@seita.nl> * style: black Signed-off-by: F.N. Claessen <claessen@seita.nl> * fix: cap retrain-frequency to not exceed predict-period Signed-off-by: F.N. Claessen <claessen@seita.nl> * fix: incomplete schema renaming Signed-off-by: F.N. Claessen <claessen@seita.nl> * fix: exclude CLI-specific fields from API schema Signed-off-by: F.N. Claessen <claessen@seita.nl> * docs: clarify what happens to the source ID if you change the forecaster config Signed-off-by: F.N. Claessen <claessen@seita.nl> * fix: change target_sensor reference from target to sensor Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * fix: update test case 4 comment and expectations. we expect 4 cycles because of retrain_frequency and predict_period Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * fix: update cycle frequency calculation to use retrain_frequency instead of predict_period Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * fix: search sensor forecasts (the ones computed directly not via api) by source forecaster type since the source isn't the same as one generated by api. Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * fix: adjust event end date calculation in forecast belief search to exclude sensor resolution Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * refactor: move cycle_frequency variable outside for loop Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * fix: update predict_end calculation to use cycle_frequency instead of predict_period_in_hours Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * fix: use default value for probabilistic in ForecasterParametersSchema this fixes issue when we call via api this param default isn't loaded Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * chore: remove unused import and run pre-commit Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * feat(test): update test case to only one day of prediction Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * fix: add forecast_frequency to test params Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * chore: remove old commented out test case Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * dev: uncomment out test cases Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * chore: remove default value for probabilistic when calling with get Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * docs: update test case comment Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * feat: calculate pred start date from end date and duration Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * feat: remove planning horizon from forecast frequency calculation and default retrain_frequency to predict_period Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * fix(tests): updates test cases Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * docs: annotate case 7 Signed-off-by: F.N. Claessen <claessen@seita.nl> * fix(test): update forecast_frequency in tests Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * docs: annotate case 8 Signed-off-by: F.N. Claessen <claessen@seita.nl> * docs: enumerate remaining test cases Signed-off-by: F.N. Claessen <claessen@seita.nl> * fix(tests): add start-predict-date to case 3 Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * docs: clarify case 0 Signed-off-by: F.N. Claessen <claessen@seita.nl> * docs: add comment Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * docs: check retraining-frequency in case 1 Signed-off-by: F.N. Claessen <claessen@seita.nl> * docs: enumerate defaults and choices Signed-off-by: F.N. Claessen <claessen@seita.nl> * docs: add docstring Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * fix: case 2 Signed-off-by: F.N. Claessen <claessen@seita.nl> * docs: explain case 3 slightly better Signed-off-by: F.N. Claessen <claessen@seita.nl> * feat: set load_default for the retrain-frequency and make it independent of any parameters, because it will be moved to the config, and we don't want to let changing parameters lead to new data source IDs Signed-off-by: F.N. Claessen <claessen@seita.nl> * feat: base the number of cycles on the retrain-frequency and the forecast-frequency, whichever is larger, and ensure there is always at least 1 cycle Signed-off-by: F.N. Claessen <claessen@seita.nl> * refactor: // guarantees an int already Signed-off-by: F.N. Claessen <claessen@seita.nl> * delete: validator no longer appropriate Signed-off-by: F.N. Claessen <claessen@seita.nl> * feat: raise in case of explicitly setting inconsistent variables that would result in incomplete coverage for the prediction window Signed-off-by: F.N. Claessen <claessen@seita.nl> * feat: check retrain-frequency explicitly Signed-off-by: F.N. Claessen <claessen@seita.nl> * docs: explain number to devs Signed-off-by: F.N. Claessen <claessen@seita.nl> * style: black Signed-off-by: F.N. Claessen <claessen@seita.nl> * feat: update test expectations and add another test case Signed-off-by: F.N. Claessen <claessen@seita.nl> * fix: only update default predict-period in case a forecast-frequency was not set explicitly Signed-off-by: F.N. Claessen <claessen@seita.nl> * delete: obsolete variable Signed-off-by: F.N. Claessen <claessen@seita.nl> * fix: we are now guaranteed one cycle, and it is allowed to be smaller than the retrain-frequency Signed-off-by: F.N. Claessen <claessen@seita.nl> * fix: counter in train_predict_params starts at 1 Signed-off-by: F.N. Claessen <claessen@seita.nl> * dev: better error messages Signed-off-by: F.N. Claessen <claessen@seita.nl> * fix: update test case that tries to get two cycles out of the API Signed-off-by: F.N. Claessen <claessen@seita.nl> * fix: expose forecast-frequency to API users Signed-off-by: F.N. Claessen <claessen@seita.nl> * docs: update forecast-frequency default description Signed-off-by: F.N. Claessen <claessen@seita.nl> * docs: add comment Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> Signed-off-by: F.N. Claessen <claessen@seita.nl> * docs: add docstring Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> Signed-off-by: F.N. Claessen <claessen@seita.nl> * docs: update comment for selecting a default predict-period Signed-off-by: F.N. Claessen <claessen@seita.nl> * fix: remove code after merge conflict Signed-off-by: F.N. Claessen <claessen@seita.nl> * style: move flake8 noqa Signed-off-by: F.N. Claessen <claessen@seita.nl> * test(docs) update test comments Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * feat: move retrain-frequency to config Signed-off-by: F.N. Claessen <claessen@seita.nl> * feat(test): uncomment and fix dates params Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * feat: ensure a retrain-frequency of at least 1 hour Signed-off-by: F.N. Claessen <claessen@seita.nl> * fix: n_cycles now determined outside of schemas Signed-off-by: F.N. Claessen <claessen@seita.nl> * fix: update test coverage of ForecasterParametersSchema Signed-off-by: F.N. Claessen <claessen@seita.nl> * dev: partial fix for failing test Signed-off-by: F.N. Claessen <claessen@seita.nl> * fix: test_missing_data_logs_warning Signed-off-by: F.N. Claessen <claessen@seita.nl> * fix: test_train_period_capped_logs_warning Signed-off-by: F.N. Claessen <claessen@seita.nl> * fix: test_trigger_and_fetch_forecasts Signed-off-by: F.N. Claessen <claessen@seita.nl> * fix: remove sensor from documented payload (it's in the URI path already) Signed-off-by: F.N. Claessen <claessen@seita.nl> * feat: move training timing fields from parameters to config Signed-off-by: F.N. Claessen <claessen@seita.nl> * refactor: do not store any forecaster parameters by default Signed-off-by: F.N. Claessen <claessen@seita.nl> * refactor: move derivation of training period into class method, and add a docstring Signed-off-by: F.N. Claessen <claessen@seita.nl> * refactor: simplify logic for deriving the training period Signed-off-by: F.N. Claessen <claessen@seita.nl> * style: flake8 Signed-off-by: F.N. Claessen <claessen@seita.nl> * chore: update openapi-specs.json Signed-off-by: F.N. Claessen <claessen@seita.nl> * fix: remove CLI-only fields from nested config, too Signed-off-by: F.N. Claessen <claessen@seita.nl> * feat: remove end-date and training timing fields from API docs Signed-off-by: F.N. Claessen <claessen@seita.nl> * refactor: rename start-predict-date to start Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * refactor: change start-date to train-start Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * refactor: change end-date to end Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * refactor: update forecasting job JSON keys to match new naming conventions Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * refactor: update forecasting trigger schema keys to match new naming conventions Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * refactor: update job metadata keys to match new naming conventions Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * refactor: update forecasting job metadata keys to match new naming conventions Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * refactor: update forecasting parameter keys to match new naming conventions Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * refactor(test): update forecast job payload and job metadata keys to match new naming conventions Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * doc: fix comment typo Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * refactor(tests): update test cases to use 'end' and 'train-start' keys Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * chore: update field names in comments Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * refactor(tests): update date keys in test cases to match new naming conventions Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * style: black Signed-off-by: F.N. Claessen <claessen@seita.nl> * refactor(doc): update forecasting job example to use 'duration' instead of 'end' key Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * refactor(api): update forecasting trigger example to use 'duration' instead of 'end' key Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> * feat: remove max-forecast-horizon field from API docs Signed-off-by: F.N. Claessen <claessen@seita.nl> * docs: fix typo Signed-off-by: F.N. Claessen <claessen@seita.nl> * chore: update openapi-specs.json Signed-off-by: F.N. Claessen <claessen@seita.nl> * docs: clarify mention of planning horizon in forecast duration field Signed-off-by: F.N. Claessen <claessen@seita.nl> * docs: clarify use case for forecast-frequency field Signed-off-by: F.N. Claessen <claessen@seita.nl> * feat: expose duration field to the CLI Signed-off-by: F.N. Claessen <claessen@seita.nl> * docs: capitalize start of sentence Signed-off-by: F.N. Claessen <claessen@seita.nl> * fix: (CLI) description of end field Signed-off-by: F.N. Claessen <claessen@seita.nl> * style: flake8 Signed-off-by: F.N. Claessen <claessen@seita.nl> --------- Signed-off-by: Mohamed Belhsan Hmida <mohamedbelhsanhmida@gmail.com> Signed-off-by: F.N. Claessen <claessen@seita.nl> Co-authored-by: F.N. Claessen <claessen@seita.nl>
Signed-off-by: F.N. Claessen <claessen@seita.nl>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
start-dateto be set by the userend-dateto be set by the userForecasterParametersSchemadirectly to validate derivation of timing parametersdocumentation/changelog.rstLook & Feel
possible to run forecasting cli command without
start_dateorend_date:Examples:
flexmeasures add forecasts --sensor 20 --start-date "2025-01-01T00:00:00+01"flexmeasures add forecasts --sensor 20 --end-date "2025-01-15T00:00:00+01"flexmeasures add forecasts --sensor 20How to test
pytest flexmeasures/data/schemas/tests/test_forecasting.py...
Further Improvements
train-periodvsmax-training-windowincli.data_add.train_predict_pipeline(and for our first example inforecasting.rstwe should mentiontrain-periodrather thanmax-training-window).def train_predict_pipeline->def add_forecast