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.0rc7
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.0rc7.tar.gz | 15.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| forge_mvc_import_export-1.0.0rc7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 24.9 kB
Release files / forge_mvc_import_export-1.0.0rc7.tar.gz
| Download URL | forge_mvc_import_export-1.0.0rc7.tar.gz |
|---|---|
| Size | 15.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
888718405c7b82645d57707549b48d10683672e0ffa2cd6ab6321cf2ceda476d
|
|
BLAKE2b-256 checksum How to use checksums |
e057ca7f07df961052ccb8f4b46262cca61565b3ba8e1d756bf6776873b487b2
|
| 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.0rc7-py3-none-any.whl
| Download URL | forge_mvc_import_export-1.0.0rc7-py3-none-any.whl |
|---|---|
| Size | 9.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f050061b3f06d2be1d19eb10951eb5ec6d64fe1d9c430e85c02b854082a4309c
|
|
BLAKE2b-256 checksum How to use checksums |
66f68a3f06d09491d7dcbe912fa2bb8507af190762dd27840dd903f4828bd334
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|