import duckdb from config.settings import csv_path, out_parquet, OSSERVATORIO_COLUMNS from utils.csv_reader import osservatorio_csv def run(con: duckdb.DuckDBPyConnection) -> int: src = csv_path('osservatorio').replace('\\', '/') out = out_parquet('osservatorio').replace('\\', '/') col_list = ', '.join(f'TRIM("{c}") AS {c}' for c in OSSERVATORIO_COLUMNS) con.execute(f""" COPY ( SELECT {col_list} FROM {osservatorio_csv(src, OSSERVATORIO_COLUMNS)} ) TO '{out}' (FORMAT PARQUET, COMPRESSION ZSTD) """) return con.execute(f"SELECT COUNT(*) FROM '{out}'").fetchone()[0]