aggregates: Adds first version of Reduce() based on @levic work.

This commit is contained in:
Romain Dorgueil
2018-07-16 11:56:46 +02:00
parent d9f2fd3009
commit 7b365e014d

View File

@ -0,0 +1,16 @@
from bonobo.config import Configurable, Method, Option, ContextProcessor, use_raw_input
from bonobo.util import ValueHolder
class Reduce(Configurable):
function = Method()
initializer = Option(required=False)
@ContextProcessor
def buffer(self, context):
values = yield ValueHolder(self.initializer() if callable(self.initializer) else self.initializer)
context.send(values.get())
@use_raw_input
def __call__(self, values, bag):
values.set(self.function(values.get(), bag))