__new__ and __init__ get no call signature
I am trying to add my doc-string and an explicit signature for __new__ and __init__ to Foo:
/// Foo(arg1, arg2)
/// --
///
/// A Foo
#[pyclass(name=Foo)]
pub struct PyFoo {
inner: Rc<RefCell<Foo>>,
}
#[pymethods]
impl PyFoo {
/// __new__(arg1, arg2)
/// --
///
/// Construct a new Foo
#[new]
fn __new__(
obj: &PyRawObject,
arg1: Vec<&str>,
arg2: Vec<&str>
) -> PyResult<()> {
...
}
So far, I'm getting the call signature of Foo via inspect.signature(Foo) or with IPython Foo? but not through help(Foo). Both __new__ and __init__ remain with their generic doc-strings and signatures defined in typeobject.c.
As far as I understand, CPython expects functions for tp_new and tp_init which is why the ml_doc fields of their PyMethodDef get discarded in pyo3::type_object::py_class_method_defs. Is there some other way to modify the doc-strings of these built-ins?
The init signature has been added to help(type) on some version >3.6.5 which I am on:
https://github.com/python/cpython/commit/ccb5f3cee9ebb5f20e33f31432a46579f8e9bf8e#diff-cbbbf1954ca2586f5d1d6241674fab9a
It still would be nice to be able to set the doc strings though.