Hi Daniel,
Unfortunately, the automated tools aren't smart enough to come up with the bindings for the overload make function. It doesn't seem to be a bad design decision in and of itself, and fortunately, it is done in certain places in the GR code.
Take a look at gr-uhd/python/uhd/bindings/usrp_sink_python.cc
.def(py::init((std::shared_ptr<gr::uhd::usrp_sink>(*)(const ::uhd::device_addr_t&,
const ::uhd::stream_args_t&,
const std::string&)) &
usrp_sink::make),
py::arg("device_addr"),
py::arg("stream_args"),
py::arg("tsb_tag_name") = "",
D(usrp_sink, make))
.def(py::init((std::shared_ptr<gr::uhd::usrp_sink>(*)(const std::string&,
const ::uhd::stream_args_t&,
const std::string&)) &
usrp_sink::make),
py::arg("device_addr"),
py::arg("stream_args"),
py::arg("tsb_tag_name") = "",
D(usrp_sink, make))
When init is overloaded in the python bindings, the make functions have to be given explicit function pointers. So you will have to do this manually.
Josh