configurator.config_entsoe.ConfigEntsoe(
country_code= 'DE' ,
periods= default_periods(),
lags_consider= (lambda : list (range (1 , 24 )))(),
train_size= (lambda : pd.Timedelta(days= (3 * 365 )))(),
end_train_default= '2025-12-31 00:00+00:00' ,
delta_val= (lambda : pd.Timedelta(hours= (24 * 7 * 10 )))(),
predict_size= 24 ,
cv_block_size= None ,
refit_size= 7 ,
random_state= 314159 ,
n_hyperparameters_trials= 20 ,
data_filename= 'interim/energy_load.csv' ,
targets= None ,
use_outlier_detection= True ,
contamination= 0.01 ,
imputation_method= 'weighted' ,
window_size= 72 ,
imputation_window_size= None ,
use_exogenous_features= True ,
latitude= 51.5136 ,
longitude= 7.4653 ,
timezone= 'UTC' ,
state= 'NW' ,
include_weather_windows= False ,
include_holiday_features= False ,
include_holiday_adjacency_features= False ,
use_population_weighted_weather= False ,
include_degree_hours= False ,
include_apparent_temperature= False ,
degree_hours_base_heating= 15.0 ,
degree_hours_base_cooling= 22.0 ,
include_ephemeris_features= False ,
include_day_type_features= False ,
include_school_holiday_features= False ,
poly_features_degree= 1 ,
max_poly_features= 10 ,
poly_mi_n_jobs=- 1 ,
poly_mi_sample_size= 4000 ,
include_covid_infection_rate= False ,
include_entsoe_forecast_load= False ,
include_entsoe_renewable_forecast= False ,
include_entsoe_net_load= False ,
include_entsoe_day_ahead_price= False ,
include_football_match_window= False ,
include_energy_saving_window= False ,
index_name= 'Time (UTC)' ,
bounds= None ,
verbose= False ,
cache_home= None ,
n_trials_optuna= 15 ,
n_trials_spotoptim= 10 ,
n_initial_spotoptim= 5 ,
max_time_spotoptim= None ,
warm_start_lags= (lambda : list (DEFAULT_WARM_START_LAGS))(),
task= 'lazy' ,
agg_weights= None ,
forecaster_factory= None ,
data_loader= None ,
test_data_loader= None ,
auto_save_models= True ,
data_frame_name= 'default' ,
number_folds= 10 ,
on_weather_failure= 'raise' ,
on_exog_provider_failure= 'raise' ,
exog_max_gap_hours= 0 ,
exog_max_tail_gap_hours= 0 ,
exog_provider_window= 'full' ,
target_qc_range_mw= None ,
target_qc_step_mw= None ,
target_qc_window_days= None ,
target_corruption_policy= 'abort' ,
target_max_heal_hours= 0 ,
target_anchor_zone_hours= 168 ,
target_qc_deviation_mw= None ,
target_qc_deviation_ref= None ,
target_qc_deviation_slots= 2 ,
retrain_max_age= (lambda : pd.Timedelta(days= 7 ))(),
)
Configuration for the ENTSO-E forecasting pipeline.
Single-target counterpart to ConfigMulti, used by the ENTSO-E CLI (spotforecast2.tasks.task_entsoe) and any single-target pipeline routed through spotforecast2.multitask.runner.run(config_cls=ConfigEntsoe).
ConfigEntsoe inherits every field and method of ConfigMulti — so any feature flag added to ConfigMulti is available here automatically (this is what closes the historical feature-flag parity gap structurally, rather than via a hand-maintained mirror). It differs from ConfigMulti in exactly two ways:
index_name defaults to "Time (UTC)" (the ENTSO-E CSV time column) instead of "DateTime".
it adds retrain_max_age — the maximum age of a previously trained model before retraining is required (consumed by spotforecast2_safe.manager.trainer.should_retrain).
See ConfigMulti for the full field reference (training/validation windows, feature toggles, exogenous-provider flags, target-corruption knobs, …).
Parameters
index_name
str
Datetime column name used when resetting the index. Defaults to "Time (UTC)".
'Time (UTC)'
retrain_max_age
pd .Timedelta
Maximum age of a trained model before a retrain is forced. Defaults to pd.Timedelta(days=7).
(lambda: pd.Timedelta(days=7))()
Examples
import pandas as pd
from spotforecast2_safe.configurator.config_entsoe import ConfigEntsoe
from spotforecast2_safe.configurator.config_multi import ConfigMulti
config = ConfigEntsoe(country_code= "DE" )
# ENTSO-E-specific defaults:
print ("index_name:" , config.index_name)
print ("retrain_max_age:" , config.retrain_max_age)
assert config.index_name == "Time (UTC)"
assert config.retrain_max_age == pd.Timedelta(days= 7 )
# Inherits the full ConfigMulti surface, incl. the opt-in feature flags:
assert isinstance (config, ConfigMulti)
config = ConfigEntsoe(
include_ephemeris_features= True ,
include_day_type_features= True ,
include_degree_hours= True ,
)
print ("ephemeris:" , config.include_ephemeris_features)
print ("predict_size:" , config.predict_size)
index_name: Time (UTC)
retrain_max_age: 7 days 00:00:00
ephemeris: True
predict_size: 24