@alefnula yeah, I mean half the module is copied over from six (with explicit attribution) :). The major difference is that it doesn't use the `moves` namespace.

I'm really surprised because I didn't even realize the `io` module was available in Python 2.X. Does TextIOWrapper have the read1 issue that Python 3.2 has?

I don't understand the difference between StringIO and BytesIO in 2.X. Isn't `str` equivalent to `bytes` in Python 3. (or at least `bytes` is a synonym for `str` in 2.X)