Let's say that I have a C++ class myclass with a method double loglik(const Eigen::MatrixXd& u). To expose this method in python, I have something like .def("loglik", &myclass::loglik, "computes the log-likelihood.", py::arg("u")), which works fine. In other words, when doing help(mymodule.myclass), I see something like loglik(self: mymodule.myclass, u: numpy.ndarray[float64[m, n]]). However, when generating the documentation with Sphinx, the generated signature is loglik(self, u, n]]).
Similarly, I have a method in C++ with some argument const Eigen::MatrixXd& u = Eigen::MatrixXd() (i.e., the only difference is the "default"), which I expose in python using py::arg("u") = Eigen::MatrixXd(), and again this works fine, but the generated signature for the documentation is myfunction(self, u, n]] = array[, dtype])...
And it does not stop here. The same class has a constructor taking an argument const Eigen::MatrixXd& u, which I expose in python using .def(py::init<const Eigen::MatrixXd&>(), "my constructor", py::arg("u")). In this case, the signature generated by Sphinx is __init__(self: mymodule.myclass, u: numpy.ndarray[float64[m, n]]), so this one works as expected...
What am I missing here?
The text was updated successfully, but these errors were encountered:
tvatter
changed the title
Generated documentation
Documentation generated with Sphinx
Nov 19, 2019
Let's say that I have a C++ class myclass with a method
double loglik(const Eigen::MatrixXd& u). To expose this method in python, I have something like.def("loglik", &myclass::loglik, "computes the log-likelihood.", py::arg("u")), which works fine. In other words, when doinghelp(mymodule.myclass), I see something likeloglik(self: mymodule.myclass, u: numpy.ndarray[float64[m, n]]). However, when generating the documentation with Sphinx, the generated signature isloglik(self, u, n]]).Similarly, I have a method in C++ with some argument
const Eigen::MatrixXd& u = Eigen::MatrixXd()(i.e., the only difference is the "default"), which I expose in python usingpy::arg("u") = Eigen::MatrixXd(), and again this works fine, but the generated signature for the documentation ismyfunction(self, u, n]] = array[, dtype])...And it does not stop here. The same class has a constructor taking an argument
const Eigen::MatrixXd& u, which I expose in python using.def(py::init<const Eigen::MatrixXd&>(), "my constructor", py::arg("u")). In this case, the signature generated by Sphinx is__init__(self: mymodule.myclass, u: numpy.ndarray[float64[m, n]]), so this one works as expected...What am I missing here?
The text was updated successfully, but these errors were encountered: