  
     alignments
     manual
     sort
  
  mask module
  ===========
 
</s> remove 
preview module
===============

.. rubric:: Module Summary

.. autosummary::
   :nosignatures:
   
   ~tools.preview.preview.ActionFrame
   ~tools.preview.preview.ConfigFrame
   ~tools.preview.preview.ConfigTools
   ~tools.preview.preview.FacesDisplay
   ~tools.preview.preview.ImagesCanvas
   ~tools.preview.preview.OptionsBook
   ~tools.preview.preview.Patch
   ~tools.preview.preview.Preview
   ~tools.preview.preview.Samples

.. rubric:: Module

.. automodule:: tools.preview.preview
   :members:
   :undoc-members:
   :show-inheritance:
 </s> add  </s> remove #: ./tools/preview\cli.py:43
msgid "Path to the alignments file for the input, if not at the default location"
 </s> add #: tools/preview/cli.py:57
msgid ""
"Path to the alignments file for the input, if not at the default location" </s> remove     def _available_masks(self) -> List[str]:
        """ list: The mask names that are available for every face in the alignments file """
        retval = [key
                  for key, val in self._samples.alignments.mask_summary.items()
                  if val == self._samples.alignments.faces_count]
        return retval
 </s> add     def config_tools(self) -> "ConfigTools":
        """ :class:`ConfigTools`: The object responsible for parsing configuration options and
        updating to/from the GUI """
        return self._config_tools

    @property
    def dispatcher(self) -> "Dispatcher":
        """ :class:`Dispatcher`: The object responsible for triggering events and variables and
        handling global GUI state """
        return self._dispatcher

    @property
    def display(self) -> FacesDisplay:
        """ :class:`~tools.preview.viewer.FacesDisplay`: The object that holds the sample,
        converted and patched faces """
        return self._display

    @property
    def lock(self) -> Lock:
        """ :class:`threading.Lock`: The threading lock object for the Preview GUI """
        return self._lock

    @property
    def progress_bar(self) -> "BusyProgressBar":
        """ :class:`~tools.preview.control_panels.BusyProgressBar`: The progress bar that indicates
        a swap/patch thread is running """
        assert self._cli_frame is not None
        return self._cli_frame.busy_progress_bar

    def update_display(self):
        """ Update the images in the canvas and redraw """
        if not hasattr(self, "_image_canvas"):  # On first call object not yet created
            return
        assert self._image_canvas is not None
        self._image_canvas.reload() </s> remove #: ./tools/preview\cli.py:50
msgid "Model directory. A directory containing the trained model you wish to process."
 </s> add #: tools/preview/cli.py:64
msgid ""
"Model directory. A directory containing the trained model you wish to "
"process."
   preview
  
     alignments
     manual
   preview
     sort
  
  mask module
  ===========
keep keep add 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 
docs/full/tools/tools.rst