Replace async_timeout with asyncio.timeout A-B (#98415)

This commit is contained in:
J. Nick Koston 2023-08-15 03:29:28 -05:00 committed by GitHub
parent eb4745012a
commit 262483f3f6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
27 changed files with 52 additions and 55 deletions

View File

@ -1,6 +1,7 @@
"""The AccuWeather component.""" """The AccuWeather component."""
from __future__ import annotations from __future__ import annotations
from asyncio import timeout
from datetime import timedelta from datetime import timedelta
import logging import logging
from typing import Any from typing import Any
@ -8,7 +9,6 @@ from typing import Any
from accuweather import AccuWeather, ApiError, InvalidApiKeyError, RequestsExceededError from accuweather import AccuWeather, ApiError, InvalidApiKeyError, RequestsExceededError
from aiohttp import ClientSession from aiohttp import ClientSession
from aiohttp.client_exceptions import ClientConnectorError from aiohttp.client_exceptions import ClientConnectorError
from async_timeout import timeout
from homeassistant.components.sensor import DOMAIN as SENSOR_PLATFORM from homeassistant.components.sensor import DOMAIN as SENSOR_PLATFORM
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry

View File

@ -2,12 +2,12 @@
from __future__ import annotations from __future__ import annotations
import asyncio import asyncio
from asyncio import timeout
from typing import Any from typing import Any
from accuweather import AccuWeather, ApiError, InvalidApiKeyError, RequestsExceededError from accuweather import AccuWeather, ApiError, InvalidApiKeyError, RequestsExceededError
from aiohttp import ClientError from aiohttp import ClientError
from aiohttp.client_exceptions import ClientConnectorError from aiohttp.client_exceptions import ClientConnectorError
from async_timeout import timeout
import voluptuous as vol import voluptuous as vol
from homeassistant import config_entries from homeassistant import config_entries

View File

@ -2,11 +2,11 @@
from __future__ import annotations from __future__ import annotations
import asyncio import asyncio
from asyncio import timeout
from contextlib import suppress from contextlib import suppress
from typing import Any from typing import Any
import aiopulse import aiopulse
import async_timeout
import voluptuous as vol import voluptuous as vol
from homeassistant import config_entries from homeassistant import config_entries
@ -43,7 +43,7 @@ class AcmedaFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
hubs: list[aiopulse.Hub] = [] hubs: list[aiopulse.Hub] = []
with suppress(asyncio.TimeoutError): with suppress(asyncio.TimeoutError):
async with async_timeout.timeout(5): async with timeout(5):
async for hub in aiopulse.Hub.discover(): async for hub in aiopulse.Hub.discover():
if hub.id not in already_configured: if hub.id not in already_configured:
hubs.append(hub) hubs.append(hub)

View File

@ -1,12 +1,12 @@
"""Support for Automation Device Specification (ADS).""" """Support for Automation Device Specification (ADS)."""
import asyncio import asyncio
from asyncio import timeout
from collections import namedtuple from collections import namedtuple
import ctypes import ctypes
import logging import logging
import struct import struct
import threading import threading
import async_timeout
import pyads import pyads
import voluptuous as vol import voluptuous as vol
@ -301,7 +301,7 @@ class AdsEntity(Entity):
self._ads_hub.add_device_notification, ads_var, plctype, update self._ads_hub.add_device_notification, ads_var, plctype, update
) )
try: try:
async with async_timeout.timeout(10): async with timeout(10):
await self._event.wait() await self._event.wait()
except asyncio.TimeoutError: except asyncio.TimeoutError:
_LOGGER.debug("Variable %s: Timeout during first update", ads_var) _LOGGER.debug("Variable %s: Timeout during first update", ads_var)

View File

@ -1,6 +1,7 @@
"""Weather data coordinator for the AEMET OpenData service.""" """Weather data coordinator for the AEMET OpenData service."""
from __future__ import annotations from __future__ import annotations
from asyncio import timeout
from dataclasses import dataclass, field from dataclasses import dataclass, field
from datetime import timedelta from datetime import timedelta
import logging import logging
@ -41,7 +42,6 @@ from aemet_opendata.helpers import (
get_forecast_hour_value, get_forecast_hour_value,
get_forecast_interval_value, get_forecast_interval_value,
) )
import async_timeout
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from homeassistant.util import dt as dt_util from homeassistant.util import dt as dt_util
@ -139,7 +139,7 @@ class WeatherUpdateCoordinator(DataUpdateCoordinator):
async def _async_update_data(self): async def _async_update_data(self):
data = {} data = {}
async with async_timeout.timeout(120): async with timeout(120):
weather_response = await self._get_aemet_weather() weather_response = await self._get_aemet_weather()
data = self._convert_weather_response(weather_response) data = self._convert_weather_response(weather_response)
return data return data

View File

@ -1,6 +1,7 @@
"""The Airly integration.""" """The Airly integration."""
from __future__ import annotations from __future__ import annotations
from asyncio import timeout
from datetime import timedelta from datetime import timedelta
import logging import logging
from math import ceil from math import ceil
@ -9,7 +10,6 @@ from aiohttp import ClientSession
from aiohttp.client_exceptions import ClientConnectorError from aiohttp.client_exceptions import ClientConnectorError
from airly import Airly from airly import Airly
from airly.exceptions import AirlyError from airly.exceptions import AirlyError
import async_timeout
from homeassistant.components.air_quality import DOMAIN as AIR_QUALITY_PLATFORM from homeassistant.components.air_quality import DOMAIN as AIR_QUALITY_PLATFORM
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
@ -167,7 +167,7 @@ class AirlyDataUpdateCoordinator(DataUpdateCoordinator):
measurements = self.airly.create_measurements_session_point( measurements = self.airly.create_measurements_session_point(
self.latitude, self.longitude self.latitude, self.longitude
) )
async with async_timeout.timeout(20): async with timeout(20):
try: try:
await measurements.update() await measurements.update()
except (AirlyError, ClientConnectorError) as error: except (AirlyError, ClientConnectorError) as error:

View File

@ -1,13 +1,13 @@
"""Adds config flow for Airly.""" """Adds config flow for Airly."""
from __future__ import annotations from __future__ import annotations
from asyncio import timeout
from http import HTTPStatus from http import HTTPStatus
from typing import Any from typing import Any
from aiohttp import ClientSession from aiohttp import ClientSession
from airly import Airly from airly import Airly
from airly.exceptions import AirlyError from airly.exceptions import AirlyError
import async_timeout
import voluptuous as vol import voluptuous as vol
from homeassistant import config_entries from homeassistant import config_entries
@ -105,7 +105,7 @@ async def test_location(
measurements = airly.create_measurements_session_point( measurements = airly.create_measurements_session_point(
latitude=latitude, longitude=longitude latitude=latitude, longitude=longitude
) )
async with async_timeout.timeout(10): async with timeout(10):
await measurements.update() await measurements.update()
current = measurements.current current = measurements.current

View File

@ -1,13 +1,13 @@
"""The Airzone integration.""" """The Airzone integration."""
from __future__ import annotations from __future__ import annotations
from asyncio import timeout
from datetime import timedelta from datetime import timedelta
import logging import logging
from typing import Any from typing import Any
from aioairzone.exceptions import AirzoneError from aioairzone.exceptions import AirzoneError
from aioairzone.localapi import AirzoneLocalApi from aioairzone.localapi import AirzoneLocalApi
import async_timeout
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
@ -35,7 +35,7 @@ class AirzoneUpdateCoordinator(DataUpdateCoordinator[dict[str, Any]]):
async def _async_update_data(self) -> dict[str, Any]: async def _async_update_data(self) -> dict[str, Any]:
"""Update data via library.""" """Update data via library."""
async with async_timeout.timeout(AIOAIRZONE_DEVICE_TIMEOUT_SEC): async with timeout(AIOAIRZONE_DEVICE_TIMEOUT_SEC):
try: try:
await self.airzone.update() await self.airzone.update()
except AirzoneError as error: except AirzoneError as error:

View File

@ -1,13 +1,13 @@
"""The Airzone Cloud integration coordinator.""" """The Airzone Cloud integration coordinator."""
from __future__ import annotations from __future__ import annotations
from asyncio import timeout
from datetime import timedelta from datetime import timedelta
import logging import logging
from typing import Any from typing import Any
from aioairzone_cloud.cloudapi import AirzoneCloudApi from aioairzone_cloud.cloudapi import AirzoneCloudApi
from aioairzone_cloud.exceptions import AirzoneCloudError from aioairzone_cloud.exceptions import AirzoneCloudError
import async_timeout
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
@ -35,7 +35,7 @@ class AirzoneUpdateCoordinator(DataUpdateCoordinator[dict[str, Any]]):
async def _async_update_data(self) -> dict[str, Any]: async def _async_update_data(self) -> dict[str, Any]:
"""Update data via library.""" """Update data via library."""
async with async_timeout.timeout(AIOAIRZONE_CLOUD_TIMEOUT_SEC): async with timeout(AIOAIRZONE_CLOUD_TIMEOUT_SEC):
try: try:
await self.airzone.update() await self.airzone.update()
except AirzoneCloudError as error: except AirzoneCloudError as error:

View File

@ -1,5 +1,6 @@
"""Support for Alexa skill auth.""" """Support for Alexa skill auth."""
import asyncio import asyncio
from asyncio import timeout
from datetime import datetime, timedelta from datetime import datetime, timedelta
from http import HTTPStatus from http import HTTPStatus
import json import json
@ -7,7 +8,6 @@ import logging
from typing import Any from typing import Any
import aiohttp import aiohttp
import async_timeout
from homeassistant.const import CONF_CLIENT_ID, CONF_CLIENT_SECRET from homeassistant.const import CONF_CLIENT_ID, CONF_CLIENT_SECRET
from homeassistant.core import HomeAssistant, callback from homeassistant.core import HomeAssistant, callback
@ -113,7 +113,7 @@ class Auth:
async def _async_request_new_token(self, lwa_params: dict[str, str]) -> str | None: async def _async_request_new_token(self, lwa_params: dict[str, str]) -> str | None:
try: try:
session = aiohttp_client.async_get_clientsession(self.hass) session = aiohttp_client.async_get_clientsession(self.hass)
async with async_timeout.timeout(10): async with timeout(10):
response = await session.post( response = await session.post(
LWA_TOKEN_URI, LWA_TOKEN_URI,
headers=LWA_HEADERS, headers=LWA_HEADERS,

View File

@ -2,6 +2,7 @@
from __future__ import annotations from __future__ import annotations
import asyncio import asyncio
from asyncio import timeout
from http import HTTPStatus from http import HTTPStatus
import json import json
import logging import logging
@ -10,7 +11,6 @@ from typing import TYPE_CHECKING, Any, cast
from uuid import uuid4 from uuid import uuid4
import aiohttp import aiohttp
import async_timeout
from homeassistant.components import event from homeassistant.components import event
from homeassistant.const import MATCH_ALL, STATE_ON from homeassistant.const import MATCH_ALL, STATE_ON
@ -364,7 +364,7 @@ async def async_send_changereport_message(
assert config.endpoint is not None assert config.endpoint is not None
try: try:
async with async_timeout.timeout(DEFAULT_TIMEOUT): async with timeout(DEFAULT_TIMEOUT):
response = await session.post( response = await session.post(
config.endpoint, config.endpoint,
headers=headers, headers=headers,
@ -517,7 +517,7 @@ async def async_send_doorbell_event_message(
assert config.endpoint is not None assert config.endpoint is not None
try: try:
async with async_timeout.timeout(DEFAULT_TIMEOUT): async with timeout(DEFAULT_TIMEOUT):
response = await session.post( response = await session.post(
config.endpoint, config.endpoint,
headers=headers, headers=headers,

View File

@ -2,13 +2,13 @@
from __future__ import annotations from __future__ import annotations
import asyncio import asyncio
from asyncio import timeout
from dataclasses import asdict as dataclass_asdict, dataclass from dataclasses import asdict as dataclass_asdict, dataclass
from datetime import datetime from datetime import datetime
from typing import Any from typing import Any
import uuid import uuid
import aiohttp import aiohttp
import async_timeout
from homeassistant.components import hassio from homeassistant.components import hassio
from homeassistant.components.api import ATTR_INSTALLATION_TYPE from homeassistant.components.api import ATTR_INSTALLATION_TYPE
@ -313,7 +313,7 @@ class Analytics:
) )
try: try:
async with async_timeout.timeout(30): async with timeout(30):
response = await self.session.post(self.endpoint, json=payload) response = await self.session.post(self.endpoint, json=payload)
if response.status == 200: if response.status == 200:
LOGGER.info( LOGGER.info(

View File

@ -2,6 +2,7 @@
from __future__ import annotations from __future__ import annotations
import asyncio import asyncio
from asyncio import timeout
import logging import logging
from androidtvremote2 import ( from androidtvremote2 import (
@ -10,7 +11,6 @@ from androidtvremote2 import (
ConnectionClosed, ConnectionClosed,
InvalidAuth, InvalidAuth,
) )
import async_timeout
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_HOST, CONF_NAME, EVENT_HOMEASSISTANT_STOP, Platform from homeassistant.const import CONF_HOST, CONF_NAME, EVENT_HOMEASSISTANT_STOP, Platform
@ -45,7 +45,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
api.add_is_available_updated_callback(is_available_updated) api.add_is_available_updated_callback(is_available_updated)
try: try:
async with async_timeout.timeout(5.0): async with timeout(5.0):
await api.async_connect() await api.async_connect()
except InvalidAuth as exc: except InvalidAuth as exc:
# The Android TV is hard reset or the certificate and key files were deleted. # The Android TV is hard reset or the certificate and key files were deleted.

View File

@ -1,9 +1,9 @@
"""Support for Anova Coordinators.""" """Support for Anova Coordinators."""
from asyncio import timeout
from datetime import timedelta from datetime import timedelta
import logging import logging
from anova_wifi import AnovaOffline, AnovaPrecisionCooker, APCUpdate from anova_wifi import AnovaOffline, AnovaPrecisionCooker, APCUpdate
import async_timeout
from homeassistant.core import HomeAssistant, callback from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.device_registry import DeviceInfo from homeassistant.helpers.device_registry import DeviceInfo
@ -47,7 +47,7 @@ class AnovaCoordinator(DataUpdateCoordinator[APCUpdate]):
async def _async_update_data(self) -> APCUpdate: async def _async_update_data(self) -> APCUpdate:
try: try:
async with async_timeout.timeout(5): async with timeout(5):
return await self.anova_device.update() return await self.anova_device.update()
except AnovaOffline as err: except AnovaOffline as err:
raise UpdateFailed(err) from err raise UpdateFailed(err) from err

View File

@ -1,12 +1,12 @@
"""Rest API for Home Assistant.""" """Rest API for Home Assistant."""
import asyncio import asyncio
from asyncio import timeout
from functools import lru_cache from functools import lru_cache
from http import HTTPStatus from http import HTTPStatus
import logging import logging
from aiohttp import web from aiohttp import web
from aiohttp.web_exceptions import HTTPBadRequest from aiohttp.web_exceptions import HTTPBadRequest
import async_timeout
import voluptuous as vol import voluptuous as vol
from homeassistant.auth.permissions.const import POLICY_READ from homeassistant.auth.permissions.const import POLICY_READ
@ -148,7 +148,7 @@ class APIEventStream(HomeAssistantView):
while True: while True:
try: try:
async with async_timeout.timeout(STREAM_PING_INTERVAL): async with timeout(STREAM_PING_INTERVAL):
payload = await to_write.get() payload = await to_write.get()
if payload is stop_obj: if payload is stop_obj:

View File

@ -1,11 +1,11 @@
"""Arcam component.""" """Arcam component."""
import asyncio import asyncio
from asyncio import timeout
import logging import logging
from typing import Any from typing import Any
from arcam.fmj import ConnectionFailed from arcam.fmj import ConnectionFailed
from arcam.fmj.client import Client from arcam.fmj.client import Client
import async_timeout
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_HOST, CONF_PORT, Platform from homeassistant.const import CONF_HOST, CONF_PORT, Platform
@ -66,7 +66,7 @@ async def _run_client(hass: HomeAssistant, client: Client, interval: float) -> N
while True: while True:
try: try:
async with async_timeout.timeout(interval): async with timeout(interval):
await client.start() await client.start()
_LOGGER.debug("Client connected %s", client.host) _LOGGER.debug("Client connected %s", client.host)

View File

@ -7,7 +7,6 @@ from collections.abc import AsyncGenerator, Callable
import logging import logging
from typing import Any from typing import Any
import async_timeout
import voluptuous as vol import voluptuous as vol
from homeassistant.components import conversation, stt, tts, websocket_api from homeassistant.components import conversation, stt, tts, websocket_api
@ -207,7 +206,7 @@ async def websocket_run(
try: try:
# Task contains a timeout # Task contains a timeout
async with async_timeout.timeout(timeout): async with asyncio.timeout(timeout):
await run_task await run_task
except asyncio.TimeoutError: except asyncio.TimeoutError:
pipeline_input.run.process_event( pipeline_input.run.process_event(

View File

@ -1,8 +1,8 @@
"""The ATAG Integration.""" """The ATAG Integration."""
from asyncio import timeout
from datetime import timedelta from datetime import timedelta
import logging import logging
import async_timeout
from pyatag import AtagException, AtagOne from pyatag import AtagException, AtagOne
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
@ -27,7 +27,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
async def _async_update_data(): async def _async_update_data():
"""Update data via library.""" """Update data via library."""
async with async_timeout.timeout(20): async with timeout(20):
try: try:
await atag.update() await atag.update()
except AtagException as err: except AtagException as err:

View File

@ -1,12 +1,11 @@
"""The awair component.""" """The awair component."""
from __future__ import annotations from __future__ import annotations
from asyncio import gather from asyncio import gather, timeout
from dataclasses import dataclass from dataclasses import dataclass
from datetime import timedelta from datetime import timedelta
from aiohttp import ClientSession from aiohttp import ClientSession
from async_timeout import timeout
from python_awair import Awair, AwairLocal from python_awair import Awair, AwairLocal
from python_awair.air_data import AirData from python_awair.air_data import AirData
from python_awair.devices import AwairBaseDevice, AwairLocalDevice from python_awair.devices import AwairBaseDevice, AwairLocalDevice

View File

@ -1,10 +1,10 @@
"""Axis network device abstraction.""" """Axis network device abstraction."""
import asyncio import asyncio
from asyncio import timeout
from types import MappingProxyType from types import MappingProxyType
from typing import Any from typing import Any
import async_timeout
import axis import axis
from axis.configuration import Configuration from axis.configuration import Configuration
from axis.errors import Unauthorized from axis.errors import Unauthorized
@ -253,7 +253,7 @@ async def get_axis_device(
) )
try: try:
async with async_timeout.timeout(30): async with timeout(30):
await device.vapix.initialize() await device.vapix.initialize()
return device return device

View File

@ -2,10 +2,10 @@
from __future__ import annotations from __future__ import annotations
import asyncio import asyncio
from asyncio import timeout
from aiobafi6 import Device, Service from aiobafi6 import Device, Service
from aiobafi6.discovery import PORT from aiobafi6.discovery import PORT
import async_timeout
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_IP_ADDRESS, Platform from homeassistant.const import CONF_IP_ADDRESS, Platform
@ -35,7 +35,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
run_future = device.async_run() run_future = device.async_run()
try: try:
async with async_timeout.timeout(RUN_TIMEOUT): async with timeout(RUN_TIMEOUT):
await device.async_wait_available() await device.async_wait_available()
except asyncio.TimeoutError as ex: except asyncio.TimeoutError as ex:
run_future.cancel() run_future.cancel()

View File

@ -2,12 +2,12 @@
from __future__ import annotations from __future__ import annotations
import asyncio import asyncio
from asyncio import timeout
import logging import logging
from typing import Any from typing import Any
from aiobafi6 import Device, Service from aiobafi6 import Device, Service
from aiobafi6.discovery import PORT from aiobafi6.discovery import PORT
import async_timeout
import voluptuous as vol import voluptuous as vol
from homeassistant import config_entries from homeassistant import config_entries
@ -27,7 +27,7 @@ async def async_try_connect(ip_address: str) -> Device:
device = Device(Service(ip_addresses=[ip_address], port=PORT)) device = Device(Service(ip_addresses=[ip_address], port=PORT))
run_future = device.async_run() run_future = device.async_run()
try: try:
async with async_timeout.timeout(RUN_TIMEOUT): async with timeout(RUN_TIMEOUT):
await device.async_wait_available() await device.async_wait_available()
except asyncio.TimeoutError as ex: except asyncio.TimeoutError as ex:
raise CannotConnect from ex raise CannotConnect from ex

View File

@ -2,7 +2,7 @@
from __future__ import annotations from __future__ import annotations
import asyncio import asyncio
from asyncio import CancelledError from asyncio import CancelledError, timeout
from datetime import timedelta from datetime import timedelta
from http import HTTPStatus from http import HTTPStatus
import logging import logging
@ -12,7 +12,6 @@ from urllib import parse
import aiohttp import aiohttp
from aiohttp.client_exceptions import ClientError from aiohttp.client_exceptions import ClientError
from aiohttp.hdrs import CONNECTION, KEEP_ALIVE from aiohttp.hdrs import CONNECTION, KEEP_ALIVE
import async_timeout
import voluptuous as vol import voluptuous as vol
import xmltodict import xmltodict
@ -355,7 +354,7 @@ class BluesoundPlayer(MediaPlayerEntity):
try: try:
websession = async_get_clientsession(self._hass) websession = async_get_clientsession(self._hass)
async with async_timeout.timeout(10): async with timeout(10):
response = await websession.get(url) response = await websession.get(url)
if response.status == HTTPStatus.OK: if response.status == HTTPStatus.OK:
@ -396,7 +395,7 @@ class BluesoundPlayer(MediaPlayerEntity):
_LOGGER.debug("Calling URL: %s", url) _LOGGER.debug("Calling URL: %s", url)
try: try:
async with async_timeout.timeout(125): async with timeout(125):
response = await self._polling_session.get( response = await self._polling_session.get(
url, headers={CONNECTION: KEEP_ALIVE} url, headers={CONNECTION: KEEP_ALIVE}
) )

View File

@ -4,11 +4,11 @@ These APIs are the only documented way to interact with the bluetooth integratio
""" """
from __future__ import annotations from __future__ import annotations
import asyncio
from asyncio import Future from asyncio import Future
from collections.abc import Callable, Iterable from collections.abc import Callable, Iterable
from typing import TYPE_CHECKING, cast from typing import TYPE_CHECKING, cast
import async_timeout
from home_assistant_bluetooth import BluetoothServiceInfoBleak from home_assistant_bluetooth import BluetoothServiceInfoBleak
from homeassistant.core import CALLBACK_TYPE, HomeAssistant, callback as hass_callback from homeassistant.core import CALLBACK_TYPE, HomeAssistant, callback as hass_callback
@ -152,7 +152,7 @@ async def async_process_advertisements(
) )
try: try:
async with async_timeout.timeout(timeout): async with asyncio.timeout(timeout):
return await done return await done
finally: finally:
unload() unload()

View File

@ -1,10 +1,10 @@
"""The Brother component.""" """The Brother component."""
from __future__ import annotations from __future__ import annotations
from asyncio import timeout
from datetime import timedelta from datetime import timedelta
import logging import logging
import async_timeout
from brother import Brother, BrotherSensors, SnmpError, UnsupportedModelError from brother import Brother, BrotherSensors, SnmpError, UnsupportedModelError
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
@ -79,7 +79,7 @@ class BrotherDataUpdateCoordinator(DataUpdateCoordinator[BrotherSensors]):
async def _async_update_data(self) -> BrotherSensors: async def _async_update_data(self) -> BrotherSensors:
"""Update data via library.""" """Update data via library."""
try: try:
async with async_timeout.timeout(20): async with timeout(20):
data = await self.brother.async_update() data = await self.brother.async_update()
except (ConnectionError, SnmpError, UnsupportedModelError) as error: except (ConnectionError, SnmpError, UnsupportedModelError) as error:
raise UpdateFailed(error) from error raise UpdateFailed(error) from error

View File

@ -1,10 +1,10 @@
"""The brunt component.""" """The brunt component."""
from __future__ import annotations from __future__ import annotations
from asyncio import timeout
import logging import logging
from aiohttp.client_exceptions import ClientResponseError, ServerDisconnectedError from aiohttp.client_exceptions import ClientResponseError, ServerDisconnectedError
import async_timeout
from brunt import BruntClientAsync, Thing from brunt import BruntClientAsync, Thing
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
@ -43,7 +43,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
Error 401 is the API response for things that are not part of the account, could happen when a device is deleted from the account. Error 401 is the API response for things that are not part of the account, could happen when a device is deleted from the account.
""" """
try: try:
async with async_timeout.timeout(10): async with timeout(10):
things = await bapi.async_get_things(force=True) things = await bapi.async_get_things(force=True)
return {thing.serial: thing for thing in things} return {thing.serial: thing for thing in things}
except ServerDisconnectedError as err: except ServerDisconnectedError as err:

View File

@ -1,11 +1,11 @@
"""Shared utilities for different supported platforms.""" """Shared utilities for different supported platforms."""
import asyncio import asyncio
from asyncio import timeout
from datetime import datetime, timedelta from datetime import datetime, timedelta
from http import HTTPStatus from http import HTTPStatus
import logging import logging
import aiohttp import aiohttp
import async_timeout
from buienradar.buienradar import parse_data from buienradar.buienradar import parse_data
from buienradar.constants import ( from buienradar.constants import (
ATTRIBUTION, ATTRIBUTION,
@ -92,7 +92,7 @@ class BrData:
resp = None resp = None
try: try:
websession = async_get_clientsession(self.hass) websession = async_get_clientsession(self.hass)
async with async_timeout.timeout(10): async with timeout(10):
resp = await websession.get(url) resp = await websession.get(url)
result[STATUS_CODE] = resp.status result[STATUS_CODE] = resp.status