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

Uploaded CPython 3.14tmanylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.13tmanylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.9manylinux: glibc 2.28+ ARM64

wujihandpy-0.4.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.4.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.4.2-cp314-cp314t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for wujihandpy-0.4.2-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d1619d5fda64a749076edbfea805dc2322c16f57b863220333e132039d71663c
MD5 852cbc2b730f94d662e5bae297e6199d
BLAKE2b-256 5908f59e61c62abce7994173e49d31a128b8edc108d1a9f224725a8c6a12ac89

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.4.2-cp314-cp314t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 94f4fe6263cf2fb57b6b9a6ed30f9aba3f0a656480515966aedf03360b9dc95d
MD5 8091500e1edd29dff2d7e6d2dd8a360d
BLAKE2b-256 88a0663a00ed193f48710bcbddcc14aed07a165ac57242de4af3f49b39cd5eec

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.4.2-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d2a6217431f62668ececd95b21b804b1e823641bf4e02f7e88adf59118a781e1
MD5 be9502fd930439630bc096f618e49ff9
BLAKE2b-256 bb5af00669b06e6cd7028e258118d0fffdaf8005212a0ab7bb50031d2060cd3e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.4.2-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1b4743d9c2222f1934aef9528f689bbc14c419b4caf8969f1a79359bdd17e2c3
MD5 430048f11adce562ea870b37fec2f3c1
BLAKE2b-256 36dbf69ea2cfe161e5ca8538beef4dc42b9c451508bb9f7e0f855c13bdb93b79

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.4.2-cp313-cp313t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e6071d542fd313abb3341e14185471b58a662e9b978f1a215b367d05980000be
MD5 49d186b26cd7363f32061602404aa4dd
BLAKE2b-256 5d0acb781cf44d07d2a0e95ca0e031f3a6c77400601a995b1bfef967299b1573

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.4.2-cp313-cp313t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 71fe1b9da930ac3116930b9144f2100fa784ab00cdf328a1b9bf3418dbdb383a
MD5 2f1ab82c566bcf5fe90bfa32fd6c0710
BLAKE2b-256 0c00ccc4b806b316218edf3d96ce88ddffc08cadc45bc40abe07ada545a60243

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.4.2-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6ac69bcdd344ece844c245641c57588294ac0a2156023e45f24e547878455f95
MD5 8c027318841bda7d1a41cc33aada67a7
BLAKE2b-256 1e81c3d3d03eb6b2a8b8b0af25bfce38bfcc4b94e36ed55e54053ea17ccfed9c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.4.2-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4235273012b1aeffd589fd7fe75c71c34eb6f202e13190cbe3f147f851674922
MD5 b1a443c423bcb467fa52f3cdb1f84cc9
BLAKE2b-256 2dddc1780ce0f7796903c63a55db28d9c8a005de8687f1615aad5f7f2ae6c027

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.4.2-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 17e72612da7df761f98a1cb7281fd37739c7f52ccab24911394c23005ca32a39
MD5 f565f021a9c0f1af4811ff321414b23a
BLAKE2b-256 4142ce5daea34e7581cb713ec0a395e7e978746050e24287f9e3dfc2f9760bc5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.4.2-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3c41a3d0825ea550b441a35f47ec696ff3098e422801aea241fe0f027f6b5763
MD5 4f8d857e7d2780e80199f935d570be12
BLAKE2b-256 25fbea6b0f8ea910fc7e2e2f4a41bf268c6c490065a07ead222f358ee77679a3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.4.2-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8e81c6abaa9b22f5f952d1d7b039f116f0eae9e37703fd6203d79e8ea8550529
MD5 fdf416da93abf5dce38e7924dce23276
BLAKE2b-256 49cf7929183df842c0c9cda3616c8971bb1cb985522909d6d11308cd5804d6c9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.4.2-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5fcd8ae60887ec818c9e183e5bd95e7dfc95d229d5c0d9547680b7b91033b1a9
MD5 a877b5de1e34ad9e543e398608f11a76
BLAKE2b-256 94432f8257cf6de4c159cf1cd4cce57b1fafcd8d2e501a77815a24869fb989b8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.4.2-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 eee405a0674ba8f1d55bb831faa110f05cb3c7d131c0ca1ddbd67c999a3cc4a9
MD5 4d349e52e748d4d5e214bc2309e44e8e
BLAKE2b-256 738ac3387a28743d2fc4ce7edfe67ae8e58f4b4d6a31b50dad791ebc01000db3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.4.2-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 020908f1ae21ba517248a587b65deb32e1890ab771b5a59219395306b6231caa
MD5 d376b7793cf01b69446dec492b8288ab
BLAKE2b-256 722e6222628e5bb8a48a2e50cf464ce789b9ddec9dba2a95314d4b11dfc29eb6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.4.2-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 40e08895a546a08bfda644adb9cc2dd478932714c9704e3153643bd0b42a2c28
MD5 d7e9afb1eb9f47db08a83d7ceb7ce9ac
BLAKE2b-256 7d89a10d2f8f1ea4a9cf6b9d1fa6e9972bb1a1f9976e89f704e73614a4f898bf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.4.2-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c2eb38c1d62c89184e4a76e51d2e031e6ec8c9462fda4a666b4b33f96894a7a9
MD5 3a1119ec6ed668528681d9ab985e831d
BLAKE2b-256 5b0a42c99f4e0cb07e4b7b5f21f72bf695bb5d50602c28809d941c5219c833a0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.4.2-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 27a5b9335977d734055470c8db2db2226f0d25541f9648c98902b68b5935d0df
MD5 c740e9fb6d77b0d0dddaeb3cfb4b23ed
BLAKE2b-256 3748d3129db24740f50fec6298a036cbe7c5ccf89efe3b0d0bf6e025b6387fce

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.4.2-cp38-cp38-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 36be25e130d7f31b1cec399e2bfb363981928c1d2a59e6c48744c7e5bc83f8ce
MD5 ab84195e2ccb44fe370aad9a32dff223
BLAKE2b-256 f3f3b454f8a84fa4f8830b5a8c8179a87e78fb179bec0c594224cff10500bf68

See more details on using hashes here.

Provenance

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