summary: don't explicitly str() something we're about to %s
str() is wrong on Python 3 here, and %s implicitly calls str() anyway,
so this was just extra dancing for no reason.
context: implement both __bytes__ and __str__ for Python 3
They're very similar, for obvious reasons.
context: work around `long` not existing on Python 3
I can't figure out what this branch is even trying to accomplish, and
it was introduced in
ac89a23ca814 which doesn't really shed any
insight into why longs are treated differently from ints.
phases: explicitly evaluate list returned by map
On Python 3 map() returns a generator, which bool()s to true even if
it had an empty input set. Work around this by using list() on the
map() result.