Changelog History
Page 4
-
v0.13.0.dev1 Changes
May 06, 20200.13.0.dev1 (May 6th, 2020)
๐ The 0.13.0.dev1 is a pre-release version. To install it, use
pip install httpx --pre
.๐ Fixed
- Passing
http2
flag to proxy dispatchers. (Pull #934) - ๐ Use
httpcore
v0.8.3
which addresses problems in handling of headers when using proxies.
- Passing
-
v0.13.0.dev0 Changes
April 30, 2020๐ The 0.13.0.dev0 is a pre-release version. To install it, use
pip install httpx --pre
.๐ This release switches to
httpcore
for all the internal networking, which means:- ๐ We're using the same codebase for both our sync and async clients.
- ๐ HTTP/2 support is now available with the sync client.
- We no longer have a
urllib3
dependency for our sync client, although there is still an optionalURLLib3Dispatcher
class.
๐ It also means we've had to remove our UDS support, since maintaining that would have meant having to push back our work towards a 1.0 release, which isn't a trade-off we wanted to make.
๐ Changed
- ๐ Use
httpcore
for underlying HTTP transport. Dropurllib3
requirement. (Pull #804)
โ Added
- โ Added
URLLib3Dispatcher
class for optionalurllib3
transport support. (Pull #804) - Streaming multipart uploads. (Pull #857)
๐ Fixed
- ๐ Performance improvement in brotli decoder. (Pull #906)
- ๐ Proper warning level of deprecation notice in
Response.stream
andResponse.raw
. (Pull #908) - ๐ Fix support for generator based WSGI apps. (Pull #887)
โ Removed
- โฌ๏ธ Dropped support for
Client(uds=...)
(Pull #804)
-
v0.12.1 Changes
March 19, 2020๐ Fixed
- Resolved packaging issue, where additional files were being included.
-
v0.12.0 Changes
March 05, 2020๐ The 0.12 release tightens up the API expectations for
httpx
by switching to private module names to enforce better clarity around public API.๐ฆ All imports of
httpx
should import from the top-level package only, such asfrom httpx import Request
, rather than importing from privately namespaced modules such asfrom httpx._models import Request
.โ Added
- Support making response body available to auth classes with
.requires_response_body
. (Pull #803) - ๐ท Export
NetworkError
exception. (Pull #814) - โ Add support for
NO_PROXY
environment variable. (Pull #835)
๐ Changed
- Switched to private module names. (Pull #785)
- โฌ๏ธ Drop redirect looping detection and the
RedirectLoop
exception, instead usingTooManyRedirects
. (Pull #819) - โฌ๏ธ Drop
backend=...
parameter onAsyncClient
, in favour of always autodetectingtrio
/asyncio
. (Pull #791)
๐ Fixed
- ๐ Support basic auth credentials in proxy URLs. (Pull #780)
- ๐ Fix
httpx.Proxy(url, mode="FORWARD_ONLY")
configuration. (Pull #788) - Fallback to setting headers as UTF-8 if no encoding is specified. (Pull #820)
- Close proxy dispatches classes on client close. (Pull #826)
- ๐ Support custom
cert
parameters even ifverify=False
. (Pull #796) - ๐ Don't support invalid dict-of-dicts form data in
data=...
. (Pull #811)
- Support making response body available to auth classes with
-
v0.11.1 Changes
January 17, 2020๐ Fixed
- ๐ Fixed usage of
proxies=...
onClient()
. (Pull #763) - ๐ Support both
zlib
anddeflate
style encodings onContent-Encoding: deflate
. (Pull #758) - ๐ Fix for streaming a redirect response body with
allow_redirects=False
. (Pull #766) - ๐ Handle redirect with malformed Location headers missing host. (Pull #774)
- ๐ Fixed usage of
-
v0.11.0 Changes
January 09, 2020๐ The 0.11 release reintroduces our sync support, so that
httpx
now supports both a standard thread-concurrency API, and an async API.โฌ๏ธ Existing async
httpx
users that are upgrading to 0.11 should ensure that:- Async codebases should always use a client instance to make requests, instead of the top-level API.
- The async client is named as
httpx.AsyncClient()
, instead ofhttpx.Client()
. - ๐ง When instantiating proxy configurations use the
httpx.Proxy()
class, instead of the previoushttpx.HTTPProxy()
. This new configuration class works for configuring both sync and async clients.
๐ We believe the API is now pretty much stable, and are aiming for a 1.0 release sometime on or before April 2020.
๐ Changed
- ๐ Top level API such as
httpx.get(url, ...)
,httpx.post(url, ...)
,httpx.request(method, url, ...)
becomes synchronous. - โ Added
httpx.Client()
for synchronous clients, withhttpx.AsyncClient
being used for async clients. - ๐ง Switched to
proxies=httpx.Proxy(...)
for proxy configuration. - ๐ท Network connection errors are wrapped in
httpx.NetworkError
, rather than exposing lower-level exception types directly.
โ Removed
- The
request.url.origin
property andhttpx.Origin
class are no longer available. - The per-request
cert
,verify
, andtrust_env
arguments are escalated from raising errors if used, to no longer being available. These arguments should be used on a per-client instance instead, or in the top-level API. - The
stream
argument has escalated from raising an error when used, to no longer being available. Use theclient.stream(...)
orhttpx.stream()
streaming API instead.
๐ Fixed
- Redirect loop detection matches against
(method, url)
rather thanurl
. (Pull #734)
-
v0.10.1 Changes
December 31, 2019๐ Fixed
- ๐ Fix issue with concurrent connection acquiry. (Pull #700)
- ๐ Fix write error on closing HTTP/2 connections. (Pull #699)
-
v0.10.0 Changes
December 29, 2019๐ The 0.10.0 release makes some changes that will allow us to support both sync and async interfaces.
In particular with streaming responses the
response.read()
method becomesresponse.aread()
, and theresponse.close()
method becomesresponse.aclose()
.If following redirects explicitly the
response.next()
method becomesresponse.anext()
.๐ Fixed
- End HTTP/2 streams immediately on no-body requests, rather than sending an empty body message. (Pull #682)
- ๐ Improve typing for
Response.request
: switch fromOptional[Request]
toRequest
. (Pull #666) Response.elapsed
now reflects the entire download time. (Pull #687, #692)
๐ Changed
- โ Added
AsyncClient
as a synonym forClient
. (Pull #680) - Switch to
response.aread()
for conditionally reading streaming responses. (Pull #674) - Switch to
response.aclose()
andclient.aclose()
for explicit closing. (Pull #674, #675) - Switch to
response.anext()
for resolving the next redirect response. (Pull #676)
โ Removed
- โ When using a client instance, the per-request usage of
verify
,cert
, andtrust_env
have now escalated from raising a warning to raising an error. You should set these arguments on the client instead. (Pull #617) - โ Removed the undocumented
request.read()
, since end users should not require it.
-
v0.9.5 Changes
December 20, 2019๐ Fixed
- ๐ Fix Host header and HSTS rewrites when an explicit
:80
port is included in URL. (Pull #649) - ๐ Query Params on the URL string are merged with any
params=...
argument. (Pull #653) - More robust behavior when closing connections. (Pull #640)
- More robust behavior when handling HTTP/2 headers with trailing whitespace. (Pull #637)
- ๐ Allow any explicit
Content-Type
header to take precedence over the encoding default. (Pull #633)
- ๐ Fix Host header and HSTS rewrites when an explicit
-
v0.9.4 Changes
December 12, 2019๐ Fixed
- โ Added expiry to Keep-Alive connections, resolving issues with acquiring connections. (Pull #627)
- ๐ Increased flow control windows on HTTP/2, resolving download speed issues. (Pull #629)