/ lib / numpy / core / numerictypes.pyi
numerictypes.pyi
  1  import sys
  2  import types
  3  from collections.abc import Iterable
  4  from typing import (
  5      Literal as L,
  6      Union,
  7      overload,
  8      Any,
  9      TypeVar,
 10      Protocol,
 11      TypedDict,
 12  )
 13  
 14  from numpy import (
 15      ndarray,
 16      dtype,
 17      generic,
 18      bool_,
 19      ubyte,
 20      ushort,
 21      uintc,
 22      uint,
 23      ulonglong,
 24      byte,
 25      short,
 26      intc,
 27      int_,
 28      longlong,
 29      half,
 30      single,
 31      double,
 32      longdouble,
 33      csingle,
 34      cdouble,
 35      clongdouble,
 36      datetime64,
 37      timedelta64,
 38      object_,
 39      str_,
 40      bytes_,
 41      void,
 42  )
 43  
 44  from numpy.core._type_aliases import (
 45      sctypeDict as sctypeDict,
 46      sctypes as sctypes,
 47  )
 48  
 49  from numpy._typing import DTypeLike, ArrayLike, _DTypeLike
 50  
 51  _T = TypeVar("_T")
 52  _SCT = TypeVar("_SCT", bound=generic)
 53  
 54  class _CastFunc(Protocol):
 55      def __call__(
 56          self, x: ArrayLike, k: DTypeLike = ...
 57      ) -> ndarray[Any, dtype[Any]]: ...
 58  
 59  class _TypeCodes(TypedDict):
 60      Character: L['c']
 61      Integer: L['bhilqp']
 62      UnsignedInteger: L['BHILQP']
 63      Float: L['efdg']
 64      Complex: L['FDG']
 65      AllInteger: L['bBhHiIlLqQpP']
 66      AllFloat: L['efdgFDG']
 67      Datetime: L['Mm']
 68      All: L['?bhilqpBHILQPefdgFDGSUVOMm']
 69  
 70  class _typedict(dict[type[generic], _T]):
 71      def __getitem__(self, key: DTypeLike) -> _T: ...
 72  
 73  if sys.version_info >= (3, 10):
 74      _TypeTuple = Union[
 75          type[Any],
 76          types.UnionType,
 77          tuple[Union[type[Any], types.UnionType, tuple[Any, ...]], ...],
 78      ]
 79  else:
 80      _TypeTuple = Union[
 81          type[Any],
 82          tuple[Union[type[Any], tuple[Any, ...]], ...],
 83      ]
 84  
 85  __all__: list[str]
 86  
 87  @overload
 88  def maximum_sctype(t: _DTypeLike[_SCT]) -> type[_SCT]: ...
 89  @overload
 90  def maximum_sctype(t: DTypeLike) -> type[Any]: ...
 91  
 92  @overload
 93  def issctype(rep: dtype[Any] | type[Any]) -> bool: ...
 94  @overload
 95  def issctype(rep: object) -> L[False]: ...
 96  
 97  @overload
 98  def obj2sctype(rep: _DTypeLike[_SCT], default: None = ...) -> None | type[_SCT]: ...
 99  @overload
100  def obj2sctype(rep: _DTypeLike[_SCT], default: _T) -> _T | type[_SCT]: ...
101  @overload
102  def obj2sctype(rep: DTypeLike, default: None = ...) -> None | type[Any]: ...
103  @overload
104  def obj2sctype(rep: DTypeLike, default: _T) -> _T | type[Any]: ...
105  @overload
106  def obj2sctype(rep: object, default: None = ...) -> None: ...
107  @overload
108  def obj2sctype(rep: object, default: _T) -> _T: ...
109  
110  @overload
111  def issubclass_(arg1: type[Any], arg2: _TypeTuple) -> bool: ...
112  @overload
113  def issubclass_(arg1: object, arg2: object) -> L[False]: ...
114  
115  def issubsctype(arg1: DTypeLike, arg2: DTypeLike) -> bool: ...
116  
117  def issubdtype(arg1: DTypeLike, arg2: DTypeLike) -> bool: ...
118  
119  def sctype2char(sctype: DTypeLike) -> str: ...
120  
121  def find_common_type(
122      array_types: Iterable[DTypeLike],
123      scalar_types: Iterable[DTypeLike],
124  ) -> dtype[Any]: ...
125  
126  cast: _typedict[_CastFunc]
127  nbytes: _typedict[int]
128  typecodes: _TypeCodes
129  ScalarType: tuple[
130      type[int],
131      type[float],
132      type[complex],
133      type[bool],
134      type[bytes],
135      type[str],
136      type[memoryview],
137      type[bool_],
138      type[csingle],
139      type[cdouble],
140      type[clongdouble],
141      type[half],
142      type[single],
143      type[double],
144      type[longdouble],
145      type[byte],
146      type[short],
147      type[intc],
148      type[int_],
149      type[longlong],
150      type[timedelta64],
151      type[datetime64],
152      type[object_],
153      type[bytes_],
154      type[str_],
155      type[ubyte],
156      type[ushort],
157      type[uintc],
158      type[uint],
159      type[ulonglong],
160      type[void],
161  ]