              if func_name == "_process_input":
                  # Process input items to batches
                  exhausted, batch = self.get_batch(in_queue)
                  if exhausted:
                      if batch:
                          # Put the final batch
                          batch = function(batch)
                          out_queue.put(batch)
                      break
              else:
 
</s> remove         if batch:
            logger.trace("Returning batch: %s", {k: v.shape  # type:ignore
                                                 if isinstance(v, np.ndarray) else v
 </s> add         if batch.filename:
            logger.trace("Returning batch: %s", {k: len(v)  # type:ignore
                                                 if isinstance(v, list) else v </s> remove             logger.trace(item)  # type:ignore
 </s> add             logger.debug(item)  # type:ignore

        # TODO Move to end of process not beginning
        self._filter.output_counts()
 </s> remove                 self._filter.output_counts()
 </s> add 
                    # TODO Move all batch items to common dataclass. Currently migrated:
                    # Align
                    if (isinstance(batch, dict) and batch or
                            not isinstance(batch, dict) and batch.filename):
              if func_name == "_process_input":
                  # Process input items to batches
                  exhausted, batch = self.get_batch(in_queue)
                  if exhausted:
                    # TODO Move all batch items to common dataclass. Currently migrated:
                    # Align
                    if (isinstance(batch, dict) and batch or
                            not isinstance(batch, dict) and batch.filename):
                          # Put the final batch
                          batch = function(batch)
                          out_queue.put(batch)
                      break
              else:
keep keep keep keep replace keep keep keep keep keep
 bugfix: Extract - don't put empty batches through aligner 
plugins/extract/_base.py