27 lines
668 B
Python
27 lines
668 B
Python
|
from typing import Union, Tuple, Any
|
||
|
|
||
|
import numpy as np
|
||
|
|
||
|
# NOTE: `_StrLike` and `_BytesLike` are pointless, as `np.str_` and `np.bytes_`
|
||
|
# are already subclasses of their builtin counterpart
|
||
|
|
||
|
_CharLike = Union[str, bytes]
|
||
|
|
||
|
_BoolLike = Union[bool, np.bool_]
|
||
|
_IntLike = Union[int, np.integer]
|
||
|
_FloatLike = Union[_IntLike, float, np.floating]
|
||
|
_ComplexLike = Union[_FloatLike, complex, np.complexfloating]
|
||
|
_NumberLike = Union[int, float, complex, np.number, np.bool_]
|
||
|
|
||
|
_ScalarLike = Union[
|
||
|
int,
|
||
|
float,
|
||
|
complex,
|
||
|
str,
|
||
|
bytes,
|
||
|
np.generic,
|
||
|
]
|
||
|
|
||
|
# `_VoidLike` is technically not a scalar, but it's close enough
|
||
|
_VoidLike = Union[Tuple[Any, ...], np.void]
|