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.0rc2.tar.gz (9.5 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.0rc2-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for forge_mvc_import_export-1.0.0rc2.tar.gz
Algorithm Hash digest
SHA256 7a7e1efeb12f524c66d7bc4474e6fcdc4cad87fca1fd911bce99a7cf9e5d425e
MD5 e464625bdb8b20f0f9079512d8464ea5
BLAKE2b-256 261cd445692448df08a7531c964846b4808c5bca0ae7010a5106b6dab522b2ad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for forge_mvc_import_export-1.0.0rc2-py3-none-any.whl
Algorithm Hash digest
SHA256 74c4890f65b50e0a743d8cbc8b5ebe0309c2a83b832030f3668dee3a8b66085d
MD5 943372d49954f096c097ee9cb8cfb207
BLAKE2b-256 4dd8e1a29e3edf5e980e8f6eedcc2af1d3cc582b22cc3326752ea9b36e3ccb2e

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