1 """Issues for OpenWeatherMap."""
3 from typing
import cast
5 from homeassistant
import data_entry_flow
12 from .const
import DOMAIN, OWM_MODE_V30
13 from .utils
import validate_api_key
17 """Handler for an issue fixing flow."""
19 def __init__(self, entry: ConfigEntry) ->
None:
25 self, user_input: dict[str, str] |
None =
None
27 """Handle the first step of a fix flow."""
28 return self.async_show_form(step_id=
"migrate")
31 self, user_input: dict[str, str] |
None =
None
33 """Handle the migrate step of a fix flow."""
34 errors, description_placeholders = {}, {}
35 new_options = {**self.
entryentry.options, CONF_MODE: OWM_MODE_V30}
38 self.
entryentry.data[CONF_API_KEY], OWM_MODE_V30
41 self.hass.config_entries.async_update_entry(self.
entryentry, options=new_options)
42 await self.hass.config_entries.async_reload(self.
entryentry.entry_id)
43 return self.async_create_entry(data={})
45 return self.async_show_form(
48 description_placeholders=description_placeholders,
55 data: dict[str, str | int | float |
None],
57 """Create single repair flow."""
58 entry_id = cast(str, data.get(
"entry_id"))
59 entry = hass.config_entries.async_get_entry(entry_id)
65 return f
"deprecated_v25_{entry_id}"
70 """Create issue for V2.5 deprecation."""
71 ir.async_create_issue(
77 severity=ir.IssueSeverity.WARNING,
78 learn_more_url=
"https://www.home-assistant.io/integrations/openweathermap/",
79 translation_key=
"deprecated_v25",
80 data={
"entry_id": entry_id},
86 """Remove issue for V2.5 deprecation."""
87 ir.async_delete_issue(hass=hass, domain=DOMAIN, issue_id=
_get_issue_id(entry_id))
data_entry_flow.FlowResult async_step_init(self, dict[str, str]|None user_input=None)
None __init__(self, ConfigEntry entry)
data_entry_flow.FlowResult async_step_migrate(self, dict[str, str]|None user_input=None)
RepairsFlow async_create_fix_flow(HomeAssistant hass, str issue_id, dict[str, str|int|float|None] data)
None async_create_issue(HomeAssistant hass, str entry_id)
None async_delete_issue(HomeAssistant hass, str entry_id)
str _get_issue_id(str entry_id)
def validate_api_key(api_key, mode)