#!/usr/bin/env python3
"""Example usage script for merging preference datasets.

This script demonstrates how to use the merge_preference_datasets function
with real dataset directories.
"""
import os
import sys
from merge_preference_datasets import merge_preference_datasets


def main():
    """Main function to merge datasets with example paths."""
    
    # Example 1: Merge validation datasets
    print("=" * 70)
    print("Example 1: Merging Validation Datasets")
    print("=" * 70)
    
    # TODO: Update these paths to your actual dataset directories
    input_dir1 = "/path/to/first/validation/dataset"
    input_dir2 = "/path/to/second/validation/dataset"
    output_dir = "/path/to/merged/validation/dataset"
    
    # Check if paths exist (for demonstration)
    if not os.path.exists(input_dir1):
        print(f"⚠️  Input directory 1 does not exist: {input_dir1}")
        print("   Please update the paths in this script to point to your datasets.")
        return
    
    if not os.path.exists(input_dir2):
        print(f"⚠️  Input directory 2 does not exist: {input_dir2}")
        print("   Please update the paths in this script to point to your datasets.")
        return
    
    try:
        merge_preference_datasets(
            input_dir1=input_dir1,
            input_dir2=input_dir2,
            output_dir=output_dir,
            is_val=True,  # This is a validation set
            validate=True,  # Validate after merging
        )
        print("\n✅ Validation dataset merge complete!")
        
    except Exception as e:
        print(f"\n❌ Error during merge: {e}")
        import traceback
        traceback.print_exc()
        sys.exit(1)
    
    
    # Example 2: Merge training datasets
    print("\n" + "=" * 70)
    print("Example 2: Merging Training Datasets")
    print("=" * 70)
    
    # TODO: Update these paths to your actual dataset directories
    train_input_dir1 = "/path/to/first/training/dataset"
    train_input_dir2 = "/path/to/second/training/dataset"
    train_output_dir = "/path/to/merged/training/dataset"
    
    # Check if paths exist
    if not os.path.exists(train_input_dir1):
        print(f"⚠️  Training input directory 1 does not exist: {train_input_dir1}")
        print("   Skipping training dataset merge.")
        return
    
    if not os.path.exists(train_input_dir2):
        print(f"⚠️  Training input directory 2 does not exist: {train_input_dir2}")
        print("   Skipping training dataset merge.")
        return
    
    try:
        merge_preference_datasets(
            input_dir1=train_input_dir1,
            input_dir2=train_input_dir2,
            output_dir=train_output_dir,
            is_val=False,  # This is a training set
            validate=True,  # Validate after merging
        )
        print("\n✅ Training dataset merge complete!")
        
    except Exception as e:
        print(f"\n❌ Error during merge: {e}")
        import traceback
        traceback.print_exc()
        sys.exit(1)


if __name__ == "__main__":
    main()

