          self._pbar_position.set(0)
          self._set_mode("determinate")
          self._pbar.pack_forget()
  
      def _set_mode(self, mode):
          """ Set the progress bar mode """
          self._pbar.config(mode=mode)
          if mode == "indeterminate":
              self._pbar.config(maximum=100)
              self._pbar.start()
          else:
              self._pbar.stop()
 
</s> remove         self._set_mode("determinate")
 </s> add         self._mode = "determinate"
        self._set_mode(self._mode) </s> remove     def progress_update(self, message, position, update_position=True):
 </s> add     def set_mode(self, mode: T.Literal["indeterminate", "determinate"]) -> None:
        """ Set the mode of a currently displayed progress bar and reset position to 0.

        If the given mode is the same as the currently configured mode, returns without performing
        any action.

        Parameters
        ----------
        mode: ["indeterminate", "determinate"]
            The mode that the progress bar should be set to
        """
        if mode == self._mode:
            return
        self.stop()
        self.start(mode)

    def progress_update(self, message: str, position: int, update_position: bool = True) -> None: </s> remove     def stop(self):
 </s> add     def stop(self) -> None: </s> remove     def start(self, mode):
 </s> add     def start(self, mode: T.Literal["indeterminate", "determinate"]) -> None: </s> remove     def _progress_bar(self):
        """ Place progress bar into right of the status bar. """
 </s> add     def _progress_bar(self) -> ttk.Progressbar:
        """ Place progress bar into right of the status bar.

        Returns
        -------
        :class:`tkinter.ttk.Progressbar`
            The progress bar object
        """
    def _set_mode(self, mode: T.Literal["indeterminate", "determinate"]) -> None:
        """ Set the progress bar mode

        Parameters
        ----------
        mode: ["indeterminate", "determinate"]
            The mode that the progress bar should be executed in
        """
        self._mode = mode
        self._pbar.config(mode=self._mode)
          self._pbar_position.set(0)
          self._set_mode("determinate")
          self._pbar.pack_forget()
  
    def _set_mode(self, mode: T.Literal["indeterminate", "determinate"]) -> None:
        """ Set the progress bar mode

        Parameters
        ----------
        mode: ["indeterminate", "determinate"]
            The mode that the progress bar should be executed in
        """
        self._mode = mode
        self._pbar.config(mode=self._mode)
    def _set_mode(self, mode: T.Literal["indeterminate", "determinate"]) -> None:
        """ Set the progress bar mode

        Parameters
        ----------
        mode: ["indeterminate", "determinate"]
            The mode that the progress bar should be executed in
        """
        self._mode = mode
        self._pbar.config(mode=self._mode)
    def _set_mode(self, mode: T.Literal["indeterminate", "determinate"]) -> None:
        """ Set the progress bar mode

        Parameters
        ----------
        mode: ["indeterminate", "determinate"]
            The mode that the progress bar should be executed in
        """
        self._mode = mode
        self._pbar.config(mode=self._mode)
          if mode == "indeterminate":
              self._pbar.config(maximum=100)
              self._pbar.start()
          else:
              self._pbar.stop()
keep keep keep keep replace replace replace keep keep keep keep keep
 Learning Rate finder (#1341)

* Add LR Finder support structure

* Move trainer.Feeder to lib.training.generator

* Expose model.io

* Add lr_finder

* Update docs and locales

* Pre-PR fixups
  - Fix training graph not displaying
  - CI fixes
  - Switch lr finder progress to tqdm
  - Exit lr finder early on NaN
  - Display lr finder progress in GUI 
lib/gui/custom_widgets.py