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

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for forge_mvc_import_export-1.0.0rc3.tar.gz
Algorithm Hash digest
SHA256 15bf33560ec2bd996602390ddca9d6cd139c25594d7c763ef1f7b56e1fcb9223
MD5 c497be4616b3177e110f423614b5ce69
BLAKE2b-256 6c15141c909ce82c80d1e250415a996fd4c7539f3e898cdb08ccee1f2e356fe9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for forge_mvc_import_export-1.0.0rc3-py3-none-any.whl
Algorithm Hash digest
SHA256 033ee40fdfe41995e924a2890283df5d6cc453c9a961addc1c53be3c9a75280b
MD5 63f1b86f0600970b7d2c9267772e0cfa
BLAKE2b-256 5bed60421b3b6d307331513ddd0cd4982ea818a73b78fa060eed0a4184abbfa0

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