Skip to main content

hpp-python

Pipeline status Coverage report Code style: black

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. Wraps hpp-pinocchio.
  • pyhpp.constraints — differentiable functions, transformations, implicit/explicit constraints, the hierarchical iterative solver. Wraps hpp-constraints.
  • pyhpp.core — planning problem, path planners, path optimizers, path validation, roadmap, steering methods. Wraps hpp-core.
  • pyhpp.manipulation — manipulation-specific Device, constraint graph, path planners/optimizers for manipulation problems, URDF/SRDF loading. Wraps hpp-manipulation and hpp-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-stubgen to generate .pyi type stubs (GENERATE_PYTHON_STUBS, default ON)
  • 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 (default ON): generate .pyi stub files with pybind11-stubgen for IDE autocompletion; automatically disabled if the tool is not found.
  • HPP_DEBUG (default OFF): enable hpp-util debug logging (-DHPP_DEBUG).
  • HPP_BENCHMARK (default OFF): enable hpp-util benchmark output (-DHPP_ENABLE_BENCHMARK).
  • BUILD_TESTING: build and run the unit/integration test suite (requires example-robot-data and hpp-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=YES into doc/Doxyfile.extra.in of 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)

Source distribution for hpp-python 9.0.2
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)

Table of built distributions (wheels) for hpp-python 9.0.2
File Actions
hpp_python-9.0.2-0-cp314-cp314-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64 Details for hpp_python-9.0.2-0-cp314-cp314-manylinux_2_28_x86_64.whl
hpp_python-9.0.2-0-cp314-cp314-manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ ARM64 Details for hpp_python-9.0.2-0-cp314-cp314-manylinux_2_28_aarch64.whl
hpp_python-9.0.2-0-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details for hpp_python-9.0.2-0-cp313-cp313-manylinux_2_28_x86_64.whl
hpp_python-9.0.2-0-cp313-cp313-manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64 Details for hpp_python-9.0.2-0-cp313-cp313-manylinux_2_28_aarch64.whl
hpp_python-9.0.2-0-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details for hpp_python-9.0.2-0-cp312-cp312-manylinux_2_28_x86_64.whl
hpp_python-9.0.2-0-cp312-cp312-manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64 Details for hpp_python-9.0.2-0-cp312-cp312-manylinux_2_28_aarch64.whl
hpp_python-9.0.2-0-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details for hpp_python-9.0.2-0-cp311-cp311-manylinux_2_28_x86_64.whl
hpp_python-9.0.2-0-cp311-cp311-manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64 Details for hpp_python-9.0.2-0-cp311-cp311-manylinux_2_28_aarch64.whl
hpp_python-9.0.2-0-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details for hpp_python-9.0.2-0-cp310-cp310-manylinux_2_28_x86_64.whl
hpp_python-9.0.2-0-cp310-cp310-manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64 Details for hpp_python-9.0.2-0-cp310-cp310-manylinux_2_28_aarch64.whl

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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Security 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.

Select from 11 files

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 log

A 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.

Release history Release notifications | RSS feed

This release

9.0.2 This release

11 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page