Skip to content

Commit 891497f

Browse files
spjuhelpeanutfun
andauthored
Apply suggestions from code review from Lukas
Co-authored-by: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>
1 parent 5b11b68 commit 891497f

1 file changed

Lines changed: 8 additions & 10 deletions

File tree

climada/entity/measures/measure_config.py

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535

3636

3737
@dataclass
38-
class _ModifierConfig(ABC):
38+
class _ModifierConfig:
3939
"""
4040
Abstract base class for all modifier configuration dataclasses.
4141
@@ -44,7 +44,7 @@ class _ModifierConfig(ABC):
4444
be instantiated directly.
4545
"""
4646

47-
def _filter_out_default_fields(self):
47+
def _filter_out_default_fields(self) -> dict[str, Any]:
4848
"""
4949
Partition the instance's fields into non-default and default groups.
5050
@@ -64,7 +64,7 @@ def _filter_out_default_fields(self):
6464
for defined_field in fields(self):
6565
val = getattr(self, defined_field.name)
6666
default = defined_field.default
67-
if defined_field.default_factory is not field().default_factory:
67+
if default is MISSING:
6868
default = defined_field.default_factory()
6969

7070
if val != default:
@@ -76,7 +76,7 @@ def _filter_out_default_fields(self):
7676
non_defaults.pop("haz_type")
7777
return non_defaults, defaults
7878

79-
def to_dict(self):
79+
def to_dict(self, omit_default : bool = True) -> dict[str, Any]:
8080
"""
8181
Serialize the config to a flat dictionary, omitting default values.
8282
@@ -129,10 +129,8 @@ def _filter_dict_to_fields(cls, to_filter: dict):
129129
dataclass fields on this class.
130130
"""
131131

132-
filtered = dict(
133-
filter(lambda k: k[0] in [f.name for f in fields(cls)], to_filter.items())
134-
)
135-
return filtered
132+
fields = [f.name for f in fields(cls)]
133+
return {key: val for key, val in to_filter.items() if key in fields}
136134

137135
def __repr__(self) -> str:
138136
"""
@@ -215,14 +213,14 @@ class ImpfsetModifierConfig(_ModifierConfig):
215213
"""
216214

217215
haz_type: str
218-
impf_ids: Optional[Union[int, str, list[Union[int, str]]]] = None
216+
impf_ids: int | str | list[int | str] | None = None
219217
impf_mdd_mult: float = 1.0
220218
impf_mdd_add: float = 0.0
221219
impf_paa_mult: float = 1.0
222220
impf_paa_add: float = 0.0
223221
impf_int_mult: float = 1.0
224222
impf_int_add: float = 0.0
225-
new_impfset_path: Optional[str] = None
223+
new_impfset_path: str | None = None
226224

227225
def __post_init__(self):
228226
config = self.to_dict()

0 commit comments

Comments
 (0)