Skip to content

Commit 1b41f4c

Browse files
committed
updates variable name and adds logic to catch Dict and None
1 parent 1ce5266 commit 1b41f4c

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

scripts/microgenerator/generate.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class CodeAnalyzer(ast.NodeVisitor):
4646
"""
4747

4848
def __init__(self):
49-
self.structure: List[Dict[str, Any]] = []
49+
self.analyzed_classes: List[Dict[str, Any]] = []
5050
self.imports: set[str] = set()
5151
self.types: set[str] = set()
5252
self._current_class_info: Dict[str, Any] | None = None
@@ -98,13 +98,19 @@ def _collect_types_from_node(self, node: ast.AST | None) -> None:
9898
if type_str:
9999
self.types.add(type_str)
100100
elif isinstance(node, ast.Subscript):
101-
self._collect_types_from_node(node.value)
101+
# Add the base type of the subscript (e.g., "List", "Dict")
102+
if isinstance(node.value, ast.Name):
103+
self.types.add(node.value.id)
104+
self._collect_types_from_node(node.value) # Recurse on value just in case
102105
self._collect_types_from_node(node.slice)
103106
elif isinstance(node, (ast.Tuple, ast.List)):
104107
for elt in node.elts:
105108
self._collect_types_from_node(elt)
106-
elif isinstance(node, ast.Constant) and isinstance(node.value, str):
107-
self.types.add(node.value)
109+
elif isinstance(node, ast.Constant):
110+
if isinstance(node.value, str): # Forward references
111+
self.types.add(node.value)
112+
elif node.value is None: # None type
113+
self.types.add("None")
108114
elif isinstance(node, ast.BinOp) and isinstance(
109115
node.op, ast.BitOr
110116
): # For | union type

0 commit comments

Comments
 (0)