diff --git a/reflex/base.py b/reflex/base.py index c7694204c..1b282e83f 100644 --- a/reflex/base.py +++ b/reflex/base.py @@ -2,7 +2,7 @@ from __future__ import annotations import os -from typing import Any, List, Type, Dict, Optional +from typing import Any, List, Type import pydantic from pydantic import BaseModel diff --git a/reflex/components/component.py b/reflex/components/component.py index bdaed586c..ac4cdee0d 100644 --- a/reflex/components/component.py +++ b/reflex/components/component.py @@ -21,6 +21,8 @@ from typing import ( Union, ) +from pydantic.fields import ModelPrivateAttr + from reflex.base import Base from reflex.compiler.templates import STATEFUL_COMPONENT from reflex.components.tags import Tag @@ -226,6 +228,8 @@ class Component(BaseComponent, ABC): inherited_rename_props = {} for parent in reversed(cls.mro()): if issubclass(parent, Component) and parent._rename_props: + if isinstance(parent._rename_props, ModelPrivateAttr): + parent._rename_props = parent._rename_props.default inherited_rename_props.update(parent._rename_props) cls._rename_props = inherited_rename_props diff --git a/reflex/state.py b/reflex/state.py index 0b00f16fb..cb726f03f 100644 --- a/reflex/state.py +++ b/reflex/state.py @@ -2080,6 +2080,7 @@ class StateManagerMemory(StateManager): class Config: """The Pydantic config.""" + # TODO: pydantic v2 fields = { "_states_locks": {"exclude": True}, } diff --git a/reflex/vars.py b/reflex/vars.py index 725efdec8..e0b94da78 100644 --- a/reflex/vars.py +++ b/reflex/vars.py @@ -31,6 +31,7 @@ from typing import ( get_origin, get_type_hints, ) + import pydantic_core from reflex import constants @@ -248,8 +249,8 @@ def _decode_var(value: str) -> tuple[VarData | None, str]: def json_loads(s): try: return VarData.model_validate(s) - except pydantic_core.ValidationError: - raise ValueError(f"Invalid VarData: {s}") + except pydantic_core.ValidationError as e: + raise ValueError(f"Invalid VarData: {s}") from e # return VarData.model_validate(var_data_config.json_loads(f'"{s}"')) # Compile regex for finding reflex var tags.