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