requests v2.27.0 Release Notes

Release Date: 2022-01-03 // 4 months ago
  • ๐Ÿ‘Œ Improvements

    • ๐Ÿ‘ Officially added support for Python 3.10. (#5928)

    • โž• Added a requests.exceptions.JSONDecodeError to unify JSON exceptions between Python 2 and 3. This gets raised in the response.json() method, and is backwards compatible as it inherits from previously thrown exceptions. Can be caught from requests.exceptions.RequestException as well. (#5856)

    • ๐Ÿ‘Œ Improved error text for misnamed InvalidSchema and MissingSchema exceptions. This is a temporary fix until exceptions can be renamed (Schema->Scheme). (#6017)

    • ๐Ÿ‘Œ Improved proxy parsing for proxy URLs missing a scheme. This will address recent changes to urlparse in Python 3.9+. (#5917)

    ๐Ÿ›  Bugfixes

    • Fixed defect in extract_zipped_paths which could result in an infinite loop for some paths. (#5851)

    • ๐Ÿ›  Fixed handling for AttributeError when calculating length of files obtained by Tarfile.extractfile(). (#5239)

    • ๐Ÿ›  Fixed urllib3 exception leak, wrapping urllib3.exceptions.InvalidHeader with requests.exceptions.InvalidHeader. (#5914)

    • ๐Ÿ›  Fixed bug where two Host headers were sent for chunked requests. (#5391)

    • ๐Ÿ›  Fixed regression in Requests 2.26.0 where Proxy-Authorization was incorrectly stripped from all requests sent with Session.send. (#5924)

    • ๐Ÿ›  Fixed performance regression in 2.26.0 for hosts with a large number of proxies available in the environment. (#5924)

    • ๐Ÿ›  Fixed idna exception leak, wrapping UnicodeError with requests.exceptions.InvalidURL for URLs with a leading dot (.) in the domain. (#5414)

    ๐Ÿ—„ Deprecations

    • ๐Ÿ‘ Requests support for Python 2.7 and 3.6 will be ending in 2022. While we don't have exact dates, Requests 2.27.x is likely to be the last release series providing support.