Exemple #1
0
def get_gspread_connection(
        credentials: service_account.Credentials,
        max_retries=7,
        backoff_factor=0.5,
        status_forcelist=frozenset([403, 413, 429, 503]),
) -> Client:
    scoped_credentials = credentials.with_scopes([
        "https://spreadsheets.google.com/feeds",
        "https://www.googleapis.com/auth/drive",
    ])
    retry = Retry(
        total=max_retries,
        read=max_retries,
        connect=max_retries,
        status=max_retries,
        backoff_factor=backoff_factor,
        status_forcelist=status_forcelist,
    )
    adapter = HTTPAdapter(max_retries=retry)
    session = Session()
    session.mount("https://", adapter)

    gc = Client(auth=scoped_credentials, session=session)
    gc.session = AuthorizedSession(scoped_credentials)
    return gc
Exemple #2
0
def get_service(google_credentials: Credentials) -> Resource:
    service = build(
        "drive",
        "v3",
        credentials=google_credentials.with_scopes(
            ["https://www.googleapis.com/auth/drive"]),
        cache_discovery=False,
    )
    return service
Exemple #3
0
def get_service(
        google_credentials: service_account.Credentials) -> DriveService:
    """Retrieves a gdrive service object."""
    service = googleapiclient.discovery.build(
        "drive",
        "v3",
        credentials=google_credentials.with_scopes(
            ["https://www.googleapis.com/auth/drive"]),
        cache_discovery=False,
    )
    return service
Exemple #4
0
 def get_credentials(self):
     """
     TODO: checkif credentials exist if not try to auth with local credentials
     """
     scopes: Tuple[str] = (
         "https://www.googleapis.com/auth/bigquery",
         "https://www.googleapis.com/auth/cloud-platform",
         "https://www.googleapis.com/auth/drive",
     )
     credentials: Credentials
     google_credentials: Json = settings.GOOGLE_CREDENTIALS
     if google_credentials:
         credentials = Credentials.from_service_account_info(
             google_credentials)
     else:
         credentials = Credentials()
     logger.info("Authenticating on GCP")
     credentials = credentials.with_scopes(scopes)
     return credentials