Skip to content
This repository was archived by the owner on Feb 6, 2026. It is now read-only.

Commit 500e89f

Browse files
committed
codegen: Fix List of built-in types
1 parent 3f69b04 commit 500e89f

1 file changed

Lines changed: 9 additions & 5 deletions

File tree

typetree_codegen.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,11 @@ def reduce_init(clazz, **d):
8888
if type(sub) == str:
8989
sub = eval(sub) # attrs turns these into strings...why?
9090
reduce_arg = getattr(sub, "__args__", [None])[0]
91-
if isinstance(d[k], list) and hasattr(reduce_arg, "__annotations__"):
92-
setattr(self, k, [enusre_reserved(reduce_arg(**x)) for x in d[k]])
91+
if isinstance(d[k], list):
92+
if hasattr(reduce_arg, "__annotations__"):
93+
setattr(self, k, [enusre_reserved(reduce_arg(**x)) for x in d[k]])
94+
else:
95+
setattr(self, k, [enusre_reserved(reduce_arg(x)) for x in d[k]])
9396
elif isinstance(d[k], dict) and hasattr(sub, "__annotations__"):
9497
setattr(self, k, enusre_reserved(sub(**d[k])))
9598
else:
@@ -122,6 +125,7 @@ def __repr__(self) -> str:
122125
def translate_name(m_Name: str, **kwargs):
123126
m_Name = m_Name.replace("<>", "__generic_") # Generic templates
124127
m_Name = m_Name.replace("<", "_").replace(">", "_") # Templated
128+
m_Name = m_Name.replace("=", "_") # Special chars
125129
return m_Name
126130

127131

@@ -216,7 +220,7 @@ def emit_line(*lines: str):
216220
if import_root:
217221
emit_line(f"from {import_root} import *")
218222
for clazz, parent in import_defs.items():
219-
emit_line(f"from {import_root}{parent} import {clazz}")
223+
emit_line(f"from {import_root}{parent or ''} import {clazz}")
220224

221225
emit_line()
222226
# Emit by topo order
@@ -269,7 +273,7 @@ def emit_line(*lines: str):
269273
name, type = field["m_Name"], translate_type(
270274
field["m_Type"], typenames=typetree_defs | import_defs
271275
)
272-
emit_line(f"\t{declare_field(name, type, field["m_Type"])}")
276+
emit_line(f"\t{declare_field(name, type, field['m_Type'])}")
273277
clazz_fields.append((name, type, field["m_Type"]))
274278
cur_dep1 += 1
275279
dp[clazz] = cur_dep1
@@ -280,7 +284,7 @@ def emit_line(*lines: str):
280284
name, type = field["m_Name"], translate_type(
281285
field["m_Type"], typenames=typetree_defs | import_defs
282286
)
283-
emit_line(f"\t{declare_field(name, type, field["m_Type"])}")
287+
emit_line(f"\t{declare_field(name, type, field['m_Type'])}")
284288
clazz_fields.append((name, type))
285289
if not clazz_fields:
286290
# Empty class. Consider MRO

0 commit comments

Comments
 (0)