32 lines
731 B
Python
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))
|