'Iterate over the extensions invoking func() for any where
filter_func() returns True.
The signature of filter_func() should be::
def filter_func(ext, *args, **kwds):
pass
The first argument to filter_func(), \'ext\', is the
:class:`~stevedore.extension.Extension`
instance. filter_func() should return True if the extension
should be invoked for the input arguments.
The signature for func() should be::
def func(ext, *args, **kwds):
pass
The first argument to func(), \'ext\', is the
:class:`~stevedore.extension.Extension` instance.
Exceptions raised from within func() are propagated up and
processing stopped if self.propagate_map_exceptions is True,
otherwise they are logged and ignored.
:param filter_func: Callable to test each extension.
:param func: Callable to invoke for each extension.
:param args: Variable arguments to pass to func()
:param kwds: Keyword arguments to pass to func()
:returns: List of values returned from func()'

def map(self, filter_func, func, *args, **kwds):

    if (not self.extensions):
        raise NoMatches(('No    %s    extensions    found' % self.namespace))
    response = []
    for e in self.extensions:
        if filter_func(e, *args, **kwds):
            self._invoke_one_plugin(response.append, func, e, args, kwds)
    return response
