gmt-python-sdk 0.38.0__tar.gz → 0.40.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 (154) hide show
  1. gmt_python_sdk-0.40.0/.release-please-manifest.json +3 -0
  2. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/CHANGELOG.md +21 -0
  3. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/PKG-INFO +1 -1
  4. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/api.md +2 -0
  5. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/pyproject.toml +2 -2
  6. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/_version.py +1 -1
  7. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/resources/profile/profile.py +86 -1
  8. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/__init__.py +2 -0
  9. gmt_python_sdk-0.40.0/src/gmt/types/profile_change_language_params.py +12 -0
  10. gmt_python_sdk-0.40.0/src/gmt/types/profile_change_language_response.py +10 -0
  11. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/profile_retrieve_response.py +2 -2
  12. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/api_resources/test_profile.py +69 -0
  13. gmt_python_sdk-0.38.0/.release-please-manifest.json +0 -3
  14. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/.gitignore +0 -0
  15. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/CONTRIBUTING.md +0 -0
  16. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/LICENSE +0 -0
  17. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/README.md +0 -0
  18. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/SECURITY.md +0 -0
  19. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/bin/check-release-environment +0 -0
  20. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/bin/publish-pypi +0 -0
  21. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/examples/.keep +0 -0
  22. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/release-please-config.json +0 -0
  23. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/requirements-dev.lock +0 -0
  24. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/__init__.py +0 -0
  25. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/_base_client.py +0 -0
  26. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/_client.py +0 -0
  27. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/_compat.py +0 -0
  28. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/_constants.py +0 -0
  29. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/_exceptions.py +0 -0
  30. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/_files.py +0 -0
  31. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/_models.py +0 -0
  32. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/_qs.py +0 -0
  33. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/_resource.py +0 -0
  34. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/_response.py +0 -0
  35. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/_streaming.py +0 -0
  36. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/_types.py +0 -0
  37. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/_utils/__init__.py +0 -0
  38. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/_utils/_compat.py +0 -0
  39. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/_utils/_datetime_parse.py +0 -0
  40. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/_utils/_json.py +0 -0
  41. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/_utils/_logs.py +0 -0
  42. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/_utils/_path.py +0 -0
  43. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/_utils/_proxy.py +0 -0
  44. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/_utils/_reflection.py +0 -0
  45. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/_utils/_resources_proxy.py +0 -0
  46. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/_utils/_streams.py +0 -0
  47. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/_utils/_sync.py +0 -0
  48. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/_utils/_transform.py +0 -0
  49. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/_utils/_typing.py +0 -0
  50. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/_utils/_utils.py +0 -0
  51. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/lib/.keep +0 -0
  52. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/pagination.py +0 -0
  53. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/py.typed +0 -0
  54. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/resources/__init__.py +0 -0
  55. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/resources/accounts.py +0 -0
  56. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/resources/profile/__init__.py +0 -0
  57. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/resources/profile/discount.py +0 -0
  58. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/resources/profile/referral/__init__.py +0 -0
  59. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/resources/profile/referral/referral.py +0 -0
  60. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/resources/profile/referral/transaction.py +0 -0
  61. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/resources/purchases/__init__.py +0 -0
  62. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/resources/purchases/bulk.py +0 -0
  63. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/resources/purchases/purchases.py +0 -0
  64. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/resources/purchases_by_hash.py +0 -0
  65. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/resources/service.py +0 -0
  66. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/resources/telegram/__init__.py +0 -0
  67. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/resources/telegram/purchases.py +0 -0
  68. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/resources/telegram/telegram.py +0 -0
  69. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/resources/webhooks.py +0 -0
  70. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/account_list_countries_params.py +0 -0
  71. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/account_list_countries_response.py +0 -0
  72. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/account_list_params.py +0 -0
  73. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/account_list_response.py +0 -0
  74. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/account_retrieve_response.py +0 -0
  75. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/profile/__init__.py +0 -0
  76. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/profile/discount_retrieve_response.py +0 -0
  77. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/profile/referral/__init__.py +0 -0
  78. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/profile/referral/transaction_list_params.py +0 -0
  79. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/profile/referral/transaction_list_response.py +0 -0
  80. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/profile/referral_retrieve_response.py +0 -0
  81. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/profile/referral_transfer_balance_params.py +0 -0
  82. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/profile/referral_transfer_balance_response.py +0 -0
  83. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/profile_change_login_params.py +0 -0
  84. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/profile_change_login_response.py +0 -0
  85. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/profile_change_password_params.py +0 -0
  86. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/profile_change_password_response.py +0 -0
  87. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/profile_unbind_telegram_response.py +0 -0
  88. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/purchase_create_params.py +0 -0
  89. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/purchase_create_response.py +0 -0
  90. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/purchase_list_params.py +0 -0
  91. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/purchase_list_response.py +0 -0
  92. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/purchase_refund_response.py +0 -0
  93. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/purchase_request_verification_code_params.py +0 -0
  94. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/purchase_request_verification_code_response.py +0 -0
  95. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/purchase_retrieve_response.py +0 -0
  96. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/purchases/__init__.py +0 -0
  97. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/purchases/bulk_create_params.py +0 -0
  98. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/purchases/bulk_create_response.py +0 -0
  99. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/purchases/bulk_retrieve_response.py +0 -0
  100. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/purchases_by_hash_request_verification_code_params.py +0 -0
  101. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/purchases_by_hash_request_verification_code_response.py +0 -0
  102. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/purchases_by_hash_retrieve_response.py +0 -0
  103. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/service_get_server_time_response.py +0 -0
  104. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/service_health_check_response.py +0 -0
  105. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/telegram/__init__.py +0 -0
  106. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/telegram/purchase_create_premium_params.py +0 -0
  107. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/telegram/purchase_create_premium_response.py +0 -0
  108. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/telegram/purchase_create_stars_params.py +0 -0
  109. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/telegram/purchase_create_stars_response.py +0 -0
  110. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/telegram/purchase_list_premium_params.py +0 -0
  111. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/telegram/purchase_list_premium_response.py +0 -0
  112. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/telegram/purchase_list_stars_params.py +0 -0
  113. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/telegram/purchase_list_stars_response.py +0 -0
  114. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/telegram_get_premium_price_params.py +0 -0
  115. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/telegram_get_premium_price_response.py +0 -0
  116. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/telegram_get_stars_price_params.py +0 -0
  117. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/telegram_get_stars_price_response.py +0 -0
  118. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/webhook_test_params.py +0 -0
  119. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/src/gmt/types/webhook_test_response.py +0 -0
  120. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/__init__.py +0 -0
  121. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/api_resources/__init__.py +0 -0
  122. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/api_resources/profile/__init__.py +0 -0
  123. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/api_resources/profile/referral/__init__.py +0 -0
  124. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/api_resources/profile/referral/test_transaction.py +0 -0
  125. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/api_resources/profile/test_discount.py +0 -0
  126. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/api_resources/profile/test_referral.py +0 -0
  127. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/api_resources/purchases/__init__.py +0 -0
  128. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/api_resources/purchases/test_bulk.py +0 -0
  129. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/api_resources/telegram/__init__.py +0 -0
  130. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/api_resources/telegram/test_purchases.py +0 -0
  131. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/api_resources/test_accounts.py +0 -0
  132. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/api_resources/test_purchases.py +0 -0
  133. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/api_resources/test_purchases_by_hash.py +0 -0
  134. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/api_resources/test_service.py +0 -0
  135. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/api_resources/test_telegram.py +0 -0
  136. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/api_resources/test_webhooks.py +0 -0
  137. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/conftest.py +0 -0
  138. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/sample_file.txt +0 -0
  139. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/test_client.py +0 -0
  140. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/test_extract_files.py +0 -0
  141. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/test_files.py +0 -0
  142. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/test_models.py +0 -0
  143. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/test_qs.py +0 -0
  144. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/test_required_args.py +0 -0
  145. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/test_response.py +0 -0
  146. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/test_streaming.py +0 -0
  147. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/test_transform.py +0 -0
  148. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/test_utils/test_datetime_parse.py +0 -0
  149. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/test_utils/test_json.py +0 -0
  150. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/test_utils/test_path.py +0 -0
  151. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/test_utils/test_proxy.py +0 -0
  152. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/test_utils/test_typing.py +0 -0
  153. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/tests/utils.py +0 -0
  154. {gmt_python_sdk-0.38.0 → gmt_python_sdk-0.40.0}/uv.lock +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.40.0"
3
+ }
@@ -1,5 +1,26 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.40.0 (2026-05-08)
4
+
5
+ Full Changelog: [v0.39.0...v0.40.0](https://github.com/cameo6/gmt-python-sdk/compare/v0.39.0...v0.40.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([ba9ed1f](https://github.com/cameo6/gmt-python-sdk/commit/ba9ed1ff35974616e841700beb905ba8316334be))
10
+
11
+ ## 0.39.0 (2026-05-07)
12
+
13
+ Full Changelog: [v0.38.0...v0.39.0](https://github.com/cameo6/gmt-python-sdk/compare/v0.38.0...v0.39.0)
14
+
15
+ ### Features
16
+
17
+ * **api:** manual updates ([1590c15](https://github.com/cameo6/gmt-python-sdk/commit/1590c153c5e65e5cb3890519976b77c57d13b399))
18
+
19
+
20
+ ### Chores
21
+
22
+ * **internal:** reformat pyproject.toml ([8728a09](https://github.com/cameo6/gmt-python-sdk/commit/8728a0977b8b9784936357d2c3946f0843ffe0ab))
23
+
3
24
  ## 0.38.0 (2026-04-29)
4
25
 
5
26
  Full Changelog: [v0.37.0...v0.38.0](https://github.com/cameo6/gmt-python-sdk/compare/v0.37.0...v0.38.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: gmt-python-sdk
3
- Version: 0.38.0
3
+ Version: 0.40.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
@@ -32,6 +32,7 @@ Types:
32
32
  ```python
33
33
  from gmt.types import (
34
34
  ProfileRetrieveResponse,
35
+ ProfileChangeLanguageResponse,
35
36
  ProfileChangeLoginResponse,
36
37
  ProfileChangePasswordResponse,
37
38
  ProfileUnbindTelegramResponse,
@@ -41,6 +42,7 @@ from gmt.types import (
41
42
  Methods:
42
43
 
43
44
  - <code title="get /v1/profile/">client.profile.<a href="./src/gmt/resources/profile/profile.py">retrieve</a>() -> <a href="./src/gmt/types/profile_retrieve_response.py">ProfileRetrieveResponse</a></code>
45
+ - <code title="patch /v1/profile/language">client.profile.<a href="./src/gmt/resources/profile/profile.py">change_language</a>(\*\*<a href="src/gmt/types/profile_change_language_params.py">params</a>) -> <a href="./src/gmt/types/profile_change_language_response.py">ProfileChangeLanguageResponse</a></code>
44
46
  - <code title="patch /v1/profile/change-login">client.profile.<a href="./src/gmt/resources/profile/profile.py">change_login</a>(\*\*<a href="src/gmt/types/profile_change_login_params.py">params</a>) -> <a href="./src/gmt/types/profile_change_login_response.py">ProfileChangeLoginResponse</a></code>
45
47
  - <code title="patch /v1/profile/change-password">client.profile.<a href="./src/gmt/resources/profile/profile.py">change_password</a>(\*\*<a href="src/gmt/types/profile_change_password_params.py">params</a>) -> <a href="./src/gmt/types/profile_change_password_response.py">ProfileChangePasswordResponse</a></code>
46
48
  - <code title="patch /v1/profile/unbind-telegram">client.profile.<a href="./src/gmt/resources/profile/profile.py">unbind_telegram</a>() -> <a href="./src/gmt/types/profile_unbind_telegram_response.py">ProfileUnbindTelegramResponse</a></code>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "gmt-python-sdk"
3
- version = "0.38.0"
3
+ version = "0.40.0"
4
4
  description = "The official Python library for the gmt API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -154,7 +154,7 @@ show_error_codes = true
154
154
  #
155
155
  # We also exclude our `tests` as mypy doesn't always infer
156
156
  # types correctly and Pyright will still catch any type errors.
157
- exclude = ['src/gmt/_files.py', '_dev/.*.py', 'tests/.*']
157
+ exclude = ["src/gmt/_files.py", "_dev/.*.py", "tests/.*"]
158
158
 
159
159
  strict_equality = true
160
160
  implicit_reexport = true
@@ -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.38.0" # x-release-please-version
4
+ __version__ = "0.40.0" # x-release-please-version
@@ -2,9 +2,11 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ from typing_extensions import Literal
6
+
5
7
  import httpx
6
8
 
7
- from ...types import profile_change_login_params, profile_change_password_params
9
+ from ...types import profile_change_login_params, profile_change_language_params, profile_change_password_params
8
10
  from ..._types import Body, Query, Headers, NotGiven, not_given
9
11
  from ..._utils import maybe_transform, async_maybe_transform
10
12
  from .discount import (
@@ -34,6 +36,7 @@ from .referral.referral import (
34
36
  )
35
37
  from ...types.profile_retrieve_response import ProfileRetrieveResponse
36
38
  from ...types.profile_change_login_response import ProfileChangeLoginResponse
39
+ from ...types.profile_change_language_response import ProfileChangeLanguageResponse
37
40
  from ...types.profile_change_password_response import ProfileChangePasswordResponse
38
41
  from ...types.profile_unbind_telegram_response import ProfileUnbindTelegramResponse
39
42
 
@@ -94,6 +97,40 @@ class ProfileResource(SyncAPIResource):
94
97
  cast_to=ProfileRetrieveResponse,
95
98
  )
96
99
 
100
+ def change_language(
101
+ self,
102
+ *,
103
+ language: Literal["ru", "uk", "en", "es", "zh"],
104
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
105
+ # The extra values given here take precedence over values defined on the client or passed to this method.
106
+ extra_headers: Headers | None = None,
107
+ extra_query: Query | None = None,
108
+ extra_body: Body | None = None,
109
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
110
+ ) -> ProfileChangeLanguageResponse:
111
+ """
112
+ Change the preferred user interface language on the website and in the bot.
113
+
114
+ Args:
115
+ language: Preferred user interface language
116
+
117
+ extra_headers: Send extra headers
118
+
119
+ extra_query: Add additional query parameters to the request
120
+
121
+ extra_body: Add additional JSON properties to the request
122
+
123
+ timeout: Override the client-level default timeout for this request, in seconds
124
+ """
125
+ return self._patch(
126
+ "/v1/profile/language",
127
+ body=maybe_transform({"language": language}, profile_change_language_params.ProfileChangeLanguageParams),
128
+ options=make_request_options(
129
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
130
+ ),
131
+ cast_to=ProfileChangeLanguageResponse,
132
+ )
133
+
97
134
  def change_login(
98
135
  self,
99
136
  *,
@@ -242,6 +279,42 @@ class AsyncProfileResource(AsyncAPIResource):
242
279
  cast_to=ProfileRetrieveResponse,
243
280
  )
244
281
 
282
+ async def change_language(
283
+ self,
284
+ *,
285
+ language: Literal["ru", "uk", "en", "es", "zh"],
286
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
287
+ # The extra values given here take precedence over values defined on the client or passed to this method.
288
+ extra_headers: Headers | None = None,
289
+ extra_query: Query | None = None,
290
+ extra_body: Body | None = None,
291
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
292
+ ) -> ProfileChangeLanguageResponse:
293
+ """
294
+ Change the preferred user interface language on the website and in the bot.
295
+
296
+ Args:
297
+ language: Preferred user interface language
298
+
299
+ extra_headers: Send extra headers
300
+
301
+ extra_query: Add additional query parameters to the request
302
+
303
+ extra_body: Add additional JSON properties to the request
304
+
305
+ timeout: Override the client-level default timeout for this request, in seconds
306
+ """
307
+ return await self._patch(
308
+ "/v1/profile/language",
309
+ body=await async_maybe_transform(
310
+ {"language": language}, profile_change_language_params.ProfileChangeLanguageParams
311
+ ),
312
+ options=make_request_options(
313
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
314
+ ),
315
+ cast_to=ProfileChangeLanguageResponse,
316
+ )
317
+
245
318
  async def change_login(
246
319
  self,
247
320
  *,
@@ -345,6 +418,9 @@ class ProfileResourceWithRawResponse:
345
418
  self.retrieve = to_raw_response_wrapper(
346
419
  profile.retrieve,
347
420
  )
421
+ self.change_language = to_raw_response_wrapper(
422
+ profile.change_language,
423
+ )
348
424
  self.change_login = to_raw_response_wrapper(
349
425
  profile.change_login,
350
426
  )
@@ -373,6 +449,9 @@ class AsyncProfileResourceWithRawResponse:
373
449
  self.retrieve = async_to_raw_response_wrapper(
374
450
  profile.retrieve,
375
451
  )
452
+ self.change_language = async_to_raw_response_wrapper(
453
+ profile.change_language,
454
+ )
376
455
  self.change_login = async_to_raw_response_wrapper(
377
456
  profile.change_login,
378
457
  )
@@ -401,6 +480,9 @@ class ProfileResourceWithStreamingResponse:
401
480
  self.retrieve = to_streamed_response_wrapper(
402
481
  profile.retrieve,
403
482
  )
483
+ self.change_language = to_streamed_response_wrapper(
484
+ profile.change_language,
485
+ )
404
486
  self.change_login = to_streamed_response_wrapper(
405
487
  profile.change_login,
406
488
  )
@@ -429,6 +511,9 @@ class AsyncProfileResourceWithStreamingResponse:
429
511
  self.retrieve = async_to_streamed_response_wrapper(
430
512
  profile.retrieve,
431
513
  )
514
+ self.change_language = async_to_streamed_response_wrapper(
515
+ profile.change_language,
516
+ )
432
517
  self.change_login = async_to_streamed_response_wrapper(
433
518
  profile.change_login,
434
519
  )
@@ -18,9 +18,11 @@ from .profile_change_login_params import ProfileChangeLoginParams as ProfileChan
18
18
  from .account_list_countries_params import AccountListCountriesParams as AccountListCountriesParams
19
19
  from .profile_change_login_response import ProfileChangeLoginResponse as ProfileChangeLoginResponse
20
20
  from .service_health_check_response import ServiceHealthCheckResponse as ServiceHealthCheckResponse
21
+ from .profile_change_language_params import ProfileChangeLanguageParams as ProfileChangeLanguageParams
21
22
  from .profile_change_password_params import ProfileChangePasswordParams as ProfileChangePasswordParams
22
23
  from .account_list_countries_response import AccountListCountriesResponse as AccountListCountriesResponse
23
24
  from .telegram_get_stars_price_params import TelegramGetStarsPriceParams as TelegramGetStarsPriceParams
25
+ from .profile_change_language_response import ProfileChangeLanguageResponse as ProfileChangeLanguageResponse
24
26
  from .profile_change_password_response import ProfileChangePasswordResponse as ProfileChangePasswordResponse
25
27
  from .profile_unbind_telegram_response import ProfileUnbindTelegramResponse as ProfileUnbindTelegramResponse
26
28
  from .service_get_server_time_response import ServiceGetServerTimeResponse as ServiceGetServerTimeResponse
@@ -0,0 +1,12 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Literal, Required, TypedDict
6
+
7
+ __all__ = ["ProfileChangeLanguageParams"]
8
+
9
+
10
+ class ProfileChangeLanguageParams(TypedDict, total=False):
11
+ language: Required[Literal["ru", "uk", "en", "es", "zh"]]
12
+ """Preferred user interface language"""
@@ -0,0 +1,10 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from .._models import BaseModel
4
+
5
+ __all__ = ["ProfileChangeLanguageResponse"]
6
+
7
+
8
+ class ProfileChangeLanguageResponse(BaseModel):
9
+ success: bool
10
+ """Indicates if the operation was successful"""
@@ -40,8 +40,8 @@ class ProfileRetrieveResponse(BaseModel):
40
40
 
41
41
  discount: Discount
42
42
 
43
- language: str
44
- """Preferred user interface language"""
43
+ language: Optional[Literal["ru", "uk", "en", "es", "zh"]] = None
44
+ """Preferred user interface language; null until the user selects one"""
45
45
 
46
46
  login: Optional[str] = None
47
47
  """Web username"""
@@ -11,6 +11,7 @@ from gmt import Gmt, AsyncGmt
11
11
  from gmt.types import (
12
12
  ProfileRetrieveResponse,
13
13
  ProfileChangeLoginResponse,
14
+ ProfileChangeLanguageResponse,
14
15
  ProfileChangePasswordResponse,
15
16
  ProfileUnbindTelegramResponse,
16
17
  )
@@ -50,6 +51,40 @@ class TestProfile:
50
51
 
51
52
  assert cast(Any, response.is_closed) is True
52
53
 
54
+ @pytest.mark.skip(reason="Mock server tests are disabled")
55
+ @parametrize
56
+ def test_method_change_language(self, client: Gmt) -> None:
57
+ profile = client.profile.change_language(
58
+ language="en",
59
+ )
60
+ assert_matches_type(ProfileChangeLanguageResponse, profile, path=["response"])
61
+
62
+ @pytest.mark.skip(reason="Mock server tests are disabled")
63
+ @parametrize
64
+ def test_raw_response_change_language(self, client: Gmt) -> None:
65
+ response = client.profile.with_raw_response.change_language(
66
+ language="en",
67
+ )
68
+
69
+ assert response.is_closed is True
70
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
71
+ profile = response.parse()
72
+ assert_matches_type(ProfileChangeLanguageResponse, profile, path=["response"])
73
+
74
+ @pytest.mark.skip(reason="Mock server tests are disabled")
75
+ @parametrize
76
+ def test_streaming_response_change_language(self, client: Gmt) -> None:
77
+ with client.profile.with_streaming_response.change_language(
78
+ language="en",
79
+ ) as response:
80
+ assert not response.is_closed
81
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
82
+
83
+ profile = response.parse()
84
+ assert_matches_type(ProfileChangeLanguageResponse, profile, path=["response"])
85
+
86
+ assert cast(Any, response.is_closed) is True
87
+
53
88
  @pytest.mark.skip(reason="Mock server tests are disabled")
54
89
  @parametrize
55
90
  def test_method_change_login(self, client: Gmt) -> None:
@@ -180,6 +215,40 @@ class TestAsyncProfile:
180
215
 
181
216
  assert cast(Any, response.is_closed) is True
182
217
 
218
+ @pytest.mark.skip(reason="Mock server tests are disabled")
219
+ @parametrize
220
+ async def test_method_change_language(self, async_client: AsyncGmt) -> None:
221
+ profile = await async_client.profile.change_language(
222
+ language="en",
223
+ )
224
+ assert_matches_type(ProfileChangeLanguageResponse, profile, path=["response"])
225
+
226
+ @pytest.mark.skip(reason="Mock server tests are disabled")
227
+ @parametrize
228
+ async def test_raw_response_change_language(self, async_client: AsyncGmt) -> None:
229
+ response = await async_client.profile.with_raw_response.change_language(
230
+ language="en",
231
+ )
232
+
233
+ assert response.is_closed is True
234
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
235
+ profile = await response.parse()
236
+ assert_matches_type(ProfileChangeLanguageResponse, profile, path=["response"])
237
+
238
+ @pytest.mark.skip(reason="Mock server tests are disabled")
239
+ @parametrize
240
+ async def test_streaming_response_change_language(self, async_client: AsyncGmt) -> None:
241
+ async with async_client.profile.with_streaming_response.change_language(
242
+ language="en",
243
+ ) as response:
244
+ assert not response.is_closed
245
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
246
+
247
+ profile = await response.parse()
248
+ assert_matches_type(ProfileChangeLanguageResponse, profile, path=["response"])
249
+
250
+ assert cast(Any, response.is_closed) is True
251
+
183
252
  @pytest.mark.skip(reason="Mock server tests are disabled")
184
253
  @parametrize
185
254
  async def test_method_change_login(self, async_client: AsyncGmt) -> None:
@@ -1,3 +0,0 @@
1
- {
2
- ".": "0.38.0"
3
- }
File without changes
File without changes