pybind11 icon indicating copy to clipboard operation
pybind11 copied to clipboard

Generate docstrings for sphinx without building the library

Open spflueger opened this issue 6 years ago • 6 comments

I should mention that this is more a question than an issue.

Issue description

I want to generate source code docs with sphinx for the pybind11 interface of a project. It works fine if I compile the whole project (since the pybind11 interface links to most of the project) and sphinx extracts the docs strings from the .so file. However I want to use readthedocs for automatic doc generation and don't want to build the whole project just for the documentation.

Is it possible to just generate the docstrings with pybind11, so that I can create my sphinx doc without compiling the project?

spflueger avatar Mar 25 '19 08:03 spflueger

I don't think that this is possible, but it would be great if it were! IIUC, this is due to how Sphinx works.

RTD can be quite tricky for projects that need building. If you want an example, see here. It uses conda to install dependencies and then builds a pybind11-based project.

molpopgen avatar Apr 05 '19 12:04 molpopgen

Ok. I guess I have to live with the building on RTD solution.

spflueger avatar Apr 09 '19 11:04 spflueger

@spflueger Could you build your library on read the docs website?

am2222 avatar Jun 16 '19 17:06 am2222

I haven't tried it yet

spflueger avatar Jun 17 '19 07:06 spflueger

I'm currently trying to build a dummy version of the pybind11 interface of my project. Dummy meaning without linking to all of the dependencies, which would make the building much easier. However then I get problems when python imports the shared library (undefined symbols exception). Does anyone have a idea how I can get around this?

spflueger avatar Jun 26 '19 13:06 spflueger

If this issue is still relevant: At now RTD provides some new features to control your documentation generation

It's possible to compile any project before documentation building using jobs:

build:
  jobs:
    pre_build:
    - pip install .

PsiXYZ avatar Nov 13 '23 19:11 PsiXYZ