- Fix performance degradation in uWSGI preforking mode - PR #474. Thanks Jiri Horky for your contribution!
- When catching and converting exceptions, handle connection errors first - PR #469.
- Use IPv4 addresses instead of
localhost
for integration tests - PR #468.
- Drop support for Python 3.5 which is EOL end of Sept 2020.
- Switch from msgpack-python, which is deprecated, to msgpack - PR #462. Thanks Erik Cederstrand for your contribution!
- Revert the changes from 10.6.1, since those affected the swagger result of the response, which we should only set when there is a schema defined for the response. Fixes an issue with bravado crashing when an endpoint has no schema and sends no response body.
- Return the raw JSON for a response for which there is no schema, if
use_models
is set toFalse
- PR #456. Thanks Terence Honles for your contribution!
- Make following redirects configurable, and off by default, in the default requests-based HTTP client - Issue #449, PR #454, #457. Thanks Matthew Dowdell for your contribution!Note that this bugfix is a behavior change of the default HTTP client, which used to always follow redirects.
- Ensure that
requst_options
headers are not modified while constructing request - PR #440. Thanks Nick Gaya for your contribution! - Fix header authentication for
host:port
type - PR #444. Thanks sanda87 for your contribution! - Reraise fido
HttpTimeoutError
without modification - PR #447. Thanks Nick Gaya for your contribution! - Documentation updates - PR #442 and PR #448. Thanks Colin Dunklau for your contribution!
- Ensure that bravado.client.SwaggerSpec is deep copyable - PR #445
- Some type annotation fixes and improvements, in particular for the response_adapter argument to
HttpFuture
- PR #436
- Show the response text when an unexpected 5xx response is returned. This fixes a regression introduced in PR #32 - PR #425. Thanks Kevin Coleman for your contribution!
- Allow custom future and response adapter classes in both
RequestsClient
andFidoClient
- PR #430, #431. Thanks Andrii Stepaniuk for your contribution! - Fix
HttpErrorType
type annotations - PR #433
- Fix and re-enable integration tests on Windows - PR #417
- Ensure that bravado supports Windows platform - PR #415
- Ensure that responses with application/.* content type returns raw binary data - PR # 414. Thanks Greg Ruane for your contribution!
- Do not warn about conflicting timeouts in requests HTTP client if only one was specified - PR #411. Thanks Pokey Rule for your contribution!
- Fix bug in :class:`bravado.fido_client.FidoResponseAdapter`, it was not returning a unicode string for
text
- PR #412
- Fix :attr:`.bravado.response.BravadoResponseMetadata.is_fallback_result`, it was always
True
in 10.3.0 - Issue #409, PR #410 - :attr:`.bravado.response.BravadoResponseMetadata.handled_exception_info` is
None
again if no exception was handled - PR #410 - :mod:`bravado.testing.response_mocks` is now type-annotated - PR #410
- bravado is now fully type-annotated - PR #403
- Add ability to cancel a HttpFuture. Third-party HTTP clients will need to implement
cancel
on their :class:`.bravado.http_future.FutureAdapter` class to support this - PR #406 - The static method
from_config_dict
of :class:`.bravado.config.BravadoConfig` was removed due to compatibility issues with Python 3.5.0. This method was meant for internal use only; if you do happen to call it please switch to :func:`.bravado.config.bravado_config_from_config_dict` instead. - PR #407
- Fix issue with default (requests) HTTP client if HTTP_PROXY environment variable is set - Issue #401, PR #402. Thanks Lourens Veen for the initial report!
- Reraise network errors when unmarshalling - PR #397
- Support customizing or disabling SSL/TLS validation for the default HTTP client - Issues #278, #311, PR #392
- Use the fallback result in case of connection errors as well - PR #381
- Add support for non-callable fallback results, stabilize the response API - PR #376
- Add unified connection error handling support, introduce :class:`.bravado.exception.BravadoConnectionError` - PR #377
- Support per-request API key header overwriting - PR #374. Thanks Yuliya Bagriy for your contribution!
- Extract integration testing tools to :mod:`bravado.testing.integration_test` module - PR #378
- Add helper classes (in :mod:`bravado.testing.response_mocks`) for unit testing code using bravado - PR #375
- Re-add ability to force returning fallback results - PR #372. Per-request configuration is now handled by the new :class:`bravado.config.RequestConfig` class. This change requires an updated version of bravado-asyncio in case you're using that HTTP client.
- Revert ability to force returning fallback results which was introduced in 9.3.1, since it contains backwards-incompatible changes that break third-party HTTP clients like bravado-asyncio.
- Add ability to force returning fallback results - PR #372
Introduce the HTTPFuture.response API as well as support for returning a fallback result. - PR #365, #366, #367, #368
NOTE: Most of this API is not documented yet and is considered experimental; we're working on stabilizing it and providing developer documentation.
- Fix msgpack import issue - PR #341. Thanks Jesse Myers for your contribution!
- The timeout exception for the requests client should inherit from
requests.exceptions.ReadTimeout
instead ofrequests.exceptions.Timeout
- PR #337
- Support msgpack as wire format for response data - PR #323, 328, 330, 331
- Allow client to access resources for tags which are not valid Python identifier names, by adding the
SwaggerClient.get_resource
method. For example,client.get_resource('My Pets').list_pets()
- PR #320. Thanks Craig Blaszczyk for your contribution! - Unify timeout exception classes. You can now simply catch
bravado.exception.BravadoTimeoutError
(orbuiltins.TimeoutError
if you're using Python 3.3+) - PR #321
- Allow users to pass the tcp_nodelay request parameter to FidoClient requests - PR #319
- Make sure HTTP header names and values are unicode strings when using the fido HTTP client. NOTE: this is a potentially backwards incompatible change if you're using the fido HTTP client and are working with response headers. It's also highly advised to not upgrade to bravado-core 4.8.0+ if you're using fido unless you're also upgrading to a bravado version that contains this change.
- Require fido version 4.2.1 so we stay compatible to code catching crochet.TimeoutError
- Don't mangle headers with bytestring values on Python 3
- Make sure headers passed in for fetching specs are converted to str as well
- Fix regression when passing swagger parameters of type header in
_request_options
introduced by PR #288
- When using the fido HTTP client and passing a timeout to
result()
, make sure we throw a fido HTTPTimeoutError instead of a crochet TimeoutError when hitting the timeout.
_requests_options
headers are casted tostring
to support newer version ofrequests
library.
- Convert http method to str while constructing the request to fix an issue with file uploads when using requests library versions before 2.8.
- Add API key authentication via header to RequestsClient.
- Fido client is now an optional dependency. NOTE: if you intend to use bravado with the fido client you need to install bravado with fido extras (
pip install bravado[fido]
)
- Remove support for Python 2.6, fixing a build failure.
- Switch from Python 3.4 to Python 3.5 for tests.
- Bravado using Fido 3.2.0 python 3 ready
- Bravado compliant to Fido 3.0.0
- Dropped use of concurrent futures in favor of crochet EventualResult
- Workaround for bypassing a unicode bug in python requests < 2.8.1
- Don't unnecessarily constrain the version of twisted when not using python 2.6
- Removed logic to build multipart forms. Using python 'requests' instead to build the entire http request.
- Support for YAML Swagger specs - PR #198
- Remove pytest-mock dependency from requirements-dev.txt. No longer used and it was breaking the build.
- Requires bravado-core >= 4.2.2
- Fix unit test for default values getting sent in the request
- Require twisted < 15.5.0 since Python 2.6 support was dropped
- Support for recursive $refs
- Support for remote $refs e.g. Swagger 2.0 specs that span multiple json files
- Requires bravado-core 4.0.0 which is not backwards compatible (See its CHANGELOG)
- Transitively requires swagger-spec-validator 2.0.2 which is not backwards compatible (See its CHANGELOG)
- Support per-request response_callbacks to enable
SwaggerClient
decorators to instrument anIncomingResponse
post-receive. This is a non-backwards compatible change iff you have implemented a customHttpClient
. Consult the changes in signature toHttpClient.request()
andHttpFuture
's constructor. - Config option
also_return_response
is supported on a per-request basis.
- Fix
IncomingResponse
subclasses to provide access to the http headers. - Requires bravado-core >= 3.1.0
- Clients can now access the HTTP response from a service call to access things like headers and status code. See Advanced Usage
- User-defined formats are no longer global. The registration mechanism has changed and is now done via configuration. See Configuration
- Update ResourceDecorator to return an operation as a CallableOperation instead of a function wrapper (for the docstring). This allows further decoration of the ResourceDecorator.
- Consistent bravado.exception.HTTPError now thrown from both Fido and Requests http clients.
- HTTPError refactored to contain an optional detailed message and Swagger response result.
- Support passing in connect_timeout and timeout via _request_options to the Fido and Requests clients
- Timeout in HTTPFuture now defaults to None (wait indefinitely) instead of 5s. You should make sure any calls to http_future.result(..) without a timeout are updated accordingly.
- Add warning for deprecated operations
- Assume responsibility for http invocation (used to be in bravado-core)
- Made bravado compatible with Py34
- Fixed petstore demo link
- Pick up bug fixes from bravado-core 1.1.0
- Renamed ResponseLike to IncomingResponse to match bravado-core
- Initial version - large refactoring/rewrite of swagger-py 0.7.5 to support Swagger 2.0