def main(): """Main entry point for iotile-sgcompile.""" arg_parser = build_args() args = arg_parser.parse_args() model = DeviceModel() parser = SensorGraphFileParser() parser.parse_file(args.sensor_graph) if args.format == u'ast': write_output(parser.dump_tree(), True, args.output) sys.exit(0) parser.compile(model) if not args.disable_optimizer: opt = SensorGraphOptimizer() opt.optimize(parser.sensor_graph, model=model) if args.format == u'nodes': output = u'\n'.join(parser.sensor_graph.dump_nodes()) + u'\n' write_output(output, True, args.output) else: if args.format not in KNOWN_FORMATS: print("Unknown output format: {}".format(args.format)) sys.exit(1) output_format = KNOWN_FORMATS[args.format] output = output_format.format(parser.sensor_graph) write_output(output, output_format.text, args.output)
def main(): arg_parser = build_args() args = arg_parser.parse_args() model = DeviceModel() parser = SensorGraphFileParser() parser.parse_file(args.sensor_graph) outfile = sys.stdout if args.output is not None: outfile = open(args.output, "wb") if args.format == u'ast': outfile.write(parser.dump_tree().encode()) outfile.close() sys.exit(0) parser.compile(model) if not args.disable_optimizer: opt = SensorGraphOptimizer() opt.optimize(parser.sensor_graph, model=model) if args.format == u'nodes': for node in parser.sensor_graph.dump_nodes(): outfile.write((node + u'\n').encode()) else: if args.format not in known_formats: print("Unknown output format: {}".format(args.format)) outfile.close() sys.exit(1) output = known_formats[args.format](parser.sensor_graph) if args.format in (u'snippet', u'ascii', u'config'): outfile.write(output.encode()) else: outfile.write(output) outfile.close()