Initialize an EventHandler for dynamic vars (#808)
This commit is contained in:
parent
fc9b03ebd7
commit
65dc2fe80e
@ -192,7 +192,9 @@ class State(Base, ABC, extra=pydantic.Extra.allow):
|
|||||||
events = {
|
events = {
|
||||||
name: fn
|
name: fn
|
||||||
for name, fn in cls.__dict__.items()
|
for name, fn in cls.__dict__.items()
|
||||||
if not name.startswith("_") and isinstance(fn, Callable)
|
if not name.startswith("_")
|
||||||
|
and isinstance(fn, Callable)
|
||||||
|
and not isinstance(fn, EventHandler)
|
||||||
}
|
}
|
||||||
cls.event_handlers = {name: EventHandler(fn=fn) for name, fn in events.items()}
|
cls.event_handlers = {name: EventHandler(fn=fn) for name, fn in events.items()}
|
||||||
for name, event_handler in cls.event_handlers.items():
|
for name, event_handler in cls.event_handlers.items():
|
||||||
@ -364,7 +366,9 @@ class State(Base, ABC, extra=pydantic.Extra.allow):
|
|||||||
"""
|
"""
|
||||||
setter_name = prop.get_setter_name(include_state=False)
|
setter_name = prop.get_setter_name(include_state=False)
|
||||||
if setter_name not in cls.__dict__:
|
if setter_name not in cls.__dict__:
|
||||||
setattr(cls, setter_name, prop.get_setter())
|
event_handler = EventHandler(fn=prop.get_setter())
|
||||||
|
cls.event_handlers[setter_name] = event_handler
|
||||||
|
setattr(cls, setter_name, event_handler)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def _set_default_value(cls, prop: BaseVar):
|
def _set_default_value(cls, prop: BaseVar):
|
||||||
|
Loading…
Reference in New Issue
Block a user