1
0
mirror of https://github.com/esphome/esphome.git synced 2025-10-21 19:23:45 +01:00

[esp32_ble] Refactor to use CORE.data instead of module-level globals (#11222)

This commit is contained in:
J. Nick Koston
2025-10-15 17:17:16 -10:00
committed by GitHub
parent 3e1c8f37c5
commit 2b0b82b2fb

View File

@@ -108,8 +108,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())
# Dataclass for handler registration counts # Dataclass for handler registration counts
@@ -170,12 +175,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"
@@ -488,8 +494,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