From 850f4e72cd65cf596accf76287e7e1976b396a07 Mon Sep 17 00:00:00 2001 From: Patrick Kidger <33688385+patrick-kidger@users.noreply.github.com> Date: Thu, 2 Nov 2023 20:01:54 -0700 Subject: [PATCH] Handle beartype doing isinstance(None, hint) --- jaxtyping/_pytree_type.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/jaxtyping/_pytree_type.py b/jaxtyping/_pytree_type.py index 29ccb77..df89997 100644 --- a/jaxtyping/_pytree_type.py +++ b/jaxtyping/_pytree_type.py @@ -54,6 +54,10 @@ class _MetaPyTree(type): def __instancecheck__(cls, obj): if not hasattr(cls, "leaftype"): return True # Just `isinstance(x, PyTree)` + # Handle beartype doing `isinstance(None, hint)` to check if + # is `instance`able. + if obj is None: + return True single_memo, variadic_memo, pytree_memo, arg_memo = get_shape_memo() single_memo_bak = single_memo.copy()