diff options
author | Doug Hellmann <doug@doughellmann.com> | 2020-07-04 14:43:49 -0400 |
---|---|---|
committer | Doug Hellmann <doug@doughellmann.com> | 2020-07-05 15:58:46 -0400 |
commit | 6ac510d0cd25c8c3c76d56dd8e100ca2a6f8b962 (patch) | |
tree | 3dbbc782a04faa145eb153496204a92a269d20de | |
parent | 8099c98249dfc9caa9cdbac4cbe7afba4279c734 (diff) | |
download | cliff-6ac510d0cd25c8c3c76d56dd8e100ca2a6f8b962.tar.gz |
switch to stevedore for loading entry pointsvictoria-em3.4.0
Switch to using stevedore now so that when the cache implementation is
released all cliff applications can take advantage of the performance
benefits.
Change-Id: Ib7bf53091470b55ab87082d315ca283d3600a636
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
-rw-r--r-- | cliff/command.py | 2 | ||||
-rw-r--r-- | cliff/commandmanager.py | 8 | ||||
-rw-r--r-- | cliff/tests/test_commandmanager.py | 34 | ||||
-rw-r--r-- | lower-constraints.txt | 2 | ||||
-rw-r--r-- | requirements.txt | 2 |
5 files changed, 24 insertions, 24 deletions
diff --git a/cliff/command.py b/cliff/command.py index 35f1ef7..663b467 100644 --- a/cliff/command.py +++ b/cliff/command.py @@ -13,7 +13,6 @@ import abc import inspect -import pkg_resources import six from stevedore import extension @@ -31,6 +30,7 @@ def _get_distributions_by_modules(): command to be installed, so we need to look up the values. """ + import pkg_resources global _dists_by_mods if _dists_by_mods is None: results = {} diff --git a/cliff/commandmanager.py b/cliff/commandmanager.py index d9f7439..d49f358 100644 --- a/cliff/commandmanager.py +++ b/cliff/commandmanager.py @@ -15,7 +15,7 @@ import logging -import pkg_resources +import stevedore from . import utils @@ -72,12 +72,12 @@ class CommandManager(object): def load_commands(self, namespace): """Load all the commands from an entrypoint""" self.group_list.append(namespace) - for ep in pkg_resources.iter_entry_points(namespace): + for ep in stevedore.ExtensionManager(namespace): LOG.debug('found command %r', ep.name) cmd_name = (ep.name.replace('_', ' ') if self.convert_underscores else ep.name) - self.commands[cmd_name] = ep + self.commands[cmd_name] = ep.entry_point return def __iter__(self): @@ -159,7 +159,7 @@ class CommandManager(object): """Returns a list of commands loaded for the specified group""" group_list = [] if group is not None: - for ep in pkg_resources.iter_entry_points(group): + for ep in stevedore.ExtensionManager(group): cmd_name = ( ep.name.replace('_', ' ') if self.convert_underscores diff --git a/cliff/tests/test_commandmanager.py b/cliff/tests/test_commandmanager.py index a704658..3426cfb 100644 --- a/cliff/tests/test_commandmanager.py +++ b/cliff/tests/test_commandmanager.py @@ -116,39 +116,39 @@ class TestLoad(base.TestBase): def test_load_commands(self): testcmd = mock.Mock(name='testcmd') testcmd.name.replace.return_value = 'test' - mock_pkg_resources = mock.Mock(return_value=[testcmd]) - with mock.patch('pkg_resources.iter_entry_points', - mock_pkg_resources) as iter_entry_points: + mock_get_group_all = mock.Mock(return_value=[testcmd]) + with mock.patch('stevedore.ExtensionManager', + mock_get_group_all) as mock_manager: mgr = commandmanager.CommandManager('test') - iter_entry_points.assert_called_once_with('test') + mock_manager.assert_called_once_with('test') names = [n for n, v in mgr] self.assertEqual(['test'], names) def test_load_commands_keep_underscores(self): testcmd = mock.Mock() testcmd.name = 'test_cmd' - mock_pkg_resources = mock.Mock(return_value=[testcmd]) - with mock.patch('pkg_resources.iter_entry_points', - mock_pkg_resources) as iter_entry_points: + mock_get_group_all = mock.Mock(return_value=[testcmd]) + with mock.patch('stevedore.ExtensionManager', + mock_get_group_all) as mock_manager: mgr = commandmanager.CommandManager( 'test', convert_underscores=False, ) - iter_entry_points.assert_called_once_with('test') + mock_manager.assert_called_once_with('test') names = [n for n, v in mgr] self.assertEqual(['test_cmd'], names) def test_load_commands_replace_underscores(self): testcmd = mock.Mock() testcmd.name = 'test_cmd' - mock_pkg_resources = mock.Mock(return_value=[testcmd]) - with mock.patch('pkg_resources.iter_entry_points', - mock_pkg_resources) as iter_entry_points: + mock_get_group_all = mock.Mock(return_value=[testcmd]) + with mock.patch('stevedore.ExtensionManager', + mock_get_group_all) as mock_manager: mgr = commandmanager.CommandManager( 'test', convert_underscores=True, ) - iter_entry_points.assert_called_once_with('test') + mock_manager.assert_called_once_with('test') names = [n for n, v in mgr] self.assertEqual(['test cmd'], names) @@ -331,14 +331,14 @@ class TestCommandManagerGroups(base.TestBase): mock_cmd_one.name = 'one' mock_cmd_two = mock.Mock() mock_cmd_two.name = 'cmd two' - mock_pkg_resources = mock.Mock( + mock_get_group_all = mock.Mock( return_value=[mock_cmd_one, mock_cmd_two], ) with mock.patch( - 'pkg_resources.iter_entry_points', - mock_pkg_resources, - ) as iter_entry_points: + 'stevedore.ExtensionManager', + mock_get_group_all, + ) as mock_manager: mgr = commandmanager.CommandManager('test') - iter_entry_points.assert_called_once_with('test') + mock_manager.assert_called_once_with('test') cmds = mgr.get_command_names('test') self.assertEqual(['one', 'cmd two'], cmds) diff --git a/lower-constraints.txt b/lower-constraints.txt index 18dba4f..074fa42 100644 --- a/lower-constraints.txt +++ b/lower-constraints.txt @@ -28,7 +28,7 @@ snowballstemmer==1.2.1 Sphinx==2.0.0 sphinxcontrib-websupport==1.0.1 stestr==1.0.0 -stevedore==1.20.0 +stevedore==2.0.1 testscenarios==0.4 testtools==2.2.0 traceback2==1.4.0 diff --git a/requirements.txt b/requirements.txt index a603e32..1f87db9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,5 +6,5 @@ cmd2>=0.8.0,!=0.8.3 # MIT PrettyTable<0.8,>=0.7.2 # BSD pyparsing>=2.1.0 # MIT six>=1.10.0 # MIT -stevedore>=1.20.0 # Apache-2.0 +stevedore>=2.0.1 # Apache-2.0 PyYAML>=3.12 # MIT |