                  return True
          logger.debug("Default config has not changed")
          return False
  
      def handle_config(self):
          """ Handle the config.
  
          Checks whether a config file exists for this section. If not then a default is created.
  
          Configuration choices are then loaded and validated
 
</s> remove         if not self.check_exists():
            self.create_default()
        self.load_config()
        self.validate_config()
 </s> add         if not self._check_exists():
            self._create_default()
        self._load_config()
        self._validate_config() </s> remove         for section, items in self.defaults.items():
            opts = [opt for opt in items.keys() if opt != "helptext"]
            exists = [opt for opt in self.config[section].keys()
 </s> add         for section_name, section in self.defaults.items():
            opts = list(section.items)
            exists = [opt for opt in self.config[section_name].keys() </s> remove     def check_exists(self):
        """ Check that a config file exists """
 </s> add     def _check_exists(self) -> bool:
        """ Check that a config file exists

        Returns
        -------
        bool
            ``True`` if the given configuration file exists
        """ </s> remove     def check_config_change(self):
        """ Check whether new default items have been added or removed
            from the config file compared to saved version """
 </s> add     def _check_config_change(self) -> bool:
        """ Check whether new default items have been added or removed from the config file
        compared to saved version

        Returns
        -------
        bool
            ``True`` if a config option has been added or removed
        """ </s> remove     def create_default(self):
 </s> add     def _create_default(self) -> None:
    def _handle_config(self) -> None:
                  return True
          logger.debug("Default config has not changed")
          return False
  
    def _handle_config(self) -> None:
          """ Handle the config.
  
          Checks whether a config file exists for this section. If not then a default is created.
  
          Configuration choices are then loaded and validated
keep keep keep keep replace keep keep keep keep keep
 Preview - Allow mask color/opacity configuration
  - typing: lib.config
  - docs: lib.config
  - bugfix: popup_configure - keep assets on top 
lib/config.py