[supervision] remove VT100 escape codes. (#3286)

Co-authored-by: Fabien-B <Fabien-B@github.com>
This commit is contained in:
Fabien-B
2024-06-04 13:32:30 +02:00
committed by GitHub
parent 5e0f869eaa
commit c7c7f85bc4
+13
View File
@@ -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)