Commit 1769ea42 by Dean Moldovan Committed by GitHub

Add __module__ attribute to all pybind11 builtin types (#729)

Fixes #728.
parent 9f383a54
......@@ -57,6 +57,8 @@ inline PyTypeObject *make_static_property_type() {
if (PyType_Ready(type) < 0)
pybind11_fail("make_static_property_type(): failure in PyType_Ready()!");
setattr((PyObject *) type, "__module__", str("pybind11_builtins"));
return type;
}
......@@ -170,6 +172,8 @@ inline PyTypeObject* make_default_metaclass() {
if (PyType_Ready(type) < 0)
pybind11_fail("make_default_metaclass(): failure in PyType_Ready()!");
setattr((PyObject *) type, "__module__", str("pybind11_builtins"));
return type;
}
......@@ -270,6 +274,8 @@ inline PyObject *make_object_base_type(size_t instance_size) {
if (PyType_Ready(type) < 0)
pybind11_fail("PyType_Ready failed in make_object_base_type():" + error_string());
setattr((PyObject *) type, "__module__", str("pybind11_builtins"));
assert(!PyType_HasFeature(type, Py_TPFLAGS_HAVE_GC));
return (PyObject *) heap_type;
}
......
......@@ -52,3 +52,11 @@ def test_importing():
assert OD is OrderedDict
assert str(OD([(1, 'a'), (2, 'b')])) == "OrderedDict([(1, 'a'), (2, 'b')])"
def test_pydoc():
"""Pydoc needs to be able to provide help() for everything inside a pybind11 module"""
import pybind11_tests
import pydoc
assert pydoc.text.docmodule(pybind11_tests)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment