import duckdb from config.settings import csv_path, out_parquet from utils.csv_reader import icr_csv def run(con: duckdb.DuckDBPyConnection) -> int: src = csv_path('veg').replace('\\', '/') out = out_parquet('veg').replace('\\', '/') con.execute(f""" COPY ( SELECT TRY_CAST(CCPROD AS INTEGER) AS ccprod, TRIM(CCPRODEDIZ) AS ccprodediz, TRIM(DDATINIVALID) AS ddatinivalid, TRIM(DDATFINVALID) AS ddatfinvalid, TRIM(DESCR_VEG) AS descr_veg FROM {icr_csv(con, src)} WHERE CCPROD IS NOT NULL ) TO '{out}' (FORMAT PARQUET, COMPRESSION ZSTD) """) return con.execute(f"SELECT COUNT(*) FROM '{out}'").fetchone()[0]