import sys import traceback from s3prl import problem def main(): try: cls = getattr(problem, sys.argv[1]) except: available_problems = [ name for name in dir(problem) if not name.startswith("_") and isinstance(getattr(problem, name), type) ] print(traceback.format_exc()) print( "Usage:\n" "1. s3prl-main [PROBLEM] -h\n" "2. python3 -m s3prl.main [PROBLEM] -h\n" "3. python3 s3prl/main.py [PROBLEM] -h\n" "\nPROBLEM should be an available class name in the s3prl.problem package.\n" f"Available options: {', '.join(available_problems)}" ) exit(0) cls().main(sys.argv[2:]) if __name__ == "__main__": main()