Skip to content

Commit 23fb3c6

Browse files
authored
Merge pull request #25 from sentdm/release-please--branches--main--changes--next
release: 0.18.1
2 parents ce90ec6 + 78e4ed1 commit 23fb3c6

File tree

7 files changed

+65
-5
lines changed

7 files changed

+65
-5
lines changed

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "0.18.0"
2+
".": "0.18.1"
33
}

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 40
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sent%2Fsent-dm-a9080c0de1cdfd5f5b355e5267265eba790649d0b002cc98347b6b76e3e8f075.yml
3-
openapi_spec_hash: ea95e4b3ebf37227b1b556f208968f62
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sent%2Fsent-dm-2fa77c5563df4353049c27f275600e30487ea3fd617770a059a8e8579bedcedb.yml
3+
openapi_spec_hash: 3ae742e1990418d2c01ecac606187887
44
config_hash: 405ade725d72d542c60de821a127411b

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# Changelog
22

3+
## 0.18.1 (2026-04-10)
4+
5+
Full Changelog: [v0.18.0...v0.18.1](https://github.com/sentdm/sent-dm-python/compare/v0.18.0...v0.18.1)
6+
7+
### Bug Fixes
8+
9+
* **client:** preserve hardcoded query params when merging with user params ([07fbaff](https://github.com/sentdm/sent-dm-python/commit/07fbaffb0e43549b2f6b754cf91051e96f63f575))
10+
311
## 0.18.0 (2026-04-07)
412

513
Full Changelog: [v0.17.0...v0.18.0](https://github.com/sentdm/sent-dm-python/compare/v0.17.0...v0.18.0)

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "sentdm"
3-
version = "0.18.0"
3+
version = "0.18.1"
44
description = "The official Python library for the Sent API"
55
dynamic = ["readme"]
66
license = "Apache-2.0"

src/sent_dm/_base_client.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -558,6 +558,10 @@ def _build_request(
558558
files = cast(HttpxRequestFiles, ForceMultipartDict())
559559

560560
prepared_url = self._prepare_url(options.url)
561+
# preserve hard-coded query params from the url
562+
if params and prepared_url.query:
563+
params = {**dict(prepared_url.params.items()), **params}
564+
prepared_url = prepared_url.copy_with(raw_path=prepared_url.raw_path.split(b"?", 1)[0])
561565
if "_" in prepared_url.host:
562566
# work around https://github.com/encode/httpx/discussions/2880
563567
kwargs["extensions"] = {"sni_hostname": prepared_url.host.replace("_", "-")}

src/sent_dm/_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
22

33
__title__ = "sent_dm"
4-
__version__ = "0.18.0" # x-release-please-version
4+
__version__ = "0.18.1" # x-release-please-version

tests/test_client.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -421,6 +421,30 @@ def test_default_query_option(self) -> None:
421421

422422
client.close()
423423

424+
def test_hardcoded_query_params_in_url(self, client: Sent) -> None:
425+
request = client._build_request(FinalRequestOptions(method="get", url="/foo?beta=true"))
426+
url = httpx.URL(request.url)
427+
assert dict(url.params) == {"beta": "true"}
428+
429+
request = client._build_request(
430+
FinalRequestOptions(
431+
method="get",
432+
url="/foo?beta=true",
433+
params={"limit": "10", "page": "abc"},
434+
)
435+
)
436+
url = httpx.URL(request.url)
437+
assert dict(url.params) == {"beta": "true", "limit": "10", "page": "abc"}
438+
439+
request = client._build_request(
440+
FinalRequestOptions(
441+
method="get",
442+
url="/files/a%2Fb?beta=true",
443+
params={"limit": "10"},
444+
)
445+
)
446+
assert request.url.raw_path == b"/files/a%2Fb?beta=true&limit=10"
447+
424448
def test_request_extra_json(self, client: Sent) -> None:
425449
request = client._build_request(
426450
FinalRequestOptions(
@@ -1310,6 +1334,30 @@ async def test_default_query_option(self) -> None:
13101334

13111335
await client.close()
13121336

1337+
async def test_hardcoded_query_params_in_url(self, async_client: AsyncSent) -> None:
1338+
request = async_client._build_request(FinalRequestOptions(method="get", url="/foo?beta=true"))
1339+
url = httpx.URL(request.url)
1340+
assert dict(url.params) == {"beta": "true"}
1341+
1342+
request = async_client._build_request(
1343+
FinalRequestOptions(
1344+
method="get",
1345+
url="/foo?beta=true",
1346+
params={"limit": "10", "page": "abc"},
1347+
)
1348+
)
1349+
url = httpx.URL(request.url)
1350+
assert dict(url.params) == {"beta": "true", "limit": "10", "page": "abc"}
1351+
1352+
request = async_client._build_request(
1353+
FinalRequestOptions(
1354+
method="get",
1355+
url="/files/a%2Fb?beta=true",
1356+
params={"limit": "10"},
1357+
)
1358+
)
1359+
assert request.url.raw_path == b"/files/a%2Fb?beta=true&limit=10"
1360+
13131361
def test_request_extra_json(self, client: Sent) -> None:
13141362
request = client._build_request(
13151363
FinalRequestOptions(

0 commit comments

Comments
 (0)