1
0
mirror of https://github.com/esphome/esphome.git synced 2025-10-24 12:43:51 +01:00

Merge branch 'clean_comp_removed' into integration

This commit is contained in:
J. Nick Koston
2025-08-14 09:41:04 -05:00
9 changed files with 160 additions and 10 deletions

View File

@@ -294,6 +294,7 @@ async def to_code(config):
if config[CONF_ADVERTISING]:
cg.add_define("USE_ESP32_BLE_ADVERTISING")
cg.add_define("USE_ESP32_BLE_UUID")
@automation.register_condition("ble.enabled", BLEEnabledCondition, cv.Schema({}))

View File

@@ -212,7 +212,7 @@ def validate_use_legacy(value):
f"All i2s_audio components must set {CONF_USE_LEGACY} to the same value."
)
if (not value[CONF_USE_LEGACY]) and (CORE.using_arduino):
raise cv.Invalid("Arduino supports only the legacy i2s driver.")
raise cv.Invalid("Arduino supports only the legacy i2s driver")
_use_legacy_driver = value[CONF_USE_LEGACY]
return value

View File

@@ -92,7 +92,7 @@ CONFIG_SCHEMA = cv.All(
def _final_validate(_):
if not use_legacy():
raise cv.Invalid("I2S media player is only compatible with legacy i2s driver.")
raise cv.Invalid("I2S media player is only compatible with legacy i2s driver")
FINAL_VALIDATE_SCHEMA = _final_validate

View File

@@ -122,7 +122,7 @@ CONFIG_SCHEMA = cv.All(
def _final_validate(config):
if not use_legacy() and config[CONF_ADC_TYPE] == "internal":
raise cv.Invalid("Internal ADC is only compatible with legacy i2s driver.")
raise cv.Invalid("Internal ADC is only compatible with legacy i2s driver")
FINAL_VALIDATE_SCHEMA = _final_validate

View File

@@ -163,7 +163,7 @@ CONFIG_SCHEMA = cv.All(
def _final_validate(config):
if not use_legacy():
if config[CONF_DAC_TYPE] == "internal":
raise cv.Invalid("Internal DAC is only compatible with legacy i2s driver.")
raise cv.Invalid("Internal DAC is only compatible with legacy i2s driver")
if config[CONF_I2S_COMM_FMT] == "stand_max":
raise cv.Invalid(
"I2S standard max format only implemented with legacy i2s driver."

View File

@@ -201,7 +201,7 @@ def _validate_manifest_version(manifest_data):
else:
raise cv.Invalid("Invalid manifest version")
else:
raise cv.Invalid("Invalid manifest file, missing 'version' key.")
raise cv.Invalid("Invalid manifest file, missing 'version' key")
def _process_http_source(config):
@@ -421,7 +421,7 @@ def _feature_step_size_validate(config):
if features_step_size is None:
features_step_size = model_step_size
elif features_step_size != model_step_size:
raise cv.Invalid("Cannot load models with different features step sizes.")
raise cv.Invalid("Cannot load models with different features step sizes")
FINAL_VALIDATE_SCHEMA = cv.All(

View File

@@ -147,7 +147,7 @@ def _read_audio_file_and_type(file_config):
elif file_source == TYPE_WEB:
path = _compute_local_file_path(conf_file)
else:
raise cv.Invalid("Unsupported file source.")
raise cv.Invalid("Unsupported file source")
with open(path, "rb") as f:
data = f.read()
@@ -219,7 +219,7 @@ def _validate_supported_local_file(config):
for file_config in config.get(CONF_FILES, []):
_, media_file_type = _read_audio_file_and_type(file_config)
if str(media_file_type) == str(audio.AUDIO_FILE_TYPE_ENUM["NONE"]):
raise cv.Invalid("Unsupported local media file.")
raise cv.Invalid("Unsupported local media file")
if not config[CONF_CODEC_SUPPORT_ENABLED] and str(media_file_type) != str(
audio.AUDIO_FILE_TYPE_ENUM["WAV"]
):

View File

@@ -86,7 +86,10 @@ def storage_should_clean(old: StorageJSON, new: StorageJSON) -> bool:
if old.src_version != new.src_version:
return True
return old.build_path != new.build_path
if old.build_path != new.build_path:
return True
# Check if any components have been removed
return bool(old.loaded_integrations - new.loaded_integrations)
def storage_should_update_cmake_cache(old: StorageJSON, new: StorageJSON) -> bool:
@@ -108,7 +111,14 @@ def update_storage_json():
return
if storage_should_clean(old, new):
_LOGGER.info("Core config, version changed, cleaning build files...")
if old and old.loaded_integrations - new.loaded_integrations:
removed = old.loaded_integrations - new.loaded_integrations
_LOGGER.info(
"Components removed (%s), cleaning build files...",
", ".join(sorted(removed)),
)
else:
_LOGGER.info("Core config or version changed, cleaning build files...")
clean_build()
elif storage_should_update_cmake_cache(old, new):
_LOGGER.info("Integrations changed, cleaning cmake cache...")