"M.-A. Lemburg" <mal@lemburg.com> writes: > > This is a bit unfriendly though: > > > > >>> "bobbins".encode("gzip") > > Traceback (most recent call last): > > File "<stdin>", line 1, in ? > > File "/usr/local/src/python/dist/build/Lib/encodings/__init__.py", line 59, in search_function > > raise SystemError,\ > > SystemError: module "encodings.gzip" failed to register > > > > I thought SystemErrors shouldn't ever happen (isn't it what gets > > raised for an illegal opcode, for example?). > > This is due to the zlib module not being installed. No it's not, actually. I *thought* I was getting the error message because the zlib encoding doesn't alias itself to gzip (whether it should or not is another question). But in fact if you specify a bogus encoding you get a nice error message: >>> "bobbins".encode("nonesuch") Traceback (most recent call last): File "<stdin>", line 1, in ? LookupError: unknown encoding but: >>> "bobbins".encode("sys") Traceback (most recent call last): File "<stdin>", line 1, in ? File "/usr/local/src/python/dist/build/Lib/encodings/__init__.py", line 59, in search_function raise SystemError,\ SystemError: module "encodings.sys" failed to register I have to admit I don't really know what's going on here, but the error is just confusing. > The reason for the search function in encodings/__init__.py raising > a SystemError is that it did find a module named gzip, but this > module does not export the needed registration API getregentry(). Yep. > Perhaps it should just raise a LookupError instead, though... Might be easiest. > > urlencode would be nice. Maybe re.escape, too. html entities? > > That's probably a bigger can of worms, but > > > > print "<p>%s</p>"%text.encode("html") > > > > seems delightfully simpleminded. > > Right. That's the idea... volunteers are welcome :-) Maybe this evening. > There are lots of those little "escape this, encode that" tasks > which could benefit from the codec machinery. The ones you > mention would certainly be good candidates. pickle and marshal > would also be a good to have wrapped as codecs. Ooh yes, hadn't thought of them. 'YW5vdGhlci1mdW4tdG95\n'.decode("base64")-ly y'rs M. -- There's an aura of unholy black magic about CLISP. It works, but I have no idea how it does it. I suspect there's a goat involved somewhere. -- Johann Hibschman, comp.lang.scheme
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4