diff --git a/include/pybind11/numpy.h b/include/pybind11/numpy.h index 3a370fe5a3..130a467ebc 100644 --- a/include/pybind11/numpy.h +++ b/include/pybind11/numpy.h @@ -1521,7 +1521,7 @@ struct npy_format_descriptor< enable_if_t::value || ((std::is_same::value || std::is_same::value) && sizeof(T) == sizeof(PyObject *))>> { - static constexpr auto name = const_name("object"); + static constexpr auto name = const_name("numpy.object_"); static constexpr int value = npy_api::NPY_OBJECT_; diff --git a/tests/test_numpy_array.py b/tests/test_numpy_array.py index 3a3f22a64d..19c07ca11c 100644 --- a/tests/test_numpy_array.py +++ b/tests/test_numpy_array.py @@ -302,6 +302,13 @@ def test_constructors(): assert results["array_t"].dtype == np.float64 +def test_array_object_type(doc): + assert ( + doc(m.pass_array_object_return_as_list) + == "pass_array_object_return_as_list(arg0: typing.Annotated[numpy.typing.ArrayLike, numpy.object_]) -> list" + ) + + def test_overload_resolution(msg): # Exact overload matches: assert m.overloaded(np.array([1], dtype="float64")) == "double"