Files
blender-portable-repo/scripts/addons/Rokoko Libraries/python311/graphql/pyutils/frozen_dict.py
T
2026-03-17 14:58:51 -06:00

53 lines
1.1 KiB
Python

from copy import deepcopy
from typing import Dict, TypeVar
from .frozen_error import FrozenError
__all__ = ["FrozenDict"]
KT = TypeVar("KT")
VT = TypeVar("VT")
class FrozenDict(Dict[KT, VT]):
"""Dictionary that can only be read, but not changed.
.. deprecated:: 3.2
Use dicts and the Mapping type instead. Will be removed in v3.3.
"""
def __delitem__(self, key):
raise FrozenError
def __setitem__(self, key, value):
raise FrozenError
def __iadd__(self, value):
raise FrozenError
def __hash__(self) -> int: # type: ignore
return hash(tuple(self.items()))
def __copy__(self) -> "FrozenDict":
return FrozenDict(self)
copy = __copy__
def __deepcopy__(self, memo: Dict) -> "FrozenDict":
return FrozenDict({k: deepcopy(v, memo) for k, v in self.items()})
def clear(self):
raise FrozenError
def pop(self, key, default=None):
raise FrozenError
def popitem(self):
raise FrozenError
def setdefault(self, key, default=None):
raise FrozenError
def update(self, other=None): # type: ignore
raise FrozenError