- Minor AppEngine-related fixes.
- Switched from
mimetools.choose_boundarytouuid.uuid4().
- Removed pre-1.0 deprecated API.
- Refactored helpers into a
urllib3.utilsubmodule. - 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)
- Minor
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 fromValueError.
- Added Python 3 support (tested on 3.2.2)
- Dropped Python 2.5 support (tested on 2.6.7, 2.7.2)
- Use
select.pollinstead ofselect.selectfor platforms that support it. - Use
Queue.LifoQueueinstead ofQueue.Queuefor more aggressive connection reusing. Configurable by overridingConnectionPool.QueueCls. - Fixed
ImportErrorduring install whensslmodule is not available. (Issue #41) - Fixed
PoolManagerredirects between schemes (such as HTTP -> HTTPS) not completing properly. (Issue #28, uncovered by Issue #10 in v1.1) - Ported
dummyserverto usetornadoinstead ofwebob+eventlet. Removed extraneous unsupported dummyserver testing backends. Added socket-level tests. - More tests. Achievement Unlocked: 99% Coverage.
- Refactored
dummyserverto its own root namespace module (used for testing). - Added hostname verification for
VerifiedHTTPSConnectionby vendoring in Py32'sssl_match_hostname. (Issue #25) - Fixed cross-host HTTP redirects when using
PoolManager. (Issue #10) - Fixed
decode_contentbeing ignored when set throughurlopen. (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
__delitem__and__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.
- Added
PoolManagerwith LRU expiration of connections (tested and documented). - Added
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
encode_multipart_formdata. - Convenience request methods are now inherited from
RequestMethods. Old helpers likeget_urlandpost_urlshould be abandoned in favour of the newrequest(method, url, ...). - Refactored code to be even more decoupled, reusable, and extendable.
- License header added to
.pyfiles. - 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.
- Added
VerifiedHTTPSConnection. - Added
NTLMConnectionPoolin contrib. - Minor improvements.
- Added
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.