move things out of script utils

This commit is contained in:
Jesse Bannon 2023-12-13 14:41:31 -08:00
parent ce07ce3ec0
commit 837c6c1af9
6 changed files with 18 additions and 17 deletions

View file

@ -1,4 +1,6 @@
import copy import copy
from typing import Dict
from typing import Iterable
from typing import List from typing import List
from typing import Optional from typing import Optional
from typing import Set 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.downloaders.url.validators import MultiUrlValidator
from ytdl_sub.entries.script.variable_scripts import VARIABLE_SCRIPTS from ytdl_sub.entries.script.variable_scripts import VARIABLE_SCRIPTS
from ytdl_sub.script.script import Script from ytdl_sub.script.script import Script
from ytdl_sub.utils.script import ScriptUtils
from ytdl_sub.validators.string_formatter_validators import validate_formatters 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( def _get_added_and_modified_variables(
plugins: PresetPlugins, downloader_options: MultiUrlValidator, resolved_variables: Set[str] plugins: PresetPlugins, downloader_options: MultiUrlValidator, resolved_variables: Set[str]
) -> Tuple[Set[str], Set[str]]: ) -> Tuple[Set[str], Set[str]]:
@ -91,9 +101,7 @@ class VariableValidation:
) )
# copy the script and mock entry variables # copy the script and mock entry variables
self.script = copy.deepcopy(overrides.script).add( self.script = copy.deepcopy(overrides.script).add(_add_dummy_variables(entry_variables))
ScriptUtils.add_dummy_variables(entry_variables)
)
return self return self
@ -117,7 +125,7 @@ class VariableValidation:
resolved_variables = added_variables | modified_variables 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 self.unresolved_variables -= resolved_variables
return added_variables return added_variables

View file

@ -1,7 +1,6 @@
from abc import ABC from abc import ABC
from abc import abstractmethod from abc import abstractmethod
from dataclasses import dataclass from dataclasses import dataclass
from typing import Callable
from typing import Dict from typing import Dict
from typing import Iterable from typing import Iterable
from typing import List from typing import List

View file

@ -42,6 +42,8 @@ def validate_custom_function_name(custom_function_name: str) -> None:
""" """
Raises Raises
------ ------
InvalidFunctionName
If the function name is invalid
InvalidVariableName InvalidVariableName
if the variable name is invalid if the variable name is invalid
""" """

View file

@ -238,6 +238,9 @@ class Chapters:
@classmethod @classmethod
def from_yt_dlp_chapters(cls, chapters: List[Dict[str, str | float]]): 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] = [] timestamps: List[Timestamp] = []
titles: List[str] = [] titles: List[str] = []

View file

@ -5,15 +5,6 @@ from typing import Iterable
class ScriptUtils: 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 @classmethod
def add_sanitized_variables(cls, variables: Dict[str, str]) -> Dict[str, str]: def add_sanitized_variables(cls, variables: Dict[str, str]) -> Dict[str, str]:
sanitized_variables = { sanitized_variables = {

View file

@ -1,5 +1,3 @@
from typing import Dict
from yt_dlp.utils import datetime_from_str from yt_dlp.utils import datetime_from_str
from ytdl_sub.validators.string_formatter_validators import OverridesStringFormatterValidator from ytdl_sub.validators.string_formatter_validators import OverridesStringFormatterValidator