• 
      

    Remove six as a dependency and fix unit tests.

    Review Request #9426 — Created Dec. 5, 2017 and submitted — Latest diff uploaded

    Information

    kgb
    master
    298bad5...

    Reviewers

    kgb

    The dependency on six was problematic, as it was getting imported
    during the packaging process by way of kgb/__init__.py importing the
    module that imports six, and this was imported by setup.py. That meant
    that packaging would fail if six was not already installed. Since we
    need so very little from it (iteritems and text_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're unicode.

    Unit tests pass on Python 2 and 3.

    I was able to build a package from a fresh virtualenv.