Skip to content

Commit 0c482bd

Browse files
authored
mark var methods as private (#4319)
1 parent 7843a51 commit 0c482bd

File tree

8 files changed

+31
-58
lines changed

8 files changed

+31
-58
lines changed

reflex/components/component.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1450,7 +1450,7 @@ def _get_ref_hook(self) -> str | None:
14501450
"""
14511451
ref = self.get_ref()
14521452
if ref is not None:
1453-
return f"const {ref} = useRef(null); {str(Var(_js_expr=ref).as_ref())} = {ref};"
1453+
return f"const {ref} = useRef(null); {str(Var(_js_expr=ref)._as_ref())} = {ref};"
14541454

14551455
def _get_vars_hooks(self) -> dict[str, None]:
14561456
"""Get the hooks required by vars referenced in this component.

reflex/components/el/elements/forms.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -239,13 +239,13 @@ def _get_form_refs(self) -> Dict[str, Any]:
239239
# when ref start with refs_ it's an array of refs, so we need different method
240240
# to collect data
241241
if ref.startswith("refs_"):
242-
ref_var = Var(_js_expr=ref[:-3]).as_ref()
242+
ref_var = Var(_js_expr=ref[:-3])._as_ref()
243243
form_refs[ref[len("refs_") : -3]] = Var(
244244
_js_expr=f"getRefValues({str(ref_var)})",
245245
_var_data=VarData.merge(ref_var._get_all_var_data()),
246246
)
247247
else:
248-
ref_var = Var(_js_expr=ref).as_ref()
248+
ref_var = Var(_js_expr=ref)._as_ref()
249249
form_refs[ref[4:]] = Var(
250250
_js_expr=f"getRefValue({str(ref_var)})",
251251
_var_data=VarData.merge(ref_var._get_all_var_data()),

reflex/components/plotly/plotly.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ def _render(self):
265265
merge_dicts.append(layout_dict)
266266
if self.template is not None:
267267
template_dict = LiteralVar.create({"layout": {"template": self.template}})
268-
merge_dicts.append(template_dict.without_data())
268+
merge_dicts.append(template_dict._without_data())
269269
if merge_dicts:
270270
tag.special_props.append(
271271
# Merge all dictionaries and spread the result over props.

reflex/components/radix/themes/color_mode.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,5 +203,5 @@ class ColorModeNamespace(Var):
203203
color_mode = color_mode_var_and_namespace = ColorModeNamespace(
204204
_js_expr=color_mode._js_expr,
205205
_var_type=color_mode._var_type,
206-
_var_data=color_mode.get_default_value(),
206+
_var_data=color_mode._get_default_value(),
207207
)

reflex/components/radix/themes/color_mode.pyi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -449,5 +449,5 @@ class ColorModeNamespace(Var):
449449
color_mode = color_mode_var_and_namespace = ColorModeNamespace(
450450
_js_expr=color_mode._js_expr,
451451
_var_type=color_mode._var_type,
452-
_var_data=color_mode.get_default_value(),
452+
_var_data=color_mode._get_default_value(),
453453
)

reflex/state.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1036,9 +1036,9 @@ def _create_setter(cls, prop: Var):
10361036
Args:
10371037
prop: The var to create a setter for.
10381038
"""
1039-
setter_name = prop.get_setter_name(include_state=False)
1039+
setter_name = prop._get_setter_name(include_state=False)
10401040
if setter_name not in cls.__dict__:
1041-
event_handler = cls._create_event_handler(prop.get_setter())
1041+
event_handler = cls._create_event_handler(prop._get_setter())
10421042
cls.event_handlers[setter_name] = event_handler
10431043
setattr(cls, setter_name, event_handler)
10441044

@@ -1052,7 +1052,7 @@ def _set_default_value(cls, prop: Var):
10521052
# Get the pydantic field for the var.
10531053
field = cls.get_fields()[prop._var_field_name]
10541054
if field.required:
1055-
default_value = prop.get_default_value()
1055+
default_value = prop._get_default_value()
10561056
if default_value is not None:
10571057
field.required = False
10581058
field.default = default_value
@@ -1079,7 +1079,7 @@ def _get_var_default(cls, name: str, annotation_value: Any) -> Any:
10791079
return getattr(cls, name)
10801080
except AttributeError:
10811081
try:
1082-
return Var("", _var_type=annotation_value).get_default_value()
1082+
return Var("", _var_type=annotation_value)._get_default_value()
10831083
except TypeError:
10841084
pass
10851085
return None

reflex/vars/base.py

Lines changed: 14 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -734,7 +734,7 @@ def guess_type(self) -> Var:
734734

735735
return self
736736

737-
def get_default_value(self) -> Any:
737+
def _get_default_value(self) -> Any:
738738
"""Get the default value of the var.
739739
740740
Returns:
@@ -777,7 +777,7 @@ def get_default_value(self) -> Any:
777777
) from e
778778
return set() if issubclass(type_, set) else None
779779

780-
def get_setter_name(self, include_state: bool = True) -> str:
780+
def _get_setter_name(self, include_state: bool = True) -> str:
781781
"""Get the name of the var's generated setter function.
782782
783783
Args:
@@ -794,7 +794,7 @@ def get_setter_name(self, include_state: bool = True) -> str:
794794
return setter
795795
return ".".join((var_data.state, setter))
796796

797-
def get_setter(self) -> Callable[[BaseState, Any], None]:
797+
def _get_setter(self) -> Callable[[BaseState, Any], None]:
798798
"""Get the var's setter function.
799799
800800
Returns:
@@ -820,7 +820,7 @@ def setter(state: BaseState, value: Any):
820820
else:
821821
setattr(state, actual_name, value)
822822

823-
setter.__qualname__ = self.get_setter_name()
823+
setter.__qualname__ = self._get_setter_name()
824824

825825
return setter
826826

@@ -953,7 +953,7 @@ def to_string(self, use_json: bool = True) -> StringVar:
953953
else PROTOTYPE_TO_STRING.call(self).to(StringVar)
954954
)
955955

956-
def as_ref(self) -> Var:
956+
def _as_ref(self) -> Var:
957957
"""Get a reference to the var.
958958
959959
Returns:
@@ -998,28 +998,14 @@ def js_type(self) -> StringVar:
998998
type_of = FunctionStringVar("typeof")
999999
return type_of.call(self).to(StringVar)
10001000

1001-
def without_data(self):
1001+
def _without_data(self):
10021002
"""Create a copy of the var without the data.
10031003
10041004
Returns:
10051005
The var without the data.
10061006
"""
10071007
return dataclasses.replace(self, _var_data=None)
10081008

1009-
def contains(self, value: Any = None, field: Any = None):
1010-
"""Get an attribute of the var.
1011-
1012-
Args:
1013-
value: The value to check for.
1014-
field: The field to check for.
1015-
1016-
Raises:
1017-
TypeError: If the var does not support contains check.
1018-
"""
1019-
raise TypeError(
1020-
f"Var of type {self._var_type} does not support contains check."
1021-
)
1022-
10231009
def __get__(self, instance: Any, owner: Any):
10241010
"""Get the var.
10251011
@@ -1032,14 +1018,6 @@ def __get__(self, instance: Any, owner: Any):
10321018
"""
10331019
return self
10341020

1035-
def reverse(self):
1036-
"""Reverse the var.
1037-
1038-
Raises:
1039-
TypeError: If the var does not support reverse.
1040-
"""
1041-
raise TypeError("Cannot reverse non-list var.")
1042-
10431021
def __getattr__(self, name: str):
10441022
"""Get an attribute of the var.
10451023
@@ -1056,6 +1034,13 @@ def __getattr__(self, name: str):
10561034
if name.startswith("_"):
10571035
return self.__getattribute__(name)
10581036

1037+
if name == "contains":
1038+
raise TypeError(
1039+
f"Var of type {self._var_type} does not support contains check."
1040+
)
1041+
if name == "reverse":
1042+
raise TypeError("Cannot reverse non-list var.")
1043+
10591044
if self._var_type is Any:
10601045
raise TypeError(
10611046
f"You must provide an annotation for the state var `{str(self)}`. Annotation cannot be `{self._var_type}`."
@@ -1084,10 +1069,7 @@ def _decode(self) -> Any:
10841069
try:
10851070
return json.loads(str(self))
10861071
except ValueError:
1087-
try:
1088-
return json.loads(self.json())
1089-
except (ValueError, NotImplementedError):
1090-
return str(self)
1072+
return str(self)
10911073

10921074
@property
10931075
def _var_state(self) -> str:
@@ -1165,14 +1147,6 @@ def __contains__(self, _: Any) -> Var:
11651147
"'in' operator not supported for Var types, use Var.contains() instead."
11661148
)
11671149

1168-
def json(self) -> str:
1169-
"""Serialize the var to a JSON string.
1170-
1171-
Raises:
1172-
NotImplementedError: If the method is not implemented.
1173-
"""
1174-
raise NotImplementedError("Var subclasses must implement the json method.")
1175-
11761150

11771151
OUTPUT = TypeVar("OUTPUT", bound=Var)
11781152

tests/units/test_var.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ def test_str(prop, expected):
211211

212212

213213
@pytest.mark.parametrize(
214-
"prop,expected",
214+
("prop", "expected"),
215215
[
216216
(Var(_js_expr="p", _var_type=int), 0),
217217
(Var(_js_expr="p", _var_type=float), 0.0),
@@ -223,14 +223,14 @@ def test_str(prop, expected):
223223
(Var(_js_expr="p", _var_type=set), set()),
224224
],
225225
)
226-
def test_default_value(prop, expected):
226+
def test_default_value(prop: Var, expected):
227227
"""Test that the default value of a var is correct.
228228
229229
Args:
230230
prop: The var to test.
231231
expected: The expected default value.
232232
"""
233-
assert prop.get_default_value() == expected
233+
assert prop._get_default_value() == expected
234234

235235

236236
@pytest.mark.parametrize(
@@ -246,14 +246,14 @@ def test_default_value(prop, expected):
246246
],
247247
),
248248
)
249-
def test_get_setter(prop, expected):
249+
def test_get_setter(prop: Var, expected):
250250
"""Test that the name of the setter function of a var is correct.
251251
252252
Args:
253253
prop: The var to test.
254254
expected: The expected name of the setter function.
255255
"""
256-
assert prop.get_setter_name() == expected
256+
assert prop._get_setter_name() == expected
257257

258258

259259
@pytest.mark.parametrize(
@@ -1302,7 +1302,6 @@ def test_fstring_roundtrip(value):
13021302
Var(_js_expr="var", _var_type=float).guess_type(),
13031303
Var(_js_expr="var", _var_type=str).guess_type(),
13041304
Var(_js_expr="var", _var_type=bool).guess_type(),
1305-
Var(_js_expr="var", _var_type=dict).guess_type(),
13061305
Var(_js_expr="var", _var_type=None).guess_type(),
13071306
],
13081307
)
@@ -1323,10 +1322,10 @@ def test_unsupported_types_for_reverse(var):
13231322
Var(_js_expr="var", _var_type=int).guess_type(),
13241323
Var(_js_expr="var", _var_type=float).guess_type(),
13251324
Var(_js_expr="var", _var_type=bool).guess_type(),
1326-
Var(_js_expr="var", _var_type=None).guess_type(),
1325+
Var(_js_expr="var", _var_type=type(None)).guess_type(),
13271326
],
13281327
)
1329-
def test_unsupported_types_for_contains(var):
1328+
def test_unsupported_types_for_contains(var: Var):
13301329
"""Test that unsupported types for contains throw a type error.
13311330
13321331
Args:

0 commit comments

Comments
 (0)