Add type hints to async_step_reauth (#74164)

This commit is contained in:
epenet 2022-06-29 11:25:37 +02:00 committed by GitHub
parent 500105fa86
commit d323508f79
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 59 additions and 33 deletions

View file

@ -1,11 +1,14 @@
"""Config flow for August integration.""" """Config flow for August integration."""
from collections.abc import Mapping
import logging import logging
from typing import Any
import voluptuous as vol import voluptuous as vol
from yalexs.authenticator import ValidationResult from yalexs.authenticator import ValidationResult
from homeassistant import config_entries from homeassistant import config_entries
from homeassistant.const import CONF_PASSWORD, CONF_USERNAME from homeassistant.const import CONF_PASSWORD, CONF_USERNAME
from homeassistant.data_entry_flow import FlowResult
from .const import CONF_LOGIN_METHOD, DOMAIN, LOGIN_METHODS, VERIFICATION_CODE_KEY from .const import CONF_LOGIN_METHOD, DOMAIN, LOGIN_METHODS, VERIFICATION_CODE_KEY
from .exceptions import CannotConnect, InvalidAuth, RequireValidation from .exceptions import CannotConnect, InvalidAuth, RequireValidation
@ -109,9 +112,9 @@ class AugustConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
}, },
) )
async def async_step_reauth(self, data): async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> FlowResult:
"""Handle configuration by re-auth.""" """Handle configuration by re-auth."""
self._user_auth_details = dict(data) self._user_auth_details = dict(entry_data)
self._mode = "reauth" self._mode = "reauth"
self._needs_reset = True self._needs_reset = True
self._august_gateway = AugustGateway(self.hass) self._august_gateway = AugustGateway(self.hass)

View file

@ -1,9 +1,13 @@
"""Config flow to configure the Azure DevOps integration.""" """Config flow to configure the Azure DevOps integration."""
from collections.abc import Mapping
from typing import Any
from aioazuredevops.client import DevOpsClient from aioazuredevops.client import DevOpsClient
import aiohttp import aiohttp
import voluptuous as vol import voluptuous as vol
from homeassistant.config_entries import ConfigFlow from homeassistant.config_entries import ConfigFlow
from homeassistant.data_entry_flow import FlowResult
from .const import CONF_ORG, CONF_PAT, CONF_PROJECT, DOMAIN from .const import CONF_ORG, CONF_PAT, CONF_PROJECT, DOMAIN
@ -82,12 +86,12 @@ class AzureDevOpsFlowHandler(ConfigFlow, domain=DOMAIN):
return await self._show_setup_form(errors) return await self._show_setup_form(errors)
return self._async_create_entry() return self._async_create_entry()
async def async_step_reauth(self, user_input): async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> FlowResult:
"""Handle configuration by re-auth.""" """Handle configuration by re-auth."""
if user_input.get(CONF_ORG) and user_input.get(CONF_PROJECT): if entry_data.get(CONF_ORG) and entry_data.get(CONF_PROJECT):
self._organization = user_input[CONF_ORG] self._organization = entry_data[CONF_ORG]
self._project = user_input[CONF_PROJECT] self._project = entry_data[CONF_PROJECT]
self._pat = user_input[CONF_PAT] self._pat = entry_data[CONF_PAT]
self.context["title_placeholders"] = { self.context["title_placeholders"] = {
"project_url": f"{self._organization}/{self._project}", "project_url": f"{self._organization}/{self._project}",
@ -100,6 +104,7 @@ class AzureDevOpsFlowHandler(ConfigFlow, domain=DOMAIN):
return await self._show_reauth_form(errors) return await self._show_reauth_form(errors)
entry = await self.async_set_unique_id(self.unique_id) entry = await self.async_set_unique_id(self.unique_id)
assert entry
self.hass.config_entries.async_update_entry( self.hass.config_entries.async_update_entry(
entry, entry,
data={ data={

View file

@ -1,6 +1,7 @@
"""Config flow for elmax-cloud integration.""" """Config flow for elmax-cloud integration."""
from __future__ import annotations from __future__ import annotations
from collections.abc import Mapping
import logging import logging
from typing import Any from typing import Any
@ -167,10 +168,10 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
step_id="panels", data_schema=self._panels_schema, errors=errors step_id="panels", data_schema=self._panels_schema, errors=errors
) )
async def async_step_reauth(self, user_input=None): async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> FlowResult:
"""Perform reauth upon an API authentication error.""" """Perform reauth upon an API authentication error."""
self._reauth_username = user_input.get(CONF_ELMAX_USERNAME) self._reauth_username = entry_data.get(CONF_ELMAX_USERNAME)
self._reauth_panelid = user_input.get(CONF_ELMAX_PANEL_ID) self._reauth_panelid = entry_data.get(CONF_ELMAX_PANEL_ID)
return await self.async_step_reauth_confirm() return await self.async_step_reauth_confirm()
async def async_step_reauth_confirm(self, user_input=None): async def async_step_reauth_confirm(self, user_input=None):

View file

@ -1,6 +1,9 @@
"""Config Flow for Hive.""" """Config Flow for Hive."""
from __future__ import annotations from __future__ import annotations
from collections.abc import Mapping
from typing import Any
from apyhiveapi import Auth from apyhiveapi import Auth
from apyhiveapi.helper.hive_exceptions import ( from apyhiveapi.helper.hive_exceptions import (
HiveApiError, HiveApiError,
@ -13,6 +16,7 @@ import voluptuous as vol
from homeassistant import config_entries from homeassistant import config_entries
from homeassistant.const import CONF_PASSWORD, CONF_SCAN_INTERVAL, CONF_USERNAME from homeassistant.const import CONF_PASSWORD, CONF_SCAN_INTERVAL, CONF_USERNAME
from homeassistant.core import callback from homeassistant.core import callback
from homeassistant.data_entry_flow import FlowResult
from .const import CONF_CODE, CONF_DEVICE_NAME, CONFIG_ENTRY_VERSION, DOMAIN from .const import CONF_CODE, CONF_DEVICE_NAME, CONFIG_ENTRY_VERSION, DOMAIN
@ -136,11 +140,11 @@ class HiveFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
return self.async_abort(reason="reauth_successful") return self.async_abort(reason="reauth_successful")
return self.async_create_entry(title=self.data["username"], data=self.data) return self.async_create_entry(title=self.data["username"], data=self.data)
async def async_step_reauth(self, user_input=None): async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> FlowResult:
"""Re Authenticate a user.""" """Re Authenticate a user."""
data = { data = {
CONF_USERNAME: user_input[CONF_USERNAME], CONF_USERNAME: entry_data[CONF_USERNAME],
CONF_PASSWORD: user_input[CONF_PASSWORD], CONF_PASSWORD: entry_data[CONF_PASSWORD],
} }
return await self.async_step_user(data) return await self.async_step_user(data)

View file

@ -141,12 +141,9 @@ class HyperionConfigFlow(ConfigFlow, domain=DOMAIN):
return await self.async_step_auth() return await self.async_step_auth()
return await self.async_step_confirm() return await self.async_step_confirm()
async def async_step_reauth( async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> FlowResult:
self,
config_data: Mapping[str, Any],
) -> FlowResult:
"""Handle a reauthentication flow.""" """Handle a reauthentication flow."""
self._data = dict(config_data) self._data = dict(entry_data)
async with self._create_client(raw_connection=True) as hyperion_client: async with self._create_client(raw_connection=True) as hyperion_client:
if not hyperion_client: if not hyperion_client:
return self.async_abort(reason="cannot_connect") return self.async_abort(reason="cannot_connect")

View file

@ -1,5 +1,7 @@
"""Config flow for Mazda Connected Services integration.""" """Config flow for Mazda Connected Services integration."""
from collections.abc import Mapping
import logging import logging
from typing import Any
import aiohttp import aiohttp
from pymazda import ( from pymazda import (
@ -11,6 +13,7 @@ import voluptuous as vol
from homeassistant import config_entries from homeassistant import config_entries
from homeassistant.const import CONF_EMAIL, CONF_PASSWORD, CONF_REGION from homeassistant.const import CONF_EMAIL, CONF_PASSWORD, CONF_REGION
from homeassistant.data_entry_flow import FlowResult
from homeassistant.helpers import aiohttp_client from homeassistant.helpers import aiohttp_client
from .const import DOMAIN, MAZDA_REGIONS from .const import DOMAIN, MAZDA_REGIONS
@ -97,11 +100,11 @@ class MazdaConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
errors=errors, errors=errors,
) )
async def async_step_reauth(self, user_input=None): async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> FlowResult:
"""Perform reauth if the user credentials have changed.""" """Perform reauth if the user credentials have changed."""
self._reauth_entry = self.hass.config_entries.async_get_entry( self._reauth_entry = self.hass.config_entries.async_get_entry(
self.context["entry_id"] self.context["entry_id"]
) )
self._email = user_input[CONF_EMAIL] self._email = entry_data[CONF_EMAIL]
self._region = user_input[CONF_REGION] self._region = entry_data[CONF_REGION]
return await self.async_step_user() return await self.async_step_user()

View file

@ -1,5 +1,7 @@
"""Config flow to configure the Nuki integration.""" """Config flow to configure the Nuki integration."""
from collections.abc import Mapping
import logging import logging
from typing import Any
from pynuki import NukiBridge from pynuki import NukiBridge
from pynuki.bridge import InvalidCredentialsException from pynuki.bridge import InvalidCredentialsException
@ -80,9 +82,9 @@ class NukiConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
return await self.async_step_validate() return await self.async_step_validate()
async def async_step_reauth(self, data): async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> FlowResult:
"""Perform reauth upon an API authentication error.""" """Perform reauth upon an API authentication error."""
self._data = data self._data = entry_data
return await self.async_step_reauth_confirm() return await self.async_step_reauth_confirm()

View file

@ -1,8 +1,10 @@
"""Config flow for Plex.""" """Config flow for Plex."""
from __future__ import annotations from __future__ import annotations
from collections.abc import Mapping
import copy import copy
import logging import logging
from typing import Any
from aiohttp import web_response from aiohttp import web_response
import plexapi.exceptions import plexapi.exceptions
@ -26,6 +28,7 @@ from homeassistant.const import (
CONF_VERIFY_SSL, CONF_VERIFY_SSL,
) )
from homeassistant.core import callback from homeassistant.core import callback
from homeassistant.data_entry_flow import FlowResult
from homeassistant.helpers.aiohttp_client import async_get_clientsession from homeassistant.helpers.aiohttp_client import async_get_clientsession
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
@ -329,9 +332,9 @@ class PlexFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
server_config = {CONF_TOKEN: self.token} server_config = {CONF_TOKEN: self.token}
return await self.async_step_server_validate(server_config) return await self.async_step_server_validate(server_config)
async def async_step_reauth(self, data): async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> FlowResult:
"""Handle a reauthorization flow request.""" """Handle a reauthorization flow request."""
self.current_login = dict(data) self.current_login = dict(entry_data)
return await self.async_step_user() return await self.async_step_user()

View file

@ -1,5 +1,7 @@
"""Config flow for Sense integration.""" """Config flow for Sense integration."""
from collections.abc import Mapping
import logging import logging
from typing import Any
from sense_energy import ( from sense_energy import (
ASyncSenseable, ASyncSenseable,
@ -10,6 +12,7 @@ import voluptuous as vol
from homeassistant import config_entries from homeassistant import config_entries
from homeassistant.const import CONF_CODE, CONF_EMAIL, CONF_PASSWORD, CONF_TIMEOUT from homeassistant.const import CONF_CODE, CONF_EMAIL, CONF_PASSWORD, CONF_TIMEOUT
from homeassistant.data_entry_flow import FlowResult
from homeassistant.helpers.aiohttp_client import async_get_clientsession from homeassistant.helpers.aiohttp_client import async_get_clientsession
from .const import ACTIVE_UPDATE_RATE, DEFAULT_TIMEOUT, DOMAIN, SENSE_CONNECT_EXCEPTIONS from .const import ACTIVE_UPDATE_RATE, DEFAULT_TIMEOUT, DOMAIN, SENSE_CONNECT_EXCEPTIONS
@ -120,10 +123,10 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
step_id="user", data_schema=DATA_SCHEMA, errors=errors step_id="user", data_schema=DATA_SCHEMA, errors=errors
) )
async def async_step_reauth(self, data): async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> FlowResult:
"""Handle configuration by re-auth.""" """Handle configuration by re-auth."""
self._auth_data = dict(data) self._auth_data = dict(entry_data)
return await self.async_step_reauth_validate(data) return await self.async_step_reauth_validate(entry_data)
async def async_step_reauth_validate(self, user_input=None): async def async_step_reauth_validate(self, user_input=None):
"""Handle reauth and validation.""" """Handle reauth and validation."""

View file

@ -57,7 +57,7 @@ class SpotifyFlowHandler(
return self.async_create_entry(title=name, data=data) return self.async_create_entry(title=name, data=data)
async def async_step_reauth(self, entry: Mapping[str, Any]) -> FlowResult: async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> FlowResult:
"""Perform reauth upon migration of old entries.""" """Perform reauth upon migration of old entries."""
self.reauth_entry = self.hass.config_entries.async_get_entry( self.reauth_entry = self.hass.config_entries.async_get_entry(
self.context["entry_id"] self.context["entry_id"]
@ -65,7 +65,8 @@ class SpotifyFlowHandler(
persistent_notification.async_create( persistent_notification.async_create(
self.hass, self.hass,
f"Spotify integration for account {entry['id']} needs to be re-authenticated. Please go to the integrations page to re-configure it.", f"Spotify integration for account {entry_data['id']} needs to be "
"re-authenticated. Please go to the integrations page to re-configure it.",
"Spotify re-authentication", "Spotify re-authentication",
"spotify_reauth", "spotify_reauth",
) )

View file

@ -1,6 +1,9 @@
"""Config flow for the Total Connect component.""" """Config flow for the Total Connect component."""
from __future__ import annotations from __future__ import annotations
from collections.abc import Mapping
from typing import Any
from total_connect_client.client import TotalConnectClient from total_connect_client.client import TotalConnectClient
from total_connect_client.exceptions import AuthenticationError from total_connect_client.exceptions import AuthenticationError
import voluptuous as vol import voluptuous as vol
@ -8,6 +11,7 @@ import voluptuous as vol
from homeassistant import config_entries from homeassistant import config_entries
from homeassistant.const import CONF_LOCATION, CONF_PASSWORD, CONF_USERNAME from homeassistant.const import CONF_LOCATION, CONF_PASSWORD, CONF_USERNAME
from homeassistant.core import callback from homeassistant.core import callback
from homeassistant.data_entry_flow import FlowResult
from .const import AUTO_BYPASS, CONF_USERCODES, DOMAIN from .const import AUTO_BYPASS, CONF_USERCODES, DOMAIN
@ -121,10 +125,10 @@ class TotalConnectConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
description_placeholders={"location_id": location_for_user}, description_placeholders={"location_id": location_for_user},
) )
async def async_step_reauth(self, config): async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> FlowResult:
"""Perform reauth upon an authentication error or no usercode.""" """Perform reauth upon an authentication error or no usercode."""
self.username = config[CONF_USERNAME] self.username = entry_data[CONF_USERNAME]
self.usercodes = config[CONF_USERCODES] self.usercodes = entry_data[CONF_USERCODES]
return await self.async_step_reauth_confirm() return await self.async_step_reauth_confirm()