summaryrefslogtreecommitdiff
path: root/tools/inspector_protocol/code_generator.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/inspector_protocol/code_generator.py')
-rwxr-xr-xtools/inspector_protocol/code_generator.py36
1 files changed, 16 insertions, 20 deletions
diff --git a/tools/inspector_protocol/code_generator.py b/tools/inspector_protocol/code_generator.py
index 9200022413..7b555d7478 100755
--- a/tools/inspector_protocol/code_generator.py
+++ b/tools/inspector_protocol/code_generator.py
@@ -5,7 +5,7 @@
import os.path
import sys
-import optparse
+import argparse
import collections
import functools
import re
@@ -17,6 +17,13 @@ except ImportError:
import pdl
+try:
+ unicode
+except NameError:
+ # Define unicode for Py3
+ def unicode(s, *_):
+ return s
+
# Path handling for libraries and templates
# Paths have to be normalized because Jinja uses the exact template path to
# determine the hash used in the cache filename, and we need a pre-caching step
@@ -53,27 +60,16 @@ def read_config():
return collections.namedtuple('X', keys)(*values)
try:
- cmdline_parser = optparse.OptionParser()
- cmdline_parser.add_option("--output_base")
- cmdline_parser.add_option("--jinja_dir")
- cmdline_parser.add_option("--config")
- cmdline_parser.add_option("--config_value", action="append", type="string")
- arg_options, _ = cmdline_parser.parse_args()
+ cmdline_parser = argparse.ArgumentParser()
+ cmdline_parser.add_argument("--output_base", type=unicode, required=True)
+ cmdline_parser.add_argument("--jinja_dir", type=unicode, required=True)
+ cmdline_parser.add_argument("--config", type=unicode, required=True)
+ cmdline_parser.add_argument("--config_value", default=[], action="append")
+ arg_options = cmdline_parser.parse_args()
jinja_dir = arg_options.jinja_dir
- if not jinja_dir:
- raise Exception("jinja directory must be specified")
- jinja_dir = jinja_dir.decode('utf8')
output_base = arg_options.output_base
- if not output_base:
- raise Exception("Base output directory must be specified")
- output_base = output_base.decode('utf8')
config_file = arg_options.config
- if not config_file:
- raise Exception("Config file name must be specified")
- config_file = config_file.decode('utf8')
config_values = arg_options.config_value
- if not config_values:
- config_values = []
except Exception:
# Work with python 2 and 3 http://docs.python.org/py3k/howto/pyporting.html
exc = sys.exc_info()[1]
@@ -631,7 +627,7 @@ def main():
"Array_h.template",
"DispatcherBase_h.template",
"Parser_h.template",
- "CBOR_h.template",
+ "encoding_h.template",
]
protocol_cpp_templates = [
@@ -641,7 +637,7 @@ def main():
"Object_cpp.template",
"DispatcherBase_cpp.template",
"Parser_cpp.template",
- "CBOR_cpp.template",
+ "encoding_cpp.template",
]
forward_h_templates = [