def main(prog: str = None, subcommand_overrides: Dict[str, Subcommand] = {}) -> None: """ The :mod:`~allennlp.run` command only knows about the registered classes in the ``allennlp`` codebase. In particular, once you start creating your own ``Model`` s and so forth, it won't work for them, unless you use the ``--include-package`` flag. """ parser = ArgumentParserWithDefaults(description="Run AllenNLP", usage="%(prog)s", prog=prog) parser.add_argument("--version", action="version", version="%(prog)s " + __version__) subparsers = parser.add_subparsers(title="Commands", metavar="") subcommands = { # Default commands "configure": Configure(), "train": Train(), "evaluate": Evaluate(), "predict": Predict(), "make-vocab": MakeVocab(), "elmo": Elmo(), "fine-tune": FineTune(), "dry-run": DryRun(), "test-install": TestInstall(), "find-lr": FindLearningRate(), "print-results": PrintResults(), # Superseded by overrides **subcommand_overrides, } for name, subcommand in subcommands.items(): subparser = subcommand.add_subparser(name, subparsers) # configure doesn't need include-package because it imports # whatever classes it needs. if name != "configure": subparser.add_argument( "--include-package", type=str, action="append", default=[], help="additional packages to include", ) args = parser.parse_args() # If a subparser is triggered, it adds its work as `args.func`. # So if no such attribute has been added, no subparser was triggered, # so give the user some help. if "func" in dir(args): # Import any additional modules needed (to register custom classes). for package_name in getattr(args, "include_package", ()): import_submodules(package_name) args.func(args) else: parser.print_help()
def main(prog: str = None, model_overrides: Dict[str, DemoModel] = {}, predictor_overrides: Dict[str, str] = {}, subcommand_overrides: Dict[str, Subcommand] = {}) -> None: """ The :mod:`~allennlp.run` command only knows about the registered classes in the ``allennlp`` codebase. In particular, once you start creating your own ``Model`` s and so forth, it won't work for them, unless you use the ``--include-package`` flag available for most commands. """ # pylint: disable=dangerous-default-value # TODO(mattg): document and/or remove the `predictor_overrides` and `model_overrides` commands. # The `--predictor` option for the `predict` command largely removes the need for # `predictor_overrides`, and I think the simple server largely removes the need for # `model_overrides`, and maybe the whole `serve` command as a public API (we only need that # path for demo.allennlp.org, and it's not likely anyone else would host that particular demo). parser = argparse.ArgumentParser(description="Run AllenNLP", usage='%(prog)s', prog=prog) subparsers = parser.add_subparsers(title='Commands', metavar='') subcommands = { # Default commands "train": Train(), "evaluate": Evaluate(), "predict": Predict(predictor_overrides), "serve": Serve(model_overrides), "make-vocab": MakeVocab(), "elmo": Elmo(), "fine-tune": FineTune(), # Superseded by overrides **subcommand_overrides } for name, subcommand in subcommands.items(): subparser = subcommand.add_subparser(name, subparsers) subparser.add_argument('--include-package', type=str, action='append', default=[], help='additional packages to include') args = parser.parse_args() # Import any additional modules needed (to register custom classes). for package_name in args.include_package: import_submodules(package_name) # If a subparser is triggered, it adds its work as `args.func`. # So if no such attribute has been added, no subparser was triggered, # so give the user some help. if 'func' in dir(args): args.func(args) else: parser.print_help()
def main(prog: str = None, subcommand_overrides: Dict[str, Subcommand] = {}) -> None: """ The :mod:`~allennlp.run` command only knows about the registered classes in the ``allennlp`` codebase. In particular, once you start creating your own ``Model`` s and so forth, it won't work for them, unless you use the ``--include-package`` flag. """ # pylint: disable=dangerous-default-value parser = argparse.ArgumentParser(description="Run AllenNLP", usage='%(prog)s', prog=prog) parser.add_argument('--version', action='version', version='%(prog)s ' + __version__) subparsers = parser.add_subparsers(title='Commands', metavar='') subcommands = { # Default commands "configure": Configure(), "train": Train(), "train_multitask": TrainMultiTask(), # includes the auxillary citation section prediction task "train_multitask_2": TrainMultiTask2(), # includes both tasks "evaluate": Evaluate(), "predict": Predict(), "make-vocab": MakeVocab(), "elmo": Elmo(), "fine-tune": FineTune(), "dry-run": DryRun(), "test-install": TestInstall(), # Superseded by overrides **subcommand_overrides } for name, subcommand in subcommands.items(): subparser = subcommand.add_subparser(name, subparsers) # configure doesn't need include-package because it imports # whatever classes it needs. if name != "configure": subparser.add_argument('--include-package', type=str, action='append', default=[], help='additional packages to include') args = parser.parse_args() # If a subparser is triggered, it adds its work as `args.func`. # So if no such attribute has been added, no subparser was triggered, # so give the user some help. if 'func' in dir(args): # Import any additional modules needed (to register custom classes). for package_name in getattr(args, 'include_package', ()): try: import_submodules(package_name) except TypeError: import pdb; pdb.set_trace() args.func(args) else: parser.print_help()
def setUp(self): super(TestFineTune, self).setUp() self.model_archive = unicode(self.FIXTURES_ROOT / u'decomposable_attention' / u'serialization' / u'model.tar.gz') self.config_file = unicode(self.FIXTURES_ROOT / u'decomposable_attention' / u'experiment.json') self.serialization_dir = unicode(self.TEST_DIR / u'fine_tune') self.parser = argparse.ArgumentParser(description=u"Testing") subparsers = self.parser.add_subparsers(title=u'Commands', metavar=u'') FineTune().add_subparser(u'fine-tune', subparsers)
def setUp(self): super().setUp() self.model_archive = 'tests/fixtures/decomposable_attention/serialization/model.tar.gz' self.config_file = 'tests/fixtures/decomposable_attention/experiment.json' self.serialization_dir = os.path.join(self.TEST_DIR, 'fine_tune') self.parser = argparse.ArgumentParser(description="Testing") subparsers = self.parser.add_subparsers(title='Commands', metavar='') FineTune().add_subparser('fine-tune', subparsers)
def setUp(self): super().setUp() self.model_archive = str( self.FIXTURES_ROOT / "decomposable_attention" / "serialization" / "model.tar.gz" ) self.config_file = str(self.FIXTURES_ROOT / "decomposable_attention" / "experiment.json") self.serialization_dir = str(self.TEST_DIR / "fine_tune") self.parser = argparse.ArgumentParser(description="Testing") subparsers = self.parser.add_subparsers(title="Commands", metavar="") FineTune().add_subparser(subparsers)
def create_parser( prog: str = None, subcommand_overrides: Dict[str, Subcommand] = None) -> argparse.ArgumentParser: """ Creates the argument parser for the main program. """ if subcommand_overrides is None: subcommand_overrides = {} parser = ArgumentParserWithDefaults(description="Run AllenNLP", usage="%(prog)s", prog=prog) parser.add_argument("--version", action="version", version="%(prog)s " + __version__) subparsers = parser.add_subparsers(title="Commands", metavar="") subcommands = { # Default commands "train": Train(), "evaluate": Evaluate(), "predict": Predict(), "elmo": Elmo(), "fine-tune": FineTune(), "dry-run": DryRun(), "make-vocab": DryRun(), # deprecated, but keeping for backward compatibility. "test-install": TestInstall(), "find-lr": FindLearningRate(), "print-results": PrintResults(), # Superseded by overrides **subcommand_overrides, } for name, subcommand in subcommands.items(): subparser = subcommand.add_subparser(name, subparsers) # configure doesn't need include-package because it imports # whatever classes it needs. if name != "configure": subparser.add_argument( "--include-package", type=str, action="append", default=[], help="additional packages to include", ) return parser
def main(prog=None, subcommand_overrides={}): u""" The :mod:`~allennlp.run` command only knows about the registered classes in the ``allennlp`` codebase. In particular, once you start creating your own ``Model`` s and so forth, it won't work for them, unless you use the ``--include-package`` flag. """ # pylint: disable=dangerous-default-value parser = argparse.ArgumentParser(description=u"Run AllenNLP", usage=u'%(prog)s', prog=prog) parser.add_argument(u'--version', action=u'version', version=u'%(prog)s ') subparsers = parser.add_subparsers(title=u'Commands', metavar=u'') subcommands = { # Default commands u"configure": Configure(), u"train": Train(), u"evaluate": Evaluate(), u"predict": Predict(), u"make-vocab": MakeVocab(), u"elmo": Elmo(), u"fine-tune": FineTune(), u"dry-run": DryRun(), u"test-install": TestInstall(), } for name, subcommand in list(subcommands.items()): subparser = subcommand.add_subparser(name, subparsers) # configure doesn't need include-package because it imports # whatever classes it needs. if name != u"configure": subparser.add_argument(u'--include-package', type=unicode, action=u'append', default=[], help=u'additional packages to include') args = parser.parse_args() # If a subparser is triggered, it adds its work as `args.func`. # So if no such attribute has been added, no subparser was triggered, # so give the user some help. if u'func' in dir(args): # Import any additional modules needed (to register custom classes). for package_name in getattr(args, u'include_package', ()): import_submodules(package_name) args.func(args) else: parser.print_help()
def main(prog: str = None, subcommand_overrides: Dict[str, Subcommand] = {}) -> None: """ The :mod:`~allennlp.run` command only knows about the registered classes in the ``allennlp`` codebase. In particular, once you start creating your own ``Model`` s and so forth, it won't work for them, unless you use the ``--include-package`` flag. """ # pylint: disable=dangerous-default-value parser = argparse.ArgumentParser(description="Run AllenNLP", usage='%(prog)s', prog=prog) subparsers = parser.add_subparsers(title='Commands', metavar='') subcommands = { # Default commands "train": Train(), "evaluate": Evaluate(), "predict": Predict(), "make-vocab": MakeVocab(), "elmo": Elmo(), "fine-tune": FineTune(), "dry-run": DryRun(), # Superseded by overrides **subcommand_overrides } for name, subcommand in subcommands.items(): subparser = subcommand.add_subparser(name, subparsers) subparser.add_argument('--include-package', type=str, action='append', default=[], help='additional packages to include') args = parser.parse_args() # If a subparser is triggered, it adds its work as `args.func`. # So if no such attribute has been added, no subparser was triggered, # so give the user some help. if 'func' in dir(args): # Import any additional modules needed (to register custom classes). for package_name in args.include_package: import_submodules(package_name) # Run a command args.func(args) else: parser.print_help()
def main(): prog = "python -m allennlp.run" subcommand_overrides = {} # pylint: disable=dangerous-default-value parser = argparse.ArgumentParser(description="Run AllenNLP", usage='%(prog)s', prog=prog) print(parser) subparsers = parser.add_subparsers(title='Commands', metavar='') subcommands = { # Default commands "train": Train(), "evaluate": Evaluate(), "evaluate_mlqa": Evaluate_MLQA(), "make-vocab": MakeVocab(), "fine-tune": FineTune(), # Superseded by overrides **subcommand_overrides } for name, subcommand in subcommands.items(): subparser = subcommand.add_subparser(name, subparsers) subparser.add_argument('--include-package', type=str, action='append', default=[], help='additional packages to include') args = parser.parse_args() # If a subparser is triggered, it adds its work as `args.func`. # So if no such attribute has been added, no subparser was triggered, # so give the user some help. if 'func' in dir(args): # Import any additional modules needed (to register custom classes). for package_name in args.include_package: import_submodules(package_name) args.func(args) else: parser.print_help()