          return retval
  
      def _add_scale_combo(self) -> ttk.Combobox:
          """ Add a scale combo for selecting zoom amount.
  
          Returns
          -------
          :class:`tkinter.ttk.Combobox`
 
</s> remove     def cycle_interpolators(self, *args):  # pylint:disable=unused-argument
 </s> add     def cycle_interpolators(self, *args) -> None:  # pylint:disable=unused-argument </s> remove     def _pad_and_border(self, image: Image.Image, size: int) -> np.ndarray:
        """ Pad rectangle images to a square and draw borders

        Parameters
        ----------
        image: :class:`PIL.Image`
            The image to process
        size: int
            The size of the image as it should be displayed

        Returns
        -------
        :class:`PIL.Image`:
            The processed image
        """
        if image.size[0] != image.size[1]:
            # Pad to square
            new_img = Image.new("RGB", (size, size))
            new_img.paste(image, ((size - image.size[0]) // 2, (size - image.size[1]) // 2))
            image = new_img
        draw = ImageDraw.Draw(image)
        draw.rectangle(((0, 0), (size, size)), outline="#E5E5E5", width=1)
        retval = np.array(image)
        logger.trace("image shape: %s", retval.shape)  # type: ignore
        return retval

    def _process_samples(self,
                         samples: List[np.ndarray],
                         filenames: List[str],
                         num_images: int) -> bool:
        """ Process the latest sample images into a displayable image.
 </s> add     def _create_placeholder(self, thumbnail_size: int) -> None:
        """ Create a placeholder image for when there are fewer thumbnails available
        than columns to display them. </s> remove         self._set_key_bindings()
 </s> add         self._set_key_bindings(is_standalone) </s> remove         frame = tk.Frame(self)
 </s> add         frame = tk.Frame(self._frame)
    def _track_widget(self, widget: tk.Widget) -> None:
        """ If running embedded in the GUI track the widgets so that they can be destroyed if
        the preview is disabled """
        if self._is_standalone:
            return
        logger.debug("Tracking option bar widget for GUI: %s", widget)
        self._gui_mapped.append(widget)

          return retval
  
    def _track_widget(self, widget: tk.Widget) -> None:
        """ If running embedded in the GUI track the widgets so that they can be destroyed if
        the preview is disabled """
        if self._is_standalone:
            return
        logger.debug("Tracking option bar widget for GUI: %s", widget)
        self._gui_mapped.append(widget)

      def _add_scale_combo(self) -> ttk.Combobox:
          """ Add a scale combo for selecting zoom amount.
  
          Returns
          -------
          :class:`tkinter.ttk.Combobox`
keep add keep keep keep keep keep keep
 GUI - Preview updates
  - Training preview. Embed preview pop-out window
  - Bugfix - convert/extract previews 
lib/training/preview_tk.py