hpp-python
hpp-python provides native Python bindings for the HPP (Humanoid Path Planner) C++ libraries (hpp-core, hpp-constraints, hpp-pinocchio, hpp-manipulation, ...), generated with boost::python. These bindings differ from the ones provided by hpp-corbaserver: they are native, in-process bindings that do not use a CORBA middleware, so there is no client/server split and no serialization overhead.
The resulting pyhpp package mirrors the C++ namespace layout:
pyhpp.pinocchio— robot model (Device), grippers, Lie-group utilities. Wrapshpp-pinocchio.pyhpp.constraints— differentiable functions, transformations, implicit/explicit constraints, the hierarchical iterative solver. Wrapshpp-constraints.pyhpp.core— planning problem, path planners, path optimizers, path validation, roadmap, steering methods. Wrapshpp-core.pyhpp.manipulation— manipulation-specificDevice, constraint graph, path planners/optimizers for manipulation problems, URDF/SRDF loading. Wrapshpp-manipulationandhpp-manipulation-urdf.pyhpp.tools— pure-Python helpers (xacro processing, constraint-error reporting) that are not generated bindings.
Table of contents
Module dependency graph
The BOOST_PYTHON_MODULE initializers import each other in a fixed order, which also reflects the underlying C++ library dependencies:
flowchart LR
pin["pyhpp.pinocchio\n(hpp-pinocchio)"]
cons["pyhpp.constraints\n(hpp-constraints)"]
core["pyhpp.core\n(hpp-core)"]
manip["pyhpp.manipulation\n(hpp-manipulation)"]
ext["pinocchio\n(external package)"]
ext --> pin
pin --> cons
cons --> core
core --> manip
style pin fill:#dbe9f4,stroke:#4a90d9
style cons fill:#dbe9f4,stroke:#4a90d9
style core fill:#dbe9f4,stroke:#4a90d9
style manip fill:#dbe9f4,stroke:#4a90d9
style ext fill:#e8f4e8,stroke:#4a9d4a
Dependencies
- Python ≥ 3.10, with
numpy - Boost.Python (found via
search_for_boost_python()) eigenpy- Pinocchio (C++ and Python)
- HPP C++ libraries:
hpp-util,hpp-pinocchio,hpp-constraints,hpp-core,hpp-manipulation,hpp-manipulation-urdf - Optional:
pybind11-stubgento generate.pyitype stubs (GENERATE_PYTHON_STUBS, defaultON) - For running the test suite (
BUILD_TESTING):example-robot-data,hpp-environments
Installation
From source with CMake
git clone https://github.com/humanoid-path-planner/hpp-python.git
mkdir hpp-python/build
cd hpp-python/build
cmake -DCMAKE_INSTALL_PREFIX=<your_install_prefix> -DCMAKE_BUILD_TYPE=Release ..
make
make test
make install
Relevant CMake options:
GENERATE_PYTHON_STUBS(defaultON): generate.pyistub files withpybind11-stubgenfor IDE autocompletion; automatically disabled if the tool is not found.HPP_DEBUG(defaultOFF): enablehpp-utildebug logging (-DHPP_DEBUG).HPP_BENCHMARK(defaultOFF): enablehpp-utilbenchmark output (-DHPP_ENABLE_BENCHMARK).BUILD_TESTING: build and run the unit/integration test suite (requiresexample-robot-dataandhpp-environments).
With Nix
A flake is provided, pulling hpp-constraints, hpp-core and hpp-manipulation from their own flakes and building against github:gepetto/nix:
nix build github:humanoid-path-planner/hpp-python
Documentation generation
Injecting Doxygen docstrings into bindings
Script doc/configure.py is used to generate documentation of Python objects from C++ objects.
It reads the XML documentation generated by doxygen so the dependencies must provide such
files. To make it work, do:
- Add
GENERATE_XML=YESintodoc/Doxyfile.extra.inof all the dependency of this project. - Install the generated documentation by adding the following lines to
CMakeLists.txt:
IF(_INSTALL_DOC)
INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doc/doxygen-xml
DESTINATION ${CMAKE_INSTALL_DOCDIR})
ENDIF()
File doc/configure.py contains a short documentation of how to document the bindings.
API reference from stubs
After building and installing pyhpp, pybind11-stubgen produces .pyi stub files under the Python site-packages directory.
doc/fix_stubs.py improves those raw Boost.Python stubs in-place by recovering proper parameter names, types, and return-type annotations from the embedded docstrings. The fixed stubs are useful on their own — IDEs (autocompletion, type checking) and static analysis tools consume them directly, independently of any documentation generation step:
python doc/fix_stubs.py path/to/site-packages/pyhpp/
# or individual files:
python doc/fix_stubs.py path/to/site-packages/pyhpp/core/bindings.pyi
Optional JSON override files can supply or correct signatures that cannot be inferred from docstrings alone (--setter-overrides, --method-overrides).
doc/gen_api_md.py reads the (optionally fixed) stubs and generates one Markdown file per module — suitable for mdbook — plus an index.md, with syntax-coloured signatures and clickable cross-module type links:
python doc/gen_api_md.py \
--stubs path/to/site-packages \
--output path/to/docs/api/
Modules covered: pyhpp.core, pyhpp.core.path, pyhpp.core.path_optimization, pyhpp.core.problem_target, pyhpp.constraints, pyhpp.manipulation, pyhpp.manipulation.urdf, pyhpp.manipulation.steering_method, pyhpp.pinocchio, pyhpp.pinocchio.urdf.
License
hpp-python is released under the BSD 2-Clause License, Copyright (c) 2018-2025, CNRS.
Metadata
Release files for hpp-python 9.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| hpp_python-9.0.2.tar.gz | 143.0 kB | With provenance | Details for hpp_python-9.0.2.tar.gz |
Built distributions (wheels)
Total release size: 20.1 MB
Release files / hpp_python-9.0.2.tar.gz
| Download URL | hpp_python-9.0.2.tar.gz |
|---|---|
| Size | 143.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
02b636299c604985a21f1d304dde5c2a02ffd5018e8fb50b656b14632d8879fc
|
|
BLAKE2b-256 checksum How to use checksums |
8114de1a97ecac5461325fe0bc597ee2e94ec1e09a550942da764b3a17b77419
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.
Transparency logRelease files / hpp_python-9.0.2-0-cp314-cp314-manylinux_2_28_x86_64.whl
| Download URL | hpp_python-9.0.2-0-cp314-cp314-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | CPython 3.14 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
a978104cc6cf27bbca63658d3dbff63347f7b1d0aa7a4cfb95adb86fd7d01f10
|
|
BLAKE2b-256 checksum How to use checksums |
e5c8ec7ffc4ae3949db4ae534dc1cbe429ee3d8a109b1f5e08ab83ff3c636e29
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.
Transparency logRelease files / hpp_python-9.0.2-0-cp314-cp314-manylinux_2_28_aarch64.whl
| Download URL | hpp_python-9.0.2-0-cp314-cp314-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | CPython 3.14 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
f9584c0b4018adefd9a430de7106dc1a8b6131bcd96077a3558eb803be299c11
|
|
BLAKE2b-256 checksum How to use checksums |
601247a0d18b22866a8beab72f8e73e7dc9077ca6fd9e1501679022f8943058c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.
Transparency logRelease files / hpp_python-9.0.2-0-cp313-cp313-manylinux_2_28_x86_64.whl
| Download URL | hpp_python-9.0.2-0-cp313-cp313-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | CPython 3.13 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
482bb971f344b834b74e3d385114b863e08ea4d96546a91936551b69bd72764f
|
|
BLAKE2b-256 checksum How to use checksums |
cc13c0f54ab81d0a96c0f65701bdecaeff6dd5f15a5342cf6a5167446c6e0172
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.
Transparency logRelease files / hpp_python-9.0.2-0-cp313-cp313-manylinux_2_28_aarch64.whl
| Download URL | hpp_python-9.0.2-0-cp313-cp313-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | CPython 3.13 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
e371461bdc9988138aa8a6eae4d738cb8eb866fe019599d6c52e175b586297a2
|
|
BLAKE2b-256 checksum How to use checksums |
cfe7cfb4ccd7eb326c240fba6d36d778c96650be5f86078e47f70f16aff51a24
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.
Transparency logRelease files / hpp_python-9.0.2-0-cp312-cp312-manylinux_2_28_x86_64.whl
| Download URL | hpp_python-9.0.2-0-cp312-cp312-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | CPython 3.12 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
4b38731373e7e4ff8dd27ced9d44e0e7c6a46ec873a4c0ceb2a9d105fd78abc8
|
|
BLAKE2b-256 checksum How to use checksums |
afd7f3cb4105cd78b49f4b42f379a0efb28d72a0670557bb57f7559f92164a48
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.
Transparency logRelease files / hpp_python-9.0.2-0-cp312-cp312-manylinux_2_28_aarch64.whl
| Download URL | hpp_python-9.0.2-0-cp312-cp312-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | CPython 3.12 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
11c0c2d095c4d39963cbe6395ea930cef9c1fdf020603a6403ca05686d3fe507
|
|
BLAKE2b-256 checksum How to use checksums |
9a8dd37125489904c438b1d93f1195ce4f8c9f97cb2c790ad03caac782545eb5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.
Transparency logRelease files / hpp_python-9.0.2-0-cp311-cp311-manylinux_2_28_x86_64.whl
| Download URL | hpp_python-9.0.2-0-cp311-cp311-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | CPython 3.11 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
bbff0800d7176d1f298c340859a44f77b9641e035ee5b51a2fc3d9da15bf6efe
|
|
BLAKE2b-256 checksum How to use checksums |
d185708bddb25ba4a899989bf9c600efe341a7692c20713f5596f06a15301438
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.
Transparency logRelease files / hpp_python-9.0.2-0-cp311-cp311-manylinux_2_28_aarch64.whl
| Download URL | hpp_python-9.0.2-0-cp311-cp311-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | CPython 3.11 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
669d6653c5d00fc19ed3e76f8322bbee7f08c6ea800aec27cff059c376e3fcb2
|
|
BLAKE2b-256 checksum How to use checksums |
0333af07ee047cb97f88c9883fa2759b7e5fb67a1e75cf057046997694c58f4d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.
Transparency logRelease files / hpp_python-9.0.2-0-cp310-cp310-manylinux_2_28_x86_64.whl
| Download URL | hpp_python-9.0.2-0-cp310-cp310-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | CPython 3.10 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
c0d0060d42e237411ae4dfd8303c213d1bfb8f7a2d2e4d1c15042c2cd3c2d1c0
|
|
BLAKE2b-256 checksum How to use checksums |
4e1fae0a4269e0eb11c52ab342c5a6420a343ccc2e8d2b2fad0136d3cd3c1162
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.
Transparency logRelease files / hpp_python-9.0.2-0-cp310-cp310-manylinux_2_28_aarch64.whl
| Download URL | hpp_python-9.0.2-0-cp310-cp310-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | CPython 3.10 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
ed1982420da6c16498c6dbfe370812db5625c7b7564fbcc08c7d211f7550cade
|
|
BLAKE2b-256 checksum How to use checksums |
738f8289649cff92786eef68132c3f1e8453b1bdc4902d218bf66399bd353c1e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.
Transparency logSecurity for hpp-python 9.0.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 11 files in this release have been uploaded with provenance metadata.
Attestation for hpp_python-9.0.2.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.