|  | #!/usr/bin/env python3 | 
|  | """ Print connection map lookahead in human readable format. """ | 
|  |  | 
|  | import argparse | 
|  | import capnp | 
|  | from lib.connection_box_tools import load_connection_box, iterate_connection_box | 
|  |  | 
|  | # Remove magic import hook. | 
|  | capnp.remove_import_hook() | 
|  |  | 
|  |  | 
|  | def main(): | 
|  | parser = argparse.ArgumentParser(description=__doc__) | 
|  | parser.add_argument( | 
|  | '--schema_path', help='Path to connection map schema', required=True | 
|  | ) | 
|  | parser.add_argument('--lookahead_map', required=True) | 
|  |  | 
|  | args = parser.parse_args() | 
|  |  | 
|  | with open(args.lookahead_map, 'rb') as f: | 
|  | cost_map = load_connection_box(args.schema_path, f) | 
|  |  | 
|  | for segment, connection_box, ( | 
|  | x_off, y_off), m in iterate_connection_box(cost_map): | 
|  | assert len(m.dims) == 2 | 
|  | x_dim = m.dims[0] | 
|  | y_dim = m.dims[1] | 
|  |  | 
|  | print( | 
|  | 'Cost map for segment {} connection box {} (size {}, {}, offset {}, {})' | 
|  | .format(segment, connection_box, x_dim, y_dim, x_off, y_off) | 
|  | ) | 
|  |  | 
|  | itr = iter(m.data) | 
|  |  | 
|  | for x in range(x_dim): | 
|  | for y in range(y_dim): | 
|  | value = next(itr) | 
|  | print( | 
|  | '({}, {}) = {{ delay = {}, congestion = {} }}'.format( | 
|  | x + x_off, | 
|  | y + y_off, | 
|  | value.value.delay, | 
|  | value.value.congestion, | 
|  | ) | 
|  | ) | 
|  |  | 
|  |  | 
|  | if __name__ == "__main__": | 
|  | main() |