#!/usr/bin/env python@_VERSION@ # Copyright (c) Advanced Micro Devices, Inc. # SPDX-License-Identifier: MIT from __future__ import absolute_import __author__ = "AMD ROCm" __copyright__ = "Copyright 2024, Advanced Micro Devices, Inc." __license__ = "MIT" __version__ = "@PROJECT_VERSION@" __maintainer__ = "AMD ROCm" __status__ = "Development" """ @file __main__.py Command line execution for profiler """ import os import sys import argparse import traceback PY3 = sys.version_info[0] == 3 _ROCPROFSYS_PYTHON_SCRIPT_FILE = None # Python 3.x compatibility utils: execfile try: execfile except NameError: # Python 3.x doesn't have 'execfile' builtin import builtins exec_ = getattr(builtins, "exec") def execfile(filename, globals=None, locals=None): with open(filename, "rb") as f: exec_(compile(f.read(), filename, "exec"), globals, locals) def find_script(script_name): """Find the script. If the input is not a file, then $PATH will be searched. """ if os.path.isfile(script_name): return script_name path = os.getenv("PATH", os.defpath).split(os.pathsep) for dir in path: if dir == "": continue fn = os.path.join(dir, script_name) if os.path.isfile(fn): return fn sys.stderr.write("Could not find script %s\n" % script_name) raise SystemExit(1) def parse_args(args=None): """Parse the arguments""" if args is None: args = sys.argv[1:] from .libpyrocprofsys.profiler import config as _profiler_config def str2bool(v): if isinstance(v, bool): return v if v.lower() in ("yes", "true", "t", "y", "1"): return True elif v.lower() in ("no", "false", "f", "n", "0"): return False else: raise argparse.ArgumentTypeError("Boolean value expected.") _default_label = [] if _profiler_config.include_args: _default_label.append("args") if _profiler_config.include_filename: _default_label.append("file") if _profiler_config.include_line: _default_label.append("line") parser = argparse.ArgumentParser( "rocprofsys", add_help=True, epilog="usage: {} -m rocprofsys --