Avg Release Cycle
22 days ago
- Changed a less-than to an equal-to and an or in the dependency markers to widen compatibility with older setuptools releases.
- Changed the dependency markers to widen compatibility with older pip releases.
- It is now possible to pass
no_proxyas a key to the
proxiesdictionary to provide handling similar to the
- When users provide invalid paths to certificate bundle files or
directories Requests now raises
IOError, rather than failing at the time of the HTTPS request with a fairly inscrutable certificate validation error.
- The behavior of
SessionRedirectMixinwas slightly altered.
resolve_redirectswill now detect a redirect by calling
get_redirect_target(response)instead of directly querying
Response.headers['location']. Advanced users will be able to process malformed redirects more easily.
- Changed the internal calculation of elapsed request time to have higher resolution on Windows.
win_inet_ptonas conditional dependency for the
[socks]extra on Windows with Python 2.7.
- 🏁 Changed the proxy bypass implementation on Windows: the proxy bypass check doesn't use forward and reverse DNS requests anymore
- URLs with schemes that begin with
httpbut are not
httpsno longer have their host parts forced to lowercase.
- Much improved handling of non-ASCII
Locationheader values in redirects. Fewer
UnicodeDecodeErrorsare encountered on Python 2, and Python 3 now correctly understands that Latin-1 is unlikely to be the correct encoding.
- 👀 If an attempt to
seekfile to find out its length fails, we now appropriately handle that by aborting our content-length calculations.
HTTPDigestAuthto only respond to auth challenges made on 4XX responses, rather than to all auth challenges.
- 🗄 Fixed some code that was firing
DeprecationWarningon Python 3.6.
- The dismayed person emoticon (
/o\\) no longer has a big head. I'm sure this is what you were all worrying about most.
- ⚡️ Updated bundled urllib3 to v1.21.1.
- ⚡️ Updated bundled chardet to v3.0.2.
- ⚡️ Updated bundled idna to v2.5.
- ⚡️ Updated bundled certifi to 2017.4.17.
- It is now possible to pass
- Only load the
idnalibrary when we've determined we need it. This will save some memory for users.
- ⚡️ Updated bundled urllib3 to 1.20.
- ⚡️ Updated bundled idna to 2.2.
- Only load the
- 🛠 Fixed an issue with JSON encoding detection, specifically detecting big-endian UTF-32 with BOM.
- 🛠 Fixed regression from 2.12.2 where non-string types were rejected in the basic auth parameters. While support for this behaviour has been re-added, the behaviour is deprecated and will be removed in the future.
- 🛠 Fixed regression from v2.12.1 for URLs with schemes that begin with "http". These URLs have historically been processed as though they were HTTP-schemed URLs, and so have had parameters added. This was removed in v2.12.2 in an overzealous attempt to resolve problems with IDNA-encoding those URLs. This change was reverted: the other fixes for IDNA-encoding have been judged to be sufficient to return to the behaviour Requests had before v2.12.0.
- 🛠 Fixed several issues with IDNA-encoding URLs that are technically invalid but which are widely accepted. Requests will now attempt to IDNA-encode a URL if it can but, if it fails, and the host contains only ASCII characters, it will be passed through optimistically. This will allow users to opt-in to using IDNA2003 themselves if they want to, and will also allow technically invalid but still common hostnames.
- 🛠 Fixed an issue where URLs with leading whitespace would raise
- 🛠 Fixed an issue where some URLs without the HTTP or HTTPS schemes would still have HTTP URL preparation applied to them.
- 🛠 Fixed an issue where Unicode strings could not be used in basic auth.
- 🔌 Fixed an issue encountered by some Requests plugins where
constructing a Response object would cause
Response.contentto raise an
- ⚡️ Updated setuptools 'security' extra for the new PyOpenSSL backend in urllib3.
- ⚡️ Updated bundled urllib3 to 1.19.1.
- ⚡️ Updated support for internationalized domain names from IDNA2003 to IDNA2008. This updated support is required for several forms of IDNs and is mandatory for .de domains.
- Much improved heuristics for guessing content lengths: Requests will
no longer read an entire
- Much improved logic for recalculating
- Improved tolerance for file-like objects that have no
tellmethod but do have a
- Anything that is a subclass of
Mappingis now treated like a dictionary by the
- Requests now tolerates empty passwords in proxy credentials, rather than stripping the credentials.
- If a request is made with a file-like object as the body and that request is redirected with a 307 or 308 status code, Requests will now attempt to rewind the body object so it can be replayed.
- When calling
response.close, the call to
closewill be propagated through to non-urllib3 backends.
- 🛠 Fixed issue where the
ALL_PROXYenvironment variable would be preferred over scheme-specific variables like
- 🛠 Fixed issue where non-UTF8 reason phrases got severely mangled by falling back to decoding using ISO 8859-1 instead.
- 🛠 Fixed a bug where Requests would not correctly correlate cookies set when using custom Host headers if those Host headers did not use the native string type for the platform.
- ⚡️ Updated bundled urllib3 to 1.19.
- ⚡️ Updated bundled certifi certs to 2016.09.26.