From 86c63b3c05f7e66b67444101d8b95398c62fee87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Sok=C3=B3=C5=82?= Date: Tue, 29 Aug 2023 13:32:39 +0200 Subject: [PATCH] API: Update lib.index_tricks namespace --- numpy/__init__.py | 12 +++++++----- numpy/__init__.pyi | 2 +- numpy/core/tests/test_function_base.py | 2 +- numpy/lib/__init__.py | 7 ++----- numpy/lib/__init__.pyi | 15 --------------- numpy/lib/_arraypad_impl.py | 2 +- .../{index_tricks.py => _index_tricks_impl.py} | 0 .../{index_tricks.pyi => _index_tricks_impl.pyi} | 0 numpy/lib/_shape_base_impl.py | 2 +- numpy/lib/tests/test_index_tricks.py | 6 +++--- numpy/ma/extras.py | 2 +- numpy/tests/test_public_api.py | 1 - 12 files changed, 17 insertions(+), 34 deletions(-) rename numpy/lib/{index_tricks.py => _index_tricks_impl.py} (100%) rename numpy/lib/{index_tricks.pyi => _index_tricks_impl.pyi} (100%) diff --git a/numpy/__init__.py b/numpy/__init__.py index 563bbef05396..12b371281ce6 100644 --- a/numpy/__init__.py +++ b/numpy/__init__.py @@ -182,11 +182,7 @@ del ta from . import lib - from .lib import ( - c_, diag_indices, diag_indices_from, emath, index_exp, ix_, - mgrid, ndenumerate, ndindex, ogrid, fill_diagonal, - r_, ravel_multi_index, s_, unravel_index - ) + from .lib import emath from .lib._histograms_impl import ( histogram, histogram_bin_edges, histogramdd ) @@ -235,6 +231,11 @@ savetxt, loadtxt, genfromtxt, load, save, savez, packbits, savez_compressed, unpackbits, fromregex ) + from .lib._index_tricks_impl import ( + diag_indices_from, diag_indices, fill_diagonal, ndindex, ndenumerate, + ix_, c_, r_, s_, ogrid, mgrid, unravel_index, ravel_multi_index, + index_exp + ) from . import matrixlib as _mat from .matrixlib import ( asmatrix, bmat, matrix @@ -308,6 +309,7 @@ set(lib._stride_tricks_impl.__all__) | set(lib._polynomial_impl.__all__) | set(lib._npyio_impl.__all__) | + set(lib._index_tricks_impl.__all__) | {"show_config", "__version__"} ) diff --git a/numpy/__init__.pyi b/numpy/__init__.pyi index 34cfdab741cc..7c5db01314fc 100644 --- a/numpy/__init__.pyi +++ b/numpy/__init__.pyi @@ -457,7 +457,7 @@ from numpy.lib._histograms_impl import ( histogramdd as histogramdd, ) -from numpy.lib.index_tricks import ( +from numpy.lib._index_tricks_impl import ( ravel_multi_index as ravel_multi_index, unravel_index as unravel_index, mgrid as mgrid, diff --git a/numpy/core/tests/test_function_base.py b/numpy/core/tests/test_function_base.py index 693bebc55efb..d4e65731c048 100644 --- a/numpy/core/tests/test_function_base.py +++ b/numpy/core/tests/test_function_base.py @@ -460,7 +460,7 @@ def test_add_doc(self): tgt = "Current flat index into the array." assert_equal(np.core.flatiter.index.__doc__[:len(tgt)], tgt) assert_(len(np.core.ufunc.identity.__doc__) > 300) - assert_(len(np.lib.index_tricks.mgrid.__doc__) > 300) + assert_(len(np.lib._index_tricks_impl.mgrid.__doc__) > 300) @pytest.mark.skipif(sys.flags.optimize == 2, reason="Python running -OO") def test_errors_are_ignored(self): diff --git a/numpy/lib/__init__.py b/numpy/lib/__init__.py index 4940dd13054f..a2f27ef7f588 100644 --- a/numpy/lib/__init__.py +++ b/numpy/lib/__init__.py @@ -20,7 +20,7 @@ # Private submodules # load module names. See https://github.com/networkx/networkx/issues/5838 from . import _type_check_impl -from . import index_tricks +from . import _index_tricks_impl from . import _nanfunctions_impl from . import _function_base_impl from . import _stride_tricks_impl @@ -38,15 +38,12 @@ from . import _arraypad_impl from . import _version -from .index_tricks import * from .arrayterator import Arrayterator from ._version import * from numpy.core._multiarray_umath import add_docstring, tracemalloc_domain from numpy.core.function_base import add_newdoc - __all__ = ['emath'] -__all__ += index_tricks.__all__ from numpy._pytesttester import PytestTester test = PytestTester(__name__) @@ -66,7 +63,7 @@ def __getattr__(attr): elif attr in ( "histograms", "type_check", "nanfunctions", "function_base", "arraypad", "arraysetops", "ufunclike", "utils", "twodim_base", - "shape_base", "polynomial" + "shape_base", "polynomial", "index_tricks", ): raise AttributeError( f"`np.lib.{attr}` is now private. If you are using a public " diff --git a/numpy/lib/__init__.pyi b/numpy/lib/__init__.pyi index 4f2eb118a0d6..13dc57fd4d88 100644 --- a/numpy/lib/__init__.pyi +++ b/numpy/lib/__init__.pyi @@ -26,21 +26,6 @@ from numpy.lib.arrayterator import ( Arrayterator as Arrayterator, ) -from numpy.lib.index_tricks import ( - ravel_multi_index as ravel_multi_index, - unravel_index as unravel_index, - mgrid as mgrid, - ogrid as ogrid, - r_ as r_, - c_ as c_, - s_ as s_, - index_exp as index_exp, - ix_ as ix_, - fill_diagonal as fill_diagonal, - diag_indices as diag_indices, - diag_indices_from as diag_indices_from, -) - from numpy.core.multiarray import ( add_docstring as add_docstring, tracemalloc_domain as tracemalloc_domain, diff --git a/numpy/lib/_arraypad_impl.py b/numpy/lib/_arraypad_impl.py index 4a428c60ae52..c035887943a9 100644 --- a/numpy/lib/_arraypad_impl.py +++ b/numpy/lib/_arraypad_impl.py @@ -5,7 +5,7 @@ """ import numpy as np from numpy.core.overrides import array_function_dispatch -from numpy.lib.index_tricks import ndindex +from numpy.lib._index_tricks_impl import ndindex __all__ = ['pad'] diff --git a/numpy/lib/index_tricks.py b/numpy/lib/_index_tricks_impl.py similarity index 100% rename from numpy/lib/index_tricks.py rename to numpy/lib/_index_tricks_impl.py diff --git a/numpy/lib/index_tricks.pyi b/numpy/lib/_index_tricks_impl.pyi similarity index 100% rename from numpy/lib/index_tricks.pyi rename to numpy/lib/_index_tricks_impl.pyi diff --git a/numpy/lib/_shape_base_impl.py b/numpy/lib/_shape_base_impl.py index 634f7b743e23..8c440b6ce027 100644 --- a/numpy/lib/_shape_base_impl.py +++ b/numpy/lib/_shape_base_impl.py @@ -9,7 +9,7 @@ from numpy.core import vstack, atleast_3d from numpy.core.numeric import normalize_axis_tuple from numpy.core.shape_base import _arrays_for_stack_dispatcher -from numpy.lib.index_tricks import ndindex +from numpy.lib._index_tricks_impl import ndindex from numpy.matrixlib.defmatrix import matrix # this raises all the right alarm bells diff --git a/numpy/lib/tests/test_index_tricks.py b/numpy/lib/tests/test_index_tricks.py index b599cb345b8a..a963801fea8e 100644 --- a/numpy/lib/tests/test_index_tricks.py +++ b/numpy/lib/tests/test_index_tricks.py @@ -5,9 +5,9 @@ assert_, assert_equal, assert_array_equal, assert_almost_equal, assert_array_almost_equal, assert_raises, assert_raises_regex, ) -from numpy.lib.index_tricks import ( +from numpy.lib._index_tricks_impl import ( mgrid, ogrid, ndenumerate, fill_diagonal, diag_indices, diag_indices_from, - index_exp, ndindex, r_, s_, ix_ + index_exp, ndindex, c_, r_, s_, ix_ ) @@ -405,7 +405,7 @@ def test_repeated_input(self): def test_c_(): - a = np.c_[np.array([[1, 2, 3]]), 0, 0, np.array([[4, 5, 6]])] + a = c_[np.array([[1, 2, 3]]), 0, 0, np.array([[4, 5, 6]])] assert_equal(a, [[1, 2, 3, 0, 0, 4, 5, 6]]) diff --git a/numpy/ma/extras.py b/numpy/ma/extras.py index aa1a977713f5..7a6fbcb0cfda 100644 --- a/numpy/ma/extras.py +++ b/numpy/ma/extras.py @@ -35,7 +35,7 @@ from numpy.core.multiarray import normalize_axis_index from numpy.core.numeric import normalize_axis_tuple from numpy.lib._function_base_impl import _ureduce -from numpy.lib.index_tricks import AxisConcatenator +from numpy.lib._index_tricks_impl import AxisConcatenator def issequence(seq): diff --git a/numpy/tests/test_public_api.py b/numpy/tests/test_public_api.py index 6bb1a0bdaf04..4d51eb0f9cbf 100644 --- a/numpy/tests/test_public_api.py +++ b/numpy/tests/test_public_api.py @@ -194,7 +194,6 @@ def test_NPY_NO_EXPORT(): "f2py.use_rules", "fft.helper", "lib.arrayterator", - "lib.index_tricks", "lib.user_array", # note: not in np.lib, but probably should just be deleted "linalg.lapack_lite", "linalg.linalg",