From c7c7f85bc402c61d091424d700c89b301c7573d2 Mon Sep 17 00:00:00 2001 From: Fabien-B Date: Tue, 4 Jun 2024 13:32:30 +0200 Subject: [PATCH] [supervision] remove VT100 escape codes. (#3286) Co-authored-by: Fabien-B --- sw/supervision/python/console_widget.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/sw/supervision/python/console_widget.py b/sw/supervision/python/console_widget.py index 6ffc1b1435..debf89d55a 100644 --- a/sw/supervision/python/console_widget.py +++ b/sw/supervision/python/console_widget.py @@ -9,6 +9,7 @@ from program_widget import ProgramWidget from dataclasses import dataclass from enum import Enum from typing import Dict, List +import re class Level(Enum): @@ -85,6 +86,18 @@ class ConsoleWidget(QWidget, Ui_Console): lines = data.split(b'\n') for line in lines: line = line.data().decode() + # remove VT100 escape codes + while True: + m = re.match(r".*(\x1b\[((?:\d+;)*\d+)([mhK])).*", line) + if m is not None: + seq = m.group(1) + line = line.replace(seq, "") + else: + break + #remove empty lines + if line == "": + continue + level = self.classify(line) r = Record(level, line, pw, channel) self.records.append(r)