Parcourir la source

Raise TypeError when `ComputedVar.__init__` gets bad kwargs (#4199)

It's easy to mis-spell `rx.var(cached=True)` instead of `rx.var(cache=True)`,
and in 0.6.3, this doesn't actual raise an error... the bad value is silently
discarded and the var is NOT marked as being cached.
Masen Furer il y a 7 mois
Parent
commit
c05da488f9
1 fichiers modifiés avec 5 ajouts et 2 suppressions
  1. 5 2
      reflex/vars/base.py

+ 5 - 2
reflex/vars/base.py

@@ -1557,8 +1557,8 @@ class ComputedVar(Var[RETURN_TYPE]):
             "return", Any
         )
 
-        kwargs["_js_expr"] = kwargs.pop("_js_expr", fget.__name__)
-        kwargs["_var_type"] = kwargs.pop("_var_type", hint)
+        kwargs.setdefault("_js_expr", fget.__name__)
+        kwargs.setdefault("_var_type", hint)
 
         Var.__init__(
             self,
@@ -1567,6 +1567,9 @@ class ComputedVar(Var[RETURN_TYPE]):
             _var_data=kwargs.pop("_var_data", None),
         )
 
+        if kwargs:
+            raise TypeError(f"Unexpected keyword arguments: {tuple(kwargs)}")
+
         if backend is None:
             backend = fget.__name__.startswith("_")