separate func for variable checking, need to make it more advanced
This commit is contained in:
parent
db1af8bd5f
commit
d9bca00bc4
1 changed files with 14 additions and 6 deletions
|
|
@ -186,7 +186,6 @@ class Preset(StrictDictValidator):
|
|||
|
||||
def __validate_and_get_plugins(self) -> PresetPlugins:
|
||||
preset_plugins = PresetPlugins()
|
||||
source_variables = copy.deepcopy(self._source_variables)
|
||||
|
||||
for key in self._keys:
|
||||
if key not in PluginMapping.plugins():
|
||||
|
|
@ -197,9 +196,19 @@ class Preset(StrictDictValidator):
|
|||
|
||||
preset_plugins.add(plugin_type=plugin, plugin_options=plugin_options)
|
||||
|
||||
for plugin, plugin_options in sorted(
|
||||
preset_plugins.zipped(),
|
||||
key=lambda _plugin_and_options: _plugin_and_options[0].priority.modify_entry,
|
||||
return preset_plugins
|
||||
|
||||
def __validate_added_variables(self):
|
||||
source_variables = copy.deepcopy(self._source_variables)
|
||||
|
||||
# Validate added download option variables here since plugins could subsequently use them
|
||||
self.downloader_options.validate_with_variables(
|
||||
source_variables=source_variables, override_variables=self.overrides.keys
|
||||
)
|
||||
source_variables.extend(self.downloader_options.added_source_variables())
|
||||
|
||||
for plugin_options in sorted(
|
||||
self.plugins.plugin_options, key=lambda pl_options: pl_options.priority.modify_entry
|
||||
):
|
||||
# Validate current plugin using source + added plugin variables
|
||||
plugin_options.validate_with_variables(
|
||||
|
|
@ -209,8 +218,6 @@ class Preset(StrictDictValidator):
|
|||
# Extend existing source variables with ones created from this plugin
|
||||
source_variables.extend(plugin_options.added_source_variables())
|
||||
|
||||
return preset_plugins
|
||||
|
||||
def __validate_override_string_formatter_validator(
|
||||
self,
|
||||
formatter_validator: Union[StringFormatterValidator, OverridesStringFormatterValidator],
|
||||
|
|
@ -330,6 +337,7 @@ class Preset(StrictDictValidator):
|
|||
|
||||
self.overrides = self._validate_key(key="overrides", validator=Overrides, default={})
|
||||
self.plugins: PresetPlugins = self.__validate_and_get_plugins()
|
||||
self.__validate_added_variables()
|
||||
|
||||
# After all options are initialized, perform a recursive post-validate that requires
|
||||
# values from multiple validators
|
||||
|
|
|
|||
Loading…
Reference in a new issue