1 """Config flow for kraken integration."""
3 from __future__
import annotations
8 from pykrakenapi.pykrakenapi
import KrakenAPI
9 import voluptuous
as vol
21 from .const
import CONF_TRACKED_ASSET_PAIRS, DEFAULT_SCAN_INTERVAL, DOMAIN
22 from .utils
import get_tradable_asset_pairs
26 """Handle a config flow for kraken."""
33 config_entry: ConfigEntry,
34 ) -> KrakenOptionsFlowHandler:
35 """Get the options flow for this handler."""
39 self, user_input: dict[str, Any] |
None =
None
40 ) -> ConfigFlowResult:
41 """Handle the initial step."""
44 if user_input
is not None:
54 """Handle Kraken client options."""
57 self, user_input: dict[str, Any] |
None =
None
58 ) -> ConfigFlowResult:
59 """Manage the Kraken options."""
60 if user_input
is not None:
63 api = KrakenAPI(krakenex.API(), retry=0, crl_sleep=0)
64 tradable_asset_pairs = await self.hass.async_add_executor_job(
65 get_tradable_asset_pairs, api
67 tradable_asset_pairs_for_multi_select = {v: v
for v
in tradable_asset_pairs}
72 CONF_TRACKED_ASSET_PAIRS, []
74 tradable_asset_pairs_for_multi_select.update(
76 tracked_asset_pair: tracked_asset_pair
77 for tracked_asset_pair
in tracked_asset_pairs
85 CONF_SCAN_INTERVAL, DEFAULT_SCAN_INTERVAL
89 CONF_TRACKED_ASSET_PAIRS,
90 default=tracked_asset_pairs,
91 ): cv.multi_select(tradable_asset_pairs_for_multi_select),
94 return self.
async_show_formasync_show_form(step_id=
"init", data_schema=vol.Schema(options))
ConfigFlowResult async_step_user(self, dict[str, Any]|None user_input=None)
KrakenOptionsFlowHandler async_get_options_flow(ConfigEntry config_entry)
ConfigFlowResult async_step_init(self, dict[str, Any]|None user_input=None)
ConfigFlowResult async_create_entry(self, *str title, Mapping[str, Any] data, str|None description=None, Mapping[str, str]|None description_placeholders=None, Mapping[str, Any]|None options=None)
list[ConfigEntry] _async_current_entries(self, bool|None include_ignore=None)
ConfigFlowResult async_abort(self, *str reason, Mapping[str, str]|None description_placeholders=None)
ConfigFlowResult async_show_form(self, *str|None step_id=None, vol.Schema|None data_schema=None, dict[str, str]|None errors=None, Mapping[str, str]|None description_placeholders=None, bool|None last_step=None, str|None preview=None)
ConfigEntry config_entry(self)
None config_entry(self, ConfigEntry value)
_FlowResultT async_show_form(self, *str|None step_id=None, vol.Schema|None data_schema=None, dict[str, str]|None errors=None, Mapping[str, str]|None description_placeholders=None, bool|None last_step=None, str|None preview=None)
_FlowResultT async_create_entry(self, *str|None title=None, Mapping[str, Any] data, str|None description=None, Mapping[str, str]|None description_placeholders=None)
_FlowResultT async_abort(self, *str reason, Mapping[str, str]|None description_placeholders=None)