ai-content-maker/.venv/Lib/site-packages/numba/misc/numba_entry.py

73 lines
2.6 KiB
Python
Raw Normal View History

2024-05-03 04:18:51 +03:00
import sys
import argparse
import os
import subprocess
import json
from .numba_sysinfo import display_sysinfo, get_sysinfo
from .numba_gdbinfo import display_gdbinfo
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('--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('-g', '--gdbinfo', action="store_true",
help='Output system information about gdb')
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.sysinfo:
print("System info:")
display_sysinfo()
if args.gdbinfo:
print("GDB info:")
display_gdbinfo()
if args.sysinfo or args.gdbinfo:
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)