          also be populated by calling :func:`ExtractMedia.set_detected_faces`.
          """
          qname = f"extract{self._instance}_{self._current_phase[0]}_in"
          retval = self._queues[qname]
          logger.trace("%s: %s", qname, retval)
          return retval
  
      @property
      def passes(self):
          """ int: Returns the total number of passes the extractor needs to make.
 
</s> remove     def passes(self):
 </s> add     def passes(self) -> int: </s> remove         logger.trace("%s: %s", qname, retval)
 </s> add         logger.trace("%s: %s", qname, retval)  # type: ignore </s> remove     def _all_plugins(self):
 </s> add     def _all_plugins(self) -> List["PluginExtractor"]: </s> remove     def _current_phase(self):
 </s> add     def _current_phase(self) -> List[str]: </s> remove     def _output_queue(self):
 </s> add     def _output_queue(self) -> EventQueue:
        logger.trace("%s: %s", qname, retval)  # type: ignore
          also be populated by calling :func:`ExtractMedia.set_detected_faces`.
          """
          qname = f"extract{self._instance}_{self._current_phase[0]}_in"
          retval = self._queues[qname]
        logger.trace("%s: %s", qname, retval)  # type: ignore
          return retval
  
      @property
      def passes(self):
          """ int: Returns the total number of passes the extractor needs to make.
keep keep keep keep replace keep keep keep keep keep
 extract: Add batch processing mode 
plugins/extract/pipeline.py