boto/boto — pull request #2344 by danielgtaylor (2014-06-24 18:27:32+00:00)
Title: Add backward-compatible support for Python 3.3+

This pull request adds backward-compatible support for :snake:**Python 3**, specifically versions 3.3 and 3.4. It **drops support** for Python 2.5, but continues to work with 2.6 and 2.7. Not all modules work with Python 3 - currently supported are S3, SQS, Kinesis and CloudTrail.

* Modernized most of the codebase to use Python 3 compatible exception handling, iterator handling, etc.
* Vendored the `six` library to help with porting
* Updated the `boto.compat` module to help keep code clean similar to [Botocore](https://github.com/boto/botocore/blob/develop/botocore/compat.py)
* Added a [porting guide](https://github.com/danielgtaylor/boto/blob/py2and3/docs/source/porting_guide.rst) to help community members port modules to Python 3
* Update dev dependency versions, add `coverage` to default requirements
* Got unit and integration tests passing using a whitelist for Python 3 (see `tests/test.py` and the new `default` target)
* Fixed a few integration tests that were failing on Python 2.6.x
* Updated `tox` config to run against Python 3.3 and 3.4
* Updated Travis CI to run tests for Python 3.3 and 3.4 ([example](https://travis-ci.org/danielgtaylor/boto/builds/28272351))
* Updated README and Sphinx docs about Python 3

Please take a look @jamesls, @garnaat, @toastdriven.