          """:class:`tkinter.StringVar`: The variable to hold the status bar message on the left
          hand side of the status bar. """
          return self._message
  
      def _status(self, hide_status):
          """ Place Status label into left of the status bar.
  
          Parameters
          ----------
          hide_status: bool, optional
 
</s> remove     def message(self):
 </s> add     def message(self) -> tk.StringVar: </s> remove     def __init__(self, parent, hide_status=False):
 </s> add     def __init__(self, parent: ttk.Frame, hide_status: bool = False) -> 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
        """ </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 save(self, is_exit: bool = False) -> None:
        """ Save the model to disk.

        Saves the serialized model, with weights, to the folder location specified when
        initializing the plugin. If loss has dropped on both sides of the model, then
        a backup is taken.

        Parameters
        ----------
        is_exit: bool, optional
            ``True`` if the save request has come from an exit process request otherwise ``False``
            Default: ``False``
        """
        self._io.save(is_exit=is_exit)

    def snapshot(self) -> None:
        """ Creates a snapshot of the model folder to the models parent folder, with the number
        of iterations completed appended to the end of the model name. """
        self._io.snapshot()

 </s> add 
    def _status(self, hide_status: bool) -> None:
          """:class:`tkinter.StringVar`: The variable to hold the status bar message on the left
          hand side of the status bar. """
          return self._message
  
    def _status(self, hide_status: bool) -> None:
          """ Place Status label into left of the status bar.
  
          Parameters
          ----------
          hide_status: bool, optional
keep keep keep keep 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