From 4416b6524eb120fc1456a305cf6dda49557c32cd Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Mon, 27 Sep 2021 08:28:34 +0200 Subject: [PATCH] Bump voluptuous from 0.12.1 to 0.12.2 (#3147) --- requirements.txt | 2 +- supervisor/addons/validate.py | 2 +- supervisor/api/addons.py | 8 ++++---- supervisor/api/audio.py | 4 ++-- supervisor/api/auth.py | 4 ++-- supervisor/api/backups.py | 14 ++++++-------- supervisor/api/docker.py | 2 +- supervisor/api/homeassistant.py | 6 +++--- supervisor/api/host.py | 2 +- supervisor/backups/validate.py | 22 +++++++++------------- supervisor/discovery/services/adguard.py | 2 +- supervisor/discovery/services/almond.py | 2 +- supervisor/discovery/services/deconz.py | 6 +++--- supervisor/discovery/services/homematic.py | 4 ++-- supervisor/discovery/services/motioneye.py | 2 +- supervisor/discovery/services/mqtt.py | 8 ++++---- supervisor/discovery/services/unifi.py | 2 +- supervisor/discovery/validate.py | 2 +- supervisor/homeassistant/validate.py | 6 +++--- supervisor/services/modules/mqtt.py | 12 +++++------- supervisor/services/modules/mysql.py | 10 ++++------ supervisor/store/validate.py | 4 ++-- supervisor/validate.py | 14 ++++++++------ 23 files changed, 66 insertions(+), 74 deletions(-) diff --git a/requirements.txt b/requirements.txt index 49c922590..2a2837530 100644 --- a/requirements.txt +++ b/requirements.txt @@ -17,4 +17,4 @@ pulsectl==21.9.1 pyudev==0.22.0 ruamel.yaml==0.15.100 sentry-sdk==1.4.0 -voluptuous==0.12.1 +voluptuous==0.12.2 diff --git a/supervisor/addons/validate.py b/supervisor/addons/validate.py index ee303a48b..6f4cf016e 100644 --- a/supervisor/addons/validate.py +++ b/supervisor/addons/validate.py @@ -281,7 +281,7 @@ _SCHEMA_ADDON_CONFIG = vol.Schema( vol.Optional(ATTR_PANEL_ICON, default="mdi:puzzle"): str, vol.Optional(ATTR_PANEL_TITLE): str, vol.Optional(ATTR_PANEL_ADMIN, default=True): vol.Boolean(), - vol.Optional(ATTR_HOMEASSISTANT): vol.Maybe(version_tag), + vol.Optional(ATTR_HOMEASSISTANT): version_tag, vol.Optional(ATTR_HOST_NETWORK, default=False): vol.Boolean(), vol.Optional(ATTR_HOST_PID, default=False): vol.Boolean(), vol.Optional(ATTR_HOST_IPC, default=False): vol.Boolean(), diff --git a/supervisor/api/addons.py b/supervisor/api/addons.py index 8ca5b5901..3ff9988a8 100644 --- a/supervisor/api/addons.py +++ b/supervisor/api/addons.py @@ -110,7 +110,7 @@ from .utils import api_process, api_process_raw, api_validate, json_loads _LOGGER: logging.Logger = logging.getLogger(__name__) -SCHEMA_VERSION = vol.Schema({vol.Optional(ATTR_VERSION): vol.Coerce(str)}) +SCHEMA_VERSION = vol.Schema({vol.Optional(ATTR_VERSION): str}) # pylint: disable=no-value-for-parameter SCHEMA_OPTIONS = vol.Schema( @@ -118,8 +118,8 @@ SCHEMA_OPTIONS = vol.Schema( vol.Optional(ATTR_BOOT): vol.Coerce(AddonBoot), vol.Optional(ATTR_NETWORK): vol.Maybe(docker_ports), vol.Optional(ATTR_AUTO_UPDATE): vol.Boolean(), - vol.Optional(ATTR_AUDIO_OUTPUT): vol.Maybe(vol.Coerce(str)), - vol.Optional(ATTR_AUDIO_INPUT): vol.Maybe(vol.Coerce(str)), + vol.Optional(ATTR_AUDIO_OUTPUT): vol.Maybe(str), + vol.Optional(ATTR_AUDIO_INPUT): vol.Maybe(str), vol.Optional(ATTR_INGRESS_PANEL): vol.Boolean(), vol.Optional(ATTR_WATCHDOG): vol.Boolean(), } @@ -309,7 +309,7 @@ class APIAddons(CoreSysAttributes): # Extend schema with add-on specific validation addon_schema = SCHEMA_OPTIONS.extend( - {vol.Optional(ATTR_OPTIONS): vol.Any(None, addon.schema)} + {vol.Optional(ATTR_OPTIONS): vol.Maybe(addon.schema)} ) # Validate/Process Body diff --git a/supervisor/api/audio.py b/supervisor/api/audio.py index 6dad3fa00..078e21797 100644 --- a/supervisor/api/audio.py +++ b/supervisor/api/audio.py @@ -56,10 +56,10 @@ SCHEMA_MUTE = vol.Schema( } ) -SCHEMA_DEFAULT = vol.Schema({vol.Required(ATTR_NAME): vol.Coerce(str)}) +SCHEMA_DEFAULT = vol.Schema({vol.Required(ATTR_NAME): str}) SCHEMA_PROFILE = vol.Schema( - {vol.Required(ATTR_CARD): vol.Coerce(str), vol.Required(ATTR_NAME): vol.Coerce(str)} + {vol.Required(ATTR_CARD): str, vol.Required(ATTR_NAME): str} ) diff --git a/supervisor/api/auth.py b/supervisor/api/auth.py index 143f1a7ec..2b2f01e95 100644 --- a/supervisor/api/auth.py +++ b/supervisor/api/auth.py @@ -23,8 +23,8 @@ _LOGGER: logging.Logger = logging.getLogger(__name__) SCHEMA_PASSWORD_RESET = vol.Schema( { - vol.Required(ATTR_USERNAME): vol.Coerce(str), - vol.Required(ATTR_PASSWORD): vol.Coerce(str), + vol.Required(ATTR_USERNAME): str, + vol.Required(ATTR_PASSWORD): str, } ) diff --git a/supervisor/api/backups.py b/supervisor/api/backups.py index abca25d3a..9146f597b 100644 --- a/supervisor/api/backups.py +++ b/supervisor/api/backups.py @@ -38,27 +38,25 @@ RE_SLUGIFY_NAME = re.compile(r"[^A-Za-z0-9]+") # pylint: disable=no-value-for-parameter SCHEMA_RESTORE_PARTIAL = vol.Schema( { - vol.Optional(ATTR_PASSWORD): vol.Any(None, vol.Coerce(str)), + vol.Optional(ATTR_PASSWORD): vol.Maybe(str), vol.Optional(ATTR_HOMEASSISTANT): vol.Boolean(), - vol.Optional(ATTR_ADDONS): vol.All([vol.Coerce(str)], vol.Unique()), + vol.Optional(ATTR_ADDONS): vol.All([str], vol.Unique()), vol.Optional(ATTR_FOLDERS): vol.All([vol.In(ALL_FOLDERS)], vol.Unique()), } ) -SCHEMA_RESTORE_FULL = vol.Schema( - {vol.Optional(ATTR_PASSWORD): vol.Any(None, vol.Coerce(str))} -) +SCHEMA_RESTORE_FULL = vol.Schema({vol.Optional(ATTR_PASSWORD): vol.Maybe(str)}) SCHEMA_BACKUP_FULL = vol.Schema( { - vol.Optional(ATTR_NAME): vol.Coerce(str), - vol.Optional(ATTR_PASSWORD): vol.Any(None, vol.Coerce(str)), + vol.Optional(ATTR_NAME): str, + vol.Optional(ATTR_PASSWORD): vol.Maybe(str), } ) SCHEMA_BACKUP_PARTIAL = SCHEMA_BACKUP_FULL.extend( { - vol.Optional(ATTR_ADDONS): vol.All([vol.Coerce(str)], vol.Unique()), + vol.Optional(ATTR_ADDONS): vol.All([str], vol.Unique()), vol.Optional(ATTR_FOLDERS): vol.All([vol.In(ALL_FOLDERS)], vol.Unique()), vol.Optional(ATTR_HOMEASSISTANT): vol.Boolean(), } diff --git a/supervisor/api/docker.py b/supervisor/api/docker.py index 66b305189..a696c8e95 100644 --- a/supervisor/api/docker.py +++ b/supervisor/api/docker.py @@ -21,7 +21,7 @@ _LOGGER: logging.Logger = logging.getLogger(__name__) SCHEMA_DOCKER_REGISTRY = vol.Schema( { - vol.Coerce(str): { + str: { vol.Required(ATTR_USERNAME): str, vol.Required(ATTR_PASSWORD): str, } diff --git a/supervisor/api/homeassistant.py b/supervisor/api/homeassistant.py index 579251bda..c2b85c1e5 100644 --- a/supervisor/api/homeassistant.py +++ b/supervisor/api/homeassistant.py @@ -48,9 +48,9 @@ SCHEMA_OPTIONS = vol.Schema( vol.Optional(ATTR_SSL): vol.Boolean(), vol.Optional(ATTR_WATCHDOG): vol.Boolean(), vol.Optional(ATTR_WAIT_BOOT): vol.All(vol.Coerce(int), vol.Range(min=60)), - vol.Optional(ATTR_REFRESH_TOKEN): vol.Maybe(vol.Coerce(str)), - vol.Optional(ATTR_AUDIO_OUTPUT): vol.Maybe(vol.Coerce(str)), - vol.Optional(ATTR_AUDIO_INPUT): vol.Maybe(vol.Coerce(str)), + vol.Optional(ATTR_REFRESH_TOKEN): vol.Maybe(str), + vol.Optional(ATTR_AUDIO_OUTPUT): vol.Maybe(str), + vol.Optional(ATTR_AUDIO_INPUT): vol.Maybe(str), } ) diff --git a/supervisor/api/host.py b/supervisor/api/host.py index 6f06a7925..3bb06bcff 100644 --- a/supervisor/api/host.py +++ b/supervisor/api/host.py @@ -38,7 +38,7 @@ from .utils import api_process, api_process_raw, api_validate SERVICE = "service" -SCHEMA_OPTIONS = vol.Schema({vol.Optional(ATTR_HOSTNAME): vol.Coerce(str)}) +SCHEMA_OPTIONS = vol.Schema({vol.Optional(ATTR_HOSTNAME): str}) class APIHost(CoreSysAttributes): diff --git a/supervisor/backups/validate.py b/supervisor/backups/validate.py index f30de4cfd..1aed9722d 100644 --- a/supervisor/backups/validate.py +++ b/supervisor/backups/validate.py @@ -61,12 +61,12 @@ def unique_addons(addons_list): # pylint: disable=no-value-for-parameter SCHEMA_BACKUP = vol.Schema( { - vol.Required(ATTR_SLUG): vol.Coerce(str), + vol.Required(ATTR_SLUG): str, vol.Required(ATTR_TYPE): vol.Coerce(BackupType), - vol.Required(ATTR_NAME): vol.Coerce(str), - vol.Required(ATTR_DATE): vol.Coerce(str), + vol.Required(ATTR_NAME): str, + vol.Required(ATTR_DATE): str, vol.Inclusive(ATTR_PROTECTED, "encrypted"): vol.All( - vol.Coerce(str), vol.Length(min=1, max=1) + str, vol.Length(min=1, max=1) ), vol.Inclusive(ATTR_CRYPTO, "encrypted"): CRYPTO_AES128, vol.Optional(ATTR_HOMEASSISTANT, default=dict): vol.Schema( @@ -76,17 +76,13 @@ SCHEMA_BACKUP = vol.Schema( vol.Optional(ATTR_BOOT, default=True): vol.Boolean(), vol.Optional(ATTR_SSL, default=False): vol.Boolean(), vol.Optional(ATTR_PORT, default=8123): network_port, - vol.Optional(ATTR_REFRESH_TOKEN): vol.Maybe(vol.Coerce(str)), + vol.Optional(ATTR_REFRESH_TOKEN): vol.Maybe(str), vol.Optional(ATTR_WATCHDOG, default=True): vol.Boolean(), vol.Optional(ATTR_WAIT_BOOT, default=600): vol.All( vol.Coerce(int), vol.Range(min=60) ), - vol.Optional(ATTR_AUDIO_OUTPUT, default=None): vol.Maybe( - vol.Coerce(str) - ), - vol.Optional(ATTR_AUDIO_INPUT, default=None): vol.Maybe( - vol.Coerce(str) - ), + vol.Optional(ATTR_AUDIO_OUTPUT, default=None): vol.Maybe(str), + vol.Optional(ATTR_AUDIO_INPUT, default=None): vol.Maybe(str), }, extra=vol.REMOVE_EXTRA, ), @@ -98,8 +94,8 @@ SCHEMA_BACKUP = vol.Schema( [ vol.Schema( { - vol.Required(ATTR_SLUG): vol.Coerce(str), - vol.Required(ATTR_NAME): vol.Coerce(str), + vol.Required(ATTR_SLUG): str, + vol.Required(ATTR_NAME): str, vol.Required(ATTR_VERSION): version_tag, vol.Optional(ATTR_SIZE, default=0): vol.Coerce(float), }, diff --git a/supervisor/discovery/services/adguard.py b/supervisor/discovery/services/adguard.py index ae53f386f..ca79c3123 100644 --- a/supervisor/discovery/services/adguard.py +++ b/supervisor/discovery/services/adguard.py @@ -6,5 +6,5 @@ from supervisor.validate import network_port from ..const import ATTR_HOST, ATTR_PORT SCHEMA = vol.Schema( - {vol.Required(ATTR_HOST): vol.Coerce(str), vol.Required(ATTR_PORT): network_port} + {vol.Required(ATTR_HOST): str, vol.Required(ATTR_PORT): network_port} ) diff --git a/supervisor/discovery/services/almond.py b/supervisor/discovery/services/almond.py index 75f2a02b9..c71aa0895 100644 --- a/supervisor/discovery/services/almond.py +++ b/supervisor/discovery/services/almond.py @@ -6,5 +6,5 @@ from supervisor.validate import network_port from ..const import ATTR_HOST, ATTR_PORT SCHEMA = vol.Schema( - {vol.Required(ATTR_HOST): vol.Coerce(str), vol.Required(ATTR_PORT): network_port} + {vol.Required(ATTR_HOST): str, vol.Required(ATTR_PORT): network_port} ) diff --git a/supervisor/discovery/services/deconz.py b/supervisor/discovery/services/deconz.py index 5020d8f18..e79c36ca5 100644 --- a/supervisor/discovery/services/deconz.py +++ b/supervisor/discovery/services/deconz.py @@ -7,9 +7,9 @@ from ..const import ATTR_API_KEY, ATTR_HOST, ATTR_PORT, ATTR_SERIAL SCHEMA = vol.Schema( { - vol.Required(ATTR_HOST): vol.Coerce(str), + vol.Required(ATTR_HOST): str, vol.Required(ATTR_PORT): network_port, - vol.Required(ATTR_SERIAL): vol.Coerce(str), - vol.Required(ATTR_API_KEY): vol.Coerce(str), + vol.Required(ATTR_SERIAL): str, + vol.Required(ATTR_API_KEY): str, } ) diff --git a/supervisor/discovery/services/homematic.py b/supervisor/discovery/services/homematic.py index 2e4529f45..e68a7934c 100644 --- a/supervisor/discovery/services/homematic.py +++ b/supervisor/discovery/services/homematic.py @@ -7,9 +7,9 @@ from ..const import ATTR_HOST, ATTR_PORT SCHEMA = vol.Schema( { - vol.Coerce(str): vol.Schema( + str: vol.Schema( { - vol.Required(ATTR_HOST): vol.Coerce(str), + vol.Required(ATTR_HOST): str, vol.Required(ATTR_PORT): network_port, } ) diff --git a/supervisor/discovery/services/motioneye.py b/supervisor/discovery/services/motioneye.py index 4edb91009..6de5d2588 100644 --- a/supervisor/discovery/services/motioneye.py +++ b/supervisor/discovery/services/motioneye.py @@ -3,4 +3,4 @@ import voluptuous as vol from ..const import ATTR_URL -SCHEMA = vol.Schema({vol.Required(ATTR_URL): vol.Coerce(str)}) +SCHEMA = vol.Schema({vol.Required(ATTR_URL): str}) diff --git a/supervisor/discovery/services/mqtt.py b/supervisor/discovery/services/mqtt.py index 20faf1710..a77569c79 100644 --- a/supervisor/discovery/services/mqtt.py +++ b/supervisor/discovery/services/mqtt.py @@ -15,13 +15,13 @@ from ..const import ( # pylint: disable=no-value-for-parameter SCHEMA = vol.Schema( { - vol.Required(ATTR_HOST): vol.Coerce(str), + vol.Required(ATTR_HOST): str, vol.Required(ATTR_PORT): network_port, - vol.Optional(ATTR_USERNAME): vol.Coerce(str), - vol.Optional(ATTR_PASSWORD): vol.Coerce(str), + vol.Optional(ATTR_USERNAME): str, + vol.Optional(ATTR_PASSWORD): str, vol.Optional(ATTR_SSL, default=False): vol.Boolean(), vol.Optional(ATTR_PROTOCOL, default="3.1.1"): vol.All( - vol.Coerce(str), vol.In(["3.1", "3.1.1"]) + str, vol.In(["3.1", "3.1.1"]) ), } ) diff --git a/supervisor/discovery/services/unifi.py b/supervisor/discovery/services/unifi.py index 4aee35386..6472ccc1c 100644 --- a/supervisor/discovery/services/unifi.py +++ b/supervisor/discovery/services/unifi.py @@ -6,5 +6,5 @@ from supervisor.validate import network_port from ..const import ATTR_HOST, ATTR_PORT SCHEMA = vol.Schema( - {vol.Required(ATTR_HOST): vol.Coerce(str), vol.Required(ATTR_PORT): network_port} + {vol.Required(ATTR_HOST): str, vol.Required(ATTR_PORT): network_port} ) diff --git a/supervisor/discovery/validate.py b/supervisor/discovery/validate.py index 16d357302..0a61b0e44 100644 --- a/supervisor/discovery/validate.py +++ b/supervisor/discovery/validate.py @@ -32,7 +32,7 @@ SCHEMA_DISCOVERY = vol.Schema( vol.Schema( { vol.Required(ATTR_UUID): uuid_match, - vol.Required(ATTR_ADDON): vol.Coerce(str), + vol.Required(ATTR_ADDON): str, vol.Required(ATTR_SERVICE): valid_discovery_service, vol.Required(ATTR_CONFIG): vol.Maybe(dict), }, diff --git a/supervisor/homeassistant/validate.py b/supervisor/homeassistant/validate.py index 2fff91ced..b342b2991 100644 --- a/supervisor/homeassistant/validate.py +++ b/supervisor/homeassistant/validate.py @@ -28,14 +28,14 @@ SCHEMA_HASS_CONFIG = vol.Schema( vol.Optional(ATTR_ACCESS_TOKEN): token, vol.Optional(ATTR_BOOT, default=True): vol.Boolean(), vol.Optional(ATTR_PORT, default=8123): network_port, - vol.Optional(ATTR_REFRESH_TOKEN): vol.Maybe(vol.Coerce(str)), + vol.Optional(ATTR_REFRESH_TOKEN): vol.Maybe(str), vol.Optional(ATTR_SSL, default=False): vol.Boolean(), vol.Optional(ATTR_WATCHDOG, default=True): vol.Boolean(), vol.Optional(ATTR_WAIT_BOOT, default=600): vol.All( vol.Coerce(int), vol.Range(min=60) ), - vol.Optional(ATTR_AUDIO_OUTPUT, default=None): vol.Maybe(vol.Coerce(str)), - vol.Optional(ATTR_AUDIO_INPUT, default=None): vol.Maybe(vol.Coerce(str)), + vol.Optional(ATTR_AUDIO_OUTPUT, default=None): vol.Maybe(str), + vol.Optional(ATTR_AUDIO_INPUT, default=None): vol.Maybe(str), }, extra=vol.REMOVE_EXTRA, ) diff --git a/supervisor/services/modules/mqtt.py b/supervisor/services/modules/mqtt.py index 22a1b4dd5..0ad0b296d 100644 --- a/supervisor/services/modules/mqtt.py +++ b/supervisor/services/modules/mqtt.py @@ -26,20 +26,18 @@ _LOGGER: logging.Logger = logging.getLogger(__name__) # pylint: disable=no-value-for-parameter SCHEMA_SERVICE_MQTT = vol.Schema( { - vol.Required(ATTR_HOST): vol.Coerce(str), + vol.Required(ATTR_HOST): str, vol.Required(ATTR_PORT): network_port, - vol.Optional(ATTR_USERNAME): vol.Coerce(str), - vol.Optional(ATTR_PASSWORD): vol.Coerce(str), + vol.Optional(ATTR_USERNAME): str, + vol.Optional(ATTR_PASSWORD): str, vol.Optional(ATTR_SSL, default=False): vol.Boolean(), vol.Optional(ATTR_PROTOCOL, default="3.1.1"): vol.All( - vol.Coerce(str), vol.In(["3.1", "3.1.1"]) + str, vol.In(["3.1", "3.1.1"]) ), } ) -SCHEMA_CONFIG_MQTT = SCHEMA_SERVICE_MQTT.extend( - {vol.Required(ATTR_ADDON): vol.Coerce(str)} -) +SCHEMA_CONFIG_MQTT = SCHEMA_SERVICE_MQTT.extend({vol.Required(ATTR_ADDON): str}) class MQTTService(ServiceInterface): diff --git a/supervisor/services/modules/mysql.py b/supervisor/services/modules/mysql.py index cef530e44..286eee764 100644 --- a/supervisor/services/modules/mysql.py +++ b/supervisor/services/modules/mysql.py @@ -24,16 +24,14 @@ _LOGGER: logging.Logger = logging.getLogger(__name__) # pylint: disable=no-value-for-parameter SCHEMA_SERVICE_MYSQL = vol.Schema( { - vol.Required(ATTR_HOST): vol.Coerce(str), + vol.Required(ATTR_HOST): str, vol.Required(ATTR_PORT): network_port, - vol.Optional(ATTR_USERNAME): vol.Coerce(str), - vol.Optional(ATTR_PASSWORD): vol.Coerce(str), + vol.Optional(ATTR_USERNAME): str, + vol.Optional(ATTR_PASSWORD): str, } ) -SCHEMA_CONFIG_MYSQL = SCHEMA_SERVICE_MYSQL.extend( - {vol.Required(ATTR_ADDON): vol.Coerce(str)} -) +SCHEMA_CONFIG_MYSQL = SCHEMA_SERVICE_MYSQL.extend({vol.Required(ATTR_ADDON): str}) class MySQLService(ServiceInterface): diff --git a/supervisor/store/validate.py b/supervisor/store/validate.py index 24bdb492a..9ce8dd48c 100644 --- a/supervisor/store/validate.py +++ b/supervisor/store/validate.py @@ -7,9 +7,9 @@ from ..const import ATTR_MAINTAINER, ATTR_NAME, ATTR_URL # pylint: disable=no-value-for-parameter SCHEMA_REPOSITORY_CONFIG = vol.Schema( { - vol.Required(ATTR_NAME): vol.Coerce(str), + vol.Required(ATTR_NAME): str, vol.Optional(ATTR_URL): vol.Url(), - vol.Optional(ATTR_MAINTAINER): vol.Coerce(str), + vol.Optional(ATTR_MAINTAINER): str, }, extra=vol.REMOVE_EXTRA, ) diff --git a/supervisor/validate.py b/supervisor/validate.py index 9ec027783..54d83bb2f 100644 --- a/supervisor/validate.py +++ b/supervisor/validate.py @@ -54,10 +54,14 @@ sha256 = vol.Match(r"^[0-9a-f]{64}$") token = vol.Match(r"^[0-9a-f]{32,256}$") -def version_tag(value: Union[str, None, int, float]) -> Optional[AwesomeVersion]: +def version_tag( + value: Union[str, None, int, float, AwesomeVersion] +) -> Optional[AwesomeVersion]: """Validate main version handling.""" if value is None: return None + if isinstance(value, AwesomeVersion): + return value return AwesomeVersion(value) @@ -98,7 +102,7 @@ repositories = vol.All([validate_repository], vol.Unique()) docker_port = vol.All(str, vol.Match(r"^\d+(?:/tcp|/udp)?$")) docker_ports = vol.Schema({docker_port: vol.Maybe(network_port)}) -docker_ports_description = vol.Schema({docker_port: vol.Coerce(str)}) +docker_ports_description = vol.Schema({docker_port: str}) # pylint: disable=no-value-for-parameter @@ -137,7 +141,7 @@ SCHEMA_UPDATER_CONFIG = vol.Schema( SCHEMA_SUPERVISOR_CONFIG = vol.Schema( { vol.Optional(ATTR_TIMEZONE): validate_timezone, - vol.Optional(ATTR_LAST_BOOT): vol.Coerce(str), + vol.Optional(ATTR_LAST_BOOT): str, vol.Optional( ATTR_VERSION, default=AwesomeVersion(SUPERVISOR_VERSION) ): version_tag, @@ -178,9 +182,7 @@ SCHEMA_INGRESS_CONFIG = vol.Schema( vol.Required(ATTR_SESSION, default=dict): vol.Schema( {token: vol.Coerce(float)} ), - vol.Required(ATTR_PORTS, default=dict): vol.Schema( - {vol.Coerce(str): network_port} - ), + vol.Required(ATTR_PORTS, default=dict): vol.Schema({str: network_port}), }, extra=vol.REMOVE_EXTRA, )