      Parameters
      ----------
      arguments: :class:`argparse.Namespace`
          The :mod:`argparse` arguments as passed in from :mod:`tools.py`
      available_masks: list
          The masks that are available for convert
      samples: :class:`Samples`
          The Samples for display.
      display: :class:`FacesDisplay`
          The display section of the Preview GUI.
      lock: :class:`threading.Lock`
          A threading lock to prevent multiple GUI updates at the same time.
      trigger:  :class:`threading.Event`
          An event to indicate that a converter patch should be run
      config_tools: :class:`ConfigTools`
          Tools for loading and saving configuration files
      tk_vars: dict
          Global tkinter variables. `Refresh` and `Busy` :class:`tkinter.BooleanVar`
  
      Attributes
      ----------
      converter_arguments: dict
          The currently selected converter command line arguments for the patch queue
 
</s> remove     display: :class:`FacesDisplay`
        The display section of the Preview GUI.
    lock: :class:`threading.Lock`
        A threading lock to prevent multiple GUI updates at the same time.
    trigger_patch:  :class:`threading.Event`
        An event to indicate that a converter patch should be run
 </s> add  </s> remove     current_config::class:`lib.config.FaceswapConfig`
        The currently set configuration for the patch queue
 </s> add  </s> remove         tk_vars: dict
            Global tkinter variables. `Refresh` and `Busy` :class:`tkinter.BooleanVar`
 </s> add  </s> remove     def __init__(self,
                 arguments: "Namespace",
                 available_masks: List[str],
                 samples: Samples,
                 display: "FacesDisplay",
                 lock: Lock,
                 trigger: Event,
                 config_tools: "ConfigTools",
                 tk_vars: Dict[Literal["refresh", "busy"], tk.BooleanVar]) -> None:
        logger.debug("Initializing %s: (arguments: '%s', available_masks: %s, samples: %s, "
                     "display: %s, lock: %s, trigger: %s, config_tools: %s, tk_vars %s)",
                     self.__class__.__name__, arguments, available_masks, samples, display, lock,
                     trigger, config_tools, tk_vars)
        self._samples = samples
 </s> add     def __init__(self, app: Preview, arguments: "Namespace") -> None:
        logger.debug("Initializing %s: (app: %s, arguments: '%s')",
                     self.__class__.__name__, app, arguments)
        self._app = app
      Parameters
      ----------
      arguments: :class:`argparse.Namespace`
          The :mod:`argparse` arguments as passed in from :mod:`tools.py`














  
      Attributes
      ----------
      converter_arguments: dict
          The currently selected converter command line arguments for the patch queue
keep keep keep keep replace replace replace replace replace replace replace replace replace replace replace replace replace replace keep keep keep keep keep
 bugfix:
    - preview tool - Prevent tkinter variables from exiting main thread
refactor:
    - preview tool - Split module to smaller sub-modules + docs, locales
Typing:
    - tools.preview.cli
Unit test:
    - tools.preview.viewer 
tools/preview/preview.py