From 2a2d20a7fc10ea7d27382a7372225b72e0139b34 Mon Sep 17 00:00:00 2001 From: Guillermo Ruffino Date: Sun, 25 Jun 2023 18:38:36 -0300 Subject: [PATCH] support empty schemas and one platform components (#4999) --- script/build_language_schema.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/script/build_language_schema.py b/script/build_language_schema.py index dd8eccde9..c6fcf5eb6 100644 --- a/script/build_language_schema.py +++ b/script/build_language_schema.py @@ -461,8 +461,10 @@ def merge(source, destination): def is_platform_schema(schema_name): # added mostly because of schema_name == "microphone.MICROPHONE_SCHEMA" + # and "alarm_control_panel" # which is shrunk because there is only one component of the schema (i2s_audio) - return schema_name == "microphone.MICROPHONE_SCHEMA" + component = schema_name.split(".")[0] + return component in components and components[component].is_platform_component def shrink(): @@ -530,6 +532,10 @@ def shrink(): elif not key_s: for target in paths: target_s = get_arr_path_schema(target) + if S_SCHEMA not in target_s: + # an empty schema like speaker.SPEAKER_SCHEMA + target_s[S_EXTENDS].remove(x) + continue assert target_s[S_SCHEMA][S_EXTENDS] == [x] target_s.pop(S_SCHEMA) target_s.pop(S_TYPE) # undefined