| if __name__ == "__main__": |
| import argparse |
| import os |
| import re |
| from zipfile import ZipFile |
|
|
| parser = argparse.ArgumentParser( |
| description="Package and zip LLM provided solutions" |
| ) |
| parser.add_argument("--root", type=str, help="Root directory of solutions") |
| parser.add_argument( |
| "--output", type=str, required=True, help="Output directory of zip files" |
| ) |
| args = parser.parse_args() |
|
|
| |
| directory_pattern = re.compile(r"(.*)_temp_(?:\d*\.?\d+)$") |
|
|
| assert os.path.isdir(args.root) |
| os.makedirs(args.output, exist_ok=True) |
|
|
| for directory in os.listdir(args.root): |
| match = directory_pattern.match(directory) |
| if not match: |
| continue |
| directory_name = match.group(0) |
| full_dir_path = os.path.join(args.root, directory_name) |
| assert os.path.isdir(full_dir_path) |
| print(f"Processing {full_dir_path}") |
|
|
| zip_file_path = os.path.join(args.output, f"{directory_name}.zip") |
| if os.path.exists(zip_file_path): |
| print(f"Skipping -- {zip_file_path} already exists") |
| continue |
|
|
| with ZipFile(zip_file_path, "w") as zip_file: |
| |
| for task_id in os.listdir(full_dir_path): |
| task_dir = os.path.join(full_dir_path, task_id) |
| if not os.path.isdir(task_dir): |
| continue |
| for sample_id in os.listdir(task_dir): |
| sample_file = os.path.join(task_dir, sample_id) |
| if not sample_file.endswith(".py"): |
| continue |
| zip_file.write( |
| sample_file, os.path.join(directory_name, task_id, sample_id) |
| ) |
|
|