Skip to content

Install bleak by default, so Bluetooth works from a plain pip install - #111

Merged
bdbarnett merged 1 commit into
mainfrom
bleak-default
Oct 11, 2026
Merged

bdbarnett merged 1 commit into
mainfrom
bleak-default

Conversation

@bdbarnett

Copy link
Copy Markdown
Collaborator

pyproject.toml says every capability is available from a default install, but connecting with -d ble://NAME needed a separate pip install bleak. This makes bleak a dependency.

It's bounded >=1.0,<4: mpftp calls bleak's API (BleakScanner.discover(return_adv=True), find_device_by_filter, BleakClient), and 1.x is what Python 3.9 resolves to while 3.x is current. Resolved with uv for Python 3.9 and 3.12 on Linux, Windows and macOS: 1.1.1 on 3.9 and 3.0.2 on 3.12, each with its platform backend (dbus-fast, winrt, pyobjc). A fresh 3.12 venv with pip install . imports bleak and mpftp.ble finds it.

Two places still need it by hand, and the docs now say so: on WSL the sidecar runs on the Windows Python, because Windows owns the radio; and the VS Code extension bundles only mpremote and pyserial, since bleak has native parts per platform.

pyproject.toml says every capability comes with a default install, but ble://
needed a separate pip install bleak. bleak is now a dependency, bounded to
the majors mpftp has been run on (1.x for Python 3.9, 3.x today). The docs
say where it still has to be installed by hand: the Windows Python the
sidecar uses on WSL, and the extension's Python.
@bdbarnett
bdbarnett merged commit 0c1e4c2 into main Oct 11, 2026
4 checks passed
@bdbarnett
bdbarnett deleted the bleak-default branch October 11, 2026 08:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant