Refactor async_setup_entry

This commit is contained in:
Pierre Ståhl
2020-10-04 23:23:17 +02:00
committed by rospogrigio
parent 29c852f96c
commit 8cc978a04d
7 changed files with 58 additions and 139 deletions

View File

@@ -39,6 +39,33 @@ def prepare_setup_entities(hass, config_entry, platform):
return tuyainterface, entities_to_setup
async def async_setup_entry(
domain, entity_class, hass, config_entry, async_add_entities
):
"""Set up a Tuya platform based on a config entry.
This is a generic method and each platform should lock domain and
entity_class with functools.partial.
"""
tuyainterface, entities_to_setup = prepare_setup_entities(
hass, config_entry, domain
)
if not entities_to_setup:
return
entities = []
for device_config in entities_to_setup:
entities.append(
entity_class(
tuyainterface,
config_entry,
device_config[CONF_ID],
)
)
async_add_entities(entities)
def get_entity_config(config_entry, dps_id):
"""Return entity config for a given DPS id."""
for entity in config_entry.data[CONF_ENTITIES]: