better logic for finding parent class

This commit is contained in:
Khaleel Al-Adhami 2024-08-16 17:47:18 -07:00
parent 85c1590a70
commit dd13dbad81

View File

@ -1485,10 +1485,22 @@ class ImmutableComputedVar(ImmutableVar[RETURN_TYPE]):
Returns: Returns:
The value of the var for the given instance. The value of the var for the given instance.
""" """
from reflex.state import BaseState
if instance is None: if instance is None:
class_where_defined: Type[BaseState] = vars( list_of_modules = self.fget.__qualname__.split(".")
sys.modules[self.fget.__module__] class_name_where_defined = (
).get(self.fget.__qualname__.split(".")[0], owner) list_of_modules[-2] if len(list_of_modules) > 1 else owner.__name__
)
classes_where_defined = [
c
for c in inspect.getmro(owner)
if c.__name__ == class_name_where_defined
]
class_where_defined = cast(
Type[BaseState],
classes_where_defined[0] if classes_where_defined else owner,
)
return self._replace( return self._replace(
_var_name=format_state_name(class_where_defined.get_full_name()) _var_name=format_state_name(class_where_defined.get_full_name())
+ "." + "."