in src/fmeval/eval_algorithms/save_strategy.py [0:0]
def save(self, records: List[EvalOutputRecord]):
"""Creates and uploads a part using the list of evaluation output records so that they can be completed during
the clean up stage.
:param records: list of EvalOutputRecords to be saved
"""
util.require(
self._part_info and self._multi_part_upload, "S3SaveStrategy is meant to be used as a context manager"
)
assert self._part_info and self._multi_part_upload # to satisfy mypy
part_number = len(self._part_info[PARTS]) + 1
part = self._s3_client.upload_part(
Bucket=self._bucket,
Key=self._key_prefix,
PartNumber=part_number,
UploadId=self._multi_part_upload[UPLOAD_ID],
Body="\n".join([str(record) for record in records]),
)
self._part_info[PARTS].append({PART_NUMBER: part_number, E_TAG: part[E_TAG]})