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", ATTRS{idProduct}=="5740", 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.2.2-cp314-cp314t-manylinux_2_28_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.14tmanylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.13tmanylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.13tmanylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.9manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.8manylinux: glibc 2.28+ x86-64

wujihandpy-0.2.2-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.2.2-cp314-cp314t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.2.2-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2573c370653d7d715febfc6fa6c1305b65f6a8f7f930c53fd18a57ae4a3c3d1c
MD5 ff7b8c6466733f0191643067edb23867
BLAKE2b-256 45e6c2452eeabce1c98b4cc22d7f6aae5c10a3983e913e49e8444ec12c125aad

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.2.2-cp314-cp314t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5fb38739d29f43420a3c125c3b3198f8792bec5824b06dcdd73c8c961eeb06ac
MD5 6980bd216fd232c03a0ab22916ad7712
BLAKE2b-256 0782159408b0646f63ac14150142bbcfca5db862e0c9a87c6dde8b1f56ed1ebf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.2.2-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2218e40084defaaece0a422c9da135885f736800b9f246c46ce185ef3a69bd70
MD5 8d237005a7b2b55ff6e4eb7823bb0a60
BLAKE2b-256 580d779bd34a19c16551a66a287ea016577e7240c76a08899827fab133f6895b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.2.2-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4c7dedcdd850746af2dcbb5f751bb50655c0c5884e37f17bc493ee8988d2517d
MD5 ce81f9ae623a91a6df2d544694bc5427
BLAKE2b-256 cd9c59c68f5145752c57bec9e5ddd4935e98645ac290a7543ef5a4a9e2e0d2da

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.2.2-cp313-cp313t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b9772c6bf4c9a7d6267594ac44edd036c1302de549904b85b94cedd80edcb8a4
MD5 2e32350aef6b113c8e6c2fe2f85d145d
BLAKE2b-256 2028706968e1608e1d63a48b8903ccecb22461e3b245937d7dd766e7ff563254

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.2.2-cp313-cp313t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 093812e64a4a60cb67c0d6416924bd57655aee6ed448eda521266ca4e0750ef0
MD5 6977370aadae7f10bab6dce36a05a4cb
BLAKE2b-256 e69d3232865ee2d3c7391533ce17f87d36e5473486fe828cbdaafad1103f9023

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.2.2-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 49b0faca0dda47b68547450fa2bab02beff7955f9229cb11793742e805744c60
MD5 3db773f8fe2f0d03d1674ee419cad389
BLAKE2b-256 938d50254bcb2bc353fa2146305dd4481614b2b941b916173042e353271b097b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.2.2-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3ebf5315146f85659f89865371754f3f3723702bdff4ed2f9b405e8e2d91d83a
MD5 44ad0503157d4e7490d47cb2430ed75e
BLAKE2b-256 9f116a82f50c6a61176d44a1b4cdabbb70adac6f751f7d46457610f1e5d8bb4c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.2.2-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6f8cd801b32aa67bae7c975580c6e53e7c5965eaf128dde35e3e568ce7b2783b
MD5 26149905691244acb130da424ce01e56
BLAKE2b-256 0b4d4231d7bb732c9db2ba1adea74845518eec57cd70246852507b5fc723b66b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.2.2-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7f312d9c5903d1fcea54933b5ff374a7b457fafbddb87ad45eac2b6d1be352e1
MD5 cb84074c5adf41bd6f421f899536cce5
BLAKE2b-256 e539787976ef814b269e328d2083f1e639d3fad76f7c88d1fbe0aa878c81d7ee

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.2.2-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ebf786b00b817624c9e76edd8b9c32efc1ee3def8bbd82f61788ef8388847ccf
MD5 05ecf3b8e4b588e0f288a748c96888cd
BLAKE2b-256 0d2574ae38d247f6624be8383754b9b2c723f73d718a3142bea7283184bb5abd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.2.2-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d6bb571bf83b93ff4accf1ddb9983856468400bdf8cbfe65588acf1509593898
MD5 1b1a8241261a830202a54337e185af78
BLAKE2b-256 c31b8a999f7959f3559e9dfb6fe46a671905fe48c9fba6814bcf23295649120d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.2.2-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f80933b57c270aa46db2cd9c9d8ea1ba05a641d35f2098dbc8f94ddf32130a76
MD5 f8dd10d5bfda324deab1f1d37666751c
BLAKE2b-256 3771743c8c8f3bc3c97476d2554928b363e4863521a4b965a180720f2e325c18

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.2.2-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 63f5c5459a09d8dc65a759275e57bf25a53817f9f8929760f5e7233f5465fd4f
MD5 6bca532fc0df08f98d2827667f53a50b
BLAKE2b-256 2fdd5cb51ede4b2d16f00ab8e61028c9739a9bf6f5a7ff9848147e9ea3efe916

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.2.2-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9a239d9bc18ba8fa862fce5818cacbe797d4a11a2d6337d39e7aa2e789ae4a31
MD5 72c6bda95df91bd7da72297fb0a67fce
BLAKE2b-256 cf80e15a4042a13074e22d9a1f0e72a9fb8db451ed46980626d9de283c4d9285

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.2.2-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5fee7d36cea26976ebbb6656d8f94b49e354e6b908e0138d7bbf15ea5f37ea8b
MD5 1a0f92100ac28a5d156fd68701c87ade
BLAKE2b-256 217ec709d2bdb8a02505a0fada1868510aa115df6903657f36d5dc807353ad19

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.2.2-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3a13c77b965f6bdb3d515164f81a382774fee114ffb4c46db6fa68d2ef3b2bb2
MD5 c718ff13bd2cccfb1b26ad803c8e5ab9
BLAKE2b-256 2b3cc668f37dbb617806c35cb0db90f6dec74ca21251273a9ff50d2dc5de79cf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.2.2-cp38-cp38-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4386318ed04b7243497367465bf86fd9c20de2a5e7e130ea392a3a6d54c22b70
MD5 17d18638dac560aa16fd2c57f8ca7ce1
BLAKE2b-256 bcd4c80db91393f5a9d829b769fbb36d0f5bc204b65de271e31fbff0abd1cb8a

See more details on using hashes here.

Provenance

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