Skip to main content

A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives

Project description

Pinocchio Logo

License Documentation Coverage Report Conda Downloads Conda Version PyPI version

Pinocchio instantiates the state-of-the-art Rigid Body Algorithms for poly-articulated systems based on revisited Roy Featherstone's algorithms. Besides, Pinocchio provides the analytical derivatives of the main Rigid-Body Algorithms like the Recursive Newton-Euler Algorithm or the Articulated-Body Algorithm.

Pinocchio was first tailored for robotics applications, but it can be used in other contexts (biomechanics, computer graphics, vision, etc.). It is built upon Eigen for linear algebra and FCL for collision detection. Pinocchio comes with a Python interface for fast code prototyping, directly accessible through Conda.

Pinocchio is now at the heart of various robotics software as Crocoddyl, an open-source and efficient Differential Dynamic Programming solver for robotics, the Stack-of-Tasks, an open-source and versatile hierarchical controller framework or the Humanoid Path Planner, open-source software for Motion and Manipulation Planning.

If you want to learn more about Pinocchio internal behaviors and main features, we invite you to read the related paper and the online documentation.

If you want to dive into Pinocchio directly, only one single line is sufficient (assuming you have Conda):

conda install pinocchio -c conda-forge

or via pip (currently only available on Linux):

pip install pin

Table of contents

Pinocchio main features

Pinocchio is fast:

  • C++ template library,
  • cache friendly,
  • automatic code generation support is available via CppADCodeGen.

Pinocchio is versatile, implementing basic and more advanced rigid body dynamics algorithms:

  • forward kinematics and its analytical derivatives,
  • forward/inverse dynamics and their analytical derivatives,
  • centroidal dynamics and its analytical derivatives,
  • support multiple precision arithmetic via Boost.Multiprecision or any similar framework,
  • computations of kinematic and dynamic regressors for system identification and more,
  • and much more with the support of modern and open-source Automatic Differentiation frameworks like CppAD or CasADi.

Pinocchio is flexible:

  • header only,
  • C++ 98/03/11/14/17/20 compliant.

Pinocchio is extensible. Pinocchio is multi-thread friendly. Pinocchio is reliable and extensively tested (unit-tests, simulations, and real-world robotics applications). Pinocchio is supported and tested on Windows, Mac OS X, Unix, and Linux (see build status here).

Documentation

The online Pinocchio documentation of the last release is available here. A cheat sheet pdf with the main functions and algorithms can be found here.

Examples

We provide some basic examples of using Pinocchio in Python in the examples directory. Additional examples introducing Pinocchio are also available in the documentation.

Tutorials

Pinocchio comes with a large bunch of tutorials aiming at introducing the basic tools for robot control. Tutorial and training documents are listed here. You can also consider the interactive Jupyter notebook set of tutorials developed by Nicolas Mansard and Yann de Mont-Marin.

Pinocchio continuous integrations

Pinocchio is constantly tested for several platforms and distributions, as reported below:

CI on ROS ROS
CI on Linux via APT linux
CI on OSX via Conda mac
CI on Windows via Conda windows
CI on Linux via Robotpkg Pipeline Status

Performances

Pinocchio exploits, at best, the sparsity induced by the kinematic tree of robotics systems. Thanks to modern programming language paradigms, Pinocchio can unroll most of the computations directly at compile time, allowing to achieve impressive performances for a large range of robots, as illustrated by the plot below, obtained on a standard laptop equipped with an Intel Core i7 CPU @ 2.4 GHz.

Pinocchio Logo

For other benchmarks, and mainly the capacity of Pinocchio to exploit, at best, your CPU capacities using advanced code generation techniques, we refer to the technical paper. In addition, the introspection may also help you to understand and compare the performances of the modern rigid body dynamics libraries.

Ongoing developments

If you want to follow the current developments, you can directly refer to the devel branch. The master branch only contains the latest release. Any new Pull Request should then be submitted on the devel branch.

Installation

Pinocchio can be easily installed on various Linux (Ubuntu, Fedora, etc.) and Unix distributions (Mac OS X, BSD, etc.). Please refer to the installation procedure.

If you only need the Python bindings of Pinocchio, you may prefer to install it through Conda. Please follow the procedure described here.

ROS

Pinocchio is also deployed on ROS. You may follow its deployment status below. If you're interested in using Pinocchio on systems and/or with packages that integrate with the ROS ecosystem, we recommend the installation of Pinocchio via the binaries distributed via the ROS PPA. Here, you can install Pinocchio using sudo apt install ros-$ROS_DISTRO-pinocchio. This installs Pinocchio with HPP-FCL support and with Python bindings. You can then depend on Pinocchio in your package.xml config (<depend>pinocchio</depend>) and include it via CMake (find_package(pinocchio REQUIRED)) -- we include support and hooks to discover the package for both ROS1 and ROS2. An example can be found here. Please note that we always advise including the pinocchio/fwd.hpp header as the first include to avoid compilation errors from differing Boost-variant sizes.

ROS1      ROS2
Melodic      Foxy
Noetic      Galactic
     Humble
     Rolling

Visualization

Pinocchio provides support for many open-source and free visualizers:

  • Gepetto Viewer: a C++ viewer based on OpenSceneGraph with Python bindings and Blender export. See here for a C++ example on mixing Pinocchio and Gepetto Viewer.
  • Meshcat: supporting visualization in Python and which can be embedded inside any browser.
  • Panda3d: supporting visualization in Python and which can be embedded inside any browser.
  • RViz: supporting visualization in Python and which can interact with other ROS packages.

Many external viewers can also be integrated. See the example here for more information.

Citing Pinocchio

To cite Pinocchio in your academic research, please use the following bibtex entry:

@inproceedings{carpentier2019pinocchio,
   title={The Pinocchio C++ library -- A fast and flexible implementation of rigid body dynamics algorithms and their analytical derivatives},
   author={Carpentier, Justin and Saurel, Guilhem and Buondonno, Gabriele and Mirabel, Joseph and Lamiraux, Florent and Stasse, Olivier and Mansard, Nicolas},
   booktitle={IEEE International Symposium on System Integrations (SII)},
   year={2019}
}

and the following one for the link to the GitHub codebase:

@misc{pinocchioweb,
   author = {Justin Carpentier and Florian Valenza and Nicolas Mansard and others},
   title = {Pinocchio: fast forward and inverse dynamics for poly-articulated systems},
   howpublished = {https://stack-of-tasks.github.io/pinocchio},
   year = {2015--2021}
}

The algorithms for the analytical derivatives of rigid-body dynamics algorithms are detailed here:

@inproceedings{carpentier2018analytical,
  title = {Analytical Derivatives of Rigid Body Dynamics Algorithms},
  author = {Carpentier, Justin and Mansard, Nicolas},
  booktitle = {Robotics: Science and Systems},
  year = {2018}
}

Questions and Issues

Do you have a question or an issue? You may either directly open a new question or a new issue or, directly contact us via the mailing list pinocchio@inria.fr.

Credits

The following people have been involved in the development of Pinocchio and are warmly thanked for their contributions:

If you have participated in the development of Pinocchio, please add your name and contribution to this list.

Open-source projects relying on Pinocchio

  • Crocoddyl A software to realize model predictive control for complex robotics platforms.
  • TSID A software that implements a Task Space Inverse Dynamics QP.
  • HPP A SDK that implements motion planners for humanoids and other robots.
  • Jiminy A simulator based on Pinocchio.
  • ocs2 A toolbox for Optimal Control for Switched Systems (OCS2)
  • TriFingerSimulation TriFinger Robot Simulation (a Robot to perform RL on manipulation).
  • Casadi_Kin_Dyn IIT Package for generation of symbolic (SX) expressions of robot kinematics and dynamics.

Acknowledgments

The development of Pinocchio is actively supported by the Gepetto team @LAAS-CNRS and the Willow team @INRIA.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pin-2.7.0.tar.gz (61.8 MB view details)

Uploaded Source

Built Distributions

pin-2.7.0-4-pp38-pypy38_pp73-macosx_11_0_arm64.whl (4.1 MB view details)

Uploaded PyPy macOS 11.0+ ARM64

pin-2.7.0-4-cp312-cp312-macosx_11_0_arm64.whl (4.1 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

pin-2.7.0-4-cp311-cp311-macosx_11_0_arm64.whl (4.1 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

pin-2.7.0-4-cp310-cp310-macosx_11_0_arm64.whl (4.1 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

pin-2.7.0-4-cp39-cp39-macosx_11_0_arm64.whl (4.1 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

pin-2.7.0-2-cp312-cp312-musllinux_1_1_x86_64.whl (6.1 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

pin-2.7.0-2-cp312-cp312-manylinux_2_28_x86_64.whl (6.2 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.28+ x86-64

pin-2.7.0-2-cp312-cp312-manylinux_2_28_aarch64.whl (6.0 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.28+ ARM64

pin-2.7.0-2-cp312-cp312-macosx_10_9_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

pin-2.7.0-2-cp311-cp311-musllinux_1_1_x86_64.whl (6.1 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

pin-2.7.0-2-cp311-cp311-manylinux_2_28_x86_64.whl (6.1 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.28+ x86-64

pin-2.7.0-2-cp311-cp311-manylinux_2_28_aarch64.whl (6.0 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.28+ ARM64

pin-2.7.0-2-cp311-cp311-macosx_10_9_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

pin-2.7.0-2-cp310-cp310-musllinux_1_1_x86_64.whl (6.1 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

pin-2.7.0-2-cp310-cp310-manylinux_2_28_x86_64.whl (6.1 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.28+ x86-64

pin-2.7.0-2-cp310-cp310-manylinux_2_28_aarch64.whl (6.0 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.28+ ARM64

pin-2.7.0-2-cp310-cp310-macosx_10_9_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

pin-2.7.0-2-cp39-cp39-musllinux_1_1_x86_64.whl (6.1 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

pin-2.7.0-2-cp39-cp39-manylinux_2_28_x86_64.whl (6.1 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.28+ x86-64

pin-2.7.0-2-cp39-cp39-manylinux_2_28_aarch64.whl (6.0 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.28+ ARM64

pin-2.7.0-2-cp39-cp39-macosx_10_9_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

pin-2.7.0-2-cp38-cp38-musllinux_1_1_x86_64.whl (6.1 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

pin-2.7.0-2-cp38-cp38-manylinux_2_28_x86_64.whl (6.1 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.28+ x86-64

pin-2.7.0-2-cp38-cp38-manylinux_2_28_aarch64.whl (6.0 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.28+ ARM64

pin-2.7.0-2-cp38-cp38-macosx_10_9_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

File details

Details for the file pin-2.7.0.tar.gz.

File metadata

  • Download URL: pin-2.7.0.tar.gz
  • Upload date:
  • Size: 61.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for pin-2.7.0.tar.gz
Algorithm Hash digest
SHA256 4903821a466eb8fc7f2350ce0c5f84943e8c391ebc2977898bbb154dcdf01747
MD5 b92da3f57ac93f41085d75c4a97afe00
BLAKE2b-256 21a2bfee8e9648728ef2762d51e178592ab03c1d36ad3d899ebd339a047d6ad0

See more details on using hashes here.

File details

Details for the file pin-2.7.0-4-pp38-pypy38_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pin-2.7.0-4-pp38-pypy38_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c4155834ec7fa0d9ecae76973da5b42c2ec1711931fa98bf3cc2f3a3edef3448
MD5 5690c1fda808bd16b2d21fbeaa439fc4
BLAKE2b-256 6d2772a8cba594b001deee0ec0a8e8089f9bdc9c56e7255e2de610b431e68172

See more details on using hashes here.

File details

Details for the file pin-2.7.0-4-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pin-2.7.0-4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 45755a5e060e5ce11df5dda88cdbc4e252696601cbf7292e01f79adf6e90cfa9
MD5 f3a4a16f1848eab594619db3b628ccf6
BLAKE2b-256 bab177547e4a66d7c75054c6aa1d0c6ee0c1feeae19306fa2d4e7bbc5046e00a

See more details on using hashes here.

File details

Details for the file pin-2.7.0-4-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pin-2.7.0-4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 097396f996f1e20af5f01aeda8dc5b770edb309618cff5451efa4371b2e1ed80
MD5 c90991f38da585fd71e33db90ebdcad3
BLAKE2b-256 10b05c520558add736a4e936820afd8ebb9ff9c76f75e0860cd033c796f26a9b

See more details on using hashes here.

File details

Details for the file pin-2.7.0-4-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pin-2.7.0-4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7a27e0c76b1fb9e39d20c7bdaa1970b119bd81f31bda0642640f90989d407897
MD5 c483d7c07d3f9fd8871360c910940158
BLAKE2b-256 f803aa1cefafeca383e1b86aa7d0b8a5b0a541f5003e60b2b9fdc5497275e914

See more details on using hashes here.

File details

Details for the file pin-2.7.0-4-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pin-2.7.0-4-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 80ac6cf63141f314c16f832bc13cbe9d8310a41fad69c7a7ddd394b8d612cd25
MD5 5ea048bafdf360a56aebdd060837aff7
BLAKE2b-256 1ea527bebf9c6d52f83b06991a224ee6c861275054a1b84c97e9a06810ba0770

See more details on using hashes here.

File details

Details for the file pin-2.7.0-2-cp312-cp312-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for pin-2.7.0-2-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 a13fe42eba71e5c5fa147e65d58469cf1adc3009188739550ec59ec8e808d117
MD5 4da3ed5e29040b6672ec6f2c15cc3574
BLAKE2b-256 6296d7a05aca9bf7ceba4ef5c8035bbec57390611206398649e473fe02f77a64

See more details on using hashes here.

File details

Details for the file pin-2.7.0-2-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pin-2.7.0-2-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4394eef6f1276cd73adac4de2bd6cacf060acbb777cfbef9650b218c94f9bf87
MD5 2bddec52222d21fc1365e8f192856a60
BLAKE2b-256 21c44a525cf89a155b2ccf7073806996d8d1667acb66706f497a7d097e481d31

See more details on using hashes here.

File details

Details for the file pin-2.7.0-2-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pin-2.7.0-2-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 52a6a09f939309a37f319730763c2c2661327f83abe4a20ded9f29df4fb25578
MD5 73a773fe395f1ce8fa3890d2b9fa1d91
BLAKE2b-256 2c991d56a237e475c114a4aa9c48eb1f08bcd77a4e8aaf9a9e5fcc5dfd887f69

See more details on using hashes here.

File details

Details for the file pin-2.7.0-2-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pin-2.7.0-2-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ae38bbda6949117143e5dae7210c5902a05d8295426e4b1b63da972fb1b9fea9
MD5 724bc3850d520d4e80295346bb3fc4ff
BLAKE2b-256 816cccb755537430ae78ec36d6b4ba584297a377bd73594603779673a60b89f5

See more details on using hashes here.

File details

Details for the file pin-2.7.0-2-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for pin-2.7.0-2-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 af922fb2764f2bbeac68e0d9aba690aaee6969fede560964b1f990722e612a6d
MD5 9fb313c567bd94069bc8de1394b5adf6
BLAKE2b-256 820c38860d0ab0fecf4d78aa538ba85af5d3f992f8c7e3e92dc800ef9da3a059

See more details on using hashes here.

File details

Details for the file pin-2.7.0-2-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pin-2.7.0-2-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d84817ad5f5b52cfe675d4d953ae01ca1034b0d30d300a4f088b4b591819252b
MD5 a94ef9e397c327fa8697f7c6ddcb0fda
BLAKE2b-256 913ab63a053cc34c054bd590348d329e4b4eb5ba65e7577a37189b19aa032ee1

See more details on using hashes here.

File details

Details for the file pin-2.7.0-2-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pin-2.7.0-2-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d5636c0318741dbfebc2348c122a0bd906df8a35eb2a0139980e22315471dbc7
MD5 6e2488c1bb49c50100910159c522ebdb
BLAKE2b-256 05ca5315a961e9181ae09033d1378ebe92b859061725c31e8d6b18e923de5571

See more details on using hashes here.

File details

Details for the file pin-2.7.0-2-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pin-2.7.0-2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 cb60ca860bf8ea7918010af1bd4f875a54eda79d6016ffdcfcdef5d7e3da6304
MD5 ba91eb4f7c912927670e8e9d507d199f
BLAKE2b-256 a8c1eeae851f328f73fd8895d1b1101c3911aed5593a0a10f69d98736d8bde5c

See more details on using hashes here.

File details

Details for the file pin-2.7.0-2-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for pin-2.7.0-2-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 49e53b13ee2c4259354a884c0dbb1faf3e5ce1694bf24ba3c02e1ea3b6d862ff
MD5 facb9333dd426f1c523433440fb3df73
BLAKE2b-256 47f00a23f85693be60703a32606c48f95513e405a6ae728eec16c4f4ac157d15

See more details on using hashes here.

File details

Details for the file pin-2.7.0-2-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pin-2.7.0-2-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 36179a18374416a10e29c98e53f3b064166881f87f2795658f4de897d2b1f51a
MD5 110df02a61b8fade98400793e528451f
BLAKE2b-256 b68087d88f1ac4c9068c6b94c6a2038ded2af02ea74d0f640f4b8d3429c34b54

See more details on using hashes here.

File details

Details for the file pin-2.7.0-2-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pin-2.7.0-2-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 95c60adb1e57a5c4bdf0dc14a3b909149692760d570eb25f1688a0a1aca9a3d9
MD5 a8d84b28b6fe4b2d9d1c0b0d69a7ff50
BLAKE2b-256 2828dd6ab264c9d43cdf4fb53f6014f6e9d710cee59370408c57d20b9785245e

See more details on using hashes here.

File details

Details for the file pin-2.7.0-2-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pin-2.7.0-2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1424479969b6b634f1fbd255c78f9b28cbb74d3ce980cb172b735264f8105e00
MD5 7b1aa1561601a1ae46087088b4ff13de
BLAKE2b-256 133c7d43d152da41b08fa43c2cfb7d3573e628f36290d8d6738d66344ff7ef3a

See more details on using hashes here.

File details

Details for the file pin-2.7.0-2-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for pin-2.7.0-2-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 9c4115a29ba843030447af719e183b4ac0f4cdbd6fd58e65f41306e407f38efd
MD5 1db8cadde4e7a7128637c2daf4a5eb4e
BLAKE2b-256 de524dd47307cdd6db51e26842005af2e374262b392ff82ed6a26c2b15b9159a

See more details on using hashes here.

File details

Details for the file pin-2.7.0-2-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pin-2.7.0-2-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 360ae6b97548dba6176af2862be89300db4e473c2b7ebe706e71cb7f5cdd2cbc
MD5 2fe6f65917b2a7ca3e6967de074bef88
BLAKE2b-256 f507c5fc8e12117f3f1634e0dc5d746d6cc924591bb9f12f8589e8315db86e9a

See more details on using hashes here.

File details

Details for the file pin-2.7.0-2-cp39-cp39-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pin-2.7.0-2-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b78a7435e1cf1cafd50d395cc5c7122e1b26027679ea22e343e0a3240d2bab7a
MD5 554d8389229cb73231175f811bd36888
BLAKE2b-256 eff41e4f7e65c01652f7fca000b479ea93c37d8797294662bd14fcfef705f564

See more details on using hashes here.

File details

Details for the file pin-2.7.0-2-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pin-2.7.0-2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c1ad1a399ee4c968be70eec688346560a7de4ec1d5fb2a0d097f46697698835b
MD5 ab56f2e567e8af7e50448377d81f3f44
BLAKE2b-256 58274614490d1db0e6ea20c83c28a99f1f3c591975b1a1dc715858e8bfa73245

See more details on using hashes here.

File details

Details for the file pin-2.7.0-2-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for pin-2.7.0-2-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 bf616184e16cc3740da9851541b7c2286399eab9f09e801052c69ad45f2f6356
MD5 337118beea309c1b44e74e50741d9c99
BLAKE2b-256 ea7e667c29de7788b866e842a35bf8fcb35e0847e0d556d1baa91345fb30cb66

See more details on using hashes here.

File details

Details for the file pin-2.7.0-2-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pin-2.7.0-2-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 29eec11997731cf1480c1a7f775036ec633d79c69d72ad1fe484de079c160b69
MD5 9bc00d7caaa5689358b606ee198bab27
BLAKE2b-256 86516f7c86325b1806d2ed382d9e7f8186bb1e446d6dfac006e9f254b8c10acf

See more details on using hashes here.

File details

Details for the file pin-2.7.0-2-cp38-cp38-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pin-2.7.0-2-cp38-cp38-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a178ca9d73278dce282d0854affe5a3288ea2caf9a6386c3a5dd319322899cab
MD5 dab3bd06a95e5ba887697b60c10e4d73
BLAKE2b-256 3533515466de0c83ed29272452c622cf71410b1961db6727a9b1974bd3eba729

See more details on using hashes here.

File details

Details for the file pin-2.7.0-2-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pin-2.7.0-2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 054919901894e0337f888be5a578e82730d774ec455650d3ec29c1321a76abd2
MD5 623ea1ea56100dd3f5c45cb83cf63011
BLAKE2b-256 229c83c6d0851234e4f662514bc6a3daf47a92f6438e101fec9b2a7d1c868fd7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page