filter selection improved
This commit is contained in:
parent
88b826414a
commit
0506b5f02c
22
loggy.py
22
loggy.py
@ -77,26 +77,31 @@ class OptionSelectList(dict):
|
||||
|
||||
def Toggle(self, entry_num):
|
||||
if entry_num < 0:
|
||||
self.__default_value__ = entry_num == -1
|
||||
if not self.__selection_regex__:
|
||||
self.__default_value__ = entry_num == -1
|
||||
for key in self:
|
||||
self[key] = self.__default_value__
|
||||
if self.__match__(key):
|
||||
self[key] = entry_num == -1
|
||||
elif entry_num > len(self):
|
||||
raise ValueError(f"The Entry '{entry} is not in the list")
|
||||
else:
|
||||
entry = self.__sorted_keys__()[entry_num]
|
||||
self[entry] = not self[entry]
|
||||
|
||||
def __match__(self, key):
|
||||
try:
|
||||
match = len(re.findall(self.__selection_regex__, key)) > 0
|
||||
except re.error:
|
||||
match = True # No valid regular expression
|
||||
return match
|
||||
|
||||
def GetSelectList(self):
|
||||
rv = []
|
||||
if len(self) > 2:
|
||||
rv.append(('All', -1))
|
||||
rv.append(('None', -2))
|
||||
for index, key in enumerate(self.__sorted_keys__()):
|
||||
try:
|
||||
match = len(re.findall(self.__selection_regex__, key)) > 0
|
||||
except re.error:
|
||||
match = True # No valid regular expression
|
||||
if match:
|
||||
if self.__match__(key):
|
||||
prefix = "\\[X] " if self[key] else "\\[-] "
|
||||
rv.append((prefix + key, index))
|
||||
return rv
|
||||
@ -126,6 +131,7 @@ class LogViewerApp(App):
|
||||
("q", "quit", "Quit"),
|
||||
("c", "clear_screen", "Clear")
|
||||
]
|
||||
MAX_LOGS = 1000
|
||||
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
@ -166,6 +172,8 @@ class LogViewerApp(App):
|
||||
self.__level_select_list__.AddEntry(record.levelname)
|
||||
self.__level_selection__.set_options(self.__level_select_list__.GetSelectList())
|
||||
self.all_logs.append(record)
|
||||
if len(self.all_logs) > self.MAX_LOGS:
|
||||
self.all_logs = self.all_logs[-self.MAX_LOGS:]
|
||||
self._apply_filters_to_log(record)
|
||||
|
||||
def _force(self, lvl: str) -> bool:
|
||||
|
Loading…
x
Reference in New Issue
Block a user