From 7a6f4a2bb9e13e4ce92deca0fb76c9e7703dcb20 Mon Sep 17 00:00:00 2001 From: aclist <92275929+aclist@users.noreply.github.com> Date: Wed, 11 Nov 2026 07:52:05 +0900 Subject: [PATCH] feat: immutable decorator --- dzgui/util/immutable.py | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 dzgui/util/immutable.py 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)