summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug Hellmann <doug@doughellmann.com>2020-07-04 14:43:49 -0400
committerDoug Hellmann <doug@doughellmann.com>2020-07-05 15:58:46 -0400
commit6ac510d0cd25c8c3c76d56dd8e100ca2a6f8b962 (patch)
tree3dbbc782a04faa145eb153496204a92a269d20de
parent8099c98249dfc9caa9cdbac4cbe7afba4279c734 (diff)
downloadcliff-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.py2
-rw-r--r--cliff/commandmanager.py8
-rw-r--r--cliff/tests/test_commandmanager.py34
-rw-r--r--lower-constraints.txt2
-rw-r--r--requirements.txt2
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