aws/aws-cli — pull request #1057 by kyleknap (2014-12-11 00:09:58+00:00)
Title: Use botocore vendoring of six

So I switched the CLI off of six to use botocore's version of six.

There is an interesting scenario for our vendored version of six where if you do something like:
```
from awscli.compat import six
from six.moves import shlex_quote
```
It will try to pull it from the six installed from dateutil which is a dependency of botocore. So, avoid doing that style of importing modules and functions from the vendored six.

Instead, we need to be explicit in how we import modules from six. Currently, something like this is totally fine:
```
from awscli.compat import six

if six.PY3:
#some code
````

But this is not:
```
from awscli.compat import six
from six import PY3

if PY3:
#some code
```

If you ever want to do it of the style of the second one refer to the compat.py file and add the import there if it is not located there. So, In the new format, if you want to import ``shlex_quote``, you would add it to compat.py and do:
```
from awscli.compat import shlex_quote
```

I did my best to try to catch all of them. But, I may have missed some. I expect I missed a few in botocore. So if you run across one please fix it in both botocore and the cli.

cc @jamesls @danielgtaylor