1#!/usr/bin/env python3 2 3import os 4import yaml 5from argparse import ArgumentParser 6from mako.template import Template 7from mako.lookup import TemplateLookup 8 9if __name__ == '__main__': 10 parser = ArgumentParser( 11 description="Power sequencer UCD90160 definition parser") 12 13 parser.add_argument('-i', '--input_yaml', dest='input_yaml', 14 default="example/ucd90160.yaml", 15 help='UCD90160 definitions YAML') 16 17 parser.add_argument('-o', '--output_dir', dest='output_dir', 18 default=".", 19 help='output directory') 20 21 args = parser.parse_args() 22 23 if not args.input_yaml or not args.output_dir: 24 parser.print_usage() 25 sys.exit(1) 26 27 with open(args.input_yaml, 'r') as ucd90160_input: 28 ucd90160_data = yaml.safe_load(ucd90160_input) or {} 29 30 templates_dir = os.path.join( 31 os.path.dirname(os.path.realpath(__file__)), 32 "templates") 33 34 output_file = os.path.join(args.output_dir, "ucd90160_defs.cpp") 35 36 mylookup = TemplateLookup( 37 directories=templates_dir.split()) 38 mytemplate = mylookup.get_template('ucd90160_defs.mako.cpp') 39 40 with open(output_file, 'w') as output: 41 output.write(mytemplate.render(ucd90160s=ucd90160_data)) 42