def multiply(func: Callable, *args, **kwargs):
    '\n    Returns a function that takes an iterable and maps ``func`` over it.\n    Useful when multiple batches require the same function.\n\n    ``args`` and ``kwargs`` are passed to ``func`` as additional arguments.\n    '

    def wrapped(xs: Iterable, *args_, **kwargs_) -> tuple:
        return tuple((func(x, *args_, *args, **kwargs_, **kwargs) for x in xs))
    return wrapped
Returns a function that takes an iterable and maps ``func`` over it.
Useful when multiple batches require the same function.

``args`` and ``kwargs`` are passed to ``func`` as additional arguments.
def multiply(func: Callable, *args, **kwargs):
    '\n    Returns a function that takes an iterable and maps ``func`` over it.\n    Useful when multiple batches require the same function.\n\n    ``args`` and ``kwargs`` are passed to ``func`` as additional arguments.\n    '

    def wrapped(xs: Iterable, *args_, **kwargs_) -> tuple:
        return tuple((func(x, *args_, *args, **kwargs_, **kwargs) for x in xs))
    return wrapped