Unfreeze datastructures
This commit is contained in:
parent
ef844c9b57
commit
162dd48748
@ -16,7 +16,7 @@ from .tree_formatters import (
|
|||||||
from .value_types import QEnum, Values, values_from_json
|
from .value_types import QEnum, Values, values_from_json
|
||||||
|
|
||||||
|
|
||||||
@dataclass(frozen=True, eq=True, order=True)
|
@dataclass(frozen=False, eq=True, order=True, unsafe_hash=True)
|
||||||
class Qube:
|
class Qube:
|
||||||
data: NodeData
|
data: NodeData
|
||||||
children: tuple['Qube', ...]
|
children: tuple['Qube', ...]
|
||||||
|
@ -6,7 +6,7 @@ from frozendict import frozendict
|
|||||||
from .value_types import Values
|
from .value_types import Values
|
||||||
|
|
||||||
|
|
||||||
@dataclass(frozen=True, eq=True, order=True)
|
@dataclass(frozen=False, eq=True, order=True, unsafe_hash=True)
|
||||||
class NodeData:
|
class NodeData:
|
||||||
key: str
|
key: str
|
||||||
values: Values
|
values: Values
|
||||||
@ -15,7 +15,7 @@ class NodeData:
|
|||||||
def summary(self) -> str:
|
def summary(self) -> str:
|
||||||
return f"{self.key}={self.values.summary()}" if self.key != "root" else "root"
|
return f"{self.key}={self.values.summary()}" if self.key != "root" else "root"
|
||||||
|
|
||||||
@dataclass(frozen=True, eq=True, order=True)
|
@dataclass(frozen=False, eq=True, order=True)
|
||||||
class RootNodeData(NodeData):
|
class RootNodeData(NodeData):
|
||||||
"Helper class to print a custom root name"
|
"Helper class to print a custom root name"
|
||||||
def summary(self) -> str:
|
def summary(self) -> str:
|
||||||
|
@ -38,8 +38,8 @@ class Values(ABC):
|
|||||||
|
|
||||||
T = TypeVar("T")
|
T = TypeVar("T")
|
||||||
EnumValuesType = FrozenSet[T]
|
EnumValuesType = FrozenSet[T]
|
||||||
@dataclass(frozen=True, order=True)
|
|
||||||
|
|
||||||
|
@dataclass(frozen=True, order=True)
|
||||||
class QEnum(Values):
|
class QEnum(Values):
|
||||||
"""
|
"""
|
||||||
The simplest kind of key value is just a list of strings.
|
The simplest kind of key value is just a list of strings.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user