Ich möchte ein Konfigurationsdateiformat verwenden, das Schlüsselwertpaare und verschachtelbare, wiederholbare Strukturen unterstützt und das so wenig Syntax wie möglich enthält. Ich stelle mir etwas vor wie:
%Vor%Ich wäre auch mit etwas zufrieden, das einen signifikanten Leerraum verwendet.
JSON benötigt zu viele explizite Syntaxregeln (Zitate, Kommas usw.). YAML ist eigentlich ziemlich gut, würde aber erfordern, dass die Jobs als YAML-Liste definiert werden, was ich etwas peinlich finde.
Ich denke, YAML ist großartig für diesen Zweck, eigentlich:
%Vor%Oder als Diktat statt Liste:
%Vor%Eine weitere Sache, die Sie möglicherweise nicht in Betracht ziehen, ist die Python-Quelle für die Konfiguration. Sie können Python-Dicts und Listen sehr gut lesbar verschachteln und es bietet mehrere unerwartete Vorteile. Django verwendet beispielsweise Python-Quellen für seine Einstellungsdateien.
Da Pythons eingebautes configparser
-Modul anscheinend keine verschachtelten Abschnitte unterstützt, würde ich zuerst ConfigObj ausprobieren . (Siehe ein Einführungstutorial hier ). Laut seiner Homepage ist dies der Satz von Funktionen erwähnenswert:
ConfigObj wird von Bazaar, Trac, IPython, matplotlib und vielen anderen großen Python-Projekten verwendet es scheint mir ziemlich reif und stabil zu sein (obwohl ich es nie selbst benutzt habe).
Sie können Jsonnet auch dann in Erwägung ziehen, wenn Ihre Anforderungen diese anderen Optionen überschreiten. Jsonnet ist eine Erweiterung von JSON, die auf den ersten Blick Kommentare hinzufügt, Kommatregeln lockert und so viele Zitate überflüssig macht. Aber wenn Sie genauer hinschauen, sehen Sie, dass es wirklich eine voll funktionsfähige Programmiersprache bietet und Unterstützung für die Template-Erweiterung über Mixins, Dateiimporte usw. bietet. Es gibt eine Python-Bindung dafür, aber seine tatsächliche Implementierung ist C ++.
Tags und Links python configuration parsing configuration-files config