Merge pull request #3833 from esphome/bump-2022.9.0b4

2022.9.0b4
This commit is contained in:
Jesse Hills 2022-09-21 09:09:20 +12:00 committed by GitHub
commit e5fe5d1249
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 25 additions and 11 deletions

View file

@ -165,15 +165,19 @@ class Config(OrderedDict, fv.FinalValidateConfig):
return err return err
return None return None
def get_deepest_document_range_for_path(self, path): def get_deepest_document_range_for_path(self, path, get_key=False):
# type: (ConfigPath) -> Optional[ESPHomeDataBase] # type: (ConfigPath, bool) -> Optional[ESPHomeDataBase]
data = self data = self
doc_range = None doc_range = None
for item_index in path: for index, path_item in enumerate(path):
try: try:
if item_index in data: if path_item in data:
doc_range = [x for x in data.keys() if x == item_index][0].esp_range key_data = [x for x in data.keys() if x == path_item][0]
data = data[item_index] if isinstance(key_data, ESPHomeDataBase):
doc_range = key_data.esp_range
if get_key and index == len(path) - 1:
return doc_range
data = data[path_item]
except (KeyError, IndexError, TypeError, AttributeError): except (KeyError, IndexError, TypeError, AttributeError):
return doc_range return doc_range
if isinstance(data, core.ID): if isinstance(data, core.ID):
@ -281,7 +285,7 @@ class ConfigValidationStep(abc.ABC):
class LoadValidationStep(ConfigValidationStep): class LoadValidationStep(ConfigValidationStep):
"""Load step, this step is called once for each domain config fragment. """Load step, this step is called once for each domain config fragment.
Responsibilties: Responsibilities:
- Load component code - Load component code
- Ensure all AUTO_LOADs are added - Ensure all AUTO_LOADs are added
- Set output paths of result - Set output paths of result
@ -738,6 +742,10 @@ def validate_config(config, command_line_substitutions) -> Config:
result.add_validation_step(LoadValidationStep(key, config[key])) result.add_validation_step(LoadValidationStep(key, config[key]))
result.run_validation_steps() result.run_validation_steps()
if result.errors:
# do not try to validate further as we don't know what the target is
return result
for domain, conf in config.items(): for domain, conf in config.items():
result.add_validation_step(LoadValidationStep(domain, conf)) result.add_validation_step(LoadValidationStep(domain, conf))
result.add_validation_step(IDPassValidationStep()) result.add_validation_step(IDPassValidationStep())

View file

@ -1,6 +1,6 @@
"""Constants used by esphome.""" """Constants used by esphome."""
__version__ = "2022.9.0b3" __version__ = "2022.9.0b4"
ALLOWED_NAME_CHARS = "abcdefghijklmnopqrstuvwxyz0123456789-_" ALLOWED_NAME_CHARS = "abcdefghijklmnopqrstuvwxyz0123456789-_"

View file

@ -179,7 +179,11 @@ def preload_core_config(config, result):
] ]
if not has_oldstyle and not newstyle_found: if not has_oldstyle and not newstyle_found:
raise cv.Invalid("Platform missing for core options!", [CONF_ESPHOME]) raise cv.Invalid(
"Platform missing. You must include one of the available platform keys: "
+ ", ".join(TARGET_PLATFORMS),
[CONF_ESPHOME],
)
if has_oldstyle and newstyle_found: if has_oldstyle and newstyle_found:
raise cv.Invalid( raise cv.Invalid(
f"Please remove the `platform` key from the [esphome] block. You're already using the new style with the [{conf[CONF_PLATFORM]}] block", f"Please remove the `platform` key from the [esphome] block. You're already using the new style with the [{conf[CONF_PLATFORM]}] block",

View file

@ -12,7 +12,9 @@ from typing import Optional
def _get_invalid_range(res, invalid): def _get_invalid_range(res, invalid):
# type: (Config, cv.Invalid) -> Optional[DocumentRange] # type: (Config, cv.Invalid) -> Optional[DocumentRange]
return res.get_deepest_document_range_for_path(invalid.path) return res.get_deepest_document_range_for_path(
invalid.path, invalid.error_message == "extra keys not allowed"
)
def _dump_range(range): def _dump_range(range):

View file

@ -9,7 +9,7 @@ pyserial==3.5
platformio==6.0.2 # When updating platformio, also update Dockerfile platformio==6.0.2 # When updating platformio, also update Dockerfile
esptool==3.3.1 esptool==3.3.1
click==8.1.3 click==8.1.3
esphome-dashboard==20220919.1 esphome-dashboard==20220920.0
aioesphomeapi==10.13.0 aioesphomeapi==10.13.0
zeroconf==0.39.1 zeroconf==0.39.1