From ae6a31463ef5840276e4d4e7ce8d3a63060a9e03 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Wed, 24 Jan 2024 11:53:28 -1000 Subject: [PATCH] Fix overly greedy _strip_rich_formatting (#703) --- kasa/cli.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kasa/cli.py b/kasa/cli.py index 5f726be0..86aea436 100755 --- a/kasa/cli.py +++ b/kasa/cli.py @@ -37,6 +37,9 @@ except ImportError: try: from rich import print as _do_echo except ImportError: + # Remove 7-bit C1 ANSI sequences + # https://stackoverflow.com/questions/14693701/how-can-i-remove-the-ansi-escape-sequences-from-a-string-in-python + ansi_escape = re.compile(r"\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])") def _strip_rich_formatting(echo_func): """Strip rich formatting from messages.""" @@ -44,7 +47,7 @@ except ImportError: @wraps(echo_func) def wrapper(message=None, *args, **kwargs): if message is not None: - message = re.sub(r"\[/?.+?]", "", message) + message = ansi_escape.sub("", message) echo_func(message, *args, **kwargs) return wrapper