| from numpy._core import multiarray | |
| # these must import without warning or error from numpy.core.multiarray to | |
| # support old pickle files | |
| for item in ["_reconstruct", "scalar"]: | |
| globals()[item] = getattr(multiarray, item) | |
| # Pybind11 (in versions <= 2.11.1) imports _ARRAY_API from the multiarray | |
| # submodule as a part of NumPy initialization, therefore it must be importable | |
| # without a warning. | |
| _ARRAY_API = multiarray._ARRAY_API | |
| def __getattr__(attr_name): | |
| from numpy._core import multiarray | |
| from ._utils import _raise_warning | |
| ret = getattr(multiarray, attr_name, None) | |
| if ret is None: | |
| raise AttributeError( | |
| f"module 'numpy.core.multiarray' has no attribute {attr_name}") | |
| _raise_warning(attr_name, "multiarray") | |
| return ret | |
| del multiarray | |