Skip to content

Commit d3779de

Browse files
thodson-usgsclaude
andauthored
fix(waterdata)!: return (df, BaseMetadata) from get_codes (#301)
Every other public waterdata getter returns a (DataFrame, BaseMetadata) tuple, but get_codes returned a bare DataFrame, so the module's universal idiom `df, md = waterdata.get_codes(...)` raised an unpack error. It already builds `response` (and calls _raise_for_non_200), so the metadata was in hand and discarded. BREAKING: callers doing `df = get_codes(...)` must switch to `df, _ = get_codes(...)`. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent b375f19 commit d3779de

1 file changed

Lines changed: 9 additions & 2 deletions

File tree

dataretrieval/waterdata/api.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2101,7 +2101,7 @@ def get_reference_table(
21012101
)
21022102

21032103

2104-
def get_codes(code_service: CODE_SERVICES) -> pd.DataFrame:
2104+
def get_codes(code_service: CODE_SERVICES) -> tuple[pd.DataFrame, BaseMetadata]:
21052105
"""Return codes from a Samples code service.
21062106
21072107
Parameters
@@ -2110,6 +2110,13 @@ def get_codes(code_service: CODE_SERVICES) -> pd.DataFrame:
21102110
One of the following options: "states", "counties", "countries"
21112111
"sitetype", "samplemedia", "characteristicgroup", "characteristics",
21122112
or "observedproperty"
2113+
2114+
Returns
2115+
-------
2116+
df : ``pandas.DataFrame``
2117+
The requested code table.
2118+
md : :obj:`dataretrieval.utils.BaseMetadata`
2119+
Metadata for the query (URL, query time, response headers).
21132120
"""
21142121
valid_code_services = get_args(CODE_SERVICES)
21152122
if code_service not in valid_code_services:
@@ -2129,7 +2136,7 @@ def get_codes(code_service: CODE_SERVICES) -> pd.DataFrame:
21292136

21302137
df = pd.DataFrame(data_list)
21312138

2132-
return df
2139+
return df, BaseMetadata(response)
21332140

21342141

21352142
def _get_samples_csv(

0 commit comments

Comments
 (0)