Skip to main content

Français | English

KadiPy

Traitement, analyse et modélisation des données agricoles et économiques


KadiPy : le "pandas" de l'agriculture africaine

KadiPy est une bibliothèque Python open source conçue pour les agronomes, chercheurs et développeurs travaillant sur l'agriculture au Bénin et en Afrique de l'Ouest. Elle offre une interface unifiée pour ingérer, nettoyer, analyser et modéliser des données météorologiques, des prix de marchés agricoles, des coûts logistiques et des séries de récoltes, avec un fonctionnement conçu en priorité pour le mode hors ligne (offline-first).


Fonctionnalités principales

  • Ingestion et E/S unifiées (kadi.io) : fonctions expressives read_csv, read_excel, read_json, read_netcdf, read_api avec détection automatique du format, et leurs équivalents en écriture (write_csv, write_excel, etc.). Les fonctions write, info et ping fonctionnent avec n'importe quel format.

  • Météorologie agronomique (kadi.weather) : façade Weather pour les données météo historiques et prévisionnelles (CHIRPS + Open-Meteo), détection des saisons des pluies (Sivakumar, Walter-Anyadike), bilan hydrique des sols (FAO-56), évapotranspiration (ET0 Hargreaves-Samani) et indices de sécheresse (SPI, Markov, Hurst).

  • Économie agricole et marchés (kadi.market) : façade Market pour le suivi des prix réels (WFP/HAPI HumData), prévisions de prix (Forecasting), calculs de coûts logistiques routiers (Logistics) et aide à la décision (Advisor) pour l'arbitrage spatial et le stockage stratégique.

  • Pipeline et standardisation (kadi.kidas) : nettoyage des données brutes (Cleaner), validation de schémas (Validator), normalisation des noms de cultures et coordonnées GPS (Normalizer), persistance SQLite locale (Cache) et chaîne de traitement complète (Pipeline).


Installation

Via PyPI

pip install kadipy

Depuis les sources

git clone https://github.com/delsDin/kadipy.git
cd kadipy
pip install -e ".[dev]"

Dépendances optionnelles

# Support des anciens fichiers Excel (.xls, antérieurs à 2003)
pip install "kadipy[xls]"

# Traitements géospatiaux (découpage de rasters CHIRPS)
pip install "kadipy[geospatial]"

Configuration de l'environnement

Créez un fichier .env à la racine du projet pour activer les sources de données réelles :

# Clé API WFP DataBridges (facultatif : des données publiques HAPI HumData
# sont utilisées sans elle)
WFP_API_Token=votre_cle_ici

# Prix du carburant manuel en XOF/litre (facultatif)
BENIN_FUEL_PRICE=680

Vue d'ensemble des modules

Module Façade / Composants Description
kadi.io read_csv, read_excel, read_json, read_netcdf, read_api, write, info, ping Entrées et sorties avec détection automatique du format
kadi.weather Weather, Location, Phenology, Hydrology, Risk Météo, prévisions, historique et indicateurs agronomiques
kadi.market Market, Pricing, Forecasting, Logistics, Advisor Analyse économique, prix, logistique et aide à la décision
kadi.kidas Cleaner, Validator, Normalizer, Pipeline, Cache Traitement, contrôle qualité et persistance SQLite

Structure du projet

kadipy/
├── kadi/
│   ├── io/              # Entrées et sorties unifiées
│   ├── market/          # Économie agricole et marchés
│   ├── weather/         # Météorologie agronomique
│   ├── kidas/           # Pipeline de traitement et standardisation
│   ├── _sources/        # Clients externes (WFP, CHIRPS, SoilGrids)
│   ├── cache.py         # Cache SQLite partagé
│   ├── config.py        # Configuration centralisée
│   └── exceptions.py    # Exceptions personnalisées
├── tests/               # Suite de tests (pytest)
├── docs/                # Documentation MkDocs
├── examples/            # Notebooks d'exemples Jupyter
├── config/              # Fichiers de configuration
└── pyproject.toml       # Dépendances et métadonnées du package

Lancer les tests

# Exécution simple
pytest tests/ -q

# Avec rapport de couverture de code
pytest tests/ --cov=kadi --cov-report=term-missing

Les tests couvrent l'ensemble des modules (io, market, weather, kidas), y compris les connecteurs distants sans dépendance réseau et les composants d'infrastructure (kadi.cache, kadi.config). Aucune clé API n'est nécessaire pour les exécuter. La CI GitHub Actions contrôle que la couverture globale reste supérieure à 70 %.


Rétrocompatibilité

Les anciens noms de classes issus des versions antérieures à v1.2.0 émettent un DeprecationWarning et seront supprimés dans KadiPy v2.0 :

Ancien nom (avant v1.2.0) Nouveau nom
WeatherSession Weather
DataCleaner Cleaner
DataValidator Validator
DataNormalizer Normalizer
DataCache Cache
DataPipeline Pipeline
CSVDataSource CSVSource

Zone géographique (v1.x)

KadiPy v1.x est conçu exclusivement pour le Bénin. La validation des coordonnées GPS, les algorithmes phénologiques, les facteurs logistiques et les données de prix sont calibrés pour le contexte béninois.

Le support d'autres pays d'Afrique de l'Ouest est prévu dans les versions futures.


Documentation

La documentation complète (guides d'API, exemples) est disponible sur : https://delsDin.github.io/kadipy/


Licence et contribution

Metadata

Release files for kadipy 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kadipy 1.2.0
File Size Uploaded
kadipy-1.2.0.tar.gz 166.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for kadipy 1.2.0
File Interpreter ABI Platform
kadipy-1.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 359.5 kB

Release files / kadipy-1.2.0.tar.gz

Download URL kadipy-1.2.0.tar.gz
Size 166.7 kB
Tags Source
SHA-256 checksum
How to use checksums
feccca22cd67c8c8ff54f3de67408267444eb85d5a7fb49e887050301a07cbc4
BLAKE2b-256 checksum
How to use checksums
34d5efb4ff7c0bdf37fac891dd04290cca696ff050728fdaefe9c72d0a289158
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 12, 2026.

Transparency log

Release files / kadipy-1.2.0-py3-none-any.whl

Download URL kadipy-1.2.0-py3-none-any.whl
Size 192.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c6832dc8d0ef3b215e06f9449a9baa535db6f77d839a10372aa9350e36626eb3
BLAKE2b-256 checksum
How to use checksums
c8ca5d801b19f3da2b591cb587441f60a3ee5140d0e87f509ba6db4f70e8acf9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 12, 2026.

Transparency log

Release history Release notifications | RSS feed

1.2.1

2 release files

This release

1.2.0 This release

2 release files

1.1.0

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page