diff --git a/jaxtyping/array_types.py b/jaxtyping/array_types.py index 2e18b1d..c96a5f0 100644 --- a/jaxtyping/array_types.py +++ b/jaxtyping/array_types.py @@ -384,7 +384,12 @@ class _MetaAbstractDtype(type): elem = _SymbolicDim(elem, broadcastable) dims.append(elem) if _array_name_format == "dtype_and_shape": - name = f"{cls.__name__}[{array_type.__name__}, '{dim_str}']" + # In python 3.8, e.g., typing.Union lacks `__name__`. + try: + type_str = array_type.__name__ + except AttributeError: + type_str = repr(array_type) + name = f"{cls.__name__}[{type_str}, '{dim_str}']" elif _array_name_format == "array": name = array_type.__name__ else: