I'm running into a problem with functions at the module level not showing up in pydoc. The problem is that the type of the function object in the module is:
type(testfoo.foo) <type 'Boost.Python.function'>
Which isn't a sublcass of <type 'builtin_function_or_method'> When pydoc walks the module it only documents routines that are either builtin (according to inspect.isbuiltin) or are objects whose module can be deduced via inspect.getmodule. I modified function.cpp with: --- libs/python/src/object/function.cpp.orig 2005-02-07 17:11:52.000066304 -0800 +++ libs/python/src/object/function.cpp 2005-02-07 16:55:24.000120507 -0800 @@ -608,7 +608,7 @@ 0, /* tp_methods */ 0, // func_memberlist, /* tp_members */ function_getsetlist, /* tp_getset */ - 0, /* tp_base */ + &PyCFunction_Type, /* tp_base */ 0, /* tp_dict */ function_descr_get, /* tp_descr_get */ 0, /* tp_descr_set */ and it seemed to fix it. Is this right, or is there a different way that functions should get exposed such that pydoc can understand them? Also, for functions with overloads, only one of the docstrings is printed out. It looks like void function::add_to_namespace( object const& name_space, char const* name_, object const& attribute, char const* doc) just replaces the old doc string instead of appending the new one to the old. -nick