From 34e1550f8ada687e94fb083632c91ecaef62a84f Mon Sep 17 00:00:00 2001 From: salemsd Date: Mon, 10 Feb 2025 14:10:56 +0100 Subject: [PATCH] fix: add comments to extract methods --- .../service/local_services/renewable_local.py | 14 ++++++++++---- .../craft/service/local_services/thermal_local.py | 10 ++++++---- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/antares/craft/service/local_services/renewable_local.py b/src/antares/craft/service/local_services/renewable_local.py index 6db87de8..d502a4ca 100644 --- a/src/antares/craft/service/local_services/renewable_local.py +++ b/src/antares/craft/service/local_services/renewable_local.py @@ -40,14 +40,20 @@ def get_renewable_matrix(self, cluster_id: str, area_id: str) -> pd.DataFrame: ) def _extract_renewable_properties(self, renewable_data: dict[str, Any]) -> RenewableClusterProperties: + # get_type_hints will yield a dict with every property with every local property as key and its type as the value property_types = get_type_hints(RenewableClusterPropertiesLocal) - key_mapping = {"name": "renewable_name"} + # the name key is called "name" in renewable_data but "renewable_name" in the properties, that's why we map it + property_mapping = {"name": "renewable_name"} + # for each property in renewable_data, we will type it according to property_types while making sure it's not None + # because it's Optional. If it's "name" then we get its mapping from the property_mapping dict parsed_data = { - key_mapping.get(key, key): property_types[key_mapping.get(key, key)](value) if value is not None else None - for key, value in renewable_data.items() - if key_mapping.get(key, key) in property_types + property_mapping.get(property, property): property_types[property_mapping.get(property, property)](value) + if value is not None + else None + for property, value in renewable_data.items() + if property_mapping.get(property, property) in property_types } return RenewableClusterPropertiesLocal(**parsed_data).yield_renewable_cluster_properties() diff --git a/src/antares/craft/service/local_services/thermal_local.py b/src/antares/craft/service/local_services/thermal_local.py index 879252ec..50e83f55 100644 --- a/src/antares/craft/service/local_services/thermal_local.py +++ b/src/antares/craft/service/local_services/thermal_local.py @@ -60,12 +60,14 @@ def get_thermal_matrix(self, thermal_cluster: ThermalCluster, ts_name: ThermalCl def _extract_thermal_properties(self, thermal_data: dict[str, Any]) -> ThermalClusterProperties: property_types = get_type_hints(ThermalClusterPropertiesLocal) - key_mapping = {"name": "thermal_name"} + property_mapping = {"name": "thermal_name"} parsed_data = { - key_mapping.get(key, key): property_types[key_mapping.get(key, key)](value) if value is not None else None - for key, value in thermal_data.items() - if key_mapping.get(key, key) in property_types + property_mapping.get(property, property): property_types[property_mapping.get(property, property)](value) + if value is not None + else None + for property, value in thermal_data.items() + if property_mapping.get(property, property) in property_types } return ThermalClusterPropertiesLocal(**parsed_data).yield_thermal_cluster_properties()