55
66import os .path
77import sys
8- import optparse
8+ import argparse
99import collections
1010import functools
1111import re
1717
1818import pdl
1919
20+ try :
21+ unicode
22+ except NameError :
23+ # Define unicode for Py3
24+ def unicode (s , * _ ):
25+ return s
26+
2027# Path handling for libraries and templates
2128# Paths have to be normalized because Jinja uses the exact template path to
2229# determine the hash used in the cache filename, and we need a pre-caching step
@@ -53,27 +60,16 @@ def init_defaults(config_tuple, path, defaults):
5360 return collections .namedtuple ('X' , keys )(* values )
5461
5562 try :
56- cmdline_parser = optparse . OptionParser ()
57- cmdline_parser .add_option ("--output_base" )
58- cmdline_parser .add_option ("--jinja_dir" )
59- cmdline_parser .add_option ("--config" )
60- cmdline_parser .add_option ("--config_value" , action = "append" , type = "string " )
61- arg_options , _ = cmdline_parser .parse_args ()
63+ cmdline_parser = argparse . ArgumentParser ()
64+ cmdline_parser .add_argument ("--output_base" , type = unicode , required = True )
65+ cmdline_parser .add_argument ("--jinja_dir" , type = unicode , required = True )
66+ cmdline_parser .add_argument ("--config" , type = unicode , required = True )
67+ cmdline_parser .add_argument ("--config_value" , default = [], action = "append " )
68+ arg_options = cmdline_parser .parse_args ()
6269 jinja_dir = arg_options .jinja_dir
63- if not jinja_dir :
64- raise Exception ("jinja directory must be specified" )
65- jinja_dir = jinja_dir .decode ('utf8' )
6670 output_base = arg_options .output_base
67- if not output_base :
68- raise Exception ("Base output directory must be specified" )
69- output_base = output_base .decode ('utf8' )
7071 config_file = arg_options .config
71- if not config_file :
72- raise Exception ("Config file name must be specified" )
73- config_file = config_file .decode ('utf8' )
7472 config_values = arg_options .config_value
75- if not config_values :
76- config_values = []
7773 except Exception :
7874 # Work with python 2 and 3 http://docs.python.org/py3k/howto/pyporting.html
7975 exc = sys .exc_info ()[1 ]
@@ -631,7 +627,7 @@ def main():
631627 "Array_h.template" ,
632628 "DispatcherBase_h.template" ,
633629 "Parser_h.template" ,
634- "CBOR_h .template" ,
630+ "encoding_h .template" ,
635631 ]
636632
637633 protocol_cpp_templates = [
@@ -641,7 +637,7 @@ def main():
641637 "Object_cpp.template" ,
642638 "DispatcherBase_cpp.template" ,
643639 "Parser_cpp.template" ,
644- "CBOR_cpp .template" ,
640+ "encoding_cpp .template" ,
645641 ]
646642
647643 forward_h_templates = [
0 commit comments