vppapigen: remove python2 support
vppapigen has been running under python3 for months. Remove the python2 conditional code. In case of an error, explicitly log and return non-0. Type: refactor Change-Id: I20a73e0f2cb875aab6441959a85a35e88c9f8250 Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com> (cherry picked from commit 2cd3cc8a605a062c7900dbcc3fad53d04723c298)
This commit is contained in:
parent
1be8581c6f
commit
4db04c021d
@ -1,6 +1,5 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
from __future__ import print_function
|
||||
import ply.lex as lex
|
||||
import ply.yacc as yacc
|
||||
import sys
|
||||
@ -9,6 +8,8 @@ import logging
|
||||
import binascii
|
||||
import os
|
||||
|
||||
log = logging.getLogger('vppapigen')
|
||||
|
||||
# Ensure we don't leave temporary files around
|
||||
sys.dont_write_bytecode = True
|
||||
|
||||
@ -289,12 +290,9 @@ class Import():
|
||||
f = os.path.join(dir, filename)
|
||||
if os.path.exists(f):
|
||||
break
|
||||
if sys.version[0] == '2':
|
||||
with open(f) as fd:
|
||||
self.result = parser.parse_file(fd, None)
|
||||
else:
|
||||
with open(f, encoding='utf-8') as fd:
|
||||
self.result = parser.parse_file(fd, None)
|
||||
|
||||
with open(f, encoding='utf-8') as fd:
|
||||
self.result = parser.parse_file(fd, None)
|
||||
|
||||
def __repr__(self):
|
||||
return self.filename
|
||||
@ -822,6 +820,7 @@ def dirlist_add(dirs):
|
||||
def dirlist_get():
|
||||
return dirlist
|
||||
|
||||
|
||||
def foldup_blocks(block, crc):
|
||||
for b in block:
|
||||
# Look up CRC in user defined types
|
||||
@ -835,32 +834,32 @@ def foldup_blocks(block, crc):
|
||||
pass
|
||||
return crc
|
||||
|
||||
|
||||
def foldup_crcs(s):
|
||||
for f in s:
|
||||
f.crc = foldup_blocks(f.block,
|
||||
binascii.crc32(f.crc))
|
||||
|
||||
|
||||
#
|
||||
# Main
|
||||
#
|
||||
def main():
|
||||
if sys.version_info < (3, 5,):
|
||||
log.exception('vppapigen requires a supported version of python. '
|
||||
'Please use version 3.5 or greater. '
|
||||
'Using {}'.format(sys.version))
|
||||
return 1
|
||||
|
||||
cliparser = argparse.ArgumentParser(description='VPP API generator')
|
||||
cliparser.add_argument('--pluginpath', default=""),
|
||||
cliparser.add_argument('--includedir', action='append'),
|
||||
if sys.version[0] == '2':
|
||||
cliparser.add_argument('--input', type=argparse.FileType('r'),
|
||||
default=sys.stdin)
|
||||
cliparser.add_argument('--output', nargs='?',
|
||||
type=argparse.FileType('w'),
|
||||
default=sys.stdout)
|
||||
|
||||
else:
|
||||
cliparser.add_argument('--input',
|
||||
type=argparse.FileType('r', encoding='UTF-8'),
|
||||
default=sys.stdin)
|
||||
cliparser.add_argument('--output', nargs='?',
|
||||
type=argparse.FileType('w', encoding='UTF-8'),
|
||||
default=sys.stdout)
|
||||
cliparser.add_argument('--input',
|
||||
type=argparse.FileType('r', encoding='UTF-8'),
|
||||
default=sys.stdin)
|
||||
cliparser.add_argument('--output', nargs='?',
|
||||
type=argparse.FileType('w', encoding='UTF-8'),
|
||||
default=sys.stdout)
|
||||
|
||||
cliparser.add_argument('output_module', nargs='?', default='C')
|
||||
cliparser.add_argument('--debug', action='store_true')
|
||||
@ -883,7 +882,6 @@ def main():
|
||||
logging.basicConfig(stream=sys.stdout, level=logging.WARNING)
|
||||
else:
|
||||
logging.basicConfig()
|
||||
log = logging.getLogger('vppapigen')
|
||||
|
||||
parser = VPPAPI(debug=args.debug, filename=filename, logger=log)
|
||||
parsed_objects = parser.parse_file(args.input, log)
|
||||
@ -930,7 +928,8 @@ def main():
|
||||
else:
|
||||
pluginpath = args.pluginpath + '/'
|
||||
if pluginpath == '':
|
||||
raise Exception('Output plugin not found')
|
||||
log.exception('Output plugin not found')
|
||||
return 1
|
||||
module_path = '{}vppapigen_{}.py'.format(pluginpath,
|
||||
args.output_module.lower())
|
||||
|
||||
@ -938,16 +937,19 @@ def main():
|
||||
plugin = SourceFileLoader(args.output_module,
|
||||
module_path).load_module()
|
||||
except Exception as err:
|
||||
raise Exception('Error importing output plugin: {}, {}'
|
||||
.format(module_path, err))
|
||||
log.exception('Error importing output plugin: {}, {}'
|
||||
.format(module_path, err))
|
||||
return 1
|
||||
|
||||
result = plugin.run(filename, s)
|
||||
if result:
|
||||
print(result, file=args.output)
|
||||
else:
|
||||
raise Exception('Running plugin failed: {} {}'
|
||||
.format(filename, result))
|
||||
log.exception('Running plugin failed: {} {}'
|
||||
.format(filename, result))
|
||||
return 1
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
sys.exit(main())
|
||||
|
Loading…
x
Reference in New Issue
Block a user