From 948446e599707a2e4878515d72e1d508cfbd2a46 Mon Sep 17 00:00:00 2001 From: Roman Date: Tue, 11 Mar 2025 03:04:44 +0000 Subject: [PATCH] fix: simplify search_log_for_keywords --- src/docker_manager.py | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/src/docker_manager.py b/src/docker_manager.py index 22dc71f..46d1905 100644 --- a/src/docker_manager.py +++ b/src/docker_manager.py @@ -152,20 +152,16 @@ class DockerManager: def search_log_for_keywords(self, log_path, keywords, use_regex=False, log_stream=None): matches = {keyword: [] for keyword in keywords} - # Read from stream - if log_stream is not None: - for line in log_stream: - line_matches = self.find_keywords_in_line(keywords, line.decode("utf-8"), use_regex=use_regex) - for keyword, result in line_matches.items(): - matches[keyword].extend(result) + if log_stream is None: + log_stream = open(log_path, "r") - else: - # Open the log file and search line by line - with open(log_path, "r") as log_file: - for line in log_file: - line_matches = self.find_keywords_in_line(keywords, line, use_regex=use_regex) - for keyword, result in line_matches.items(): - matches[keyword].extend(result) + for line in log_stream: + # Decode line if it is a byte object not str + if hasattr(line, "decode"): + line = line.decode("utf-8") + line_matches = self.find_keywords_in_line(keywords, line, use_regex=use_regex) + for keyword, result in line_matches.items(): + matches[keyword].extend(result) # Check if there were any matches if any(matches_list for matches_list in matches.values()):