diff options
author | Bas van Beek <43369155+BvB93@users.noreply.github.com> | 2022-03-18 17:09:56 +0100 |
---|---|---|
committer | Bas van Beek <43369155+BvB93@users.noreply.github.com> | 2022-03-18 18:29:54 +0100 |
commit | 7739583f5fb39c31e83010a3153fa078004e55eb (patch) | |
tree | 23435d5de3f1870bc664354d50524b7166c2587a | |
parent | a8f9711493adee93fa3d61e7ef1bee11d7055a85 (diff) | |
download | numpy-7739583f5fb39c31e83010a3153fa078004e55eb.tar.gz |
MAINT: Split `numpy.typing` into a public and private component
i.e. `numpy.typing` and `numpy._typing`
68 files changed, 332 insertions, 322 deletions
diff --git a/numpy/__init__.pyi b/numpy/__init__.pyi index 59a0c6673..32db929da 100644 --- a/numpy/__init__.pyi +++ b/numpy/__init__.pyi @@ -16,7 +16,7 @@ if sys.version_info >= (3, 9): from numpy._pytesttester import PytestTester from numpy.core._internal import _ctypes -from numpy.typing import ( +from numpy._typing import ( # Arrays ArrayLike, NDArray, @@ -126,7 +126,7 @@ from numpy.typing import ( _GUFunc_Nin2_Nout1, ) -from numpy.typing._callable import ( +from numpy._typing._callable import ( _BoolOp, _BoolBitOp, _BoolSub, @@ -153,7 +153,7 @@ from numpy.typing._callable import ( # NOTE: Numpy's mypy plugin is used for removing the types unavailable # to the specific platform -from numpy.typing._extended_precision import ( +from numpy._typing._extended_precision import ( uint128 as uint128, uint256 as uint256, int128 as int128, @@ -3139,7 +3139,7 @@ UFUNC_PYVALS_NAME: L["UFUNC_PYVALS"] newaxis: None -# See `npt._ufunc` for more concrete nin-/nout-specific stubs +# See `numpy._typing._ufunc` for more concrete nin-/nout-specific stubs @final class ufunc: @property diff --git a/numpy/_typing/__init__.py b/numpy/_typing/__init__.py new file mode 100644 index 000000000..950905e52 --- /dev/null +++ b/numpy/_typing/__init__.py @@ -0,0 +1,218 @@ +"""Private counterpart of ``numpy.typing``.""" + +from __future__ import annotations + +from numpy import ufunc +from numpy.core.overrides import set_module +from typing import TYPE_CHECKING, final + + +@final # Disallow the creation of arbitrary `NBitBase` subclasses +@set_module("numpy.typing") +class NBitBase: + """ + A type representing `numpy.number` precision during static type checking. + + Used exclusively for the purpose static type checking, `NBitBase` + represents the base of a hierarchical set of subclasses. + Each subsequent subclass is herein used for representing a lower level + of precision, *e.g.* ``64Bit > 32Bit > 16Bit``. + + .. versionadded:: 1.20 + + Examples + -------- + Below is a typical usage example: `NBitBase` is herein used for annotating + a function that takes a float and integer of arbitrary precision + as arguments and returns a new float of whichever precision is largest + (*e.g.* ``np.float16 + np.int64 -> np.float64``). + + .. code-block:: python + + >>> from __future__ import annotations + >>> from typing import TypeVar, TYPE_CHECKING + >>> import numpy as np + >>> import numpy.typing as npt + + >>> T1 = TypeVar("T1", bound=npt.NBitBase) + >>> T2 = TypeVar("T2", bound=npt.NBitBase) + + >>> def add(a: np.floating[T1], b: np.integer[T2]) -> np.floating[T1 | T2]: + ... return a + b + + >>> a = np.float16() + >>> b = np.int64() + >>> out = add(a, b) + + >>> if TYPE_CHECKING: + ... reveal_locals() + ... # note: Revealed local types are: + ... # note: a: numpy.floating[numpy.typing._16Bit*] + ... # note: b: numpy.signedinteger[numpy.typing._64Bit*] + ... # note: out: numpy.floating[numpy.typing._64Bit*] + + """ + + def __init_subclass__(cls) -> None: + allowed_names = { + "NBitBase", "_256Bit", "_128Bit", "_96Bit", "_80Bit", + "_64Bit", "_32Bit", "_16Bit", "_8Bit", + } + if cls.__name__ not in allowed_names: + raise TypeError('cannot inherit from final class "NBitBase"') + super().__init_subclass__() + + +# Silence errors about subclassing a `@final`-decorated class +class _256Bit(NBitBase): # type: ignore[misc] + pass + +class _128Bit(_256Bit): # type: ignore[misc] + pass + +class _96Bit(_128Bit): # type: ignore[misc] + pass + +class _80Bit(_96Bit): # type: ignore[misc] + pass + +class _64Bit(_80Bit): # type: ignore[misc] + pass + +class _32Bit(_64Bit): # type: ignore[misc] + pass + +class _16Bit(_32Bit): # type: ignore[misc] + pass + +class _8Bit(_16Bit): # type: ignore[misc] + pass + + +from ._nested_sequence import _NestedSequence +from ._nbit import ( + _NBitByte, + _NBitShort, + _NBitIntC, + _NBitIntP, + _NBitInt, + _NBitLongLong, + _NBitHalf, + _NBitSingle, + _NBitDouble, + _NBitLongDouble, +) +from ._char_codes import ( + _BoolCodes, + _UInt8Codes, + _UInt16Codes, + _UInt32Codes, + _UInt64Codes, + _Int8Codes, + _Int16Codes, + _Int32Codes, + _Int64Codes, + _Float16Codes, + _Float32Codes, + _Float64Codes, + _Complex64Codes, + _Complex128Codes, + _ByteCodes, + _ShortCodes, + _IntCCodes, + _IntPCodes, + _IntCodes, + _LongLongCodes, + _UByteCodes, + _UShortCodes, + _UIntCCodes, + _UIntPCodes, + _UIntCodes, + _ULongLongCodes, + _HalfCodes, + _SingleCodes, + _DoubleCodes, + _LongDoubleCodes, + _CSingleCodes, + _CDoubleCodes, + _CLongDoubleCodes, + _DT64Codes, + _TD64Codes, + _StrCodes, + _BytesCodes, + _VoidCodes, + _ObjectCodes, +) +from ._scalars import ( + _CharLike_co, + _BoolLike_co, + _UIntLike_co, + _IntLike_co, + _FloatLike_co, + _ComplexLike_co, + _TD64Like_co, + _NumberLike_co, + _ScalarLike_co, + _VoidLike_co, +) +from ._shape import _Shape, _ShapeLike +from ._dtype_like import ( + DTypeLike as DTypeLike, + _DTypeLike, + _SupportsDType, + _VoidDTypeLike, + _DTypeLikeBool, + _DTypeLikeUInt, + _DTypeLikeInt, + _DTypeLikeFloat, + _DTypeLikeComplex, + _DTypeLikeTD64, + _DTypeLikeDT64, + _DTypeLikeObject, + _DTypeLikeVoid, + _DTypeLikeStr, + _DTypeLikeBytes, + _DTypeLikeComplex_co, +) +from ._array_like import ( + ArrayLike as ArrayLike, + _ArrayLike, + _FiniteNestedSequence, + _SupportsArray, + _SupportsArrayFunc, + _ArrayLikeInt, + _ArrayLikeBool_co, + _ArrayLikeUInt_co, + _ArrayLikeInt_co, + _ArrayLikeFloat_co, + _ArrayLikeComplex_co, + _ArrayLikeNumber_co, + _ArrayLikeTD64_co, + _ArrayLikeDT64_co, + _ArrayLikeObject_co, + _ArrayLikeVoid_co, + _ArrayLikeStr_co, + _ArrayLikeBytes_co, +) +from ._generic_alias import ( + NDArray as NDArray, + _DType, + _GenericAlias, +) + +if TYPE_CHECKING: + from ._ufunc import ( + _UFunc_Nin1_Nout1, + _UFunc_Nin2_Nout1, + _UFunc_Nin1_Nout2, + _UFunc_Nin2_Nout2, + _GUFunc_Nin2_Nout1, + ) +else: + # Declare the (type-check-only) ufunc subclasses as ufunc aliases during + # runtime; this helps autocompletion tools such as Jedi (numpy/numpy#19834) + _UFunc_Nin1_Nout1 = ufunc + _UFunc_Nin2_Nout1 = ufunc + _UFunc_Nin1_Nout2 = ufunc + _UFunc_Nin2_Nout2 = ufunc + _GUFunc_Nin2_Nout1 = ufunc diff --git a/numpy/typing/_add_docstring.py b/numpy/_typing/_add_docstring.py index 10d77f516..10d77f516 100644 --- a/numpy/typing/_add_docstring.py +++ b/numpy/_typing/_add_docstring.py diff --git a/numpy/typing/_array_like.py b/numpy/_typing/_array_like.py index 02f264222..02f264222 100644 --- a/numpy/typing/_array_like.py +++ b/numpy/_typing/_array_like.py diff --git a/numpy/typing/_callable.pyi b/numpy/_typing/_callable.pyi index 6d7136592..6d7136592 100644 --- a/numpy/typing/_callable.pyi +++ b/numpy/_typing/_callable.pyi diff --git a/numpy/typing/_char_codes.py b/numpy/_typing/_char_codes.py index f840d17bb..f840d17bb 100644 --- a/numpy/typing/_char_codes.py +++ b/numpy/_typing/_char_codes.py diff --git a/numpy/typing/_dtype_like.py b/numpy/_typing/_dtype_like.py index b705d82fd..b705d82fd 100644 --- a/numpy/typing/_dtype_like.py +++ b/numpy/_typing/_dtype_like.py diff --git a/numpy/typing/_extended_precision.py b/numpy/_typing/_extended_precision.py index edc1778ce..edc1778ce 100644 --- a/numpy/typing/_extended_precision.py +++ b/numpy/_typing/_extended_precision.py diff --git a/numpy/typing/_generic_alias.py b/numpy/_typing/_generic_alias.py index 0541ad77f..0541ad77f 100644 --- a/numpy/typing/_generic_alias.py +++ b/numpy/_typing/_generic_alias.py diff --git a/numpy/typing/_nbit.py b/numpy/_typing/_nbit.py index b8d35db4f..b8d35db4f 100644 --- a/numpy/typing/_nbit.py +++ b/numpy/_typing/_nbit.py diff --git a/numpy/typing/_nested_sequence.py b/numpy/_typing/_nested_sequence.py index 3db226ddf..7c12c4a87 100644 --- a/numpy/typing/_nested_sequence.py +++ b/numpy/_typing/_nested_sequence.py @@ -36,7 +36,7 @@ class _NestedSequence(Protocol[_T_co]): >>> from typing import TYPE_CHECKING >>> import numpy as np - >>> from numpy.typing import _NestedSequnce + >>> from numpy._typing import _NestedSequnce >>> def get_dtype(seq: _NestedSequnce[float]) -> np.dtype[np.float64]: ... return np.asarray(seq).dtype @@ -49,10 +49,10 @@ class _NestedSequence(Protocol[_T_co]): >>> if TYPE_CHECKING: ... reveal_locals() ... # note: Revealed local types are: - ... # note: a: numpy.dtype[numpy.floating[numpy.typing._64Bit]] - ... # note: b: numpy.dtype[numpy.floating[numpy.typing._64Bit]] - ... # note: c: numpy.dtype[numpy.floating[numpy.typing._64Bit]] - ... # note: d: numpy.dtype[numpy.floating[numpy.typing._64Bit]] + ... # note: a: numpy.dtype[numpy.floating[numpy._typing._64Bit]] + ... # note: b: numpy.dtype[numpy.floating[numpy._typing._64Bit]] + ... # note: c: numpy.dtype[numpy.floating[numpy._typing._64Bit]] + ... # note: d: numpy.dtype[numpy.floating[numpy._typing._64Bit]] """ diff --git a/numpy/typing/_scalars.py b/numpy/_typing/_scalars.py index 516b996dc..516b996dc 100644 --- a/numpy/typing/_scalars.py +++ b/numpy/_typing/_scalars.py diff --git a/numpy/typing/_shape.py b/numpy/_typing/_shape.py index c28859b19..c28859b19 100644 --- a/numpy/typing/_shape.py +++ b/numpy/_typing/_shape.py diff --git a/numpy/typing/_ufunc.pyi b/numpy/_typing/_ufunc.pyi index ee0317cf9..ee0317cf9 100644 --- a/numpy/typing/_ufunc.pyi +++ b/numpy/_typing/_ufunc.pyi diff --git a/numpy/_typing/setup.py b/numpy/_typing/setup.py new file mode 100644 index 000000000..24022fdaa --- /dev/null +++ b/numpy/_typing/setup.py @@ -0,0 +1,10 @@ +def configuration(parent_package='', top_path=None): + from numpy.distutils.misc_util import Configuration + config = Configuration('_typing', parent_package, top_path) + config.add_data_files('*.pyi') + return config + + +if __name__ == '__main__': + from numpy.distutils.core import setup + setup(configuration=configuration) diff --git a/numpy/core/_asarray.pyi b/numpy/core/_asarray.pyi index 51b794130..473bc037c 100644 --- a/numpy/core/_asarray.pyi +++ b/numpy/core/_asarray.pyi @@ -2,7 +2,7 @@ from collections.abc import Iterable from typing import TypeVar, Union, overload, Literal from numpy import ndarray -from numpy.typing import DTypeLike, _SupportsArrayFunc +from numpy._typing import DTypeLike, _SupportsArrayFunc _ArrayType = TypeVar("_ArrayType", bound=ndarray) diff --git a/numpy/core/arrayprint.pyi b/numpy/core/arrayprint.pyi index 996d4c782..d8255387a 100644 --- a/numpy/core/arrayprint.pyi +++ b/numpy/core/arrayprint.pyi @@ -21,7 +21,7 @@ from numpy import ( longdouble, clongdouble, ) -from numpy.typing import ArrayLike, _CharLike_co, _FloatLike_co +from numpy._typing import ArrayLike, _CharLike_co, _FloatLike_co _FloatMode = Literal["fixed", "unique", "maxprec", "maxprec_equal"] diff --git a/numpy/core/defchararray.pyi b/numpy/core/defchararray.pyi index 250706eb1..73d90bb2f 100644 --- a/numpy/core/defchararray.pyi +++ b/numpy/core/defchararray.pyi @@ -16,7 +16,7 @@ from numpy import ( _OrderKACF, ) -from numpy.typing import ( +from numpy._typing import ( NDArray, _ArrayLikeStr_co as U_co, _ArrayLikeBytes_co as S_co, diff --git a/numpy/core/einsumfunc.pyi b/numpy/core/einsumfunc.pyi index 278fa2044..e614254ca 100644 --- a/numpy/core/einsumfunc.pyi +++ b/numpy/core/einsumfunc.pyi @@ -12,7 +12,7 @@ from numpy import ( number, _OrderKACF, ) -from numpy.typing import ( +from numpy._typing import ( _ArrayLikeBool_co, _ArrayLikeUInt_co, _ArrayLikeInt_co, diff --git a/numpy/core/fromnumeric.pyi b/numpy/core/fromnumeric.pyi index 7d8671c76..17b17819d 100644 --- a/numpy/core/fromnumeric.pyi +++ b/numpy/core/fromnumeric.pyi @@ -22,7 +22,7 @@ from numpy import ( _SortKind, _SortSide, ) -from numpy.typing import ( +from numpy._typing import ( DTypeLike, _DTypeLike, ArrayLike, diff --git a/numpy/core/function_base.pyi b/numpy/core/function_base.pyi index 520046c19..2c2a277b1 100644 --- a/numpy/core/function_base.pyi +++ b/numpy/core/function_base.pyi @@ -7,7 +7,7 @@ from typing import ( ) from numpy import floating, complexfloating, generic -from numpy.typing import ( +from numpy._typing import ( NDArray, DTypeLike, _DTypeLike, diff --git a/numpy/core/multiarray.pyi b/numpy/core/multiarray.pyi index 9117ce17c..1be582357 100644 --- a/numpy/core/multiarray.pyi +++ b/numpy/core/multiarray.pyi @@ -48,7 +48,7 @@ from numpy import ( _NDIterOpFlagsKind, ) -from numpy.typing import ( +from numpy._typing import ( # Shapes _ShapeLike, diff --git a/numpy/core/numeric.pyi b/numpy/core/numeric.pyi index 796f30304..d09144f90 100644 --- a/numpy/core/numeric.pyi +++ b/numpy/core/numeric.pyi @@ -27,7 +27,7 @@ from numpy import ( _OrderCF, ) -from numpy.typing import ( +from numpy._typing import ( ArrayLike, NDArray, DTypeLike, diff --git a/numpy/core/numerictypes.pyi b/numpy/core/numerictypes.pyi index eef4fef72..d10e4822a 100644 --- a/numpy/core/numerictypes.pyi +++ b/numpy/core/numerictypes.pyi @@ -46,7 +46,7 @@ from numpy.core._type_aliases import ( sctypes as sctypes, ) -from numpy.typing import DTypeLike, ArrayLike, _DTypeLike +from numpy._typing import DTypeLike, ArrayLike, _DTypeLike _T = TypeVar("_T") _SCT = TypeVar("_SCT", bound=generic) diff --git a/numpy/core/records.pyi b/numpy/core/records.pyi index 4eee93d87..d3bbe0e70 100644 --- a/numpy/core/records.pyi +++ b/numpy/core/records.pyi @@ -18,7 +18,7 @@ from numpy import ( _SupportsBuffer, ) -from numpy.typing import ( +from numpy._typing import ( ArrayLike, DTypeLike, NDArray, diff --git a/numpy/core/shape_base.pyi b/numpy/core/shape_base.pyi index e2cf26075..cea355d44 100644 --- a/numpy/core/shape_base.pyi +++ b/numpy/core/shape_base.pyi @@ -2,7 +2,7 @@ from collections.abc import Sequence from typing import TypeVar, overload, Any, SupportsIndex from numpy import generic -from numpy.typing import ArrayLike, NDArray, _ArrayLike +from numpy._typing import ArrayLike, NDArray, _ArrayLike _SCT = TypeVar("_SCT", bound=generic) _ArrayType = TypeVar("_ArrayType", bound=NDArray[Any]) diff --git a/numpy/ctypeslib.pyi b/numpy/ctypeslib.pyi index 6eb8d71a0..0313cd82a 100644 --- a/numpy/ctypeslib.pyi +++ b/numpy/ctypeslib.pyi @@ -38,7 +38,7 @@ from numpy import ( ) from numpy.core._internal import _ctypes from numpy.core.multiarray import flagsobj -from numpy.typing import ( +from numpy._typing import ( # Arrays NDArray, _ArrayLike, diff --git a/numpy/fft/_pocketfft.pyi b/numpy/fft/_pocketfft.pyi index fa234fc3a..2bd8b0ba3 100644 --- a/numpy/fft/_pocketfft.pyi +++ b/numpy/fft/_pocketfft.pyi @@ -2,7 +2,7 @@ from collections.abc import Sequence from typing import Literal as L from numpy import complex128, float64 -from numpy.typing import ArrayLike, NDArray, _ArrayLikeNumber_co +from numpy._typing import ArrayLike, NDArray, _ArrayLikeNumber_co _NormKind = L[None, "backward", "ortho", "forward"] diff --git a/numpy/fft/helper.pyi b/numpy/fft/helper.pyi index 5a1565858..b49fc88f7 100644 --- a/numpy/fft/helper.pyi +++ b/numpy/fft/helper.pyi @@ -1,7 +1,7 @@ from typing import Any, TypeVar, overload from numpy import generic, integer, floating, complexfloating -from numpy.typing import ( +from numpy._typing import ( NDArray, ArrayLike, _ShapeLike, diff --git a/numpy/lib/arraypad.pyi b/numpy/lib/arraypad.pyi index d88224dd2..1ac6fc7d9 100644 --- a/numpy/lib/arraypad.pyi +++ b/numpy/lib/arraypad.pyi @@ -8,7 +8,7 @@ from typing import ( from numpy import generic -from numpy.typing import ( +from numpy._typing import ( ArrayLike, NDArray, _ArrayLikeInt, diff --git a/numpy/lib/arraysetops.pyi b/numpy/lib/arraysetops.pyi index c3c759d5b..babafc886 100644 --- a/numpy/lib/arraysetops.pyi +++ b/numpy/lib/arraysetops.pyi @@ -37,7 +37,7 @@ from numpy import ( void, ) -from numpy.typing import ( +from numpy._typing import ( ArrayLike, NDArray, _ArrayLike, diff --git a/numpy/lib/arrayterator.pyi b/numpy/lib/arrayterator.pyi index b32dffdfc..aa192fb7c 100644 --- a/numpy/lib/arrayterator.pyi +++ b/numpy/lib/arrayterator.pyi @@ -7,7 +7,7 @@ from typing import ( ) from numpy import ndarray, dtype, generic -from numpy.typing import DTypeLike +from numpy._typing import DTypeLike # TODO: Set a shape bound once we've got proper shape support _Shape = TypeVar("_Shape", bound=Any) diff --git a/numpy/lib/function_base.pyi b/numpy/lib/function_base.pyi index e0b0c59ee..f8dbd8a8b 100644 --- a/numpy/lib/function_base.pyi +++ b/numpy/lib/function_base.pyi @@ -30,7 +30,7 @@ from numpy import ( _OrderKACF, ) -from numpy.typing import ( +from numpy._typing import ( NDArray, ArrayLike, DTypeLike, diff --git a/numpy/lib/histograms.pyi b/numpy/lib/histograms.pyi index 81f26d910..27b9dbcfb 100644 --- a/numpy/lib/histograms.pyi +++ b/numpy/lib/histograms.pyi @@ -5,7 +5,7 @@ from typing import ( SupportsIndex, ) -from numpy.typing import ( +from numpy._typing import ( NDArray, ArrayLike, ) diff --git a/numpy/lib/index_tricks.pyi b/numpy/lib/index_tricks.pyi index 923cb8a9f..c9251abd1 100644 --- a/numpy/lib/index_tricks.pyi +++ b/numpy/lib/index_tricks.pyi @@ -26,7 +26,7 @@ from numpy import ( _OrderCF, _ModeKind, ) -from numpy.typing import ( +from numpy._typing import ( # Arrays ArrayLike, _NestedSequence, diff --git a/numpy/lib/npyio.pyi b/numpy/lib/npyio.pyi index b96e9dada..231ed7584 100644 --- a/numpy/lib/npyio.pyi +++ b/numpy/lib/npyio.pyi @@ -26,7 +26,7 @@ from numpy import ( ) from numpy.ma.mrecords import MaskedRecords -from numpy.typing import ( +from numpy._typing import ( ArrayLike, DTypeLike, NDArray, diff --git a/numpy/lib/polynomial.pyi b/numpy/lib/polynomial.pyi index 7ba4747bd..14bbaf39d 100644 --- a/numpy/lib/polynomial.pyi +++ b/numpy/lib/polynomial.pyi @@ -23,7 +23,7 @@ from numpy import ( object_, ) -from numpy.typing import ( +from numpy._typing import ( NDArray, ArrayLike, _ArrayLikeBool_co, diff --git a/numpy/lib/scimath.pyi b/numpy/lib/scimath.pyi index 1b13a6805..589feb15f 100644 --- a/numpy/lib/scimath.pyi +++ b/numpy/lib/scimath.pyi @@ -2,7 +2,7 @@ from typing import overload, Any from numpy import complexfloating -from numpy.typing import ( +from numpy._typing import ( NDArray, _ArrayLikeFloat_co, _ArrayLikeComplex_co, diff --git a/numpy/lib/shape_base.pyi b/numpy/lib/shape_base.pyi index 1c0732795..1b718da22 100644 --- a/numpy/lib/shape_base.pyi +++ b/numpy/lib/shape_base.pyi @@ -13,7 +13,7 @@ from numpy import ( object_, ) -from numpy.typing import ( +from numpy._typing import ( ArrayLike, NDArray, _ShapeLike, diff --git a/numpy/lib/stride_tricks.pyi b/numpy/lib/stride_tricks.pyi index 84dcd12e7..4c9a98e85 100644 --- a/numpy/lib/stride_tricks.pyi +++ b/numpy/lib/stride_tricks.pyi @@ -2,7 +2,7 @@ from collections.abc import Iterable from typing import Any, TypeVar, overload, SupportsIndex from numpy import generic -from numpy.typing import ( +from numpy._typing import ( NDArray, ArrayLike, _ShapeLike, diff --git a/numpy/lib/twodim_base.pyi b/numpy/lib/twodim_base.pyi index b08cf8383..120abb7e0 100644 --- a/numpy/lib/twodim_base.pyi +++ b/numpy/lib/twodim_base.pyi @@ -22,7 +22,7 @@ from numpy import ( _OrderCF, ) -from numpy.typing import ( +from numpy._typing import ( DTypeLike, _DTypeLike, ArrayLike, diff --git a/numpy/lib/type_check.pyi b/numpy/lib/type_check.pyi index 0d8eeb1bd..b04da21d4 100644 --- a/numpy/lib/type_check.pyi +++ b/numpy/lib/type_check.pyi @@ -17,7 +17,7 @@ from numpy import ( integer, ) -from numpy.typing import ( +from numpy._typing import ( ArrayLike, DTypeLike, NBitBase, diff --git a/numpy/lib/ufunclike.pyi b/numpy/lib/ufunclike.pyi index 9a6bbc825..82537e2ac 100644 --- a/numpy/lib/ufunclike.pyi +++ b/numpy/lib/ufunclike.pyi @@ -1,7 +1,7 @@ from typing import Any, overload, TypeVar from numpy import floating, bool_, object_, ndarray -from numpy.typing import ( +from numpy._typing import ( NDArray, _FloatLike_co, _ArrayLikeFloat_co, diff --git a/numpy/linalg/linalg.pyi b/numpy/linalg/linalg.pyi index ae0d4fe12..20cdb708b 100644 --- a/numpy/linalg/linalg.pyi +++ b/numpy/linalg/linalg.pyi @@ -19,7 +19,7 @@ from numpy import ( from numpy.linalg import LinAlgError as LinAlgError -from numpy.typing import ( +from numpy._typing import ( NDArray, ArrayLike, _ArrayLikeInt_co, diff --git a/numpy/matrixlib/defmatrix.pyi b/numpy/matrixlib/defmatrix.pyi index 8358bb111..9d0d1ee50 100644 --- a/numpy/matrixlib/defmatrix.pyi +++ b/numpy/matrixlib/defmatrix.pyi @@ -1,7 +1,7 @@ from collections.abc import Sequence, Mapping from typing import Any from numpy import matrix as matrix -from numpy.typing import ArrayLike, DTypeLike, NDArray +from numpy._typing import ArrayLike, DTypeLike, NDArray __all__: list[str] diff --git a/numpy/random/_generator.pyi b/numpy/random/_generator.pyi index bac25ffd5..f0d814fef 100644 --- a/numpy/random/_generator.pyi +++ b/numpy/random/_generator.pyi @@ -19,7 +19,7 @@ from numpy import ( uint64, ) from numpy.random import BitGenerator, SeedSequence -from numpy.typing import ( +from numpy._typing import ( ArrayLike, _ArrayLikeFloat_co, _ArrayLikeInt_co, diff --git a/numpy/random/_mt19937.pyi b/numpy/random/_mt19937.pyi index 1494aad59..55cfb2db4 100644 --- a/numpy/random/_mt19937.pyi +++ b/numpy/random/_mt19937.pyi @@ -2,7 +2,7 @@ from typing import Any, TypedDict from numpy import dtype, ndarray, uint32 from numpy.random.bit_generator import BitGenerator, SeedSequence -from numpy.typing import _ArrayLikeInt_co +from numpy._typing import _ArrayLikeInt_co class _MT19937Internal(TypedDict): key: ndarray[Any, dtype[uint32]] diff --git a/numpy/random/_pcg64.pyi b/numpy/random/_pcg64.pyi index b1e73565e..470aee867 100644 --- a/numpy/random/_pcg64.pyi +++ b/numpy/random/_pcg64.pyi @@ -1,7 +1,7 @@ from typing import TypedDict from numpy.random.bit_generator import BitGenerator, SeedSequence -from numpy.typing import _ArrayLikeInt_co +from numpy._typing import _ArrayLikeInt_co class _PCG64Internal(TypedDict): state: int diff --git a/numpy/random/_philox.pyi b/numpy/random/_philox.pyi index 1f289f5de..26ce726ec 100644 --- a/numpy/random/_philox.pyi +++ b/numpy/random/_philox.pyi @@ -2,7 +2,7 @@ from typing import Any, TypedDict from numpy import dtype, ndarray, uint64 from numpy.random.bit_generator import BitGenerator, SeedSequence -from numpy.typing import _ArrayLikeInt_co +from numpy._typing import _ArrayLikeInt_co class _PhiloxInternal(TypedDict): counter: ndarray[Any, dtype[uint64]] diff --git a/numpy/random/_sfc64.pyi b/numpy/random/_sfc64.pyi index 333aa92c4..e1810e7d5 100644 --- a/numpy/random/_sfc64.pyi +++ b/numpy/random/_sfc64.pyi @@ -4,7 +4,7 @@ from numpy import dtype as dtype from numpy import ndarray as ndarray from numpy import uint64 from numpy.random.bit_generator import BitGenerator, SeedSequence -from numpy.typing import _ArrayLikeInt_co +from numpy._typing import _ArrayLikeInt_co class _SFC64Internal(TypedDict): state: ndarray[Any, dtype[uint64]] diff --git a/numpy/random/bit_generator.pyi b/numpy/random/bit_generator.pyi index c5f976d07..e6e3b10cd 100644 --- a/numpy/random/bit_generator.pyi +++ b/numpy/random/bit_generator.pyi @@ -12,7 +12,7 @@ from typing import ( ) from numpy import dtype, ndarray, uint32, uint64 -from numpy.typing import _ArrayLikeInt_co, _ShapeLike, _SupportsDType, _UInt32Codes, _UInt64Codes +from numpy._typing import _ArrayLikeInt_co, _ShapeLike, _SupportsDType, _UInt32Codes, _UInt64Codes _T = TypeVar("_T") diff --git a/numpy/random/mtrand.pyi b/numpy/random/mtrand.pyi index 5af449add..b6eb77f00 100644 --- a/numpy/random/mtrand.pyi +++ b/numpy/random/mtrand.pyi @@ -19,7 +19,7 @@ from numpy import ( uint64, ) from numpy.random.bit_generator import BitGenerator -from numpy.typing import ( +from numpy._typing import ( ArrayLike, _ArrayLikeFloat_co, _ArrayLikeInt_co, diff --git a/numpy/setup.py b/numpy/setup.py index ebad66122..28c28d1ac 100644 --- a/numpy/setup.py +++ b/numpy/setup.py @@ -19,6 +19,7 @@ def configuration(parent_package='',top_path=None): config.add_subpackage('random') config.add_subpackage('testing') config.add_subpackage('typing') + config.add_subpackage('_typing') config.add_data_dir('doc') config.add_data_files('py.typed') config.add_data_files('*.pyi') diff --git a/numpy/testing/_private/utils.pyi b/numpy/testing/_private/utils.pyi index f4b22834d..0be13b729 100644 --- a/numpy/testing/_private/utils.pyi +++ b/numpy/testing/_private/utils.pyi @@ -23,7 +23,7 @@ from typing import ( from typing_extensions import ParamSpec from numpy import generic, dtype, number, object_, bool_, _FloatValue -from numpy.typing import ( +from numpy._typing import ( NDArray, ArrayLike, DTypeLike, diff --git a/numpy/typing/__init__.py b/numpy/typing/__init__.py index acef90ce4..f0bb843ca 100644 --- a/numpy/typing/__init__.py +++ b/numpy/typing/__init__.py @@ -19,7 +19,7 @@ Mypy plugin .. versionadded:: 1.21 -.. automodule:: numpy.typing.mypy_plugin +.. automodule:: numpy._typing.mypy_plugin .. currentmodule:: numpy.typing @@ -155,238 +155,17 @@ API # NOTE: The API section will be appended with additional entries # further down in this file -from __future__ import annotations - -from numpy import ufunc -from typing import TYPE_CHECKING, final - -if not TYPE_CHECKING: - __all__ = ["ArrayLike", "DTypeLike", "NBitBase", "NDArray"] -else: - # Ensure that all objects within this module are accessible while - # static type checking. This includes private ones, as we need them - # for internal use. - # - # Declare to mypy that `__all__` is a list of strings without assigning - # an explicit value - __all__: list[str] - __path__: list[str] - - -@final # Disallow the creation of arbitrary `NBitBase` subclasses -class NBitBase: - """ - A type representing `numpy.number` precision during static type checking. - - Used exclusively for the purpose static type checking, `NBitBase` - represents the base of a hierarchical set of subclasses. - Each subsequent subclass is herein used for representing a lower level - of precision, *e.g.* ``64Bit > 32Bit > 16Bit``. - - .. versionadded:: 1.20 - - Examples - -------- - Below is a typical usage example: `NBitBase` is herein used for annotating - a function that takes a float and integer of arbitrary precision - as arguments and returns a new float of whichever precision is largest - (*e.g.* ``np.float16 + np.int64 -> np.float64``). - - .. code-block:: python - - >>> from __future__ import annotations - >>> from typing import TypeVar, TYPE_CHECKING - >>> import numpy as np - >>> import numpy.typing as npt - - >>> T1 = TypeVar("T1", bound=npt.NBitBase) - >>> T2 = TypeVar("T2", bound=npt.NBitBase) - - >>> def add(a: np.floating[T1], b: np.integer[T2]) -> np.floating[T1 | T2]: - ... return a + b - - >>> a = np.float16() - >>> b = np.int64() - >>> out = add(a, b) - - >>> if TYPE_CHECKING: - ... reveal_locals() - ... # note: Revealed local types are: - ... # note: a: numpy.floating[numpy.typing._16Bit*] - ... # note: b: numpy.signedinteger[numpy.typing._64Bit*] - ... # note: out: numpy.floating[numpy.typing._64Bit*] - - """ - - def __init_subclass__(cls) -> None: - allowed_names = { - "NBitBase", "_256Bit", "_128Bit", "_96Bit", "_80Bit", - "_64Bit", "_32Bit", "_16Bit", "_8Bit", - } - if cls.__name__ not in allowed_names: - raise TypeError('cannot inherit from final class "NBitBase"') - super().__init_subclass__() - - -# Silence errors about subclassing a `@final`-decorated class -class _256Bit(NBitBase): # type: ignore[misc] - pass - -class _128Bit(_256Bit): # type: ignore[misc] - pass - -class _96Bit(_128Bit): # type: ignore[misc] - pass - -class _80Bit(_96Bit): # type: ignore[misc] - pass - -class _64Bit(_80Bit): # type: ignore[misc] - pass - -class _32Bit(_64Bit): # type: ignore[misc] - pass - -class _16Bit(_32Bit): # type: ignore[misc] - pass - -class _8Bit(_16Bit): # type: ignore[misc] - pass - - -from ._nested_sequence import _NestedSequence -from ._nbit import ( - _NBitByte, - _NBitShort, - _NBitIntC, - _NBitIntP, - _NBitInt, - _NBitLongLong, - _NBitHalf, - _NBitSingle, - _NBitDouble, - _NBitLongDouble, -) -from ._char_codes import ( - _BoolCodes, - _UInt8Codes, - _UInt16Codes, - _UInt32Codes, - _UInt64Codes, - _Int8Codes, - _Int16Codes, - _Int32Codes, - _Int64Codes, - _Float16Codes, - _Float32Codes, - _Float64Codes, - _Complex64Codes, - _Complex128Codes, - _ByteCodes, - _ShortCodes, - _IntCCodes, - _IntPCodes, - _IntCodes, - _LongLongCodes, - _UByteCodes, - _UShortCodes, - _UIntCCodes, - _UIntPCodes, - _UIntCodes, - _ULongLongCodes, - _HalfCodes, - _SingleCodes, - _DoubleCodes, - _LongDoubleCodes, - _CSingleCodes, - _CDoubleCodes, - _CLongDoubleCodes, - _DT64Codes, - _TD64Codes, - _StrCodes, - _BytesCodes, - _VoidCodes, - _ObjectCodes, -) -from ._scalars import ( - _CharLike_co, - _BoolLike_co, - _UIntLike_co, - _IntLike_co, - _FloatLike_co, - _ComplexLike_co, - _TD64Like_co, - _NumberLike_co, - _ScalarLike_co, - _VoidLike_co, -) -from ._shape import _Shape, _ShapeLike -from ._dtype_like import ( - DTypeLike as DTypeLike, - _DTypeLike, - _SupportsDType, - _VoidDTypeLike, - _DTypeLikeBool, - _DTypeLikeUInt, - _DTypeLikeInt, - _DTypeLikeFloat, - _DTypeLikeComplex, - _DTypeLikeTD64, - _DTypeLikeDT64, - _DTypeLikeObject, - _DTypeLikeVoid, - _DTypeLikeStr, - _DTypeLikeBytes, - _DTypeLikeComplex_co, -) -from ._array_like import ( - ArrayLike as ArrayLike, - _ArrayLike, - _FiniteNestedSequence, - _SupportsArray, - _SupportsArrayFunc, - _ArrayLikeInt, - _ArrayLikeBool_co, - _ArrayLikeUInt_co, - _ArrayLikeInt_co, - _ArrayLikeFloat_co, - _ArrayLikeComplex_co, - _ArrayLikeNumber_co, - _ArrayLikeTD64_co, - _ArrayLikeDT64_co, - _ArrayLikeObject_co, - _ArrayLikeVoid_co, - _ArrayLikeStr_co, - _ArrayLikeBytes_co, -) -from ._generic_alias import ( - NDArray as NDArray, - _DType, - _GenericAlias, +from numpy._typing import ( + ArrayLike, + DTypeLike, + NBitBase, + NDArray, ) -if TYPE_CHECKING: - from ._ufunc import ( - _UFunc_Nin1_Nout1, - _UFunc_Nin2_Nout1, - _UFunc_Nin1_Nout2, - _UFunc_Nin2_Nout2, - _GUFunc_Nin2_Nout1, - ) -else: - # Declare the (type-check-only) ufunc subclasses as ufunc aliases during - # runtime; this helps autocompletion tools such as Jedi (numpy/numpy#19834) - _UFunc_Nin1_Nout1 = ufunc - _UFunc_Nin2_Nout1 = ufunc - _UFunc_Nin1_Nout2 = ufunc - _UFunc_Nin2_Nout2 = ufunc - _GUFunc_Nin2_Nout1 = ufunc - -# Clean up the namespace -del TYPE_CHECKING, final, ufunc +__all__ = ["ArrayLike", "DTypeLike", "NBitBase", "NDArray"] if __doc__ is not None: - from ._add_docstring import _docstrings + from numpy._typing._add_docstring import _docstrings __doc__ += _docstrings __doc__ += '\n.. autoclass:: numpy.typing.NBitBase\n' del _docstrings diff --git a/numpy/typing/mypy_plugin.py b/numpy/typing/mypy_plugin.py index 5ac75f94d..1ffe74fa9 100644 --- a/numpy/typing/mypy_plugin.py +++ b/numpy/typing/mypy_plugin.py @@ -70,7 +70,7 @@ def _get_precision_dict() -> dict[str, str]: ret = {} for name, typ in names: n: int = 8 * typ().dtype.itemsize - ret[f'numpy.typing._nbit.{name}'] = f"numpy._{n}Bit" + ret[f'numpy._typing._nbit.{name}'] = f"numpy._{n}Bit" return ret @@ -106,7 +106,7 @@ def _get_c_intp_name() -> str: return "c_long" -#: A dictionary mapping type-aliases in `numpy.typing._nbit` to +#: A dictionary mapping type-aliases in `numpy._typing._nbit` to #: concrete `numpy.typing.NBitBase` subclasses. _PRECISION_DICT: Final = _get_precision_dict() @@ -121,7 +121,7 @@ def _hook(ctx: AnalyzeTypeContext) -> Type: """Replace a type-alias with a concrete ``NBitBase`` subclass.""" typ, _, api = ctx name = typ.name.split(".")[-1] - name_new = _PRECISION_DICT[f"numpy.typing._nbit.{name}"] + name_new = _PRECISION_DICT[f"numpy._typing._nbit.{name}"] return api.named_type(name_new) @@ -177,7 +177,7 @@ if TYPE_CHECKING or MYPY_EX is None: if file.fullname == "numpy": _override_imports( - file, "numpy.typing._extended_precision", + file, "numpy._typing._extended_precision", imports=[(v, v) for v in _EXTENDED_PRECISION_LIST], ) elif file.fullname == "numpy.ctypeslib": diff --git a/numpy/typing/setup.py b/numpy/typing/setup.py index 694a756dc..c444e769f 100644 --- a/numpy/typing/setup.py +++ b/numpy/typing/setup.py @@ -3,7 +3,6 @@ def configuration(parent_package='', top_path=None): config = Configuration('typing', parent_package, top_path) config.add_subpackage('tests') config.add_data_dir('tests/data') - config.add_data_files('*.pyi') return config diff --git a/numpy/typing/tests/data/fail/array_like.pyi b/numpy/typing/tests/data/fail/array_like.pyi index 3bbd29061..133b5fd49 100644 --- a/numpy/typing/tests/data/fail/array_like.pyi +++ b/numpy/typing/tests/data/fail/array_like.pyi @@ -1,5 +1,5 @@ import numpy as np -from numpy.typing import ArrayLike +from numpy._typing import ArrayLike class A: diff --git a/numpy/typing/tests/data/fail/flatiter.pyi b/numpy/typing/tests/data/fail/flatiter.pyi index 544ffbe4a..b4ce10ba5 100644 --- a/numpy/typing/tests/data/fail/flatiter.pyi +++ b/numpy/typing/tests/data/fail/flatiter.pyi @@ -1,7 +1,7 @@ from typing import Any import numpy as np -from numpy.typing import _SupportsArray +from numpy._typing import _SupportsArray class Index: diff --git a/numpy/typing/tests/data/fail/nested_sequence.pyi b/numpy/typing/tests/data/fail/nested_sequence.pyi index c51593b1e..6301e5176 100644 --- a/numpy/typing/tests/data/fail/nested_sequence.pyi +++ b/numpy/typing/tests/data/fail/nested_sequence.pyi @@ -1,5 +1,5 @@ from collections.abc import Sequence -import numpy.typing as npt +from numpy._typing import _NestedSequence a: Sequence[float] b: list[complex] @@ -7,7 +7,7 @@ c: tuple[str, ...] d: int e: str -def func(a: npt._NestedSequence[int]) -> None: +def func(a: _NestedSequence[int]) -> None: ... reveal_type(func(a)) # E: incompatible type diff --git a/numpy/typing/tests/data/pass/array_like.py b/numpy/typing/tests/data/pass/array_like.py index 4e9f8dded..da2520e96 100644 --- a/numpy/typing/tests/data/pass/array_like.py +++ b/numpy/typing/tests/data/pass/array_like.py @@ -3,7 +3,7 @@ from __future__ import annotations from typing import Any import numpy as np -from numpy.typing import ArrayLike, _SupportsArray +from numpy._typing import ArrayLike, _SupportsArray x1: ArrayLike = True x2: ArrayLike = 5 diff --git a/numpy/typing/tests/data/reveal/arithmetic.pyi b/numpy/typing/tests/data/reveal/arithmetic.pyi index 2002727cf..a7077fcce 100644 --- a/numpy/typing/tests/data/reveal/arithmetic.pyi +++ b/numpy/typing/tests/data/reveal/arithmetic.pyi @@ -1,9 +1,10 @@ from typing import Any + import numpy as np -import numpy.typing as npt +from numpy._typing import _128Bit # Can't directly import `np.float128` as it is not available on all platforms -f16: np.floating[npt._128Bit] +f16: np.floating[_128Bit] c16 = np.complex128() f8 = np.float64() diff --git a/numpy/typing/tests/data/reveal/ndarray_misc.pyi b/numpy/typing/tests/data/reveal/ndarray_misc.pyi index c990e2ab1..fb2989a45 100644 --- a/numpy/typing/tests/data/reveal/ndarray_misc.pyi +++ b/numpy/typing/tests/data/reveal/ndarray_misc.pyi @@ -11,7 +11,7 @@ import ctypes as ct from typing import Any import numpy as np -from numpy.typing import NDArray +from numpy._typing import NDArray class SubClass(NDArray[np.object_]): ... diff --git a/numpy/typing/tests/data/reveal/nested_sequence.pyi b/numpy/typing/tests/data/reveal/nested_sequence.pyi index c9f91cfa2..286f75ac5 100644 --- a/numpy/typing/tests/data/reveal/nested_sequence.pyi +++ b/numpy/typing/tests/data/reveal/nested_sequence.pyi @@ -1,6 +1,7 @@ from collections.abc import Sequence from typing import Any -import numpy.typing as npt + +from numpy._typing import _NestedSequence a: Sequence[int] b: Sequence[Sequence[int]] @@ -11,7 +12,7 @@ f: tuple[int, ...] g: list[int] h: Sequence[Any] -def func(a: npt._NestedSequence[int]) -> None: +def func(a: _NestedSequence[int]) -> None: ... reveal_type(func(a)) # E: None diff --git a/numpy/typing/tests/data/reveal/shape_base.pyi b/numpy/typing/tests/data/reveal/shape_base.pyi index 70e85dd09..b907a4328 100644 --- a/numpy/typing/tests/data/reveal/shape_base.pyi +++ b/numpy/typing/tests/data/reveal/shape_base.pyi @@ -1,5 +1,5 @@ import numpy as np -from numpy.typing import NDArray +from numpy._typing import NDArray from typing import Any i8: np.int64 diff --git a/numpy/typing/tests/data/reveal/type_check.pyi b/numpy/typing/tests/data/reveal/type_check.pyi index 40344905b..ddd319a94 100644 --- a/numpy/typing/tests/data/reveal/type_check.pyi +++ b/numpy/typing/tests/data/reveal/type_check.pyi @@ -1,5 +1,6 @@ import numpy as np import numpy.typing as npt +from numpy._typing import _128Bit f8: np.float64 f: float @@ -9,7 +10,7 @@ AR_i8: npt.NDArray[np.int64] AR_i4: npt.NDArray[np.int32] AR_f2: npt.NDArray[np.float16] AR_f8: npt.NDArray[np.float64] -AR_f16: npt.NDArray[np.floating[npt._128Bit]] +AR_f16: npt.NDArray[np.floating[_128Bit]] AR_c8: npt.NDArray[np.complex64] AR_c16: npt.NDArray[np.complex128] diff --git a/numpy/typing/tests/test_generic_alias.py b/numpy/typing/tests/test_generic_alias.py index 8df2eea93..52d3deae4 100644 --- a/numpy/typing/tests/test_generic_alias.py +++ b/numpy/typing/tests/test_generic_alias.py @@ -9,7 +9,7 @@ from typing import TypeVar, Any, Union, Callable import pytest import numpy as np -from numpy.typing._generic_alias import _GenericAlias +from numpy._typing._generic_alias import _GenericAlias ScalarType = TypeVar("ScalarType", bound=np.generic, covariant=True) T1 = TypeVar("T1") @@ -38,7 +38,7 @@ def _get_subclass_mro(base: type) -> tuple[type, ...]: class TestGenericAlias: - """Tests for `numpy.typing._generic_alias._GenericAlias`.""" + """Tests for `numpy._typing._generic_alias._GenericAlias`.""" @pytest.mark.parametrize("name,func", [ ("__init__", lambda n: n), diff --git a/numpy/typing/tests/test_typing.py b/numpy/typing/tests/test_typing.py index bb3914434..5011339b5 100644 --- a/numpy/typing/tests/test_typing.py +++ b/numpy/typing/tests/test_typing.py @@ -228,41 +228,41 @@ def _construct_ctypes_dict() -> dict[str, str]: def _construct_format_dict() -> dict[str, str]: - dct = {k.split(".")[-1]: v.replace("numpy", "numpy.typing") for + dct = {k.split(".")[-1]: v.replace("numpy", "numpy._typing") for k, v in _PRECISION_DICT.items()} return { - "uint8": "numpy.unsignedinteger[numpy.typing._8Bit]", - "uint16": "numpy.unsignedinteger[numpy.typing._16Bit]", - "uint32": "numpy.unsignedinteger[numpy.typing._32Bit]", - "uint64": "numpy.unsignedinteger[numpy.typing._64Bit]", - "uint128": "numpy.unsignedinteger[numpy.typing._128Bit]", - "uint256": "numpy.unsignedinteger[numpy.typing._256Bit]", - "int8": "numpy.signedinteger[numpy.typing._8Bit]", - "int16": "numpy.signedinteger[numpy.typing._16Bit]", - "int32": "numpy.signedinteger[numpy.typing._32Bit]", - "int64": "numpy.signedinteger[numpy.typing._64Bit]", - "int128": "numpy.signedinteger[numpy.typing._128Bit]", - "int256": "numpy.signedinteger[numpy.typing._256Bit]", - "float16": "numpy.floating[numpy.typing._16Bit]", - "float32": "numpy.floating[numpy.typing._32Bit]", - "float64": "numpy.floating[numpy.typing._64Bit]", - "float80": "numpy.floating[numpy.typing._80Bit]", - "float96": "numpy.floating[numpy.typing._96Bit]", - "float128": "numpy.floating[numpy.typing._128Bit]", - "float256": "numpy.floating[numpy.typing._256Bit]", + "uint8": "numpy.unsignedinteger[numpy._typing._8Bit]", + "uint16": "numpy.unsignedinteger[numpy._typing._16Bit]", + "uint32": "numpy.unsignedinteger[numpy._typing._32Bit]", + "uint64": "numpy.unsignedinteger[numpy._typing._64Bit]", + "uint128": "numpy.unsignedinteger[numpy._typing._128Bit]", + "uint256": "numpy.unsignedinteger[numpy._typing._256Bit]", + "int8": "numpy.signedinteger[numpy._typing._8Bit]", + "int16": "numpy.signedinteger[numpy._typing._16Bit]", + "int32": "numpy.signedinteger[numpy._typing._32Bit]", + "int64": "numpy.signedinteger[numpy._typing._64Bit]", + "int128": "numpy.signedinteger[numpy._typing._128Bit]", + "int256": "numpy.signedinteger[numpy._typing._256Bit]", + "float16": "numpy.floating[numpy._typing._16Bit]", + "float32": "numpy.floating[numpy._typing._32Bit]", + "float64": "numpy.floating[numpy._typing._64Bit]", + "float80": "numpy.floating[numpy._typing._80Bit]", + "float96": "numpy.floating[numpy._typing._96Bit]", + "float128": "numpy.floating[numpy._typing._128Bit]", + "float256": "numpy.floating[numpy._typing._256Bit]", "complex64": ("numpy.complexfloating" - "[numpy.typing._32Bit, numpy.typing._32Bit]"), + "[numpy._typing._32Bit, numpy._typing._32Bit]"), "complex128": ("numpy.complexfloating" - "[numpy.typing._64Bit, numpy.typing._64Bit]"), + "[numpy._typing._64Bit, numpy._typing._64Bit]"), "complex160": ("numpy.complexfloating" - "[numpy.typing._80Bit, numpy.typing._80Bit]"), + "[numpy._typing._80Bit, numpy._typing._80Bit]"), "complex192": ("numpy.complexfloating" - "[numpy.typing._96Bit, numpy.typing._96Bit]"), + "[numpy._typing._96Bit, numpy._typing._96Bit]"), "complex256": ("numpy.complexfloating" - "[numpy.typing._128Bit, numpy.typing._128Bit]"), + "[numpy._typing._128Bit, numpy._typing._128Bit]"), "complex512": ("numpy.complexfloating" - "[numpy.typing._256Bit, numpy.typing._256Bit]"), + "[numpy._typing._256Bit, numpy._typing._256Bit]"), "ubyte": f"numpy.unsignedinteger[{dct['_NBitByte']}]", "ushort": f"numpy.unsignedinteger[{dct['_NBitShort']}]", @@ -310,7 +310,7 @@ def _parse_reveals(file: IO[str]) -> tuple[npt.NDArray[np.str_], list[str]]: All format keys will be substituted for their respective value from `FORMAT_DICT`, *e.g.* ``"{float64}"`` becomes - ``"numpy.floating[numpy.typing._64Bit]"``. + ``"numpy.floating[numpy._typing._64Bit]"``. """ string = file.read().replace("*", "") |