not a huge deal, encountered it in other places. anyways, many many test cases use `StringIO(some_str)` to pass into functions, so we can't really deprecate support for it.

Help me out here though - why does it actually matter to wrap in Python 2? The issue in Python 3 is that you can't use string methods on bytes, but in Python 2 that's not a problem.  Anyways, we should probably put this in a separate issue so we don't get too sidetracked here.