# scripts/plot_all_pairwise_scatter.py
from __future__ import annotations

from pathlib import Path
import sys


PROJECT_ROOT = Path(__file__).resolve().parents[3]
if str(PROJECT_ROOT) not in sys.path:
    sys.path.insert(0, str(PROJECT_ROOT))

from meteo.dataset import load_raw_csv
from meteo.variables import iter_variable_pairs
from meteo.plots import plot_scatter_pair


CSV_PATH = Path("data/weather_minutely.csv")
DOC_DIR = Path(__file__).resolve().parent.parent
OUTPUT_DIR = DOC_DIR / "figures" / "pairwise_scatter"


def main() -> None:
    if not CSV_PATH.exists():
        print(f"⚠ Fichier introuvable : {CSV_PATH}")
        return

    df = load_raw_csv(CSV_PATH)
    print(f"Dataset minuté chargé : {CSV_PATH}")
    print(f"  Lignes   : {len(df)}")
    print(f"  Colonnes : {list(df.columns)}")

    pairs = iter_variable_pairs()
    print(f"Nombre de paires de variables : {len(pairs)}")

    for var_x, var_y in pairs:
        filename = f"scatter_{var_x.key}_vs_{var_y.key}.png"
        output_path = OUTPUT_DIR / filename

        print(f"→ Trace {var_y.key} en fonction de {var_x.key} → {output_path}")
        plot_scatter_pair(
            df=df,
            var_x=var_x,
            var_y=var_y,
            output_path=output_path,
            sample_step=10,  # un point sur 10 : ≈ 32k points au lieu de 320k
        )

    print("✔ Tous les graphiques de nuages de points ont été générés.")


if __name__ == "__main__":
    main()
