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 | |