def routing_tree_to_json(node): return { "chip": node.chip, "children": [{ "route": (route_name(route) if isinstance(route, Routes) else route), "next_hop": (routing_tree_to_json(obj) if isinstance( obj, RoutingTree) else obj) } for route, obj in node.children] }
def routing_tree_to_json(node): return { "chip": node.chip, "children": [ { "route": (route_name(route) if isinstance(route, Routes) else route), "next_hop": (routing_tree_to_json(obj) if isinstance(obj, RoutingTree) else obj) } for route, obj in node.children ] }
if args.verbose >= 2: logging.basicConfig(level=logging.DEBUG) elif args.verbose >= 1: logging.basicConfig(level=logging.INFO) with open(args.routes, "r") as f: routes = unpack_routes(json.load(f)) with open(args.routing_keys, "r") as f: net_keys = unpack_net_keys(json.load(f)) tables = build_routing_tables(routes, net_keys, not args.keep_default_routes) with open(args.routing_tables, "w") as f: json.dump([ { "chip": xy, "entries": [ { "key": entry.key, "mask": entry.mask, "directions": [route_name(r) for r in entry.route] } for entry in entries ] } for xy, entries in iteritems(tables) ], f)
parser.add_argument("--verbose", "-v", action="count", default=0, help="verbosity level (may be given multiple times)") args = parser.parse_args() if args.verbose >= 2: logging.basicConfig(level=logging.DEBUG) elif args.verbose >= 1: logging.basicConfig(level=logging.INFO) with open(args.routes, "r") as f: routes = unpack_routes(json.load(f)) with open(args.routing_keys, "r") as f: net_keys = unpack_net_keys(json.load(f)) tables = build_routing_tables(routes, net_keys, not args.keep_default_routes) with open(args.routing_tables, "w") as f: json.dump([{ "chip": xy, "entries": [{ "key": entry.key, "mask": entry.mask, "directions": [route_name(r) for r in entry.route] } for entry in entries] } for xy, entries in iteritems(tables)], f)