| from numpy._core import _internal | |
| # Build a new array from the information in a pickle. | |
| # Note that the name numpy.core._internal._reconstruct is embedded in | |
| # pickles of ndarrays made with NumPy before release 1.0 | |
| # so don't remove the name here, or you'll | |
| # break backward compatibility. | |
| def _reconstruct(subtype, shape, dtype): | |
| from numpy import ndarray | |
| return ndarray.__new__(subtype, shape, dtype) | |
| # Pybind11 (in versions <= 2.11.1) imports _dtype_from_pep3118 from the | |
| # _internal submodule, therefore it must be importable without a warning. | |
| _dtype_from_pep3118 = _internal._dtype_from_pep3118 | |
| def __getattr__(attr_name): | |
| from numpy._core import _internal | |
| from ._utils import _raise_warning | |
| ret = getattr(_internal, attr_name, None) | |
| if ret is None: | |
| raise AttributeError( | |
| f"module 'numpy.core._internal' has no attribute {attr_name}") | |
| _raise_warning(attr_name, "_internal") | |
| return ret | |