@@ -670,11 +670,26 @@ extern "C"
670670 {
671671 return python::incref (upcast<PyObject>(&PyCFunction_Type));
672672 }
673+
674+ static PyObject* function_get_module (PyObject* op, void *)
675+ {
676+ function* f = downcast<function>(op);
677+ object const & ns = f->get_namespace ();
678+ if (!ns.is_none ()) {
679+ return python::incref (ns.ptr ());
680+ }
681+ PyErr_SetString (
682+ PyExc_AttributeError, const_cast <char *>(
683+ " Boost.Python function __module__ unknown." ));
684+ return 0 ;
685+ }
673686}
674687
675688static PyGetSetDef function_getsetlist[] = {
676689 {const_cast <char *>(" __name__" ), (getter)function_get_name, 0 , 0 , 0 },
677690 {const_cast <char *>(" func_name" ), (getter)function_get_name, 0 , 0 , 0 },
691+ {const_cast <char *>(" __module__" ), (getter)function_get_module, 0 , 0 , 0 },
692+ {const_cast <char *>(" func_module" ), (getter)function_get_module, 0 , 0 , 0 },
678693 {const_cast <char *>(" __class__" ), (getter)function_get_class, 0 , 0 , 0 }, // see note above
679694 {const_cast <char *>(" __doc__" ), (getter)function_get_doc, (setter)function_set_doc, 0 , 0 },
680695 {const_cast <char *>(" func_doc" ), (getter)function_get_doc, (setter)function_set_doc, 0 , 0 },
0 commit comments