0.15.0 (22nd September 2020)
Added
- Added support for curio. (Pull encode/httpcore#168)
- Added support for event hooks. (Pull #1246)
- Added support for authentication flows which require either sync or async I/O. (Pull #1217)
- Added support for monitoring download progress with
response.num_bytes_downloaded
. (Pull #1268) - Added
Request(content=...)
for byte content, instead of overloadingRequest(data=...)
(Pull #1266) - Added support for all URL components as parameter names when using
url.copy_with(...)
. (Pull #1285) - Neater split between automatically populated headers on
Request
instances, vs defaultclient.headers
. (Pull #1248) - Unclosed
AsyncClient
instances will now raise warnings if garbage collected. (Pull #1197) - Support
Response(content=..., text=..., html=..., json=...)
for creating usable response instances in code. (Pull #1265, #1297) - Support instantiating requests from the low-level transport API. (Pull #1293)
- Raise errors on invalid URL types. (Pull #1259)
Changed
- Cleaned up expected behaviour for URL escaping.
url.path
is now URL escaped. (Pull #1285) - Cleaned up expected behaviour for bytes vs str in URL components.
url.userinfo
andurl.query
are not URL escaped, and so return bytes. (Pull #1285) - Drop
url.authority
property in favour ofurl.netloc
, since "authority" was semantically incorrect. (Pull #1285) - Drop
url.full_path
property in favour ofurl.raw_path
, for better consistency with other parts of the API. (Pull #1285) - No longer use the
chardet
library for auto-detecting charsets, instead defaulting to a simpler approach when no charset is specified. (#1269)
Fixed
- Swapped ordering of redirects and authentication flow. (Pull #1267)
.netrc
lookups should use host, not host+port. (Pull #1298)
Removed
- The
URLLib3Transport
class no longer exists. We've published it instead as an example of a custom transport class. (Pull #1182) - Drop
request.timer
attribute, which was being used internally to setresponse.elapsed
. (Pull #1249) - Drop
response.decoder
attribute, which was being used internally. (Pull #1276) Request.prepare()
is now a private method. (Pull #1284)