def get_mock_data()

in dynalab/tasks/task_io.py [0:0]


    def get_mock_data(self):
        mock_datapoints = []

        type_to_data_dict = dict()
        input_names_to_annotation_dict = dict()
        max_mock_data_len = 0

        def initialize_names_to_annotation_dict(annotations, dest_dict):
            for annotation in annotations:
                dest_dict[annotation["name"]] = annotation

        initialize_names_to_annotation_dict(
            self.inputs_without_targets, input_names_to_annotation_dict
        )
        initialize_names_to_annotation_dict(
            self.task_info["annotation_config"]["context"],
            input_names_to_annotation_dict,
        )

        def load_mock_data_for_annotations(
            annotations, max_mock_data_len_inner, name_to_annotation_dict
        ):
            for annotation in annotations:
                def_type = annotation["type"]
                if def_type not in type_to_data_dict:
                    type_to_data_dict[def_type] = annotation_mock_data_generators[
                        def_type
                    ](annotation, name_to_annotation_dict)
                max_mock_data_len_inner = max(
                    max_mock_data_len_inner, len(type_to_data_dict[def_type])
                )

            return max_mock_data_len_inner

        max_mock_data_len = load_mock_data_for_annotations(
            self.inputs_without_targets,
            max_mock_data_len,
            input_names_to_annotation_dict,
        )
        max_mock_data_len = load_mock_data_for_annotations(
            self.task_info["annotation_config"]["context"],
            max_mock_data_len,
            input_names_to_annotation_dict,
        )

        def add_mock_data_for_annotations(annotations, datum):
            for annotation in annotations:
                data_for_input_type = type_to_data_dict[annotation["type"]]
                datum[annotation["name"]] = data_for_input_type[
                    i % len(data_for_input_type)
                ]

        for i in range(max_mock_data_len):
            datum = {"uid": str(uuid.uuid4())}
            add_mock_data_for_annotations(self.inputs_without_targets, datum)
            add_mock_data_for_annotations(
                self.task_info["annotation_config"]["context"], datum
            )
            mock_datapoints.append(datum)

        # generate sample_output
        target_names = set(target["name"] for target in self.targets)
        outputs_with_targets = self.task_info["annotation_config"]["output"]
        optional_fields = [
            output["name"]
            for output in outputs_with_targets
            if output["name"] not in target_names
        ]

        output_names_to_annotation_dict = dict()
        initialize_names_to_annotation_dict(
            outputs_with_targets, output_names_to_annotation_dict
        )
        initialize_names_to_annotation_dict(
            self.task_info["annotation_config"]["context"],
            output_names_to_annotation_dict,
        )

        load_mock_data_for_annotations(
            outputs_with_targets, max_mock_data_len, output_names_to_annotation_dict
        )
        datum = {"id": str(uuid.uuid4())}
        add_mock_data_for_annotations(outputs_with_targets, datum)

        sample_output = {
            "mandatory_fields": list(target_names),
            "optional_fields": optional_fields,
            "output_entry": datum,
        }

        return mock_datapoints, sample_output