def main()

in common_components/monitoring/json_to_dot.py [0:0]


def main():
    """ Main for converting a dependency graph into a graphviz DOT formatted graph"""
    parser = argparse.ArgumentParser(description='Convert JSON performance graph to DOT graph')
    parser.add_argument('json_graph', nargs='?', type=argparse.FileType('r'),
                        default=sys.stdin)
    parser.add_argument('dot_graph', nargs='?', type=argparse.FileType('w'),
                        default=sys.stdout)
    parser.add_argument('--lr',
                        help='Left to right graph instead of top to bottom',
                        action='store_true')
    parser.add_argument('--seconds_per_block',
                        type=int, default=1,
                        help='Seconds per incremental in graph output')
    parser.add_argument('--debug',
                        help='Enable debug style DOT graph',
                        action='store_true')
    args = parser.parse_args()

    # Read in JSON
    data = json.load(sys.stdin)

    # Convert to a dictionary from a list
    nodes = json_to_dot_dict(data)

    # Find real nodes, trim names
    find_real(nodes)
    trim_names(nodes)

    find_critical_path(nodes)

    # Reader as a DOT graph
    render_dot(nodes,
               left_right=args.lr,
               seconds_per_block=args.seconds_per_block,
               debug=args.debug)