From 56f3a668f252d4ddb4cc0f70ce3a9f748abd0909 Mon Sep 17 00:00:00 2001 From: you-n-g Date: Tue, 11 Feb 2025 18:07:16 +0800 Subject: [PATCH] fix: handle invalid regex patterns in filter_progress_bar function (#579) * fix: handle invalid regex patterns in filter_progress_bar function * Update rdagent/utils/__init__.py --- rdagent/utils/__init__.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/rdagent/utils/__init__.py b/rdagent/utils/__init__.py index aef26ef4..14f3bea7 100644 --- a/rdagent/utils/__init__.py +++ b/rdagent/utils/__init__.py @@ -123,16 +123,20 @@ def filter_progress_bar(stdout: str) -> str: ) needs_sub = response.get("needs_sub", True) regex_patterns = response.get("regex_patterns", []) - if isinstance(regex_patterns, list): - for pattern in regex_patterns: - filtered_stdout = re.sub(pattern, "", filtered_stdout) - else: - filtered_stdout = re.sub(regex_patterns, "", filtered_stdout) + try: + if isinstance(regex_patterns, list): + for pattern in regex_patterns: + filtered_stdout = re.sub(pattern, "", filtered_stdout) + else: + filtered_stdout = re.sub(regex_patterns, "", filtered_stdout) - if not needs_sub: - break - filtered_stdout = re.sub(r"\s*\n\s*", "\n", filtered_stdout) + if not needs_sub: + break + filtered_stdout = re.sub(r"\s*\n\s*", "\n", filtered_stdout) + except re.error as e: # sometime the generated regex pattern is invalid and yield exception. + from rdagent.log import rdagent_logger as logger + logger.error(f"Error in filtering progress bar: due to {e}") return filtered_stdout