When I call
help(Mod.Cls.f)
(Mod is a C extension module), I get the output
Help on method_descriptor: f(...) doc_string
What do I need to do so that the help output is of the form
Help on method f in module Mod: f(x, y, z) doc_string
like it is for random.Random.shuffle, for example?
My PyMethodDef entry is currently:
{ 'f', f, METH_VARARGS, 'doc_string' }
You cannot. The inspect module, which is what ‘pydoc’ and ‘help()’ use, has no way of figuring out what the exact signature of a C function is. The best you can do is what the builtin functions do: include the signature in the first line of the docstring:
The reason random.shuffle’s docstring looks ‘correct’ is that it isn’t a C function. It’s a function written in Python.