Skip to main content
Pre-release

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=True insè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/.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

forge_mvc_import_export-1.0.0rc5.tar.gz (14.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

forge_mvc_import_export-1.0.0rc5-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file forge_mvc_import_export-1.0.0rc5.tar.gz.

File metadata

File hashes

Hashes for forge_mvc_import_export-1.0.0rc5.tar.gz
Algorithm Hash digest
SHA256 1c0de01f5683c653e6685abecc2355b686d0190b81ad54486b999d0049d663b4
MD5 0c9d7d11bcfe485e13a6a627841ea10e
BLAKE2b-256 20b3f7615587c7e1094efb80d0f50d99788642069bd403cc5b85e3add8f5ca2a

See more details on using hashes here.

File details

Details for the file forge_mvc_import_export-1.0.0rc5-py3-none-any.whl.

File metadata

File hashes

Hashes for forge_mvc_import_export-1.0.0rc5-py3-none-any.whl
Algorithm Hash digest
SHA256 bdcad4c6e5958ad3e7d8bcecb07ee7f658f5ac2638b58f9239bf92deb06f48f9
MD5 4524df68f1fc79bb41c76389b8c9216b
BLAKE2b-256 249261b92c22790a7b5a70c9a525629142d21c56e3225edf95404c65677c7548

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page