Metadata-Version: 2.4
Name: datagouv-toolkit
Version: 0.1.1
Summary: Toolkit for exploring, downloading, auditing and analyzing datasets from data.gouv.fr
Author: Florian Maillard
License-Expression: GPL-3.0-only
Project-URL: Homepage, https://github.com/fmaillar/datagouv-toolkit
Project-URL: Repository, https://github.com/fmaillar/datagouv-toolkit
Project-URL: Issues, https://github.com/fmaillar/datagouv-toolkit/issues
Keywords: data.gouv.fr,open-data,csv,pandas,cli,data-analysis
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pandas
Requires-Dist: requests
Provides-Extra: dev
Requires-Dist: bandit; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Requires-Dist: twine; extra == "dev"
Dynamic: license-file

# datagouv-toolkit

Outils génériques pour explorer, télécharger, inspecter et analyser des jeux de données publiés sur data.gouv.fr.

## Architecture

- `datagouv.py` : exploration et résolution de datasets data.gouv.fr.
- `download_resources.py` : téléchargement générique de ressources.
- `dataset_workflow.py` : enchaînement résolution → téléchargement → audit CSV.
- `inspect_csv.py` : audit structurel générique d'un CSV.
- `catalog_stats.py` : statistiques reproductibles à partir d'un snapshot du catalogue.
- `normalize.py` : normalisation des métadonnées.
- `tests/` : tests unitaires.
- `datasets/` : pipelines spécifiques à certains jeux de données.
- `datasets/baac/` : premier cas d'usage, données BAAC.

## Exemples

### Rechercher un dataset

```bash
python datagouv.py search "accidents corporels"
```

### Inspecter ses ressources

```bash
python datagouv.py resources \
  "accidents corporels" \
  --producer "Ministère de l'intérieur"
```

### Télécharger une ressource

```bash
python download_resources.py \
  "accidents corporels" \
  --producer "Ministère de l'intérieur" \
  --format csv \
  --resource-title "Caract_2024" \
  --output data
```

### Télécharger et auditer automatiquement

```bash
python dataset_workflow.py \
  "accidents corporels" \
  --producer "Ministère de l'intérieur" \
  --format csv \
  --resource-title "Caract_2024" \
  --output data
```

### Auditer un CSV local

```bash
python inspect_csv.py fichier.csv
```

Pour rediriger un audit volumineux :

```bash
python inspect_csv.py fichier.csv > audit.txt
```

### Analyser un snapshot du catalogue

```bash
python catalog_stats.py "transport" \
  --snapshot snapshot/2026-08-25
```

Filtres disponibles notamment :

```bash
python catalog_stats.py "énergie" \
  --snapshot snapshot/2026-08-25 \
  --license fr-lo-2.0 \
  --frequency annual
```

## Qualité

```bash
ruff check .
mypy .
pytest -q
bandit -q *.py
```
