[REF-3010] Circular Imports Fix (#3433)
This commit is contained in:
parent
a3cbfefb22
commit
6420fb1252
@ -9,7 +9,7 @@ class Html(Div):
|
||||
"""Render the html.
|
||||
|
||||
Returns:
|
||||
The code to render the html component.
|
||||
The code to render the html component.
|
||||
"""
|
||||
|
||||
# The HTML to render.
|
||||
|
@ -185,7 +185,7 @@ from .elements.tables import tfoot as tfoot
|
||||
from .elements.tables import th as th
|
||||
from .elements.tables import thead as thead
|
||||
from .elements.tables import tr as tr
|
||||
from .elements.tables import Tbody as Tbody
|
||||
from .elements.tables import tbody as tbody
|
||||
from .elements.tables import Caption as Caption
|
||||
from .elements.tables import Col as Col
|
||||
from .elements.tables import Colgroup as Colgroup
|
||||
@ -195,6 +195,7 @@ from .elements.tables import Tfoot as Tfoot
|
||||
from .elements.tables import Th as Th
|
||||
from .elements.tables import Thead as Thead
|
||||
from .elements.tables import Tr as Tr
|
||||
from .elements.tables import Tbody as Tbody
|
||||
from .elements.typography import blockquote as blockquote
|
||||
from .elements.typography import dd as dd
|
||||
from .elements.typography import div as div
|
||||
|
@ -102,7 +102,7 @@ _MAPPING = {
|
||||
"th",
|
||||
"thead",
|
||||
"tr",
|
||||
"Tbody",
|
||||
"tbody",
|
||||
],
|
||||
"typography": [
|
||||
"blockquote",
|
||||
|
@ -183,7 +183,7 @@ from .tables import tfoot as tfoot
|
||||
from .tables import th as th
|
||||
from .tables import thead as thead
|
||||
from .tables import tr as tr
|
||||
from .tables import Tbody as Tbody
|
||||
from .tables import tbody as tbody
|
||||
from .tables import Caption as Caption
|
||||
from .tables import Col as Col
|
||||
from .tables import Colgroup as Colgroup
|
||||
@ -193,6 +193,7 @@ from .tables import Tfoot as Tfoot
|
||||
from .tables import Th as Th
|
||||
from .tables import Thead as Thead
|
||||
from .tables import Tr as Tr
|
||||
from .tables import Tbody as Tbody
|
||||
from .typography import blockquote as blockquote
|
||||
from .typography import dd as dd
|
||||
from .typography import div as div
|
||||
@ -316,7 +317,7 @@ _MAPPING = {
|
||||
"th",
|
||||
"thead",
|
||||
"tr",
|
||||
"Tbody",
|
||||
"tbody",
|
||||
],
|
||||
"typography": [
|
||||
"blockquote",
|
||||
|
@ -9,8 +9,7 @@ import re
|
||||
from typing import TYPE_CHECKING, Any, Callable, List, Optional, Union
|
||||
|
||||
from reflex import constants
|
||||
from reflex.utils import exceptions, serializers, types
|
||||
from reflex.utils.serializers import serialize
|
||||
from reflex.utils import exceptions, types
|
||||
from reflex.vars import BaseVar, Var
|
||||
|
||||
if TYPE_CHECKING:
|
||||
@ -400,6 +399,7 @@ def format_prop(
|
||||
"""
|
||||
# import here to avoid circular import.
|
||||
from reflex.event import EventChain
|
||||
from reflex.utils import serializers
|
||||
|
||||
try:
|
||||
# Handle var props.
|
||||
@ -687,6 +687,8 @@ def format_state(value: Any, key: Optional[str] = None) -> Any:
|
||||
Raises:
|
||||
TypeError: If the given value is not a valid state.
|
||||
"""
|
||||
from reflex.utils import serializers
|
||||
|
||||
# Handle dicts.
|
||||
if isinstance(value, dict):
|
||||
return {k: format_state(v, k) for k, v in value.items()}
|
||||
@ -700,7 +702,7 @@ def format_state(value: Any, key: Optional[str] = None) -> Any:
|
||||
return value
|
||||
|
||||
# Serialize the value.
|
||||
serialized = serialize(value)
|
||||
serialized = serializers.serialize(value)
|
||||
if serialized is not None:
|
||||
return serialized
|
||||
|
||||
@ -803,7 +805,9 @@ def json_dumps(obj: Any) -> str:
|
||||
Returns:
|
||||
A string
|
||||
"""
|
||||
return json.dumps(obj, ensure_ascii=False, default=serialize)
|
||||
from reflex.utils import serializers
|
||||
|
||||
return json.dumps(obj, ensure_ascii=False, default=serializers.serialize)
|
||||
|
||||
|
||||
def unwrap_vars(value: str) -> str:
|
||||
|
@ -12,7 +12,7 @@ from typing import Any, Callable, Dict, List, Set, Tuple, Type, Union, get_type_
|
||||
|
||||
from reflex.base import Base
|
||||
from reflex.constants.colors import Color, format_color
|
||||
from reflex.utils import exceptions, format, types
|
||||
from reflex.utils import exceptions, types
|
||||
|
||||
# Mapping from type to a serializer.
|
||||
# The serializer should convert the type to a JSON object.
|
||||
@ -154,6 +154,8 @@ def serialize_primitive(value: Union[bool, int, float, None]) -> str:
|
||||
Returns:
|
||||
The serialized number/bool/None.
|
||||
"""
|
||||
from reflex.utils import format
|
||||
|
||||
return format.json_dumps(value)
|
||||
|
||||
|
||||
@ -180,6 +182,8 @@ def serialize_list(value: Union[List, Tuple, Set]) -> str:
|
||||
Returns:
|
||||
The serialized list.
|
||||
"""
|
||||
from reflex.utils import format
|
||||
|
||||
# Dump the list to a string.
|
||||
fprop = format.json_dumps(list(value))
|
||||
|
||||
@ -202,6 +206,7 @@ def serialize_dict(prop: Dict[str, Any]) -> str:
|
||||
"""
|
||||
# Import here to avoid circular imports.
|
||||
from reflex.event import EventHandler
|
||||
from reflex.utils import format
|
||||
|
||||
prop_dict = {}
|
||||
|
||||
|
@ -42,7 +42,7 @@ from sqlalchemy.orm import (
|
||||
|
||||
from reflex import constants
|
||||
from reflex.base import Base
|
||||
from reflex.utils import console, serializers
|
||||
from reflex.utils import console
|
||||
|
||||
if sys.version_info >= (3, 12):
|
||||
from typing import override
|
||||
@ -392,6 +392,8 @@ def is_valid_var_type(type_: Type) -> bool:
|
||||
Returns:
|
||||
Whether the type is a valid prop type.
|
||||
"""
|
||||
from reflex.utils import serializers
|
||||
|
||||
if is_union(type_):
|
||||
return all((is_valid_var_type(arg) for arg in get_args(type_)))
|
||||
return _issubclass(type_, StateVar) or serializers.has_serializer(type_)
|
||||
|
@ -35,7 +35,7 @@ from typing import (
|
||||
|
||||
from reflex import constants
|
||||
from reflex.base import Base
|
||||
from reflex.utils import console, format, imports, serializers, types
|
||||
from reflex.utils import console, imports, serializers, types
|
||||
from reflex.utils.exceptions import VarAttributeError, VarTypeError, VarValueError
|
||||
|
||||
# This module used to export ImportVar itself, so we still import it for export here
|
||||
@ -364,6 +364,8 @@ class Var:
|
||||
Raises:
|
||||
VarTypeError: If the value is JSON-unserializable.
|
||||
"""
|
||||
from reflex.utils import format
|
||||
|
||||
# Check for none values.
|
||||
if value is None:
|
||||
return None
|
||||
@ -543,6 +545,8 @@ class Var:
|
||||
Returns:
|
||||
The wrapped var, i.e. {state.var}.
|
||||
"""
|
||||
from reflex.utils import format
|
||||
|
||||
out = (
|
||||
self._var_full_name
|
||||
if self._var_is_local
|
||||
@ -600,6 +604,8 @@ class Var:
|
||||
Raises:
|
||||
VarTypeError: If the var is not indexable.
|
||||
"""
|
||||
from reflex.utils import format
|
||||
|
||||
# Indexing is only supported for strings, lists, tuples, dicts, and dataframes.
|
||||
if not (
|
||||
types._issubclass(self._var_type, Union[List, Dict, Tuple, str])
|
||||
@ -793,6 +799,8 @@ class Var:
|
||||
VarTypeError: If the operation between two operands is invalid.
|
||||
VarValueError: If flip is set to true and value of operand is not provided
|
||||
"""
|
||||
from reflex.utils import format
|
||||
|
||||
if isinstance(other, str):
|
||||
other = Var.create(json.dumps(other))
|
||||
else:
|
||||
@ -1671,6 +1679,8 @@ class Var:
|
||||
Returns:
|
||||
The full name of the var.
|
||||
"""
|
||||
from reflex.utils import format
|
||||
|
||||
if not self._var_full_name_needs_state_prefix:
|
||||
return self._var_name
|
||||
return (
|
||||
@ -1690,6 +1700,8 @@ class Var:
|
||||
Returns:
|
||||
The var with the set state.
|
||||
"""
|
||||
from reflex.utils import format
|
||||
|
||||
state_name = state if isinstance(state, str) else state.get_full_name()
|
||||
new_var_data = VarData(
|
||||
state=state_name,
|
||||
|
Loading…
Reference in New Issue
Block a user