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:
|
def __validate_and_get_plugins(self) -> PresetPlugins:
|
||||||
preset_plugins = PresetPlugins()
|
preset_plugins = PresetPlugins()
|
||||||
source_variables = copy.deepcopy(self._source_variables)
|
|
||||||
|
|
||||||
for key in self._keys:
|
for key in self._keys:
|
||||||
if key not in PluginMapping.plugins():
|
if key not in PluginMapping.plugins():
|
||||||
|
|
@ -197,9 +196,19 @@ class Preset(StrictDictValidator):
|
||||||
|
|
||||||
preset_plugins.add(plugin_type=plugin, plugin_options=plugin_options)
|
preset_plugins.add(plugin_type=plugin, plugin_options=plugin_options)
|
||||||
|
|
||||||
for plugin, plugin_options in sorted(
|
return preset_plugins
|
||||||
preset_plugins.zipped(),
|
|
||||||
key=lambda _plugin_and_options: _plugin_and_options[0].priority.modify_entry,
|
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
|
# Validate current plugin using source + added plugin variables
|
||||||
plugin_options.validate_with_variables(
|
plugin_options.validate_with_variables(
|
||||||
|
|
@ -209,8 +218,6 @@ class Preset(StrictDictValidator):
|
||||||
# Extend existing source variables with ones created from this plugin
|
# Extend existing source variables with ones created from this plugin
|
||||||
source_variables.extend(plugin_options.added_source_variables())
|
source_variables.extend(plugin_options.added_source_variables())
|
||||||
|
|
||||||
return preset_plugins
|
|
||||||
|
|
||||||
def __validate_override_string_formatter_validator(
|
def __validate_override_string_formatter_validator(
|
||||||
self,
|
self,
|
||||||
formatter_validator: Union[StringFormatterValidator, OverridesStringFormatterValidator],
|
formatter_validator: Union[StringFormatterValidator, OverridesStringFormatterValidator],
|
||||||
|
|
@ -330,6 +337,7 @@ class Preset(StrictDictValidator):
|
||||||
|
|
||||||
self.overrides = self._validate_key(key="overrides", validator=Overrides, default={})
|
self.overrides = self._validate_key(key="overrides", validator=Overrides, default={})
|
||||||
self.plugins: PresetPlugins = self.__validate_and_get_plugins()
|
self.plugins: PresetPlugins = self.__validate_and_get_plugins()
|
||||||
|
self.__validate_added_variables()
|
||||||
|
|
||||||
# After all options are initialized, perform a recursive post-validate that requires
|
# After all options are initialized, perform a recursive post-validate that requires
|
||||||
# values from multiple validators
|
# values from multiple validators
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue