|
1 """ Python 'unicode-internal' Codec |
|
2 |
|
3 |
|
4 Written by Marc-Andre Lemburg (mal@lemburg.com). |
|
5 |
|
6 (c) Copyright CNRI, All Rights Reserved. NO WARRANTY. |
|
7 |
|
8 """ |
|
9 import codecs |
|
10 |
|
11 ### Codec APIs |
|
12 |
|
13 class Codec(codecs.Codec): |
|
14 |
|
15 # Note: Binding these as C functions will result in the class not |
|
16 # converting them to methods. This is intended. |
|
17 encode = codecs.unicode_internal_encode |
|
18 decode = codecs.unicode_internal_decode |
|
19 |
|
20 class IncrementalEncoder(codecs.IncrementalEncoder): |
|
21 def encode(self, input, final=False): |
|
22 return codecs.unicode_internal_encode(input, self.errors)[0] |
|
23 |
|
24 class IncrementalDecoder(codecs.IncrementalDecoder): |
|
25 def decode(self, input, final=False): |
|
26 return codecs.unicode_internal_decode(input, self.errors)[0] |
|
27 |
|
28 class StreamWriter(Codec,codecs.StreamWriter): |
|
29 pass |
|
30 |
|
31 class StreamReader(Codec,codecs.StreamReader): |
|
32 pass |
|
33 |
|
34 ### encodings module API |
|
35 |
|
36 def getregentry(): |
|
37 return codecs.CodecInfo( |
|
38 name='unicode-internal', |
|
39 encode=Codec.encode, |
|
40 decode=Codec.decode, |
|
41 incrementalencoder=IncrementalEncoder, |
|
42 incrementaldecoder=IncrementalDecoder, |
|
43 streamwriter=StreamWriter, |
|
44 streamreader=StreamReader, |
|
45 ) |