From 4b2beda4731c6fcbb3025a24e1412f6b460100cc Mon Sep 17 00:00:00 2001
From: Paulus Schoutsen <balloob@gmail.com>
Date: Thu, 28 Jul 2022 22:26:37 -0700
Subject: [PATCH] Move some bleak imports to be behind TYPE_CHECKING (#75894)

---
 .../components/bluetooth_le_tracker/device_tracker.py  |  5 ++++-
 homeassistant/components/fjaraskupan/__init__.py       |  8 ++++++--
 homeassistant/components/switchbot/coordinator.py      | 10 ++++++----
 3 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/homeassistant/components/bluetooth_le_tracker/device_tracker.py b/homeassistant/components/bluetooth_le_tracker/device_tracker.py
index a650e65b8f2..fa55c22f994 100644
--- a/homeassistant/components/bluetooth_le_tracker/device_tracker.py
+++ b/homeassistant/components/bluetooth_le_tracker/device_tracker.py
@@ -4,10 +4,10 @@ from __future__ import annotations
 import asyncio
 from datetime import datetime, timedelta
 import logging
+from typing import TYPE_CHECKING
 from uuid import UUID
 
 from bleak import BleakClient, BleakError
-from bleak.backends.device import BLEDevice
 import voluptuous as vol
 
 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
 import homeassistant.util.dt as dt_util
 
+if TYPE_CHECKING:
+    from bleak.backends.device import BLEDevice
+
 _LOGGER = logging.getLogger(__name__)
 
 # Base UUID: 00000000-0000-1000-8000-00805F9B34FB
diff --git a/homeassistant/components/fjaraskupan/__init__.py b/homeassistant/components/fjaraskupan/__init__.py
index 85e95db5513..36608fb026d 100644
--- a/homeassistant/components/fjaraskupan/__init__.py
+++ b/homeassistant/components/fjaraskupan/__init__.py
@@ -5,10 +5,9 @@ from collections.abc import Callable
 from dataclasses import dataclass
 from datetime import timedelta
 import logging
+from typing import TYPE_CHECKING
 
 from bleak import BleakScanner
-from bleak.backends.device import BLEDevice
-from bleak.backends.scanner import AdvertisementData
 from fjaraskupan import Device, State, device_filter
 
 from homeassistant.config_entries import ConfigEntry
@@ -24,6 +23,11 @@ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, Upda
 
 from .const import DISPATCH_DETECTION, DOMAIN
 
+if TYPE_CHECKING:
+    from bleak.backends.device import BLEDevice
+    from bleak.backends.scanner import AdvertisementData
+
+
 PLATFORMS = [
     Platform.BINARY_SENSOR,
     Platform.FAN,
diff --git a/homeassistant/components/switchbot/coordinator.py b/homeassistant/components/switchbot/coordinator.py
index 31f7f2d3992..f461a3e0f4c 100644
--- a/homeassistant/components/switchbot/coordinator.py
+++ b/homeassistant/components/switchbot/coordinator.py
@@ -3,11 +3,9 @@ from __future__ import annotations
 
 import asyncio
 import logging
-from typing import Any, cast
+from typing import TYPE_CHECKING, Any, cast
 
-from bleak.backends.device import BLEDevice
 import switchbot
-from switchbot import parse_advertisement_data
 
 from homeassistant.components import bluetooth
 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
 
+if TYPE_CHECKING:
+    from bleak.backends.device import BLEDevice
+
+
 _LOGGER = logging.getLogger(__name__)
 
 
@@ -52,7 +54,7 @@ class SwitchbotDataUpdateCoordinator(PassiveBluetoothDataUpdateCoordinator):
         """Handle a Bluetooth event."""
         super()._async_handle_bluetooth_event(service_info, change)
         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
         ):
             self.data = flatten_sensors_data(adv.data)