This thing is now Py2k and Py3k compatible.

How to do it:

[0] Have excellent test coverage
    Have excellent build tooling
[1] Unicode all the strings
[2] Based on sys.version_info[0]:
    [a] Fix imports
    [b] Shim types
    [c] Punch ducks
[3] Use 2to3 to find problematic code
[4] Run tests on py2k and on py3k
    If test fails: back to 2
[5] ???
[6] Profit!!