Spaces:
Running
Running
| import ast | |
| from typing import Any | |
| from typing_extensions import override | |
| class RequiredInputsVisitor(ast.NodeVisitor): | |
| def __init__(self, inputs: dict[str, Any]): | |
| self.inputs: dict[str, Any] = inputs | |
| self.required_inputs: set[str] = set() | |
| def visit_Attribute(self, node) -> None: | |
| if ( | |
| isinstance(node.value, ast.Name) | |
| and node.value.id == "self" | |
| and node.attr in self.inputs | |
| and self.inputs[node.attr].required | |
| ): | |
| self.required_inputs.add(node.attr) | |
| self.generic_visit(node) | |