From 5e7b4ed90d06481817fbec1bdbc2a9531014ca2e Mon Sep 17 00:00:00 2001 From: Khaleel Al-Adhami Date: Thu, 17 Oct 2024 16:14:16 -0700 Subject: [PATCH] change logic --- reflex/vars/base.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/reflex/vars/base.py b/reflex/vars/base.py index ed2243839..b5ee582eb 100644 --- a/reflex/vars/base.py +++ b/reflex/vars/base.py @@ -1260,22 +1260,25 @@ class LiteralVar(Var): if issubclass(base, Var) and base != LiteralVar ] - if len(possible_bases) != 1: + if not possible_bases: raise TypeError( - f"LiteralVar subclass {cls} must have exactly one base class that is a subclass of Var and not LiteralVar." + f"LiteralVar subclass {cls} must have a base class that is a subclass of Var and not LiteralVar." ) - base_class = possible_bases[0] - var_subclasses = [ var_subclass for var_subclass in _var_subclasses - if var_subclass.var_subclass is base_class + if var_subclass.var_subclass in possible_bases ] if not var_subclasses: raise TypeError( - f"Var subclass {base_class} must have a corresponding `python_types` because a literal subclass {cls} is derived from it." + f"LiteralVar {cls} must have a base class annotated with `python_types`." + ) + + if len(var_subclasses) != 1: + raise TypeError( + f"LiteralVar subclass {cls} must have exactly one base class annotated with `python_types`." ) var_subclass = var_subclasses[0]