summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBas van Beek <43369155+BvB93@users.noreply.github.com>2022-03-18 17:09:56 +0100
committerBas van Beek <43369155+BvB93@users.noreply.github.com>2022-03-18 18:29:54 +0100
commit7739583f5fb39c31e83010a3153fa078004e55eb (patch)
tree23435d5de3f1870bc664354d50524b7166c2587a
parenta8f9711493adee93fa3d61e7ef1bee11d7055a85 (diff)
downloadnumpy-7739583f5fb39c31e83010a3153fa078004e55eb.tar.gz
MAINT: Split `numpy.typing` into a public and private component
i.e. `numpy.typing` and `numpy._typing`
-rw-r--r--numpy/__init__.pyi8
-rw-r--r--numpy/_typing/__init__.py218
-rw-r--r--numpy/_typing/_add_docstring.py (renamed from numpy/typing/_add_docstring.py)0
-rw-r--r--numpy/_typing/_array_like.py (renamed from numpy/typing/_array_like.py)0
-rw-r--r--numpy/_typing/_callable.pyi (renamed from numpy/typing/_callable.pyi)0
-rw-r--r--numpy/_typing/_char_codes.py (renamed from numpy/typing/_char_codes.py)0
-rw-r--r--numpy/_typing/_dtype_like.py (renamed from numpy/typing/_dtype_like.py)0
-rw-r--r--numpy/_typing/_extended_precision.py (renamed from numpy/typing/_extended_precision.py)0
-rw-r--r--numpy/_typing/_generic_alias.py (renamed from numpy/typing/_generic_alias.py)0
-rw-r--r--numpy/_typing/_nbit.py (renamed from numpy/typing/_nbit.py)0
-rw-r--r--numpy/_typing/_nested_sequence.py (renamed from numpy/typing/_nested_sequence.py)10
-rw-r--r--numpy/_typing/_scalars.py (renamed from numpy/typing/_scalars.py)0
-rw-r--r--numpy/_typing/_shape.py (renamed from numpy/typing/_shape.py)0
-rw-r--r--numpy/_typing/_ufunc.pyi (renamed from numpy/typing/_ufunc.pyi)0
-rw-r--r--numpy/_typing/setup.py10
-rw-r--r--numpy/core/_asarray.pyi2
-rw-r--r--numpy/core/arrayprint.pyi2
-rw-r--r--numpy/core/defchararray.pyi2
-rw-r--r--numpy/core/einsumfunc.pyi2
-rw-r--r--numpy/core/fromnumeric.pyi2
-rw-r--r--numpy/core/function_base.pyi2
-rw-r--r--numpy/core/multiarray.pyi2
-rw-r--r--numpy/core/numeric.pyi2
-rw-r--r--numpy/core/numerictypes.pyi2
-rw-r--r--numpy/core/records.pyi2
-rw-r--r--numpy/core/shape_base.pyi2
-rw-r--r--numpy/ctypeslib.pyi2
-rw-r--r--numpy/fft/_pocketfft.pyi2
-rw-r--r--numpy/fft/helper.pyi2
-rw-r--r--numpy/lib/arraypad.pyi2
-rw-r--r--numpy/lib/arraysetops.pyi2
-rw-r--r--numpy/lib/arrayterator.pyi2
-rw-r--r--numpy/lib/function_base.pyi2
-rw-r--r--numpy/lib/histograms.pyi2
-rw-r--r--numpy/lib/index_tricks.pyi2
-rw-r--r--numpy/lib/npyio.pyi2
-rw-r--r--numpy/lib/polynomial.pyi2
-rw-r--r--numpy/lib/scimath.pyi2
-rw-r--r--numpy/lib/shape_base.pyi2
-rw-r--r--numpy/lib/stride_tricks.pyi2
-rw-r--r--numpy/lib/twodim_base.pyi2
-rw-r--r--numpy/lib/type_check.pyi2
-rw-r--r--numpy/lib/ufunclike.pyi2
-rw-r--r--numpy/linalg/linalg.pyi2
-rw-r--r--numpy/matrixlib/defmatrix.pyi2
-rw-r--r--numpy/random/_generator.pyi2
-rw-r--r--numpy/random/_mt19937.pyi2
-rw-r--r--numpy/random/_pcg64.pyi2
-rw-r--r--numpy/random/_philox.pyi2
-rw-r--r--numpy/random/_sfc64.pyi2
-rw-r--r--numpy/random/bit_generator.pyi2
-rw-r--r--numpy/random/mtrand.pyi2
-rw-r--r--numpy/setup.py1
-rw-r--r--numpy/testing/_private/utils.pyi2
-rw-r--r--numpy/typing/__init__.py237
-rw-r--r--numpy/typing/mypy_plugin.py8
-rw-r--r--numpy/typing/setup.py1
-rw-r--r--numpy/typing/tests/data/fail/array_like.pyi2
-rw-r--r--numpy/typing/tests/data/fail/flatiter.pyi2
-rw-r--r--numpy/typing/tests/data/fail/nested_sequence.pyi4
-rw-r--r--numpy/typing/tests/data/pass/array_like.py2
-rw-r--r--numpy/typing/tests/data/reveal/arithmetic.pyi5
-rw-r--r--numpy/typing/tests/data/reveal/ndarray_misc.pyi2
-rw-r--r--numpy/typing/tests/data/reveal/nested_sequence.pyi5
-rw-r--r--numpy/typing/tests/data/reveal/shape_base.pyi2
-rw-r--r--numpy/typing/tests/data/reveal/type_check.pyi3
-rw-r--r--numpy/typing/tests/test_generic_alias.py4
-rw-r--r--numpy/typing/tests/test_typing.py54
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("*", "")