          self._widget = widget
          self._config = get_config()
          self._config.set_cursor_busy(widget=self._widget)
          self._complete = Event()
          self._queue = Queue()
          logger.debug("Initialized %s", self.__class__.__name__,)
  
      @property
      def complete(self):
          """ :class:`threading.Event`:  Event is set if the thread has completed its task,
 
</s> remove     def complete(self):
 </s> add     def complete(self) -> Event: </s> remove         self.err = None
 </s> add         self.err: "_ErrorType" = None </s> remove         super().__init__(group=group, target=target, name=name, args=args, kwargs=kwargs,
 </s> add         super().__init__(target=target, name=name, args=args, kwargs=kwargs, </s> remove         widget = self.root if widget is None else widget
        widget.config(cursor="watch")
        widget.update_idletasks()
 </s> add         component = self.root if widget is None else widget
        component.config(cursor="watch")  # type: ignore
        component.update_idletasks() </s> remove         widget = self.root if widget is None else widget
        widget.config(cursor="")
        widget.update_idletasks()
 </s> add         component = self.root if widget is None else widget
        component.config(cursor="")  # type: ignore
        component.update_idletasks()
        self._queue: Queue = Queue()
          self._widget = widget
          self._config = get_config()
          self._config.set_cursor_busy(widget=self._widget)
          self._complete = Event()
        self._queue: Queue = Queue()
          logger.debug("Initialized %s", self.__class__.__name__,)
  
      @property
      def complete(self):
          """ :class:`threading.Event`:  Event is set if the thread has completed its task,
keep keep keep keep replace keep keep keep keep keep
 Bugfix: Preview for extract in batch mode 
lib/gui/utils.py