From 54f368c7a5f9be11c64989dd360092b4a9f52c8d Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Mon, 14 Jun 2021 00:40:48 -0500 Subject: [PATCH] map_array_container: Use execption to decide whether we have a container --- arraycontext/container/traversal.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/arraycontext/container/traversal.py b/arraycontext/container/traversal.py index 2ceb9f9..5dd68af 100644 --- a/arraycontext/container/traversal.py +++ b/arraycontext/container/traversal.py @@ -166,12 +166,13 @@ def map_array_container( :param ary: a (potentially nested) structure of :class:`ArrayContainer`\ s, or an instance of a base array type. """ - if is_array_container(ary): - return deserialize_container(ary, [ - (key, f(subary)) for key, subary in serialize_container(ary) - ]) - else: + try: + ser_ctr = serialize_container(ary) + except TypeError: return f(ary) + else: + return deserialize_container(ary, [ + (key, f(subary)) for key, subary in ser_ctr]) def multimap_array_container(f: Callable[..., Any], *args: Any) -> Any: -- GitLab