def __call__(self, inbox):
outbox = inbox <EOL>exceptions = [e for e in inbox if isinstance(e, PiperError)]<EOL>if not exceptions:<EOL><INDENT>try:<EOL><INDENT>for func, args, kwargs inzip(self.task, self.args, self.kwargs):<EOL><INDENT>outbox = (func(outbox, *args, **kwargs),)<EOL><DEDENT>outbox = outbox[<NUM_LIT:0>]<EOL><DEDENT>except Exception as excp:<EOL><INDENT>outbox = WorkerError(excp, func.__name__, inbox)<EOL><DEDENT><DEDENT>else:<EOL><INDENT>outbox = PiperError(*exceptions)<EOL><DEDENT>return outbox<EOL>
Evaluates the function(s) and argument(s) with which the ``Worker`` 
instance has been initialized given the input data i.e. "inbox".

If an ``Exception`` is raised by the function the ``Worker`` returns a 
``WorkerError`` instance. Typically a raised ``WorkerError`` should be 
wrapped into a ``PiperError`` by the ``Piper`` instance which wraps this
``Worker`` instance. If any of the data in the "inbox" is a 
``PiperError`` instance then no function is called and the ``Worker`` 
instance propagates the ``Exception`` (i.e. ``PiperError`` instance) to
its ``Piper`` instance. The originial ``Exception`` travels along as the
first argument of the innermost ``Exception``.

Arguments:

  - inbox(sequence) A sequence of items to be evaluated by the 
    function ``f(sequence)`` is ``f((data1, data2, ..., data2))``.