Skip to main content

Python bindings for WujiHandCpp

Project description

wujihandpy

License: MIT Release

Wuji Hand SDK: C++ core with Python bindings, for controlling and communicating with Wuji Hand. WujihandPy is the Python binding of WujihandCpp, providing an easy-to-use Python API for Wujihand dexterous-hand devices. Supports synchronous, asynchronous, unchecked operations and real-time control.

Table of Contents

Repository Structure

├── src/
│   ├── wujihandpy/
│   │   ├── __init__.py
│   │   └── _core/
│   ├── main.cpp
│   └── *.hpp
├── example/
│   ├── 1.read.py
│   ├── 2.write.py
│   ├── 3.realtime.py
│   ├── 4.async.py
│   └── 5.multithread.py
├── wujihandcpp/
│   ├── include/
│   │   └── wujihandcpp/
│   ├── src/
│   └── tests/
├── .github/
│   └── workflows/
├── pyproject.toml
├── CMakeLists.txt
└── README.md

Directory Description

Directory Description
src/ Python binding source code and C++ headers
src/wujihandpy/ Python package with type stubs
example/ Usage examples for read, write, realtime, and async operations
wujihandcpp/ Underlying C++ SDK implementation
wujihandcpp/include/ C++ header files
wujihandcpp/src/ C++ source files
.github/workflows/ CI/CD automation

Usage

Prerequisites

Supported CPU Architectures:

  • x86_64
  • ARM64

Minimum System Requirements (Linux):

  • glibc 2.28+ (Debian 10+, Ubuntu 18.10+, Fedora 29+, CentOS/RHEL 8+)
  • Python 3.8-3.14

Minimum System Requirements (Windows):

WujihandPy does not support Windows yet; we will work to add support as soon as possible.

Installation

WujihandPy supports one-line installation via pip:

pip install wujihandpy

For Linux users, you need to configure udev rules to allow non-root users to access USB devices:

echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="0483", MODE="0666"' | \
sudo tee /etc/udev/rules.d/95-wujihand.rules && \
sudo udevadm control --reload-rules && \
sudo udevadm trigger

Running

Import Modules

import wujihandpy
import numpy as np

Connect to the Hand

hand = wujihandpy.Hand()

Read Data

def read_<dataname>(self) -> datatype
def read_<dataname>(self) -> np.ndarray[datatype]  # For bulk-read

All available data can be found in the API Reference.

For example, read the hand's powered-on running time (us):

time = hand.read_system_time()

Besides hand-level data, each joint also has its own data; joint-level data names all use joint as the prefix.

For example, read the current position of joint 0 on finger 1 (index finger):

position = hand.finger(1).joint(0).read_joint_actual_position()

Joint angles are of type np.float64 in radians. The zero point and positive direction follow the definitions in the URDF files.

Reading multiple data items with a single command is called Bulk-Read.

For example, the following reads the current position of all (20) joints on the hand:

positions = hand.read_joint_actual_position()

For bulk reads, the function returns an np.ndarray[np.float64] containing all values:

>>> print(positions)
[[ 0.975  0.523  0.271 -0.45 ]
 [ 0.382  0.241 -0.003 -0.275]
 [-0.299  0.329  0.067 -0.286]
 [-0.122  0.228  0.315 -0.178]
 [ 0.205  0.087  0.288 -0.149]]

read blocks until the operation completes. When the function returns, the read is guaranteed to have succeeded.

Write Data

The write API is similar, but takes an extra parameter for the target value:

def write_<dataname>(self, datatype)
def write_<dataname>(self, np.ndarray[datatype])  # For bulk-write

For example, write a target position to a single joint:

hand.finger(1).joint(0).write_joint_target_position(0.8)

Valid angle limits for each joint can be obtained via:

upper = <Hand / Finger / Joint>.read_joint_upper_limit()
lower = <Hand / Finger / Joint>.read_joint_lower_limit()

If the written angle is outside the valid range, it will be automatically clamped to the upper/lower limit.

Bulk-Write is also supported. For example, write the same target position to all joints of finger 1 (index finger):

hand.finger(1).write_joint_target_position(0.8)

If each joint has a different target, pass an np.ndarray containing the target values for each joint:

hand.finger(1).write_joint_target_position(
    np.array(
        #   J1    J2    J3    J4
        [0.8,  0.0,  0.8,  0.8],
        dtype=np.float64,
    )
)

write blocks until the operation completes. When the function returns, the write is guaranteed to have succeeded.

Realtime Control

By default, both reads and writes use a buffer pool: data is accumulated for a while before being transmitted, so the maximum read/write frequency cannot exceed 100 Hz.

For scenarios that require smooth joint position control, use Realtime Control.

Asynchronous Read/Write

All read/write functions have asynchronous versions, with an _async suffix.

async def read_<dataname>_async(self) -> datatype
async def read_<dataname>_async(self) -> np.ndarray[datatype]  # For bulk-read
async def write_<dataname>_async(self, datatype)
async def write_<dataname>_async(self, np.ndarray[datatype])   # For bulk-write

Asynchronous APIs must be awaited. The thread/event loop is not blocked while waiting, and when the call returns the read/write is guaranteed to have succeeded.

Unchecked Read/Write

If you do not care whether a read/write succeeds, you can use the Unchecked versions, with an _unchecked suffix.

def read_<dataname>_unchecked(self) -> None
def write_<dataname>_unchecked(self, datatype)
def write_<dataname>_unchecked(self, np.ndarray[datatype])  # For bulk-write

Unchecked functions always return immediately without blocking, and are typically used in latency-sensitive scenarios.

Get Cached Values

If you want to retrieve results from previous reads/writes, use the get family of functions:

def get_<dataname>(self) -> datatype
def get_<dataname>(self) -> np.ndarray[datatype]  # For bulk-read

get functions also never block. They always return the most recently read value, regardless of whether it came from read, async-read, or read-unchecked.

If the data has never been requested, or the request has not succeeded yet, the return value of get is undefined (usually 0).

Examples

All example code is located in the example directory.

Troubleshooting

  1. Could not find a version that satisfies the requirement

    If you see this error during installation, upgrade pip first:

    python3 -m pip install --upgrade pip
    

    Then retry with the upgraded pip:

    python3 -m pip install wujihandpy
    

Appendix

Performance and Optimization

While ensuring usability, WujihandPy has been optimized for performance and efficiency as much as possible.

We recommend prioritizing bulk read/write to maximize performance.

For scenarios that require smooth joint position control, be sure to use realtime_controller.

References

Contact

For any questions, please contact support@wuji.tech.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

wujihandpy-1.5.1rc0-cp314-cp314t-win_arm64.whl (920.6 kB view details)

Uploaded CPython 3.14tWindows ARM64

wujihandpy-1.5.1rc0-cp314-cp314t-win_amd64.whl (774.1 kB view details)

Uploaded CPython 3.14tWindows x86-64

wujihandpy-1.5.1rc0-cp314-cp314t-manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ x86-64

wujihandpy-1.5.1rc0-cp314-cp314t-manylinux_2_28_aarch64.whl (1.6 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ ARM64

wujihandpy-1.5.1rc0-cp314-cp314-win_arm64.whl (905.7 kB view details)

Uploaded CPython 3.14Windows ARM64

wujihandpy-1.5.1rc0-cp314-cp314-win_amd64.whl (745.6 kB view details)

Uploaded CPython 3.14Windows x86-64

wujihandpy-1.5.1rc0-cp314-cp314-manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

wujihandpy-1.5.1rc0-cp314-cp314-manylinux_2_28_aarch64.whl (1.6 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

wujihandpy-1.5.1rc0-cp313-cp313-win_arm64.whl (879.9 kB view details)

Uploaded CPython 3.13Windows ARM64

wujihandpy-1.5.1rc0-cp313-cp313-win_amd64.whl (724.2 kB view details)

Uploaded CPython 3.13Windows x86-64

wujihandpy-1.5.1rc0-cp313-cp313-manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

wujihandpy-1.5.1rc0-cp313-cp313-manylinux_2_28_aarch64.whl (1.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

wujihandpy-1.5.1rc0-cp312-cp312-win_arm64.whl (880.0 kB view details)

Uploaded CPython 3.12Windows ARM64

wujihandpy-1.5.1rc0-cp312-cp312-win_amd64.whl (724.1 kB view details)

Uploaded CPython 3.12Windows x86-64

wujihandpy-1.5.1rc0-cp312-cp312-manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

wujihandpy-1.5.1rc0-cp312-cp312-manylinux_2_28_aarch64.whl (1.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

wujihandpy-1.5.1rc0-cp311-cp311-win_arm64.whl (879.4 kB view details)

Uploaded CPython 3.11Windows ARM64

wujihandpy-1.5.1rc0-cp311-cp311-win_amd64.whl (721.3 kB view details)

Uploaded CPython 3.11Windows x86-64

wujihandpy-1.5.1rc0-cp311-cp311-manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

wujihandpy-1.5.1rc0-cp311-cp311-manylinux_2_28_aarch64.whl (1.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

wujihandpy-1.5.1rc0-cp310-cp310-win_arm64.whl (879.9 kB view details)

Uploaded CPython 3.10Windows ARM64

wujihandpy-1.5.1rc0-cp310-cp310-win_amd64.whl (720.5 kB view details)

Uploaded CPython 3.10Windows x86-64

wujihandpy-1.5.1rc0-cp310-cp310-manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

wujihandpy-1.5.1rc0-cp310-cp310-manylinux_2_28_aarch64.whl (1.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

wujihandpy-1.5.1rc0-cp39-cp39-win_arm64.whl (879.9 kB view details)

Uploaded CPython 3.9Windows ARM64

wujihandpy-1.5.1rc0-cp39-cp39-win_amd64.whl (734.2 kB view details)

Uploaded CPython 3.9Windows x86-64

wujihandpy-1.5.1rc0-cp39-cp39-manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

wujihandpy-1.5.1rc0-cp39-cp39-manylinux_2_28_aarch64.whl (1.6 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ ARM64

wujihandpy-1.5.1rc0-cp38-cp38-win_amd64.whl (737.2 kB view details)

Uploaded CPython 3.8Windows x86-64

wujihandpy-1.5.1rc0-cp38-cp38-manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ x86-64

wujihandpy-1.5.1rc0-cp38-cp38-manylinux_2_28_aarch64.whl (1.6 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ ARM64

File details

Details for the file wujihandpy-1.5.1rc0-cp314-cp314t-win_arm64.whl.

File metadata

File hashes

Hashes for wujihandpy-1.5.1rc0-cp314-cp314t-win_arm64.whl
Algorithm Hash digest
SHA256 bed2e7976c0c78d60b5a0d2cebe6a4657db6b0a67e27fd0d89bfb7e0f217c75d
MD5 d9a51c783cd74a127d79aa66967f3468
BLAKE2b-256 19a7a0697eb105e101fbadac52ffec7198c98f4ff79a9094e60827d6a22c85f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-1.5.1rc0-cp314-cp314t-win_arm64.whl:

Publisher: release-package.yml on wuji-technology/wujihandpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wujihandpy-1.5.1rc0-cp314-cp314t-win_amd64.whl.

File metadata

File hashes

Hashes for wujihandpy-1.5.1rc0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 eb0b87b31e9fe0616282a3506424209c2f6d81baefca3dc2c83688c95ae6f04e
MD5 5d786ee9565a4c14b4fc7dbe4ea3ec59
BLAKE2b-256 5cd9e3bed6b165711cdaadf581bd8cefd4274a206a194de1804d28ca8bd53f87

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-1.5.1rc0-cp314-cp314t-win_amd64.whl:

Publisher: release-package.yml on wuji-technology/wujihandpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wujihandpy-1.5.1rc0-cp314-cp314t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for wujihandpy-1.5.1rc0-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9cb8761c1755055e79271fd0760caa316cb250b88167fc567260e8b9d265e066
MD5 93a0fe7e47f50363cc3b7bac3a801a63
BLAKE2b-256 e093f93c3d041019b95817e8c3ca0c44b1ed5ed7c1f9749f1264f6fa912d4e18

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-1.5.1rc0-cp314-cp314t-manylinux_2_28_x86_64.whl:

Publisher: release-package.yml on wuji-technology/wujihandpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wujihandpy-1.5.1rc0-cp314-cp314t-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for wujihandpy-1.5.1rc0-cp314-cp314t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1eca73575ec4c7b6c668d3a7dea4f4663f5870b74b7e955d862f5f528ba6dc11
MD5 1acb3d4bb44541342b7b78c592049f79
BLAKE2b-256 503979ca675c005a5762988d549d2a9b73c0c247fa4f9cd68a4507e6f5e68540

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-1.5.1rc0-cp314-cp314t-manylinux_2_28_aarch64.whl:

Publisher: release-package.yml on wuji-technology/wujihandpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wujihandpy-1.5.1rc0-cp314-cp314-win_arm64.whl.

File metadata

File hashes

Hashes for wujihandpy-1.5.1rc0-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 a26fdd7f97440ccdd3a0c9a229ab7a09a24e3b40ff174bad9f37de5723aad11c
MD5 4122ed7650868cff61d6d52bf9c1d804
BLAKE2b-256 70e3aab1028e26796f6450381da91c96c477421031d1a6901d19a5fd8ad7b22e

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-1.5.1rc0-cp314-cp314-win_arm64.whl:

Publisher: release-package.yml on wuji-technology/wujihandpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wujihandpy-1.5.1rc0-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for wujihandpy-1.5.1rc0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 80727bb4f50fcc330e5bc1bba56617ba93682d6f6db7306b71fc835c93ae80dc
MD5 cae1bd18674cf3c73e7d80eda30319d4
BLAKE2b-256 8da530cb9ae8ce9397a36f83bfd5215236c3f256e65ffb14e8143b96afc46fe7

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-1.5.1rc0-cp314-cp314-win_amd64.whl:

Publisher: release-package.yml on wuji-technology/wujihandpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wujihandpy-1.5.1rc0-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for wujihandpy-1.5.1rc0-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 51763eee879ecd09d4b1bdc767de93784d4d948b3cde6b75a328b7c66a4d0221
MD5 5ebfe3e06d0e747322e8a87826a9508b
BLAKE2b-256 a1a03a175b8cf82d7529d5a1c44ee8251b030655f43a1756385864423c0dfcdc

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-1.5.1rc0-cp314-cp314-manylinux_2_28_x86_64.whl:

Publisher: release-package.yml on wuji-technology/wujihandpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wujihandpy-1.5.1rc0-cp314-cp314-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for wujihandpy-1.5.1rc0-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2c4941c61d2294224761e3c5b53ca378514c5b6fe28e0d9c5d5d2d394b3d740f
MD5 d33df3533506f8272390bba007ef176a
BLAKE2b-256 8d38be25bbbf6cac115655ab88f62586894228c8780053aaaadc295d53bc7704

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-1.5.1rc0-cp314-cp314-manylinux_2_28_aarch64.whl:

Publisher: release-package.yml on wuji-technology/wujihandpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wujihandpy-1.5.1rc0-cp313-cp313-win_arm64.whl.

File metadata

File hashes

Hashes for wujihandpy-1.5.1rc0-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 1e1244c27f3d61ad4c8763171e33f87c131e1784a277ac57c0ceb86ced087834
MD5 14d679290b1cc9a548c07bf4e2bbe242
BLAKE2b-256 95252a8bf526a6e0a9054b86ad22dd8fd8063f9342691763d7d7bf947ee004ee

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-1.5.1rc0-cp313-cp313-win_arm64.whl:

Publisher: release-package.yml on wuji-technology/wujihandpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wujihandpy-1.5.1rc0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for wujihandpy-1.5.1rc0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 76650c2f370e386490b304e536d9f1f11eda07340d6a9b4339e90b7ec1bd1057
MD5 71f854696ea5bf81ca1a190d125fff26
BLAKE2b-256 1f48546c0d7517acb282ac0cc1c7aae27713c22aaa1ad318c5cb48a4ec3cad26

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-1.5.1rc0-cp313-cp313-win_amd64.whl:

Publisher: release-package.yml on wuji-technology/wujihandpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wujihandpy-1.5.1rc0-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for wujihandpy-1.5.1rc0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e12f81192692878aa6c44efd53a1d03206d84c84ef87656b5062675a4fb57ec5
MD5 bb8c20aa1c1d4c370ca65042cd126f9d
BLAKE2b-256 7a6f9e355f2c2bd922497c02709b5519fe66759536566c33d261ae0cc6b6237b

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-1.5.1rc0-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: release-package.yml on wuji-technology/wujihandpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wujihandpy-1.5.1rc0-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for wujihandpy-1.5.1rc0-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b09e1b93642756641739f72c15d718a7df6b36ff81ddd2a35d98b1a663392602
MD5 331942afb421ed813329938ef2b217e7
BLAKE2b-256 bf435e4f90f4bf40444d28872d06e46f882fb77752f0f285089b88a4a9c2dd5b

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-1.5.1rc0-cp313-cp313-manylinux_2_28_aarch64.whl:

Publisher: release-package.yml on wuji-technology/wujihandpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wujihandpy-1.5.1rc0-cp312-cp312-win_arm64.whl.

File metadata

File hashes

Hashes for wujihandpy-1.5.1rc0-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 2e8e898126bf5ccf3bc52267b831cc27ed65c8432833ed3303e69bcc924cbb60
MD5 2795ade2a583c2bf4f683df4d41a5b28
BLAKE2b-256 3564dc0e7e06e771e197ff385452cbe54652b4c89e3b03c16101153262c4cd45

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-1.5.1rc0-cp312-cp312-win_arm64.whl:

Publisher: release-package.yml on wuji-technology/wujihandpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wujihandpy-1.5.1rc0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for wujihandpy-1.5.1rc0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 106f7cacddc158c284802a399226905c530c46299eb851b1e322f80d8d3e7805
MD5 4ad22596c1a6253e7cfc64c5fd594d79
BLAKE2b-256 b8fc3064f40efddb4b740d8889f252044b673f84348547c89185659ed76be80b

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-1.5.1rc0-cp312-cp312-win_amd64.whl:

Publisher: release-package.yml on wuji-technology/wujihandpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wujihandpy-1.5.1rc0-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for wujihandpy-1.5.1rc0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4b9dcf430f17e16469d5d2aba8521b6d4095a3b352375349d27aa41e8f873a6d
MD5 8463f3a61969beedd15d009f61795a4d
BLAKE2b-256 e9865a3ff733b257f7169d4b1133f57c8566ca70a8216572b0a51613d3430c18

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-1.5.1rc0-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: release-package.yml on wuji-technology/wujihandpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wujihandpy-1.5.1rc0-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for wujihandpy-1.5.1rc0-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d977544ffb013bdc04832aaedcd4c93ead05c9bcd6af4585c09188d356088c3a
MD5 3bd6069a3ef591f236f83f8dde8ad8c2
BLAKE2b-256 1d40abdf4066ee7add6a4d04dbdad3d1030f1eed7142f9cd8a609fae9abc760b

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-1.5.1rc0-cp312-cp312-manylinux_2_28_aarch64.whl:

Publisher: release-package.yml on wuji-technology/wujihandpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wujihandpy-1.5.1rc0-cp311-cp311-win_arm64.whl.

File metadata

File hashes

Hashes for wujihandpy-1.5.1rc0-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 0a60fb4aad48dfcf763c3cf8816d659ebeed5cbd73b3f2b2823d16c802ca6f91
MD5 c0c53c66b2a7c4ab30b8ab08cf61d050
BLAKE2b-256 095e2998b669b7b59e8ec0ecd89bdd36e1d34ad66951da4941efd7d9720019e3

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-1.5.1rc0-cp311-cp311-win_arm64.whl:

Publisher: release-package.yml on wuji-technology/wujihandpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wujihandpy-1.5.1rc0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for wujihandpy-1.5.1rc0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8ccaea5565e4f17c7386a8faf8eda6ad60102e51957fbacec8451d5760512aaa
MD5 a21f361482d7f00a3b94833ab4fe7a90
BLAKE2b-256 0e283acce2f304330d5371d0f0db715b9d4b8d907082104d4eebaa4413e47c79

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-1.5.1rc0-cp311-cp311-win_amd64.whl:

Publisher: release-package.yml on wuji-technology/wujihandpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wujihandpy-1.5.1rc0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for wujihandpy-1.5.1rc0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7075f251e36719b36400918324da336ee8679c300376a27bc7e4708fd717d1c4
MD5 770ad2d2906a7506d5d7ea61c5d0e511
BLAKE2b-256 ba769df68916183ffc183ecd9799395a93d3f235cb230ef98c97e5c72fa8f162

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-1.5.1rc0-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: release-package.yml on wuji-technology/wujihandpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wujihandpy-1.5.1rc0-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for wujihandpy-1.5.1rc0-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7bd7886963125df01ef8b0a5569f414cb5551751c72ba62bd88444c9e221b584
MD5 c124a01699c87cd4e593b6ca0085c615
BLAKE2b-256 0de77b7b7ca8cf07de692e7ae2acb760d33b78dd89d927325f80df785845ee49

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-1.5.1rc0-cp311-cp311-manylinux_2_28_aarch64.whl:

Publisher: release-package.yml on wuji-technology/wujihandpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wujihandpy-1.5.1rc0-cp310-cp310-win_arm64.whl.

File metadata

File hashes

Hashes for wujihandpy-1.5.1rc0-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 43b66dc83c27676eec84eff33ca71688fcd61624cef9006c9b4b9f11768da36e
MD5 a739098715a2d7b7b3412b9f304d9d8b
BLAKE2b-256 1ab87aa5880b705c2551d08904996fcb5b7d71df90a41dc0663b34e030f4e077

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-1.5.1rc0-cp310-cp310-win_arm64.whl:

Publisher: release-package.yml on wuji-technology/wujihandpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wujihandpy-1.5.1rc0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for wujihandpy-1.5.1rc0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 3d2e8279a21ed56787f78ed5d7adba59c75809840a9c60776194c1448b5d7b1f
MD5 e4af8c059b61b926f6b08f812fa5c7f9
BLAKE2b-256 2815d609ad925d8b45b0e86f071109a3e2c90be9cd83e2fdf50f9b3b14a9d9e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-1.5.1rc0-cp310-cp310-win_amd64.whl:

Publisher: release-package.yml on wuji-technology/wujihandpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wujihandpy-1.5.1rc0-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for wujihandpy-1.5.1rc0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d7691c7d319eb35cb9bbf85fb2f664c866e53cc7f2a6eb8326f047e026cd186f
MD5 142dc20026f016d08c7f03db015e84df
BLAKE2b-256 1b929313815bab6f6fa170786ec1435bf870a910141cb0d9f629c18403c2ab10

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-1.5.1rc0-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: release-package.yml on wuji-technology/wujihandpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wujihandpy-1.5.1rc0-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for wujihandpy-1.5.1rc0-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 071f6699bd068127ac42618639fc35e7c014abe3ba3bd8d495468d7542895fac
MD5 8319be53091867829b5a5e6e4f687180
BLAKE2b-256 74317f057ec409f3cd7b05b0d6ed72a81f93bfbc7fc34534d50a58962c78fecd

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-1.5.1rc0-cp310-cp310-manylinux_2_28_aarch64.whl:

Publisher: release-package.yml on wuji-technology/wujihandpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wujihandpy-1.5.1rc0-cp39-cp39-win_arm64.whl.

File metadata

File hashes

Hashes for wujihandpy-1.5.1rc0-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 76c373806c5468c2ef6da954c9af03be18b80ce573ff7d91cc38c0a9aa9b83ec
MD5 e1c09d019ccc23ba70f40481412cbeb2
BLAKE2b-256 1f0cc2ad9e5c8dfee71651ee445f900c80e4669f292bbfc7391a19745eb95bd8

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-1.5.1rc0-cp39-cp39-win_arm64.whl:

Publisher: release-package.yml on wuji-technology/wujihandpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wujihandpy-1.5.1rc0-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for wujihandpy-1.5.1rc0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 1f93900a529bfec672f26ff3a2c9d8d988f120b724b7fe04d125b3df23a5e559
MD5 468942b9ef64b8a015aca17b4623a6a3
BLAKE2b-256 4080cca45649ffdaab43ca97cafb5a1f5343fe6929206213a28e227db551ad39

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-1.5.1rc0-cp39-cp39-win_amd64.whl:

Publisher: release-package.yml on wuji-technology/wujihandpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wujihandpy-1.5.1rc0-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for wujihandpy-1.5.1rc0-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 04ac0a9bec54cf64a2a3a64fd81f6a9fe9e3bf1b6b955094d59dde1b634259ad
MD5 1b05b26ea2265b0e1bd6195bc883f69e
BLAKE2b-256 77af504a688ea8f8c6df0f73687cdc6a480d5e448f81829041b9d65f26cddfc1

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-1.5.1rc0-cp39-cp39-manylinux_2_28_x86_64.whl:

Publisher: release-package.yml on wuji-technology/wujihandpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wujihandpy-1.5.1rc0-cp39-cp39-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for wujihandpy-1.5.1rc0-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7ca7034c9baa3d52ed72662423d38df583187325b7ca95a9c3caf81a8bb4bcec
MD5 0dbb4b95f40ddc310294e876f09c9cd4
BLAKE2b-256 a799c1cea45de055d8ba243bb4c8074f940d09b665ef58420fdd5cc1c444636b

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-1.5.1rc0-cp39-cp39-manylinux_2_28_aarch64.whl:

Publisher: release-package.yml on wuji-technology/wujihandpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wujihandpy-1.5.1rc0-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for wujihandpy-1.5.1rc0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 995387c90c6b1012ae6442b9af81a30aa4300c0aa88b1d78580e9823476b467e
MD5 6830e3ac614b7fd116d085c6a12c6c7f
BLAKE2b-256 9e93b29179620576bed625f31b9396b26c4d0b88e8a7716d6fa6787518fa0ffd

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-1.5.1rc0-cp38-cp38-win_amd64.whl:

Publisher: release-package.yml on wuji-technology/wujihandpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wujihandpy-1.5.1rc0-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for wujihandpy-1.5.1rc0-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 40f12948df82e5ce8506368486010a5c039b8bf31608c5d10a77280ac8736c01
MD5 a3ac473b3463199e96127ed3163f0c30
BLAKE2b-256 b2a6894ac1624ccbb33ffeb0ed59ab5906fc46cac0afb5873e93ff60f198adea

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-1.5.1rc0-cp38-cp38-manylinux_2_28_x86_64.whl:

Publisher: release-package.yml on wuji-technology/wujihandpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wujihandpy-1.5.1rc0-cp38-cp38-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for wujihandpy-1.5.1rc0-cp38-cp38-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7355b8bc661cc824838b8aa4ca1473b430aa8c113140fec69da95e8f0eef9f83
MD5 a8a99025101bb717bc8956a16416ec69
BLAKE2b-256 60a141bec2ddf6155429132f14c97f79149871252111534b3df74156fde75cc0

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-1.5.1rc0-cp38-cp38-manylinux_2_28_aarch64.whl:

Publisher: release-package.yml on wuji-technology/wujihandpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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