Commit 564d393
fix(utils): query() must not mutate the caller's payload
query() stringified each value in place (`payload[key] = to_str(...)`),
so a caller reusing the same dict carried delimiter-joined values into
its next call. Build a fresh `params` dict from the payload instead and
pass that to the request; the caller's dict is left untouched. Adds a
regression test asserting the payload is unchanged after the call.
The branch's original 4xx/5xx-handling commits are dropped: that half is
already superseded on main by the httpx migration (DOI-USGS#289) and the typed
error taxonomy (`_raise_for_status` / `error_for_status`, DOI-USGS#313/DOI-USGS#319), which
raise on every >=400 status. Only the payload-mutation fix remained
unmerged, re-authored here onto main's httpx `query`.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sjb14HkwuCydKSKMsaXsgd1 parent 4daf771 commit 564d393
2 files changed
Lines changed: 17 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
419 | 419 | | |
420 | 420 | | |
421 | 421 | | |
422 | | - | |
| 422 | + | |
423 | 423 | | |
424 | 424 | | |
425 | 425 | | |
| |||
442 | 442 | | |
443 | 443 | | |
444 | 444 | | |
445 | | - | |
446 | | - | |
| 445 | + | |
| 446 | + | |
447 | 447 | | |
448 | 448 | | |
449 | | - | |
| 449 | + | |
450 | 450 | | |
451 | 451 | | |
452 | 452 | | |
453 | 453 | | |
454 | 454 | | |
455 | 455 | | |
456 | | - | |
| 456 | + | |
457 | 457 | | |
458 | 458 | | |
459 | 459 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
3 | 4 | | |
4 | 5 | | |
5 | 6 | | |
| |||
33 | 34 | | |
34 | 35 | | |
35 | 36 | | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
36 | 48 | | |
37 | 49 | | |
38 | 50 | | |
| |||
0 commit comments