Skip to content

Commit 73ef17b

Browse files
fix: allow replacing of _var_type in ComputedVar (worked in previous reflex versions) (#4730)
1 parent d6e08e9 commit 73ef17b

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

reflex/vars/base.py

-2
Original file line numberDiff line numberDiff line change
@@ -2122,14 +2122,12 @@ def _add_static_dep(
21222122
@override
21232123
def _replace(
21242124
self,
2125-
_var_type: Any = None,
21262125
merge_var_data: VarData | None = None,
21272126
**kwargs: Any,
21282127
) -> Self:
21292128
"""Replace the attributes of the ComputedVar.
21302129
21312130
Args:
2132-
_var_type: ignored in ComputedVar.
21332131
merge_var_data: VarData to merge into the existing VarData.
21342132
**kwargs: Var fields to update.
21352133

tests/units/vars/test_base.py

+15-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22

33
import pytest
44

5-
from reflex.vars.base import figure_out_type
5+
from reflex.state import State
6+
from reflex.vars.base import computed_var, figure_out_type
67

78

89
class CustomDict(dict[str, str]):
@@ -47,3 +48,16 @@ class ChildGenericDict(GenericDict):
4748
)
4849
def test_figure_out_type(value, expected):
4950
assert figure_out_type(value) == expected
51+
52+
53+
def test_computed_var_replace() -> None:
54+
class StateTest(State):
55+
@computed_var(cache=True)
56+
def cv(self) -> int:
57+
return 1
58+
59+
cv = StateTest.cv
60+
assert cv._var_type is int
61+
62+
replaced = cv._replace(_var_type=float)
63+
assert replaced._var_type is float

0 commit comments

Comments
 (0)