dev (master branch)
- Exceptions are now pickleable, with tests. (Issue #101)
- Fixed default headers not getting passed in some cases. (Issue #99)
urllib3.add_stderr_logger()for quickly enabling STDERR debug logging in urllib3.
- Native full URL parsing (including auth, path, query, fragment) available in
- Built-in redirect will switch method to 'GET' if status code is 303. (Issue #11)
urllib3.PoolManagerstrips the scheme and host before sending the request uri. (Issue #8)
urllib3.exceptions.DecodeErrorexception for when automatic decoding, based on the Content-Type header, fails.
- Fixed bug with pool depletion and leaking connections (Issue #76). Added
explicit connection closing on pool eviction. Added
- 99% -> 100% unit test coverage.
- Minor AppEngine-related fixes.
- Switched from
- Improved url parsing. (Issue #73)
- IPv6 url support. (Issue #72)
- Removed pre-1.0 deprecated API.
- Refactored helpers into a
- Fixed multipart encoding to support list-of-tuples for keys with multiple values. (Issue #48)
- Fixed multiple Set-Cookie headers in response not getting merged properly in Python 3. (Issue #53)
- AppEngine support with Py27. (Issue #61)
encode_multipart_formdatafixes related to Python 3 strings vs bytes.
- Fixed packaging bug of not shipping
test-requirements.txt. (Issue #47)
- Fixed another bug related to when
sslmodule is not available. (Issue #41)
- Location parsing errors now raise
urllib3.exceptions.LocationParseErrorwhich inherits from
- Added Python 3 support (tested on 3.2.2)
- Dropped Python 2.5 support (tested on 2.6.7, 2.7.2)
select.selectfor platforms that support it.
Queue.Queuefor more aggressive connection reusing. Configurable by overriding
ImportErrorduring install when
sslmodule is not available. (Issue #41)
PoolManagerredirects between schemes (such as HTTP -> HTTPS) not completing properly. (Issue #28, uncovered by Issue #10 in v1.1)
eventlet. Removed extraneous unsupported dummyserver testing backends. Added socket-level tests.
- More tests. Achievement Unlocked: 99% Coverage.
dummyserverto its own root namespace module (used for testing).
- Added hostname verification for
VerifiedHTTPSConnectionby vendoring in Py32's
ssl_match_hostname. (Issue #25)
- Fixed cross-host HTTP redirects when using
PoolManager. (Issue #10)
decode_contentbeing ignored when set through
urlopen. (Issue #27)
- Fixed timeout-related bugs. (Issues #17, #23)
- Fixed typo in
VerifiedHTTPSConnectionwhich would only present as a bug if you're using the object manually. (Thanks pyos)
- Made RecentlyUsedContainer (and consequently PoolManager) more thread-safe by wrapping the access log in a mutex. (Thanks @christer)
- Made RecentlyUsedContainer more dict-like (corrected
__getitem__behaviour), with tests. Shouldn't affect core urllib3 code.
- Fixed a bug where the same connection would get returned into the pool twice, causing extraneous "HttpConnectionPool is full" log warnings.
PoolManagerwith LRU expiration of connections (tested and documented).
ProxyManager(needs tests, docs, and confirmation that it works with HTTPS proxies).
- Added optional partial-read support for responses when
preload_content=False. You can now make requests and just read the headers without loading the content.
- Made response decoding optional (default on, same as before).
- Added optional explicit boundary string for
- Convenience request methods are now inherited from
RequestMethods. Old helpers like
post_urlshould be abandoned in favour of the new
request(method, url, ...).
- Refactored code to be even more decoupled, reusable, and extendable.
- License header added to
- Embiggened the documentation: Lots of Sphinx-friendly docstrings in the code
and docs in
docs/and on urllib3.readthedocs.org.
- Embettered all the things!
- Started writing this file.
- Minor bug fixes, code cleanup.
- Better unicode support.
- Minor improvements.
assert_host_nameoptional parameter. Now compatible with proxies.
- Added HTTPS support.
- Minor bug fixes.
- Refactored, broken backwards compatibility with 0.2.
- API to be treated as stable from this version forward.
- Added unit tests.
- Bug fixes.
- First release.