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. DAMIAO_PYTHON_REFERENCE.zh-CN.md
    Purpose: Damiao Python interface reference (parameter lookup style).
  4. DAMIAO_binding.md
    Purpose: Damiao binding implementation notes (design/internal behavior).
  5. 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(...)

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 routing:
    • push vX.Y.ZrcN -> publish to TestPyPI
    • push vX.Y.Z -> publish to PyPI
  • Manual publish is still available via workflow Python Publish:
    • testpypi (recommended dry-run first)
    • pypi (official release)

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 (rc for pre-release is recommended).

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.6rc2.tar.gz (18.3 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.6rc2-cp314-cp314-win_amd64.whl (204.3 kB view details)

Uploaded CPython 3.14Windows x86-64

motorbridge-0.1.6rc2-cp313-cp313-win_amd64.whl (198.3 kB view details)

Uploaded CPython 3.13Windows x86-64

motorbridge-0.1.6rc2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (349.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

motorbridge-0.1.6rc2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (340.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

motorbridge-0.1.6rc2-cp313-cp313-macosx_11_0_arm64.whl (296.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

motorbridge-0.1.6rc2-cp312-cp312-win_amd64.whl (198.3 kB view details)

Uploaded CPython 3.12Windows x86-64

motorbridge-0.1.6rc2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (349.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

motorbridge-0.1.6rc2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (340.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

motorbridge-0.1.6rc2-cp312-cp312-macosx_11_0_arm64.whl (296.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

motorbridge-0.1.6rc2-cp311-cp311-win_amd64.whl (198.3 kB view details)

Uploaded CPython 3.11Windows x86-64

motorbridge-0.1.6rc2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (349.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

motorbridge-0.1.6rc2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (340.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

motorbridge-0.1.6rc2-cp311-cp311-macosx_11_0_arm64.whl (296.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

motorbridge-0.1.6rc2-cp310-cp310-win_amd64.whl (198.3 kB view details)

Uploaded CPython 3.10Windows x86-64

motorbridge-0.1.6rc2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (349.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

motorbridge-0.1.6rc2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (340.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

motorbridge-0.1.6rc2-cp310-cp310-macosx_11_0_arm64.whl (296.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file motorbridge-0.1.6rc2.tar.gz.

File metadata

  • Download URL: motorbridge-0.1.6rc2.tar.gz
  • Upload date:
  • Size: 18.3 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.6rc2.tar.gz
Algorithm Hash digest
SHA256 5b81911bb9e198bc13c467e2550467df5dcebddd4df960395f3df56d3816e74b
MD5 4b65b2fc81a42e0178cb5fa0940061e3
BLAKE2b-256 3c5f11b008ede9c82ce5e8aec96ff37a9b6c35cddfcabb6360bf1c3b7bcddae2

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.6rc2-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.6rc2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 dd4645052906a008d160518aa551387fcda7ce57c3e33b58a2cc81e6a1328f63
MD5 1dfa96ec5c58ffcaac49dbc07d5cd419
BLAKE2b-256 08460fe8e5a2707e56093ef176f0ee68265dd9e6905344b3a38cdef1449107ea

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.6rc2-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.6rc2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 4dde0f8081f72e545a79872785150f6fb60e7ce598523dda1760b25536b38b03
MD5 be21e336fbcc1ad95ddb64591bdeef25
BLAKE2b-256 ed038f5789431110a594c59c9ab6c7d2110dce649911b8a331e8b7da91c20693

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.6rc2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.6rc2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 78dcf03e00995540ac8123b9a546b0569d96aa98d884234df3eac5b0c857f30e
MD5 01dac3cf213cff397740e1f39dd8eb2b
BLAKE2b-256 33c61aa148ade0d69356ca1d20f7a23a1cec5ebb20c8363d999945053b0b555a

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.6rc2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.6rc2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 17468f5f73a78f7dfb9c4356193d9275ba12c253a83e35c88a3b74f34a13c5c1
MD5 78eeee7dc31fb23453c46af633afc4cb
BLAKE2b-256 41ca70f5730c88b413fc6cc0429b7a3f794ab8ac829ad63f303a3f49e9b2897a

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.6rc2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.6rc2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1ecfe80a3ee4a52f87eaa1c735228d46c005f20fd6020f1563134cb902b5ddcd
MD5 483a297cda654d9074b8fe86b045e448
BLAKE2b-256 83b3f5976a45406c87734f9eef9001b5bf44e9e9991cfde881dc4791fb2895d3

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.6rc2-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.6rc2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9af4e379c04028ae12620e5b864ee43dedb416dec259480802464c1e9ee741de
MD5 4cd64b51a6a509d2e36618ea85f7cfca
BLAKE2b-256 d0040d198e6cedc6a6dda68f0e1f36f3c7b449bbf6bc38d1a7f1f3275bdfd249

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.6rc2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.6rc2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c49c247f1ad159110dda4891cb1b379c9ba0e0e21a832dac7f77dd7ccbc08e36
MD5 b50e6bfa235d03a7f9783b86edf1dec6
BLAKE2b-256 cd41fd345e1c615347c89a1ca22e1732cc3e2f9986899bea675d352ecf714ebe

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.6rc2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.6rc2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1e32cad1cab2cbfd0831faeccfd547ae471a55361df874bfac4de6da20e3ce2f
MD5 73f1fac2d69756e49a562fb8104969cf
BLAKE2b-256 3942cac1b0a54a9c6ecb083e18037894986ce626ab30545b428d652270d9354d

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.6rc2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.6rc2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b5e1b72a6a6f6c607b49d6592f0d9cfd5a3518ff79b3205c6ceba5d65a3a0f68
MD5 8f5eab6fababe7cc9a8408d30a525299
BLAKE2b-256 35917878332707b55162f7aae3137b07d0e1cf6fde4efda370b51066c2786ed8

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.6rc2-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.6rc2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 69e0817644867205155bd5617c36644316c38799ed73a82215ff68ebc253dabc
MD5 bf933c2914e46f587198be72ee9045f9
BLAKE2b-256 a0824e874d3eace3d95864c36317cd6ac57c61832fe638059f97ad3f4d1fc4f1

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.6rc2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.6rc2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1950248226f503f0666b935e7b1b1c8d364fb55aa344e85b50df7f0c0429635f
MD5 adaff4ec7d8839ad496d2e14b4ded7a9
BLAKE2b-256 149c362bbfaf43c754d8403cd73a738ce7b2edb73def8ce92525926397e67cbb

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.6rc2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.6rc2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c5565de76e9d47ae89a54af48c565169d1c05d1619432f72a970efdb4b817c3a
MD5 7c22fbef5b9e19b990829907aefe1a17
BLAKE2b-256 bf6185d866d4bd127bcd4052e9ddf4ef25225c3632d91f808ece0e9a2f0a2b91

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.6rc2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.6rc2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f0fdd941838f662ffc4524ca276ec692edcc685bd7158f448d686b0eb8b42d38
MD5 9fa5833f46ff87ab3e6bc8c638dc29e9
BLAKE2b-256 9892c053fe7b05a6462526a3b8f8dd839863474e91479839ebf6758d35c11c2c

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.6rc2-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.6rc2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ae750948efcae1ae403b65ef8886edc5bd07c917a4371a9d00446530c95c27c1
MD5 78606b0fe74d04f2f8e7ca733b7808a5
BLAKE2b-256 f4d3f307d4b26124950a0d3dfdfd0cac763b8b8eb5e1292c74b210d57ca46643

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.6rc2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.6rc2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f538676b92230827c08224180450e7e9ed9b9d7b108df86cc6fd49739c169b55
MD5 412ee11e61b6eeccff0ba0e87a115deb
BLAKE2b-256 26da19c76553e92c83943228401ec7e053507c7bdade66c26276ffa5097f5b85

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.6rc2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.6rc2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a45ba48e00acd6fe0e7669b623b0deedcd47fe1e55245d404410902b58563a39
MD5 5b69ff45030370cede4c6fe00ee68949
BLAKE2b-256 99d4bdcdb2fab7465f1ca94a4dabd13c64b2ee44653d97844611d099b67cf8d1

See more details on using hashes here.

File details

Details for the file motorbridge-0.1.6rc2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for motorbridge-0.1.6rc2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 321635831e99e114074da27ab2c79da2996b56d62cea5638f84ecdf176814293
MD5 bbc8da11349e5c2ef427945349aded9a
BLAKE2b-256 96ee2d2db0004713f4b9fb5f7beec10e199473c1cb7c2fd7c7e3e5d1929932b8

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