Martin v. Löwis | 9789aef | 2003-01-26 11:30:36 +0000 | [diff] [blame] | 1 | """ Python 'iconv' Codec |
| 2 | |
| 3 | |
| 4 | Written by Hye-Shik Chang (perky@FreeBSD.org). |
| 5 | |
| 6 | Copyright(c) Python Software Foundation, All Rights Reserved. NO WARRANTY. |
| 7 | |
| 8 | """ |
| 9 | |
| 10 | import _iconv_codec |
| 11 | import codecs |
| 12 | |
| 13 | def lookup(enc): |
| 14 | class IconvCodec(_iconv_codec.iconvcodec, codecs.Codec): |
| 15 | encoding = enc |
| 16 | |
| 17 | try: |
| 18 | c = IconvCodec() |
| 19 | |
| 20 | class IconvStreamReader(IconvCodec, codecs.StreamReader): |
| 21 | __init__ = codecs.StreamReader.__init__ |
| 22 | class IconvStreamWriter(IconvCodec, codecs.StreamWriter): |
| 23 | __init__ = codecs.StreamWriter.__init__ |
| 24 | |
| 25 | return ( |
| 26 | c.encode, c.decode, |
| 27 | IconvStreamReader, IconvStreamWriter |
| 28 | ) |
| 29 | except ValueError: |
| 30 | return None |
| 31 | |
| 32 | codecs.register(lookup) |
| 33 | |
| 34 | # ex: ts=8 sts=4 et |