Changelog¶
11.0.2 (2020-10-27)¶
- When catching and converting exceptions, handle connection errors first - PR #469.
11.0.1 (2020-10-05)¶
- Use IPv4 addresses instead of
localhost
for integration tests - PR #468.
11.0.0 (2020-09-29)¶
- Drop support for Python 3.5 which is EOL end of Sept 2020.
10.6.3 (2020-09-29)¶
- Switch from msgpack-python, which is deprecated, to msgpack - PR #462. Thanks Erik Cederstrand for your contribution!
10.6.2 (2020-05-26)¶
- 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.
10.6.1 (2020-05-22)¶
- 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!
10.6.0 (2020-03-30)¶
- 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.
10.5.0 (2020-02-24)¶
- 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
10.4.3 (2019-11-04)¶
- Some type annotation fixes and improvements, in particular for the response_adapter argument to
HttpFuture
- PR #436
10.4.2 (2019-10-16)¶
- 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
10.4.1 (2019-05-08)¶
- Fix and re-enable integration tests on Windows - PR #417
10.4.0 (2019-05-07)¶
- 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!
10.3.2 (2019-03-25)¶
- 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
bravado.fido_client.FidoResponseAdapter
, it was not returning a unicode string fortext
- PR #412
10.3.1 (2019-02-27)¶
- Fix
bravado.response.BravadoResponseMetadata.is_fallback_result
, it was alwaysTrue
in 10.3.0 - Issue #409, PR #410 bravado.response.BravadoResponseMetadata.handled_exception_info
isNone
again if no exception was handled - PR #410bravado.testing.response_mocks
is now type-annotated - PR #410
10.3.0 (2019-02-20)¶
- bravado is now fully type-annotated - PR #403
- Add ability to cancel a HttpFuture. Third-party HTTP clients will need to implement
cancel
on theirbravado.http_future.FutureAdapter
class to support this - PR #406 - The static method
from_config_dict
ofbravado.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 tobravado.config.bravado_config_from_config_dict()
instead. - PR #407
10.2.2 (2019-01-03)¶
- 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!
10.2.1 (2018-11-16)¶
- Reraise network errors when unmarshalling - PR #397
10.2.0 (2018-10-19)¶
- 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
10.1.0 (2018-06-26)¶
- Add support for non-callable fallback results, stabilize the response API - PR #376
- Add unified connection error handling support, introduce
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
bravado.testing.integration_test
module - PR #378
10.0.1 (2018-06-20)¶
- Add helper classes (in
bravado.testing.response_mocks
) for unit testing code using bravado - PR #375
10.0.0 (2018-06-15)¶
- Re-add ability to force returning fallback results - PR #372. Per-request configuration is now handled by the
new
bravado.config.RequestConfig
class. This change requires an updated version of bravado-asyncio in case you’re using that HTTP client.
9.3.2 (2018-06-15)¶
- 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.
9.3.1 (2018-06-14)¶
- Add ability to force returning fallback results - PR #372
9.3.0 (2018-06-05)¶
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.
9.2.2 (2017-12-19)¶
- Fix msgpack import issue - PR #341. Thanks Jesse Myers for your contribution!
9.2.1 (2017-12-07)¶
- The timeout exception for the requests client should inherit from
requests.exceptions.ReadTimeout
instead ofrequests.exceptions.Timeout
- PR #337
9.2.0 (2017-11-10)¶
- 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
9.1.1 (2017-10-10)¶
- Allow users to pass the tcp_nodelay request parameter to FidoClient requests - PR #319
9.1.0 (2017-08-02)¶
- 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.
9.0.7 (2017-07-05)¶
- Require fido version 4.2.1 so we stay compatible to code catching crochet.TimeoutError
9.0.6 (2017-06-28)¶
- Don’t mangle headers with bytestring values on Python 3
9.0.5 (2017-06-23)¶
- Make sure headers passed in for fetching specs are converted to str as well
9.0.4 (2017-06-22)¶
- Fix regression when passing swagger parameters of type header in
_request_options
introduced by PR #288
9.0.3 (2017-06-21)¶
- 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.
9.0.2 (2017-06-12)¶
_requests_options
headers are casted tostring
to support newer version ofrequests
library.
9.0.1 (2017-06-09)¶
- Convert http method to str while constructing the request to fix an issue with file uploads when using requests library versions before 2.8.
9.0.0 (2017-06-06)¶
- 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]
)
8.4.0 (2016-09-27)¶
- Remove support for Python 2.6, fixing a build failure.
- Switch from Python 3.4 to Python 3.5 for tests.
8.3.0 (2016-06-03)¶
- Bravado using Fido 3.2.0 python 3 ready
8.2.0 (2016-04-29)¶
- 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
8.1.2 (2016-04-18)¶
- Don’t unnecessarily constrain the version of twisted when not using python 2.6
8.1.1 (2016-04-13)¶
- Removed logic to build multipart forms. Using python ‘requests’ instead to build the entire http request.
8.1.0 (2016-04-04)¶
- 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
8.0.1 (2015-12-02)¶
- Require twisted < 15.5.0 since Python 2.6 support was dropped
8.0.0 (2015-11-25)¶
7.0.0 (2015-10-23)¶
- 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.
6.1.1 (2015-10-19)¶
- Fix
IncomingResponse
subclasses to provide access to the http headers. - Requires bravado-core >= 3.1.0
6.1.0 (2015-10-19)¶
- Clients can now access the HTTP response from a service call to access things like headers and status code. See Advanced Usage
6.0.0 (2015-10-12)¶
- User-defined formats are no longer global. The registration mechanism has changed and is now done via configuration. See Configuration
5.0.0 (2015-08-27)¶
- Update ResourceDecorator to return an operation as a CallableOperation instead of a function wrapper (for the docstring). This allows further decoration of the ResourceDecorator.
4.0.0 (2015-08-10)¶
- 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.
3.0.0 (2015-08-03)¶
- 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.
2.1.0 (2015-07-20)¶
- Add warning for deprecated operations
2.0.0 (2015-07-13)¶
- Assume responsibility for http invocation (used to be in bravado-core)
1.1.0 (2015-07-06)¶
- Made bravado compatible with Py34
1.0.0 (2015-06-26)¶
- Fixed petstore demo link
- Pick up bug fixes from bravado-core 1.1.0
1.0.0-rc2 (2015-06-01)¶
- Renamed ResponseLike to IncomingResponse to match bravado-core
1.0.0-rc1 (2015-05-13)¶
- Initial version - large refactoring/rewrite of swagger-py 0.7.5 to support Swagger 2.0