SpaceApi / schema

SpaceAPI JSON schema files.
24 stars 14 forks source link

Update to JSON schema v4 #1

Closed rnestler closed 7 years ago

rnestler commented 7 years ago

I updated it with the following script:

import sys
import json
import collections

assert(len(sys.argv) > 1)

with open(sys.argv[1]) as f:
    specs = json.loads(f.read(), object_pairs_hook=collections.OrderedDict)

def parse_object(name, value):
    required_properties = []
    if "properties" in value:
        for prop_name, prop in value["properties"].items():
            if "required" in prop:
                if prop["required"] == True:
                    required_properties.append(prop_name)
                del prop["required"]
            parse(name + "." + prop_name, prop)
    if len(required_properties) > 0:
        value["required"] = required_properties
    print(name, required_properties)

def parse_array(name, value):
    parse(name + ".items", value["items"])

def parse(name, value):
    if value["type"] == "object":
        parse_object(name, value)
    if value["type"] == "array":
        parse_array(name, value)

parse("root", specs)

out_file = sys.argv[2] if len(sys.argv) >= 3 else sys.argv[1]
print(out_file)
with open(out_file, "w") as f:
    f.write(json.dumps(specs, indent=2))

Edit: updated the script

dbrgn commented 7 years ago

Harakiri-Merge 😉