def _pipeline_step(self, sources, options, personal_dict, filter_index=1, flow_status=flow_control.ALLOW):
        """Recursively run text objects through the pipeline steps."""

        for source in sources:
            if source._has_error():
                yield source
            elif not source._is_bytes() and filter_index < len(self.pipeline_steps):
                f = self.pipeline_steps[filter_index]
                if isinstance(f, flow_control.FlowControl):
                    err = ''
                    try:
                        status = f._run(source.category)
                    except Exception as e:
                        err = self.get_error(e)
                        yield filters.SourceText('', source.context, '', '', err)
                    if not err:
                        if filter_index < len(self.pipeline_steps):
                            yield from self._pipeline_step(
                                [source], options, personal_dict, filter_index + 1, status
                            )
                else:
                    if flow_status == flow_control.ALLOW:
                        err = ''
                        try:
                            srcs = f._run(source)
                        except Exception as e:
                            err = self.get_error(e)
                            yield filters.SourceText('', source.context, '', '', err)
                        if not err:
                            yield from self._pipeline_step(
                                srcs, options, personal_dict, filter_index + 1
                            )
                    elif flow_status == flow_control.SKIP:
                        yield from self._pipeline_step(
                            [source], options, personal_dict, filter_index + 1
                        )
                    else:
                        # Halted tasks
                        yield source
            else:
                # Binary content
                yield source
def _pipeline_step ( self , sources , options , personal_dict , filter_index = 1 , flow_status = flow_control . ALLOW ) : for source in sources : if source . _has_error ( ) : yield source elif not source . _is_bytes ( ) and filter_index < len ( self . pipeline_steps ) : f = self . pipeline_steps [ filter_index ] if isinstance ( f , flow_control . FlowControl ) : err = '' try : status = f . _run ( source . category ) except Exception as e : err = self . get_error ( e ) yield filters . SourceText ( '' , source . context , '' , '' , err ) if not err : if filter_index < len ( self . pipeline_steps ) : yield from self . _pipeline_step ( [ source ] , options , personal_dict , filter_index + 1 , status ) else : if flow_status == flow_control . ALLOW : err = '' try : srcs = f . _run ( source ) except Exception as e : err = self . get_error ( e ) yield filters . SourceText ( '' , source . context , '' , '' , err ) if not err : yield from self . _pipeline_step ( srcs , options , personal_dict , filter_index + 1 ) elif flow_status == flow_control . SKIP : yield from self . _pipeline_step ( [ source ] , options , personal_dict , filter_index + 1 ) else : yield source else : yield source
Recursively run text objects through the pipeline steps.