Skip to content

Commit af5ab29

Browse files
committed
Fix: Parsing simplicity refactor.
1 parent 29ea48e commit af5ab29

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

src/compoconf/parsing.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -246,12 +246,10 @@ def _recursive_type_unwrapping(typ) -> list[type]:
246246

247247

248248
def _handle_dataclass_cases(config_class: type, data: Any) -> Any:
249-
if is_dataclass(data) and isinstance(data, config_class):
250-
return data
251249
if hasattr(config_class, "class_name") and "class_name" in data and config_class.class_name != data["class_name"]:
252250
raise ValueError(f"Bad data {data['class_name']}/config_class {config_class.class_name} match.")
253251
if issubclass(config_class, NonStrictDataclass):
254-
if "_extras" in data:
252+
if "_extras" in data and isinstance(data, dict):
255253
data = {**data}
256254
data.update(data["_extras"])
257255
del data["_extras"]
@@ -277,6 +275,8 @@ def _handle_dataclass(config_class: type, data: Any, strict: bool = True, key_hi
277275
278276
"""
279277
dataclass_dict = {}
278+
if is_dataclass(data) and isinstance(data, config_class):
279+
return data
280280
data = _handle_dataclass_cases(config_class, data)
281281
for key, key_type in _get_all_annotations(config_class).items():
282282
if key in data:

0 commit comments

Comments
 (0)