From fb49aa18f297ff525e7f9687f34c585f2487fe7a Mon Sep 17 00:00:00 2001 From: Jesse Bannon Date: Mon, 12 Jan 2026 17:21:24 -0800 Subject: [PATCH] docs --- src/ytdl_sub/script/script.py | 14 ++++++-------- src/ytdl_sub/script/types/function.py | 9 ++++++++- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/ytdl_sub/script/script.py b/src/ytdl_sub/script/script.py index 1ec1c1b2..2e436e81 100644 --- a/src/ytdl_sub/script/script.py +++ b/src/ytdl_sub/script/script.py @@ -704,15 +704,10 @@ class Script: unresolvable: Optional[Set[str]] = None, ) -> "Script": """ - Returns ------- - Dict of resolved values - - Raises - ------ - ScriptVariableNotResolved - If specifying a filter of variable to resolve, and one of them does not. + New (deep-copied) script that resolves inner variables as much + as possible. """ unresolvable: Set[str] = unresolvable or {} resolved: Dict[Variable, Resolvable] = {} @@ -753,6 +748,9 @@ class Script: return copy.deepcopy(self).add_parsed( {var_name: self._variables[var_name] for var_name in unresolvable} - | {var.name: SyntaxTree(ast=[definition]) for var, definition in resolved.items()} + | { + var.name: ResolvedSyntaxTree(ast=[definition]) + for var, definition in resolved.items() + } | {var.name: SyntaxTree(ast=[definition]) for var, definition in unresolved.items()} ) diff --git a/src/ytdl_sub/script/types/function.py b/src/ytdl_sub/script/types/function.py index aedeff59..d34c0a47 100644 --- a/src/ytdl_sub/script/types/function.py +++ b/src/ytdl_sub/script/types/function.py @@ -367,6 +367,10 @@ class BuiltInFunction(Function, BuiltInFunctionType): unresolved_variables: Dict[Variable, Argument], custom_functions: Dict[str, "VariableDependency"], ): + """ + If the conditional partially resolvable enough to warrant evaluation, + perform it here. + """ if self.is_subset_of( variables=resolved_variables, custom_function_definitions=custom_functions ): @@ -424,6 +428,10 @@ class BuiltInFunction(Function, BuiltInFunctionType): unresolved_variables: Dict[Variable, Argument], custom_functions: Dict[str, "VariableDependency"], ) -> Optional[Argument]: + """ + If a function has enough (but not all) resolved parameters to warrant a return, + perform it here. + """ if self.name == "array_at": if ( isinstance(self.args[0], UnresolvedArray) @@ -451,7 +459,6 @@ class BuiltInFunction(Function, BuiltInFunctionType): num_input_args=len(self.args) ) - # If the function is conditional, only run if its entirety is resolvable if conditional_return_args: return self._partial_resolve_conditional( resolved_variables=resolved_variables,