Files
manifold/bindings/python
pca006132 e718288cbf fix python binding (#987)
* python: fix type casters and warp batch

* python: allow docstring override

* update nanobind version

* python: add docstring_override.txt

* python: fix example

* version limit for nanobind
2024-10-19 01:07:18 +08:00
..
2024-10-19 01:07:18 +08:00
2024-10-19 01:07:18 +08:00
2024-10-19 01:07:18 +08:00
2024-10-19 01:07:18 +08:00
…

Python Bindings

Autogenerated Doc-Strings

Doc-strings for the python API wrapper are generated by gen_docs.py The script is run automatically during the build to keep python doc strings fully up-to-date with c++ sources.

It scrapes documentation comments and c++ function signatures from the manifold c++ sources, in order to generate a c++ header file exposing the comments as string variables named by function names. This allows python bindings to re-use the c++ comments directly.

Some snake-casing of params is applied for python use case.


When modifying the Manifold C++ sources, you may need to update gen_docs.py. For example, top-level free functions are white-listed, so if you add a new one, you will need to add it in gen_docs.py.

Similarly, the list of source files to parse is also white listed, so if you define functions in new files that need python wrappers, you will also need to up gen_docs.py.

To verify that python docs are correct after changes, you can run the following commends from the manifold repo root:

pip install .
python -c 'import manifold3d; help(manifold3d)'

Alternatively you could generate stubs with roughly the same info

pip install nanobind-stubgen
pip install .
nanobind-stubgen manifold3d

It will emit some warnings and write a file manifold3d.pyi which will show all the function signatures and docstrings.