The author and maintainers of the popular Requests library are working on a crucial version 2.0 release. As you can see this new release will include a large number of bug fixes and features which are backwards incompatible with the 1.x branch of Requests. Not to worry though, the transition from 1.x to 2.x will be far less painful than the transition from 0.x to 1.x. Most of the backwards incompatibility arises from how 2.x will handle headers (as will be explained below).

Improving HTTPS proxy support

Perhaps the most exciting part of this upcoming release is the improved proxy support. Version 2 will include support for the CONNECT verb which will make talking to HTTPS services possible from behind a proxy. For example: anyone who wishes to use Requests on PythonAnywhere’s free tier will be able to once version 2 is released. As noted in the pull request, this would not be possible without the amazing work of the contributors to urllib3 – the library on top of which Requests is implemented.

Fixing a subtle bug with headers

Beyond adding proxies, there was a particularly nasty bug on Python 3 where some headers could not be set using native strings. As this was a backwards incompatible change this is only being fixed for the first time in version 2.0. If you have run into this problem your headaches will be long gone.

Adding new convenience methods

Finally, if you are a Requests user who creates their requests carefully by hand, the new method on the Session object will prepare them for you! You no longer have to jump through extra hoops to include the cookies stored on the Session .

Future Requests updates

As soon as Requests 2.0 is out, we will have a full review here, so be sure to subscribe to our Python tag and The Changelog Weekly for further updates.