From 3e9b15de15e222d2b2ecf3242b62b0c4b055a6c8 Mon Sep 17 00:00:00 2001 From: Xinyu Wu <57612792+XinyuWuu@users.noreply.github.com> Date: Fri, 7 Nov 2025 15:30:16 +0800 Subject: [PATCH] Update utils.py more robust try_fix_yaml --- pr_agent/algo/utils.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pr_agent/algo/utils.py b/pr_agent/algo/utils.py index 72a0624c..a6f49d28 100644 --- a/pr_agent/algo/utils.py +++ b/pr_agent/algo/utils.py @@ -812,14 +812,19 @@ def try_fix_yaml(response_text: str, pass # second fallback - try to extract only range from first ```yaml to the last ``` - snippet_pattern = r'```yaml([\s\S]*?)```(?=\s*$|")' + snippet_pattern = r'```(yaml|yml)?([\s\S]*?)```(?=\s*$|")' snippet = re.search(snippet_pattern, '\n'.join(response_text_lines_copy)) if not snippet: snippet = re.search(snippet_pattern, response_text_original) # before we removed the "```" if snippet: snippet_text = snippet.group() + prefix = ( + '```yaml' + if snippet_text.startswith('```yaml') + else ('```yml' if snippet_text.startswith('```yml') else '```') + ) try: - data = yaml.safe_load(snippet_text.removeprefix('```yaml').rstrip('`')) + data = yaml.safe_load(snippet_text.removeprefix(prefix).rstrip('`')) get_logger().info(f"Successfully parsed AI prediction after extracting yaml snippet") return data except: