Python 3 compatibility

We used six for compatibility and removed all the decoding/encoding stuff as well as tests for it. It made compatibility a whole lot harder first and foremost but it also doesn't add anything to the modern web. If we assume unicode with utf-8 (an assumption that Python 3 makes anyway) then we don't even need the different encodings. All in all, we think it's reasonable to assume that we feed unicode to this module at all times instead of dealing with it on a one-to-one basis.
That's right... And in Python 2, that method returns the counterpart: An "str" object.

But I still don't know why you decoded the value. As I said above, it's all ASCII, and if anything we should be encoding to UTF-8 instead of decoding from UTF-8.

splitlines() can be called on Python 2 str objects and Python 3 byte strings.