Skip to content

Commit 55cb498

Browse files
authored
less refresh in ci (fsspec#690)
* less refresh in ci * reinstate 401 retry (for now) * add pytest-asyncio to test env
1 parent 818b563 commit 55cb498

File tree

4 files changed

+12
-4
lines changed

4 files changed

+12
-4
lines changed

environment_gcsfs.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ dependencies:
1515
- google-cloud-storage
1616
- pytest
1717
- pytest-timeout
18+
- pytest-asyncio
1819
- requests
1920
- ujson
2021
- pip:

gcsfs/core.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,9 @@ def __init__(
334334
DeprecationWarning,
335335
)
336336

337-
self.credentials = GoogleCredentials(project, access, token)
337+
self.credentials = GoogleCredentials(
338+
project, access, token, on_google=self.on_google
339+
)
338340

339341
@property
340342
def _location(self):

gcsfs/credentials.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040

4141

4242
class GoogleCredentials:
43-
def __init__(self, project, access, token, check_credentials=None):
43+
def __init__(self, project, access, token, check_credentials=None, on_google=True):
4444
self.scope = "https://www.googleapis.com/auth/devstorage." + access
4545
self.project = project
4646
self.access = access
@@ -50,6 +50,7 @@ def __init__(self, project, access, token, check_credentials=None):
5050
self.method = None
5151
self.lock = threading.Lock()
5252
self.token = token
53+
self.on_google = on_google
5354
self.connect(method=token)
5455

5556
if check_credentials:
@@ -93,6 +94,8 @@ def _connect_google_default(self):
9394
self.credentials = credentials
9495

9596
def _connect_cloud(self):
97+
if not self.on_google:
98+
raise ValueError
9699
self.credentials = gauth.compute_engine.Credentials()
97100
try:
98101
with requests.Session() as session:
@@ -222,7 +225,7 @@ def apply(self, out):
222225
self.credentials.apply(out)
223226

224227
def _connect_service(self, fn):
225-
# raises exception if file does not match expectation
228+
# raises exception if the file does not match expectation
226229
credentials = service_account.Credentials.from_service_account_file(
227230
fn, scopes=[self.scope]
228231
)
@@ -255,7 +258,6 @@ def connect(self, method=None):
255258
"cloud",
256259
"token",
257260
"anon",
258-
"browser",
259261
None,
260262
]:
261263
self._connect_token(method)

gcsfs/retry.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,9 @@ async def retry_request(func, retries=6, *args, **kwargs):
160160
if isinstance(e, HttpError) and e.code == 404:
161161
logger.debug("Request returned 404, no retries.")
162162
raise e
163+
if isinstance(e, HttpError) and e.code == 401:
164+
logger.debug("Invalid credentials, no retries.")
165+
raise e
163166
if retry == retries - 1:
164167
logger.exception(f"{func.__name__} out of retries on exception: {e}")
165168
raise e

0 commit comments

Comments
 (0)