SIGN IN SIGN UP

fix: Normalize query params in dataset create_items_public_url (#963)

`DatasetClient.create_items_public_url` (and its async twin) passed
`_build_params` output straight to `urlencode`, bypassing the
`_parse_params` normalization that the real HTTP request path applies.
As a result, boolean and list query params ended up as Python reprs in
the signed URL — e.g. `create_items_public_url(clean=True,
fields=['title', 'url'])` produced
`clean=True&fields=%5B%27title%27%2C+%27url%27%5D` instead of
`clean=true&fields=title,url`. Consumers of the shared URL then got
unclean/unfiltered items or an API error.

The fix routes the params through `self._http_client._parse_params(...)`
before `urlencode`, so the public URL matches exactly what an actual API
request would send (bool→`true`/`false`, list→comma-joined, `None`
dropped). Added regression tests for both the sync and async clients.

*✍️ Drafted by Claude Code*
V
Vlada Dusek committed
c3ecaa96a43415d70d71c27e7dd177e9992c84e4
Parent: 55e88ef
Committed by GitHub <noreply@github.com> on 7/21/2026, 7:34:35 AM