mirror of
https://github.com/esphome/esphome.git
synced 2026-09-01 10:36:01 +00:00
[yaml] Add IncludeFile representer to ESPHomeDumper
The deferred IncludeFile objects introduced in #12213 could not be serialized by the YAML dumper, causing test_build_components to fail when merging configs that contain !include package references. Uses add_multi_representer to also match the dynamically-created ESPHomeDataBase subclass produced by add_class_to_obj.
This commit is contained in:
@@ -754,6 +754,9 @@ class ESPHomeDumper(yaml.SafeDumper):
|
||||
def represent_remove(self, value):
|
||||
return self.represent_scalar(tag="!remove", value=value.value)
|
||||
|
||||
def represent_include_file(self, value):
|
||||
return self.represent_scalar(tag="!include", value=value.file.as_posix())
|
||||
|
||||
def represent_id(self, value):
|
||||
if is_secret(value.id):
|
||||
return self.represent_secret(value.id)
|
||||
@@ -785,3 +788,4 @@ ESPHomeDumper.add_multi_representer(Remove, ESPHomeDumper.represent_remove)
|
||||
ESPHomeDumper.add_multi_representer(core.ID, ESPHomeDumper.represent_id)
|
||||
ESPHomeDumper.add_multi_representer(uuid.UUID, ESPHomeDumper.represent_stringify)
|
||||
ESPHomeDumper.add_multi_representer(Path, ESPHomeDumper.represent_stringify)
|
||||
ESPHomeDumper.add_multi_representer(IncludeFile, ESPHomeDumper.represent_include_file)
|
||||
|
||||
Reference in New Issue
Block a user