mirror of
https://github.com/esphome/esphome.git
synced 2025-03-15 15:18:16 +00:00
move splitdefault
This commit is contained in:
parent
35259fb4dc
commit
b1a1a6788e
@ -1,10 +1,9 @@
|
|||||||
import re
|
import re
|
||||||
|
|
||||||
import voluptuous as vol
|
|
||||||
|
|
||||||
from esphome import automation
|
from esphome import automation
|
||||||
from esphome.automation import LambdaAction
|
from esphome.automation import LambdaAction
|
||||||
import esphome.codegen as cg
|
import esphome.codegen as cg
|
||||||
|
from esphome.components import zephyr
|
||||||
from esphome.components.esp32 import add_idf_sdkconfig_option, get_esp32_variant
|
from esphome.components.esp32 import add_idf_sdkconfig_option, get_esp32_variant
|
||||||
from esphome.components.esp32.const import (
|
from esphome.components.esp32.const import (
|
||||||
VARIANT_ESP32,
|
VARIANT_ESP32,
|
||||||
@ -185,44 +184,6 @@ LoggerMessageTrigger = logger_ns.class_(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def _get_default_key(*args):
|
|
||||||
return ["_".join([CORE.target_platform] + list(args))]
|
|
||||||
|
|
||||||
|
|
||||||
# https://github.com/esphome/esphome/pull/7715
|
|
||||||
class _SplitDefault(cv.Optional):
|
|
||||||
"""Mark this key to have a split default for ESP8266/ESP32."""
|
|
||||||
|
|
||||||
def __init__(self, key, **kwargs):
|
|
||||||
super().__init__(key)
|
|
||||||
|
|
||||||
self._defaults = {}
|
|
||||||
|
|
||||||
for platform_key, value in kwargs.items():
|
|
||||||
self._defaults[platform_key] = vol.default_factory(value)
|
|
||||||
|
|
||||||
@property
|
|
||||||
def default(self):
|
|
||||||
keys = []
|
|
||||||
if CORE.is_esp32:
|
|
||||||
variant = get_esp32_variant().replace(VARIANT_ESP32, "").lower()
|
|
||||||
framework = CORE.target_framework.replace("esp-", "")
|
|
||||||
if variant:
|
|
||||||
keys += _get_default_key(variant, framework)
|
|
||||||
keys += _get_default_key(variant)
|
|
||||||
keys += _get_default_key(framework)
|
|
||||||
keys += _get_default_key()
|
|
||||||
for key in keys:
|
|
||||||
if self._defaults.get(key) is not None:
|
|
||||||
return self._defaults[key]
|
|
||||||
return vol.default_factory(vol.UNDEFINED)
|
|
||||||
|
|
||||||
@default.setter
|
|
||||||
def default(self, value):
|
|
||||||
# Ignore default set from vol.Optional
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
PLATFORM_NRF52 = "nrf52"
|
PLATFORM_NRF52 = "nrf52"
|
||||||
CONF_ESP8266_STORE_LOG_STRINGS_IN_FLASH = "esp8266_store_log_strings_in_flash"
|
CONF_ESP8266_STORE_LOG_STRINGS_IN_FLASH = "esp8266_store_log_strings_in_flash"
|
||||||
CONFIG_SCHEMA = cv.All(
|
CONFIG_SCHEMA = cv.All(
|
||||||
@ -233,7 +194,7 @@ CONFIG_SCHEMA = cv.All(
|
|||||||
cv.Optional(CONF_TX_BUFFER_SIZE, default=512): cv.validate_bytes,
|
cv.Optional(CONF_TX_BUFFER_SIZE, default=512): cv.validate_bytes,
|
||||||
cv.Optional(CONF_DEASSERT_RTS_DTR, default=False): cv.boolean,
|
cv.Optional(CONF_DEASSERT_RTS_DTR, default=False): cv.boolean,
|
||||||
# https://github.com/esphome/esphome/pull/7715
|
# https://github.com/esphome/esphome/pull/7715
|
||||||
_SplitDefault(
|
zephyr.SplitDefault(
|
||||||
CONF_HARDWARE_UART,
|
CONF_HARDWARE_UART,
|
||||||
esp8266=UART0,
|
esp8266=UART0,
|
||||||
esp32=UART0,
|
esp32=UART0,
|
||||||
@ -275,7 +236,7 @@ CONFIG_SCHEMA = cv.All(
|
|||||||
}
|
}
|
||||||
),
|
),
|
||||||
# https://github.com/esphome/esphome/pull/7715
|
# https://github.com/esphome/esphome/pull/7715
|
||||||
_SplitDefault(
|
zephyr.SplitDefault(
|
||||||
CONF_ESP8266_STORE_LOG_STRINGS_IN_FLASH, esp8266=True
|
CONF_ESP8266_STORE_LOG_STRINGS_IN_FLASH, esp8266=True
|
||||||
): cv.All(cv.only_on_esp8266, cv.boolean),
|
): cv.All(cv.only_on_esp8266, cv.boolean),
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,10 @@
|
|||||||
import os
|
import os
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
|
||||||
|
import voluptuous as vol
|
||||||
|
|
||||||
import esphome.codegen as cg
|
import esphome.codegen as cg
|
||||||
|
import esphome.config_validation as cv
|
||||||
from esphome.const import CONF_BOARD, KEY_NAME
|
from esphome.const import CONF_BOARD, KEY_NAME
|
||||||
from esphome.core import CORE
|
from esphome.core import CORE
|
||||||
from esphome.helpers import copy_file_if_changed, write_file_if_changed
|
from esphome.helpers import copy_file_if_changed, write_file_if_changed
|
||||||
@ -178,3 +181,44 @@ def copy_files():
|
|||||||
file[KEY_PATH],
|
file[KEY_PATH],
|
||||||
CORE.relative_build_path(file[KEY_NAME]),
|
CORE.relative_build_path(file[KEY_NAME]),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def _get_default_key(*args):
|
||||||
|
return ["_".join([CORE.target_platform] + list(args))]
|
||||||
|
|
||||||
|
|
||||||
|
# https://github.com/esphome/esphome/pull/7715
|
||||||
|
class SplitDefault(cv.Optional):
|
||||||
|
"""Mark this key to have a split default for ESP8266/ESP32."""
|
||||||
|
|
||||||
|
def __init__(self, key, **kwargs):
|
||||||
|
super().__init__(key)
|
||||||
|
|
||||||
|
self._defaults = {}
|
||||||
|
|
||||||
|
for platform_key, value in kwargs.items():
|
||||||
|
self._defaults[platform_key] = vol.default_factory(value)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def default(self):
|
||||||
|
keys = []
|
||||||
|
if CORE.is_esp32:
|
||||||
|
from esphome.components.esp32 import get_esp32_variant
|
||||||
|
from esphome.components.esp32.const import VARIANT_ESP32
|
||||||
|
|
||||||
|
variant = get_esp32_variant().replace(VARIANT_ESP32, "").lower()
|
||||||
|
framework = CORE.target_framework.replace("esp-", "")
|
||||||
|
if variant:
|
||||||
|
keys += _get_default_key(variant, framework)
|
||||||
|
keys += _get_default_key(variant)
|
||||||
|
keys += _get_default_key(framework)
|
||||||
|
keys += _get_default_key()
|
||||||
|
for key in keys:
|
||||||
|
if self._defaults.get(key) is not None:
|
||||||
|
return self._defaults[key]
|
||||||
|
return vol.default_factory(vol.UNDEFINED)
|
||||||
|
|
||||||
|
@default.setter
|
||||||
|
def default(self, value):
|
||||||
|
# Ignore default set from vol.Optional
|
||||||
|
pass
|
||||||
|
Loading…
x
Reference in New Issue
Block a user