Add optional bleak package import handling

Make bleak optional by checking for import availability.
This commit is contained in:
Alex Samorukov 2026-02-10 10:30:51 +01:00 committed by GitHub
parent debe6b8770
commit 36048e7802
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -5,11 +5,19 @@ mccli.py : CLI interface to MeschCore BLE companion app
import asyncio
import logging
from bleak import BleakClient, BleakScanner
from bleak.backends.characteristic import BleakGATTCharacteristic
from bleak.backends.device import BLEDevice
from bleak.backends.scanner import AdvertisementData
from bleak.exc import BleakDeviceNotFoundError
# Make bleak optional - only fail if BLE operations are attempted
try:
from bleak import BleakClient, BleakScanner
from bleak.backends.characteristic import BleakGATTCharacteristic
from bleak.backends.device import BLEDevice
from bleak.backends.scanner import AdvertisementData
from bleak.exc import BleakDeviceNotFoundError
BLEAK_AVAILABLE = True
except ImportError:
BLEAK_AVAILABLE = False
BleakClient = None
BleakGATTCharacteristic = None
# Get logger
logger = logging.getLogger("meshcore")
@ -29,6 +37,11 @@ class BLEConnection:
client (BleakClient, optional): An existing BleakClient instance.
pin (str, optional): PIN for BLE pairing authentication.
"""
if not BLEAK_AVAILABLE:
raise ImportError(
f"BLE requires 'bleak' package to be installed."
)
self.address = address
self._user_provided_address = address
self.client = client