Remove six as a dependency and fix unit tests.
Review Request #9426 — Created Dec. 5, 2017 and submitted
The dependency on
sixwas problematic, as it was getting imported
during the packaging process by way ofkgb/__init__.pyimporting the
module that imports six, and this was imported bysetup.py. That meant
that packaging would fail ifsixwas not already installed. Since we
need so very little from it (iteritemsandtext_type), we just
define our own wrapper types.While testing, I noticed my prior change also accidentally broke tests
on Python 3. Those are fixed with this change by importing our
text_typeand plugging in its type name in some error messages instead
of assuming they'reunicode.
Unit tests pass on Python 2 and 3.
I was able to build a package from a fresh virtualenv.