def __call__(self, values):
        """Runs through each value and transform it with a mapped function."""
        values = product(values, self._map)
        for value in map(self._mapped_func, filter(self._cmp_filter, values)):
            if isinstance(value, tuple) and len(value) == 2:
                yield value
            else:
                try:
                    # TODO: Replace with "yield from" when dropping Python 2.
                    for __ in value:
                        yield __
                except TypeError:
                    # Non-iterable returned
                    continue
Runs through each value and transform it with a mapped function.
src/livestreamer/plugin/api/mapper.py