    def concat(self, *pipes: 'Pipeline') -> 'Pipeline':
        """
        Concat a pipeline to another pipeline/s.

        Args:
            pipes : one or more pipelines to concat.

        Returns:
            Pipeline: Pipeline to be concated.

        Examples:
            >>> from towhee import pipe
            >>> p0 = pipe.input('a', 'b', 'c')
            >>> p1 = p0.map('a', 'd', lambda x: x+1)
            >>> p2 = p0.map(('b', 'c'), 'e', lambda x, y: x - y)
            >>> p3 = p2.concat(p1).output('d', 'e')
            >>> p3(1, 2, 3).get()
            [2, -1]
        """
        self._check_concat_pipe(pipes)
        uid = uuid.uuid4().hex
        dag_dict = self._concat_dag(deepcopy(self._dag), pipes)
        fn_action = self._to_action(ConcatConst.name)
        dag_dict[uid] = {
            'inputs': (),
            'outputs': (),
            'op_info': fn_action.serialize(),
            'iter_info': {
                'type': ConcatConst.name,
                'param': None,
            },
            'config': None,
            'next_nodes': [],
        }
        dag_dict[self._clo_node]['next_nodes'].append(uid)
        for pipe in pipes:
            dag_dict[pipe._clo_node]['next_nodes'].append(uid)

        return Pipeline(dag_dict, uid)
Concat a pipeline to another pipeline/s.

Args:
pipes : one or more pipelines to concat.

Returns:
Pipeline: Pipeline to be concated.

Examples:
>>> from towhee import pipe
>>> p0 = pipe.input('a', 'b', 'c')
>>> p1 = p0.map('a', 'd', lambda x: x+1)
>>> p2 = p0.map(('b', 'c'), 'e', lambda x, y: x - y)
>>> p3 = p2.concat(p1).output('d', 'e')
>>> p3(1, 2, 3).get()
[2, -1]
towhee/runtime/pipeline.py