diff --git a/CHANGELOG.md b/CHANGELOG.md index 56b79483..c4feb380 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,10 @@ Changelog follow https://keepachangelog.com/ format. ## [Unreleased] +* `edc`: + * Changed: Raise an error if `allow_unfrozen=` is used on a non-frozen + dataclass + ## [1.5.0] - 2023-09-19 * `ecolab`: diff --git a/etils/edc/frozen_utils.py b/etils/edc/frozen_utils.py index 5ee645dd..a6338c6b 100644 --- a/etils/edc/frozen_utils.py +++ b/etils/edc/frozen_utils.py @@ -30,6 +30,11 @@ def add_unfrozen(cls: _Cls) -> _Cls: """Add the `frozen`, `unfrozen` methods.""" + if not cls.__dataclass_params__.frozen: + raise ValueError( + 'allow_unfrozen require the dataclass to be defined with' + f' `frozen=True`. For {cls}' + ) cls_frozen = getattr(cls, 'frozen', None) cls_unfrozen = getattr(cls, 'has_unfrozen', None)