diff --git a/scabha/cargo.py b/scabha/cargo.py index ed04aa07..ba85e736 100644 --- a/scabha/cargo.py +++ b/scabha/cargo.py @@ -2,7 +2,7 @@ import re, importlib, sys from collections import OrderedDict from enum import Enum, IntEnum -from dataclasses import dataclass +from dataclasses import dataclass, field from omegaconf import MISSING, ListConfig, DictConfig, OmegaConf import rich.box @@ -141,7 +141,7 @@ class Parameter(object): nom_de_guerre: Optional[str] = None # policies object, specifying a non-default way to handle this parameter - policies: ParameterPolicies = ParameterPolicies() + policies: ParameterPolicies = field(default_factory=ParameterPolicies) # Parameter category, purely cosmetic, used for generating help and debug messages. # Assigned automatically if None, but a schema may explicitly mark parameters as e.g. diff --git a/scabha/schema_utils.py b/scabha/schema_utils.py index 68f5bc16..9cf51de5 100644 --- a/scabha/schema_utils.py +++ b/scabha/schema_utils.py @@ -109,7 +109,7 @@ def nested_schema_to_dataclass(nested: Dict[str, Dict], class_name: str, bases=( dcls = schema_to_dataclass(content, f"{class_name}_{section}", bases=section_bases, post_init=post_init_map.get(section)) - fields.append((section, dcls, field(default=dcls()))) + fields.append((section, dcls, field(default_factory=dcls))) # return the outer dataclass return make_dataclass(class_name, fields, bases=bases)