From 0cf9b05afd7ebb1b680eff71bb5107da87601a7b Mon Sep 17 00:00:00 2001 From: Jesse Hills <3060199+jesserockz@users.noreply.github.com> Date: Tue, 13 May 2025 17:07:57 +1200 Subject: [PATCH] [select] Tidy schema generation (#8775) --- esphome/components/select/__init__.py | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/esphome/components/select/__init__.py b/esphome/components/select/__init__.py index 2b31ae36d8..ecbba8677b 100644 --- a/esphome/components/select/__init__.py +++ b/esphome/components/select/__init__.py @@ -66,29 +66,25 @@ _SELECT_SCHEMA = ( def select_schema( - class_: MockObjClass = cv.UNDEFINED, + class_: MockObjClass, *, entity_category: str = cv.UNDEFINED, icon: str = cv.UNDEFINED, ): - schema = cv.Schema({}) - if class_ is not cv.UNDEFINED: - schema = schema.extend({cv.GenerateID(): cv.declare_id(class_)}) - if entity_category is not cv.UNDEFINED: - schema = schema.extend( - { - cv.Optional( - CONF_ENTITY_CATEGORY, default=entity_category - ): cv.entity_category - } - ) - if icon is not cv.UNDEFINED: - schema = schema.extend({cv.Optional(CONF_ICON, default=icon): cv.icon}) + schema = {cv.GenerateID(): cv.declare_id(class_)} + + for key, default, validator in [ + (CONF_ENTITY_CATEGORY, entity_category, cv.entity_category), + (CONF_ICON, icon, cv.icon), + ]: + if default is not cv.UNDEFINED: + schema[cv.Optional(key, default=default)] = validator + return _SELECT_SCHEMA.extend(schema) # Remove before 2025.11.0 -SELECT_SCHEMA = select_schema() +SELECT_SCHEMA = select_schema(Select) SELECT_SCHEMA.add_extra(cv.deprecated_schema_constant("select"))