Spaces:
Sleeping
Sleeping
| import os | |
| import json | |
| import shutil | |
| from pathlib import Path | |
| def process_layouts(input_dir: str, output_dir: str): | |
| """ | |
| Process SVG and JSON files based on their layout information. | |
| Args: | |
| input_dir: Directory containing input SVG and JSON files | |
| output_dir: Base directory for output files | |
| """ | |
| # Create output directory if it doesn't exist | |
| os.makedirs(output_dir, exist_ok=True) | |
| # Get all JSON files | |
| json_files = list(Path(input_dir).glob("*.json")) | |
| for json_file in json_files: | |
| # Get corresponding SVG file | |
| svg_file = json_file.with_suffix('.svg') | |
| if not svg_file.exists(): | |
| print(f"Warning: No corresponding SVG file found for {json_file}") | |
| continue | |
| try: | |
| # Read JSON file | |
| with open(json_file, 'r', encoding='utf-8') as f: | |
| layout_info = json.load(f) | |
| # Get layout information | |
| title_to_chart = layout_info.get('title_to_chart', 'unknown') | |
| image_to_chart = layout_info.get('image_to_chart', 'unknown') | |
| # Create new file name with layout info as prefix | |
| new_filename = f"{title_to_chart}_{image_to_chart}_{svg_file.stem}.svg" | |
| # Copy SVG file to new location | |
| output_svg_path = os.path.join(output_dir, new_filename) | |
| shutil.copy2(svg_file, output_svg_path) | |
| print(f"Processed {svg_file.name} -> {new_filename}") | |
| except Exception as e: | |
| print(f"Error processing {json_file}: {e}") | |
| if __name__ == "__main__": | |
| import argparse | |
| parser = argparse.ArgumentParser(description="Process SVG files based on layout information") | |
| parser.add_argument("--input", type=str, required=True, help="Input directory containing SVG and JSON files") | |
| parser.add_argument("--output", type=str, required=True, help="Output base directory") | |
| args = parser.parse_args() | |
| process_layouts(args.input, args.output) |