"""Esegue in cascata l'intera pipeline di voltammetria ciclica. Prende i file .txt grezzi dalla cartella 'raw' (nella root del progetto) e li elabora nell'ordine: 1. cv_to_csv -> CSV a due colonne (Potential/V, Current/A), dentro 'raw' 2. cv_last_cycle -> isola l'ultimo ciclo completo, salvato in 'output' 3. cv_normalize_potential -> aggiunge il potenziale normalizzato (in 'output') 4. cv_current_over_sqrt_scanrate -> aggiunge le colonne derivate dalla corrente (in 'output') 5. cv_plot -> genera il grafico PNG per ciascun file (in 'output') """ import sys from pathlib import Path import cv_to_csv import cv_last_cycle import cv_normalize_potential import cv_current_over_sqrt_scanrate import cv_plot RAW_DIR = Path(__file__).parent / "raw" OUTPUT_DIR = Path(__file__).parent / "output" def main() -> None: if not RAW_DIR.is_dir(): print(f"Cartella 'raw' non trovata: creala e mettici dentro i file .txt da elaborare ({RAW_DIR})") return OUTPUT_DIR.mkdir(parents=True, exist_ok=True) print("\n=== Conversione .txt -> .csv ===") cv_to_csv.main(["", str(RAW_DIR)]) print("\n=== Estrazione ultimo ciclo ===") cv_last_cycle.main(["", str(RAW_DIR), str(OUTPUT_DIR)]) for label, module in [ ("Normalizzazione potenziale", cv_normalize_potential), ("Colonne corrente/velocita' di scansione", cv_current_over_sqrt_scanrate), ("Generazione grafici", cv_plot), ]: print(f"\n=== {label} ===") module.main(["", str(OUTPUT_DIR)]) if __name__ == "__main__": main()