1.9 KiB
Importer
RollCalc-JSON-Importer
Der RollCalc-JSON-Importer liest die bestehende RollCalc-Datei article-data.json ein und überführt gültige Datensätze in typisierte RollCalcArticle-Objekte.
Öffentliche API:
from pathlib import Path
from article_data_manager.importers.rollcalc_json import load_rollcalc_articles
articles = load_rollcalc_articles(Path("data/source/rollcalc/article-data.json"))
Eingabeformat
Erwartet wird eine UTF-8-Datei mit einem JSON-Array. Jeder Array-Eintrag muss ein JSON-Objekt sein.
Pflichtfelder:
nrnamethicknessarea_weightcore_type
Datentypen:
nr: String, nicht leer, ohne führende oder nachgestellte Leerzeichenname: Stringthickness: JSON-Zahl, kein Booleanarea_weight: JSON-Zahl, kein Booleancore_type: JSON-Zahl, kein Boolean
Integer-Zahlen aus JSON werden intern als Python-float gespeichert, sofern sie in numerischen Feldern stehen. Strings wie "6.722", null und Booleans werden nicht als Zahlen akzeptiert.
Unbekannte Felder
Zusätzliche unbekannte Felder werden akzeptiert und ignoriert. Sie werden nicht in das aktuelle interne Modell übernommen. Dadurch bleibt der Importer kompatibel mit möglichen RollCalc-Erweiterungen, validiert die bekannten Felder aber weiterhin strikt.
Dubletten
Doppelte Artikelnummern innerhalb einer Datei sind ein Validierungsfehler. Maßgeblich ist die exakte Stringdarstellung, daher sind "00001" und "1" unterschiedliche Artikelnummern.
Fehlerverhalten
Der Importer verwendet eigene Exceptions:
RollCalcImportErrorRollCalcFileErrorRollCalcJsonSyntaxErrorRollCalcValidationError
Fehlermeldungen enthalten Datei, Datensatzindex und Feldname, soweit anwendbar. Vollständige Datensätze werden nicht in Fehlermeldungen ausgegeben.
Quelldatei
Der Importer liest die Quelldatei nur. Er schreibt, verändert oder repariert die Datei nicht und erzeugt keine Ausgabe auf stdout oder stderr.