From b8d8fa2f7e1232757c28d2dae1f83c2d9ef5d744 Mon Sep 17 00:00:00 2001 From: Jesse Bannon Date: Tue, 30 Dec 2025 23:29:57 -0800 Subject: [PATCH] clean --- .../script/types/variable_dependency.py | 37 ++++++++----------- .../validators/string_formatter_validators.py | 1 + 2 files changed, 17 insertions(+), 21 deletions(-) diff --git a/src/ytdl_sub/script/types/variable_dependency.py b/src/ytdl_sub/script/types/variable_dependency.py index 010422a2..18f2dab2 100644 --- a/src/ytdl_sub/script/types/variable_dependency.py +++ b/src/ytdl_sub/script/types/variable_dependency.py @@ -114,7 +114,6 @@ class VariableDependency(ABC): output.add(ParsedCustomFunction(name=arg.name, num_input_args=len(arg.args))) if isinstance(arg, VariableDependency): output.update(arg.custom_functions) - # if isinstance(arg, Lambda) return output @@ -160,6 +159,20 @@ class VariableDependency(ABC): raise UNREACHABLE + @final + def _custom_function_dependencies( + self, custom_function_definitions: Dict[str, "VariableDependency"] + ) -> Set[ParsedCustomFunction]: + custom_functions = self.custom_functions + for lambda_func in self.lambdas: + if lambda_func.value in custom_function_definitions: + custom_functions.add( + ParsedCustomFunction( + name=lambda_func.value, num_input_args=lambda_func.num_input_args() + ) + ) + return custom_functions + @final def is_subset_of( self, @@ -172,16 +185,7 @@ class VariableDependency(ABC): True if it contains all input variables as a dependency. False otherwise. """ # If there are lambdas, see if they are custom functions. If so, check them - custom_functions_to_check = self.custom_functions - for lambda_func in self.lambdas: - if lambda_func.value in custom_function_definitions: - custom_functions_to_check.add( - ParsedCustomFunction( - name=lambda_func.value, num_input_args=lambda_func.num_input_args() - ) - ) - - for custom_function in custom_functions_to_check: + for custom_function in self._custom_function_dependencies(custom_function_definitions): if not custom_function_definitions[custom_function.name].is_subset_of( variables=variables, custom_function_definitions=custom_function_definitions ): @@ -201,16 +205,7 @@ class VariableDependency(ABC): True if it contains any of the input variables. False otherwise. """ # If there are lambdas, see if they are custom functions. If so, check them - custom_functions_to_check = self.custom_functions - for lambda_func in self.lambdas: - if lambda_func.value in custom_function_definitions: - custom_functions_to_check.add( - ParsedCustomFunction( - name=lambda_func.value, num_input_args=lambda_func.num_input_args() - ) - ) - - for custom_function in custom_functions_to_check: + for custom_function in self._custom_function_dependencies(custom_function_definitions): if custom_function_definitions[custom_function.name].contains( variables=variables, custom_function_definitions=custom_function_definitions ): diff --git a/src/ytdl_sub/validators/string_formatter_validators.py b/src/ytdl_sub/validators/string_formatter_validators.py index 401d0430..5a44066e 100644 --- a/src/ytdl_sub/validators/string_formatter_validators.py +++ b/src/ytdl_sub/validators/string_formatter_validators.py @@ -241,6 +241,7 @@ def _validate_formatter( variable_names = {var.name for var in parsed.variables} custom_function_names = {f"%{func.name}" for func in parsed.custom_functions} + # Add lambda functions to custom function names, if it's custom for lambda_func in parsed.lambdas: if lambda_func in mock_script.function_names: custom_function_names.add(lambda_func.value)