Skip to content

Commit da71b90

Browse files
committed
make error messages louder, clearer
1 parent 4f73484 commit da71b90

1 file changed

Lines changed: 10 additions & 5 deletions

File tree

dataretrieval/waterdata/utils.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import json
22
import logging
3+
import warnings
34
import os
45
import re
56
from datetime import datetime
@@ -309,10 +310,11 @@ def _error_body(resp: requests.Response):
309310
status codes, returns the raw response text.
310311
"""
311312
if resp.status_code == 429:
312-
return resp.json().get("error", {}).get("message")
313+
return "429: Too many requests made. Please obtain an API token or try again later."
313314
elif resp.status_code == 403:
314-
return "Query request denied. Possible reasons include query exceeding server limits."
315-
return resp.text
315+
return "403: Query request denied. Possible reasons include query exceeding server limits."
316+
return f"{resp.status_code}: {resp.json().get('code', 'Unknown type')}. \
317+
{resp.json().get('description', "No description provided")}."
316318

317319

318320
def _construct_api_requests(
@@ -574,12 +576,15 @@ def _walk_pages(
574576
data=content if method == "POST" else None,
575577
)
576578
if resp.status_code != 200:
577-
raise Exception(_error_body(resp))
579+
error_text = _error_body(resp)
580+
raise Exception(error_text)
578581
df1 = _get_resp_data(resp, geopd=geopd)
579582
dfs = pd.concat([dfs, df1], ignore_index=True)
580583
curr_url = _next_req_url(resp)
581584
except Exception:
582-
logger.info("Request failed for URL: %s. Stopping pagination and data download.", curr_url)
585+
warnings.warn(f"{error_text}. Data request incomplete.")
586+
logger.error("Request incomplete. %s", error_text)
587+
logger.warning("Request failed for URL: %s. Data download interrupted.", curr_url)
583588
curr_url = None
584589
return dfs, initial_response
585590
finally:

0 commit comments

Comments
 (0)