2014-05-19 19:51:26 +00:00
|
|
|
def partial(func, *args, **kwargs):
|
|
|
|
def _partial(*more_args, **more_kwargs):
|
|
|
|
kw = kwargs.copy()
|
|
|
|
kw.update(more_kwargs)
|
2016-11-15 17:37:27 +00:00
|
|
|
return func(*(args + more_args), **kw)
|
2014-05-19 19:51:26 +00:00
|
|
|
return _partial
|
2014-06-07 21:26:17 +00:00
|
|
|
|
|
|
|
|
2017-11-05 09:58:01 +00:00
|
|
|
def update_wrapper(wrapper, wrapped, assigned=None, updated=None):
|
2014-06-07 21:26:17 +00:00
|
|
|
# Dummy impl
|
|
|
|
return wrapper
|
|
|
|
|
|
|
|
|
2017-11-05 09:58:01 +00:00
|
|
|
def wraps(wrapped, assigned=None, updated=None):
|
2014-06-07 21:26:17 +00:00
|
|
|
# Dummy impl
|
2015-05-05 09:55:42 +00:00
|
|
|
return lambda x: x
|
2015-12-05 19:25:25 +00:00
|
|
|
|
2017-11-05 09:58:01 +00:00
|
|
|
|
2015-12-05 19:25:25 +00:00
|
|
|
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
|