gmt-python-sdk 0.31.0__tar.gz → 0.31.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. gmt_python_sdk-0.31.1/.release-please-manifest.json +3 -0
  2. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/CHANGELOG.md +8 -0
  3. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/PKG-INFO +1 -1
  4. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/pyproject.toml +1 -1
  5. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/_base_client.py +4 -0
  6. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/_version.py +1 -1
  7. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/tests/test_client.py +48 -0
  8. gmt_python_sdk-0.31.0/.release-please-manifest.json +0 -3
  9. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/.gitignore +0 -0
  10. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/CONTRIBUTING.md +0 -0
  11. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/LICENSE +0 -0
  12. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/README.md +0 -0
  13. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/SECURITY.md +0 -0
  14. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/api.md +0 -0
  15. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/bin/check-release-environment +0 -0
  16. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/bin/publish-pypi +0 -0
  17. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/examples/.keep +0 -0
  18. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/release-please-config.json +0 -0
  19. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/requirements-dev.lock +0 -0
  20. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/__init__.py +0 -0
  21. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/_client.py +0 -0
  22. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/_compat.py +0 -0
  23. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/_constants.py +0 -0
  24. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/_exceptions.py +0 -0
  25. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/_files.py +0 -0
  26. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/_models.py +0 -0
  27. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/_qs.py +0 -0
  28. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/_resource.py +0 -0
  29. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/_response.py +0 -0
  30. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/_streaming.py +0 -0
  31. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/_types.py +0 -0
  32. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/_utils/__init__.py +0 -0
  33. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/_utils/_compat.py +0 -0
  34. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/_utils/_datetime_parse.py +0 -0
  35. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/_utils/_json.py +0 -0
  36. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/_utils/_logs.py +0 -0
  37. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/_utils/_path.py +0 -0
  38. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/_utils/_proxy.py +0 -0
  39. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/_utils/_reflection.py +0 -0
  40. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/_utils/_resources_proxy.py +0 -0
  41. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/_utils/_streams.py +0 -0
  42. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/_utils/_sync.py +0 -0
  43. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/_utils/_transform.py +0 -0
  44. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/_utils/_typing.py +0 -0
  45. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/_utils/_utils.py +0 -0
  46. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/lib/.keep +0 -0
  47. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/pagination.py +0 -0
  48. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/py.typed +0 -0
  49. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/resources/__init__.py +0 -0
  50. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/resources/accounts.py +0 -0
  51. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/resources/profile/__init__.py +0 -0
  52. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/resources/profile/discount.py +0 -0
  53. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/resources/profile/profile.py +0 -0
  54. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/resources/profile/referral/__init__.py +0 -0
  55. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/resources/profile/referral/referral.py +0 -0
  56. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/resources/profile/referral/transaction.py +0 -0
  57. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/resources/purchases/__init__.py +0 -0
  58. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/resources/purchases/bulk.py +0 -0
  59. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/resources/purchases/purchases.py +0 -0
  60. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/resources/service.py +0 -0
  61. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/resources/webhooks.py +0 -0
  62. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/__init__.py +0 -0
  63. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/account_list_countries_params.py +0 -0
  64. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/account_list_countries_response.py +0 -0
  65. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/account_list_params.py +0 -0
  66. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/account_list_response.py +0 -0
  67. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/account_retrieve_response.py +0 -0
  68. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/profile/__init__.py +0 -0
  69. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/profile/discount_retrieve_response.py +0 -0
  70. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/profile/referral/__init__.py +0 -0
  71. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/profile/referral/transaction_list_params.py +0 -0
  72. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/profile/referral/transaction_list_response.py +0 -0
  73. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/profile/referral_retrieve_response.py +0 -0
  74. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/profile/referral_transfer_balance_params.py +0 -0
  75. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/profile/referral_transfer_balance_response.py +0 -0
  76. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/profile_change_login_params.py +0 -0
  77. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/profile_change_login_response.py +0 -0
  78. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/profile_change_password_params.py +0 -0
  79. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/profile_change_password_response.py +0 -0
  80. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/profile_retrieve_response.py +0 -0
  81. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/profile_unbind_telegram_response.py +0 -0
  82. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/purchase_create_params.py +0 -0
  83. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/purchase_create_response.py +0 -0
  84. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/purchase_list_params.py +0 -0
  85. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/purchase_list_response.py +0 -0
  86. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/purchase_refund_response.py +0 -0
  87. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/purchase_request_verification_code_params.py +0 -0
  88. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/purchase_request_verification_code_response.py +0 -0
  89. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/purchase_retrieve_response.py +0 -0
  90. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/purchases/__init__.py +0 -0
  91. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/purchases/bulk_create_params.py +0 -0
  92. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/purchases/bulk_create_response.py +0 -0
  93. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/purchases/bulk_retrieve_response.py +0 -0
  94. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/service_get_server_time_response.py +0 -0
  95. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/service_health_check_response.py +0 -0
  96. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/webhook_test_params.py +0 -0
  97. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/src/gmt/types/webhook_test_response.py +0 -0
  98. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/tests/__init__.py +0 -0
  99. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/tests/api_resources/__init__.py +0 -0
  100. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/tests/api_resources/profile/__init__.py +0 -0
  101. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/tests/api_resources/profile/referral/__init__.py +0 -0
  102. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/tests/api_resources/profile/referral/test_transaction.py +0 -0
  103. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/tests/api_resources/profile/test_discount.py +0 -0
  104. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/tests/api_resources/profile/test_referral.py +0 -0
  105. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/tests/api_resources/purchases/__init__.py +0 -0
  106. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/tests/api_resources/purchases/test_bulk.py +0 -0
  107. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/tests/api_resources/test_accounts.py +0 -0
  108. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/tests/api_resources/test_profile.py +0 -0
  109. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/tests/api_resources/test_purchases.py +0 -0
  110. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/tests/api_resources/test_service.py +0 -0
  111. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/tests/api_resources/test_webhooks.py +0 -0
  112. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/tests/conftest.py +0 -0
  113. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/tests/sample_file.txt +0 -0
  114. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/tests/test_deepcopy.py +0 -0
  115. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/tests/test_extract_files.py +0 -0
  116. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/tests/test_files.py +0 -0
  117. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/tests/test_models.py +0 -0
  118. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/tests/test_qs.py +0 -0
  119. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/tests/test_required_args.py +0 -0
  120. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/tests/test_response.py +0 -0
  121. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/tests/test_streaming.py +0 -0
  122. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/tests/test_transform.py +0 -0
  123. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/tests/test_utils/test_datetime_parse.py +0 -0
  124. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/tests/test_utils/test_json.py +0 -0
  125. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/tests/test_utils/test_path.py +0 -0
  126. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/tests/test_utils/test_proxy.py +0 -0
  127. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/tests/test_utils/test_typing.py +0 -0
  128. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/tests/utils.py +0 -0
  129. {gmt_python_sdk-0.31.0 → gmt_python_sdk-0.31.1}/uv.lock +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.31.1"
3
+ }
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.31.1 (2026-04-08)
4
+
5
+ Full Changelog: [v0.31.0...v0.31.1](https://github.com/cameo6/gmt-python-sdk/compare/v0.31.0...v0.31.1)
6
+
7
+ ### Bug Fixes
8
+
9
+ * **client:** preserve hardcoded query params when merging with user params ([415dc38](https://github.com/cameo6/gmt-python-sdk/commit/415dc38641adccd20641ed50500cd22457a0b01f))
10
+
3
11
  ## 0.31.0 (2026-04-03)
4
12
 
5
13
  Full Changelog: [v0.30.0...v0.31.0](https://github.com/cameo6/gmt-python-sdk/compare/v0.30.0...v0.31.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: gmt-python-sdk
3
- Version: 0.31.0
3
+ Version: 0.31.1
4
4
  Summary: The official Python library for the gmt API
5
5
  Project-URL: Homepage, https://github.com/cameo6/gmt-python-sdk
6
6
  Project-URL: Repository, https://github.com/cameo6/gmt-python-sdk
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "gmt-python-sdk"
3
- version = "0.31.0"
3
+ version = "0.31.1"
4
4
  description = "The official Python library for the gmt API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -540,6 +540,10 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
540
540
  files = cast(HttpxRequestFiles, ForceMultipartDict())
541
541
 
542
542
  prepared_url = self._prepare_url(options.url)
543
+ # preserve hard-coded query params from the url
544
+ if params and prepared_url.query:
545
+ params = {**dict(prepared_url.params.items()), **params}
546
+ prepared_url = prepared_url.copy_with(raw_path=prepared_url.raw_path.split(b"?", 1)[0])
543
547
  if "_" in prepared_url.host:
544
548
  # work around https://github.com/encode/httpx/discussions/2880
545
549
  kwargs["extensions"] = {"sni_hostname": prepared_url.host.replace("_", "-")}
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "gmt"
4
- __version__ = "0.31.0" # x-release-please-version
4
+ __version__ = "0.31.1" # x-release-please-version
@@ -419,6 +419,30 @@ class TestGmt:
419
419
 
420
420
  client.close()
421
421
 
422
+ def test_hardcoded_query_params_in_url(self, client: Gmt) -> None:
423
+ request = client._build_request(FinalRequestOptions(method="get", url="/foo?beta=true"))
424
+ url = httpx.URL(request.url)
425
+ assert dict(url.params) == {"beta": "true"}
426
+
427
+ request = client._build_request(
428
+ FinalRequestOptions(
429
+ method="get",
430
+ url="/foo?beta=true",
431
+ params={"limit": "10", "page": "abc"},
432
+ )
433
+ )
434
+ url = httpx.URL(request.url)
435
+ assert dict(url.params) == {"beta": "true", "limit": "10", "page": "abc"}
436
+
437
+ request = client._build_request(
438
+ FinalRequestOptions(
439
+ method="get",
440
+ url="/files/a%2Fb?beta=true",
441
+ params={"limit": "10"},
442
+ )
443
+ )
444
+ assert request.url.raw_path == b"/files/a%2Fb?beta=true&limit=10"
445
+
422
446
  def test_request_extra_json(self, client: Gmt) -> None:
423
447
  request = client._build_request(
424
448
  FinalRequestOptions(
@@ -1308,6 +1332,30 @@ class TestAsyncGmt:
1308
1332
 
1309
1333
  await client.close()
1310
1334
 
1335
+ async def test_hardcoded_query_params_in_url(self, async_client: AsyncGmt) -> None:
1336
+ request = async_client._build_request(FinalRequestOptions(method="get", url="/foo?beta=true"))
1337
+ url = httpx.URL(request.url)
1338
+ assert dict(url.params) == {"beta": "true"}
1339
+
1340
+ request = async_client._build_request(
1341
+ FinalRequestOptions(
1342
+ method="get",
1343
+ url="/foo?beta=true",
1344
+ params={"limit": "10", "page": "abc"},
1345
+ )
1346
+ )
1347
+ url = httpx.URL(request.url)
1348
+ assert dict(url.params) == {"beta": "true", "limit": "10", "page": "abc"}
1349
+
1350
+ request = async_client._build_request(
1351
+ FinalRequestOptions(
1352
+ method="get",
1353
+ url="/files/a%2Fb?beta=true",
1354
+ params={"limit": "10"},
1355
+ )
1356
+ )
1357
+ assert request.url.raw_path == b"/files/a%2Fb?beta=true&limit=10"
1358
+
1311
1359
  def test_request_extra_json(self, client: Gmt) -> None:
1312
1360
  request = client._build_request(
1313
1361
  FinalRequestOptions(
@@ -1,3 +0,0 @@
1
- {
2
- ".": "0.31.0"
3
- }
File without changes
File without changes
File without changes