gmt-python-sdk 0.11.0__tar.gz → 0.13.0__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 (94) hide show
  1. gmt_python_sdk-0.13.0/.release-please-manifest.json +3 -0
  2. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/CHANGELOG.md +26 -0
  3. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/PKG-INFO +1 -1
  4. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/pyproject.toml +1 -1
  5. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/_version.py +1 -1
  6. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/resources/accounts.py +28 -28
  7. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/resources/purchases.py +4 -4
  8. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/resources/webhooks.py +9 -9
  9. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/types/account_list_countries_params.py +10 -10
  10. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/types/account_list_params.py +10 -10
  11. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/types/profile_retrieve_response.py +8 -2
  12. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/types/purchase_list_params.py +3 -3
  13. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/types/webhook_test_params.py +3 -3
  14. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/tests/api_resources/test_accounts.py +64 -16
  15. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/tests/api_resources/test_purchases.py +24 -6
  16. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/tests/api_resources/test_webhooks.py +6 -18
  17. gmt_python_sdk-0.11.0/.release-please-manifest.json +0 -3
  18. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/.gitignore +0 -0
  19. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/CONTRIBUTING.md +0 -0
  20. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/LICENSE +0 -0
  21. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/README.md +0 -0
  22. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/SECURITY.md +0 -0
  23. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/api.md +0 -0
  24. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/bin/check-release-environment +0 -0
  25. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/bin/publish-pypi +0 -0
  26. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/examples/.keep +0 -0
  27. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/release-please-config.json +0 -0
  28. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/requirements-dev.lock +0 -0
  29. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/__init__.py +0 -0
  30. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/_base_client.py +0 -0
  31. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/_client.py +0 -0
  32. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/_compat.py +0 -0
  33. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/_constants.py +0 -0
  34. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/_exceptions.py +0 -0
  35. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/_files.py +0 -0
  36. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/_models.py +0 -0
  37. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/_qs.py +0 -0
  38. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/_resource.py +0 -0
  39. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/_response.py +0 -0
  40. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/_streaming.py +0 -0
  41. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/_types.py +0 -0
  42. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/_utils/__init__.py +0 -0
  43. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/_utils/_compat.py +0 -0
  44. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/_utils/_datetime_parse.py +0 -0
  45. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/_utils/_logs.py +0 -0
  46. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/_utils/_proxy.py +0 -0
  47. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/_utils/_reflection.py +0 -0
  48. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/_utils/_resources_proxy.py +0 -0
  49. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/_utils/_streams.py +0 -0
  50. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/_utils/_sync.py +0 -0
  51. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/_utils/_transform.py +0 -0
  52. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/_utils/_typing.py +0 -0
  53. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/_utils/_utils.py +0 -0
  54. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/lib/.keep +0 -0
  55. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/pagination.py +0 -0
  56. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/py.typed +0 -0
  57. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/resources/__init__.py +0 -0
  58. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/resources/profile.py +0 -0
  59. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/resources/service.py +0 -0
  60. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/types/__init__.py +0 -0
  61. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/types/account_list_countries_response.py +0 -0
  62. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/types/account_list_response.py +0 -0
  63. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/types/account_retrieve_response.py +0 -0
  64. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/types/purchase_create_params.py +0 -0
  65. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/types/purchase_create_response.py +0 -0
  66. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/types/purchase_list_response.py +0 -0
  67. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/types/purchase_refund_response.py +0 -0
  68. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/types/purchase_request_verification_code_params.py +0 -0
  69. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/types/purchase_request_verification_code_response.py +0 -0
  70. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/types/purchase_retrieve_response.py +0 -0
  71. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/types/service_get_server_time_response.py +0 -0
  72. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/types/service_health_check_response.py +0 -0
  73. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/src/gmt/types/webhook_test_response.py +0 -0
  74. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/tests/__init__.py +0 -0
  75. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/tests/api_resources/__init__.py +0 -0
  76. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/tests/api_resources/test_profile.py +0 -0
  77. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/tests/api_resources/test_service.py +0 -0
  78. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/tests/conftest.py +0 -0
  79. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/tests/sample_file.txt +0 -0
  80. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/tests/test_client.py +0 -0
  81. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/tests/test_deepcopy.py +0 -0
  82. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/tests/test_extract_files.py +0 -0
  83. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/tests/test_files.py +0 -0
  84. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/tests/test_models.py +0 -0
  85. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/tests/test_qs.py +0 -0
  86. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/tests/test_required_args.py +0 -0
  87. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/tests/test_response.py +0 -0
  88. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/tests/test_streaming.py +0 -0
  89. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/tests/test_transform.py +0 -0
  90. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/tests/test_utils/test_datetime_parse.py +0 -0
  91. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/tests/test_utils/test_proxy.py +0 -0
  92. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/tests/test_utils/test_typing.py +0 -0
  93. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/tests/utils.py +0 -0
  94. {gmt_python_sdk-0.11.0 → gmt_python_sdk-0.13.0}/uv.lock +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.13.0"
3
+ }
@@ -1,5 +1,31 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.13.0 (2026-01-27)
4
+
5
+ Full Changelog: [v0.12.0...v0.13.0](https://github.com/cameo6/gmt-python-sdk/compare/v0.12.0...v0.13.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([f475b49](https://github.com/cameo6/gmt-python-sdk/commit/f475b49d3d4b8c3473b7be6ea2d7e45990c6a718))
10
+
11
+
12
+ ### Chores
13
+
14
+ * **ci:** upgrade `actions/github-script` ([b84addd](https://github.com/cameo6/gmt-python-sdk/commit/b84addd41b71ccef80ac6f3f0d7f2f3e0b027981))
15
+
16
+ ## 0.12.0 (2026-01-23)
17
+
18
+ Full Changelog: [v0.11.0...v0.12.0](https://github.com/cameo6/gmt-python-sdk/compare/v0.11.0...v0.12.0)
19
+
20
+ ### Features
21
+
22
+ * **api:** api update ([20c9e93](https://github.com/cameo6/gmt-python-sdk/commit/20c9e931208e74b61ca4488a1e44da718d84861e))
23
+
24
+
25
+ ### Chores
26
+
27
+ * **internal:** update `actions/checkout` version ([48d8629](https://github.com/cameo6/gmt-python-sdk/commit/48d8629cd4c6af5b7381be23785209366c085e6d))
28
+
3
29
  ## 0.11.0 (2026-01-14)
4
30
 
5
31
  Full Changelog: [v0.10.0...v0.11.0](https://github.com/cameo6/gmt-python-sdk/compare/v0.10.0...v0.11.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: gmt-python-sdk
3
- Version: 0.11.0
3
+ Version: 0.13.0
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.11.0"
3
+ version = "0.13.0"
4
4
  description = "The official Python library for the gmt API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -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.11.0" # x-release-please-version
4
+ __version__ = "0.13.0" # x-release-please-version
@@ -85,10 +85,10 @@ class AccountsResource(SyncAPIResource):
85
85
  def list(
86
86
  self,
87
87
  *,
88
+ page: int,
89
+ page_size: int,
90
+ sort: Literal["price_asc", "price_desc", "name_asc", "name_desc"],
88
91
  country_codes: str | Omit = omit,
89
- page: int | Omit = omit,
90
- page_size: int | Omit = omit,
91
- sort: Literal["price_asc", "price_desc", "name_asc", "name_desc"] | Omit = omit,
92
92
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
93
93
  # The extra values given here take precedence over values defined on the client or passed to this method.
94
94
  extra_headers: Headers | None = None,
@@ -100,15 +100,15 @@ class AccountsResource(SyncAPIResource):
100
100
  Returns paginated list of accounts with filtering and sorting options.
101
101
 
102
102
  Args:
103
- country_codes: Filter by country codes. Comma-separated list of ISO 3166-1 alpha-2 codes (e.g.,
104
- 'US,RU,GB').
105
-
106
103
  page: Page number.
107
104
 
108
105
  page_size: Number of items per page.
109
106
 
110
107
  sort: Sort order for accounts.
111
108
 
109
+ country_codes: Filter by country codes. Comma-separated list of ISO 3166-1 alpha-2 codes (e.g.,
110
+ 'US,RU,GB').
111
+
112
112
  extra_headers: Send extra headers
113
113
 
114
114
  extra_query: Add additional query parameters to the request
@@ -127,10 +127,10 @@ class AccountsResource(SyncAPIResource):
127
127
  timeout=timeout,
128
128
  query=maybe_transform(
129
129
  {
130
- "country_codes": country_codes,
131
130
  "page": page,
132
131
  "page_size": page_size,
133
132
  "sort": sort,
133
+ "country_codes": country_codes,
134
134
  },
135
135
  account_list_params.AccountListParams,
136
136
  ),
@@ -141,10 +141,10 @@ class AccountsResource(SyncAPIResource):
141
141
  def list_countries(
142
142
  self,
143
143
  *,
144
+ page: int,
145
+ page_size: int,
146
+ sort: Literal["price_asc", "price_desc", "name_asc", "name_desc", "popularity_asc", "popularity_desc"],
144
147
  country_codes: str | Omit = omit,
145
- page: int | Omit = omit,
146
- page_size: int | Omit = omit,
147
- sort: Literal["price_asc", "price_desc", "name_asc", "name_desc"] | Omit = omit,
148
148
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
149
149
  # The extra values given here take precedence over values defined on the client or passed to this method.
150
150
  extra_headers: Headers | None = None,
@@ -157,15 +157,15 @@ class AccountsResource(SyncAPIResource):
157
157
  availability. No authentication required.
158
158
 
159
159
  Args:
160
- country_codes: Filter by country codes. Comma-separated list of ISO 3166-1 alpha-2 codes (e.g.,
161
- 'US,RU,GB').
162
-
163
160
  page: Page number.
164
161
 
165
162
  page_size: Number of items per page.
166
163
 
167
164
  sort: Sort order for accounts.
168
165
 
166
+ country_codes: Filter by country codes. Comma-separated list of ISO 3166-1 alpha-2 codes (e.g.,
167
+ 'US,RU,GB').
168
+
169
169
  extra_headers: Send extra headers
170
170
 
171
171
  extra_query: Add additional query parameters to the request
@@ -184,10 +184,10 @@ class AccountsResource(SyncAPIResource):
184
184
  timeout=timeout,
185
185
  query=maybe_transform(
186
186
  {
187
- "country_codes": country_codes,
188
187
  "page": page,
189
188
  "page_size": page_size,
190
189
  "sort": sort,
190
+ "country_codes": country_codes,
191
191
  },
192
192
  account_list_countries_params.AccountListCountriesParams,
193
193
  ),
@@ -255,10 +255,10 @@ class AsyncAccountsResource(AsyncAPIResource):
255
255
  def list(
256
256
  self,
257
257
  *,
258
+ page: int,
259
+ page_size: int,
260
+ sort: Literal["price_asc", "price_desc", "name_asc", "name_desc"],
258
261
  country_codes: str | Omit = omit,
259
- page: int | Omit = omit,
260
- page_size: int | Omit = omit,
261
- sort: Literal["price_asc", "price_desc", "name_asc", "name_desc"] | Omit = omit,
262
262
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
263
263
  # The extra values given here take precedence over values defined on the client or passed to this method.
264
264
  extra_headers: Headers | None = None,
@@ -270,15 +270,15 @@ class AsyncAccountsResource(AsyncAPIResource):
270
270
  Returns paginated list of accounts with filtering and sorting options.
271
271
 
272
272
  Args:
273
- country_codes: Filter by country codes. Comma-separated list of ISO 3166-1 alpha-2 codes (e.g.,
274
- 'US,RU,GB').
275
-
276
273
  page: Page number.
277
274
 
278
275
  page_size: Number of items per page.
279
276
 
280
277
  sort: Sort order for accounts.
281
278
 
279
+ country_codes: Filter by country codes. Comma-separated list of ISO 3166-1 alpha-2 codes (e.g.,
280
+ 'US,RU,GB').
281
+
282
282
  extra_headers: Send extra headers
283
283
 
284
284
  extra_query: Add additional query parameters to the request
@@ -297,10 +297,10 @@ class AsyncAccountsResource(AsyncAPIResource):
297
297
  timeout=timeout,
298
298
  query=maybe_transform(
299
299
  {
300
- "country_codes": country_codes,
301
300
  "page": page,
302
301
  "page_size": page_size,
303
302
  "sort": sort,
303
+ "country_codes": country_codes,
304
304
  },
305
305
  account_list_params.AccountListParams,
306
306
  ),
@@ -311,10 +311,10 @@ class AsyncAccountsResource(AsyncAPIResource):
311
311
  def list_countries(
312
312
  self,
313
313
  *,
314
+ page: int,
315
+ page_size: int,
316
+ sort: Literal["price_asc", "price_desc", "name_asc", "name_desc", "popularity_asc", "popularity_desc"],
314
317
  country_codes: str | Omit = omit,
315
- page: int | Omit = omit,
316
- page_size: int | Omit = omit,
317
- sort: Literal["price_asc", "price_desc", "name_asc", "name_desc"] | Omit = omit,
318
318
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
319
319
  # The extra values given here take precedence over values defined on the client or passed to this method.
320
320
  extra_headers: Headers | None = None,
@@ -327,15 +327,15 @@ class AsyncAccountsResource(AsyncAPIResource):
327
327
  availability. No authentication required.
328
328
 
329
329
  Args:
330
- country_codes: Filter by country codes. Comma-separated list of ISO 3166-1 alpha-2 codes (e.g.,
331
- 'US,RU,GB').
332
-
333
330
  page: Page number.
334
331
 
335
332
  page_size: Number of items per page.
336
333
 
337
334
  sort: Sort order for accounts.
338
335
 
336
+ country_codes: Filter by country codes. Comma-separated list of ISO 3166-1 alpha-2 codes (e.g.,
337
+ 'US,RU,GB').
338
+
339
339
  extra_headers: Send extra headers
340
340
 
341
341
  extra_query: Add additional query parameters to the request
@@ -354,10 +354,10 @@ class AsyncAccountsResource(AsyncAPIResource):
354
354
  timeout=timeout,
355
355
  query=maybe_transform(
356
356
  {
357
- "country_codes": country_codes,
358
357
  "page": page,
359
358
  "page_size": page_size,
360
359
  "sort": sort,
360
+ "country_codes": country_codes,
361
361
  },
362
362
  account_list_countries_params.AccountListCountriesParams,
363
363
  ),
@@ -136,8 +136,8 @@ class PurchasesResource(SyncAPIResource):
136
136
  def list(
137
137
  self,
138
138
  *,
139
- page: int | Omit = omit,
140
- page_size: int | Omit = omit,
139
+ page: int,
140
+ page_size: int,
141
141
  status: Literal["PENDING", "SUCCESS", "ERROR", "REFUND"] | Omit = omit,
142
142
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
143
143
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -421,8 +421,8 @@ class AsyncPurchasesResource(AsyncAPIResource):
421
421
  def list(
422
422
  self,
423
423
  *,
424
- page: int | Omit = omit,
425
- page_size: int | Omit = omit,
424
+ page: int,
425
+ page_size: int,
426
426
  status: Literal["PENDING", "SUCCESS", "ERROR", "REFUND"] | Omit = omit,
427
427
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
428
428
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -7,7 +7,7 @@ from typing_extensions import Literal
7
7
  import httpx
8
8
 
9
9
  from ..types import webhook_test_params
10
- from .._types import Body, Omit, Query, Headers, NotGiven, omit, not_given
10
+ from .._types import Body, Query, Headers, NotGiven, not_given
11
11
  from .._utils import maybe_transform, async_maybe_transform
12
12
  from .._compat import cached_property
13
13
  from .._resource import SyncAPIResource, AsyncAPIResource
@@ -46,8 +46,8 @@ class WebhooksResource(SyncAPIResource):
46
46
  def test(
47
47
  self,
48
48
  *,
49
+ type: Literal["success", "failed"],
49
50
  url: str,
50
- type: Literal["success", "failed"] | Omit = omit,
51
51
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
52
52
  # The extra values given here take precedence over values defined on the client or passed to this method.
53
53
  extra_headers: Headers | None = None,
@@ -73,10 +73,10 @@ class WebhooksResource(SyncAPIResource):
73
73
  **No persistence.** Test webhooks are not stored in delivery history.
74
74
 
75
75
  Args:
76
- url: Webhook endpoint URL. Must be a valid URL.
77
-
78
76
  type: Webhook payload type to send: `success` or `failed`.
79
77
 
78
+ url: Webhook endpoint URL. Must be a valid URL.
79
+
80
80
  extra_headers: Send extra headers
81
81
 
82
82
  extra_query: Add additional query parameters to the request
@@ -89,8 +89,8 @@ class WebhooksResource(SyncAPIResource):
89
89
  "/v1/webhooks/test",
90
90
  body=maybe_transform(
91
91
  {
92
- "url": url,
93
92
  "type": type,
93
+ "url": url,
94
94
  },
95
95
  webhook_test_params.WebhookTestParams,
96
96
  ),
@@ -124,8 +124,8 @@ class AsyncWebhooksResource(AsyncAPIResource):
124
124
  async def test(
125
125
  self,
126
126
  *,
127
+ type: Literal["success", "failed"],
127
128
  url: str,
128
- type: Literal["success", "failed"] | Omit = omit,
129
129
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
130
130
  # The extra values given here take precedence over values defined on the client or passed to this method.
131
131
  extra_headers: Headers | None = None,
@@ -151,10 +151,10 @@ class AsyncWebhooksResource(AsyncAPIResource):
151
151
  **No persistence.** Test webhooks are not stored in delivery history.
152
152
 
153
153
  Args:
154
- url: Webhook endpoint URL. Must be a valid URL.
155
-
156
154
  type: Webhook payload type to send: `success` or `failed`.
157
155
 
156
+ url: Webhook endpoint URL. Must be a valid URL.
157
+
158
158
  extra_headers: Send extra headers
159
159
 
160
160
  extra_query: Add additional query parameters to the request
@@ -167,8 +167,8 @@ class AsyncWebhooksResource(AsyncAPIResource):
167
167
  "/v1/webhooks/test",
168
168
  body=await async_maybe_transform(
169
169
  {
170
- "url": url,
171
170
  "type": type,
171
+ "url": url,
172
172
  },
173
173
  webhook_test_params.WebhookTestParams,
174
174
  ),
@@ -2,23 +2,23 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing_extensions import Literal, TypedDict
5
+ from typing_extensions import Literal, Required, TypedDict
6
6
 
7
7
  __all__ = ["AccountListCountriesParams"]
8
8
 
9
9
 
10
10
  class AccountListCountriesParams(TypedDict, total=False):
11
- country_codes: str
12
- """Filter by country codes.
13
-
14
- Comma-separated list of ISO 3166-1 alpha-2 codes (e.g., 'US,RU,GB').
15
- """
16
-
17
- page: int
11
+ page: Required[int]
18
12
  """Page number."""
19
13
 
20
- page_size: int
14
+ page_size: Required[int]
21
15
  """Number of items per page."""
22
16
 
23
- sort: Literal["price_asc", "price_desc", "name_asc", "name_desc"]
17
+ sort: Required[Literal["price_asc", "price_desc", "name_asc", "name_desc", "popularity_asc", "popularity_desc"]]
24
18
  """Sort order for accounts."""
19
+
20
+ country_codes: str
21
+ """Filter by country codes.
22
+
23
+ Comma-separated list of ISO 3166-1 alpha-2 codes (e.g., 'US,RU,GB').
24
+ """
@@ -2,23 +2,23 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing_extensions import Literal, TypedDict
5
+ from typing_extensions import Literal, Required, TypedDict
6
6
 
7
7
  __all__ = ["AccountListParams"]
8
8
 
9
9
 
10
10
  class AccountListParams(TypedDict, total=False):
11
- country_codes: str
12
- """Filter by country codes.
13
-
14
- Comma-separated list of ISO 3166-1 alpha-2 codes (e.g., 'US,RU,GB').
15
- """
16
-
17
- page: int
11
+ page: Required[int]
18
12
  """Page number."""
19
13
 
20
- page_size: int
14
+ page_size: Required[int]
21
15
  """Number of items per page."""
22
16
 
23
- sort: Literal["price_asc", "price_desc", "name_asc", "name_desc"]
17
+ sort: Required[Literal["price_asc", "price_desc", "name_asc", "name_desc"]]
24
18
  """Sort order for accounts."""
19
+
20
+ country_codes: str
21
+ """Filter by country codes.
22
+
23
+ Comma-separated list of ISO 3166-1 alpha-2 codes (e.g., 'US,RU,GB').
24
+ """
@@ -77,6 +77,9 @@ class Statistics(BaseModel):
77
77
  class ProfileRetrieveResponse(BaseModel):
78
78
  """Successful response."""
79
79
 
80
+ id: str
81
+ """User Database ID"""
82
+
80
83
  balance: Balance
81
84
 
82
85
  created_at: str
@@ -84,12 +87,15 @@ class ProfileRetrieveResponse(BaseModel):
84
87
 
85
88
  discount: Discount
86
89
 
90
+ login: Optional[str] = None
91
+ """Web username"""
92
+
87
93
  referral: Referral
88
94
 
89
95
  statistics: Statistics
90
96
 
91
- telegram_id: str
92
- """User's Telegram ID"""
97
+ telegram_id: Optional[str] = None
98
+ """User's Telegram ID (null for web-only users)"""
93
99
 
94
100
  telegram_username: Optional[str] = None
95
101
  """User's Telegram username"""
@@ -2,16 +2,16 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing_extensions import Literal, TypedDict
5
+ from typing_extensions import Literal, Required, TypedDict
6
6
 
7
7
  __all__ = ["PurchaseListParams"]
8
8
 
9
9
 
10
10
  class PurchaseListParams(TypedDict, total=False):
11
- page: int
11
+ page: Required[int]
12
12
  """Page number."""
13
13
 
14
- page_size: int
14
+ page_size: Required[int]
15
15
  """Number of items per page."""
16
16
 
17
17
  status: Literal["PENDING", "SUCCESS", "ERROR", "REFUND"]
@@ -8,8 +8,8 @@ __all__ = ["WebhookTestParams"]
8
8
 
9
9
 
10
10
  class WebhookTestParams(TypedDict, total=False):
11
+ type: Required[Literal["success", "failed"]]
12
+ """Webhook payload type to send: `success` or `failed`."""
13
+
11
14
  url: Required[str]
12
15
  """Webhook endpoint URL. Must be a valid URL."""
13
-
14
- type: Literal["success", "failed"]
15
- """Webhook payload type to send: `success` or `failed`."""
@@ -67,24 +67,32 @@ class TestAccounts:
67
67
  @pytest.mark.skip(reason="Prism tests are disabled")
68
68
  @parametrize
69
69
  def test_method_list(self, client: Gmt) -> None:
70
- account = client.accounts.list()
70
+ account = client.accounts.list(
71
+ page=1,
72
+ page_size=50,
73
+ sort="price_asc",
74
+ )
71
75
  assert_matches_type(SyncPageNumber[AccountListResponse], account, path=["response"])
72
76
 
73
77
  @pytest.mark.skip(reason="Prism tests are disabled")
74
78
  @parametrize
75
79
  def test_method_list_with_all_params(self, client: Gmt) -> None:
76
80
  account = client.accounts.list(
77
- country_codes="US,RU,GB",
78
81
  page=1,
79
82
  page_size=50,
80
83
  sort="price_asc",
84
+ country_codes="US,RU,GB",
81
85
  )
82
86
  assert_matches_type(SyncPageNumber[AccountListResponse], account, path=["response"])
83
87
 
84
88
  @pytest.mark.skip(reason="Prism tests are disabled")
85
89
  @parametrize
86
90
  def test_raw_response_list(self, client: Gmt) -> None:
87
- response = client.accounts.with_raw_response.list()
91
+ response = client.accounts.with_raw_response.list(
92
+ page=1,
93
+ page_size=50,
94
+ sort="price_asc",
95
+ )
88
96
 
89
97
  assert response.is_closed is True
90
98
  assert response.http_request.headers.get("X-Stainless-Lang") == "python"
@@ -94,7 +102,11 @@ class TestAccounts:
94
102
  @pytest.mark.skip(reason="Prism tests are disabled")
95
103
  @parametrize
96
104
  def test_streaming_response_list(self, client: Gmt) -> None:
97
- with client.accounts.with_streaming_response.list() as response:
105
+ with client.accounts.with_streaming_response.list(
106
+ page=1,
107
+ page_size=50,
108
+ sort="price_asc",
109
+ ) as response:
98
110
  assert not response.is_closed
99
111
  assert response.http_request.headers.get("X-Stainless-Lang") == "python"
100
112
 
@@ -106,24 +118,32 @@ class TestAccounts:
106
118
  @pytest.mark.skip(reason="Prism tests are disabled")
107
119
  @parametrize
108
120
  def test_method_list_countries(self, client: Gmt) -> None:
109
- account = client.accounts.list_countries()
121
+ account = client.accounts.list_countries(
122
+ page=1,
123
+ page_size=50,
124
+ sort="price_asc",
125
+ )
110
126
  assert_matches_type(SyncPageNumber[AccountListCountriesResponse], account, path=["response"])
111
127
 
112
128
  @pytest.mark.skip(reason="Prism tests are disabled")
113
129
  @parametrize
114
130
  def test_method_list_countries_with_all_params(self, client: Gmt) -> None:
115
131
  account = client.accounts.list_countries(
116
- country_codes="US,RU,GB",
117
132
  page=1,
118
133
  page_size=50,
119
134
  sort="price_asc",
135
+ country_codes="US,RU,GB",
120
136
  )
121
137
  assert_matches_type(SyncPageNumber[AccountListCountriesResponse], account, path=["response"])
122
138
 
123
139
  @pytest.mark.skip(reason="Prism tests are disabled")
124
140
  @parametrize
125
141
  def test_raw_response_list_countries(self, client: Gmt) -> None:
126
- response = client.accounts.with_raw_response.list_countries()
142
+ response = client.accounts.with_raw_response.list_countries(
143
+ page=1,
144
+ page_size=50,
145
+ sort="price_asc",
146
+ )
127
147
 
128
148
  assert response.is_closed is True
129
149
  assert response.http_request.headers.get("X-Stainless-Lang") == "python"
@@ -133,7 +153,11 @@ class TestAccounts:
133
153
  @pytest.mark.skip(reason="Prism tests are disabled")
134
154
  @parametrize
135
155
  def test_streaming_response_list_countries(self, client: Gmt) -> None:
136
- with client.accounts.with_streaming_response.list_countries() as response:
156
+ with client.accounts.with_streaming_response.list_countries(
157
+ page=1,
158
+ page_size=50,
159
+ sort="price_asc",
160
+ ) as response:
137
161
  assert not response.is_closed
138
162
  assert response.http_request.headers.get("X-Stainless-Lang") == "python"
139
163
 
@@ -193,24 +217,32 @@ class TestAsyncAccounts:
193
217
  @pytest.mark.skip(reason="Prism tests are disabled")
194
218
  @parametrize
195
219
  async def test_method_list(self, async_client: AsyncGmt) -> None:
196
- account = await async_client.accounts.list()
220
+ account = await async_client.accounts.list(
221
+ page=1,
222
+ page_size=50,
223
+ sort="price_asc",
224
+ )
197
225
  assert_matches_type(AsyncPageNumber[AccountListResponse], account, path=["response"])
198
226
 
199
227
  @pytest.mark.skip(reason="Prism tests are disabled")
200
228
  @parametrize
201
229
  async def test_method_list_with_all_params(self, async_client: AsyncGmt) -> None:
202
230
  account = await async_client.accounts.list(
203
- country_codes="US,RU,GB",
204
231
  page=1,
205
232
  page_size=50,
206
233
  sort="price_asc",
234
+ country_codes="US,RU,GB",
207
235
  )
208
236
  assert_matches_type(AsyncPageNumber[AccountListResponse], account, path=["response"])
209
237
 
210
238
  @pytest.mark.skip(reason="Prism tests are disabled")
211
239
  @parametrize
212
240
  async def test_raw_response_list(self, async_client: AsyncGmt) -> None:
213
- response = await async_client.accounts.with_raw_response.list()
241
+ response = await async_client.accounts.with_raw_response.list(
242
+ page=1,
243
+ page_size=50,
244
+ sort="price_asc",
245
+ )
214
246
 
215
247
  assert response.is_closed is True
216
248
  assert response.http_request.headers.get("X-Stainless-Lang") == "python"
@@ -220,7 +252,11 @@ class TestAsyncAccounts:
220
252
  @pytest.mark.skip(reason="Prism tests are disabled")
221
253
  @parametrize
222
254
  async def test_streaming_response_list(self, async_client: AsyncGmt) -> None:
223
- async with async_client.accounts.with_streaming_response.list() as response:
255
+ async with async_client.accounts.with_streaming_response.list(
256
+ page=1,
257
+ page_size=50,
258
+ sort="price_asc",
259
+ ) as response:
224
260
  assert not response.is_closed
225
261
  assert response.http_request.headers.get("X-Stainless-Lang") == "python"
226
262
 
@@ -232,24 +268,32 @@ class TestAsyncAccounts:
232
268
  @pytest.mark.skip(reason="Prism tests are disabled")
233
269
  @parametrize
234
270
  async def test_method_list_countries(self, async_client: AsyncGmt) -> None:
235
- account = await async_client.accounts.list_countries()
271
+ account = await async_client.accounts.list_countries(
272
+ page=1,
273
+ page_size=50,
274
+ sort="price_asc",
275
+ )
236
276
  assert_matches_type(AsyncPageNumber[AccountListCountriesResponse], account, path=["response"])
237
277
 
238
278
  @pytest.mark.skip(reason="Prism tests are disabled")
239
279
  @parametrize
240
280
  async def test_method_list_countries_with_all_params(self, async_client: AsyncGmt) -> None:
241
281
  account = await async_client.accounts.list_countries(
242
- country_codes="US,RU,GB",
243
282
  page=1,
244
283
  page_size=50,
245
284
  sort="price_asc",
285
+ country_codes="US,RU,GB",
246
286
  )
247
287
  assert_matches_type(AsyncPageNumber[AccountListCountriesResponse], account, path=["response"])
248
288
 
249
289
  @pytest.mark.skip(reason="Prism tests are disabled")
250
290
  @parametrize
251
291
  async def test_raw_response_list_countries(self, async_client: AsyncGmt) -> None:
252
- response = await async_client.accounts.with_raw_response.list_countries()
292
+ response = await async_client.accounts.with_raw_response.list_countries(
293
+ page=1,
294
+ page_size=50,
295
+ sort="price_asc",
296
+ )
253
297
 
254
298
  assert response.is_closed is True
255
299
  assert response.http_request.headers.get("X-Stainless-Lang") == "python"
@@ -259,7 +303,11 @@ class TestAsyncAccounts:
259
303
  @pytest.mark.skip(reason="Prism tests are disabled")
260
304
  @parametrize
261
305
  async def test_streaming_response_list_countries(self, async_client: AsyncGmt) -> None:
262
- async with async_client.accounts.with_streaming_response.list_countries() as response:
306
+ async with async_client.accounts.with_streaming_response.list_countries(
307
+ page=1,
308
+ page_size=50,
309
+ sort="price_asc",
310
+ ) as response:
263
311
  assert not response.is_closed
264
312
  assert response.http_request.headers.get("X-Stainless-Lang") == "python"
265
313
 
@@ -95,7 +95,10 @@ class TestPurchases:
95
95
  @pytest.mark.skip(reason="Prism tests are disabled")
96
96
  @parametrize
97
97
  def test_method_list(self, client: Gmt) -> None:
98
- purchase = client.purchases.list()
98
+ purchase = client.purchases.list(
99
+ page=1,
100
+ page_size=50,
101
+ )
99
102
  assert_matches_type(SyncPageNumber[PurchaseListResponse], purchase, path=["response"])
100
103
 
101
104
  @pytest.mark.skip(reason="Prism tests are disabled")
@@ -111,7 +114,10 @@ class TestPurchases:
111
114
  @pytest.mark.skip(reason="Prism tests are disabled")
112
115
  @parametrize
113
116
  def test_raw_response_list(self, client: Gmt) -> None:
114
- response = client.purchases.with_raw_response.list()
117
+ response = client.purchases.with_raw_response.list(
118
+ page=1,
119
+ page_size=50,
120
+ )
115
121
 
116
122
  assert response.is_closed is True
117
123
  assert response.http_request.headers.get("X-Stainless-Lang") == "python"
@@ -121,7 +127,10 @@ class TestPurchases:
121
127
  @pytest.mark.skip(reason="Prism tests are disabled")
122
128
  @parametrize
123
129
  def test_streaming_response_list(self, client: Gmt) -> None:
124
- with client.purchases.with_streaming_response.list() as response:
130
+ with client.purchases.with_streaming_response.list(
131
+ page=1,
132
+ page_size=50,
133
+ ) as response:
125
134
  assert not response.is_closed
126
135
  assert response.http_request.headers.get("X-Stainless-Lang") == "python"
127
136
 
@@ -284,7 +293,10 @@ class TestAsyncPurchases:
284
293
  @pytest.mark.skip(reason="Prism tests are disabled")
285
294
  @parametrize
286
295
  async def test_method_list(self, async_client: AsyncGmt) -> None:
287
- purchase = await async_client.purchases.list()
296
+ purchase = await async_client.purchases.list(
297
+ page=1,
298
+ page_size=50,
299
+ )
288
300
  assert_matches_type(AsyncPageNumber[PurchaseListResponse], purchase, path=["response"])
289
301
 
290
302
  @pytest.mark.skip(reason="Prism tests are disabled")
@@ -300,7 +312,10 @@ class TestAsyncPurchases:
300
312
  @pytest.mark.skip(reason="Prism tests are disabled")
301
313
  @parametrize
302
314
  async def test_raw_response_list(self, async_client: AsyncGmt) -> None:
303
- response = await async_client.purchases.with_raw_response.list()
315
+ response = await async_client.purchases.with_raw_response.list(
316
+ page=1,
317
+ page_size=50,
318
+ )
304
319
 
305
320
  assert response.is_closed is True
306
321
  assert response.http_request.headers.get("X-Stainless-Lang") == "python"
@@ -310,7 +325,10 @@ class TestAsyncPurchases:
310
325
  @pytest.mark.skip(reason="Prism tests are disabled")
311
326
  @parametrize
312
327
  async def test_streaming_response_list(self, async_client: AsyncGmt) -> None:
313
- async with async_client.purchases.with_streaming_response.list() as response:
328
+ async with async_client.purchases.with_streaming_response.list(
329
+ page=1,
330
+ page_size=50,
331
+ ) as response:
314
332
  assert not response.is_closed
315
333
  assert response.http_request.headers.get("X-Stainless-Lang") == "python"
316
334
 
@@ -21,16 +21,8 @@ class TestWebhooks:
21
21
  @parametrize
22
22
  def test_method_test(self, client: Gmt) -> None:
23
23
  webhook = client.webhooks.test(
24
- url="https://example.com/webhooks/handler",
25
- )
26
- assert_matches_type(WebhookTestResponse, webhook, path=["response"])
27
-
28
- @pytest.mark.skip(reason="Prism tests are disabled")
29
- @parametrize
30
- def test_method_test_with_all_params(self, client: Gmt) -> None:
31
- webhook = client.webhooks.test(
32
- url="https://example.com/webhooks/handler",
33
24
  type="success",
25
+ url="https://example.com/webhooks/handler",
34
26
  )
35
27
  assert_matches_type(WebhookTestResponse, webhook, path=["response"])
36
28
 
@@ -38,6 +30,7 @@ class TestWebhooks:
38
30
  @parametrize
39
31
  def test_raw_response_test(self, client: Gmt) -> None:
40
32
  response = client.webhooks.with_raw_response.test(
33
+ type="success",
41
34
  url="https://example.com/webhooks/handler",
42
35
  )
43
36
 
@@ -50,6 +43,7 @@ class TestWebhooks:
50
43
  @parametrize
51
44
  def test_streaming_response_test(self, client: Gmt) -> None:
52
45
  with client.webhooks.with_streaming_response.test(
46
+ type="success",
53
47
  url="https://example.com/webhooks/handler",
54
48
  ) as response:
55
49
  assert not response.is_closed
@@ -70,16 +64,8 @@ class TestAsyncWebhooks:
70
64
  @parametrize
71
65
  async def test_method_test(self, async_client: AsyncGmt) -> None:
72
66
  webhook = await async_client.webhooks.test(
73
- url="https://example.com/webhooks/handler",
74
- )
75
- assert_matches_type(WebhookTestResponse, webhook, path=["response"])
76
-
77
- @pytest.mark.skip(reason="Prism tests are disabled")
78
- @parametrize
79
- async def test_method_test_with_all_params(self, async_client: AsyncGmt) -> None:
80
- webhook = await async_client.webhooks.test(
81
- url="https://example.com/webhooks/handler",
82
67
  type="success",
68
+ url="https://example.com/webhooks/handler",
83
69
  )
84
70
  assert_matches_type(WebhookTestResponse, webhook, path=["response"])
85
71
 
@@ -87,6 +73,7 @@ class TestAsyncWebhooks:
87
73
  @parametrize
88
74
  async def test_raw_response_test(self, async_client: AsyncGmt) -> None:
89
75
  response = await async_client.webhooks.with_raw_response.test(
76
+ type="success",
90
77
  url="https://example.com/webhooks/handler",
91
78
  )
92
79
 
@@ -99,6 +86,7 @@ class TestAsyncWebhooks:
99
86
  @parametrize
100
87
  async def test_streaming_response_test(self, async_client: AsyncGmt) -> None:
101
88
  async with async_client.webhooks.with_streaming_response.test(
89
+ type="success",
102
90
  url="https://example.com/webhooks/handler",
103
91
  ) as response:
104
92
  assert not response.is_closed
@@ -1,3 +0,0 @@
1
- {
2
- ".": "0.11.0"
3
- }
File without changes
File without changes
File without changes