Esempio n. 1
0
    def test_file_plugin_loaded(self):
        plugins_root = self.FIXTURES_ROOT / "plugins"

        sys.argv = ["allennlp"]

        available_plugins = set(discover_plugins())
        self.assertSetEqual(set(), available_plugins)

        with pushd(plugins_root):
            main()
            subcommands_available = Subcommand.list_available()
            self.assertIn("d", subcommands_available)
Esempio n. 2
0
    def test_file_plugin_loaded(self):
        plugins_root = self.FIXTURES_ROOT / "plugins"

        sys.argv = ["allennlp"]

        available_plugins = set(discover_plugins())
        assert available_plugins == set()

        with pushd(plugins_root):
            main()
            subcommands_available = Subcommand.list_available()
            assert "d" in subcommands_available
Esempio n. 3
0
    def test_namespace_plugin_loaded(self):
        plugins_root = self.FIXTURES_ROOT / "plugins"
        # "a" sets a "global" namespace plugin, because it's gonna be installed with pip.
        project_a_fixtures_root = plugins_root / "project_a"

        sys.argv = ["allennlp"]

        available_plugins = set(discover_plugins())
        self.assertSetEqual(set(), available_plugins)

        with pip_install(project_a_fixtures_root, "a"):
            main()

        subcommands_available = Subcommand.list_available()
        self.assertIn("a", subcommands_available)
Esempio n. 4
0
    def test_file_plugin_loaded(self):
        plugins_root = self.FIXTURES_ROOT / "plugins"
        # "d" sets a "local" file plugin, because it's supposed to be run from that directory
        # and has a ".allennlp_plugins" file in it.
        project_d_fixtures_root = plugins_root / "project_d"

        sys.argv = ["allennlp"]

        available_plugins = set(discover_plugins())
        self.assertSetEqual(set(), available_plugins)

        with pushd(project_d_fixtures_root):
            main()
            subcommands_available = Subcommand.list_available()
            self.assertIn("d", subcommands_available)
Esempio n. 5
0
 def add_subcommands():
     for subcommand_name in sorted(Subcommand.list_available()):
         if subcommand_name in subcommands:
             continue
         subcommands.add(subcommand_name)
         subcommand_class = Subcommand.by_name(subcommand_name)
         subcommand = subcommand_class()
         subparser = subcommand.add_subparser(subparsers)
         if subcommand_class.requires_plugins:
             subparser.add_argument(
                 "--include-package",
                 type=str,
                 action="append",
                 default=[],
                 help="additional packages to include",
             )
Esempio n. 6
0
def create_parser(prog: Optional[str] = None) -> argparse.ArgumentParser:
    """
    Creates the argument parser for the main program.
    """
    parser = ArgumentParserWithDefaults(description="Run AllenNLP", prog=prog)
    parser.add_argument("--version",
                        action="version",
                        version=f"%(prog)s {__version__}")

    subparsers = parser.add_subparsers(title="Commands", metavar="")

    for subcommand_name in sorted(Subcommand.list_available()):
        subcommand_class = Subcommand.by_name(subcommand_name)
        subcommand = subcommand_class()
        subparser = subcommand.add_subparser(subparsers)
        subparser.add_argument(
            "--include-package",
            type=str,
            action="append",
            default=[],
            help="additional packages to include",
        )

    return parser