mirror of
https://github.com/esphome/esphome.git
synced 2026-07-10 08:55:36 +00:00
Merge remote-tracking branch 'upstream/dev' into integration
This commit is contained in:
@@ -31,7 +31,7 @@ BMP581SPIComponent = bmp581_ns.class_(
|
||||
def check_spi_mode(config):
|
||||
spi_mode = config.get(CONF_SPI_MODE)
|
||||
if spi_mode not in VALID_SPI_MODES:
|
||||
raise cv.Invalid("BMP581 only supports SPI mode 3")
|
||||
raise cv.Invalid("BMP581 only supports SPI mode 0 or mode 3")
|
||||
return config
|
||||
|
||||
|
||||
|
||||
@@ -119,7 +119,7 @@ DisplayMenuOnPrevTrigger = display_menu_base_ns.class_(
|
||||
|
||||
|
||||
def validate_format(format):
|
||||
if re.search(r"^%([+-])*(\d+)*(\.\d+)*[fg]$", format) is None:
|
||||
if re.search(r"^%[+-]*(\d+)?(\.\d+)?[fg]$", format) is None:
|
||||
raise cv.Invalid(
|
||||
f"{CONF_FORMAT}: has to specify a printf-like format string specifying exactly one f or g type conversion, '{format}' provided"
|
||||
)
|
||||
|
||||
@@ -24,7 +24,6 @@ CODEOWNERS = ["@vincentscode", "@latonita"]
|
||||
ens160_ns = cg.esphome_ns.namespace("ens160_base")
|
||||
|
||||
CONF_AQI = "aqi"
|
||||
UNIT_INDEX = "index"
|
||||
|
||||
CONFIG_SCHEMA_BASE = cv.Schema(
|
||||
{
|
||||
|
||||
@@ -238,7 +238,7 @@ def validate_font_config(config):
|
||||
return config
|
||||
|
||||
|
||||
FONT_EXTENSIONS = (".ttf", ".woff", ".otf", "bdf", ".pcf")
|
||||
FONT_EXTENSIONS = (".ttf", ".woff", ".otf", ".bdf", ".pcf")
|
||||
|
||||
|
||||
def validate_truetype_file(value):
|
||||
|
||||
@@ -18,7 +18,7 @@ CONFIG_SCHEMA = (
|
||||
cv.Schema(
|
||||
{
|
||||
cv.Required(CONF_ID): cv.declare_id(mcp23S08),
|
||||
cv.Optional(CONF_DEVICEADDRESS, default=0): cv.uint8_t,
|
||||
cv.Optional(CONF_DEVICEADDRESS, default=0): cv.int_range(min=0, max=3),
|
||||
}
|
||||
)
|
||||
.extend(mcp23xxx_base.MCP23XXX_CONFIG_SCHEMA)
|
||||
|
||||
@@ -18,7 +18,7 @@ CONFIG_SCHEMA = (
|
||||
cv.Schema(
|
||||
{
|
||||
cv.Required(CONF_ID): cv.declare_id(mcp23S17),
|
||||
cv.Optional(CONF_DEVICEADDRESS, default=0): cv.uint8_t,
|
||||
cv.Optional(CONF_DEVICEADDRESS, default=0): cv.int_range(min=0, max=7),
|
||||
}
|
||||
)
|
||||
.extend(mcp23xxx_base.MCP23XXX_CONFIG_SCHEMA)
|
||||
|
||||
@@ -27,7 +27,7 @@ CONFIG_SCHEMA = cv.All(
|
||||
cv.Required(CONF_DC_PIN): pins.gpio_output_pin_schema,
|
||||
cv.Required(CONF_RESET_PIN): pins.gpio_output_pin_schema,
|
||||
cv.Required(CONF_CS_PIN): pins.gpio_output_pin_schema, # CE
|
||||
cv.Optional(CONF_CONTRAST, default=0x7F): cv.int_,
|
||||
cv.Optional(CONF_CONTRAST, default=0x7F): cv.int_range(min=0, max=127),
|
||||
}
|
||||
)
|
||||
.extend(cv.polling_component_schema("1s"))
|
||||
|
||||
@@ -67,7 +67,7 @@ KNOWN_FIRMWARE = {
|
||||
|
||||
|
||||
def parse_firmware_version(value):
|
||||
match = re.match(r"(\d+).(\d+)", value)
|
||||
match = re.fullmatch(r"(\d+)\.(\d+)", value)
|
||||
if match is None:
|
||||
raise ValueError(f"Not a valid version number {value}")
|
||||
major = int(match[1])
|
||||
@@ -129,7 +129,7 @@ def validate_firmware(value):
|
||||
|
||||
def validate_sha256(value):
|
||||
value = cv.string(value)
|
||||
if not value.isalnum() or not len(value) == 64:
|
||||
if not re.fullmatch(r"[0-9a-fA-F]{64}", value):
|
||||
raise ValueError(f"Not a valid SHA256 hex string: {value}")
|
||||
return value
|
||||
|
||||
|
||||
Reference in New Issue
Block a user