code: def run(self, data, rewrap=False, prefetch=0):
          
          if rewrap:
              data = [data]
  
          for _filter in self._filters:
              _filter.feed(data)
              data = _filter
          else:
              iterable = self._prefetch_callable(data, prefetch) if prefetch else data
              for out_data in iterable:
                  yield out_data
docs: Wires the pipeline and returns a lazy object of
          the transformed data.
  
          :param data: must be an iterable, where a full document
          must be returned for each loop
  
          :param rewrap: (optional) is a bool that indicates the need to rewrap
          data in cases where iterating over it produces undesired results,
          for instance ``dict`` instances.
  
          :param prefetch: (optional) is an int defining the number of items to
          be prefetched once the pipeline starts yielding data. The
          default prefetching mechanism is based on threads, so be
          careful with CPU-bound processing pipelines.