Skip to content

Commit

Permalink
Improve lists in integrations [A] (home-assistant#113006)
Browse files Browse the repository at this point in the history
* Use list comprehension [A]

* Use list comprehension [A]

* Update homeassistant/components/aws/notify.py
  • Loading branch information
joostlek committed Mar 11, 2024
1 parent bf40b33 commit 690ba10
Show file tree
Hide file tree
Showing 29 changed files with 269 additions and 299 deletions.
9 changes: 5 additions & 4 deletions homeassistant/components/acmeda/config_flow.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,13 @@ async def async_step_user(
entry.unique_id for entry in self._async_current_entries()
}

hubs: list[aiopulse.Hub] = []
with suppress(TimeoutError):
async with timeout(5):
async for hub in aiopulse.Hub.discover():
if hub.id not in already_configured:
hubs.append(hub)
hubs: list[aiopulse.Hub] = [
hub
async for hub in aiopulse.Hub.discover()
if hub.id not in already_configured
]

if not hubs:
return self.async_abort(reason="no_devices_found")
Expand Down
5 changes: 1 addition & 4 deletions homeassistant/components/advantage_air/select.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,8 @@ async def async_setup_entry(

instance: AdvantageAirData = hass.data[ADVANTAGE_AIR_DOMAIN][config_entry.entry_id]

entities: list[SelectEntity] = []
if aircons := instance.coordinator.data.get("aircons"):
for ac_key in aircons:
entities.append(AdvantageAirMyZone(instance, ac_key))
async_add_entities(entities)
async_add_entities(AdvantageAirMyZone(instance, ac_key) for ac_key in aircons)


class AdvantageAirMyZone(AdvantageAirAcEntity, SelectEntity):
Expand Down
8 changes: 5 additions & 3 deletions homeassistant/components/advantage_air/switch.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,11 @@ async def async_setup_entry(
if ADVANTAGE_AIR_AUTOFAN_ENABLED in ac_device["info"]:
entities.append(AdvantageAirMyFan(instance, ac_key))
if things := instance.coordinator.data.get("myThings"):
for thing in things["things"].values():
if thing["channelDipState"] == 8: # 8 = Other relay
entities.append(AdvantageAirRelay(instance, thing))
entities.extend(
AdvantageAirRelay(instance, thing)
for thing in things["things"].values()
if thing["channelDipState"] == 8 # 8 = Other relay
)
async_add_entities(entities)


Expand Down
24 changes: 10 additions & 14 deletions homeassistant/components/aemet/sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -368,20 +368,16 @@ async def async_setup_entry(
name: str = domain_data[ENTRY_NAME]
coordinator: WeatherUpdateCoordinator = domain_data[ENTRY_WEATHER_COORDINATOR]

entities: list[AemetSensor] = []

for description in FORECAST_SENSORS + WEATHER_SENSORS:
if dict_nested_value(coordinator.data["lib"], description.keys) is not None:
entities.append(
AemetSensor(
name,
coordinator,
description,
config_entry,
)
)

async_add_entities(entities)
async_add_entities(
AemetSensor(
name,
coordinator,
description,
config_entry,
)
for description in FORECAST_SENSORS + WEATHER_SENSORS
if dict_nested_value(coordinator.data["lib"], description.keys) is not None
)


class AemetSensor(AemetEntity, SensorEntity):
Expand Down
16 changes: 9 additions & 7 deletions homeassistant/components/airly/sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -181,13 +181,15 @@ async def async_setup_entry(

coordinator = hass.data[DOMAIN][entry.entry_id]

sensors = []
for description in SENSOR_TYPES:
# When we use the nearest method, we are not sure which sensors are available
if coordinator.data.get(description.key):
sensors.append(AirlySensor(coordinator, name, description))

async_add_entities(sensors, False)
async_add_entities(
(
AirlySensor(coordinator, name, description)
for description in SENSOR_TYPES
# When we use the nearest method, we are not sure which sensors are available
if coordinator.data.get(description.key)
),
False,
)


class AirlySensor(CoordinatorEntity[AirlyDataUpdateCoordinator], SensorEntity):
Expand Down
6 changes: 4 additions & 2 deletions homeassistant/components/airtouch5/climate.py
Original file line number Diff line number Diff line change
Expand Up @@ -109,8 +109,10 @@ async def async_setup_entry(
entities.append(Airtouch5AC(client, ac))

# Add each zone
for zone in client.zones:
entities.append(Airtouch5Zone(client, zone, zone_to_ac[zone.zone_number]))
entities.extend(
Airtouch5Zone(client, zone, zone_to_ac[zone.zone_number])
for zone in client.zones
)

async_add_entities(entities)

Expand Down
52 changes: 25 additions & 27 deletions homeassistant/components/airzone/binary_sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,33 +80,31 @@ async def async_setup_entry(
"""Add Airzone binary sensors from a config_entry."""
coordinator = hass.data[DOMAIN][entry.entry_id]

binary_sensors: list[AirzoneBinarySensor] = []

for system_id, system_data in coordinator.data[AZD_SYSTEMS].items():
for description in SYSTEM_BINARY_SENSOR_TYPES:
if description.key in system_data:
binary_sensors.append(
AirzoneSystemBinarySensor(
coordinator,
description,
entry,
system_id,
system_data,
)
)

for system_zone_id, zone_data in coordinator.data[AZD_ZONES].items():
for description in ZONE_BINARY_SENSOR_TYPES:
if description.key in zone_data:
binary_sensors.append(
AirzoneZoneBinarySensor(
coordinator,
description,
entry,
system_zone_id,
zone_data,
)
)
binary_sensors: list[AirzoneBinarySensor] = [
AirzoneSystemBinarySensor(
coordinator,
description,
entry,
system_id,
system_data,
)
for system_id, system_data in coordinator.data[AZD_SYSTEMS].items()
for description in SYSTEM_BINARY_SENSOR_TYPES
if description.key in system_data
]

binary_sensors.extend(
AirzoneZoneBinarySensor(
coordinator,
description,
entry,
system_zone_id,
zone_data,
)
for system_zone_id, zone_data in coordinator.data[AZD_ZONES].items()
for description in ZONE_BINARY_SENSOR_TYPES
if description.key in zone_data
)

async_add_entities(binary_sensors)

Expand Down
28 changes: 12 additions & 16 deletions homeassistant/components/airzone/select.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,22 +84,18 @@ async def async_setup_entry(
"""Add Airzone sensors from a config_entry."""
coordinator = hass.data[DOMAIN][entry.entry_id]

entities: list[AirzoneBaseSelect] = []

for system_zone_id, zone_data in coordinator.data[AZD_ZONES].items():
for description in ZONE_SELECT_TYPES:
if description.key in zone_data:
entities.append(
AirzoneZoneSelect(
coordinator,
description,
entry,
system_zone_id,
zone_data,
)
)

async_add_entities(entities)
async_add_entities(
AirzoneZoneSelect(
coordinator,
description,
entry,
system_zone_id,
zone_data,
)
for description in ZONE_SELECT_TYPES
for system_zone_id, zone_data in coordinator.data[AZD_ZONES].items()
if description.key in zone_data
)


class AirzoneBaseSelect(AirzoneEntity, SelectEntity):
Expand Down
64 changes: 30 additions & 34 deletions homeassistant/components/airzone/sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,44 +82,40 @@ async def async_setup_entry(
"""Add Airzone sensors from a config_entry."""
coordinator = hass.data[DOMAIN][entry.entry_id]

sensors: list[AirzoneSensor] = []
sensors: list[AirzoneSensor] = [
AirzoneZoneSensor(
coordinator,
description,
entry,
system_zone_id,
zone_data,
)
for system_zone_id, zone_data in coordinator.data[AZD_ZONES].items()
for description in ZONE_SENSOR_TYPES
if description.key in zone_data
]

if AZD_HOT_WATER in coordinator.data:
dhw_data = coordinator.data[AZD_HOT_WATER]
for description in HOT_WATER_SENSOR_TYPES:
if description.key in dhw_data:
sensors.append(
AirzoneHotWaterSensor(
coordinator,
description,
entry,
)
)
sensors.extend(
AirzoneHotWaterSensor(
coordinator,
description,
entry,
)
for description in HOT_WATER_SENSOR_TYPES
if description.key in coordinator.data[AZD_HOT_WATER]
)

if AZD_WEBSERVER in coordinator.data:
ws_data = coordinator.data[AZD_WEBSERVER]
for description in WEBSERVER_SENSOR_TYPES:
if description.key in ws_data:
sensors.append(
AirzoneWebServerSensor(
coordinator,
description,
entry,
)
)

for system_zone_id, zone_data in coordinator.data[AZD_ZONES].items():
for description in ZONE_SENSOR_TYPES:
if description.key in zone_data:
sensors.append(
AirzoneZoneSensor(
coordinator,
description,
entry,
system_zone_id,
zone_data,
)
)
sensors.extend(
AirzoneWebServerSensor(
coordinator,
description,
entry,
)
for description in WEBSERVER_SENSOR_TYPES
if description.key in coordinator.data[AZD_WEBSERVER]
)

async_add_entities(sensors)

Expand Down
72 changes: 35 additions & 37 deletions homeassistant/components/airzone_cloud/binary_sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,43 +99,41 @@ async def async_setup_entry(
"""Add Airzone Cloud binary sensors from a config_entry."""
coordinator: AirzoneUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]

binary_sensors: list[AirzoneBinarySensor] = []

for aidoo_id, aidoo_data in coordinator.data.get(AZD_AIDOOS, {}).items():
for description in AIDOO_BINARY_SENSOR_TYPES:
if description.key in aidoo_data:
binary_sensors.append(
AirzoneAidooBinarySensor(
coordinator,
description,
aidoo_id,
aidoo_data,
)
)

for system_id, system_data in coordinator.data.get(AZD_SYSTEMS, {}).items():
for description in SYSTEM_BINARY_SENSOR_TYPES:
if description.key in system_data:
binary_sensors.append(
AirzoneSystemBinarySensor(
coordinator,
description,
system_id,
system_data,
)
)

for zone_id, zone_data in coordinator.data.get(AZD_ZONES, {}).items():
for description in ZONE_BINARY_SENSOR_TYPES:
if description.key in zone_data:
binary_sensors.append(
AirzoneZoneBinarySensor(
coordinator,
description,
zone_id,
zone_data,
)
)
binary_sensors: list[AirzoneBinarySensor] = [
AirzoneAidooBinarySensor(
coordinator,
description,
aidoo_id,
aidoo_data,
)
for aidoo_id, aidoo_data in coordinator.data.get(AZD_AIDOOS, {}).items()
for description in AIDOO_BINARY_SENSOR_TYPES
if description.key in aidoo_data
]

binary_sensors.extend(
AirzoneSystemBinarySensor(
coordinator,
description,
system_id,
system_data,
)
for system_id, system_data in coordinator.data.get(AZD_SYSTEMS, {}).items()
for description in SYSTEM_BINARY_SENSOR_TYPES
if description.key in system_data
)

binary_sensors.extend(
AirzoneZoneBinarySensor(
coordinator,
description,
zone_id,
zone_data,
)
for zone_id, zone_data in coordinator.data.get(AZD_ZONES, {}).items()
for description in ZONE_BINARY_SENSOR_TYPES
if description.key in zone_data
)

async_add_entities(binary_sensors)

Expand Down
Loading

0 comments on commit 690ba10

Please sign in to comment.