Metadata-Version: 2.4
Name: dataprofiler-edu
Version: 0.1.0
Summary: Un package didattico per il profiling automatico di dataset CSV, Excel e JSON
Author-email: Andrea Rogges <andrea.rogges@gmail.com>
License: MIT
Keywords: data,profiling,csv,analytics,education
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Education
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Education
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: openpyxl>=3.1
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0; extra == "dev"
Dynamic: license-file

# 📊 DataProfiler

**DataProfiler** è un package Python didattico per il profiling automatico di dataset. Analizza file CSV, Excel e JSON generando report dettagliati con statistiche descrittive, rilevamento di anomalie e valori mancanti.

## Installazione

```bash
pip install dataprofiler-edu
```

Per lo sviluppo:

```bash
git clone https://github.com/tuonome/dataprofiler.git
cd dataprofiler
pip install -e ".[dev]"
```

## Uso rapido

```python
from dataprofiler import Profiler

# Analizza un file CSV
profiler = Profiler("vendite.csv")
report = profiler.profile()

# Stampa riepilogo
print(report.summary())

# Esporta in Markdown
profiler.export(report, "report.md")
```

## CLI

```bash
# Profiling rapido da terminale
dataprofiler dati.csv

# Esporta in formato specifico
dataprofiler dati.csv -o report.md -f md
dataprofiler vendite.xlsx -o report.json -f json
dataprofiler prodotti.json -o report.html -f html
```

## Formati supportati

| Input | Output |
|-------|--------|
| CSV (`.csv`) | Markdown (`.md`) |
| Excel (`.xlsx`, `.xls`) | JSON (`.json`) |
| JSON (`.json`) | HTML (`.html`) |

## Funzionalità

- **Rilevamento automatico del tipo** di ogni colonna (numerico, testuale, data, booleano)
- **Statistiche numeriche**: media, mediana, min, max, deviazione standard, quartili
- **Statistiche testuali**: lunghezze, frequenze, valori più comuni
- **Statistiche temporali**: range date, frequenza, formati rilevati
- **Analisi valori mancanti**: conteggio, percentuale, completezza
- **Warnings automatici**: colonne quasi vuote, valori costanti, possibili ID
- **Export multi-formato**: Markdown, JSON, HTML

## Concetti OOP dimostrati

Questo package è progettato come strumento didattico per un corso Python avanzato:

- **Classi astratte (ABC)**: `BaseReader`, `BaseAnalyzer`, `BaseExporter`
- **Ereditarietà**: ogni reader/analyzer/exporter estende la propria base
- **Composizione**: `Profiler` compone reader + analyzer + exporter
- **Polimorfismo**: gli analyzer vengono selezionati dinamicamente
- **Factory Pattern**: `ReaderFactory` e `ExporterFactory`
- **Strategy Pattern**: exporter intercambiabili
- **Dataclass**: modelli dati tipizzati con property calcolate

## Licenza

MIT
