Zum Hauptinhalt springen

Parser

quickli.parsers bietet klar abgegrenzte Funktionen für strukturierte JSON-, YAML- und TOML-Ein- und -Ausgabe. Parser sind Hilfsfunktionen außerhalb der Befehlshierarchie — du kannst sie aus jedem Command-Handler aufrufen, der strukturierte Daten lesen oder erzeugen muss.

Application
└── Command
└── handler() ← Parser-Helfer hier aufrufen
load_yaml / render_json / …

Öffentliche APIs

FunktionBeschreibung
load_json(text)Einen JSON-String in ein Python-Objekt parsen
render_json(value)Ein Python-Objekt in einen JSON-String serialisieren
load_yaml(text)Einen YAML-String in ein Python-Objekt parsen
render_yaml(value)Ein Python-Objekt in einen YAML-String serialisieren
load_toml(text)Einen TOML-String in ein Python-Objekt parsen
render_toml(value)Ein Python-Objekt in einen TOML-String serialisieren

Zwischen Formaten konvertieren

from quickli import load_yaml, render_json

data = load_yaml("kind: Pod\nmetadata:\n name: web-preview\n")
print(render_json(data))

Strukturierte Eingabe aus einem Argument lesen

from pathlib import Path
from quickli import Application, Argument, load_json

app = Application(name="demo")


@app.command(
help_text="Eine JSON-Datei zusammenfassen.",
arguments=[Argument("path", converter=Path)],
)
def summarise(path: Path) -> str:
data = load_json(path.read_text())
return f"{len(data)} Schlüssel auf oberster Ebene"


print(app.run(["summarise", "data.json"]))

Tipps

:::tip Welches Format wählen

  • Verwende JSON für maschinelle Kommunikation und API-Antworten.
  • Verwende YAML für manuell bearbeitete Konfigurationen und Kubernetes-ähnliche Manifeste.
  • Verwende TOML für endnutzerorientierte Konfigurationsdateien (siehe Konfigurationsdateien).

Alle drei Helfer sind über den Top-Level-Import quickli verfügbar, du musst quickli.parsers nicht direkt importieren. :::

:::tip Parser vs. Config load_toml / render_toml sind nützlich für einmaliges Parsen von TOML-Strings oder Dateien, die du selbst verwaltest. Für persistente Anwendungskonfiguration mit Schema-Validierung und Auto-Initialisierung verwende stattdessen die dedizierten Config-Ressourcen. :::

Wie geht es weiter?

  • Siehe Konfigurationsdateien für persistente, schema-validierte Konfiguration.
  • Geh zurück zu Command, um zu sehen, wie Parser-Helfer in einen Handler eingebunden werden.