mirror of
https://github.com/esphome/esphome.git
synced 2025-07-28 14:16:40 +00:00
[select] Tidy schema generation (#8775)
This commit is contained in:
parent
8b65d1673a
commit
0cf9b05afd
@ -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"))
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user