in botogen/botogen/gen.py [0:0]
def _generate_structure_shape(self, shape_model):
class_name = self._class_name + shape_model.name
shape = StructureShape(shape_model.name, class_name, {}, {})
# The structure shape is directly added to the cached shapes before it
# has its members generated to head of recursion errors.
self._shapes[shape_model.name] = shape
for member_name, member_model in shape_model.members.items():
member_shape = self._generate_shape(member_model)
if member_name in shape_model.required_members:
shape.required_params[member_name] = member_shape
else:
shape.optional_params[member_name] = member_shape
return shape