diff --git a/src/ytdl_sub/config/overrides.py b/src/ytdl_sub/config/overrides.py index f46ea5a7..3372e936 100644 --- a/src/ytdl_sub/config/overrides.py +++ b/src/ytdl_sub/config/overrides.py @@ -56,7 +56,7 @@ class Overrides(DictFormatterValidator, Scriptable): def __init__(self, name, value): DictFormatterValidator.__init__(self, name, value) - Scriptable.__init__(self) + Scriptable.__init__(self, initialize_base_script=True) for key in self._keys: self.ensure_variable_name_valid(key) @@ -133,8 +133,6 @@ class Overrides(DictFormatterValidator, Scriptable): """ Initialize the override script with override variables + any unresolved variables """ - self.initialize_base_script() - self.script.add( ScriptUtils.add_sanitized_variables( {SubscriptionVariables.subscription_name(): subscription_name} diff --git a/src/ytdl_sub/utils/scriptable.py b/src/ytdl_sub/utils/scriptable.py index a6becdcc..b1dc20e7 100644 --- a/src/ytdl_sub/utils/scriptable.py +++ b/src/ytdl_sub/utils/scriptable.py @@ -26,21 +26,33 @@ class Scriptable(ABC): Shared class between Entry and Overrides to manage their underlying Script. """ - def __init__(self): + def __init__(self, initialize_base_script: bool = False): self._script: Optional[Script] = None self._unresolvable: Optional[Set[str]] = None + if initialize_base_script: + self.initialize_base_script() + def initialize_base_script(self): + """ + Initializes with base values + """ self._script = copy.deepcopy(_BASE_SCRIPT) self._unresolvable = copy.deepcopy(UNRESOLVED_VARIABLES) @property def script(self) -> Script: + """ + Initialized script + """ assert self._script is not None, "Not initialized" return self._script @property def unresolvable(self) -> Set[str]: + """ + Initialized unresolvable variables + """ assert self._unresolvable is not None, "Not initialized" return self._unresolvable