Skip to content
Permalink
master
Go to file
 
 
Cannot retrieve contributors at this time
74 lines (64 sloc) 2.71 KB
import sys
import argparse
import os
import subprocess
import json
from .numba_sysinfo import display_sysinfo, get_sysinfo
def make_parser():
parser = argparse.ArgumentParser()
parser.add_argument('--annotate', help='Annotate source',
action='store_true')
parser.add_argument('--dump-llvm', action="store_true",
help='Print generated llvm assembly')
parser.add_argument('--dump-optimized', action='store_true',
help='Dump the optimized llvm assembly')
parser.add_argument('--dump-assembly', action='store_true',
help='Dump the LLVM generated assembly')
parser.add_argument('--dump-cfg', action="store_true",
help='[Deprecated] Dump the control flow graph')
parser.add_argument('--dump-ast', action="store_true",
help='[Deprecated] Dump the AST')
parser.add_argument('--annotate-html', nargs=1,
help='Output source annotation as html')
parser.add_argument('-s', '--sysinfo', action="store_true",
help='Output system information for bug reporting')
parser.add_argument('--sys-json', nargs=1,
help='Saves the system info dict as a json file')
parser.add_argument('filename', nargs='?', help='Python source filename')
return parser
def main():
parser = make_parser()
args = parser.parse_args()
if args.dump_cfg:
print("CFG dump is removed.")
sys.exit(1)
if args.dump_ast:
print("AST dump is removed. Numba no longer depends on AST.")
sys.exit(1)
if args.sysinfo:
print("System info:")
display_sysinfo()
sys.exit(0)
if args.sys_json:
info = get_sysinfo()
info.update({'Start': info['Start'].isoformat()})
info.update({'Start UTC': info['Start UTC'].isoformat()})
with open(args.sys_json[0], 'w') as f:
json.dump(info, f, indent=4)
sys.exit(0)
os.environ['NUMBA_DUMP_ANNOTATION'] = str(int(args.annotate))
if args.annotate_html is not None:
try:
from jinja2 import Template
except ImportError:
raise ImportError("Please install the 'jinja2' package")
os.environ['NUMBA_DUMP_HTML'] = str(args.annotate_html[0])
os.environ['NUMBA_DUMP_LLVM'] = str(int(args.dump_llvm))
os.environ['NUMBA_DUMP_OPTIMIZED'] = str(int(args.dump_optimized))
os.environ['NUMBA_DUMP_ASSEMBLY'] = str(int(args.dump_assembly))
if args.filename:
cmd = [sys.executable, args.filename]
subprocess.call(cmd)
else:
print("numba: error: the following arguments are required: filename")
sys.exit(1)
You can’t perform that action at this time.