state: unbreak backend vars

This one was really esoteric... if backend vars are used, then a
`model_post_init` gets synthesized, and reflex tries to treat that as an event
handler... but the args cannot convert correctly, so it raises a validation
error when attempting to instantiate the EventSpec (which is also a BaseModel).
This commit is contained in:
Masen Furer 2023-12-19 15:28:53 -08:00
parent 325c638379
commit 62d36bfecc
No known key found for this signature in database
GPG Key ID: B0008AD22B3B3A95

View File

@ -153,6 +153,10 @@ RESERVED_BACKEND_VAR_NAMES = {
"_abc_impl", # pydantic v2 adds this
}
SPECIAL_METHODS = {
"model_post_init", # never treat this as an event handler
}
class BaseState(Base, ABC, extra=pydantic.Extra.allow):
"""The state of the app."""
@ -358,6 +362,7 @@ class BaseState(Base, ABC, extra=pydantic.Extra.allow):
name: fn
for name, fn in cls.__dict__.items()
if not name.startswith("_")
and name not in SPECIAL_METHODS
and isinstance(fn, Callable)
and not isinstance(fn, EventHandler)
}