          """ The entry point for triggering the Extraction Process.
  
          Should only be called from  :class:`lib.cli.launcher.ScriptExecutor`
          """
          logger.info('Starting, this may take a while...')
          # from lib.queue_manager import queue_manager ; queue_manager.debug_monitor(3)
          self._threaded_redirector("load")
          self._run_extraction()
          for thread in self._threads:
              thread.join()
 
</s> remove from tensorflow.python.framework import errors_impl as tf_errors
 </s> add from tensorflow.python.framework import errors_impl as tf_errors  # pylint:disable=no-name-in-module  # noqa </s> remove from lib.queue_manager import queue_manager, QueueEmpty
 </s> add from lib.queue_manager import EventQueue, queue_manager, QueueEmpty </s> remove from typing import cast, List, Optional, Tuple, TYPE_CHECKING
 </s> add from typing import cast, Dict, Generator, List, Optional, Tuple, TYPE_CHECKING, Union </s> remove     def input_queue(self):
 </s> add     def input_queue(self) -> EventQueue:
          """ The entry point for triggering the Extraction Process.
  
          Should only be called from  :class:`lib.cli.launcher.ScriptExecutor`
          """

          # from lib.queue_manager import queue_manager ; queue_manager.debug_monitor(3)
          self._threaded_redirector("load")
          self._run_extraction()
          for thread in self._threads:
              thread.join()
keep keep keep keep replace keep keep keep keep keep
 extract: Add batch processing mode 
scripts/extract.py