This release is a pre-release and may not be stable for production use.
forge-mvc-import-export
Échange CSV opt-in pour Forge : import (lire un CSV, valider chaque ligne par
champ, produire un rapport d'erreurs, insérer les lignes valides) et export
programmatique (to_csv, l'inverse de parse_csv).
Dans le style Forge : explicite, validation visible, SQL laissé à l'application.
Frontière (principe 11) : pour télécharger une entité depuis une page
web, la route d'export générée par le CRUD du cœur reste la voie officielle.
to_csv sert l'export programmatique : un script, un rapport, une
agrégation, ou des données qui ne viennent pas d'une entité CRUD.
Installation
pip install --pre forge-mvc-import-export
En développement : pip install -e ./packages/forge-mvc-import-export.
Utilisation
from forge_mvc_import_export import parse_csv, import_rows, FieldSpec, coerce_int
csv_text = open("eleves.csv", encoding="utf-8").read()
rows = parse_csv(csv_text)
specs = [
FieldSpec("nom"), # requis, chaîne
FieldSpec("classe"),
FieldSpec("age", required=False, coerce=coerce_int),
]
# `insert` reçoit une ligne validée ; le SQL reste dans le modèle de l'app.
from mvc.models.eleve_model import add_eleve
report = import_rows(rows, specs, lambda row: add_eleve(row))
print(f"{report.imported} ligne(s) importée(s)")
for err in report.errors:
print(f" ligne {err.row}, champ {err.field} : {err.message}")
Export programmatique
from forge_mvc_import_export import to_csv
rows = [{"nom": "Alice", "classe": "6A"}, {"nom": "Bob", "classe": "6B"}]
csv_text = to_csv(rows, ["nom", "classe"])
# "nom,classe\nAlice,6A\nBob,6B\n"
Comportement
- Import : par défaut « tout ou rien » au niveau validation : si une ligne est
invalide, rien n'est inséré et le rapport liste toutes les erreurs.
L'option
partial=Trueinsère les lignes valides malgré les lignes en erreur. - Convertisseurs fournis :
coerce_int,coerce_float,coerce_bool. - Le cœur de Forge et les entités ne sont pas touchés : la dépendance va de l'opt-in vers le cœur.
Périmètre
V1 : import CSV (validation, rapport d'erreurs) et export programmatique
(to_csv).
Hors périmètre V1 : Excel, JSON, mapping de colonnes avancé, modèles d'import.
Documentation complète : https://forgemvc.com/docs/forge/.
Release files for forge-mvc-import-export 1.0.0rc6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| forge_mvc_import_export-1.0.0rc6.tar.gz | 15.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| forge_mvc_import_export-1.0.0rc6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 24.7 kB
Release files / forge_mvc_import_export-1.0.0rc6.tar.gz
| Download URL | forge_mvc_import_export-1.0.0rc6.tar.gz |
|---|---|
| Size | 15.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e5f7b7903559be4a85158031c1cfefd14803361b1cc02e3d5c5c19f7b7b0ef8a
|
|
BLAKE2b-256 checksum How to use checksums |
dfc6a791e2fabe38ce8f4f23f4d70f51350fb78a9941d40064bfd579d575edd8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|
Release files / forge_mvc_import_export-1.0.0rc6-py3-none-any.whl
| Download URL | forge_mvc_import_export-1.0.0rc6-py3-none-any.whl |
|---|---|
| Size | 9.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a4beb1e1f06f29d0cd41fd2e9eb7dd477492a703b1bcd281c5a5411be2b3e1e1
|
|
BLAKE2b-256 checksum How to use checksums |
06313fde55ca29e1fc8b4aa372d0503115d05fd15776f692ce9772da73920726
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|