Metadata-Version: 2.4
Name: electricore
Version: 3.6.1
Summary: Moteur de traitement données énergétiques françaises - Architecture Polars/DuckDB pour flux Enedis
Project-URL: Homepage, https://github.com/Energie-De-Nantes/electricore
Project-URL: Documentation, https://github.com/Energie-De-Nantes/electricore/blob/main/README.md
Project-URL: Repository, https://github.com/Energie-De-Nantes/electricore
Project-URL: Issues, https://github.com/Energie-De-Nantes/electricore/issues
Project-URL: Changelog, https://github.com/Energie-De-Nantes/electricore/blob/main/CHANGELOG.md
Author: Virgile
License: AGPL-3.0
License-File: LICENSE
Keywords: data-processing,duckdb,electricity,enedis,energy,grid,ingestion,linky,polars,turpe
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Utilities
Classifier: Typing :: Typed
Requires-Python: <3.14,>=3.12
Requires-Dist: duckdb<2.0.0,>=1.3.2
Requires-Dist: electricore-client>=0.1.0
Requires-Dist: fastapi>=0.116.1
Requires-Dist: httpx>=0.27.0
Requires-Dist: pandera[polars]>=0.24.0
Requires-Dist: polars<2.0.0,>=1.0.0
Requires-Dist: pyarrow<24.0.0,>=23.0.1
Requires-Dist: pydantic-settings>=2.14.1
Requires-Dist: python-telegram-bot>=21.0
Requires-Dist: starlette>=0.49.1
Requires-Dist: uvicorn<0.36.0,>=0.35.0
Requires-Dist: xlsxwriter>=3.0.0
Provides-Extra: dbt
Requires-Dist: dbt-core<2.0.0,>=1.10.0; extra == 'dbt'
Requires-Dist: dbt-duckdb<2.0.0,>=1.9.0; extra == 'dbt'
Provides-Extra: ingestion
Requires-Dist: dlt[filesystem]<2.0.0,>=1.16.0; extra == 'ingestion'
Requires-Dist: lxml<7.0.0,>=6.1.0; extra == 'ingestion'
Requires-Dist: paramiko<5.0.0,>=4.0.0; extra == 'ingestion'
Requires-Dist: psutil<8.0.0,>=5.9.0; extra == 'ingestion'
Requires-Dist: pycryptodome<4.0.0,>=3.23.0; extra == 'ingestion'
Requires-Dist: pyyaml<7.0.0,>=6.0.0; extra == 'ingestion'
Provides-Extra: notebooks
Requires-Dist: altair<6.0.0,>=5.5.0; extra == 'notebooks'
Requires-Dist: marimo>=0.23.0; extra == 'notebooks'
Requires-Dist: plotly[express]>=6.2.0; extra == 'notebooks'
Requires-Dist: python-dotenv>=1.0.0; extra == 'notebooks'
Provides-Extra: viz
Requires-Dist: altair<6.0.0,>=5.5.0; extra == 'viz'
Requires-Dist: marimo>=0.23.0; extra == 'viz'
Requires-Dist: plotly[express]>=6.2.0; extra == 'viz'
Requires-Dist: vegafusion<3.0.0,>=2.0.3; extra == 'viz'
Requires-Dist: vl-convert-python<2.0.0,>=1.8.0; extra == 'viz'
Description-Content-Type: text/markdown

# ⚡ ElectriCore — moteur de traitement des données énergétiques

[![CI](https://github.com/Energie-De-Nantes/electricore/actions/workflows/ci.yml/badge.svg)](https://github.com/Energie-De-Nantes/electricore/actions/workflows/ci.yml)
[![License: AGPL-3.0](https://img.shields.io/badge/license-AGPL--3.0-blue.svg)](LICENSE)
[![Python 3.12+](https://img.shields.io/badge/python-3.12%2B-blue.svg)](pyproject.toml)
[![Polars](https://img.shields.io/badge/data-Polars%20%2B%20DuckDB-9C27B0.svg)](https://energie-de-nantes.github.io/electricore/adr/0002-polars-uniquement/)
[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
[![Docs](https://img.shields.io/badge/docs-site-blue)](https://energie-de-nantes.github.io/electricore/)

**ElectriCore** est un outil libre pour reprendre le contrôle des données du réseau électrique
français. Il transforme les flux bruts **Enedis** (le distributeur) en données structurées,
calculées et exploitables — facturation calendaire, abonnements, énergies par cadran, TURPE,
taxes — exposées via une **API REST** pour Odoo, des notebooks et tout outil de suivi énergétique.

> **Pour qui ?** Un fournisseur d'électricité (EDN, Enargia…) qui veut **recalculer** lui-même
> ce qu'il facture, à partir de la donnée brute Enedis, sans dépendre des agrégats
> « moisniversaire » du distributeur — inexploitables pour une facturation au mois calendaire.

**Stack** : Polars + DuckDB (zéro pandas), ingestion ELT dlt + dbt, FastAPI, Pandera. Tout le code
et la doc sont en français — le domaine (Enedis, CRE, TURPE, accise) l'est intrinsèquement.

---

## 📖 Documentation — 5 portes, une par rôle

Le [site de documentation](https://energie-de-nantes.github.io/electricore/) est rangé par rôle
de lecture, en escalier (quoi → comment s'en servir → comment c'est fait → comment le faire
évoluer) :

- **[Comprendre](https://energie-de-nantes.github.io/electricore/comprendre/)** — ce qu'ElectriCore
  calcule et pourquoi, pour un public non technique.
- **[Facturer](https://energie-de-nantes.github.io/electricore/facturiste/changelog-facturiste/)** —
  le cycle de facturation au quotidien, bot Telegram et notebooks.
- **[Déployer](https://energie-de-nantes.github.io/electricore/deployer/)** — installer et
  administrer une instance (VPS, Docker Compose, secrets).
- **[Contribuer](https://energie-de-nantes.github.io/electricore/contribuer/)** — architecture,
  exemples de code, patterns, installation dev et tests.
- **[Maintenir](https://energie-de-nantes.github.io/electricore/maintenir/)** — décisions
  d'architecture, releases, suivi réglementaire.

## 🚀 Démarrage rapide

```bash
git clone https://github.com/Energie-De-Nantes/electricore.git
cd electricore
uv sync   # runtime : core + API + bot (voir la section Contribuer pour les extras)

uv run uvicorn electricore.api.main:app --reload
curl http://localhost:8000/health
```

Détails d'installation, ingestion, pipelines et API : voir
[Contribuer → Développer](https://energie-de-nantes.github.io/electricore/contribuer/developper/).

## 📄 Licence

[AGPL-3.0](LICENSE).

## 🙏 Remerciements

[Polars](https://pola.rs) · [DuckDB](https://duckdb.org) · [dlt](https://dlthub.com) ·
[dbt](https://www.getdbt.com) · [FastAPI](https://fastapi.tiangolo.com) ·
[Pandera](https://pandera.readthedocs.io) · [Marimo](https://marimo.io) ·
[httpx](https://www.python-httpx.org) · [pydantic](https://docs.pydantic.dev) · [uv](https://docs.astral.sh/uv/).
