python: Fix handling of None in pybind11

Signed-off-by: David Shah <dave@ds0.me>
This commit is contained in:
David Shah 2020-09-14 14:17:07 +01:00
parent 4512a9de19
commit b5e5f8d85f

View File

@ -156,7 +156,7 @@ template <typename Class, typename FuncT, FuncT fn, typename rv_conv> struct fn_
try { try {
return py::cast(rv_conv()(ctx, (base.*fn)())); return py::cast(rv_conv()(ctx, (base.*fn)()));
} catch (bad_wrap &) { } catch (bad_wrap &) {
return py::object(); return py::none();
} }
} }
@ -177,7 +177,7 @@ template <typename Class, typename FuncT, FuncT fn, typename rv_conv, typename a
try { try {
return py::cast(rv_conv()(ctx, (base.*fn)(arg1_conv()(ctx, arg1)))); return py::cast(rv_conv()(ctx, (base.*fn)(arg1_conv()(ctx, arg1))));
} catch (bad_wrap &) { } catch (bad_wrap &) {
return py::object(); return py::none();
} }
} }
@ -200,7 +200,7 @@ struct fn_wrapper_2a
try { try {
return py::cast(rv_conv()(ctx, (base.*fn)(arg1_conv()(ctx, arg1), arg2_conv()(ctx, arg2)))); return py::cast(rv_conv()(ctx, (base.*fn)(arg1_conv()(ctx, arg1), arg2_conv()(ctx, arg2))));
} catch (bad_wrap &) { } catch (bad_wrap &) {
return py::object(); return py::none();
} }
} }
@ -226,7 +226,7 @@ struct fn_wrapper_3a
return py::cast( return py::cast(
rv_conv()(ctx, (base.*fn)(arg1_conv()(ctx, arg1), arg2_conv()(ctx, arg2), arg3_conv()(ctx, arg3)))); rv_conv()(ctx, (base.*fn)(arg1_conv()(ctx, arg1), arg2_conv()(ctx, arg2), arg3_conv()(ctx, arg3))));
} catch (bad_wrap &) { } catch (bad_wrap &) {
return py::object(); return py::none();
} }
} }
@ -415,7 +415,7 @@ template <typename Class, typename MemT, MemT mem, typename v_conv> struct reado
try { try {
return py::cast(v_conv()(ctx, (base.*mem))); return py::cast(v_conv()(ctx, (base.*mem)));
} catch (bad_wrap &) { } catch (bad_wrap &) {
return py::object(); return py::none();
} }
} }
@ -438,7 +438,7 @@ template <typename Class, typename MemT, MemT mem, typename get_conv, typename s
try { try {
return py::cast(get_conv()(ctx, (base.*mem))); return py::cast(get_conv()(ctx, (base.*mem)));
} catch (bad_wrap &) { } catch (bad_wrap &) {
return py::object(); return py::none();
} }
} }