#!/usr/bin/env python3
"""
Exp04 v2: DINOv2 Giant + Lasso - Complete Submission (Internet Enabled)
"""

import subprocess
import sys
import shutil

print("="*70)
print("🚀 Exp04 v2: DINOv2 Giant + Lasso - Complete Submission")
print("="*70)
print("Model: DINOv2 Giant + Lasso (5-Fold CV)")
print("Expected OOF: 0.6847")
print("Internet: ENABLED (to download DINOv2 from HuggingFace)")
print("="*70)

# Execute dinov2_giant_lasso.py from updated dataset
print("\n📦 Copying script from dataset...")
shutil.copy(
    '/kaggle/input/csiro-biomass-codes/dinov2_giant_lasso.py',
    '/kaggle/working/dinov2_giant_lasso.py'
)

print("✅ Script copied")
print("\n🚀 Executing DINOv2 inference (this will take ~5 minutes)...")
print("="*70)

# Run the script
subprocess.run(
    [sys.executable, '/kaggle/working/dinov2_giant_lasso.py'],
    check=True
)

print("\n" + "="*70)
print("✅ Exp04 v2 execution completed!")
print("="*70)

# Verify submission file
import pandas as pd
import os

if os.path.exists('submission.csv'):
    sub = pd.read_csv('submission.csv')
    print(f"\n📊 Submission file stats:")
    print(f"  • Rows: {len(sub)}")
    print(f"  • Expected: 1785")
    print(f"  • Match: {'✅' if len(sub) == 1785 else '❌'}")
    print(f"\n  • Min target: {sub['target'].min():.4f}")
    print(f"  • Max target: {sub['target'].max():.4f}")
    print(f"  • Mean target: {sub['target'].mean():.4f}")

    print(f"\n📋 First 10 rows:")
    print(sub.head(10))
else:
    print("\n❌ submission.csv not found!")

print("\n✨ Ready for submission!")
