import argparse import os import subprocess import sys arg_parser = argparse.ArgumentParser( description="T5 Summarisation Using Pytorch Lightning", prog="t5s" ) # Command choice command_subparser = arg_parser.add_subparsers( dest="command", help="command (refer commands section in documentation)" ) parser_req = command_subparser.add_parser( "requirements", help="Install Python Dependencies." ) parser_dirs = command_subparser.add_parser( "dirs", help="Create directories that are ignored by git but required for " "the project", ) parser_push = command_subparser.add_parser( "push", help="Upload Data to default DVC remote" ) parser_pull = command_subparser.add_parser( "pull", help="Download Data from default DVC remote" ) parser_run = command_subparser.add_parser( "run", help="run the DVC pipeline - recompute any modified outputs such as " "processed data or trained models", ) parser_visualize = command_subparser.add_parser( "visualize", help="run the visualization using Streamlit" ) parser_upload = command_subparser.add_parser( "upload", help="push the trained model to HF model hub" ) parser_lint = command_subparser.add_parser("lint", help=" Lint using flake8") parser_clone = command_subparser.add_parser( "clone", help="Clone the T5 summarisation repo" ) class Run(object): def __init__(self, arguments: dict): self.arguments = arguments def execute(self): arguments = self.arguments print(f"arguments passed: {arguments['command']}") # os.chdir('../') cmd = [ "requirements", "dirs", "push", "pull", "run", "visualize", "upload", "lint", ] if arguments["command"] == "clone": list_files = subprocess.run( ["git", "clone", "https://dagshub.com/gagan3012/summarization.git"] ) os.chdir("./summarization/") retval = os.getcwd() print(retval) return list_files.returncode elif arguments["command"] in cmd: os.chdir("./summarization/") retval = os.getcwd() print(retval) list_files = subprocess.run(["make", arguments["command"]]) return list_files.returncode else: print("Command not supported") raise Exception def parse_args(args): arguments = vars(arg_parser.parse_args(args=args or ["--help"])) return arguments def main(args=None): if args is None: args = sys.argv[1:] parsed_args = parse_args(args=args) try: result = Run(arguments=parsed_args).execute() except Exception as e: print(str(e)) result = 1 sys.exit(result) if __name__ == "__main__": main()