mirror of
https://github.com/esphome/esphome.git
synced 2024-12-22 16:37:52 +01:00
This commit is contained in:
parent
32efa5d83e
commit
55388724af
@ -186,6 +186,7 @@ def ensure_list(*validators):
|
|||||||
None and empty dictionaries are converted to empty lists.
|
None and empty dictionaries are converted to empty lists.
|
||||||
"""
|
"""
|
||||||
user = All(*validators)
|
user = All(*validators)
|
||||||
|
list_schema = Schema([user])
|
||||||
|
|
||||||
def validator(value):
|
def validator(value):
|
||||||
check_not_templatable(value)
|
check_not_templatable(value)
|
||||||
@ -193,19 +194,7 @@ def ensure_list(*validators):
|
|||||||
return []
|
return []
|
||||||
if not isinstance(value, list):
|
if not isinstance(value, list):
|
||||||
return [user(value)]
|
return [user(value)]
|
||||||
ret = []
|
return list_schema(value)
|
||||||
errs = []
|
|
||||||
for i, val in enumerate(value):
|
|
||||||
try:
|
|
||||||
with prepend_path([i]):
|
|
||||||
ret.append(user(val))
|
|
||||||
except MultipleInvalid as err:
|
|
||||||
errs.extend(err.errors)
|
|
||||||
except Invalid as err:
|
|
||||||
errs.append(err)
|
|
||||||
if errs:
|
|
||||||
raise MultipleInvalid(errs)
|
|
||||||
return ret
|
|
||||||
|
|
||||||
return validator
|
return validator
|
||||||
|
|
||||||
@ -811,6 +800,7 @@ def mqtt_qos(value):
|
|||||||
|
|
||||||
def requires_component(comp):
|
def requires_component(comp):
|
||||||
"""Validate that this option can only be specified when the component `comp` is loaded."""
|
"""Validate that this option can only be specified when the component `comp` is loaded."""
|
||||||
|
# pylint: disable=unsupported-membership-test
|
||||||
def validator(value):
|
def validator(value):
|
||||||
# pylint: disable=unsupported-membership-test
|
# pylint: disable=unsupported-membership-test
|
||||||
if comp not in CORE.raw_config:
|
if comp not in CORE.raw_config:
|
||||||
|
@ -553,7 +553,6 @@ class EsphomeCore:
|
|||||||
if self.config is None:
|
if self.config is None:
|
||||||
raise ValueError("Config has not been loaded yet")
|
raise ValueError("Config has not been loaded yet")
|
||||||
|
|
||||||
# pylint: disable=unsupported-membership-test,unsubscriptable-object
|
|
||||||
if 'wifi' in self.config:
|
if 'wifi' in self.config:
|
||||||
return self.config[CONF_WIFI][CONF_USE_ADDRESS]
|
return self.config[CONF_WIFI][CONF_USE_ADDRESS]
|
||||||
|
|
||||||
@ -567,7 +566,6 @@ class EsphomeCore:
|
|||||||
if self.config is None:
|
if self.config is None:
|
||||||
raise ValueError("Config has not been loaded yet")
|
raise ValueError("Config has not been loaded yet")
|
||||||
|
|
||||||
# pylint: disable=unsubscriptable-object
|
|
||||||
if CONF_COMMENT in self.config[CONF_ESPHOME]:
|
if CONF_COMMENT in self.config[CONF_ESPHOME]:
|
||||||
return self.config[CONF_ESPHOME][CONF_COMMENT]
|
return self.config[CONF_ESPHOME][CONF_COMMENT]
|
||||||
|
|
||||||
@ -584,7 +582,6 @@ class EsphomeCore:
|
|||||||
if self.config is None:
|
if self.config is None:
|
||||||
raise ValueError("Config has not been loaded yet")
|
raise ValueError("Config has not been loaded yet")
|
||||||
|
|
||||||
# pylint: disable=unsubscriptable-object
|
|
||||||
return self.config[CONF_ESPHOME][CONF_ARDUINO_VERSION]
|
return self.config[CONF_ESPHOME][CONF_ARDUINO_VERSION]
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
@ -52,7 +52,8 @@ class _Schema(vol.Schema):
|
|||||||
all_required_keys = {key for key in schema if isinstance(key, vol.Required)}
|
all_required_keys = {key for key in schema if isinstance(key, vol.Required)}
|
||||||
|
|
||||||
# Keys that may have defaults
|
# Keys that may have defaults
|
||||||
all_default_keys = {key for key in schema if isinstance(key, vol.Optional)}
|
# This is a list because sets do not guarantee insertion order
|
||||||
|
all_default_keys = [key for key in schema if isinstance(key, vol.Optional)]
|
||||||
|
|
||||||
# Recursively compile schema
|
# Recursively compile schema
|
||||||
_compiled_schema = {}
|
_compiled_schema = {}
|
||||||
|
@ -338,7 +338,7 @@ class ESPHomeDumper(yaml.SafeDumper): # pylint: disable=too-many-ancestors
|
|||||||
self.represented_objects[self.alias_key] = node
|
self.represented_objects[self.alias_key] = node
|
||||||
best_style = True
|
best_style = True
|
||||||
if hasattr(mapping, 'items'):
|
if hasattr(mapping, 'items'):
|
||||||
mapping = sorted(mapping.items(), key=lambda item: item[0])
|
mapping = list(mapping.items())
|
||||||
for item_key, item_value in mapping:
|
for item_key, item_value in mapping:
|
||||||
node_key = self.represent_data(item_key)
|
node_key = self.represent_data(item_key)
|
||||||
node_value = self.represent_data(item_value)
|
node_value = self.represent_data(item_value)
|
||||||
|
Loading…
Reference in New Issue
Block a user