Files
hooked-containers/src/hooked_containers/state.py
John Lancaster 7f4ed3a4b2 update
2026-02-22 17:21:05 -06:00

32 lines
731 B
Python

from datetime import datetime
from .mapping import HookedMapping
class EntityState(HookedMapping[str]):
pass
class DomainState(HookedMapping[str]):
_data: EntityState
def __setitem__(self, key, value):
super().__setitem__(key, value)
super().__setitem__("last_changed", datetime.now())
class NameSpaceState(HookedMapping[str]):
_data: DomainState
def __iter__(self):
return super().__iter__()
def __setitem__(self, key, value):
super().__setitem__(key, value)
# print("ns SetItem")
def __getitem__(self, key):
val = super().__getitem__(key)
# print("ns GetItem")
return DomainState(val, hook=self.hook, path=self.new_path(key))