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.
- {clientele-2.2.1 → clientele-2.2.2}/CHANGELOG.md +4 -0
- {clientele-2.2.1 → clientele-2.2.2}/PKG-INFO +1 -1
- {clientele-2.2.1 → clientele-2.2.2}/SECURITY.md +2 -2
- {clientele-2.2.1 → clientele-2.2.2}/clientele/http/httpx_backend.py +2 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/settings.py +1 -1
- {clientele-2.2.1 → clientele-2.2.2}/docs/CHANGELOG.md +8 -0
- {clientele-2.2.1 → clientele-2.2.2}/docs/install.md +1 -1
- {clientele-2.2.1 → clientele-2.2.2}/pyproject.toml +1 -1
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_ninja/client/MANIFEST.md +1 -1
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/client/MANIFEST.md +1 -1
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/fastapi/client/MANIFEST.md +1 -1
- {clientele-2.2.1 → clientele-2.2.2}/tests/api/test_api_client_singleton.py +53 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/async_test_client/MANIFEST.md +1 -1
- {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/test_basic_client/MANIFEST.md +1 -1
- {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/test_client/MANIFEST.md +1 -1
- {clientele-2.2.1 → clientele-2.2.2}/uv.lock +1 -1
- clientele-2.2.1/.claude/settings.local.json +0 -31
- {clientele-2.2.1 → clientele-2.2.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/.github/compatibility.json +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/.github/dependabot.yml +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/.github/pull_request_template.md +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/.github/workflows/ci.yml +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/.gitignore +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/CODE_OF_CONDUCT.md +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/CONTRIBUTING.md +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/CONTRIBUTORS.md +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/LICENSE +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/Makefile +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/PUBLISHING.md +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/README.md +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/__init__.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/api/__init__.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/api/client.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/api/config.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/api/exceptions.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/api/requests.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/api/stream/__init__.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/api/stream/parser.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/api/type_utils.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/cache/__init__.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/cache/backends.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/cache/decorator.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/cache/key_generator.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/cache/types.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/cli.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/README.md +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/__init__.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/__init__.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/generator.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/generators/__init__.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/generators/clients.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/generators/schemas.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/templates/api_get_method.jinja2 +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/templates/api_post_method.jinja2 +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/templates/client_py.jinja2 +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/templates/config_py.jinja2 +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/templates/manifest.jinja2 +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/templates/pyproject.toml.jinja2 +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/templates/schema_class.jinja2 +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/templates/schema_helpers.jinja2 +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/templates/schema_root_model.jinja2 +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/templates/schema_type_alias.jinja2 +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/templates/schemas_py.jinja2 +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/writer.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/base.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/base_clients.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/basic/__init__.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/basic/generator.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/basic/templates/client_py.jinja2 +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/basic/templates/config_py.jinja2 +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/basic/templates/manifest.jinja2 +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/basic/templates/schemas_py.jinja2 +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/basic/writer.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/cicerone_compat.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/schema_utils.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/shared/__init__.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/shared/generators/__init__.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/shared/generators/schemas.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/generators/shared/utils.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/graphql/__init__.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/graphql/client.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/http/__init__.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/http/aiohttp_backend.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/http/backends.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/http/fake_backend.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/http/niquests_backend.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/http/requests_backend.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/http/response.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/http/status_codes.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/mypy.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/py.typed +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/retries/__init__.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/retries/decorators.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/schemas.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/testing.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/clientele/utils.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/docs/CNAME +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/docs/api-async.md +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/docs/api-authentication.md +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/docs/api-cache.md +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/docs/api-configuration.md +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/docs/api-direct-requests.md +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/docs/api-examples.md +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/docs/api-exceptions.md +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/docs/api-graphql.md +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/docs/api-http-backends.md +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/docs/api-logging.md +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/docs/api-overview.md +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/docs/api-retries.md +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/docs/api-stream.md +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/docs/api-testing.md +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/docs/clientele_generate.gif +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/docs/clientele_header.png +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/docs/favicon.png +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/docs/index.md +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/docs/injected-parameters.md +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/docs/openapi-cli.md +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/docs/server-django-ninja.md +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/docs/server-drf.md +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/docs/server-fastapi.md +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/example_openapi_specs/best.json +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/example_openapi_specs/complex_schemas.json +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/example_openapi_specs/issue_248.json +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/example_openapi_specs/simple.json +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/example_openapi_specs/test_303.yaml +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/mkdocs.yml +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_ninja/README.md +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_ninja/api.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_ninja/client/__init__.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_ninja/client/client.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_ninja/client/config.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_ninja/client/pyproject.toml +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_ninja/client/schemas.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_ninja/example_project/__init__.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_ninja/example_project/settings.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_ninja/example_project/urls.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_ninja/manage.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_ninja/openapi.json +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/README.md +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/client/__init__.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/client/client.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/client/config.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/client/pyproject.toml +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/client/schemas.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/example_project/__init__.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/example_project/settings.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/example_project/urls.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/manage.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/openapi.yaml +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/users/__init__.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/users/apps.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/users/migrations/0001_initial.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/users/migrations/__init__.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/users/models.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/users/serializers.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/users/views.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/fastapi/README.md +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/fastapi/client/__init__.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/fastapi/client/client.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/fastapi/client/config.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/fastapi/client/pyproject.toml +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/fastapi/client/schemas.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/fastapi/main.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/server_examples/fastapi/openapi.json +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/__init__.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/api/retries/test_retry.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/api/stream/test_parser.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/api/test_api_client.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/api/test_api_client_logging.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/api/test_api_response_parser.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/api/test_api_typed_dict.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/api/test_direct_requests.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/api/test_requests.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/api/test_stream.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/api/test_stream_httpx.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/api/test_type_utils.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/async_test_client/__init__.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/async_test_client/client.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/async_test_client/config.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/async_test_client/pyproject.toml +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/async_test_client/schemas.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/test_basic_client/__init__.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/test_basic_client/client.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/test_basic_client/config.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/test_basic_client/schemas.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/test_client/__init__.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/test_client/client.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/test_client/config.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/test_client/pyproject.toml +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/api_clients/test_client/schemas.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/cache/fixtures.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/cache/test_backends.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/cache/test_decorator.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/cache/test_integration.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/cache/test_key_generator.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/callback_example.yaml +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/complex_api.yaml +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/openapi_examples/README.md +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/openapi_examples/api-with-examples.json +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/openapi_examples/callback-example.json +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/openapi_examples/link-example.json +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/openapi_examples/non-oauth-scopes.json +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/openapi_examples/petstore-expanded.json +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/openapi_examples/petstore.json +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/openapi_examples/tictactoe.json +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/openapi_examples/uspto.json +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/openapi_examples/webhook-example.json +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/petstore_openapi3.yaml +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/realworld/1password.yaml +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/realworld/ably.yaml +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/realworld/google.yaml +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/realworld/medium.yaml +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/realworld/spacetraders.yaml +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/realworld/twilio.yaml +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/fixtures/regression/dep_query_alias.json +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/generators/framework/test_framework_generator_coverage.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/generators/framework/test_framework_generator_integration.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/generators/integration_utils.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/generators/shared/__init__.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/generators/shared/test_utils.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/generators/shared/test_utils_coverage.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/generators/test_base.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/generators/test_base_and_basic_coverage.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/generators/test_cicerone_compat.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/generators/test_schemas_coverage.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/graphql/test_graphql_client.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/http/backends/test_aiohttp_backend.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/http/backends/test_backend_config.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/http/backends/test_fake_backend.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/http/backends/test_httpx_backend.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/http/backends/test_niquests_backend.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/http/backends/test_requests_backend.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/mypy/mypy_plugin_test_config.ini +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/mypy/test_mypy_plugin.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/test_additional_coverage.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/test_cli.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/test_cli_coverage.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/test_cli_full_coverage.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/test_complex_schemas.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/test_edge_case_coverage.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/test_fixture_schemas.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/test_generator_coverage.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/test_issue_248.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/test_nullable_fields.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/test_openapi_31_null_type.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/test_ref_handling.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/test_settings.py +0 -0
- {clientele-2.2.1 → clientele-2.2.2}/tests/test_testing_utilities.py +0 -0
- {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.
|
|
@@ -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,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)).
|
|
@@ -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")
|
|
@@ -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
|
|
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
|
{clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/templates/api_get_method.jinja2
RENAMED
|
File without changes
|
{clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/templates/api_post_method.jinja2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/templates/pyproject.toml.jinja2
RENAMED
|
File without changes
|
|
File without changes
|
{clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/templates/schema_helpers.jinja2
RENAMED
|
File without changes
|
{clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/templates/schema_root_model.jinja2
RENAMED
|
File without changes
|
{clientele-2.2.1 → clientele-2.2.2}/clientele/generators/api/templates/schema_type_alias.jinja2
RENAMED
|
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
|
|
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
|
|
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
|
{clientele-2.2.1 → clientele-2.2.2}/server_examples/django_ninja/example_project/__init__.py
RENAMED
|
File without changes
|
{clientele-2.2.1 → clientele-2.2.2}/server_examples/django_ninja/example_project/settings.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/client/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/client/pyproject.toml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{clientele-2.2.1 → clientele-2.2.2}/server_examples/django_rest_framework/example_project/urls.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|