spherical-wrist
spherical-wrist is a Python package for six-axis industrial robot
kinematics, collision checking, path planning, and visualization.
spherical-wrist is backed by the rs-opw-kinematics crate. It wraps the
same Rust library as py-opw-kinematics, but exposes a broader API surface:
py-opw-kinematics intentionally publishes only a selected subset of
rs-opw-kinematics.
The goal of spherical-wrist is to make the full potential of
rs-opw-kinematics available from Python, including collision-free path and
trajectory planning. Collision checking is separate from inverse kinematics,
but collision-aware stroke planning needs both capabilities close together:
available from multiple threads and without repeated Python-Rust boundary
crossing overhead.
The public API is Python first: joint positions are tuples or arrays, poses are SciPy
RigidTransform objects, and examples are plain Python scripts.
Install
python -m pip install spherical-wrist
The package requires Python 3.11 or newer.
For local development, source builds, and maturin, see Development With Maturin. The Rust dependencies are resolved from crates.io during the build.
Hello World
Create a kinematic model, compute a TCP pose from joint angles, then ask inverse kinematics for joint solutions that reach the same pose.
from scipy.spatial.transform import RigidTransform, Rotation
from spherical_wrist import KinematicModel, Robot
model = KinematicModel(
a1=400,
a2=-250,
b=0,
c1=830,
c2=1175,
c3=1444,
c4=230,
offsets=(0, 0, 0, 0, 0, 0),
flip_axes=(True, False, True, True, False, True),
)
robot = Robot(model, degrees=True)
tool = RigidTransform.from_components(
rotation=Rotation.from_euler("xyz", [0, -90, 0], degrees=True),
translation=[0, 0, 0],
)
joints = (10, 0, -90, 0, 0, 0)
pose = robot.forward(joints, tool=tool)
solutions = robot.inverse(pose, tool=tool)
print("TCP position:", pose.translation)
print("IK solutions:", solutions)
The same script is in python/examples/readme_intro.py.
What It Does
- analytical forward and inverse kinematics for spherical-wrist industrial arms
- continuing inverse kinematics that handles wrist singularities with a previous joint position
- optional joint constraints and solution ranking
- 5-DOF inverse kinematics for tools that do not care about J6 rotation
- base, tool, frame, and parallelogram transforms
- mesh loading and collision/proximity checks
- shaped robot models with tool, base, and environment geometry
- RRT joint-space planning
- Cartesian stroke planning with annotated path segments
- Bevy-based visualization and path playback
Main Examples
The most useful examples are:
- cartesian_stroke.py: builds a shaped Staubli RX160 robot, plans a Cartesian TCP stroke, annotates the path, and plays it in the visualization window.
- path_planning_rrt.py: plans a collision-free joint-space path between start and goal configurations.
Run them with:
python python/examples/cartesian_stroke.py
python python/examples/path_planning_rrt.py
If your shell has ROS or another global Python stack on PYTHONPATH, unset it
for these commands:
env -u PYTHONPATH python python/examples/cartesian_stroke.py
See Examples for the full example catalog.
Visualization Requirements
The default release includes visualization tools that are important for trying out the package easily and checking if the robot is properly configured. Headless release for advanced users who have RViz or comparable visualization as an alternative is planned.
Non-visual kinematics, collision, and planning APIs need only the Python dependencies installed by pip. Visualization opens a Bevy/wgpu desktop window, so it also needs a graphical session and a working GPU driver.
Linux:
- run inside an X11 or Wayland desktop session; headless servers and minimal containers need a display server or virtual display setup
- install GPU runtime drivers, including a Vulkan driver such as
mesa-vulkan-drivers,vulkan-radeon,vulkan-intel, or the appropriate NVIDIA driver package for your system - if building from source, install Bevy's native build dependencies:
g++,pkg-config,libx11-dev,libasound2-dev,libudev-dev,libxkbcommon-x11-0,libwayland-dev, andlibxkbcommon-dev
macOS:
- run in a normal graphical login session on a Metal-capable Mac
- prebuilt wheels should not require Xcode or command line tools at runtime
- source builds require Apple's command line tools or Xcode
Windows:
- run in a normal graphical desktop session with current GPU drivers
- prebuilt wheels should not require Visual Studio Build Tools at runtime
- source builds require the Visual Studio C++ build tools and a Windows SDK
Documentation
- Installation
- Quickstart
- Core Concepts
- Robot Models
- Transforms And Units
- Jacobian
- Meshes And Collisions
- Path Planning
- Visualization
- API Reference
- Troubleshooting
- Development With Maturin
Project Links
Please use the GitHub repository to raise issues and provide merge requests. The core Rust implementation is rs-opw-kinematics. A useful background article is An Analytical Solution of the Inverse Kinematics Problem of Industrial Serial Manipulators with an Ortho-parallel Basis and a Spherical Wrist.
Use cases
Use Robot when you only need kinematics. It provides forward
kinematics for all roboto joints, not only the tool-tip pose.
Use KinematicsWithShape when robot geometry matters: collision checks,
distance queries, path planning, or visualization.
Use RRTPlanner when you want to move the robot between the two known poses.
It plans a collision-free joint-space path between them and can
enforce a configurable safety distance around geometry. That margin matters in
real cells: calibration error can otherwise turn a mathematically valid
near-contact path into brief surface contact, resulting in scratches, or robot damage.
Use CartesianPlanner when the tool center point must follow a Cartesian
stroke defined by poses. It can start from an arbitrary robot pose, plan the landing into
best suitable joint configuration for the stroke when alternatives exist, and plan a
collision-free path that follows the Cartesian line. Simple joint interpolation
does not provide that guarantee.
Metadata
Release files for spherical-wrist 0.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| spherical_wrist-0.0.3.tar.gz | 1.0 MB | Details |
Built distributions (wheels)
Total release size: 480.9 MB
Release files / spherical_wrist-0.0.3.tar.gz
| Download URL | spherical_wrist-0.0.3.tar.gz |
|---|---|
| Size | 1.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
35c4993be304428d25b096be538008da8564e6dfe317ba31423860e7770ab71b
|
|
BLAKE2b-256 checksum How to use checksums |
dda8c919d2492c7947d731ffd6cb594ecd6e9f40d94f9f80fbd434eab19f6a07
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
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 Sep 11, 2026.
Transparency logRelease files / spherical_wrist-0.0.3-cp314-cp314-win_amd64.whl
| Download URL | spherical_wrist-0.0.3-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 25.5 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
96f659f9285bd53dae75146d6dd9b96f20331ea9f24f045153ed5058a9056f4e
|
|
BLAKE2b-256 checksum How to use checksums |
8966982a31295c352d8c12fdcc7eb6e586123349118dede6a987873fef86f014
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
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 Sep 11, 2026.
Transparency logRelease files / spherical_wrist-0.0.3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | spherical_wrist-0.0.3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 35.4 MB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
9c9e2697e9e4475873a64659efdc12f0c4955525294b4a9bcc525aa067b0ce20
|
|
BLAKE2b-256 checksum How to use checksums |
509acc7c43be4535917424449d0ef3dc77e0801e7c15c7a91921ee30fc67624e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
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 Sep 11, 2026.
Transparency logRelease files / spherical_wrist-0.0.3-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | spherical_wrist-0.0.3-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 29.4 MB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
bf9a4cc22b3bb71339b309f4699eb0ceed18614138700b891b3dbeba40575ac6
|
|
BLAKE2b-256 checksum How to use checksums |
1e64dc84d5cac4b622c5ff4a10a707ea79311442e3c4238cc19294c361ece0f0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
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 Sep 11, 2026.
Transparency logRelease files / spherical_wrist-0.0.3-cp314-cp314-macosx_10_12_x86_64.whl
| Download URL | spherical_wrist-0.0.3-cp314-cp314-macosx_10_12_x86_64.whl |
|---|---|
| Size | 29.7 MB |
| Tags | CPython 3.14 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
7a9aa8bff2d7c192622e62f1ac89b8b080ff1b35fb865543cc9a51c58a42b424
|
|
BLAKE2b-256 checksum How to use checksums |
f393c52b736ac615992e3a8900c07415a0cb46dc2102bac1f412d8455608e4fc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
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 Sep 11, 2026.
Transparency logRelease files / spherical_wrist-0.0.3-cp313-cp313-win_amd64.whl
| Download URL | spherical_wrist-0.0.3-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 25.5 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
f1526e4f33131bc32da0536798f68044a12678a0ad1e284786340e1b3062dec4
|
|
BLAKE2b-256 checksum How to use checksums |
cdebd75f25d82938ed95615e949aadcc8a054732743a4e9d62df8973cc9bbf0e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
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 Sep 11, 2026.
Transparency logRelease files / spherical_wrist-0.0.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | spherical_wrist-0.0.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 35.4 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
1d4f2eeb00e549de045f0c51e795cff4a3a373cea51ca840a485a817bfac59c5
|
|
BLAKE2b-256 checksum How to use checksums |
7d8bb16d8dc4c47eae4f388d30eba2b727c4d1bc01a5b0e336bc8c589b75af4a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
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 Sep 11, 2026.
Transparency logRelease files / spherical_wrist-0.0.3-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | spherical_wrist-0.0.3-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 29.4 MB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
24ed6129cc1af3005fb759b725ca4d8e471a91ae974c19f06b73312bd5856e82
|
|
BLAKE2b-256 checksum How to use checksums |
308e42488397b9f48cd465a4b0f064edce61b13ab71e9178d345eb81ddbb69e9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
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 Sep 11, 2026.
Transparency logRelease files / spherical_wrist-0.0.3-cp313-cp313-macosx_10_12_x86_64.whl
| Download URL | spherical_wrist-0.0.3-cp313-cp313-macosx_10_12_x86_64.whl |
|---|---|
| Size | 29.7 MB |
| Tags | CPython 3.13 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
811931c1a8d23db662e87bac5f8464711cc1e4f53975b31d2cc095111fe96bb5
|
|
BLAKE2b-256 checksum How to use checksums |
dcce9761a7a6ccdf3b1454c349eb40808cd2dac6d84c8cc77dcc6937c9884bdb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
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 Sep 11, 2026.
Transparency logRelease files / spherical_wrist-0.0.3-cp312-cp312-win_amd64.whl
| Download URL | spherical_wrist-0.0.3-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 25.5 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
805c20dff869a56c4fee925c349c9d6a948c960cbb5dc0d13ef71edbbe817d64
|
|
BLAKE2b-256 checksum How to use checksums |
bebe817f66033e5f8848752e9e93d7ff623f71f07549dc2bacf849081a5029a8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
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 Sep 11, 2026.
Transparency logRelease files / spherical_wrist-0.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | spherical_wrist-0.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 35.4 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
cc2a7a6724ce581c51480042232a8f1843f3a338a7e0343d0391e7601a5e3517
|
|
BLAKE2b-256 checksum How to use checksums |
2ef1103643b7433d964230f66c712e31731bc69a0120096d19782895755d8cad
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
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 Sep 11, 2026.
Transparency logRelease files / spherical_wrist-0.0.3-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | spherical_wrist-0.0.3-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 29.4 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
7e5b9cd80eba3a6cfde54f0c9aef1f19633a249b4d776234e03bcf17147bfe3f
|
|
BLAKE2b-256 checksum How to use checksums |
b8e1145bd795e8be3c0d0a9c21a69b71777d33bd1856af87059215983aa192f3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
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 Sep 11, 2026.
Transparency logRelease files / spherical_wrist-0.0.3-cp312-cp312-macosx_10_12_x86_64.whl
| Download URL | spherical_wrist-0.0.3-cp312-cp312-macosx_10_12_x86_64.whl |
|---|---|
| Size | 29.7 MB |
| Tags | CPython 3.12 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
10378f9b94433addeff740b2497f9cdae03374af69c0d9f63270cb06c2263e51
|
|
BLAKE2b-256 checksum How to use checksums |
fdd58455ea6381f6eeb5f5f9ee433ae177beef949f9deeb6859be22c5abaf450
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
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 Sep 11, 2026.
Transparency logRelease files / spherical_wrist-0.0.3-cp311-cp311-win_amd64.whl
| Download URL | spherical_wrist-0.0.3-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 25.5 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
85cc56d0aa336a68f4757b6c7a81b76b2ee749f1cbaf9bd88edd3d52b221e1fc
|
|
BLAKE2b-256 checksum How to use checksums |
14c25acbd3a77927e7050428de6075955f817a4f530b3f8479034c54a425abc8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
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 Sep 11, 2026.
Transparency logRelease files / spherical_wrist-0.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | spherical_wrist-0.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 35.4 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
1d8d586d144221881ac8893e983065c8b77d31aa2abd5db628ccaea76eac49e7
|
|
BLAKE2b-256 checksum How to use checksums |
c4a95a4a7f1b85aefe3dc0780915dcf03b4d5ba1e5e8aeec8858fbd8020d0bec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
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 Sep 11, 2026.
Transparency logRelease files / spherical_wrist-0.0.3-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | spherical_wrist-0.0.3-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 29.4 MB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
44bdbdb664468e0b289d4f732544b93c424e653fe9e838ad42edec7f5b079154
|
|
BLAKE2b-256 checksum How to use checksums |
79cd52cad86ee00d58eeef14675a6d093b0b7b83a3076654cb69240833ea1c7e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
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 Sep 11, 2026.
Transparency logRelease files / spherical_wrist-0.0.3-cp311-cp311-macosx_10_12_x86_64.whl
| Download URL | spherical_wrist-0.0.3-cp311-cp311-macosx_10_12_x86_64.whl |
|---|---|
| Size | 29.6 MB |
| Tags | CPython 3.11 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
997212e92bfea85e7fe718def8fcd9a62144971a196f8a194a04bbdedc27e3d1
|
|
BLAKE2b-256 checksum How to use checksums |
227b155eebbfb3b9768edfc7638d4b001976e211d751c9b43084e6d6be20debe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
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 Sep 11, 2026.
Transparency log