Pipeline di automazione in Python che scansiona cartelle contenenti listini prezzi e cataloghi fornitori in formati eterogenei (.pdf, .docx, .csv), estrae e normalizza codici articolo, unità di misura e prezzi (in formato italiano 1.250,50 € o internazionale), e pubblica un unico report Excel .xlsx multi-foglio con tracciamento delle righe scartate.
English: Automated document ingestion pipeline in Python that extracts product codes, units and prices from heterogeneous supplier files (.pdf, .docx, .csv), normalizes European/US currency formats, and generates a clean multi-sheet .xlsx workbook and .json audit report.
- 📂 Ingestione Multi-Formato:
- PDF (
.pdf): Estrazione di righe strutturate da stream testuali PDF. - Word (
.docx): Parsing nativo delle tabelle OpenXML (word/document.xml) senza bisogno di Microsoft Word installato. - CSV (
.csv): Riconoscimento automatico del delimitatore (;o,) e delle colonne (Codice/SKU,Descrizione,UM,Prezzo).
- PDF (
- 💶 Normalizzazione Intelligente dei Prezzi:
- Converte in
Decimalesatto sia formati europei (1.450,00 €) sia formati anglosassoni (1,450.00), scartando valori nulli, negativi o non numerici (N/D).
- Converte in
- 📊 Pubblicazione Excel Multi-Foglio (
.xlsx) + Audit JSON:LISTINO_UNIFICATO: catalogo pulito ordinato per codice articolo con formattazione valuta.RIEPILOGO_FONTI: conteggio di voci valide e scarti per ciascun file sorgente.SCARTI_ANOMALIE: elenco evidenziato delle righe sporche o incomplete con il motivo dello scarto.
- ⚡ Dati Demo Inclusi:
- Se lanciato senza argomenti, genera ed elabora automaticamente 3 listini di esempio in
dati_esempio/(listino_hardware_fornitore.pdf,listino_servizi_it.docx,listino_licenze_cloud.csv).
- Se lanciato senza argomenti, genera ed elabora automaticamente 3 listini di esempio in
git clone https://github.com/Symon180/PriceHarvester.git
cd PriceHarvester
pip install -e ".[dev]"
# Esegue subito l'estrazione sui 3 file di esempio (PDF + DOCX + CSV):
./avvia.sh # Linux / macOS
avvia.bat # WindowsIl file Excel viene generato in output/listino_unificato.xlsx (insieme a output/listino_unificato.json).
python -m price_harvester -i /percorso/cartella_listini -o /percorso/output.xlsxpytestRilasciato sotto licenza MIT — Autore: Simone Mariotti.