              queue.put("EOF")
          logger.debug("QueueManager terminated all queues")
  
      def debug_monitor(self, update_secs=2):
          """ Debug tool for monitoring queues """
          thread = threading.Thread(target=self.debug_queue_sizes,
                                    args=(update_secs, ))
          thread.daemon = True
 
</s> remove             while not queue.empty():
                queue.get(True, 1)
 </s> add  </s> remove         x_offset = int(34 * get_config().scaling_factor)
 </s> add         scaling_factor = get_config().scaling_factor if get_config() is not None else 1.0
        x_offset = int(34 * scaling_factor) </s> remove     def __init__(self):
        logger.debug("Initializing %s", self.__class__.__name__)
        self.config = get_config(".".join(self.__module__.split(".")[-2:]))
 </s> add     def __init__(self, config=None):
        logger.debug("Initializing %s: (config: %s)", self.__class__.__name__, config)
        self.config = self.set_config(config)
    def flush_queues(self):
        """ Empty out all queues """
        for q_name in self.queues.keys():
            self.flush_queue(q_name)
        logger.debug("QueueManager flushed all queues")

    def flush_queue(self, q_name):
        """ Empty out a specific queue """
        logger.debug("QueueManager flushing: '%s'", q_name)
        queue = self.queues[q_name]
        while not queue.empty():
            queue.get(True, 1)

              queue.put("EOF")
          logger.debug("QueueManager terminated all queues")
  
    def flush_queues(self):
        """ Empty out all queues """
        for q_name in self.queues.keys():
            self.flush_queue(q_name)
        logger.debug("QueueManager flushed all queues")

    def flush_queue(self, q_name):
        """ Empty out a specific queue """
        logger.debug("QueueManager flushing: '%s'", q_name)
        queue = self.queues[q_name]
        while not queue.empty():
            queue.get(True, 1)

      def debug_monitor(self, update_secs=2):
          """ Debug tool for monitoring queues """
          thread = threading.Thread(target=self.debug_queue_sizes,
                                    args=(update_secs, ))
          thread.daemon = True
keep keep add keep keep keep keep keep
 Convert settings tool (#737)

* Initial prediction pipeline and display

* Patch faces from convert pipeline. Load configs

* Add tkinter canvas for image display

* Radio buttons to config gui. Standardise config gui. Remove dssim loss from realface

* Add action frame

* Live update cli options

* Live update config changes

* Quicker frame loading. Refresh faces button callback

* remove debug code

* Add saving and reloading config buttons

* Reduce lag with threading

* Busy indicator + geometry updates

* Fix options canvas resizing

* Add global config saving and resetting

* tools to own tab

* Rename tool to 'preview'

* geometry tweak

* pep8 fixes 
lib/queue_manager.py