Skip to main content

Python SDK for motorbridge Rust ABI

Project description

motorbridge Python SDK

Channel Compatibility (PCAN + CANable candleLight/gs_usb + CAN-FD + Damiao Serial Bridge)

  • Linux SocketCAN uses prepared interfaces directly: can0, can1. For CANable, use candleLight/gs_usb firmware so it appears as a SocketCAN interface such as can0.
  • Use PCAN or CANable candleLight/gs_usb for standard CAN.
  • 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). 2.5. ../motorbridge-docs Purpose: canonical Mintlify documentation site (tutorial + API style docs).
  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

Packaging note:

  • Current package target version: 0.3.9.

  • Published wheel includes motor_abi shared library and ws_gateway binary for that platform.

  • After pip install motorbridge, gateway binary path is typically: .../site-packages/motorbridge/bin/ws_gateway (or ws_gateway.exe on Windows).

  • 0.3.9 adds RobStride PP/CSP-specific position-control entrypoints while keeping the public Python binding API backward compatible.

  • RobStride parameter writes default to no status-ack wait; set MOTORBRIDGE_ROBSTRIDE_WRITE_ACK_TIMEOUT_MS to restore synchronous waiting.

  • The Python CLI is now implemented as a motorbridge.cli package, but motorbridge-cli, python -m motorbridge.cli, python -m motorbridge, from motorbridge.cli import main, and legacy flat run arguments remain supported.

  • Gateway launch command (added to PATH by pip):

    • motorbridge-gateway -- --bind 127.0.0.1:9002 ...
    • This launcher executes the packaged Rust ws_gateway binary, so WS JSON ops such as state_stream, param_stream, damiao_param_stream, and robstride_param_stream are supported by the bundled gateway version.
  • Security note:

    • keep loopback bind (127.0.0.1) for local usage.
    • if you bind to non-loopback addresses (0.0.0.0 or host IP), export MOTORBRIDGE_WS_TOKEN before launch.
    • clients must pass the token in x-motorbridge-token or Authorization: Bearer ....
  • macOS runtime note (only if you see dynamic library load errors):

    • Resolve binary path generically: GW="$(python3 -c "import motorbridge, pathlib; print(pathlib.Path(motorbridge.__file__).resolve().parent/'bin'/'ws_gateway')")"
    • Use package-local lib directory (no machine-specific absolute path): PKG_DIR="$(python3 -c "import motorbridge, pathlib; print(pathlib.Path(motorbridge.__file__).resolve().parent)")" DYLD_LIBRARY_PATH="$PKG_DIR/lib:${DYLD_LIBRARY_PATH:-}" "$GW" --bind 127.0.0.1:9002 --vendor damiao --channel can0 --model auto --motor-id 0x01 --feedback-id 0x11 --dt-ms 20
  • 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 has no single-shot private-protocol status request; request_feedback() is a non-blocking no-op for RobStride. Use robstride_ping() for connectivity, active report for streaming state, or typed parameter reads for fresh position/velocity values.

Unified Mode Mapping Summary (Top-Level -> Vendor Native)

Unified Mode Damiao RobStride Hexfellow MyActuator HighTorque
Mode.MIT native MIT native MIT native MIT (mode 5) unsupported maps to native pos+vel+tqe
Mode.POS_VEL native POS_VEL maps to native Position (run_mode=1 + limit_spd(0x7017) + loc_ref(0x7016)) native POS_VEL (mode 1) Position setpoint flow maps to native pos+vel+tqe
Mode.VEL native VEL native Velocity unsupported native velocity setpoint flow native velocity command
Mode.FORCE_POS native FORCE_POS unsupported unsupported unsupported maps to native pos+vel+tqe

Note:

  • RobStride unified high-level control currently covers MIT / POS_VEL / VEL.
  • Torque/current is parameter-level only for RobStride (robstride_write_param_*), not a dedicated unified mode.
  • RobStride feedback/host default should use 0xFD; scan tries 0xFD,0xFF,0xFE,0x00,0xAA by default.
  • RobStride feedback_id / host_id is not the motor device_id; scan hits report the motor ID as probe / device_id.

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, 0xFD, "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

# Rust CLI style ID update is also accepted:
motorbridge-cli run \
  --vendor damiao --channel can0 --model 4340P --motor-id 0x01 --feedback-id 0x11 \
  --set-motor-id 0x02 --set-feedback-id 0x12 --store 1 --verify-id 1

RobStride:

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

RobStride MIT quick check:

motorbridge-cli run \
  --vendor robstride --channel can0 --model rs-00 \
  --motor-id 2 --feedback-id 0xFD \
  --mode mit --ensure-strict 1 \
  --pos 0.5 --vel 0 --kp 20.0 --kd 0.5 --tau 0 \
  --loop 100 --dt-ms 20

RobStride position target, aligned with the WS gateway native register path (limit_spd 0x7017, loc_kp 0x701E, loc_ref 0x7016):

motorbridge-cli run \
  --vendor robstride --channel can0 --model rs-00 \
  --motor-id 2 --feedback-id 0xFD \
  --mode pos-vel \
  --pos 1.5 --vlim 1.0 --loc-kp 5.0 \
  --loop 1 --dt-ms 20

motorbridge-cli run \
  --vendor robstride --channel can0 --model rs-00 \
  --motor-id 2 --feedback-id 0xFD \
  --mode pos-vel \
  --pos -1.5 --vlim 1.0 --loc-kp 5.0 \
  --loop 1 --dt-ms 20

RobStride parameter read:

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

# Rust CLI style is also accepted by Python CLI:
motorbridge-cli run \
  --vendor robstride --channel can0 --model rs-00 --motor-id 127 --feedback-id 0xFD \
  --mode read-param --param-id 0x7019 --param-type f32

Damiao parameter read/write:

motorbridge-cli damiao-read-param \
  --channel can0 --model 4340P --motor-id 0x01 --feedback-id 0x11 \
  --param-id 21 --type f32

motorbridge-cli damiao-write-param \
  --channel can0 --model 4340P --motor-id 0x01 --feedback-id 0x11 \
  --param-id 8 --type u32 --value 0x01 --verify 1

Unified scan (all vendors):

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

RobStride-focused scan and ID update:

motorbridge-cli scan \
  --vendor robstride --channel can0 --start-id 1 --end-id 127 \
  --feedback-ids 0xFD,0xFF,0xFE,0x00,0xAA

motorbridge-cli id-set \
  --vendor robstride --channel can0 \
  --motor-id 127 --feedback-id 0xFD \
  --new-motor-id 126 --store 1 --verify 1

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
set MOTORBRIDGE_WS_GATEWAY_BIN=%CD%\\target\\release\\ws_gateway.exe
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

RobStride Maintenance Notes

  • clear_error() is supported through the same unified motor method as Damiao.
  • robstride_set_active_report(True/False) toggles RobStride comm_type 24 active status reporting.
  • With active reporting enabled, background polling can update get_state() from incoming status frames without a fresh query command; request_feedback() remains available as a compatibility/manual-refresh helper.

CLI Run-Mode Argument Map

motorbridge-cli run keeps one unified command surface, but each vendor/mode uses only the arguments that its native protocol understands.

Vendor Mode Effective arguments Notes
Damiao mit --pos --vel --kp --kd --tau native MIT frame
Damiao pos-vel --pos --vlim native position-speed frame
Damiao vel --vel native velocity frame
Damiao force-pos --pos --vlim --ratio native force-position frame
RobStride mit --pos --vel --kp --kd --tau native MIT frame
RobStride pos-vel --pos --vlim --loc-kp maps to native Position mode; --kp is accepted as a --loc-kp fallback
RobStride vel --vel native speed mode
HighTorque mit --pos --vel --tau --kp/--kd are accepted for unified signature but ignored by ht_can v1.5.5
Hexfellow mit --pos --vel --kp --kd --tau CAN-FD path
Hexfellow pos-vel --pos --vlim CAN-FD path

For RobStride pos-vel, --vel, --kd, and --tau are intentionally ignored because the firmware path is parameter-based (limit_spd, loc_kp, loc_ref). The Rust CLI and Python CLI warn when those ignored arguments are explicitly provided.

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-00 --motor-id 2 --feedback-id 0xFD --mode ping

# RobStride wrapper demo: clear fault
python3 bindings/python/examples/robstride_wrapper_demo.py \
  --channel can0 --model rs-00 --motor-id 2 --feedback-id 0xFD --mode clear-error

# RobStride wrapper demo: active-report bring-up
python3 bindings/python/examples/robstride_wrapper_demo.py \
  --channel can0 --model rs-00 --motor-id 2 --feedback-id 0xFD \
  --mode write-param --param-id 0x7026 --param-type u16 --param-value 3

python3 bindings/python/examples/robstride_wrapper_demo.py \
  --channel can0 --model rs-00 --motor-id 2 --feedback-id 0xFD \
  --mode active-report --active-report 1

# RobStride wrapper demo: position command
python3 bindings/python/examples/robstride_wrapper_demo.py \
  --channel can0 --model rs-00 --motor-id 2 --feedback-id 0xFD \
  --mode pos-vel --pos 1.5 --vlim 1.0 --loc-kp 5.0 --loop 1 --dt-ms 20

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

Notes

  • id-dump is a Damiao workflow; id-set supports Damiao and RobStride; scan supports damiao|hexfellow|myactuator|robstride|hightorque|all.
  • For RobStride id-set, --new-motor-id changes device_id; --feedback-id remains the host-side ID.
  • RobStride motor_id / device_id is validated as 1..255; feedback_id / host_id is validated as 0..255 to prevent silent ctypes truncation.
  • RobStride scan probes each --feedback-ids host_id exactly through host-id-specific ABI helpers; invalid host IDs are rejected instead of silently falling back.
  • Python CLI and Rust CLI are aligned for the production Damiao and RobStride workflows: scan, enable/disable, control, ID update, parameter read/write, RobStride clear-error, and RobStride active-report. Rust CLI still exposes deeper vendor-specific surfaces for HighTorque/MyActuator/Hexfellow debugging.
  • 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.3.9.tar.gz (34.0 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.3.9-cp314-cp314-win_amd64.whl (989.5 kB view details)

Uploaded CPython 3.14Windows x86-64

motorbridge-0.3.9-cp313-cp313-win_amd64.whl (952.9 kB view details)

Uploaded CPython 3.13Windows x86-64

motorbridge-0.3.9-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

motorbridge-0.3.9-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

motorbridge-0.3.9-cp313-cp313-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

motorbridge-0.3.9-cp312-cp312-win_amd64.whl (952.9 kB view details)

Uploaded CPython 3.12Windows x86-64

motorbridge-0.3.9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

motorbridge-0.3.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

motorbridge-0.3.9-cp312-cp312-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

motorbridge-0.3.9-cp311-cp311-win_amd64.whl (952.9 kB view details)

Uploaded CPython 3.11Windows x86-64

motorbridge-0.3.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

motorbridge-0.3.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

motorbridge-0.3.9-cp311-cp311-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

motorbridge-0.3.9-cp310-cp310-win_amd64.whl (952.9 kB view details)

Uploaded CPython 3.10Windows x86-64

motorbridge-0.3.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

motorbridge-0.3.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

motorbridge-0.3.9-cp310-cp310-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for motorbridge-0.3.9.tar.gz
Algorithm Hash digest
SHA256 12948aa4d3662354744bfac5777243a64ac35c9bb990d42182efc5c8f179d40f
MD5 0c95360e7586b50dfeb44e321636bd57
BLAKE2b-256 89b236e84fc4274fb9fb288e50ab8fe9451ea6f31aed5b735f7234df515eb557

See more details on using hashes here.

File details

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

File metadata

  • Download URL: motorbridge-0.3.9-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 989.5 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for motorbridge-0.3.9-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 41c5b4b230adc06ed4d7e7ee61d20d65fc0e6c31bef0e87511364911f33fcd25
MD5 72a4d631672c087d4abf6803f0cfa149
BLAKE2b-256 5d955d6692b2405fe688cb6f221e2cd09fae23a0a3db2cbbb454b23efadb005f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: motorbridge-0.3.9-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 952.9 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for motorbridge-0.3.9-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 85c6a9eb382155082326c9019d260b2ede518317a82c38069d463bc7cb153d67
MD5 8ef7733eddf0935873f68a408b3d458a
BLAKE2b-256 682b70840168adab64ac14bb501562aaa759ab33e04f939753bcaa43c939564f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for motorbridge-0.3.9-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e6330eed5e4c89787f3ca0fb67198b4585beb004596d4ab658ba07174156d93b
MD5 b886a588c48547b2df89312b72b9b075
BLAKE2b-256 9f3fb9a0789380289f27ae06d433bd4f7d79c47c1fcb2fc658261d4b1631ad85

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for motorbridge-0.3.9-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 39fb779b22e3e8a8fa7f09a4ce9242bf1869bcc6fc2e96eb10a9e81239432162
MD5 7b9fab71e9cc0a2b0c6024c150483d17
BLAKE2b-256 5e7927d648345845d1f6d60caee7e9f895b01f4eb647217706b35cd5207f9c14

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for motorbridge-0.3.9-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3e9bbf01316bbb734de6d8a61dd74d7ff964acf814cad5326df95405bd6b9120
MD5 3bcfe90d94b3645d5161d00aacb0f4a7
BLAKE2b-256 e663e9b2dddd738d88ae33ec59e96ef0db9345832c8db9efeca21ab2b8cb6534

See more details on using hashes here.

File details

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

File metadata

  • Download URL: motorbridge-0.3.9-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 952.9 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for motorbridge-0.3.9-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 7e7012be69edf92261c0a9335da7541a97e40b941295130fb980531b41a57eac
MD5 35af83deb3ccf8a6ffc8e05ce102e442
BLAKE2b-256 66ada4a4652f4a6503d82be9e964b96345423f6c4da6602b469024edab68dfac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for motorbridge-0.3.9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 aa4967a9b675ae5d4e89bee5fcc7390560193a18a0abdaa0e574cf0f131416f2
MD5 4e53aa763c3f10b58c0818d82ab81b8f
BLAKE2b-256 ea5e27c46bbe3f472bf894b50cc0c8bfba46a57116c8c7858c29ae1ce4540e05

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for motorbridge-0.3.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5b0a7d4950b0806ee2bc83dda0276581b5862208e6d4566d2a367d8cdacf9dc0
MD5 c7a4e6224f82cbb5a3bfe1293610322e
BLAKE2b-256 d02cc368457ba750cc9891342111646bd3a1b2e448f6ff9f788049db5550ea6e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for motorbridge-0.3.9-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6abc0111779da3ed6ecd8d14c4241e0a37f5adf9c5e997d360e9940cb17fcde9
MD5 f248e67a5efef433aaa1077ed3aea2d0
BLAKE2b-256 0d163dba18382393dda35c37a590c991e7d998c642ff04b4171f5cacea09f79b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: motorbridge-0.3.9-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 952.9 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for motorbridge-0.3.9-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7c1ac92f2419d5b18c90ee5cdffde4bf43b5f0e09743483e00c640ca052bec8a
MD5 d301a0491e94f74a409940fc3d6b17e1
BLAKE2b-256 896eb1e6324786b499193f880eeaa5e5650e9be7b0091a33481139afb159570c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for motorbridge-0.3.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 87f274bafa2d438e4a927d66ee031e1182a11a3be9e2dcf25b8976012760cd1c
MD5 94661e13b807bf86e2e8a00832e2bab6
BLAKE2b-256 272973e5780e1615b026034e9d0121831d6cf62ce2e4df724b7b25ee04907faa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for motorbridge-0.3.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 02a219f66e234f44ab99dbaa4ad93e16e270acef59a32ca12218a53696136b6b
MD5 9ad60ee9bfa477b08123b1ca646273cd
BLAKE2b-256 b0078b16bf48e6fa64b6facf6feffc0303edcc85e9b65f2668569339c174d4af

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for motorbridge-0.3.9-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cf154148c933422e0685d3e208a336c2491b227e1bd23da73b9654ec9b68f1c9
MD5 54bd7918f34ecbc20db904c4268d3a23
BLAKE2b-256 e1713b49ae6113f8c56e251a6ed84b0a09954ccd72f5ff3969ed401f27abeb95

See more details on using hashes here.

File details

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

File metadata

  • Download URL: motorbridge-0.3.9-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 952.9 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for motorbridge-0.3.9-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 576cdc668b28033b1d3d511052b81a9900c96ef5757c3a9ab32bf86751ce8482
MD5 4e8f6cb8ab0c6446e68907d6fbf5de30
BLAKE2b-256 bf07a842a1960418cf53db3ec8e0f90df896c17e3be5f85cc541facd7588c12c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for motorbridge-0.3.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 55f06489c0cd80a7e38b4ebd846dace2a0610ef8a6fa5a0a5f13ed10bd43a217
MD5 f2bb768d6ef35f0f7723d7facc096201
BLAKE2b-256 77f3209afb96e7115d5cb5f49f3736851453ebad2d2f323c2c71b2b3e3289490

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for motorbridge-0.3.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f25e0d0edf5ed2e0093e56a556765834b36bc89738c102c7b8dcddbb65637639
MD5 49dc10deab0394a7c1bf1ab46cd51551
BLAKE2b-256 5a14c33499a10564f88abfacc9e4d8bd0ec9d6f37cc98bc5c8fd3abb66a83c6f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for motorbridge-0.3.9-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e4ceaaf0a98fa55daa2345db4a68923ff2638a6404da0474319cdfcaccd27b87
MD5 4b4ea7bfb1bb3c352095b064239dbaa5
BLAKE2b-256 75a5b2419d1b901b9162664babe05e6127567cc597d22c80c791f90aed0430f3

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