From c9a7094f83328853f58e562cb253f5d5fb8a6699 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Sat, 22 Jun 2024 14:54:39 -0400 Subject: [PATCH] Extract method for '_is_assignment' check. --- pip_run/scripts.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/pip_run/scripts.py b/pip_run/scripts.py index b42f584..c361b3a 100644 --- a/pip_run/scripts.py +++ b/pip_run/scripts.py @@ -166,15 +166,20 @@ def _read(self, var_name): appears more than once. """ mod = ast.parse(self.script) - (node,) = ( - node - for node in mod.body - if isinstance(node, ast.Assign) + (node,) = (node for node in mod.body if self._is_assignment(node, var_name)) + return ast.literal_eval(node.value) + + @staticmethod + def _is_assignment(node, var_name): + """ + Does this AST node describe an assignment to var_name? + """ + return ( + isinstance(node, ast.Assign) and len(node.targets) == 1 and isinstance(node.targets[0], ast.Name) and node.targets[0].id == var_name ) - return ast.literal_eval(node.value) class SourceDepsReader(DepsReader):