1
0
mirror of https://github.com/esphome/esphome.git synced 2025-09-12 16:22:22 +01:00

[core/pins] improve pins types (#8848)

Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
This commit is contained in:
Thomas Rupprecht
2025-06-11 20:06:41 +02:00
committed by GitHub
parent f467c79a20
commit a59e1c7011
6 changed files with 16 additions and 12 deletions

View File

@@ -1,5 +1,8 @@
from collections.abc import Callable
from functools import reduce
from logging import Logger
import operator
from typing import Any
import esphome.config_validation as cv
from esphome.const import (
@@ -15,6 +18,7 @@ from esphome.const import (
CONF_PULLUP,
)
from esphome.core import CORE
from esphome.cpp_generator import MockObjClass
class PinRegistry(dict):
@@ -262,7 +266,7 @@ internal_gpio_input_pullup_pin_number = _internal_number_creator(
)
def check_strapping_pin(conf, strapping_pin_list, logger):
def check_strapping_pin(conf, strapping_pin_list: set[int], logger: Logger):
num = conf[CONF_NUMBER]
if num in strapping_pin_list and not conf.get(CONF_IGNORE_STRAPPING_WARNING):
logger.warning(
@@ -291,11 +295,11 @@ def gpio_validate_modes(value):
def gpio_base_schema(
pin_type,
number_validator,
pin_type: MockObjClass,
number_validator: Callable[[Any], Any],
modes=GPIO_STANDARD_MODES,
mode_validator=gpio_validate_modes,
invertable=True,
mode_validator: Callable[[Any], Any] = gpio_validate_modes,
invertible: bool = True,
):
"""
Generate a base gpio pin schema
@@ -303,7 +307,7 @@ def gpio_base_schema(
:param number_validator: A validator for the pin number
:param modes: The available modes, default is all standard modes
:param mode_validator: A validator function for the pin mode
:param invertable: If the pin supports hardware inversion
:param invertible: If the pin supports hardware inversion
:return: A schema for the pin
"""
mode_default = len(modes) == 1
@@ -328,7 +332,7 @@ def gpio_base_schema(
}
)
if invertable:
if invertible:
return schema.extend({cv.Optional(CONF_INVERTED, default=False): cv.boolean})
return schema