mirror of
https://github.com/sudoxreboot/groqd
synced 2026-04-14 11:36:49 +00:00
Fix async client init and options flow
This commit is contained in:
parent
904280aca0
commit
3f52a4fcc4
2 changed files with 13 additions and 6 deletions
|
|
@ -28,7 +28,8 @@ type GroqdConfigEntry = ConfigEntry[GroqdRuntimeData]
|
||||||
async def async_setup_entry(hass: HomeAssistant, entry: GroqdConfigEntry) -> bool:
|
async def async_setup_entry(hass: HomeAssistant, entry: GroqdConfigEntry) -> bool:
|
||||||
"""Set up groqd from a config entry."""
|
"""Set up groqd from a config entry."""
|
||||||
api_key = entry.data[CONF_API_KEY]
|
api_key = entry.data[CONF_API_KEY]
|
||||||
entry.runtime_data = GroqdRuntimeData(client=groq.AsyncClient(api_key=api_key))
|
client = await hass.async_add_executor_job(groq.AsyncClient, api_key=api_key)
|
||||||
|
entry.runtime_data = GroqdRuntimeData(client=client)
|
||||||
|
|
||||||
await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
|
await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
|
||||||
return True
|
return True
|
||||||
|
|
@ -36,4 +37,10 @@ async def async_setup_entry(hass: HomeAssistant, entry: GroqdConfigEntry) -> boo
|
||||||
|
|
||||||
async def async_unload_entry(hass: HomeAssistant, entry: GroqdConfigEntry) -> bool:
|
async def async_unload_entry(hass: HomeAssistant, entry: GroqdConfigEntry) -> bool:
|
||||||
"""Unload a config entry."""
|
"""Unload a config entry."""
|
||||||
return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
|
unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
|
||||||
|
if unload_ok:
|
||||||
|
try:
|
||||||
|
await entry.runtime_data.client.close()
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
return unload_ok
|
||||||
|
|
|
||||||
|
|
@ -137,19 +137,19 @@ class GroqdOptionsFlow(OptionsFlow):
|
||||||
"""Options flow for groqd."""
|
"""Options flow for groqd."""
|
||||||
|
|
||||||
def __init__(self, config_entry: ConfigEntry) -> None:
|
def __init__(self, config_entry: ConfigEntry) -> None:
|
||||||
self.config_entry = config_entry
|
self._config_entry = config_entry
|
||||||
|
|
||||||
async def async_step_init(
|
async def async_step_init(
|
||||||
self, user_input: dict[str, Any] | None = None
|
self, user_input: dict[str, Any] | None = None
|
||||||
) -> ConfigFlowResult:
|
) -> ConfigFlowResult:
|
||||||
options = dict(self.config_entry.options)
|
options = dict(self._config_entry.options)
|
||||||
|
|
||||||
if user_input is not None:
|
if user_input is not None:
|
||||||
api_key = user_input.pop(CONF_API_KEY, "")
|
api_key = user_input.pop(CONF_API_KEY, "")
|
||||||
if api_key:
|
if api_key:
|
||||||
self.hass.config_entries.async_update_entry(
|
self.hass.config_entries.async_update_entry(
|
||||||
self.config_entry,
|
self._config_entry,
|
||||||
data={**self.config_entry.data, CONF_API_KEY: api_key},
|
data={**self._config_entry.data, CONF_API_KEY: api_key},
|
||||||
)
|
)
|
||||||
return self.async_create_entry(title="", data=user_input)
|
return self.async_create_entry(title="", data=user_input)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue