Move some bleak imports to be behind TYPE_CHECKING (#75894)

This commit is contained in:
Paulus Schoutsen 2022-07-28 22:26:37 -07:00 committed by GitHub
parent 9f16c14681
commit 4b2beda473
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 16 additions and 7 deletions

View file

@ -4,10 +4,10 @@ from __future__ import annotations
import asyncio import asyncio
from datetime import datetime, timedelta from datetime import datetime, timedelta
import logging import logging
from typing import TYPE_CHECKING
from uuid import UUID from uuid import UUID
from bleak import BleakClient, BleakError from bleak import BleakClient, BleakError
from bleak.backends.device import BLEDevice
import voluptuous as vol import voluptuous as vol
from homeassistant.components import bluetooth from homeassistant.components import bluetooth
@ -31,6 +31,9 @@ from homeassistant.helpers.event import async_track_time_interval
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
import homeassistant.util.dt as dt_util import homeassistant.util.dt as dt_util
if TYPE_CHECKING:
from bleak.backends.device import BLEDevice
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
# Base UUID: 00000000-0000-1000-8000-00805F9B34FB # Base UUID: 00000000-0000-1000-8000-00805F9B34FB

View file

@ -5,10 +5,9 @@ from collections.abc import Callable
from dataclasses import dataclass from dataclasses import dataclass
from datetime import timedelta from datetime import timedelta
import logging import logging
from typing import TYPE_CHECKING
from bleak import BleakScanner from bleak import BleakScanner
from bleak.backends.device import BLEDevice
from bleak.backends.scanner import AdvertisementData
from fjaraskupan import Device, State, device_filter from fjaraskupan import Device, State, device_filter
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
@ -24,6 +23,11 @@ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, Upda
from .const import DISPATCH_DETECTION, DOMAIN from .const import DISPATCH_DETECTION, DOMAIN
if TYPE_CHECKING:
from bleak.backends.device import BLEDevice
from bleak.backends.scanner import AdvertisementData
PLATFORMS = [ PLATFORMS = [
Platform.BINARY_SENSOR, Platform.BINARY_SENSOR,
Platform.FAN, Platform.FAN,

View file

@ -3,11 +3,9 @@ from __future__ import annotations
import asyncio import asyncio
import logging import logging
from typing import Any, cast from typing import TYPE_CHECKING, Any, cast
from bleak.backends.device import BLEDevice
import switchbot import switchbot
from switchbot import parse_advertisement_data
from homeassistant.components import bluetooth from homeassistant.components import bluetooth
from homeassistant.components.bluetooth.passive_update_coordinator import ( from homeassistant.components.bluetooth.passive_update_coordinator import (
@ -15,6 +13,10 @@ from homeassistant.components.bluetooth.passive_update_coordinator import (
) )
from homeassistant.core import HomeAssistant, callback from homeassistant.core import HomeAssistant, callback
if TYPE_CHECKING:
from bleak.backends.device import BLEDevice
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@ -52,7 +54,7 @@ class SwitchbotDataUpdateCoordinator(PassiveBluetoothDataUpdateCoordinator):
"""Handle a Bluetooth event.""" """Handle a Bluetooth event."""
super()._async_handle_bluetooth_event(service_info, change) super()._async_handle_bluetooth_event(service_info, change)
discovery_info_bleak = cast(bluetooth.BluetoothServiceInfoBleak, service_info) discovery_info_bleak = cast(bluetooth.BluetoothServiceInfoBleak, service_info)
if adv := parse_advertisement_data( if adv := switchbot.parse_advertisement_data(
discovery_info_bleak.device, discovery_info_bleak.advertisement discovery_info_bleak.device, discovery_info_bleak.advertisement
): ):
self.data = flatten_sensors_data(adv.data) self.data = flatten_sensors_data(adv.data)