def __or__(self, next):
if not isinstance(next, Pipe):<EOL><INDENT>item_creator = get_item_creator(type(next))<EOL>if item_creator is None:<EOL><INDENT>raise UnregisteredPipeType(type(next))<EOL><DEDENT>next = item_creator(next)<EOL><DEDENT>clone = self.clone()<EOL>if not next.chained:<EOL><INDENT>clone.append(next)<EOL><DEDENT>else:<EOL><INDENT>clone.append(next(*next.args, **next.kw))<EOL><DEDENT>return clone<EOL>
Set operand of right-hand side to be next Pipe object. Type convertion
        will be applied automatically if next is not a Pipe object and its type
        is registered in Pipe.pipe_item_types. Otherwise, UnregisteredPipeType
        will be raised.

        :param next: The next Pipe object to be cascaded.
        :type next: Pipe object or any object whose type is registered.

        :returns: The clone of self.