pybind / pybind11

Seamless operability between C++11 and Python
https://pybind11.readthedocs.io/
Other
15.84k stars 2.12k forks source link

[BUG]: array_t stub is incorrect. #5352

Open gentlegiantJGC opened 2 months ago

gentlegiantJGC commented 2 months ago

Required prerequisites

What version (or hash if on master) of pybind11 are you using?

2.13.5

Problem description

The stub files generated by handle_type_name are incorrect for array_t.

The correct type hint for py::array_t<std::uint32_t> should be one of: 1) numpy.ndarray[typing.Any, numpy.uint32] First argument is shape, second argument is type. 2) numpy.typing.NDArray[numpy.uint32] Only argument is type.

but pybind creates numpy.ndarray[numpy.uint32] which raises the following mypy error.

error: "ndarray" expects 2 type arguments, but 1 given

Doc: https://numpy.org/doc/1.21/reference/typing.html#numpy.typing.NDArray

Is there some reason why this is wrong? I can submit a pull request if you tell me which form you prefer.

Reproducible example code

No response

Is this a regression? Put the last known working version here if it is.

Not a regression

gentlegiantJGC commented 2 months ago

5212