Skip to main content

Python bindings for WujiHandCpp

Project description

WujihandPy: Python bindings for WujiHandCpp

WujihandPy 是 WujiHandCpp 的 Python 绑定。

提供更简洁、更高效、更易用的接口与灵巧手设备进行交互。

安装

WujihandPy 支持 pip 一键安装:

pip install wujihandpy

对于 Linux 用户,需要额外配置 udev 规则以允许非 root 用户访问 USB 设备,可在终端中输入:

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

常见错误

若遇到报错 Could not find a version that satisfies the requirement,请尝试升级 pip:

python3 -m pip install --upgrade pip

然后使用新的pip重新安装:

python3 -m pip install wujihandpy

支持的 CPU 架构

  • x86_64
  • ARM64

最低系统要求 (Linux)

glibc 2.28+

使用 glibc 2.28 或更高版本的 Linux 发行版:

  • Debian 10+
  • Ubuntu 18.10+
  • Fedora 29+
  • CentOS/RHEL 8+

Python 3.8+

支持以下 Python 版本:

  • Python 3.8-3.14

最低系统要求 (Windows)

WujihandPy 目前暂不支持 Windows,我们会尽快推进相关支持。

示例代码

所有示例代码均位于 example 目录下。

部分参考 API

导入模块

import wujihandpy
import numpy as np

连接至灵巧手

hand = wujihandpy.Hand()

读数据

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

所有可使用的数据均定义在 wujihandpy/_core.pyi 中。

例如,读取灵巧手的上电运行时间(us):

time = hand.read_system_time()

除整手唯一的数据外,每个关节也有自己的数据,数据名称均以 joint 作为开头。

例如,读取第1个手指(食指),第0个关节的当前位置数据:

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

用一条指令读取多个数据也是可行的,这被称为批量读 (Bulk-Read)

例如,以下指令读取整手所有(20个)关节的当前位置数据:

positions = hand.read_joint_position()

进行批量读时,函数返回包含所有数据的 np.array

>>> np.set_printoptions(formatter={'int': lambda x: hex(x)})
>>> print(positions)
[[0x200828 0x2062D3 0x20186B 0x200535]
 [0xDFFE7A 0xBF2318 0x7FC3C2 0x802342]
 [0xE01213 0x900C79 0x3FB49B 0x60191E]
 [0xE04051 0x601EFB 0x4035B6 0x60026B]
 [0xDFD9AC 0x3FA315 0x4015C2 0x5FDF6A]]

read 函数会阻塞,直到读取完成。保证当函数返回时,读取一定成功。

写数据

写数据拥有类似的API,但多了一个参数用于传递目标值:

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

例如,写入单个关节的目标位置数据:

hand.finger(1).joint(0).write_joint_control_position(np.int32(0x800000))

关节位置的合法范围为 [0x000000, 0xFFFFFF]

批量写数据也是可行的,例如,批量写入第1个手指的目标位置数据:

hand.finger(1).write_joint_control_position(np.int32(0x800000))

如果每个关节的目标值不同,可以传入一个包含所有目标值的 np.array

hand.finger(1).write_joint_control_position(
    np.array(
        #   J1        J2        J3        J4
        [0xDFFFFF, 0xBFFFFF, 0x400000, 0x600000],
        dtype=np.int32,
    )
)

write 函数会阻塞,直到写入完成。保证当函数返回时,写入一定成功。

异步读/写

读写函数均有对应的异步版本,函数名以 _async 作为后缀。

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

异步读/写函数同样会异步阻塞,直到读/写完成。保证当函数返回时,读/写一定成功。

Unchecked 读/写

如果不关心读/写是否成功,可以使用 Unchecked 版本的读/写函数,函数名以 _unchecked 作为后缀。

def read_<dataname>_unchecked(self) -> np.<datatype>
def read_<dataname>_unchecked(self) -> np.array<datatype> # For bulk-read
def write_<dataname>_unchecked(self, np.<datatype>)
def write_<dataname>_unchecked(self, np.array<datatype>)  # For bulk-write

Unchecked 函数总是立即返回,不会阻塞,通常用于对实时性要求较高的场景。

Get

如果希望获取以往读/写的结果,可以使用 get 系列函数:

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

get 系列函数同样不会阻塞,它总是立即返回最近一次读取到的数据,无论该数据来自 readasync-read 还是 read-unchecked

如果尚未请求过该数据,或请求尚未成功,get 函数的返回值是未定义的(通常为0)。

性能与优化

WujihandPy 在充分保证易用性的同时,尽可能优化了性能与效率。

我们强烈建议优先使用批量读/写以最大限度地发挥性能。

许可证

本项目采用 MIT 许可证,详情见 LICENSE 文件。

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-0.4.0-cp314-cp314t-manylinux_2_28_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ x86-64

wujihandpy-0.4.0-cp314-cp314t-manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ ARM64

wujihandpy-0.4.0-cp314-cp314-manylinux_2_28_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

wujihandpy-0.4.0-cp314-cp314-manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

wujihandpy-0.4.0-cp313-cp313t-manylinux_2_28_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.28+ x86-64

wujihandpy-0.4.0-cp313-cp313t-manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.28+ ARM64

wujihandpy-0.4.0-cp313-cp313-manylinux_2_28_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

wujihandpy-0.4.0-cp313-cp313-manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

wujihandpy-0.4.0-cp312-cp312-manylinux_2_28_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

wujihandpy-0.4.0-cp312-cp312-manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

wujihandpy-0.4.0-cp311-cp311-manylinux_2_28_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

wujihandpy-0.4.0-cp311-cp311-manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

wujihandpy-0.4.0-cp310-cp310-manylinux_2_28_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

wujihandpy-0.4.0-cp310-cp310-manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

wujihandpy-0.4.0-cp39-cp39-manylinux_2_28_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

wujihandpy-0.4.0-cp39-cp39-manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ ARM64

wujihandpy-0.4.0-cp38-cp38-manylinux_2_28_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ x86-64

wujihandpy-0.4.0-cp38-cp38-manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ ARM64

File details

Details for the file wujihandpy-0.4.0-cp314-cp314t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.0-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5254534a62cd0b4ea6adca9893196f0882dbb974d19e8b2e367842d42cfe2799
MD5 f66bb5ef0b2f099bf6a26987f1866507
BLAKE2b-256 eec6a60dad63e2cb0b093b3233ce48949031da852138477182fc970af587fea9

See more details on using hashes here.

Provenance

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

Publisher: release-package.yml on Wuji-Technology-Co-Ltd/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-0.4.0-cp314-cp314t-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.0-cp314-cp314t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 57774d99859b5b6e1a1a29d486311bc8ca1a01cc0966eb722f925e1d52d51735
MD5 2b68ce95c6a17e47843d3fa1f4045f50
BLAKE2b-256 2ee78d523bb87778d55aafacb4990404bf5c4d872a8eb42ca88d7a810b8b2362

See more details on using hashes here.

Provenance

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

Publisher: release-package.yml on Wuji-Technology-Co-Ltd/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-0.4.0-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.0-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 37b4aa3b888dc0b460cac81ed6d5e568cefe24187d95fb91fb0f4d1377af4621
MD5 4f1c08b8e051a80c7bfc280d78db0e88
BLAKE2b-256 5319bf3b0b9c9400a31841856608f4251b6efbd513869dbe4bf844018d48cc7a

See more details on using hashes here.

Provenance

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

Publisher: release-package.yml on Wuji-Technology-Co-Ltd/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-0.4.0-cp314-cp314-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.0-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 555c6234120f546c67e0bb6d755526c41347cc5f2f909a012129284ca1cf0478
MD5 d7bd3012dc86659c56258b2155b46075
BLAKE2b-256 b2c070243e6c724eee50db16ec36ed868423c801fc8ad1676074ad3eef97744c

See more details on using hashes here.

Provenance

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

Publisher: release-package.yml on Wuji-Technology-Co-Ltd/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-0.4.0-cp313-cp313t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.0-cp313-cp313t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a8f50af6cf282b98ceb521049cacf920167893573a0ac0640c39cd94c343827a
MD5 8f3851cdb5624f003e08774f6081c447
BLAKE2b-256 827b53dc9136c6b6c130c16a24661aa754df2cd784b24b87755ebb467aac19d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-0.4.0-cp313-cp313t-manylinux_2_28_x86_64.whl:

Publisher: release-package.yml on Wuji-Technology-Co-Ltd/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-0.4.0-cp313-cp313t-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.0-cp313-cp313t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 eb3f494eea20504aeb4e16fab826841501c51af6d40f794562c7a69835acb8ee
MD5 03faa6d4f45847e0cdbd64a6e0d47e16
BLAKE2b-256 1a85f32ebd8580c219476eaf5120fe44e8147530da94a06a4e58fa51085901aa

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-0.4.0-cp313-cp313t-manylinux_2_28_aarch64.whl:

Publisher: release-package.yml on Wuji-Technology-Co-Ltd/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-0.4.0-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2a65e3fb422cadf00f3fe2d813a305817b0473a4a7d572eb3d093708f846002b
MD5 02ee50866d2263eaf113a2693e2a4d3f
BLAKE2b-256 4aa5ab0607a3627aa3450d1b3066be9c28a7044c834a0d47c25f90ad9ecb4d73

See more details on using hashes here.

Provenance

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

Publisher: release-package.yml on Wuji-Technology-Co-Ltd/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-0.4.0-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.0-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6f4430bed946290bd46243be9ecf7d54a8308ce7f399fd9f87c4e686a18fc35f
MD5 f56248af97adf0e8f3ed5eeaa370d2e4
BLAKE2b-256 41579ca30d4befb863b1fd556daa273abb403035e1b0037662facd896017746c

See more details on using hashes here.

Provenance

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

Publisher: release-package.yml on Wuji-Technology-Co-Ltd/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-0.4.0-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 48c42a5d7212624a6f43df350003e113710e506e8a355a83aa2089c04acf639e
MD5 152a8acf9f7229fc7231861a553d108a
BLAKE2b-256 24a24e04cfecbd6f45201a0d17fb57cd2c9487448975885a0e919bef9504bd00

See more details on using hashes here.

Provenance

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

Publisher: release-package.yml on Wuji-Technology-Co-Ltd/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-0.4.0-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.0-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c0aa3b789f02bd9f395f41518d8d76031cb597aa1f9046832d5bdb8392998cfc
MD5 2adc0b4238d4a98404eefefbbdc7572e
BLAKE2b-256 4b4ca8b5d8e43ff1981f01b34186b06800b680d3b2e9350291995f53a61adc57

See more details on using hashes here.

Provenance

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

Publisher: release-package.yml on Wuji-Technology-Co-Ltd/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-0.4.0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d18d39faa5939ced5887a632960d617652905f83a7118cce85bbd3ea115a147d
MD5 3eea8c4b113a49f536810b330a556ba4
BLAKE2b-256 98e52eb6596da8abec2aaa001e62b76236aa11b363834aa4c717997df5bab8f1

See more details on using hashes here.

Provenance

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

Publisher: release-package.yml on Wuji-Technology-Co-Ltd/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-0.4.0-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.0-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5f194b6e72785cdda234fe989ff44736183f43b942f6cbaaf6b9be05c6ad6119
MD5 9a4cf253d4b27e49782ccdc33b21921e
BLAKE2b-256 7b6ec5303f9c88f03e2d3cab44119cd964f8919892c8087bfe5d4478d3a228a0

See more details on using hashes here.

Provenance

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

Publisher: release-package.yml on Wuji-Technology-Co-Ltd/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-0.4.0-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c2e987fe4510dc192da2e483f13eb78ac0f60356d80a8af6647d7be2a89006d7
MD5 497b1d1b9ab7c6ca1ae33c9618290aa2
BLAKE2b-256 64f486a3e737848e657f974c3412dc9037e37e5317df6b3662d098576b146383

See more details on using hashes here.

Provenance

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

Publisher: release-package.yml on Wuji-Technology-Co-Ltd/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-0.4.0-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.0-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 691237a9e06b23095dd642152637436f88836c2d3486572cd07759a35db8c881
MD5 644ae18d836697c1cb32e0ab4e5cbc25
BLAKE2b-256 c3840058c11f07256c361090925646e32bb436e02a3cc449dd17a503c2275984

See more details on using hashes here.

Provenance

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

Publisher: release-package.yml on Wuji-Technology-Co-Ltd/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-0.4.0-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.0-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ba8ef7c5b22cdbd9389da88f1ee3aee0c710fac7cd1b855dba9d7cc0a8f4575f
MD5 b98b8fde91a74626ad38fa48d0addfb5
BLAKE2b-256 0832652cbf766217e3d2d8845530802bb337daa4d48227439d1b0abd90ddb299

See more details on using hashes here.

Provenance

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

Publisher: release-package.yml on Wuji-Technology-Co-Ltd/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-0.4.0-cp39-cp39-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.0-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e29aea31be55afd81f41702309e2623bed9910b5dc6b8be63785353dc6242d2c
MD5 1c12ba1aef228030e279ff116ff8c24b
BLAKE2b-256 d245b59801612066ecc71f9a6c35dcd8b70c0021beb1c2868b639ae96a47adc1

See more details on using hashes here.

Provenance

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

Publisher: release-package.yml on Wuji-Technology-Co-Ltd/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-0.4.0-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.0-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b2bc267d1d479c804f97412b6a8cd95fa08d4045f7a703a8ba9334b08cc79b42
MD5 a8804fb75c04f5e87be12d8c5d187650
BLAKE2b-256 954f96b825bda1bbb0bd082edd3fbc1fb51deb85638d72b18711b2cb58c60ff6

See more details on using hashes here.

Provenance

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

Publisher: release-package.yml on Wuji-Technology-Co-Ltd/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-0.4.0-cp38-cp38-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.0-cp38-cp38-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4662f5d03260c8d33bc1ff4393967bbb7440821549a65f95127a2bb05abcd964
MD5 5914d690e5a208928543d143702332cc
BLAKE2b-256 e38ba1223e58379807590c10996a515a88995ca58045b34134a28099ce517dea

See more details on using hashes here.

Provenance

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

Publisher: release-package.yml on Wuji-Technology-Co-Ltd/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