diff --git a/script/scaffold/templates/config_flow/integration/__init__.py b/script/scaffold/templates/config_flow/integration/__init__.py index 87391f1733e..0b752e71013 100644 --- a/script/scaffold/templates/config_flow/integration/__init__.py +++ b/script/scaffold/templates/config_flow/integration/__init__.py @@ -6,30 +6,30 @@ from homeassistant.config_entries import ConfigEntry from homeassistant.const import Platform from homeassistant.core import HomeAssistant -from .const import DOMAIN - # TODO List the platforms that you want to support. # For your initial PR, limit it to 1 platform. PLATFORMS: list[Platform] = [Platform.LIGHT] +# TODO Create ConfigEntry type alias with API object +# TODO Rename type alias and update all entry annotations +type New_NameConfigEntry = ConfigEntry[MyApi] # noqa: F821 -async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: + +# TODO Update entry annotation +async def async_setup_entry(hass: HomeAssistant, entry: New_NameConfigEntry) -> bool: """Set up NEW_NAME from a config entry.""" - hass.data.setdefault(DOMAIN, {}) # TODO 1. Create API instance # TODO 2. Validate the API connection (and authentication) # TODO 3. Store an API object for your platforms to access - # hass.data[DOMAIN][entry.entry_id] = MyApi(...) + # entry.runtime_data = MyAPI(...) await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS) return True -async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: +# TODO Update entry annotation +async def async_unload_entry(hass: HomeAssistant, entry: New_NameConfigEntry) -> bool: """Unload a config entry.""" - if unload_ok := await hass.config_entries.async_unload_platforms(entry, PLATFORMS): - hass.data[DOMAIN].pop(entry.entry_id) - - return unload_ok + return await hass.config_entries.async_unload_platforms(entry, PLATFORMS) diff --git a/script/scaffold/templates/config_flow_discovery/integration/__init__.py b/script/scaffold/templates/config_flow_discovery/integration/__init__.py index 4d18fecc2fa..06b91f51949 100644 --- a/script/scaffold/templates/config_flow_discovery/integration/__init__.py +++ b/script/scaffold/templates/config_flow_discovery/integration/__init__.py @@ -6,30 +6,30 @@ from homeassistant.config_entries import ConfigEntry from homeassistant.const import Platform from homeassistant.core import HomeAssistant -from .const import DOMAIN - # TODO List the platforms that you want to support. # For your initial PR, limit it to 1 platform. PLATFORMS: list[Platform] = [Platform.BINARY_SENSOR] +# TODO Create ConfigEntry type alias with API object +# Alias name should be prefixed by integration name +type New_NameConfigEntry = ConfigEntry[MyApi] # noqa: F821 + +# TODO Update entry annotation async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: """Set up NEW_NAME from a config entry.""" - hass.data.setdefault(DOMAIN, {}) # TODO 1. Create API instance # TODO 2. Validate the API connection (and authentication) # TODO 3. Store an API object for your platforms to access - # hass.data[DOMAIN][entry.entry_id] = MyApi(...) + # entry.runtime_data = MyAPI(...) await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS) return True +# TODO Update entry annotation async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: """Unload a config entry.""" - if unload_ok := await hass.config_entries.async_unload_platforms(entry, PLATFORMS): - hass.data[DOMAIN].pop(entry.entry_id) - - return unload_ok + return await hass.config_entries.async_unload_platforms(entry, PLATFORMS) diff --git a/script/scaffold/templates/config_flow_helper/integration/__init__.py b/script/scaffold/templates/config_flow_helper/integration/__init__.py index c8817fb76ad..e508e3b9869 100644 --- a/script/scaffold/templates/config_flow_helper/integration/__init__.py +++ b/script/scaffold/templates/config_flow_helper/integration/__init__.py @@ -6,13 +6,11 @@ from homeassistant.config_entries import ConfigEntry from homeassistant.const import Platform from homeassistant.core import HomeAssistant -from .const import DOMAIN - async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: """Set up NEW_NAME from a config entry.""" # TODO Optionally store an object for your platforms to access - # hass.data.setdefault(DOMAIN, {})[entry.entry_id] = ... + # entry.runtime_data = ... # TODO Optionally validate config entry options before setting up platform @@ -32,9 +30,4 @@ async def config_entry_update_listener(hass: HomeAssistant, entry: ConfigEntry) async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: """Unload a config entry.""" - if unload_ok := await hass.config_entries.async_unload_platforms( - entry, (Platform.SENSOR,) - ): - hass.data[DOMAIN].pop(entry.entry_id) - - return unload_ok + return await hass.config_entries.async_unload_platforms(entry, (Platform.SENSOR,)) diff --git a/script/scaffold/templates/config_flow_oauth2/integration/__init__.py b/script/scaffold/templates/config_flow_oauth2/integration/__init__.py index 7e7641a535b..b8403392471 100644 --- a/script/scaffold/templates/config_flow_oauth2/integration/__init__.py +++ b/script/scaffold/templates/config_flow_oauth2/integration/__init__.py @@ -8,14 +8,18 @@ from homeassistant.core import HomeAssistant from homeassistant.helpers import aiohttp_client, config_entry_oauth2_flow from . import api -from .const import DOMAIN # TODO List the platforms that you want to support. # For your initial PR, limit it to 1 platform. PLATFORMS: list[Platform] = [Platform.LIGHT] +# TODO Create ConfigEntry type alias with ConfigEntryAuth or AsyncConfigEntryAuth object +# TODO Rename type alias and update all entry annotations +type New_NameConfigEntry = ConfigEntry[api.AsyncConfigEntryAuth] -async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: + +# # TODO Update entry annotation +async def async_setup_entry(hass: HomeAssistant, entry: New_NameConfigEntry) -> bool: """Set up NEW_NAME from a config entry.""" implementation = ( await config_entry_oauth2_flow.async_get_config_entry_implementation( @@ -26,12 +30,10 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: session = config_entry_oauth2_flow.OAuth2Session(hass, entry, implementation) # If using a requests-based API lib - hass.data.setdefault(DOMAIN, {})[entry.entry_id] = api.ConfigEntryAuth( - hass, session - ) + entry.runtime_data = api.ConfigEntryAuth(hass, session) # If using an aiohttp-based API lib - hass.data.setdefault(DOMAIN, {})[entry.entry_id] = api.AsyncConfigEntryAuth( + entry.runtime_data = api.AsyncConfigEntryAuth( aiohttp_client.async_get_clientsession(hass), session ) @@ -40,9 +42,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: return True -async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: +# TODO Update entry annotation +async def async_unload_entry(hass: HomeAssistant, entry: New_NameConfigEntry) -> bool: """Unload a config entry.""" - if unload_ok := await hass.config_entries.async_unload_platforms(entry, PLATFORMS): - hass.data[DOMAIN].pop(entry.entry_id) - - return unload_ok + return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)