Skip to main content

Python SDK for motorbridge Rust ABI

Project description

motorbridge Python SDK

Channel Compatibility (PCAN + slcan + CAN-FD + Damiao Serial Bridge)

  • Linux SocketCAN uses interface names directly: can0, can1, slcan0.
  • For USB-serial CAN adapters, bring up slcan0 first: sudo slcand -o -c -s8 /dev/ttyUSB0 slcan0 && sudo ip link set slcan0 up.
  • CAN-FD transport is available both in CLI (--transport socketcanfd) and Python SDK (Controller.from_socketcanfd(...)), and is required for Hexfellow.
  • Damiao-only serial bridge transport is also available in CLI (--transport dm-serial --serial-port /dev/ttyACM0 --serial-baud 921600).
  • Full Damiao serial-bridge interface list and command patterns are documented in motor_cli/README.md (section 3.6 in motor_cli/README.zh-CN.md).
  • On Linux SocketCAN, do not append bitrate in --channel (for example can0@1000000 is invalid).
  • On Windows (PCAN backend), can0/can1 map to PCAN_USBBUS1/2; optional @bitrate suffix is supported.

Python binding layer on top of motor_abi.

Chinese version: README.zh-CN.md

README Navigation (What Each One Is For)

If this is your first time in this folder, read in this order:

  1. This file: README.md
    Purpose: Python binding overview (install, API scope, common commands).
  2. examples/README.md (English) / examples/READMEzh_cn.md (Chinese)
    Purpose: practical demo index and run instructions (from simplest to advanced).
  3. get_started/README.md / get_started/README.zh-CN.md
    Purpose: pip-first onboarding path (install -> scan -> run).
  4. DAMIAO_PYTHON_REFERENCE.zh-CN.md
    Purpose: Damiao Python interface reference (parameter lookup style).
  5. DAMIAO_binding.md
    Purpose: Damiao binding implementation notes (design/internal behavior).
  6. README.zh-CN.md
    Purpose: Chinese overview for Chinese-speaking teammates.

Notes:

  • If your goal is "run something now", start with Start Here (Simplest 2 Examples) in examples/README.md.
  • If your goal is CLI parameter lookup, see ../../motor_cli/README.md.

Scope

  • High-level API: Controller, Motor, Mode
  • CLI: motorbridge-cli
  • Controller constructors:
    • Controller(channel="can0") (SocketCAN/PCAN path)
    • Controller.from_socketcanfd(channel="can0") (CAN-FD path, required by Hexfellow)
    • Controller.from_dm_serial(serial_port="/dev/ttyACM0", baud=921600) (Damiao-only serial bridge)
  • Vendors:
    • Damiao: add_damiao_motor(...)
    • Hexfellow: add_hexfellow_motor(...)
    • MyActuator: add_myactuator_motor(...)
    • RobStride: add_robstride_motor(...)
    • HighTorque: add_hightorque_motor(...)
  • Unified state-query pattern:
    • Recommended flow: request_feedback() -> poll_feedback_once() -> get_state().
    • RobStride now supports this unified pattern via ABI-level compatibility (while robstride_ping() is still available).

Quick Start

from motorbridge import Controller, Mode

with Controller("can0") as ctrl:
    motor = ctrl.add_damiao_motor(0x01, 0x11, "4340P")
    ctrl.enable_all()
    motor.ensure_mode(Mode.MIT, 1000)
    motor.send_mit(0.0, 0.0, 20.0, 1.0, 0.0)
    print(motor.get_state())
    motor.close()

Damiao over serial bridge:

from motorbridge import Controller, Mode

with Controller.from_dm_serial("/dev/ttyACM1", 921600) as ctrl:
    motor = ctrl.add_damiao_motor(0x04, 0x14, "4310")
    ctrl.enable_all()
    motor.ensure_mode(Mode.MIT, 1000)
    motor.send_mit(0.5, 0.0, 20.0, 1.0, 0.0)
    motor.close()

RobStride quick use:

from motorbridge import Controller

with Controller("can0") as ctrl:
    motor = ctrl.add_robstride_motor(127, 0xFF, "rs-00")
    print(motor.robstride_ping())
    print(motor.robstride_get_param_f32(0x7019))
    motor.close()

MyActuator quick use:

from motorbridge import Controller, Mode

with Controller("can0") as ctrl:
    motor = ctrl.add_myactuator_motor(1, 0x241, "X8")
    ctrl.enable_all()
    motor.ensure_mode(Mode.POS_VEL, 1000)
    motor.send_pos_vel(3.1416, 2.0)  # rad / rad/s
    print(motor.get_state())
    motor.close()

Hexfellow quick use (CAN-FD only):

from motorbridge import Controller, Mode

with Controller.from_socketcanfd("can0") as ctrl:
    motor = ctrl.add_hexfellow_motor(1, 0x00, "hexfellow")
    ctrl.enable_all()
    motor.ensure_mode(Mode.MIT, 1000)      # Hexfellow supports MIT / POS_VEL
    motor.send_mit(0.8, 1.0, 30.0, 1.0, 0.1)
    print(motor.get_state())
    motor.close()

CLI Examples

Damiao:

motorbridge-cli run \
  --vendor damiao --channel can0 --model 4340P --motor-id 0x01 --feedback-id 0x11 \
  --mode mit --pos 0 --vel 0 --kp 20 --kd 1 --tau 0 --loop 50 --dt-ms 20

RobStride:

motorbridge-cli run \
  --vendor robstride --channel can0 --model rs-00 --motor-id 127 \
  --mode ping

RobStride parameter read:

motorbridge-cli robstride-read-param \
  --channel can0 --model rs-00 --motor-id 127 --param-id 0x7019 --type f32

Unified scan (all vendors):

motorbridge-cli scan --vendor all --channel can0 --start-id 0x01 --end-id 0xFF

HighTorque via binding:

from motorbridge import Controller

with Controller("can0") as ctrl:
    motor = ctrl.add_hightorque_motor(1, 0x01, "hightorque")
    motor.send_mit(3.1416, 0.8, 0.0, 0.0, 0.8)  # kp/kd are accepted but ignored by protocol
    motor.request_feedback()
    print(motor.get_state())
    motor.close()

HighTorque via Rust CLI:

cargo run -p motor_cli --release -- \
  --vendor hightorque --channel can0 --motor-id 1 --mode read

Experimental Windows Support (PCAN-USB)

Linux remains the primary target. Windows support is experimental and currently uses PEAK PCAN.

  • Install PEAK PCAN driver + PCAN-Basic runtime (PCANBasic.dll).
  • Use channel as can0@1000000 (maps to PCAN_USBBUS1 at 1Mbps).

Recommended quick validation with Rust CLI on Windows:

cargo run -p motor_cli --release -- --vendor damiao --channel can0@1000000 --model 4340P --motor-id 0x01 --feedback-id 0x11 --mode scan --start-id 1 --end-id 16
cargo run -p motor_cli --release -- --vendor damiao --channel can0@1000000 --model 4340P --motor-id 0x01 --feedback-id 0x11 --mode pos-vel --pos 3.1416 --vlim 2.0 --loop 1 --dt-ms 20
cargo run -p motor_cli --release -- --vendor damiao --channel can0@1000000 --model 4310 --motor-id 0x07 --feedback-id 0x17 --mode pos-vel --pos 3.1416 --vlim 2.0 --loop 1 --dt-ms 20

Local wheel build (Windows):

python -m pip install --user wheel
set MOTORBRIDGE_LIB=%CD%\\target\\release\\motor_abi.dll
python -m pip wheel --no-build-isolation bindings/python -w bindings/python/dist
python -m pip install bindings/python/dist/motorbridge-*.whl

Example Programs

  • Damiao wrapper demo: examples/python_wrapper_demo.py
  • Hexfellow CAN-FD demo: examples/hexfellow_canfd_demo.py (MIT / POS_VEL only)
  • Damiao maintenance demo: examples/damiao_maintenance_demo.py
  • Damiao register rw demo: examples/damiao_register_rw_demo.py
  • Damiao dm-serial demo: examples/damiao_dm_serial_demo.py
  • RobStride wrapper demo: examples/robstride_wrapper_demo.py
  • Full Damiao mode demo: examples/full_modes_demo.py
  • Damiao scan / tune / position helpers:
    • examples/scan_ids_demo.py
    • examples/pid_register_tune_demo.py
    • examples/pos_ctrl_demo.py
    • examples/pos_repl_demo.py

See examples/README.md (English) or examples/READMEzh_cn.md (Chinese).

Damiao Full-Coverage Status

Damiao usage in Python examples is now covered end-to-end:

  • control modes: mit / pos-vel / vel / force-pos
  • transport paths: SocketCAN/PCAN constructor + from_dm_serial(...)
  • maintenance ops: clear_error, set_zero_position, set_can_timeout_ms, request_feedback
    • project guard for Damiao set-zero: call disable() before set_zero_position()
    • no user-facing ms parameter for set-zero; core applies fixed 20ms settle
  • register APIs: get/write f32, get/write u32, store_parameters

End-to-End Demo Commands

# Build ABI once
cargo build -p motor_abi --release
export PYTHONPATH=bindings/python/src
export LD_LIBRARY_PATH=$PWD/target/release:${LD_LIBRARY_PATH}

# Damiao wrapper demo
python3 bindings/python/examples/python_wrapper_demo.py \
  --channel can0 --model 4340P --motor-id 0x01 --feedback-id 0x11 \
  --pos 0 --vel 0 --kp 20 --kd 1 --tau 0 --loop 20 --dt-ms 20

# RobStride wrapper demo: ping
python3 bindings/python/examples/robstride_wrapper_demo.py \
  --channel can0 --model rs-06 --motor-id 127 --feedback-id 0xFF --mode ping

# RobStride wrapper demo: velocity
python3 bindings/python/examples/robstride_wrapper_demo.py \
  --channel can0 --model rs-06 --motor-id 127 --feedback-id 0xFF \
  --mode vel --vel 0.3 --loop 40 --dt-ms 50

Notes

  • id-dump and id-set are Damiao workflows; scan supports damiao|hexfellow|myactuator|robstride|hightorque|all.
  • Mode.MIT and send_force_pos are not available for MyActuator in ABI wrapper.
  • Hexfellow supports MIT and POS_VEL through ABI wrapper; VEL and FORCE_POS return unsupported.
  • Full Damiao tuning reference stays in:

PyPI Auto Publish (GitHub Actions)

This repository includes .github/workflows/pypi-publish.yml.

  • Tag publish policy:
    • push vX.Y.Z -> publish the same artifacts to both TestPyPI and PyPI
  • Manual publish is still available via workflow Python Publish:
    • testpypi (only TestPyPI)
    • pypi (only PyPI)

One-time setup (token mode)

  1. Create API token on PyPI and add repository secret PYPI_API_TOKEN.
  2. Create API token on TestPyPI and add repository secret TEST_PYPI_API_TOKEN.
  3. Keep package version unique for every upload (for example 0.1.6, 0.1.7).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

motorbridge-0.1.7.tar.gz (18.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

motorbridge-0.1.7-cp314-cp314-win_amd64.whl (208.1 kB view details)

Uploaded CPython 3.14Windows x86-64

motorbridge-0.1.7-cp313-cp313-win_amd64.whl (201.9 kB view details)

Uploaded CPython 3.13Windows x86-64

motorbridge-0.1.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (355.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

motorbridge-0.1.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (347.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

motorbridge-0.1.7-cp313-cp313-macosx_11_0_arm64.whl (304.7 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

motorbridge-0.1.7-cp312-cp312-win_amd64.whl (201.9 kB view details)

Uploaded CPython 3.12Windows x86-64

motorbridge-0.1.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (355.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

motorbridge-0.1.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (347.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

motorbridge-0.1.7-cp312-cp312-macosx_11_0_arm64.whl (304.7 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

motorbridge-0.1.7-cp311-cp311-win_amd64.whl (201.9 kB view details)

Uploaded CPython 3.11Windows x86-64

motorbridge-0.1.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (355.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

motorbridge-0.1.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (347.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

motorbridge-0.1.7-cp311-cp311-macosx_11_0_arm64.whl (304.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

motorbridge-0.1.7-cp310-cp310-win_amd64.whl (201.9 kB view details)

Uploaded CPython 3.10Windows x86-64

motorbridge-0.1.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (355.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

motorbridge-0.1.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (347.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

motorbridge-0.1.7-cp310-cp310-macosx_11_0_arm64.whl (304.7 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file motorbridge-0.1.7.tar.gz.

File metadata

  • Download URL: motorbridge-0.1.7.tar.gz
  • Upload date:
  • Size: 18.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for motorbridge-0.1.7.tar.gz
Algorithm Hash digest
SHA256 d699b1a639b764c7ea8251776b676b4fcb31694ae3de31cf2c99f30746d0eaad
MD5 42785e7f5212cded050c34ad44e5349c
BLAKE2b-256 49c684cf27db77f3f10133bdaf0dcf6a83321131584a75b7ac3157f979e969f5

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.7-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.7-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 ca8260b90d0964b2d308cbf9fdf3e113ecaa850699e91a96805735a6021ab80f
MD5 21453912ce03199851540c81fc351721
BLAKE2b-256 e43bad32a99dd525bf81d7737700736c8952c4868de600f1253b9281ae2d6b86

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.7-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.7-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 7fb1dd24e735710825de99429b5c7f81dcb109204d0e15d547a58e6e69f56697
MD5 44c9ca920620114e994787982f337a3e
BLAKE2b-256 84c72d08e8e1f70eac8492b9e11641c0137ea6b7091d87dfd1dc00830a70f988

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 49d4d7d178c165952da681bc41479dd273d1b48391265ba7d8a4f795b61653ca
MD5 f9190f23fa7f86253c5bd28511aa4496
BLAKE2b-256 5f50aa73b4992e83977fbf7286cf39ed41666bd8c6322552c1e8c1505c9c7641

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c55ed808aab1af45075e89d0b7132a423f995db3ded562961e182ebb55cd77df
MD5 fe3d06e540ca2467490a8cbe89e342ab
BLAKE2b-256 40845c04bfeffe053eba6b45414816c2ac14e6a2dcec47573303d6fbe38f9003

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.7-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.7-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 219fba959f2e2b5019b7dda7048e00b33ec6c112f8a8b2a1c1aaaf0cf6c7f443
MD5 bdd8970db00782b5beee48527d1c936f
BLAKE2b-256 710f0e33352975e7ef2da527b2ed4a6957f7131ab71f41eefd4caa382bbce012

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.7-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 ce8613045cb7d867d923079ce9e49630c0d3a67598c85c7215d446f2602f8cbe
MD5 70312560d52c757e489715154f2ff251
BLAKE2b-256 82cab591c56c3ca6150885ad58fc2d33cef06d5828a5d9ffc8580e1e6d6ecd91

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1fe952c7da081aa4175d0d711807d739714e072775ddf1ffb4c067f481473f71
MD5 bca9cc001b1602141de7f87fa9188fa8
BLAKE2b-256 ba27a5686c19c5f0cf83a07611226f2e80c71926e1dbec347fe7e65cbed4a347

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a3b4fd028bc804b90f85884f36e6be07428aee04ea114f3f4942b10ec7e4d4bf
MD5 d84d7d1e6efab3ff2bc80a4524e02156
BLAKE2b-256 d92690c5004d119caed5ec2232c82a82823638421b57da964218988dc3d86aa2

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.7-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.7-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fd408a0e4064bb48e5ef2af1bc2b182052e34d2e1a190df02a529febb0809ae1
MD5 081562a97b6027fff7cee3a1b68f80f8
BLAKE2b-256 f43e6361065b80021d21d2c1d0dbf540f785287824be2fa2e477b1af6f854de7

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.7-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 53c97273bbe17525ecdde6b28b43436b42465d0beb1e2845afc9f96fa1801623
MD5 25c2ded53c607f6edd41844a146a4052
BLAKE2b-256 aad31b85faaebce7ca166e511a026c9e79060c26fb35263125357970568a6a48

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f48287a4c63d5a895abf71a2488c2107fc501bef281440b0f6a294c5df07d1ce
MD5 5076176164beaadb604c2f11adfec119
BLAKE2b-256 3b4249132dae44d2aab6598f1a3d14b0fcc75cb4807ea702148048d457cbffd7

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e9ba728921eadffd0c6704618e7051668e63b56a90136f1cda67f80538c0fd84
MD5 57bce36d933ca680ec5ad02f57bb617f
BLAKE2b-256 b0f1f7729a924742ee1692b870122ace10ead0d17013ea2efa695d3df6ddcf43

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.7-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.7-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2f6d9ccbeebd3bd9bcf3b3f2f2d4c7af98b1531cc46868041dedff2b99cf03c1
MD5 0e569cf509f5ecd82dfd1ec632f4300a
BLAKE2b-256 6f9a60e356331d71123e0f4575109f975b1c1b554a0d0643fbe980f6f476bf16

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.7-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.7-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 93974a43a33a0447c6ecf109d137f98b2e9db6a33a20276d7359c051e19ad4b0
MD5 8e96297e2d22531e68c239bcbbfaf7f9
BLAKE2b-256 b4e4ed01556a4fb82c778805d9a7496c8c1448bce5345c4cc605863894b0f764

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 67b3c5adaabc759c0c1526697f23b618e376cdb3a80b1e42ee97467bdf90958a
MD5 c7c789272a1bc3a448b41b66ee151bd2
BLAKE2b-256 fe6db6abad94416e9234497a1d2dc3c85837d4f8bc820bc43c0a12da3f27b232

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bb9becb4b357a234b3dfa332b9cd9d0124ecf55101777825a78068e409f809cc
MD5 0a7ff0b0e1635867c06f6f564821fb69
BLAKE2b-256 91f0ac6f8bce5f4ff28437823707718b6f8ea7d4d17809b851d5331e592d77e3

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.7-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.7-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 24320698cabbe63bbda7e289dca6510f4113a4c03d6e21b42370d800b35f9bc5
MD5 412b0ecebcb7f464d9e675eb55a45566
BLAKE2b-256 25abd8417dbbf179b79a647822c6b5cde4bfc7599db8df8bad733160bedd4be9

See more details on using hashes here.

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