diff --git a/dzgui/util/immutable.py b/dzgui/util/immutable.py new file mode 100644 index 0000000..98c0ce4 --- /dev/null +++ b/dzgui/util/immutable.py @@ -0,0 +1,9 @@ +from dataclasses import dataclass +from typing import Callable + +def immutable_dataclass(cls: type | None = None, **kwargs: bool) -> type | Callable[[type], type]: + kwargs["slots"] = True + kwargs["frozen"] = True + if cls is None: + return lambda c: dataclass(c, **kwargs) + return dataclass(cls, **kwargs)