def upload_with_conversion()

in infra/scripts/create_gdrive_folder.py [0:0]


def upload_with_conversion(folder_id, source_file, destination_file, file_type):
    """Upload file with conversion
    Returns: ID of the file uploaded
    """
    creds, _ = google.auth.default()

    try:
        # create drive api client
        service = build("drive", "v3", credentials=creds)
        results = (
            service.files()
            .list(
                q=f"name='{destination_file}'",
                pageSize=10,
                fields="nextPageToken, files(id, name)",
                supportsAllDrives=True,
                includeItemsFromAllDrives=True,
            )
            .execute()
        )

        query = "'{}' in parents".format(folder_id)
        children = (
            service.files()
            .list(q=query, fields="nextPageToken, files(id, name)")
            .execute()
        )
        # print(children['files'])
        fileCheck = next(
            (item for item in children["files"] if item["name"] == destination_file),
            None,
        )
        if len(children["files"]) == 0 or fileCheck == None:

            file_metadata = {
                "name": destination_file,
                "mimeType": "application/vnd.google-apps.spreadsheet",
                "parents": [folder_id],
            }
            media = MediaFileUpload(source_file, mimetype=file_type, resumable=True)
            # pylint: disable=maybe-no-member
            file = (
                service.files()
                .create(body=file_metadata, media_body=media, fields="id")
                .execute()
            )
            print(f'File with ID: "{file.get("id")}" has been uploaded.')
            return file.get("id")
        else:
            fileData = next(
                (
                    item
                    for item in children["files"]
                    if item["name"] == destination_file
                ),
                None,
            )
            print("File already Exists:", fileData["id"])
            return fileData["id"]

    except HttpError as error:
        print(f"An error occurred: {error}")
        file = None