From 7416bf3197f3883d1846cece0b23d0720d400436 Mon Sep 17 00:00:00 2001 From: Vasyl Yovdiy Date: Thu, 16 Jan 2025 11:30:58 +0100 Subject: [PATCH] add support for recursive datatypes --- reflex/vars/base.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/reflex/vars/base.py b/reflex/vars/base.py index 4a75164f4..949a8ecb9 100644 --- a/reflex/vars/base.py +++ b/reflex/vars/base.py @@ -30,6 +30,7 @@ from typing import ( Optional, Set, Tuple, + ForwardRef, Type, TypeVar, Union, @@ -760,6 +761,12 @@ class Var(Generic[VAR_TYPE]): fixed_type = get_origin(var_type) or var_type + if isinstance(fixed_type, ForwardRef): + try: + fixed_type = fixed_type._evaluate(globals(), locals(), set()) + except Exception: + raise TypeError(f"Could not resolve ForwardRef: {fixed_type}") + if fixed_type in types.UnionTypes: inner_types = get_args(var_type)