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.0rc8
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.0rc8.tar.gz | 32.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| forge_mvc_import_export-1.0.0rc8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 52.5 kB
Release files / forge_mvc_import_export-1.0.0rc8.tar.gz
| Download URL | forge_mvc_import_export-1.0.0rc8.tar.gz |
|---|---|
| Size | 32.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
283300e6c46e3d4d2a4ab2d948ccce81d2c42cd4b66ab9159ec619d8a69554b3
|
|
BLAKE2b-256 checksum How to use checksums |
a4e1d3fbce73dd6cfe1a15cac13f8e4d1505a95ff324ef3f4dfb8449ae0d21aa
|
| 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.0rc8-py3-none-any.whl
| Download URL | forge_mvc_import_export-1.0.0rc8-py3-none-any.whl |
|---|---|
| Size | 19.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
10e99bcea71d21a6849bef12573220f1bd0e03b9369015c3cef7eedd62bfaa6c
|
|
BLAKE2b-256 checksum How to use checksums |
b8fb394d23f28feffa4ce0cd756a9565f7b39230fe5f09889287f933be678ae1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|