diff --git a/src/ytdl_sub/config/validators/variable_validation.py b/src/ytdl_sub/config/validators/variable_validation.py index 32a7fcbe..415d8464 100644 --- a/src/ytdl_sub/config/validators/variable_validation.py +++ b/src/ytdl_sub/config/validators/variable_validation.py @@ -1,4 +1,6 @@ import copy +from typing import Dict +from typing import Iterable from typing import List from typing import Optional from typing import Set @@ -13,10 +15,18 @@ from ytdl_sub.config.validators.options import OptionsValidator from ytdl_sub.downloaders.url.validators import MultiUrlValidator from ytdl_sub.entries.script.variable_scripts import VARIABLE_SCRIPTS from ytdl_sub.script.script import Script -from ytdl_sub.utils.script import ScriptUtils from ytdl_sub.validators.string_formatter_validators import validate_formatters +def _add_dummy_variables(variables: Iterable[str]) -> Dict[str, str]: + dummy_variables: Dict[str, str] = {} + for var in variables: + dummy_variables[var] = "" + dummy_variables[f"{var}_sanitized"] = "" + + return dummy_variables + + def _get_added_and_modified_variables( plugins: PresetPlugins, downloader_options: MultiUrlValidator, resolved_variables: Set[str] ) -> Tuple[Set[str], Set[str]]: @@ -91,9 +101,7 @@ class VariableValidation: ) # copy the script and mock entry variables - self.script = copy.deepcopy(overrides.script).add( - ScriptUtils.add_dummy_variables(entry_variables) - ) + self.script = copy.deepcopy(overrides.script).add(_add_dummy_variables(entry_variables)) return self @@ -117,7 +125,7 @@ class VariableValidation: resolved_variables = added_variables | modified_variables - self.script.add(ScriptUtils.add_dummy_variables(resolved_variables)) + self.script.add(_add_dummy_variables(resolved_variables)) self.unresolved_variables -= resolved_variables return added_variables diff --git a/src/ytdl_sub/script/types/variable_dependency.py b/src/ytdl_sub/script/types/variable_dependency.py index 3e43e8c7..9fbe3ebf 100644 --- a/src/ytdl_sub/script/types/variable_dependency.py +++ b/src/ytdl_sub/script/types/variable_dependency.py @@ -1,7 +1,6 @@ from abc import ABC from abc import abstractmethod from dataclasses import dataclass -from typing import Callable from typing import Dict from typing import Iterable from typing import List diff --git a/src/ytdl_sub/script/utils/name_validation.py b/src/ytdl_sub/script/utils/name_validation.py index d1dd1488..de187ec8 100644 --- a/src/ytdl_sub/script/utils/name_validation.py +++ b/src/ytdl_sub/script/utils/name_validation.py @@ -42,6 +42,8 @@ def validate_custom_function_name(custom_function_name: str) -> None: """ Raises ------ + InvalidFunctionName + If the function name is invalid InvalidVariableName if the variable name is invalid """ diff --git a/src/ytdl_sub/utils/chapters.py b/src/ytdl_sub/utils/chapters.py index eaec744f..1eacc5b8 100644 --- a/src/ytdl_sub/utils/chapters.py +++ b/src/ytdl_sub/utils/chapters.py @@ -238,6 +238,9 @@ class Chapters: @classmethod def from_yt_dlp_chapters(cls, chapters: List[Dict[str, str | float]]): + """ + Create a Chapters object from the raw ``chapters`` metadata returned in an info.json + """ timestamps: List[Timestamp] = [] titles: List[str] = [] diff --git a/src/ytdl_sub/utils/script.py b/src/ytdl_sub/utils/script.py index 5784850a..a50e8e7a 100644 --- a/src/ytdl_sub/utils/script.py +++ b/src/ytdl_sub/utils/script.py @@ -5,15 +5,6 @@ from typing import Iterable class ScriptUtils: - @classmethod - def add_dummy_variables(cls, variables: Iterable[str]) -> Dict[str, str]: - dummy_variables: Dict[str, str] = {} - for var in variables: - dummy_variables[var] = "" - dummy_variables[f"{var}_sanitized"] = "" - - return dummy_variables - @classmethod def add_sanitized_variables(cls, variables: Dict[str, str]) -> Dict[str, str]: sanitized_variables = { diff --git a/src/ytdl_sub/validators/string_datetime.py b/src/ytdl_sub/validators/string_datetime.py index b28c62d7..d50be211 100644 --- a/src/ytdl_sub/validators/string_datetime.py +++ b/src/ytdl_sub/validators/string_datetime.py @@ -1,5 +1,3 @@ -from typing import Dict - from yt_dlp.utils import datetime_from_str from ytdl_sub.validators.string_formatter_validators import OverridesStringFormatterValidator