All Versions
Latest Version
Avg Release Cycle
53 days
Latest Release
168 days ago

Changelog History
Page 6

  • v1.10.1 Changes

    February 10, 2015
    • Pools can be used as context managers. (Issue #545)

    • Don't re-use connections which experienced an SSLError. (Issue #529)

    • Don't fail when gzip decoding an empty stream. (Issue #535)

    • โž• Add sha256 support for fingerprint verification. (Issue #540)

    • ๐Ÿ›  Fixed handling of header values containing commas. (Issue #533)

  • v1.10 Changes

    December 14, 2014
    • Disabled SSLv3. (Issue #473)

    • โž• Add Url.url property to return the composed url string. (Issue #394)

    • ๐Ÿ›  Fixed PyOpenSSL + gevent WantWriteError. (Issue #412)

    • ๐Ÿ‘ป MaxRetryError.reason will always be an exception, not string. (Issue #481)

    • ๐Ÿ›  Fixed SSL-related timeouts not being detected as timeouts. (Issue #492)

    • 0๏ธโƒฃ Py3: Use ssl.create_default_context() when available. (Issue #473)

    • Emit InsecureRequestWarning for every insecure HTTPS request. (Issue #496)

    • โš  Emit SecurityWarning when certificate has no subjectAltName. (Issue #499)

    • Close and discard sockets which experienced SSL-related errors. (Issue #501)

    • ๐Ÿ– Handle body param in .request(...). (Issue #513)

    • โฑ Respect timeout with HTTPS proxy. (Issue #505)

    • ๐Ÿ‘ป PyOpenSSL: Handle ZeroReturnError exception. (Issue #520)

  • v1.9.1 Changes

    September 13, 2014
    • Apply socket arguments before binding. (Issue #427)

    • More careful checks if fp-like object is closed. (Issue #435)

    • ๐Ÿ›  Fixed packaging issues of some development-related files not getting included. (Issue #440)

    • Allow performing only fingerprint verification. (Issue #444)

    • โš  Emit SecurityWarning if system clock is waaay off. (Issue #445)

    • ๐Ÿ›  Fixed PyOpenSSL compatibility with PyPy. (Issue #450)

    • ๐Ÿ›  Fixed BrokenPipeError and ConnectionError handling in Py3. (Issue #443)

  • v1.9 Changes

    July 04, 2014
    • Shuffled around development-related files. If you're maintaining a distro package of urllib3, you may need to tweak things. (Issue #415)

    • ๐Ÿ‘€ Unverified HTTPS requests will trigger a warning on the first request. See our new security documentation <>_ for details. (Issue #426)

    • ๐Ÿ†• New retry logic and urllib3.util.retry.Retry configuration object. (Issue #326)

    • All raised exceptions should now wrapped in a urllib3.exceptions.HTTPException-extending exception. (Issue #326)

    • All errors during a retry-enabled request should be wrapped in urllib3.exceptions.MaxRetryError, including timeout-related exceptions which were previously exempt. Underlying error is accessible from the .reason property. (Issue #326)

    • urllib3.exceptions.ConnectionError renamed to urllib3.exceptions.ProtocolError. (Issue #326)

    • Errors during response read (such as IncompleteRead) are now wrapped in urllib3.exceptions.ProtocolError. (Issue #418)

    • Requesting an empty host will raise urllib3.exceptions.LocationValueError. (Issue #417)

    • Catch read timeouts over SSL connections as urllib3.exceptions.ReadTimeoutError. (Issue #419)

    • Apply socket arguments before connecting. (Issue #427)

  • v1.8.3 Changes

    June 23, 2014
    • ๐Ÿ›  Fix TLS verification when using a proxy in Python 3.4.1. (Issue #385)

    • Add disable_cache option to urllib3.util.make_headers. (Issue #393)

    • ๐Ÿ‘ป Wrap socket.timeout exception with urllib3.exceptions.ReadTimeoutError. (Issue #399)

    • ๐Ÿ›  Fixed proxy-related bug where connections were being reused incorrectly. (Issues #366, #369)

    • โž• Added socket_options keyword parameter which allows to define setsockopt configuration of new sockets. (Issue #397)

    • โœ‚ Removed HTTPConnection.tcp_nodelay in favor of HTTPConnection.default_socket_options. (Issue #397)

    • ๐Ÿ›  Fixed TypeError bug in Python 2.6.4. (Issue #411)

  • v1.8.2 Changes

    April 17, 2014
    • ๐Ÿ›  Fix urllib3.util not being included in the package.
  • v1.8.1 Changes

    April 17, 2014
    • ๐Ÿ›  Fix AppEngine bug of HTTPS requests going out as HTTP. (Issue #356)

    • ๐Ÿ“ฆ Don't install dummyserver into site-packages as it's only needed for the test suite. (Issue #362)

    • โž• Added support for specifying source_address. (Issue #352)

  • v1.8 Changes

    March 04, 2014
    • ๐Ÿ‘Œ Improved url parsing in urllib3.util.parse_url (properly parse '@' in username, and blank ports like 'hostname:').

    • ๐Ÿ†• New urllib3.connection module which contains all the HTTPConnection objects.

    • ๐Ÿ›  Several urllib3.util.Timeout-related fixes. Also changed constructor signature to a more sensible order. [Backwards incompatible] (Issues #252, #262, #263)

    • Use backports.ssl_match_hostname if it's installed. (Issue #274)

    • โž• Added .tell() method to urllib3.response.HTTPResponse which returns the number of bytes read so far. (Issue #277)

    • ๐Ÿ‘Œ Support for platforms without threading. (Issue #289)

    • Expand default-port comparison in HTTPConnectionPool.is_same_host to allow a pool with no specified port to be considered equal to to an HTTP/HTTPS url with port 80/443 explicitly provided. (Issue #305)

    • ๐Ÿ‘Œ Improved default SSL/TLS settings to avoid vulnerabilities. (Issue #309)

    • ๐Ÿ›  Fixed urllib3.poolmanager.ProxyManager not retrying on connect errors. (Issue #310)

    • Disable Nagle's Algorithm on the socket for non-proxies. A subset of requests will send the entire HTTP request ~200 milliseconds faster; however, some of the resulting TCP packets will be smaller. (Issue #254)

    • Increased maximum number of SubjectAltNames in urllib3.contrib.pyopenssl from the default 64 to 1024 in a single certificate. (Issue #318)

    • Headers are now passed and stored as a custom urllib3.collections_.HTTPHeaderDict object rather than a plain dict. (Issue #329, #333)

    • Headers no longer lose their case on Python 3. (Issue #236)

    • 0๏ธโƒฃ urllib3.contrib.pyopenssl now uses the operating system's default CA certificates on inject. (Issue #332)

    • Requests with retries=False will immediately raise any exceptions without wrapping them in MaxRetryError. (Issue #348)

    • ๐Ÿ›  Fixed open socket leak with SSL-related failures. (Issue #344, #348)

  • v1.7.1 Changes

    September 25, 2013
    • โž• Added granular timeout support with new urllib3.util.Timeout class. (Issue #231)

    • ๐Ÿ›  Fixed Python 3.4 support. (Issue #238)

  • v1.7 Changes

    August 14, 2013
    • โœ… More exceptions are now pickle-able, with tests. (Issue #174)

    • ๐Ÿ›  Fixed redirecting with relative URLs in Location header. (Issue #178)

    • ๐Ÿ‘Œ Support for relative urls in Location: ... header. (Issue #179)

    • urllib3.response.HTTPResponse now inherits from io.IOBase for bonus file-like functionality. (Issue #187)

    • Passing assert_hostname=False when creating a HTTPSConnectionPool will skip hostname verification for SSL connections. (Issue #194)

    • ๐Ÿ†• New method which acts as a generator wrapped around .read(...). (Issue #198)

    • ๐Ÿ“œ IPv6 url parsing enforces brackets around the hostname. (Issue #199)

    • ๐Ÿ›  Fixed thread race condition in urllib3.poolmanager.PoolManager.connection_from_host(...) (Issue #204)

    • 0๏ธโƒฃ ProxyManager requests now include non-default port in Host: ... header. (Issue #217)

    • โž• Added HTTPS proxy support in ProxyManager. (Issue #170 #139)

    • ๐Ÿ†• New RequestField object can be passed to the fields=... param which can specify headers. (Issue #220)

    • Raise urllib3.exceptions.ProxyError when connecting to proxy fails. (Issue #221)

    • ๐Ÿ‘‰ Use international headers when posting file names. (Issue #119)

    • ๐Ÿ‘Œ Improved IPv6 support. (Issue #203)