in utils/dsl-generator.py [0:0]
def generate_types_py(schema, filename):
"""Generate types.py"""
classes = {}
for interface in schema.interfaces:
if interface == "PipeSeparatedFlags":
continue # handled as a special case
for_response = interface in schema.response_interfaces
k = schema.interface_to_python_class(
interface, for_types_py=True, for_response=for_response
)
classes[k["name"]] = k
# sort classes by being request/response and then by name
sorted_classes = sorted(
list(classes.keys()),
key=lambda i: str(int(i in schema.response_interfaces)) + i,
)
classes_list = []
for n in sorted_classes:
k = classes[n]
if k in classes_list:
continue
classes_list.append(k)
with open(filename, "wt") as f:
f.write(types_py.render(classes=classes_list))
print(f"Generated {filename}.")