Cleans the input values of this configuration object.

        Fields that have gotten updated through properties are converted to configuration values that match the
        format needed by functions using them. For example, for list-like values it means that input of single strings
        is transformed into a single-entry list. If this conversion fails, a ``ValueError`` is raised.

def clean(self):
        """
        Cleans the input values of this configuration object.

        Fields that have gotten updated through properties are converted to configuration values that match the
        format needed by functions using them. For example, for list-like values it means that input of single strings
        is transformed into a single-entry list. If this conversion fails, a ``ValueError`` is raised.
        """
        all_props = self.__class__.CONFIG_PROPERTIES
        for prop_name in self._modified:
            attr_config = all_props.get(prop_name)
            if attr_config and attr_config.input_func:
                self._config[prop_name] = attr_config.input_func(self._config[prop_name])
        self._modified.clear()