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.3-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.3-cp314-cp314t-manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ ARM64

wujihandpy-0.4.3-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.3-cp314-cp314-manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

wujihandpy-0.4.3-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.3-cp313-cp313t-manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.28+ ARM64

wujihandpy-0.4.3-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.3-cp313-cp313-manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

wujihandpy-0.4.3-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.3-cp312-cp312-manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

wujihandpy-0.4.3-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.3-cp311-cp311-manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

wujihandpy-0.4.3-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.3-cp310-cp310-manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

wujihandpy-0.4.3-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.3-cp39-cp39-manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ ARM64

wujihandpy-0.4.3-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.3-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.3-cp314-cp314t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.3-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 aa080051ff8d7a248663ed195846eb81fa27bc4fd1d3a217a70848b87bb1eef7
MD5 027be8fea393fcd8028a86006f3ca51a
BLAKE2b-256 7e64b9c0f85715c17116bd937267741e6495a899a3fb58ebdeb9d4f4454a8ed9

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-0.4.3-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.3-cp314-cp314t-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.3-cp314-cp314t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 46a356363a235c8e50cf18dfb6cb1f66652364fbcbdf4297a5b55171b9df19f8
MD5 fe9916c5266eda2afe96bee03c67b872
BLAKE2b-256 85be767c31feb03a34086c3014794e3e2b49ba18cfc707b58860f5d210032853

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-0.4.3-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.3-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.3-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5047597b92fc9c187e7834b9c58465142ec1c140b83b98c9e007c1b3d6a4dc02
MD5 f8a3c74d2e71b873e39a7b2d2860771d
BLAKE2b-256 6ce5ee575e6e9390707cb6e195c039fc7a40842e096c7e6811a9efb77adf699b

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-0.4.3-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.3-cp314-cp314-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.3-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 65d7417d732a9d500290fe070b2e6d5e261ceb8bf484c84300b7c87b4bd548e7
MD5 96d3f7ad6631be83db93c59d5b4866d5
BLAKE2b-256 7c9bc7bde76621bb1efc9d123561951846b82214438a206e211f5ab97f770d5b

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-0.4.3-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.3-cp313-cp313t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.3-cp313-cp313t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 716a857c4915f6dff21bfa6fa49b59b5b0962345cd517e62136c4d30d78e71c3
MD5 fc3977896b194f0615335fabbee0bf4f
BLAKE2b-256 114be0ffc06e1e58aeb29b79031043e95df6dd38ce93182d2292553d68248cf0

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-0.4.3-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.3-cp313-cp313t-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.3-cp313-cp313t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5124176847729f9d29d315b471fe9e977e6d4d3242d216a9836562480c4141b7
MD5 cb3d1e3c3399b3dd9056e00617279106
BLAKE2b-256 13102b73a276e68d8d5cf4284d40e24f78ea4da87c9f9eb6bf650da84b3fd621

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-0.4.3-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.3-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.3-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f01b92b75456570f812513241f97cc65308c4bb11c1535793954e991ae14777e
MD5 bdbf717c0c9fb6db0ee4352b256f7aa3
BLAKE2b-256 acdcbb8c7ea577f4cfb4d679eb57c66cdcb1356f74d814695d2ebd1e08b17b1f

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-0.4.3-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.3-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.3-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6496db210a347dd8226ef4e6eea950c0d4fd82f5ed75ca8dd322b3379c9d7766
MD5 6ef81b9f684601a2b6c1d694b61d2a9a
BLAKE2b-256 423473e5e8a6280573ecb10413b5ead0a40fc5dbebdcf8d2cc4d59b959de03e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-0.4.3-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.3-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.3-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3d3e9fae522fbaa31c47487c16227b011370a787c5f67931778fd06cd3a8be7c
MD5 fcfbaf0ef16089e4546df6df57536849
BLAKE2b-256 4e90105242143328d69e10243198051e956545329c77fa5c909d251b1743ccd1

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-0.4.3-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.3-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.3-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 523bda2772eae4f133665a691577e9ea10479ee384f88e941dfb9587866c9a70
MD5 4ee0f12fa286ccec96cc40556c874e5c
BLAKE2b-256 805461862a619e98db9ad2a12ec4ad1bcaea40466e711902de74d5c255041534

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-0.4.3-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.3-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.3-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 16dc27a0f64bae8fdde854a42588349a25d8e2810dc6b2d7d58dc9f4d519bfb8
MD5 ee1e41e29c88f55024dc0d13c28fab0f
BLAKE2b-256 6a659a482eb2a56b36af02c26a8f810ab5f55afc0b11019f361e2864ae7f4af2

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-0.4.3-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.3-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.3-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a2452c6666c91071c8c4076c12c227cca1e0042380d126924db73632cc7487af
MD5 b59bac1e1a34c338f7efaf2e36375f04
BLAKE2b-256 ab47dac969b11d4af40f2f259dd333021f58c667356ac93f09ef6948bff039e1

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-0.4.3-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.3-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.3-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8624da249539f31b23e785d93663d0f96ca114d1fe6ef166fd0dfdb5044a2e99
MD5 77a7e835cadd13d7d81009d5b5e775f8
BLAKE2b-256 d69318329d8cdf33b8916de71f1218335276652e863d4bc215d260352512a146

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-0.4.3-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.3-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.3-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 252225dd9f2ab282e18b084d36a32f5e8d463598446ec484275ba38385459ff4
MD5 7597c19d6013f0650f631d6ae5c11549
BLAKE2b-256 2fb29773cc36e6468f362b054495a59e116e99f3b44eabe856bc4f0b3f9b3563

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-0.4.3-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.3-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.3-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 27c6c32c355f5d39b8d4dc864d2e735268fbd8400d4bb8ddf4a5d4e2ddd07281
MD5 49c4c6c332b49fa373405f53622fcc10
BLAKE2b-256 2c6950c86c0c370ca1a18fe10202370311350a9d4017c9afc027a64db79ea715

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-0.4.3-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.3-cp39-cp39-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.3-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5dbc8b1407b61514f833f6318490c1d1c383c87d32553023c3a79740061cd25a
MD5 0353148b12b82b731912629c19196762
BLAKE2b-256 9131359fc0633bcac8d735c5818d820188139f903e4f2aec34afafa1eb221521

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-0.4.3-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.3-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.3-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d7bad04922545741a0e40831698129952fa60997a40b825ea7b34fb5980fee1a
MD5 6b7080f3058f9ab94d7cc9f5c337d12b
BLAKE2b-256 9c4177f5c206a52d006e5472cfd3a8d5ab5c6094c5c82f3982f8d637f81eb04f

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-0.4.3-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.3-cp38-cp38-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.3-cp38-cp38-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f6636e5585aa5b8d4e208064420e92946726ebafe2ea4d203f8450301e615cac
MD5 7312b52520240caab3bf1aee0e62cf22
BLAKE2b-256 5f7abb9f42de86b9cbfd13dc32093cdd08cb9d5518d9c611ba0b11554b58ea86

See more details on using hashes here.

Provenance

The following attestation bundles were made for wujihandpy-0.4.3-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