Open
Description
To reproduce, create the following C++ extension:
#include <pybind11/pybind11.h>
#include <pybind11/stl.h>
#include <vector>
#include <stdint.h>
void take_bytes(const std::vector<uint8_t> &raw) {}
PYBIND11_MODULE(my_ext, m) {
m.def("take_bytes", &take_bytes);
}
And invoke it from a Python script like this:
import my_ext
my_ext.take_bytes(b'hello')
Using pybind11 2.2.4
, this compiles and runs without errors.
Using pybind11 2.3.0
, this compiles, but produces the following runtime error:
Traceback (most recent call last):
...
File "hello.py", line 2, in <module>
my_ext.take_bytes(b'hello')
TypeError: take_bytes(): incompatible function arguments. The following argument types are supported:
1. (arg0: List[int]) -> None
This breaking change is not mentioned in the changelog or the upgrade guide.
Version info:
- Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] on win32
- Microsoft (R) C/C++ Optimizing Compiler Version 19.16.27026.1 for x64
- I'm running
cl.exe
with the/std:c++latest
or/std:c++17
flag
Metadata
Metadata
Assignees
Labels
No labels