Move faa_delays coordinator to its own file (#100548)

pull/100636/head
Jan-Philipp Benecke 2023-09-20 08:59:49 +02:00 committed by GitHub
parent 03af467918
commit 7af62c35f5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 37 additions and 32 deletions

View File

@ -357,6 +357,7 @@ omit =
homeassistant/components/ezviz/update.py
homeassistant/components/faa_delays/__init__.py
homeassistant/components/faa_delays/binary_sensor.py
homeassistant/components/faa_delays/coordinator.py
homeassistant/components/familyhub/camera.py
homeassistant/components/fastdotcom/*
homeassistant/components/ffmpeg/camera.py

View File

@ -1,20 +1,10 @@
"""The FAA Delays integration."""
import asyncio
from datetime import timedelta
import logging
from aiohttp import ClientConnectionError
from faadelays import Airport
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_ID, Platform
from homeassistant.core import HomeAssistant
from homeassistant.helpers import aiohttp_client
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from .const import DOMAIN
_LOGGER = logging.getLogger(__name__)
from .coordinator import FAADataUpdateCoordinator
PLATFORMS = [Platform.BINARY_SENSOR]
@ -40,24 +30,3 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
if unload_ok:
hass.data[DOMAIN].pop(entry.entry_id)
return unload_ok
class FAADataUpdateCoordinator(DataUpdateCoordinator):
"""Class to manage fetching FAA API data from a single endpoint."""
def __init__(self, hass, code):
"""Initialize the coordinator."""
super().__init__(
hass, _LOGGER, name=DOMAIN, update_interval=timedelta(minutes=1)
)
self.session = aiohttp_client.async_get_clientsession(hass)
self.data = Airport(code, self.session)
self.code = code
async def _async_update_data(self):
try:
async with asyncio.timeout(10):
await self.data.update()
except ClientConnectionError as err:
raise UpdateFailed(err) from err
return self.data

View File

@ -0,0 +1,35 @@
"""DataUpdateCoordinator for faa_delays integration."""
import asyncio
from datetime import timedelta
import logging
from aiohttp import ClientConnectionError
from faadelays import Airport
from homeassistant.helpers import aiohttp_client
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from .const import DOMAIN
_LOGGER = logging.getLogger(__name__)
class FAADataUpdateCoordinator(DataUpdateCoordinator):
"""Class to manage fetching FAA API data from a single endpoint."""
def __init__(self, hass, code):
"""Initialize the coordinator."""
super().__init__(
hass, _LOGGER, name=DOMAIN, update_interval=timedelta(minutes=1)
)
self.session = aiohttp_client.async_get_clientsession(hass)
self.data = Airport(code, self.session)
self.code = code
async def _async_update_data(self):
try:
async with asyncio.timeout(10):
await self.data.update()
except ClientConnectionError as err:
raise UpdateFailed(err) from err
return self.data