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

Uploaded CPython 3.14tmanylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.13tmanylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.9manylinux: glibc 2.28+ ARM64

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

File metadata

File hashes

Hashes for wujihandpy-0.3.2-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5ab1cf809a3262eaf7589b44787f7d5a1fdf7152d9a66c1687a1948127f346ce
MD5 e44cd45e5732050369a534ecf815050b
BLAKE2b-256 ac11e239e1a4d138b70fea9518975d7ce94d4a855ce63d29de0731ba3b28c72b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.3.2-cp314-cp314t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 60284ee2e8587e41e35d49b0e637177a0de134fc81da4e2b0d82ff03c005b27a
MD5 feaf02cdf25676e624bdd6ff8a0851a2
BLAKE2b-256 7422461bf5b3de313a579fbc5d6d49a122acd53198d5fb35f7653bcb7fd413ae

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.3.2-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 26b2d4b8cee577c1a79b046826f0986fdde526c155d989c26f16e5d4b2e6538c
MD5 c23e58a4813c6d366fcaf8c55a340832
BLAKE2b-256 07b80f70ed798d2145ab719175112e25ecd7bd4643e369a866ca05d8dc07b61f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.3.2-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b6838947db8c7b745005738234e1282bce7d3f69f7d3872d2590ddb73aab79a3
MD5 03b927a9b36036ea898f178caa65ede3
BLAKE2b-256 5aa14b4dfc532c9af8cdcb781db035282ff76d8a4228c846a272c0232d07a33c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.3.2-cp313-cp313t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ace188debb9ed14d8789f0685e784d457f0233fbf50a087f5aa04b52494debf0
MD5 fb8216cfcdbb9415f2fa5adbfaef8c2f
BLAKE2b-256 431088841f1c8e5538f7e657231b83d4370fb62583deaea6dcd9b31469874950

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.3.2-cp313-cp313t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 06c1cc5089a7ebbc1b694c99d69321a444181c403ae23e4ef495362c874a33e7
MD5 6ff8bfc32a28a6c6d94bdd9e7e6dc867
BLAKE2b-256 795a5c5c510748c116d896135dee4cde93c058b456a0620a3df002633f57fc89

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.3.2-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0157feca629a518c84fbc6d4f481f7d5e21886a4ff960f210ef634b95f5026b8
MD5 efcc530a5427917ac6d115f4f494197f
BLAKE2b-256 60d8372782e07cddd94a48a4ee2629ccc2c6e9b0c2236316cb1a4e440b486ca1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.3.2-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a6b1501cf8404a86ec2e5d902342b6e183925ccb22cba86a5807d9bf04b11338
MD5 014f0b4a1fce22b4c9ecd31d5ff8799f
BLAKE2b-256 8589742fb5dae2df8716bde46eee3e36831a736be05997972e282ad7368e80e7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.3.2-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 51ff747a6584f5b398956c3aaf96653c74ce9196fe1a80a1e4c52cd4732fee60
MD5 4f62cf8538d2504bdce8b142d4723fd1
BLAKE2b-256 45c26705677db93105ab4e4ccdabb879e4b189b2a824ba2db94a5ec6a8a51635

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.3.2-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e6cf1630fece9350d497447221941daa6ba537173e3da890bd99ef42c6912ef2
MD5 2d2aa1aa981d3cdbbe39aa36f46d5e81
BLAKE2b-256 aa92a48b3d304ceeb52063f95fc1598c6eb3aef1d727347b9a617d48efb72247

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.3.2-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e439f75ef1d98acf135c8b5efdeebc03d937539154cfd7d97defee0a6dd24689
MD5 f343d020431a4b4493dd351b8b374936
BLAKE2b-256 c1033210d7b40fd3ad4d84eb3039688859bdc0dee48c17d689501ae434c918aa

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.3.2-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 60e7a7d7ea2d939a62b75821812d4571bb5186293be1d921ee6e0404f4f4227b
MD5 1ba63653be2f836dab8a16f0f2915a26
BLAKE2b-256 bf74dfd5260ca94db7b4ababca920ec09b236309c73ad69343aba7e67c724d69

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.3.2-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 017e136ad3015575f77bfca7b594ce6d0f4e8e958764cb2da7a67fafb1a9d6a7
MD5 78c40a6f6b42497fc1867e45cfe2ac91
BLAKE2b-256 ebb394ed5cc684ba2fce902a6e3c10a4bdfb18da7dcaa58b6e0c4880b16179c2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.3.2-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8a0662feed2168076b5a71a98588e82088b6d94d303b791f7f846c98c4f7c1c0
MD5 6c7a122565fc28aa1e7a774b777337a4
BLAKE2b-256 47b9dae222ac540d427486408e60ed4ceea3c21ec0bbc1a022ffdd8d047de2f9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.3.2-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f4d0a4e44bcbeedf3c54937f2f834dc7273f803b21a4f4d9c5a86160a9a933e5
MD5 dc8d7e3392e538396957abe4463f7d96
BLAKE2b-256 b265275e056e3358851b664322a4fadd32c128ca5ad80a02823d0f476cdf4237

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.3.2-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 111e666ce3b85037381478b2f5605aca7bc63dc84c2f510f5f158538689a38f8
MD5 978a77ce6a4746a8c97c54da43284c4f
BLAKE2b-256 72c91f3d77404dd0c7afff5b2112e56e2e2954132d5aae0baee37678938625ca

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.3.2-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 445c3c1dc3746ca07ac4db382cc2935aac6cd75c11624eacccf84b4abf1a421a
MD5 474afb54ebae5b9c08f282cea11302db
BLAKE2b-256 59bd254fd95a31f108d90891902d35787c35a2c5227c481beda1d23e2b81aa7c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wujihandpy-0.3.2-cp38-cp38-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4f6411b5aa8c716c4eee727718d7423f6e1ec091d84494d0626ccffff5c1a5bc
MD5 39868eca6a6f3913221a056b97aa591c
BLAKE2b-256 ca33b38300a59654b1bd9bd1acf4ad7d70dd2275a5beb043d1fcd425183e98bb

See more details on using hashes here.

Provenance

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