If you don’t want anybody to adjust the attributes of a class, use @dataclass(frozen=True).
@dataclass(frozen=True)
In the example above, changing the attribute color of the DataClassDog‘s instance will throw an error.
DataClassDog
Simplify Nested Structures with Python Data Classes
Hydra: YAML-Based Config Management Made Simple
Loguru: Configure Professional Logging in a Single Line