Remove six as a dependency and fix unit tests.
Review Request #9426 — Created Dec. 5, 2017 and submitted
The dependency on
six
was problematic, as it was getting imported
during the packaging process by way ofkgb/__init__.py
importing the
module that imports six, and this was imported bysetup.py
. That meant
that packaging would fail ifsix
was not already installed. Since we
need so very little from it (iteritems
andtext_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_type
and 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.