1
0
mirror of https://github.com/esphome/esphome.git synced 2025-10-18 17:53:47 +01:00

[esp32_ble] Refactor to use CORE.data instead of module-level globals

This commit is contained in:
J. Nick Koston
2025-10-13 18:08:52 -10:00
parent fe07c34246
commit dd0699305e

View File

@@ -107,8 +107,13 @@ class BTLoggers(Enum):
"""ESP32 WiFi provisioning over Bluetooth""" """ESP32 WiFi provisioning over Bluetooth"""
# Set to track which loggers are needed by components # Key for storing required loggers in CORE.data
_required_loggers: set[BTLoggers] = set() ESP32_BLE_REQUIRED_LOGGERS_KEY = "esp32_ble_required_loggers"
def _get_required_loggers() -> set[BTLoggers]:
"""Get the set of required Bluetooth loggers from CORE.data."""
return CORE.data.setdefault(ESP32_BLE_REQUIRED_LOGGERS_KEY, set())
def register_bt_logger(*loggers: BTLoggers) -> None: def register_bt_logger(*loggers: BTLoggers) -> None:
@@ -117,12 +122,13 @@ def register_bt_logger(*loggers: BTLoggers) -> None:
Args: Args:
*loggers: One or more BTLoggers enum members *loggers: One or more BTLoggers enum members
""" """
required_loggers = _get_required_loggers()
for logger in loggers: for logger in loggers:
if not isinstance(logger, BTLoggers): if not isinstance(logger, BTLoggers):
raise TypeError( raise TypeError(
f"Logger must be a BTLoggers enum member, got {type(logger)}" f"Logger must be a BTLoggers enum member, got {type(logger)}"
) )
_required_loggers.add(logger) required_loggers.add(logger)
CONF_BLE_ID = "ble_id" CONF_BLE_ID = "ble_id"
@@ -396,8 +402,9 @@ async def to_code(config):
# Apply logger settings if log disabling is enabled # Apply logger settings if log disabling is enabled
if config.get(CONF_DISABLE_BT_LOGS, False): if config.get(CONF_DISABLE_BT_LOGS, False):
# Disable all Bluetooth loggers that are not required # Disable all Bluetooth loggers that are not required
required_loggers = _get_required_loggers()
for logger in BTLoggers: for logger in BTLoggers:
if logger not in _required_loggers: if logger not in required_loggers:
add_idf_sdkconfig_option(f"{logger.value}_NONE", True) add_idf_sdkconfig_option(f"{logger.value}_NONE", True)
# Set BLE connection establishment timeout to match aioesphomeapi/bleak-retry-connector # Set BLE connection establishment timeout to match aioesphomeapi/bleak-retry-connector