in src/dfcx_scrapi/tools/datastore_evaluator.py [0:0]
def export(self, folder_name: str, chunk_size: int, credentials):
drive_service = build("drive", "v3", credentials=credentials)
folder = self.find_folder(folder_name, drive_service)
if folder:
folder_id, folder_url = folder
else:
folder_id, folder_url = self.create_folder(
folder_name, drive_service
)
queryset = self.scrape_outputs.drop("query_result", axis=1)
responses = self.scrape_outputs["query_result"].apply(
lambda x: x.to_row()
)
responses = pd.DataFrame(responses.to_list(), index=queryset.index)
json_content = {
"queryset": queryset.to_dict(orient="index"),
"responses": responses.to_dict(orient="index"),
"metrics": self.metric_outputs.to_dict(orient="index"),
}
json_id, json_url = self.create_json(
json_content, "results.json", folder_id, drive_service
)
for column in EVAL_RESULTS_COLS:
self.truncate(responses, column)
results = pd.concat([queryset, responses, self.metric_outputs], axis=1)
worksheets = {
"summary": self.aggregate().fillna("#N/A"),
"results": results.fillna("#N/A")
}
sheets_service = build("sheets", "v4", credentials=credentials)
self.create_sheet(
worksheets=worksheets,
title="results",
parent=folder_id,
chunk_size=chunk_size,
sheets_service=sheets_service,
drive_service=drive_service,
)
return folder_url