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

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for forge_mvc_import_export-1.0.0rc4.tar.gz
Algorithm Hash digest
SHA256 ea534190aeb17178f501beb5025409b29d232f1d0332ca8ae862e5770235776d
MD5 1eabf665a0c832051a6cb32d7df4190f
BLAKE2b-256 27b0aeaa7ec71458fb646e87f9000c746ebcaea389e7066b9dc24978c6b1b38f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for forge_mvc_import_export-1.0.0rc4-py3-none-any.whl
Algorithm Hash digest
SHA256 ea0459c4d0d5d88246d872abf38d95bd824d9bdcf30c504ac1c9fc7af4aecb0b
MD5 9c73f54e6641b01c47b7465e0051d0cb
BLAKE2b-256 050bf3900468e78469ac33bf7adb29af30bff0648886108c2adce3989e72359a

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