      """
      def __init__(self):
          self._config = Config(None)
          self.tk_vars = dict()
  
      @property
      def sections(self):
          """ list: The sorted section names that exist within the convert Configuration options. """
          return sorted(set(plugin.split(".")[0] for plugin in self._config.config.sections()
                            if plugin.split(".")[0] != "writer"))
 
</s> remove         """ Return the sorted unique section names from the configs """
        return sorted(set(plugin.split(".")[0] for plugin in self.config.config.sections()
 </s> add         """ list: The sorted section names that exist within the convert Configuration options. """
        return sorted(set(plugin.split(".")[0] for plugin in self._config.config.sections() </s> remove         self.config = Config(None)
        self.config_dicts = self.get_config_dicts()  # Holds currently saved config
 </s> add         self._config = Config(None) </s> remove         """ Return dict of sections with sorted list of containing plugins """
        return {section: sorted([plugin.split(".")[1] for plugin in self.config.config.sections()
 </s> add         """ dict: Dictionary of configuration option sections as key with a list of containing
        plugins as the value """
        return {section: sorted([plugin.split(".")[1] for plugin in self._config.config.sections() </s> remove     """ Saving and resetting config values and stores selected variables """
 </s> add     """ Tools for loading, saving, setting and retrieving configuration file values.

    Attributes
    ----------
    tk_vars: dict
        Global tkinter variables. `Refresh` and `Busy` :class:`tkinter.BooleanVar`
    """ </s> remove     def random_choice(self):
        """ Return for random indices from the indices group """
        retval = [random.choice(indices) for indices in self.indices]
 </s> add     def sample_size(self):
        """ int: The number of samples to take from the input video/images """
        return self._sample_size

    @property
    def predicted_images(self):
        """ list: The predicted faces output from the Faceswap model """
        return self._predicted_images

    @property
    def alignments(self):
        """ :class:`~lib.alignments.Alignments`: The alignments for the preview faces """
        return self._alignments

    @property
    def predictor(self):
        """ :class:`~scripts.convert.Predict`: The Predictor for the Faceswap model """
        return self._predictor

    @property
    def _random_choice(self):
        """ list: Random indices from the :attr:`_indices` group """
        retval = [random.choice(indices) for indices in self._indices]
        self._config_dicts = self._get_config_dicts()  # Holds currently saved config

    @property
    def config(self):
        """ :class:`plugins.convert._config.Config` The convert configuration """
        return self._config

    @property
    def config_dicts(self):
        """ dict: The convert configuration options in dictionary form."""
        return self._config_dicts
      """
      def __init__(self):
          self._config = Config(None)
          self.tk_vars = dict()
        self._config_dicts = self._get_config_dicts()  # Holds currently saved config

    @property
    def config(self):
        """ :class:`plugins.convert._config.Config` The convert configuration """
        return self._config

    @property
    def config_dicts(self):
        """ dict: The convert configuration options in dictionary form."""
        return self._config_dicts
  
      @property
      def sections(self):
          """ list: The sorted section names that exist within the convert Configuration options. """
          return sorted(set(plugin.split(".")[0] for plugin in self._config.config.sections()
                            if plugin.split(".")[0] != "writer"))
keep keep keep add keep keep keep keep keep keep
 Smart Masks to Convert (#957)

- scripts.convert - Use Smart Masks for Convert
    * Make on-the-fly conversion an explicit option

- Move BlurMask to lib.faces_detect

- tools.preview - Fix for smart masks
    * Subclass from tk.Tk
    * Options to lib.gui.control_helper
    *variable cleanup

- lib.logger - Demote more tensorflow deprecation messages

- Documentation:
    * lib.faces_detect.BlurMask
    * plugins.convert.mask
    * lib.convert
    * scripts.convert
    * scripts.fsmedia
    * tools.preview 
tools/preview.py