<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def extend(self, protocol: Union[Iterable[Dict], 'Pipeline']) -> 'Pipeline': """Add another pipeline to the end of the current pipeline. :param protocol: An iterable of dictionaries (or another Pipeline) :return: This pipeline for fluid query building Example: """

        for data in protocol:
            name, args, kwargs = _get_protocol_tuple(data)
            self.append(name, *args, **kwargs)

        return self