def _evaluate_list_type()

in src/sagemaker_core/tools/shapes_extractor.py [0:0]


    def _evaluate_list_type(self, member_shape, add_shapes_prefix=True):
        list_shape_name = member_shape["member"]["shape"]
        list_shape_member = self.combined_shapes[list_shape_name]
        list_shape_type = list_shape_member["type"]
        if list_shape_type == "list":
            member_type = f"List[{self._evaluate_list_type(list_shape_member, add_shapes_prefix)}]"
        elif list_shape_type == "map":
            member_type = f"List[{self._evaluate_map_type(list_shape_member, add_shapes_prefix)}]"
        elif list_shape_type == "structure":
            # handling an edge case of nested structure
            if list_shape_name == "SearchExpression":
                member_type = f"List['{list_shape_name}']"
            else:
                if add_shapes_prefix:
                    list_shape_name = f"shapes.{list_shape_name}"
                member_type = f"List[{list_shape_name}]"
        elif list_shape_type in BASIC_JSON_TYPES_TO_PYTHON_TYPES.keys():
            member_type = f"List[{BASIC_JSON_TYPES_TO_PYTHON_TYPES[list_shape_type]}]"
        else:
            raise Exception(
                f"Unhandled list shape key type {list_shape_type} for Shape: {list_shape_name} encountered, needs extra logic to handle this"
            )
        return member_type