mirror of
https://github.com/esphome/esphome.git
synced 2026-05-20 17:52:00 +08:00
[core] Move FILTER_PLATFORMIO_LINES into platformio_runner (#15707)
This commit is contained in:
@@ -14,45 +14,6 @@ from esphome.util import run_external_process
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
|
||||
IGNORE_LIB_WARNINGS = f"(?:{'|'.join(['Hash', 'Update'])})"
|
||||
FILTER_PLATFORMIO_LINES = [
|
||||
r"Verbose mode can be enabled via `-v, --verbose` option.*",
|
||||
r"CONFIGURATION: https://docs.platformio.org/.*",
|
||||
r"DEBUG: Current.*",
|
||||
r"LDF Modes:.*",
|
||||
r"LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf.*",
|
||||
f"Looking for {IGNORE_LIB_WARNINGS} library in registry",
|
||||
f"Warning! Library `.*'{IGNORE_LIB_WARNINGS}.*` has not been found in PlatformIO Registry.",
|
||||
f"You can ignore this message, if `.*{IGNORE_LIB_WARNINGS}.*` is a built-in library.*",
|
||||
r"Scanning dependencies...",
|
||||
r"Found \d+ compatible libraries",
|
||||
r"Memory Usage -> https://bit.ly/pio-memory-usage",
|
||||
r"Found: https://platformio.org/lib/show/.*",
|
||||
r"Using cache: .*",
|
||||
r"Installing dependencies",
|
||||
r"Library Manager: Already installed, built-in library",
|
||||
r"Building in .* mode",
|
||||
r"Advanced Memory Usage is available via .*",
|
||||
r"Merged .* ELF section",
|
||||
r"esptool.py v.*",
|
||||
r"esptool v.*",
|
||||
r"Checking size .*",
|
||||
r"Retrieving maximum program size .*",
|
||||
r"PLATFORM: .*",
|
||||
r"PACKAGES:.*",
|
||||
r" - framework-arduinoespressif.* \(.*\)",
|
||||
r" - tool-esptool.* \(.*\)",
|
||||
r" - toolchain-.* \(.*\)",
|
||||
r"Creating BIN file .*",
|
||||
r"Warning! Could not find file \".*.crt\"",
|
||||
r"Warning! Arduino framework as an ESP-IDF component doesn't handle the `variant` field! The default `esp32` variant will be used.",
|
||||
r"Warning: DEPRECATED: 'esptool.py' is deprecated. Please use 'esptool' instead. The '.py' suffix will be removed in a future major release.",
|
||||
r"Warning: esp-idf-size exited with code 2",
|
||||
r"esp_idf_size: error: unrecognized arguments: --ng",
|
||||
r"Package configuration completed successfully",
|
||||
]
|
||||
|
||||
|
||||
def run_platformio_cli(*args, **kwargs) -> str | int:
|
||||
os.environ["PLATFORMIO_FORCE_COLOR"] = "true"
|
||||
os.environ["PLATFORMIO_BUILD_DIR"] = str(CORE.relative_pioenvs_path().absolute())
|
||||
|
||||
@@ -101,6 +101,50 @@ def patch_file_downloader() -> None:
|
||||
FileDownloader.__init__ = patched_init
|
||||
|
||||
|
||||
_IGNORE_LIB_WARNINGS = f"(?:{'|'.join(['Hash', 'Update'])})"
|
||||
# Regex patterns matched against each line of PlatformIO output. Lines that
|
||||
# match are dropped by RedirectText before they reach the parent process.
|
||||
# Patterns are anchored at the start of the line (RedirectText uses
|
||||
# ``re.match``). Disabled when the user passes ``-v`` / ``--verbose`` to
|
||||
# ``esphome compile``.
|
||||
FILTER_PLATFORMIO_LINES = [
|
||||
r"Verbose mode can be enabled via `-v, --verbose` option.*",
|
||||
r"CONFIGURATION: https://docs.platformio.org/.*",
|
||||
r"DEBUG: Current.*",
|
||||
r"LDF Modes:.*",
|
||||
r"LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf.*",
|
||||
f"Looking for {_IGNORE_LIB_WARNINGS} library in registry",
|
||||
f"Warning! Library `.*'{_IGNORE_LIB_WARNINGS}.*` has not been found in PlatformIO Registry.",
|
||||
f"You can ignore this message, if `.*{_IGNORE_LIB_WARNINGS}.*` is a built-in library.*",
|
||||
r"Scanning dependencies...",
|
||||
r"Found \d+ compatible libraries",
|
||||
r"Memory Usage -> https://bit.ly/pio-memory-usage",
|
||||
r"Found: https://platformio.org/lib/show/.*",
|
||||
r"Using cache: .*",
|
||||
r"Installing dependencies",
|
||||
r"Library Manager: Already installed, built-in library",
|
||||
r"Building in .* mode",
|
||||
r"Advanced Memory Usage is available via .*",
|
||||
r"Merged .* ELF section",
|
||||
r"esptool.py v.*",
|
||||
r"esptool v.*",
|
||||
r"Checking size .*",
|
||||
r"Retrieving maximum program size .*",
|
||||
r"PLATFORM: .*",
|
||||
r"PACKAGES:.*",
|
||||
r" - framework-arduinoespressif.* \(.*\)",
|
||||
r" - tool-esptool.* \(.*\)",
|
||||
r" - toolchain-.* \(.*\)",
|
||||
r"Creating BIN file .*",
|
||||
r"Warning! Could not find file \".*.crt\"",
|
||||
r"Warning! Arduino framework as an ESP-IDF component doesn't handle the `variant` field! The default `esp32` variant will be used.",
|
||||
r"Warning: DEPRECATED: 'esptool.py' is deprecated. Please use 'esptool' instead. The '.py' suffix will be removed in a future major release.",
|
||||
r"Warning: esp-idf-size exited with code 2",
|
||||
r"esp_idf_size: error: unrecognized arguments: --ng",
|
||||
r"Package configuration completed successfully",
|
||||
]
|
||||
|
||||
|
||||
def main() -> int:
|
||||
patch_structhash()
|
||||
patch_file_downloader()
|
||||
@@ -126,7 +170,6 @@ def main() -> int:
|
||||
# Filtering is disabled when the user passed -v / --verbose to
|
||||
# ``esphome compile``, preserving the previous in-process behavior where
|
||||
# verbose mode let all PlatformIO output through unfiltered.
|
||||
from esphome.platformio_api import FILTER_PLATFORMIO_LINES
|
||||
from esphome.util import RedirectText
|
||||
|
||||
is_verbose = any(arg in ("-v", "--verbose") for arg in sys.argv[1:])
|
||||
|
||||
@@ -906,7 +906,7 @@ def _filter_through_redirect(line: str) -> str:
|
||||
|
||||
captured = io.StringIO()
|
||||
redirect = RedirectText(
|
||||
captured, filter_lines=platformio_api.FILTER_PLATFORMIO_LINES
|
||||
captured, filter_lines=platformio_runner.FILTER_PLATFORMIO_LINES
|
||||
)
|
||||
redirect.write(line + "\n")
|
||||
return captured.getvalue()
|
||||
|
||||
Reference in New Issue
Block a user