Esempio n. 1
0
def create_structures(fn, root=None):
    with open(fn, "r") as fo:
        data = json.load(fo)

        structures = []
        build_structure(data, structures, name=root)
        return remove_equal(structures)
Esempio n. 2
0
def create_structures(fn, root=None):
    with open(fn, "r") as fo:
        data = json.load(fo)

        structures = []
        build_structure(data, structures, name=root)
        return remove_equal(structures)
Esempio n. 3
0
    for child in elem:
        if len(child.attrib) == 0 and len(child) == 0:
            fields[child.tag] = String()
        else:
            fields[child.tag] = build_structure(child, structures)
    struct = Struct(elem.tag, fields, attributes)
    structures.append(struct)
    return struct

def create_structures(fn):
    root = parse_xml(fn)
    structures = []
    build_structure(root, structures)
    return structures

if __name__ == "__main__":
    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument("source", help="Source file to create structures from")
    parser.add_argument("--merge-similar", help="Merge similar structures, not just equal", action="store_true")
    args = parser.parse_args()

    structures = create_structures(args.source)
    if args.merge_similar:
        structures = remove_similar(structures)
    else:
        structures = remove_equal(structures)
    structures = rename_duplicates(structures)
    for struct in structures:
        print(print_xml(struct))