<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def pipe(wrapped):
 """ Decorator to create an SPL operator from a function. A pipe SPL operator with a single input port and a single output port. For each tuple on the input port the function is called passing the contents of the tuple. SPL attributes from the tuple are passed by position. The value returned from the function results in zero or more tuples being submitted to the operator output port, see :ref:`submit-from-python`. .. deprecated:: 1.8 Recommended to use :py:class:`@spl.map <map>` instead. """

    if not inspect.isfunction(wrapped):
        raise TypeError('A function is required')

    return _wrapforsplop(_OperatorType.Pipe, wrapped, 'position', False)