Skip to content

Commit 6cd02dc

Browse files
Add diff_pattern as variable to apply_diff and extract_diffs
1 parent a631841 commit 6cd02dc

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

openevolve/utils/code_utils.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,14 @@ def parse_evolve_blocks(code: str) -> List[Tuple[int, int, str]]:
3737
return blocks
3838

3939

40-
def apply_diff(original_code: str, diff_text: str) -> str:
40+
def apply_diff(original_code: str, diff_text: str, diff_pattern: str = r"<<<<<<< SEARCH\n(.*?)=======\n(.*?)>>>>>>> REPLACE") -> str:
4141
"""
4242
Apply a diff to the original code
4343
4444
Args:
4545
original_code: Original source code
4646
diff_text: Diff in the SEARCH/REPLACE format
47+
diff_pattern: Regex pattern for the SEARCH/REPLACE format
4748
4849
Returns:
4950
Modified code
@@ -53,7 +54,7 @@ def apply_diff(original_code: str, diff_text: str) -> str:
5354
result_lines = original_lines.copy()
5455

5556
# Extract diff blocks
56-
diff_blocks = extract_diffs(diff_text)
57+
diff_blocks = extract_diffs(diff_text, diff_pattern)
5758

5859
# Apply each diff block
5960
for search_text, replace_text in diff_blocks:
@@ -70,17 +71,17 @@ def apply_diff(original_code: str, diff_text: str) -> str:
7071
return "\n".join(result_lines)
7172

7273

73-
def extract_diffs(diff_text: str) -> List[Tuple[str, str]]:
74+
def extract_diffs(diff_text: str, diff_pattern: str = r"<<<<<<< SEARCH\n(.*?)=======\n(.*?)>>>>>>> REPLACE") -> List[Tuple[str, str]]:
7475
"""
7576
Extract diff blocks from the diff text
7677
7778
Args:
7879
diff_text: Diff in the SEARCH/REPLACE format
80+
diff_pattern: Regex pattern for the SEARCH/REPLACE format
7981
8082
Returns:
8183
List of tuples (search_text, replace_text)
8284
"""
83-
diff_pattern = r"<<<<<<< SEARCH\n(.*?)=======\n(.*?)>>>>>>> REPLACE"
8485
diff_blocks = re.findall(diff_pattern, diff_text, re.DOTALL)
8586
return [(match[0].rstrip(), match[1].rstrip()) for match in diff_blocks]
8687

0 commit comments

Comments
 (0)