Strip multi-word rich tags when rich is not installed (#1807)

Without `rich` installed, `kasa` prints tags like `[bold red]Only
discover is available without --host or --alias[/bold red]` verbatim.
The fallback in `kasa/cli/common.py` strips only single-word tags
(`\[/?[a-z]+]`), and `error()` uses the two-word `[bold red]`.

The pattern is changed to `\[/?[a-z]+(?: [a-z]+)*]`, so space-separated lowercase words are stripped too.
This commit is contained in:
WolfGanG
2026-10-25 00:11:13 +08:00
committed by GitHub
parent c60f48df23
commit 0932f30d06
2 changed files with 17 additions and 1 deletions

View File

@@ -34,7 +34,7 @@ except ImportError:
# but only lower case tags to avoid stripping out
# raw data from the device that is printed from
# the device state.
rich_formatting = re.compile(r"\[/?[a-z]+]")
rich_formatting = re.compile(r"\[/?[a-z]+(?: [a-z]+)*]")
def _strip_rich_formatting(echo_func):
"""Strip rich formatting from messages."""