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
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
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
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