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

View File

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