From 51ed9ee59d21e2a065a4b1799075258a950e1e4a Mon Sep 17 00:00:00 2001 From: Marc Mueller <30130371+cdce8p@users.noreply.github.com> Date: Wed, 20 Jul 2022 05:46:18 +0200 Subject: [PATCH] Fix bluetooth service_info typing (#75477) * Fix bluetooth service_info typing * Remove additional type ignores * Remove pylint disable --- homeassistant/components/bluetooth/__init__.py | 6 +++--- .../components/bluetooth_tracker/device_tracker.py | 6 +++--- homeassistant/helpers/service_info/__init__.py | 1 + homeassistant/helpers/service_info/bluetooth.py | 6 +++--- 4 files changed, 10 insertions(+), 9 deletions(-) create mode 100644 homeassistant/helpers/service_info/__init__.py diff --git a/homeassistant/components/bluetooth/__init__.py b/homeassistant/components/bluetooth/__init__.py index 33b2da7523e..5edc0053203 100644 --- a/homeassistant/components/bluetooth/__init__.py +++ b/homeassistant/components/bluetooth/__init__.py @@ -43,7 +43,7 @@ SOURCE_LOCAL: Final = "local" @dataclass -class BluetoothServiceInfoBleak(BluetoothServiceInfo): # type: ignore[misc] +class BluetoothServiceInfoBleak(BluetoothServiceInfo): """BluetoothServiceInfo with bleak data. Integrations may need BLEDevice and AdvertisementData @@ -58,7 +58,7 @@ class BluetoothServiceInfoBleak(BluetoothServiceInfo): # type: ignore[misc] @classmethod def from_advertisement( cls, device: BLEDevice, advertisement_data: AdvertisementData, source: str - ) -> BluetoothServiceInfo: + ) -> BluetoothServiceInfoBleak: """Create a BluetoothServiceInfoBleak from an advertisement.""" return cls( name=advertisement_data.local_name or device.name or device.address, @@ -377,7 +377,7 @@ class BluetoothManager: ) @hass_callback - def async_discovered_service_info(self) -> list[BluetoothServiceInfo]: + def async_discovered_service_info(self) -> list[BluetoothServiceInfoBleak]: """Return if the address is present.""" if models.HA_BLEAK_SCANNER: discovered = models.HA_BLEAK_SCANNER.discovered_devices diff --git a/homeassistant/components/bluetooth_tracker/device_tracker.py b/homeassistant/components/bluetooth_tracker/device_tracker.py index 5cf173d356e..b62333c0489 100644 --- a/homeassistant/components/bluetooth_tracker/device_tracker.py +++ b/homeassistant/components/bluetooth_tracker/device_tracker.py @@ -61,7 +61,7 @@ def is_bluetooth_device(device: Device) -> bool: def discover_devices(device_id: int) -> list[tuple[str, str]]: """Discover Bluetooth devices.""" try: - result = bluetooth.discover_devices( # type: ignore[attr-defined] + result = bluetooth.discover_devices( duration=8, lookup_names=True, flush_cache=True, @@ -124,7 +124,7 @@ async def get_tracking_devices(hass: HomeAssistant) -> tuple[set[str], set[str]] def lookup_name(mac: str) -> str | None: """Lookup a Bluetooth device name.""" _LOGGER.debug("Scanning %s", mac) - return bluetooth.lookup_name(mac, timeout=5) # type: ignore[attr-defined,no-any-return] + return bluetooth.lookup_name(mac, timeout=5) # type: ignore[no-any-return] async def async_setup_scanner( @@ -180,7 +180,7 @@ async def async_setup_scanner( if tasks: await asyncio.wait(tasks) - except bluetooth.BluetoothError: # type: ignore[attr-defined] + except bluetooth.BluetoothError: _LOGGER.exception("Error looking up Bluetooth device") async def update_bluetooth(now: datetime | None = None) -> None: diff --git a/homeassistant/helpers/service_info/__init__.py b/homeassistant/helpers/service_info/__init__.py new file mode 100644 index 00000000000..b907fd9bbd1 --- /dev/null +++ b/homeassistant/helpers/service_info/__init__.py @@ -0,0 +1 @@ +"""Service info helpers.""" diff --git a/homeassistant/helpers/service_info/bluetooth.py b/homeassistant/helpers/service_info/bluetooth.py index d4d74a45be4..968d1dde95f 100644 --- a/homeassistant/helpers/service_info/bluetooth.py +++ b/homeassistant/helpers/service_info/bluetooth.py @@ -1,4 +1,4 @@ """The bluetooth integration service info.""" -from home_assistant_bluetooth import ( # pylint: disable=unused-import # noqa: F401 - BluetoothServiceInfo, -) +from home_assistant_bluetooth import BluetoothServiceInfo + +__all__ = ["BluetoothServiceInfo"] -- GitLab