clientele 2.2.1__tar.gz → 2.2.2__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 (250) hide show
  1. {clientele-2.2.1 → clientele-2.2.2}/CHANGELOG.md +4 -0
  2. {clientele-2.2.1 → clientele-2.2.2}/PKG-INFO +1 -1
  3. {clientele-2.2.1 → clientele-2.2.2}/SECURITY.md +2 -2
  4. {clientele-2.2.1 → clientele-2.2.2}/clientele/http/httpx_backend.py +2 -0
  5. {clientele-2.2.1 → clientele-2.2.2}/clientele/settings.py +1 -1
  6. {clientele-2.2.1 → clientele-2.2.2}/docs/CHANGELOG.md +8 -0
  7. {clientele-2.2.1 → clientele-2.2.2}/docs/install.md +1 -1
  8. {clientele-2.2.1 → clientele-2.2.2}/pyproject.toml +1 -1
  9. {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_ninja/client/MANIFEST.md +1 -1
  10. {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/client/MANIFEST.md +1 -1
  11. {clientele-2.2.1 → clientele-2.2.2}/server_examples/fastapi/client/MANIFEST.md +1 -1
  12. {clientele-2.2.1 → clientele-2.2.2}/tests/api/test_api_client_singleton.py +53 -0
  13. {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/async_test_client/MANIFEST.md +1 -1
  14. {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/test_basic_client/MANIFEST.md +1 -1
  15. {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/test_client/MANIFEST.md +1 -1
  16. {clientele-2.2.1 → clientele-2.2.2}/uv.lock +1 -1
  17. clientele-2.2.1/.claude/settings.local.json +0 -31
  18. {clientele-2.2.1 → clientele-2.2.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  19. {clientele-2.2.1 → clientele-2.2.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  20. {clientele-2.2.1 → clientele-2.2.2}/.github/compatibility.json +0 -0
  21. {clientele-2.2.1 → clientele-2.2.2}/.github/dependabot.yml +0 -0
  22. {clientele-2.2.1 → clientele-2.2.2}/.github/pull_request_template.md +0 -0
  23. {clientele-2.2.1 → clientele-2.2.2}/.github/workflows/ci.yml +0 -0
  24. {clientele-2.2.1 → clientele-2.2.2}/.gitignore +0 -0
  25. {clientele-2.2.1 → clientele-2.2.2}/CODE_OF_CONDUCT.md +0 -0
  26. {clientele-2.2.1 → clientele-2.2.2}/CONTRIBUTING.md +0 -0
  27. {clientele-2.2.1 → clientele-2.2.2}/CONTRIBUTORS.md +0 -0
  28. {clientele-2.2.1 → clientele-2.2.2}/LICENSE +0 -0
  29. {clientele-2.2.1 → clientele-2.2.2}/Makefile +0 -0
  30. {clientele-2.2.1 → clientele-2.2.2}/PUBLISHING.md +0 -0
  31. {clientele-2.2.1 → clientele-2.2.2}/README.md +0 -0
  32. {clientele-2.2.1 → clientele-2.2.2}/clientele/__init__.py +0 -0
  33. {clientele-2.2.1 → clientele-2.2.2}/clientele/api/__init__.py +0 -0
  34. {clientele-2.2.1 → clientele-2.2.2}/clientele/api/client.py +0 -0
  35. {clientele-2.2.1 → clientele-2.2.2}/clientele/api/config.py +0 -0
  36. {clientele-2.2.1 → clientele-2.2.2}/clientele/api/exceptions.py +0 -0
  37. {clientele-2.2.1 → clientele-2.2.2}/clientele/api/requests.py +0 -0
  38. {clientele-2.2.1 → clientele-2.2.2}/clientele/api/stream/__init__.py +0 -0
  39. {clientele-2.2.1 → clientele-2.2.2}/clientele/api/stream/parser.py +0 -0
  40. {clientele-2.2.1 → clientele-2.2.2}/clientele/api/type_utils.py +0 -0
  41. {clientele-2.2.1 → clientele-2.2.2}/clientele/cache/__init__.py +0 -0
  42. {clientele-2.2.1 → clientele-2.2.2}/clientele/cache/backends.py +0 -0
  43. {clientele-2.2.1 → clientele-2.2.2}/clientele/cache/decorator.py +0 -0
  44. {clientele-2.2.1 → clientele-2.2.2}/clientele/cache/key_generator.py +0 -0
  45. {clientele-2.2.1 → clientele-2.2.2}/clientele/cache/types.py +0 -0
  46. {clientele-2.2.1 → clientele-2.2.2}/clientele/cli.py +0 -0
  47. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/README.md +0 -0
  48. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/__init__.py +0 -0
  49. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/__init__.py +0 -0
  50. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/generator.py +0 -0
  51. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/generators/__init__.py +0 -0
  52. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/generators/clients.py +0 -0
  53. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/generators/schemas.py +0 -0
  54. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/templates/api_get_method.jinja2 +0 -0
  55. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/templates/api_post_method.jinja2 +0 -0
  56. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/templates/client_py.jinja2 +0 -0
  57. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/templates/config_py.jinja2 +0 -0
  58. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/templates/manifest.jinja2 +0 -0
  59. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/templates/pyproject.toml.jinja2 +0 -0
  60. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/templates/schema_class.jinja2 +0 -0
  61. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/templates/schema_helpers.jinja2 +0 -0
  62. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/templates/schema_root_model.jinja2 +0 -0
  63. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/templates/schema_type_alias.jinja2 +0 -0
  64. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/templates/schemas_py.jinja2 +0 -0
  65. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/writer.py +0 -0
  66. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/base.py +0 -0
  67. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/base_clients.py +0 -0
  68. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/basic/__init__.py +0 -0
  69. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/basic/generator.py +0 -0
  70. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/basic/templates/client_py.jinja2 +0 -0
  71. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/basic/templates/config_py.jinja2 +0 -0
  72. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/basic/templates/manifest.jinja2 +0 -0
  73. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/basic/templates/schemas_py.jinja2 +0 -0
  74. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/basic/writer.py +0 -0
  75. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/cicerone_compat.py +0 -0
  76. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/schema_utils.py +0 -0
  77. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/shared/__init__.py +0 -0
  78. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/shared/generators/__init__.py +0 -0
  79. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/shared/generators/schemas.py +0 -0
  80. {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/shared/utils.py +0 -0
  81. {clientele-2.2.1 → clientele-2.2.2}/clientele/graphql/__init__.py +0 -0
  82. {clientele-2.2.1 → clientele-2.2.2}/clientele/graphql/client.py +0 -0
  83. {clientele-2.2.1 → clientele-2.2.2}/clientele/http/__init__.py +0 -0
  84. {clientele-2.2.1 → clientele-2.2.2}/clientele/http/aiohttp_backend.py +0 -0
  85. {clientele-2.2.1 → clientele-2.2.2}/clientele/http/backends.py +0 -0
  86. {clientele-2.2.1 → clientele-2.2.2}/clientele/http/fake_backend.py +0 -0
  87. {clientele-2.2.1 → clientele-2.2.2}/clientele/http/niquests_backend.py +0 -0
  88. {clientele-2.2.1 → clientele-2.2.2}/clientele/http/requests_backend.py +0 -0
  89. {clientele-2.2.1 → clientele-2.2.2}/clientele/http/response.py +0 -0
  90. {clientele-2.2.1 → clientele-2.2.2}/clientele/http/status_codes.py +0 -0
  91. {clientele-2.2.1 → clientele-2.2.2}/clientele/mypy.py +0 -0
  92. {clientele-2.2.1 → clientele-2.2.2}/clientele/py.typed +0 -0
  93. {clientele-2.2.1 → clientele-2.2.2}/clientele/retries/__init__.py +0 -0
  94. {clientele-2.2.1 → clientele-2.2.2}/clientele/retries/decorators.py +0 -0
  95. {clientele-2.2.1 → clientele-2.2.2}/clientele/schemas.py +0 -0
  96. {clientele-2.2.1 → clientele-2.2.2}/clientele/testing.py +0 -0
  97. {clientele-2.2.1 → clientele-2.2.2}/clientele/utils.py +0 -0
  98. {clientele-2.2.1 → clientele-2.2.2}/docs/CNAME +0 -0
  99. {clientele-2.2.1 → clientele-2.2.2}/docs/api-async.md +0 -0
  100. {clientele-2.2.1 → clientele-2.2.2}/docs/api-authentication.md +0 -0
  101. {clientele-2.2.1 → clientele-2.2.2}/docs/api-cache.md +0 -0
  102. {clientele-2.2.1 → clientele-2.2.2}/docs/api-configuration.md +0 -0
  103. {clientele-2.2.1 → clientele-2.2.2}/docs/api-direct-requests.md +0 -0
  104. {clientele-2.2.1 → clientele-2.2.2}/docs/api-examples.md +0 -0
  105. {clientele-2.2.1 → clientele-2.2.2}/docs/api-exceptions.md +0 -0
  106. {clientele-2.2.1 → clientele-2.2.2}/docs/api-graphql.md +0 -0
  107. {clientele-2.2.1 → clientele-2.2.2}/docs/api-http-backends.md +0 -0
  108. {clientele-2.2.1 → clientele-2.2.2}/docs/api-logging.md +0 -0
  109. {clientele-2.2.1 → clientele-2.2.2}/docs/api-overview.md +0 -0
  110. {clientele-2.2.1 → clientele-2.2.2}/docs/api-retries.md +0 -0
  111. {clientele-2.2.1 → clientele-2.2.2}/docs/api-stream.md +0 -0
  112. {clientele-2.2.1 → clientele-2.2.2}/docs/api-testing.md +0 -0
  113. {clientele-2.2.1 → clientele-2.2.2}/docs/clientele_generate.gif +0 -0
  114. {clientele-2.2.1 → clientele-2.2.2}/docs/clientele_header.png +0 -0
  115. {clientele-2.2.1 → clientele-2.2.2}/docs/favicon.png +0 -0
  116. {clientele-2.2.1 → clientele-2.2.2}/docs/index.md +0 -0
  117. {clientele-2.2.1 → clientele-2.2.2}/docs/injected-parameters.md +0 -0
  118. {clientele-2.2.1 → clientele-2.2.2}/docs/openapi-cli.md +0 -0
  119. {clientele-2.2.1 → clientele-2.2.2}/docs/server-django-ninja.md +0 -0
  120. {clientele-2.2.1 → clientele-2.2.2}/docs/server-drf.md +0 -0
  121. {clientele-2.2.1 → clientele-2.2.2}/docs/server-fastapi.md +0 -0
  122. {clientele-2.2.1 → clientele-2.2.2}/example_openapi_specs/best.json +0 -0
  123. {clientele-2.2.1 → clientele-2.2.2}/example_openapi_specs/complex_schemas.json +0 -0
  124. {clientele-2.2.1 → clientele-2.2.2}/example_openapi_specs/issue_248.json +0 -0
  125. {clientele-2.2.1 → clientele-2.2.2}/example_openapi_specs/simple.json +0 -0
  126. {clientele-2.2.1 → clientele-2.2.2}/example_openapi_specs/test_303.yaml +0 -0
  127. {clientele-2.2.1 → clientele-2.2.2}/mkdocs.yml +0 -0
  128. {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_ninja/README.md +0 -0
  129. {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_ninja/api.py +0 -0
  130. {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_ninja/client/__init__.py +0 -0
  131. {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_ninja/client/client.py +0 -0
  132. {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_ninja/client/config.py +0 -0
  133. {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_ninja/client/pyproject.toml +0 -0
  134. {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_ninja/client/schemas.py +0 -0
  135. {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_ninja/example_project/__init__.py +0 -0
  136. {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_ninja/example_project/settings.py +0 -0
  137. {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_ninja/example_project/urls.py +0 -0
  138. {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_ninja/manage.py +0 -0
  139. {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_ninja/openapi.json +0 -0
  140. {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/README.md +0 -0
  141. {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/client/__init__.py +0 -0
  142. {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/client/client.py +0 -0
  143. {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/client/config.py +0 -0
  144. {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/client/pyproject.toml +0 -0
  145. {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/client/schemas.py +0 -0
  146. {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/example_project/__init__.py +0 -0
  147. {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/example_project/settings.py +0 -0
  148. {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/example_project/urls.py +0 -0
  149. {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/manage.py +0 -0
  150. {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/openapi.yaml +0 -0
  151. {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/users/__init__.py +0 -0
  152. {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/users/apps.py +0 -0
  153. {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/users/migrations/0001_initial.py +0 -0
  154. {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/users/migrations/__init__.py +0 -0
  155. {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/users/models.py +0 -0
  156. {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/users/serializers.py +0 -0
  157. {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/users/views.py +0 -0
  158. {clientele-2.2.1 → clientele-2.2.2}/server_examples/fastapi/README.md +0 -0
  159. {clientele-2.2.1 → clientele-2.2.2}/server_examples/fastapi/client/__init__.py +0 -0
  160. {clientele-2.2.1 → clientele-2.2.2}/server_examples/fastapi/client/client.py +0 -0
  161. {clientele-2.2.1 → clientele-2.2.2}/server_examples/fastapi/client/config.py +0 -0
  162. {clientele-2.2.1 → clientele-2.2.2}/server_examples/fastapi/client/pyproject.toml +0 -0
  163. {clientele-2.2.1 → clientele-2.2.2}/server_examples/fastapi/client/schemas.py +0 -0
  164. {clientele-2.2.1 → clientele-2.2.2}/server_examples/fastapi/main.py +0 -0
  165. {clientele-2.2.1 → clientele-2.2.2}/server_examples/fastapi/openapi.json +0 -0
  166. {clientele-2.2.1 → clientele-2.2.2}/tests/__init__.py +0 -0
  167. {clientele-2.2.1 → clientele-2.2.2}/tests/api/retries/test_retry.py +0 -0
  168. {clientele-2.2.1 → clientele-2.2.2}/tests/api/stream/test_parser.py +0 -0
  169. {clientele-2.2.1 → clientele-2.2.2}/tests/api/test_api_client.py +0 -0
  170. {clientele-2.2.1 → clientele-2.2.2}/tests/api/test_api_client_logging.py +0 -0
  171. {clientele-2.2.1 → clientele-2.2.2}/tests/api/test_api_response_parser.py +0 -0
  172. {clientele-2.2.1 → clientele-2.2.2}/tests/api/test_api_typed_dict.py +0 -0
  173. {clientele-2.2.1 → clientele-2.2.2}/tests/api/test_direct_requests.py +0 -0
  174. {clientele-2.2.1 → clientele-2.2.2}/tests/api/test_requests.py +0 -0
  175. {clientele-2.2.1 → clientele-2.2.2}/tests/api/test_stream.py +0 -0
  176. {clientele-2.2.1 → clientele-2.2.2}/tests/api/test_stream_httpx.py +0 -0
  177. {clientele-2.2.1 → clientele-2.2.2}/tests/api/test_type_utils.py +0 -0
  178. {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/async_test_client/__init__.py +0 -0
  179. {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/async_test_client/client.py +0 -0
  180. {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/async_test_client/config.py +0 -0
  181. {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/async_test_client/pyproject.toml +0 -0
  182. {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/async_test_client/schemas.py +0 -0
  183. {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/test_basic_client/__init__.py +0 -0
  184. {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/test_basic_client/client.py +0 -0
  185. {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/test_basic_client/config.py +0 -0
  186. {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/test_basic_client/schemas.py +0 -0
  187. {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/test_client/__init__.py +0 -0
  188. {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/test_client/client.py +0 -0
  189. {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/test_client/config.py +0 -0
  190. {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/test_client/pyproject.toml +0 -0
  191. {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/test_client/schemas.py +0 -0
  192. {clientele-2.2.1 → clientele-2.2.2}/tests/cache/fixtures.py +0 -0
  193. {clientele-2.2.1 → clientele-2.2.2}/tests/cache/test_backends.py +0 -0
  194. {clientele-2.2.1 → clientele-2.2.2}/tests/cache/test_decorator.py +0 -0
  195. {clientele-2.2.1 → clientele-2.2.2}/tests/cache/test_integration.py +0 -0
  196. {clientele-2.2.1 → clientele-2.2.2}/tests/cache/test_key_generator.py +0 -0
  197. {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/callback_example.yaml +0 -0
  198. {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/complex_api.yaml +0 -0
  199. {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/openapi_examples/README.md +0 -0
  200. {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/openapi_examples/api-with-examples.json +0 -0
  201. {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/openapi_examples/callback-example.json +0 -0
  202. {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/openapi_examples/link-example.json +0 -0
  203. {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/openapi_examples/non-oauth-scopes.json +0 -0
  204. {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/openapi_examples/petstore-expanded.json +0 -0
  205. {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/openapi_examples/petstore.json +0 -0
  206. {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/openapi_examples/tictactoe.json +0 -0
  207. {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/openapi_examples/uspto.json +0 -0
  208. {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/openapi_examples/webhook-example.json +0 -0
  209. {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/petstore_openapi3.yaml +0 -0
  210. {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/realworld/1password.yaml +0 -0
  211. {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/realworld/ably.yaml +0 -0
  212. {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/realworld/google.yaml +0 -0
  213. {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/realworld/medium.yaml +0 -0
  214. {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/realworld/spacetraders.yaml +0 -0
  215. {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/realworld/twilio.yaml +0 -0
  216. {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/regression/dep_query_alias.json +0 -0
  217. {clientele-2.2.1 → clientele-2.2.2}/tests/generators/framework/test_framework_generator_coverage.py +0 -0
  218. {clientele-2.2.1 → clientele-2.2.2}/tests/generators/framework/test_framework_generator_integration.py +0 -0
  219. {clientele-2.2.1 → clientele-2.2.2}/tests/generators/integration_utils.py +0 -0
  220. {clientele-2.2.1 → clientele-2.2.2}/tests/generators/shared/__init__.py +0 -0
  221. {clientele-2.2.1 → clientele-2.2.2}/tests/generators/shared/test_utils.py +0 -0
  222. {clientele-2.2.1 → clientele-2.2.2}/tests/generators/shared/test_utils_coverage.py +0 -0
  223. {clientele-2.2.1 → clientele-2.2.2}/tests/generators/test_base.py +0 -0
  224. {clientele-2.2.1 → clientele-2.2.2}/tests/generators/test_base_and_basic_coverage.py +0 -0
  225. {clientele-2.2.1 → clientele-2.2.2}/tests/generators/test_cicerone_compat.py +0 -0
  226. {clientele-2.2.1 → clientele-2.2.2}/tests/generators/test_schemas_coverage.py +0 -0
  227. {clientele-2.2.1 → clientele-2.2.2}/tests/graphql/test_graphql_client.py +0 -0
  228. {clientele-2.2.1 → clientele-2.2.2}/tests/http/backends/test_aiohttp_backend.py +0 -0
  229. {clientele-2.2.1 → clientele-2.2.2}/tests/http/backends/test_backend_config.py +0 -0
  230. {clientele-2.2.1 → clientele-2.2.2}/tests/http/backends/test_fake_backend.py +0 -0
  231. {clientele-2.2.1 → clientele-2.2.2}/tests/http/backends/test_httpx_backend.py +0 -0
  232. {clientele-2.2.1 → clientele-2.2.2}/tests/http/backends/test_niquests_backend.py +0 -0
  233. {clientele-2.2.1 → clientele-2.2.2}/tests/http/backends/test_requests_backend.py +0 -0
  234. {clientele-2.2.1 → clientele-2.2.2}/tests/mypy/mypy_plugin_test_config.ini +0 -0
  235. {clientele-2.2.1 → clientele-2.2.2}/tests/mypy/test_mypy_plugin.py +0 -0
  236. {clientele-2.2.1 → clientele-2.2.2}/tests/test_additional_coverage.py +0 -0
  237. {clientele-2.2.1 → clientele-2.2.2}/tests/test_cli.py +0 -0
  238. {clientele-2.2.1 → clientele-2.2.2}/tests/test_cli_coverage.py +0 -0
  239. {clientele-2.2.1 → clientele-2.2.2}/tests/test_cli_full_coverage.py +0 -0
  240. {clientele-2.2.1 → clientele-2.2.2}/tests/test_complex_schemas.py +0 -0
  241. {clientele-2.2.1 → clientele-2.2.2}/tests/test_edge_case_coverage.py +0 -0
  242. {clientele-2.2.1 → clientele-2.2.2}/tests/test_fixture_schemas.py +0 -0
  243. {clientele-2.2.1 → clientele-2.2.2}/tests/test_generator_coverage.py +0 -0
  244. {clientele-2.2.1 → clientele-2.2.2}/tests/test_issue_248.py +0 -0
  245. {clientele-2.2.1 → clientele-2.2.2}/tests/test_nullable_fields.py +0 -0
  246. {clientele-2.2.1 → clientele-2.2.2}/tests/test_openapi_31_null_type.py +0 -0
  247. {clientele-2.2.1 → clientele-2.2.2}/tests/test_ref_handling.py +0 -0
  248. {clientele-2.2.1 → clientele-2.2.2}/tests/test_settings.py +0 -0
  249. {clientele-2.2.1 → clientele-2.2.2}/tests/test_testing_utilities.py +0 -0
  250. {clientele-2.2.1 → clientele-2.2.2}/tests/test_utils.py +0 -0
@@ -1,5 +1,9 @@
1
1
  # Change log
2
2
 
3
+ ## 2.2.2
4
+
5
+ - Fix `HttpxHTTPBackend.close()`/`aclose()` not resetting the client reference — a closed-but-non-None client was returned on subsequent requests, causing `RuntimeError: Cannot send a request, as the client has been closed`.
6
+
3
7
  ## 2.2.1
4
8
 
5
9
  - Fix POST/PUT/PATCH endpoints without a request body generating a required `data: None` parameter — the `data` parameter is now omitted entirely when the endpoint has no request body.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: clientele
3
- Version: 2.2.1
3
+ Version: 2.2.2
4
4
  Summary: Clientele is a different way to build Python API Clients
5
5
  Project-URL: Homepage, https://clientele.dev
6
6
  Project-URL: Changelog, https://docs.clientele.dev/CHANGELOG/
@@ -4,8 +4,8 @@
4
4
 
5
5
  | Version | Supported |
6
6
  | --------------| ------------------ |
7
- | 2.2.1 | :white_check_mark: |
8
- | 2.2.0 or less | :x: |
7
+ | 2.2.2 | :white_check_mark: |
8
+ | 2.2.1 or less | :x: |
9
9
 
10
10
  ## Reporting a Vulnerability
11
11
 
@@ -124,11 +124,13 @@ class HttpxHTTPBackend(backends.HTTPBackend):
124
124
  """Close the synchronous httpx client."""
125
125
  if self._sync_client is not None:
126
126
  self._sync_client.close()
127
+ self._sync_client = None
127
128
 
128
129
  async def aclose(self) -> None:
129
130
  """Asynchronously close the async httpx client."""
130
131
  if self._async_client is not None:
131
132
  await self._async_client.aclose()
133
+ self._async_client = None
132
134
 
133
135
  def handle_sync_stream(
134
136
  self,
@@ -1,6 +1,6 @@
1
1
  import platform
2
2
 
3
- VERSION = "2.2.1"
3
+ VERSION = "2.2.2"
4
4
 
5
5
 
6
6
  def split_ver():
@@ -1,5 +1,13 @@
1
1
  # Change log
2
2
 
3
+ ## 2.2.2
4
+
5
+ - Fix `HttpxHTTPBackend.close()`/`aclose()` not resetting the client reference — a closed-but-non-None client was returned on subsequent requests, causing `RuntimeError: Cannot send a request, as the client has been closed`.
6
+
7
+ ## 2.2.1
8
+
9
+ - Fix POST/PUT/PATCH endpoints without a request body generating a required `data: None` parameter — the `data` parameter is now omitted entirely when the endpoint has no request body.
10
+
3
11
  ## 2.2.0
4
12
 
5
13
  - Support OpenAPI `default` and `const` in schema generation ([#247](https://github.com/phalt/clientele/pull/247)).
@@ -47,7 +47,7 @@ Once installed, you can run `clientele version` to confirm:
47
47
 
48
48
  ```sh
49
49
  > clientele version
50
- clientele 2.2.1
50
+ clientele 2.2.2
51
51
  ```
52
52
 
53
53
  ## Next steps
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "clientele"
3
- version = "2.2.1"
3
+ version = "2.2.2"
4
4
  description = "Clientele is a different way to build Python API Clients"
5
5
  authors = [{ name = "Paul Hallett", email = "paulandrewhallett@gmail.com" }]
6
6
  license = { text = "MIT" }
@@ -16,7 +16,7 @@ uv add clientele
16
16
 
17
17
  API VERSION: 1.0.0
18
18
  OPENAPI VERSION: 3.1.0
19
- CLIENTELE VERSION: 2.2.1
19
+ CLIENTELE VERSION: 2.2.2
20
20
 
21
21
  Regenerate using this command:
22
22
 
@@ -16,7 +16,7 @@ uv add clientele
16
16
 
17
17
  API VERSION: 1.0.0
18
18
  OPENAPI VERSION: 3.0.3
19
- CLIENTELE VERSION: 2.2.1
19
+ CLIENTELE VERSION: 2.2.2
20
20
 
21
21
  Regenerate using this command:
22
22
 
@@ -16,7 +16,7 @@ uv add clientele
16
16
 
17
17
  API VERSION: 1.0.0
18
18
  OPENAPI VERSION: 3.1.0
19
- CLIENTELE VERSION: 2.2.1
19
+ CLIENTELE VERSION: 2.2.2
20
20
 
21
21
  Regenerate using this command:
22
22
 
@@ -91,6 +91,59 @@ async def test_aclose_method_works() -> None:
91
91
  assert client.config.http_backend is fake_backend
92
92
 
93
93
 
94
+ def test_sync_request_works_after_close() -> None:
95
+ """Test that sync requests work after close() by rebuilding the client."""
96
+ client = APIClient(base_url=BASE_URL)
97
+ fake_backend = configure_client_for_testing(client)
98
+ fake_backend.queue_response(
99
+ path="/users/1",
100
+ response_obj=ResponseFactory.ok(data={"id": 1, "name": "Ada"}),
101
+ )
102
+ fake_backend.queue_response(
103
+ path="/users/1",
104
+ response_obj=ResponseFactory.ok(data={"id": 1, "name": "Ada"}),
105
+ )
106
+
107
+ @client.get("/users/{user_id}")
108
+ def get_user(result: User, user_id: int) -> User:
109
+ return result
110
+
111
+ user = get_user(1)
112
+ assert user.id == 1
113
+
114
+ client.close()
115
+
116
+ user = get_user(1)
117
+ assert user.id == 1
118
+
119
+
120
+ @pytest.mark.asyncio
121
+ async def test_async_request_works_after_aclose() -> None:
122
+ """Test that async requests work after aclose() by rebuilding the client."""
123
+ client = APIClient(base_url=BASE_URL)
124
+ fake_backend = configure_client_for_testing(client)
125
+ fake_backend.queue_response(
126
+ path="/users/1",
127
+ response_obj=ResponseFactory.ok(data={"id": 1, "name": "Ada"}),
128
+ )
129
+ fake_backend.queue_response(
130
+ path="/users/1",
131
+ response_obj=ResponseFactory.ok(data={"id": 1, "name": "Ada"}),
132
+ )
133
+
134
+ @client.get("/users/{user_id}")
135
+ async def get_user(result: User, user_id: int) -> User:
136
+ return result
137
+
138
+ user = await get_user(1)
139
+ assert user.id == 1
140
+
141
+ await client.aclose()
142
+
143
+ user = await get_user(1)
144
+ assert user.id == 1
145
+
146
+
94
147
  def test_can_reconfigure_with_base_url() -> None:
95
148
  """Test that base_url can be reconfigured."""
96
149
  client = APIClient(base_url="whatever")
@@ -16,7 +16,7 @@ uv add clientele
16
16
 
17
17
  API VERSION: 0.1.0
18
18
  OPENAPI VERSION: 3.0.2
19
- CLIENTELE VERSION: 2.2.1
19
+ CLIENTELE VERSION: 2.2.2
20
20
 
21
21
  Regenerate using this command:
22
22
 
@@ -16,7 +16,7 @@ uv add clientele
16
16
 
17
17
  API VERSION:
18
18
  OPENAPI VERSION:
19
- CLIENTELE VERSION: 2.2.1
19
+ CLIENTELE VERSION: 2.2.2
20
20
 
21
21
  Regenerate using this command:
22
22
 
@@ -16,7 +16,7 @@ uv add clientele
16
16
 
17
17
  API VERSION: 0.1.0
18
18
  OPENAPI VERSION: 3.0.2
19
- CLIENTELE VERSION: 2.2.1
19
+ CLIENTELE VERSION: 2.2.2
20
20
 
21
21
  Regenerate using this command:
22
22
 
@@ -391,7 +391,7 @@ wheels = [
391
391
 
392
392
  [[package]]
393
393
  name = "clientele"
394
- version = "2.2.1"
394
+ version = "2.2.2"
395
395
  source = { editable = "." }
396
396
  dependencies = [
397
397
  { name = "httpx2" },
@@ -1,31 +0,0 @@
1
- {
2
- "permissions": {
3
- "allow": [
4
- "Bash(gh pr *)",
5
- "Bash(uv run *)",
6
- "Bash(make ty *)",
7
- "Bash(awk '{print $2}')",
8
- "Bash(xargs ls -la)",
9
- "Bash(awk '{print $NF}')",
10
- "Bash(make generate-test-clients *)",
11
- "Bash(python *)",
12
- "Bash(grep -v \"^uv\\\\|^info\\\\|^$\")",
13
- "Bash(grep \"parameter \\\\`result\\\\`\\\\|parameter \\\\`response\\\\`\")",
14
- "Bash(grep -v \"result: $\\\\|result: [A-Z]\\\\|^tests/api_clients\\\\|^tests/old_clients\")",
15
- "Bash(grep -v \"result: [A-Z].*$\\\\|result: [a-z]\")",
16
- "Bash(make test *)",
17
- "Bash(uv lock *)",
18
- "Bash(uv sync *)",
19
- "Bash(grep *)",
20
- "Bash(gh api *)",
21
- "Bash(python3 *)",
22
- "Bash(gh issue *)",
23
- "WebSearch",
24
- "Bash(uv pip *)",
25
- "Bash(.venv/bin/pytest *)",
26
- "Bash(.venv/bin/python *)",
27
- "Bash(pip list *)",
28
- "Bash(git *)"
29
- ]
30
- }
31
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes