STINNER Victor added the comment: > codecs.open() works with bytes-to-bytes codecs.
Oh ok. What are non-text encodings? I found: * base64 * bz2 * hex * quopri * rot13 * uu * zlib It seems like all these codecs can be used with codecs.open() to write bytes strings, except of rot13. Last time I used these codecs was at least 5 years ago. When I ported code to Python 3, I used directly the module implementing the codecs (like base64 module for base64 codec). It's easy to write code working on Python 2 and Python 3 when using directly the module. > In additional the interface of StreamReaderWriter is not fully compatible > with the interface of io classes. StreamReaderWriter has 3 addition attributes: reader, writer and stream. Do you expect that these attributes are used in the wild? I expect that the most common uses of codecs.open() are to read or write text files. The question is if it is easy to update the code for the rare cases using codecs.open() for other purposes. And if it is possible to write code working on Python 2.7 and 3.7. > This would be compatible-breaking change. It's deliberate, this issue breaks the backward compatibility. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue29783> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com