diff --git a/scripts/generate_config_md.py b/scripts/generate_config_md.py index 5e48099..e1bfe11 100755 --- a/scripts/generate_config_md.py +++ b/scripts/generate_config_md.py @@ -199,7 +199,7 @@ def generate_config_table_md( table += ":::\n\n" # Add an empty line after the table ins = create_model_from_examples(config) - if ins is not None: + if ins: # Transform to JSON (and manually to dict) to use custom serializers and then merge with parent keys ins_json = ins.model_dump_json(include_computed_fields=False) ins_dict = json.loads(ins_json) diff --git a/src/akkudoktoreos/config/config.py b/src/akkudoktoreos/config/config.py index 10fbe95..200c3da 100644 --- a/src/akkudoktoreos/config/config.py +++ b/src/akkudoktoreos/config/config.py @@ -341,10 +341,13 @@ class ConfigEOS(SingletonMixin, SettingsEOSDefaults): self._setup() def _create_initial_config_file(self) -> None: - if self.config_file_path is not None and not self.config_file_path.exists(): + if self.config_file_path and not self.config_file_path.exists(): self.config_file_path.parent.mkdir(parents=True, exist_ok=True) - with open(self.config_file_path, "w") as f: - f.write(self.model_dump_json(indent=4)) + try: + with open(self.config_file_path, "w") as f: + f.write(self.model_dump_json(indent=4)) + except Exception as e: + logger.error(f"Could not write configuration file '{self.config_file_path}': {e}") def _update_data_folder_path(self) -> None: """Updates path to the data directory.""" diff --git a/src/akkudoktoreos/optimization/genetic.py b/src/akkudoktoreos/optimization/genetic.py index 025549b..a8118e0 100644 --- a/src/akkudoktoreos/optimization/genetic.py +++ b/src/akkudoktoreos/optimization/genetic.py @@ -275,6 +275,7 @@ class optimization_problem(ConfigMixin, DevicesMixin, EnergyManagementSystemMixi # EV charge hours as a NumPy array of ints (if optimize_ev is True) eautocharge_hours_index = ( + # append ev charging states to individual np.array( individual[self.config.prediction.hours : self.config.prediction.hours * 2], dtype=int, diff --git a/src/akkudoktoreos/prediction/elecpriceimport.py b/src/akkudoktoreos/prediction/elecpriceimport.py index 83ddff0..1ec6684 100644 --- a/src/akkudoktoreos/prediction/elecpriceimport.py +++ b/src/akkudoktoreos/prediction/elecpriceimport.py @@ -63,12 +63,12 @@ class ElecPriceImport(ElecPriceProvider, PredictionImportProvider): return "ElecPriceImport" def _update_data(self, force_update: Optional[bool] = False) -> None: - if self.config.elecprice.provider_settings.import_file_path is not None: + if self.config.elecprice.provider_settings.import_file_path: self.import_from_file( self.config.elecprice.provider_settings.import_file_path, key_prefix="elecprice", ) - if self.config.elecprice.provider_settings.import_json is not None: + if self.config.elecprice.provider_settings.import_json: self.import_from_json( self.config.elecprice.provider_settings.import_json, key_prefix="elecprice" ) diff --git a/src/akkudoktoreos/prediction/loadimport.py b/src/akkudoktoreos/prediction/loadimport.py index f2c5ac1..456107c 100644 --- a/src/akkudoktoreos/prediction/loadimport.py +++ b/src/akkudoktoreos/prediction/loadimport.py @@ -62,7 +62,7 @@ class LoadImport(LoadProvider, PredictionImportProvider): return "LoadImport" def _update_data(self, force_update: Optional[bool] = False) -> None: - if self.config.load.provider_settings.import_file_path is not None: + if self.config.load.provider_settings.import_file_path: self.import_from_file(self.config.provider_settings.import_file_path, key_prefix="load") - if self.config.load.provider_settings.import_json is not None: + if self.config.load.provider_settings.import_json: self.import_from_json(self.config.load.provider_settings.import_json, key_prefix="load") diff --git a/src/akkudoktoreos/prediction/weatherimport.py b/src/akkudoktoreos/prediction/weatherimport.py index 7f0cc10..fa70003 100644 --- a/src/akkudoktoreos/prediction/weatherimport.py +++ b/src/akkudoktoreos/prediction/weatherimport.py @@ -63,11 +63,11 @@ class WeatherImport(WeatherProvider, PredictionImportProvider): return "WeatherImport" def _update_data(self, force_update: Optional[bool] = False) -> None: - if self.config.weather.provider_settings.import_file_path is not None: + if self.config.weather.provider_settings.import_file_path: self.import_from_file( self.config.weather.provider_settings.import_file_path, key_prefix="weather" ) - if self.config.weather.provider_settings.import_json is not None: + if self.config.weather.provider_settings.import_json: self.import_from_json( self.config.weather.provider_settings.import_json, key_prefix="weather" )