Skip to content

Commit

Permalink
Address comments
Browse files Browse the repository at this point in the history
  • Loading branch information
pvk-developer committed Oct 7, 2024
1 parent 0982e60 commit 8de9442
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 21 deletions.
1 change: 0 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,6 @@ test = [
'google-api-python-client',
'google-auth',
'google-auth-oauthlib',
'google-auth-httplib2',
'requests',
'pyarrow',
'gitpython',
Expand Down
32 changes: 12 additions & 20 deletions tests/_external/gdrive_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,7 @@

import git
import pandas as pd
from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow
from googleapiclient.discovery import build
from googleapiclient.http import MediaIoBaseDownload, MediaIoBaseUpload

Expand All @@ -25,28 +23,17 @@ def _generate_filename():
return f'{today}-{commit_id}.xlsx'


def _get_drive_client():
def _get_drive_service():
tmp_credentials = os.getenv('PYDRIVE_CREDENTIALS')
creds = None
if tmp_credentials:
credentials = json.loads(tmp_credentials)
creds = Credentials.from_authorized_user_info(credentials, SCOPES)
if not creds or not creds.valid:
if creds and creds.expired and creds.refresh_token:
creds.refresh(Request())
else:
flow = InstalledAppFlow.from_client_secrets_file('client_secrets.json', SCOPES)
creds = flow.run_local_server(port=0)
with open('token.json', 'w') as token:
token.write(creds.to_json())

credentials_json = json.loads(tmp_credentials)
creds = Credentials.from_authorized_user_info(credentials_json, SCOPES)
service = build('drive', 'v3', credentials=creds)
return service


def get_latest_file(folder_id):
"""Get the latest file from the given Google Drive folder."""
service = _get_drive_client()
service = _get_drive_service()

query = f"'{folder_id}' in parents and trashed = false"
results = (
Expand All @@ -56,6 +43,7 @@ def get_latest_file(folder_id):
)

files = results.get('files', [])
service.close()
if files:
return files[0]

Expand All @@ -73,7 +61,7 @@ def read_excel(file_id):
each sheet
"""
service = _get_drive_client()
service = _get_drive_service()

# Get file metadata to check mimeType
file_metadata = service.files().get(fileId=file_id, fields='mimeType').execute()
Expand All @@ -98,6 +86,7 @@ def read_excel(file_id):

file_io.seek(0) # Reset stream position

service.close()
# Load the file content into pandas
return pd.read_excel(file_io, sheet_name=None)

Expand Down Expand Up @@ -147,8 +136,11 @@ def save_to_gdrive(output_folder, results, output_filename=None):
'mimeType': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
}

service = _get_drive_client()
service = _get_drive_service()
media = MediaIoBaseUpload(output, mimetype=file_metadata['mimeType'], resumable=True)

file = service.files().create(body=file_metadata, media_body=media, fields='id').execute()
return file.get('id')
file_id = file.get('id')
service.close()

return file_id

0 comments on commit 8de9442

Please sign in to comment.