Merge remote-tracking branch 'upstream/main' into hybrid-properties
This commit is contained in:
commit
a541107416
@ -416,7 +416,7 @@ class ImmutableVar(Var, Generic[VAR_TYPE]):
|
|||||||
return ToArrayOperation.create(self, var_type or list)
|
return ToArrayOperation.create(self, var_type or list)
|
||||||
|
|
||||||
if issubclass(output, StringVar):
|
if issubclass(output, StringVar):
|
||||||
return ToStringOperation.create(self)
|
return ToStringOperation.create(self, var_type or str)
|
||||||
|
|
||||||
if issubclass(output, (ObjectVar, Base)):
|
if issubclass(output, (ObjectVar, Base)):
|
||||||
return ToObjectOperation.create(self, var_type or dict)
|
return ToObjectOperation.create(self, var_type or dict)
|
||||||
@ -496,7 +496,7 @@ class ImmutableVar(Var, Generic[VAR_TYPE]):
|
|||||||
if issubclass(fixed_type, (list, tuple, set)):
|
if issubclass(fixed_type, (list, tuple, set)):
|
||||||
return self.to(ArrayVar, self._var_type)
|
return self.to(ArrayVar, self._var_type)
|
||||||
if issubclass(fixed_type, str):
|
if issubclass(fixed_type, str):
|
||||||
return self.to(StringVar)
|
return self.to(StringVar, self._var_type)
|
||||||
if issubclass(fixed_type, Base):
|
if issubclass(fixed_type, Base):
|
||||||
return self.to(ObjectVar, self._var_type)
|
return self.to(ObjectVar, self._var_type)
|
||||||
return self
|
return self
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import json
|
import json
|
||||||
import math
|
import math
|
||||||
import typing
|
import typing
|
||||||
from typing import Dict, List, Set, Tuple, Union
|
from typing import Dict, List, Optional, Set, Tuple, Union, cast
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
from pandas import DataFrame
|
from pandas import DataFrame
|
||||||
@ -1756,3 +1756,21 @@ def test_invalid_computed_var_deps(deps: List):
|
|||||||
)
|
)
|
||||||
def test_var(state) -> int:
|
def test_var(state) -> int:
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
|
|
||||||
|
def test_to_string_operation():
|
||||||
|
class Email(str): ...
|
||||||
|
|
||||||
|
class TestState(BaseState):
|
||||||
|
optional_email: Optional[Email] = None
|
||||||
|
email: Email = Email("test@reflex.dev")
|
||||||
|
|
||||||
|
assert (
|
||||||
|
str(TestState.optional_email) == f"{TestState.get_full_name()}.optional_email"
|
||||||
|
)
|
||||||
|
my_state = TestState()
|
||||||
|
assert my_state.optional_email is None
|
||||||
|
assert my_state.email == "test@reflex.dev"
|
||||||
|
|
||||||
|
assert cast(ImmutableVar, TestState.email)._var_type == Email
|
||||||
|
assert cast(ImmutableVar, TestState.optional_email)._var_type == Optional[Email]
|
||||||
|
Loading…
Reference in New Issue
Block a user