'Push samples into pipeline for publishing.
:param start: The first transformer that the sample will be injected.
This is mainly for flush() invocation that transformer
may emit samples.
:param samples: Sample list.'

def _publish_samples(self, start, samples):

    transformed_samples = []
    if (not self.transformers):
        transformed_samples = samples
    else:
        for sample in samples:
            LOG.debug('Pipeline    %(pipeline)s:    Transform    sample    %(smp)s    from    %(trans)s    transformer', {'pipeline': self, 'smp': sample, 'trans': start})
            sample = self._transform_sample(start, sample)
            if sample:
                transformed_samples.append(sample)
    if transformed_samples:
        for p in self.publishers:
            try:
                p.publish_samples(transformed_samples)
            except Exception:
                LOG.error(('Pipeline    %(pipeline)s:    Continue    after    error    from    publisher    %(pub)s' % {'pipeline': self, 'pub': p}), exc_info=True)
