Currently it allows for types.UnionType but not typing.Union
if sys.version_info >= (3, 10):
_ClassInfo: TypeAlias = type | types.UnionType | tuple[_ClassInfo, ...]
else:
_ClassInfo: TypeAlias = type | tuple[_ClassInfo, ...]
def isinstance(obj: object, class_or_tuple: _ClassInfo, /) -> bool: ...
I think mypy currently assumes that whatever typeshed says for isinstance has no false positives