Skip to content

Commit 73bb823

Browse files
authored
Dynamic state addition (#29)
* dynamic state addition add support for dynamically adding state to States. * apply black and comments. * Add missing DataType. * default value to None in State. * simplified append * apply comment.
1 parent e00b472 commit 73bb823

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

pyhoma/models.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ def __len__(self) -> int:
134134
class State:
135135
__slots__ = "name", "value", "type"
136136

137-
def __init__(self, name: str, value: str, type: int, **_: Any):
137+
def __init__(self, name: str, type: int, value: Optional[str] = None, **_: Any):
138138
self.name = name
139139
self.value = value
140140
self.type = DataType(type)
@@ -153,6 +153,13 @@ def __contains__(self, name: str) -> bool:
153153
def __getitem__(self, name: str) -> Optional[State]:
154154
return next((state for state in self._states if state.name == name), None)
155155

156+
def __setitem__(self, name: str, state: State) -> None:
157+
found = self.__getitem__(name)
158+
if found is None:
159+
self._states.append(state)
160+
else:
161+
self._states[self._states.index(found)] = state
162+
156163
def __len__(self) -> int:
157164
return len(self._states)
158165

@@ -260,6 +267,7 @@ class ProductType(Enum):
260267

261268

262269
class DataType(Enum):
270+
NONE = 0
263271
INTEGER = 1
264272
FLOAT = 2
265273
STRING = 3

0 commit comments

Comments
 (0)