On Tue, Jun 2, 2009 at 7:15 PM, samwyse <samw...@gmail.com> wrote: > I have a Python 2.6 program (a code generator, actually) that tries > several methods of compressing a string and chooses the most compact. > It then writes out something like this: > { encoding='bz2_codec', data = '...'} > > I'm having two problems converting this to Py3. First is the absence > of the bz2_codec, among others. It was very convenient for my program > to delay selection of the decoding method until run-time and then have > an easy way to load the appropriate code. Is this gone forever from > the standard libraries?
That appears to be the case. "bz2" is not listed on http://docs.python.org/3.0/library/codecs.html , but it is listed on the counterpart 2.6 doc page. You can always use the `bz2` module instead. Or write your own encoder/decoder for bz2 and register it with the `codecs` module. > Second, I would write my data out using the 'string_escape' codec. > It, too, has been removed; there's a 'unicode_escape' codec which is > similar, but I would rather use a 'byte_escape' codec to produce > literals of the form b'asdf'. Unfortunately, there isn't one that I > can find. I could use the repr function, but that seems less > efficient. Does anyone have any ideas? Thanks. Well, if you can guarantee the string contains only ASCII, you can just unicode_escape it, and then prepend a "b". On the other hand, I don't see any reason why repr() would be inefficient as compared to the codec method. Cheers, Chris -- http://blog.rebertia.com -- http://mail.python.org/mailman/listinfo/python-list