MCPcopy Index your code
hub / github.com/algorithmicsuperintelligence/openevolve / apply_diff

Function apply_diff

openevolve/utils/code_utils.py:40–75  ·  view source on GitHub ↗

Apply a diff to the original code Args: original_code: Original source code diff_text: Diff in the SEARCH/REPLACE format diff_pattern: Regex pattern for the SEARCH/REPLACE format Returns: Modified code

(
    original_code: str,
    diff_text: str,
    diff_pattern: str = r"<<<<<<< SEARCH\n(.*?)=======\n(.*?)>>>>>>> REPLACE",
)

Source from the content-addressed store, hash-verified

38
39
40def apply_diff(
41 original_code: str,
42 diff_text: str,
43 diff_pattern: str = r"<<<<<<< SEARCH\n(.*?)=======\n(.*?)>>>>>>> REPLACE",
44) -> str:
45 """
46 Apply a diff to the original code
47
48 Args:
49 original_code: Original source code
50 diff_text: Diff in the SEARCH/REPLACE format
51 diff_pattern: Regex pattern for the SEARCH/REPLACE format
52
53 Returns:
54 Modified code
55 """
56 # Split into lines for easier processing
57 original_lines = original_code.split("\n")
58 result_lines = original_lines.copy()
59
60 # Extract diff blocks
61 diff_blocks = extract_diffs(diff_text, diff_pattern)
62
63 # Apply each diff block
64 for search_text, replace_text in diff_blocks:
65 search_lines = search_text.split("\n")
66 replace_lines = replace_text.split("\n")
67
68 # Find where the search pattern starts in the original code
69 for i in range(len(result_lines) - len(search_lines) + 1):
70 if result_lines[i : i + len(search_lines)] == search_lines:
71 # Replace the matched section
72 result_lines[i : i + len(search_lines)] = replace_lines
73 break
74
75 return "\n".join(result_lines)
76
77
78def extract_diffs(

Callers 3

test_apply_diffMethod · 0.90
_run_iteration_workerFunction · 0.90

Calls 1

extract_diffsFunction · 0.85

Tested by 1

test_apply_diffMethod · 0.72