diff --git a/src/aiida/cmdline/commands/cmd_verdi.py b/src/aiida/cmdline/commands/cmd_verdi.py index c67b4b017a..8fb264ffe3 100644 --- a/src/aiida/cmdline/commands/cmd_verdi.py +++ b/src/aiida/cmdline/commands/cmd_verdi.py @@ -12,12 +12,14 @@ from aiida import __version__ -from ..groups import VerdiCommandGroup from ..params import options, types +from ..utils.pluginable import Pluginable # Pass the version explicitly to ``version_option`` otherwise editable installs can show the wrong version number -@click.group(cls=VerdiCommandGroup, context_settings={'help_option_names': ['--help', '-h']}) +@click.group( + cls=Pluginable, entry_point_group='aiida.cmdline.verdi', context_settings={'help_option_names': ['--help', '-h']} +) @options.PROFILE(type=types.ProfileParamType(load_profile=True), expose_value=False) @options.VERBOSITY() @click.version_option(__version__, package_name='aiida_core', message='AiiDA version %(version)s') diff --git a/src/aiida/cmdline/utils/pluginable.py b/src/aiida/cmdline/utils/pluginable.py index ce7925ce05..c909cc3e3c 100644 --- a/src/aiida/cmdline/utils/pluginable.py +++ b/src/aiida/cmdline/utils/pluginable.py @@ -29,7 +29,7 @@ def list_commands(self, ctx): if not self._exclude_external_plugins: subcommands.extend(get_entry_point_names(self._entry_point_group)) - return subcommands + return sorted(subcommands) def get_command(self, ctx, name): """Try to load a subcommand from entry points, else defer to super.""" diff --git a/src/aiida/plugins/entry_point.py b/src/aiida/plugins/entry_point.py index 7ec26a4c34..055bb1fa36 100644 --- a/src/aiida/plugins/entry_point.py +++ b/src/aiida/plugins/entry_point.py @@ -87,6 +87,7 @@ class EntryPointFormat(enum.Enum): 'aiida.cmdline.computer.configure': 'aiida.cmdline.computer.configure', 'aiida.cmdline.data': 'aiida.cmdline.data', 'aiida.cmdline.data.structure.import': 'aiida.cmdline.data.structure.import', + 'aiida.cmdline.verdi': 'aiida.cmdline.verdi', 'aiida.data': 'aiida.orm.nodes.data', 'aiida.groups': 'aiida.orm.groups', 'aiida.orm': 'aiida.orm', diff --git a/tests/conftest.py b/tests/conftest.py index b93feaf99f..68519b4079 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -765,8 +765,7 @@ def run_cli_command_runner(command, parameters, user_input, initialize_ctx_obj, """Run CLI command through ``click.testing.CliRunner``.""" from click.testing import CliRunner - from aiida.cmdline.commands.cmd_verdi import VerdiCommandGroup - from aiida.cmdline.groups.verdi import LazyVerdiObjAttributeDict + from aiida.cmdline.groups.verdi import LazyVerdiObjAttributeDict, VerdiCommandGroup if initialize_ctx_obj: config = get_config()