evan.liu 1948e4b1ba tools: commit the bundled production runtime (python-embed + NSpyocd + DFP pack)
Per request the full portable environment is now in git: a fresh clone's
tools/ runs everything with zero installation. Only regenerable release
zips and the dev venv stay ignored.
2026-09-05 10:38:43 +08:00

133 lines
4.6 KiB
Plaintext

Metadata-Version: 2.4
Name: bleak
Version: 3.0.2
Summary: Bluetooth Low Energy platform Agnostic Klient
Author: Henrik Blidh
Author-email: Henrik Blidh <henrik.blidh@nedomkull.com>
License-Expression: MIT
License-File: LICENSE
Classifier: Framework :: AsyncIO
Classifier: Operating System :: Microsoft :: Windows :: Windows 11
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Android
Requires-Dist: async-timeout>=3.0.0 ; python_full_version < '3.11'
Requires-Dist: typing-extensions>=4.7.0 ; python_full_version < '3.12'
Requires-Dist: pyobjc-core>=10.3 ; sys_platform == 'darwin'
Requires-Dist: pyobjc-framework-corebluetooth>=10.3 ; sys_platform == 'darwin'
Requires-Dist: pyobjc-framework-libdispatch>=10.3 ; sys_platform == 'darwin'
Requires-Dist: winrt-runtime>=3.1 ; sys_platform == 'win32'
Requires-Dist: winrt-windows-devices-bluetooth>=3.1 ; sys_platform == 'win32'
Requires-Dist: winrt-windows-devices-bluetooth-advertisement>=3.1 ; sys_platform == 'win32'
Requires-Dist: winrt-windows-devices-bluetooth-genericattributeprofile>=3.1 ; sys_platform == 'win32'
Requires-Dist: winrt-windows-devices-enumeration>=3.1 ; sys_platform == 'win32'
Requires-Dist: winrt-windows-devices-radios>=3.1 ; sys_platform == 'win32'
Requires-Dist: winrt-windows-foundation>=3.1 ; sys_platform == 'win32'
Requires-Dist: winrt-windows-foundation-collections>=3.1 ; sys_platform == 'win32'
Requires-Dist: winrt-windows-storage-streams>=3.1 ; sys_platform == 'win32'
Requires-Dist: dbus-fast>=1.83.0 ; sys_platform == 'linux'
Requires-Dist: bleak-pythonista>=0.1.1 ; extra == 'pythonista'
Requires-Python: >=3.10
Project-URL: Homepage, https://github.com/hbldh/bleak
Project-URL: Documentation, https://bleak.readthedocs.io
Project-URL: Changelog, https://github.com/hbldh/bleak/blob/develop/CHANGELOG.rst
Project-URL: Support, https://github.com/hbldh/bleak/discussions
Project-URL: Issues, https://github.com/hbldh/bleak/issues
Provides-Extra: pythonista
Description-Content-Type: text/x-rst
=====
Bleak
=====
.. image:: https://github.com/hbldh/bleak/workflows/Build%20and%20Test/badge.svg
:target: https://github.com/hbldh/bleak/actions?query=workflow%3A%22Build+and+Test%22
:alt: Build and Test
.. image:: https://img.shields.io/pypi/v/bleak.svg
:target: https://pypi.python.org/pypi/bleak
.. image:: https://img.shields.io/pypi/dm/bleak.svg
:target: https://pypi.python.org/pypi/bleak
:alt: PyPI - Downloads
.. image:: https://readthedocs.org/projects/bleak/badge/?version=latest
:target: https://bleak.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/psf/black
.. container::
.. image:: Bleak_logo2.png
:target: https://github.com/hbldh/bleak
:alt: Bleak Logo
Bleak is an acronym for Bluetooth Low Energy platform Agnostic Klient.
* Free software: MIT license
* Documentation: https://bleak.readthedocs.io.
Bleak is a GATT client software, capable of connecting to BLE devices
acting as GATT servers. It is designed to provide a asynchronous,
cross-platform Python API to connect and communicate with e.g. sensors.
Installation
------------
.. code-block:: bash
$ pip install bleak
Features
--------
* Supports Windows 11, version 22000 and greater
* Supports Linux distributions with BlueZ >= 5.55
* OS X/macOS support via Core Bluetooth API, from at least OS X version 10.15
* Android backend compatible with python-for-android
Bleak supports reading, writing and getting notifications from
GATT servers, as well as a function for discovering BLE devices.
Usage
-----
To discover Bluetooth devices that can be connected to:
.. code-block:: python
import asyncio
from bleak import BleakScanner
async def main():
devices = await BleakScanner.discover()
for d in devices:
print(d)
asyncio.run(main())
Connect to a Bluetooth device and read its model number:
.. code-block:: python
import asyncio
from bleak import BleakClient
address = "24:71:89:cc:09:05"
MODEL_NBR_UUID = "2A24"
async def main(address):
async with BleakClient(address) as client:
model_number = await client.read_gatt_char(MODEL_NBR_UUID)
print(f"Model Number: {model_number.decode()}")
asyncio.run(main(address))
DO NOT NAME YOUR SCRIPT ``bleak.py``! It will cause a circular import error.
See examples folder for more code, for instance example code for connecting to a
`TI SensorTag CC2650 <http://www.ti.com/ww/en/wireless_connectivity/sensortag/>`_