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.
This commit is contained in:
Masen Furer 2024-10-21 12:56:56 -07:00 committed by GitHub
parent 7168b42bab
commit c05da488f9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -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("_")