jsonに限らないschema
Rubyには、yamlデータが期待した条件を満たしているかどうか検証する、
Kwalify
というライブラリがあります。
Rubyist Magazine - プログラマーのための YAML 入門 (検証編)
でも、KwalifyにはPython版は無いみたいなのです。
別にyamlを検証するライブラリがないか探していたら、ありました。
JSON Schema is a specification for a JSON-based format for defining the structure of JSON data.
よし、YAMLからJSONに移ろう!
・・・と、思いましたが、よく考えるとJSON SchemaはJSON Schemaと言いつつYAMLにも使えます。
JSON SchemaはデータがJSONから読み込んだか、YAMLから読み込んだか、
miniconfから読み込んだかを、気にしないんです。
schemaもPythonで直接書けば、JSONゼロで使えるんです、JSON Schemaを。
data = open("dw.yaml").read()
obj = yaml.load(data)
schema = {
"type" : "object",
"properties": {
"folders": {
"type" : "array",
},
"patterns": {"type":"array"},
"html" : {"type": "string"},
"css" : {
"type": "string",
"optional" : True,
"default" : "dw.css",
},
"fit" : {"type": "string"},
"html2bmp_cmdline" : {"type": "string"},
"resize_cmdline" : {"type": "string"}
}
}
jsonschema.validate(obj, schema)
これで、ConfigParserにはオサラバですね。