MCPcopy Create free account
hub / github.com/SalesforceAIResearch/perfcodegen / sanitize

Function sanitize

src/sanitize.py:343–431  ·  view source on GitHub ↗
(
    old_code: str,
    entry_point: str,
    rm_prefix_lines: Optional[str] = None,
    eofs: List = None,
    codegen: bool = False,
    global_code: bool = False,
    chat: bool = False
)

Source from the content-addressed store, hash-verified

341
342
343def sanitize(
344 old_code: str,
345 entry_point: str,
346 rm_prefix_lines: Optional[str] = None,
347 eofs: List = None,
348 codegen: bool = False,
349 global_code: bool = False,
350 chat: bool = False
351):
352 new_code = old_code.replace("\r\n", "\n").replace("\\_", "_").replace("if __name__", "if 1 or __name__")
353 if codegen:
354 new_code = remove_space_for_codegen(new_code)
355 if global_code and "```" in new_code:
356 if not chat:
357 new_code = new_code.split("```")[0]
358 return new_code.strip()
359 else:
360 if len(new_code.split("```python\n")) > 1:
361 new_code = new_code.split("```python\n")[1]
362 elif len(new_code.split("```")) > 1:
363 new_code = new_code.split("```")[1]
364 new_code = new_code.split("```")[0]
365
366 return new_code.strip()
367
368
369
370 if new_code.endswith("```"):
371 new_code = new_code[:-3]
372 if rm_prefix_lines is not None:
373 new_code = "\n".join(
374 [
375 line
376 for line in old_code.splitlines()
377 if not line.startswith(rm_prefix_lines)
378 ]
379 )
380
381 new_code = "\n" + new_code
382 def_left = "def " + entry_point
383
384 # basic handling of chat output
385 new_code = new_code.replace("\n```python\n", "\n```\n")
386 if def_left in new_code:
387 for chunk in new_code.split("\n```\n"):
388 if def_left in chunk:
389 new_code = chunk
390 break
391 else:
392 new_code = new_code.split("```")[0]
393
394 if codegen:
395 for chunk in new_code.split("\"\"\""):
396 if def_left in chunk:
397 new_code = chunk
398 break
399
400 chunks = [chunk for chunk in re.split(f"{def_left}\s*\(", new_code)]

Callers 2

get_solutionsMethod · 0.90
get_solutionsMethod · 0.90

Calls 4

remove_space_for_codegenFunction · 0.85
to_four_space_indentsFunction · 0.85
remove_unindented_linesFunction · 0.85
syntax_checkFunction · 0.85

Tested by

no test coverage detected