def partial(func, *args, **kwargs): def _partial(*more_args, **more_kwargs): kw = kwargs.copy() kw.update(more_kwargs) return func(*(args + more_args), **kw) return _partial def update_wrapper(wrapper, wrapped, assigned=None, updated=None): # Dummy impl return wrapper def wraps(wrapped, assigned=None, updated=None): # Dummy impl return lambda x: x def reduce(function, iterable, initializer=None): it = iter(iterable) if initializer is None: value = next(it) else: value = initializer for element in it: value = function(value, element) return value