from typing import TypeVar, Optional, Type, Union, Tuple, Sequence, overload, Any from numpy import generic, ndarray, dtype from numpy.typing import DTypeLike _DefaultType = TypeVar("_DefaultType") def maximum_sctype(t: DTypeLike) -> dtype: ... def issctype(rep: object) -> bool: ... @overload def obj2sctype(rep: object) -> Optional[generic]: ... @overload def obj2sctype(rep: object, default: None) -> Optional[generic]: ... @overload def obj2sctype( rep: object, default: Type[_DefaultType] ) -> Union[generic, Type[_DefaultType]]: ... def issubclass_(arg1: object, arg2: Union[object, Tuple[object, ...]]) -> bool: ... def issubsctype( arg1: Union[ndarray, DTypeLike], arg2: Union[ndarray, DTypeLike] ) -> bool: ... def issubdtype(arg1: DTypeLike, arg2: DTypeLike) -> bool: ... def sctype2char(sctype: object) -> str: ... def find_common_type( array_types: Sequence[DTypeLike], scalar_types: Sequence[DTypeLike] ) -> dtype: ... # TODO: Add annotations for the following objects: # typeDict, nbytes, cast, ScalarType & typecodes