#!/usr/bin/env python3
"""
Combine all dataset sources into a single training file.
"""
import json
from pathlib import Path

OUTPUT_FILE = Path(__file__).parent.parent / "data" / "processed" / "dev_finetuning.json"

def main():
    sources = [
        Path(__file__).parent.parent / "data" / "processed" / "dev_finetuning_generated.json",
        Path(__file__).parent.parent / "data" / "processed" / "dev_finetuning_massive.json",
        Path(__file__).parent.parent / "data" / "processed" / "dev_finetuning_real.json",
        Path(__file__).parent.parent / "data" / "processed" / "dev_finetuning_varied.json",
    ]
    
    all_data = []
    for src in sources:
        if src.exists():
            with open(src) as f:
                all_data.extend(json.load(f))
    
    # Remove exact duplicates
    seen = set()
    unique_data = []
    for item in all_data:
        key = json.dumps(item, sort_keys=True)
        if key not in seen:
            seen.add(key)
            unique_data.append(item)
    
    with open(OUTPUT_FILE, "w") as f:
        json.dump(unique_data, f, indent=2)
    
    print(f"Combined {len(all_data)} entries into {len(unique_data)} unique entries")
    print(f"Saved to: {OUTPUT_FILE}")
    print(f"File size: {OUTPUT_FILE.stat().st_size / 1024:.0f} KB")

if __name__ == "__main__":
    main()