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/.

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)

Source distribution for forge-mvc-import-export 1.0.0rc8
File Size Uploaded
forge_mvc_import_export-1.0.0rc8.tar.gz 32.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for forge-mvc-import-export 1.0.0rc8
File Interpreter ABI Platform
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
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page