1234567891011121314151617181920212223242526272829 |
- import os
- import re
- import json5
- def replace_upload_fname(text, upload_fname_list):
- for full_input_fname in upload_fname_list:
- if full_input_fname not in text and os.path.basename(full_input_fname) in text:
- text = text.replace(os.path.basename(full_input_fname), full_input_fname)
- return text
- def extract_code(text):
- # Match triple backtick blocks first
- triple_match = re.search(r'```[^\n]*\n(.+?)```', text, re.DOTALL)
- # Match single backtick blocks second
- single_match = re.search(r'`([^`]*)`', text, re.DOTALL)
- if triple_match:
- text = triple_match.group(1)
- elif single_match:
- text = single_match.group(1)
- else:
- try:
- text = json5.loads(text)['code']
- except Exception:
- pass
- # If no code blocks found, return original text
- return text
|