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)
|
||||
|
||||
if issubclass(output, StringVar):
|
||||
return ToStringOperation.create(self)
|
||||
return ToStringOperation.create(self, var_type or str)
|
||||
|
||||
if issubclass(output, (ObjectVar, Base)):
|
||||
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)):
|
||||
return self.to(ArrayVar, self._var_type)
|
||||
if issubclass(fixed_type, str):
|
||||
return self.to(StringVar)
|
||||
return self.to(StringVar, self._var_type)
|
||||
if issubclass(fixed_type, Base):
|
||||
return self.to(ObjectVar, self._var_type)
|
||||
return self
|
||||
|
@ -1,7 +1,7 @@
|
||||
import json
|
||||
import math
|
||||
import typing
|
||||
from typing import Dict, List, Set, Tuple, Union
|
||||
from typing import Dict, List, Optional, Set, Tuple, Union, cast
|
||||
|
||||
import pytest
|
||||
from pandas import DataFrame
|
||||
@ -1756,3 +1756,21 @@ def test_invalid_computed_var_deps(deps: List):
|
||||
)
|
||||
def test_var(state) -> int:
|
||||
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