mirror of
https://github.com/pybind/pybind11.git
synced 2024-11-26 15:12:01 +00:00
Add __module__ attribute to all pybind11 builtin types (#729)
Fixes #728.
This commit is contained in:
parent
9f383a542e
commit
1769ea427f
@ -57,6 +57,8 @@ inline PyTypeObject *make_static_property_type() {
|
|||||||
if (PyType_Ready(type) < 0)
|
if (PyType_Ready(type) < 0)
|
||||||
pybind11_fail("make_static_property_type(): failure in PyType_Ready()!");
|
pybind11_fail("make_static_property_type(): failure in PyType_Ready()!");
|
||||||
|
|
||||||
|
setattr((PyObject *) type, "__module__", str("pybind11_builtins"));
|
||||||
|
|
||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -170,6 +172,8 @@ inline PyTypeObject* make_default_metaclass() {
|
|||||||
if (PyType_Ready(type) < 0)
|
if (PyType_Ready(type) < 0)
|
||||||
pybind11_fail("make_default_metaclass(): failure in PyType_Ready()!");
|
pybind11_fail("make_default_metaclass(): failure in PyType_Ready()!");
|
||||||
|
|
||||||
|
setattr((PyObject *) type, "__module__", str("pybind11_builtins"));
|
||||||
|
|
||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -270,6 +274,8 @@ inline PyObject *make_object_base_type(size_t instance_size) {
|
|||||||
if (PyType_Ready(type) < 0)
|
if (PyType_Ready(type) < 0)
|
||||||
pybind11_fail("PyType_Ready failed in make_object_base_type():" + error_string());
|
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));
|
assert(!PyType_HasFeature(type, Py_TPFLAGS_HAVE_GC));
|
||||||
return (PyObject *) heap_type;
|
return (PyObject *) heap_type;
|
||||||
}
|
}
|
||||||
|
@ -52,3 +52,11 @@ def test_importing():
|
|||||||
|
|
||||||
assert OD is OrderedDict
|
assert OD is OrderedDict
|
||||||
assert str(OD([(1, 'a'), (2, 'b')])) == "OrderedDict([(1, 'a'), (2, 'b')])"
|
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)
|
||||||
|
Loading…
Reference in New Issue
Block a user