mirror of
https://github.com/home-assistant/core.git
synced 2025-04-25 17:57:55 +00:00
Use strings directly instead of Enums in version config (#66007)
This commit is contained in:
parent
da3024e162
commit
e226cfaeb2
@ -3,7 +3,6 @@ from __future__ import annotations
|
|||||||
|
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from pyhaversion.consts import HaVersionChannel, HaVersionSource
|
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant import config_entries
|
from homeassistant import config_entries
|
||||||
@ -75,8 +74,8 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
|
|||||||
self._entry_data.update(user_input)
|
self._entry_data.update(user_input)
|
||||||
|
|
||||||
if not self.show_advanced_options or user_input[CONF_SOURCE] in (
|
if not self.show_advanced_options or user_input[CONF_SOURCE] in (
|
||||||
HaVersionSource.LOCAL,
|
"local",
|
||||||
HaVersionSource.HAIO,
|
"haio",
|
||||||
):
|
):
|
||||||
return self.async_create_entry(
|
return self.async_create_entry(
|
||||||
title=self._config_entry_name,
|
title=self._config_entry_name,
|
||||||
@ -92,8 +91,8 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
|
|||||||
"""Handle the version_source step."""
|
"""Handle the version_source step."""
|
||||||
if user_input is None:
|
if user_input is None:
|
||||||
if self._entry_data[CONF_SOURCE] in (
|
if self._entry_data[CONF_SOURCE] in (
|
||||||
HaVersionSource.SUPERVISOR,
|
"supervisor",
|
||||||
HaVersionSource.CONTAINER,
|
"container",
|
||||||
):
|
):
|
||||||
data_schema = vol.Schema(
|
data_schema = vol.Schema(
|
||||||
{
|
{
|
||||||
@ -102,7 +101,7 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
|
|||||||
): vol.In(VALID_CHANNELS),
|
): vol.In(VALID_CHANNELS),
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
if self._entry_data[CONF_SOURCE] == HaVersionSource.SUPERVISOR:
|
if self._entry_data[CONF_SOURCE] == "supervisor":
|
||||||
data_schema = data_schema.extend(
|
data_schema = data_schema.extend(
|
||||||
{
|
{
|
||||||
vol.Required(CONF_IMAGE, default=DEFAULT_IMAGE): vol.In(
|
vol.Required(CONF_IMAGE, default=DEFAULT_IMAGE): vol.In(
|
||||||
@ -151,7 +150,7 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
|
|||||||
@property
|
@property
|
||||||
def _config_entry_name(self) -> str:
|
def _config_entry_name(self) -> str:
|
||||||
"""Return the name of the config entry."""
|
"""Return the name of the config entry."""
|
||||||
if self._entry_data[CONF_SOURCE] == HaVersionSource.LOCAL:
|
if self._entry_data[CONF_SOURCE] == "local":
|
||||||
return DEFAULT_NAME_CURRENT
|
return DEFAULT_NAME_CURRENT
|
||||||
|
|
||||||
name = self._entry_data[CONF_VERSION_SOURCE]
|
name = self._entry_data[CONF_VERSION_SOURCE]
|
||||||
@ -166,21 +165,21 @@ def _convert_imported_configuration(config: dict[str, Any]) -> Any:
|
|||||||
"""Convert a key from the imported configuration."""
|
"""Convert a key from the imported configuration."""
|
||||||
data = DEFAULT_CONFIGURATION.copy()
|
data = DEFAULT_CONFIGURATION.copy()
|
||||||
if config.get(CONF_BETA):
|
if config.get(CONF_BETA):
|
||||||
data[CONF_CHANNEL] = HaVersionChannel.BETA
|
data[CONF_CHANNEL] = "beta"
|
||||||
|
|
||||||
if (source := config.get(CONF_SOURCE)) and source != DEFAULT_SOURCE:
|
if (source := config.get(CONF_SOURCE)) and source != DEFAULT_SOURCE:
|
||||||
if source == SOURCE_HASSIO:
|
if source == SOURCE_HASSIO:
|
||||||
data[CONF_SOURCE] = HaVersionSource.SUPERVISOR
|
data[CONF_SOURCE] = "supervisor"
|
||||||
data[CONF_VERSION_SOURCE] = VERSION_SOURCE_VERSIONS
|
data[CONF_VERSION_SOURCE] = VERSION_SOURCE_VERSIONS
|
||||||
elif source == SOURCE_DOKCER:
|
elif source == SOURCE_DOKCER:
|
||||||
data[CONF_SOURCE] = HaVersionSource.CONTAINER
|
data[CONF_SOURCE] = "container"
|
||||||
data[CONF_VERSION_SOURCE] = VERSION_SOURCE_DOCKER_HUB
|
data[CONF_VERSION_SOURCE] = VERSION_SOURCE_DOCKER_HUB
|
||||||
else:
|
else:
|
||||||
data[CONF_SOURCE] = source
|
data[CONF_SOURCE] = source
|
||||||
data[CONF_VERSION_SOURCE] = VERSION_SOURCE_MAP_INVERTED[source]
|
data[CONF_VERSION_SOURCE] = VERSION_SOURCE_MAP_INVERTED[source]
|
||||||
|
|
||||||
if (image := config.get(CONF_IMAGE)) and image != DEFAULT_IMAGE:
|
if (image := config.get(CONF_IMAGE)) and image != DEFAULT_IMAGE:
|
||||||
if data[CONF_SOURCE] == HaVersionSource.CONTAINER:
|
if data[CONF_SOURCE] == "container":
|
||||||
data[CONF_IMAGE] = f"{config[CONF_IMAGE]}{POSTFIX_CONTAINER_NAME}"
|
data[CONF_IMAGE] = f"{config[CONF_IMAGE]}{POSTFIX_CONTAINER_NAME}"
|
||||||
else:
|
else:
|
||||||
data[CONF_IMAGE] = config[CONF_IMAGE]
|
data[CONF_IMAGE] = config[CONF_IMAGE]
|
||||||
@ -188,7 +187,7 @@ def _convert_imported_configuration(config: dict[str, Any]) -> Any:
|
|||||||
if (name := config.get(CONF_NAME)) and name != DEFAULT_NAME:
|
if (name := config.get(CONF_NAME)) and name != DEFAULT_NAME:
|
||||||
data[CONF_NAME] = config[CONF_NAME]
|
data[CONF_NAME] = config[CONF_NAME]
|
||||||
else:
|
else:
|
||||||
if data[CONF_SOURCE] == HaVersionSource.LOCAL:
|
if data[CONF_SOURCE] == "local":
|
||||||
data[CONF_NAME] = DEFAULT_NAME_CURRENT
|
data[CONF_NAME] = DEFAULT_NAME_CURRENT
|
||||||
else:
|
else:
|
||||||
data[CONF_NAME] = DEFAULT_NAME_LATEST
|
data[CONF_NAME] = DEFAULT_NAME_LATEST
|
||||||
|
@ -41,12 +41,12 @@ VERSION_SOURCE_VERSIONS: Final = "Home Assistant Versions"
|
|||||||
|
|
||||||
DEFAULT_BETA: Final = False
|
DEFAULT_BETA: Final = False
|
||||||
DEFAULT_BOARD: Final = "OVA"
|
DEFAULT_BOARD: Final = "OVA"
|
||||||
DEFAULT_CHANNEL: Final[HaVersionChannel] = HaVersionChannel.STABLE
|
DEFAULT_CHANNEL: Final = "stable"
|
||||||
DEFAULT_IMAGE: Final = "default"
|
DEFAULT_IMAGE: Final = "default"
|
||||||
DEFAULT_NAME_CURRENT: Final = "Current Version"
|
DEFAULT_NAME_CURRENT: Final = "Current Version"
|
||||||
DEFAULT_NAME_LATEST: Final = "Latest Version"
|
DEFAULT_NAME_LATEST: Final = "Latest Version"
|
||||||
DEFAULT_NAME: Final = ""
|
DEFAULT_NAME: Final = ""
|
||||||
DEFAULT_SOURCE: Final[HaVersionSource] = HaVersionSource.LOCAL
|
DEFAULT_SOURCE: Final = "local"
|
||||||
DEFAULT_CONFIGURATION: Final[dict[str, Any]] = {
|
DEFAULT_CONFIGURATION: Final[dict[str, Any]] = {
|
||||||
CONF_NAME: DEFAULT_NAME,
|
CONF_NAME: DEFAULT_NAME,
|
||||||
CONF_CHANNEL: DEFAULT_CHANNEL,
|
CONF_CHANNEL: DEFAULT_CHANNEL,
|
||||||
@ -81,22 +81,22 @@ BOARD_MAP: Final[dict[str, str]] = {
|
|||||||
|
|
||||||
VALID_BOARDS: Final[list[str]] = list(BOARD_MAP)
|
VALID_BOARDS: Final[list[str]] = list(BOARD_MAP)
|
||||||
|
|
||||||
VERSION_SOURCE_MAP: Final[dict[str, HaVersionSource]] = {
|
VERSION_SOURCE_MAP: Final[dict[str, str]] = {
|
||||||
VERSION_SOURCE_LOCAL: HaVersionSource.LOCAL,
|
VERSION_SOURCE_LOCAL: "local",
|
||||||
VERSION_SOURCE_VERSIONS: HaVersionSource.SUPERVISOR,
|
VERSION_SOURCE_VERSIONS: "supervisor",
|
||||||
VERSION_SOURCE_HAIO: HaVersionSource.HAIO,
|
VERSION_SOURCE_HAIO: "haio",
|
||||||
VERSION_SOURCE_DOCKER_HUB: HaVersionSource.CONTAINER,
|
VERSION_SOURCE_DOCKER_HUB: "container",
|
||||||
VERSION_SOURCE_PYPI: HaVersionSource.PYPI,
|
VERSION_SOURCE_PYPI: "pypi",
|
||||||
}
|
}
|
||||||
|
|
||||||
VERSION_SOURCE_MAP_INVERTED: Final[dict[HaVersionSource, str]] = {
|
VERSION_SOURCE_MAP_INVERTED: Final[dict[str, str]] = {
|
||||||
value: key for key, value in VERSION_SOURCE_MAP.items()
|
value: key for key, value in VERSION_SOURCE_MAP.items()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
VALID_SOURCES: Final[list[str]] = HA_VERSION_SOURCES + [
|
VALID_SOURCES: Final[list[str]] = HA_VERSION_SOURCES + [
|
||||||
SOURCE_HASSIO, # Kept to not break existing configurations
|
"hassio", # Kept to not break existing configurations
|
||||||
SOURCE_DOKCER, # Kept to not break existing configurations
|
"docker", # Kept to not break existing configurations
|
||||||
]
|
]
|
||||||
|
|
||||||
VALID_IMAGES: Final = [
|
VALID_IMAGES: Final = [
|
||||||
|
Loading…
x
Reference in New Issue
Block a user