blob: 4690288355c710bc227c0990fb37f36e23186ea1 [file] [log] [blame]
Marc-André Lemburg54480d32000-06-07 09:04:05 +00001""" Python 'undefined' Codec
2
3 This codec will always raise a ValueError exception when being
4 used. It is intended for use by the site.py file to switch off
5 automatic string to Unicode coercion.
6
7Written by Marc-Andre Lemburg (mal@lemburg.com).
8
9(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
10
11"""
12import codecs
13
14### Codec APIs
15
16class Codec(codecs.Codec):
17
18 def encode(self,input,errors='strict'):
Thomas Woutersa9773292006-04-21 09:43:23 +000019 raise UnicodeError("undefined encoding")
Marc-André Lemburg54480d32000-06-07 09:04:05 +000020
21 def decode(self,input,errors='strict'):
Thomas Woutersa9773292006-04-21 09:43:23 +000022 raise UnicodeError("undefined encoding")
23
24class IncrementalEncoder(codecs.IncrementalEncoder):
25 def encode(self, input, final=False):
26 raise UnicodeError("undefined encoding")
27
28class IncrementalDecoder(codecs.IncrementalDecoder):
29 def decode(self, input, final=False):
30 raise UnicodeError("undefined encoding")
Marc-André Lemburg54480d32000-06-07 09:04:05 +000031
32class StreamWriter(Codec,codecs.StreamWriter):
33 pass
Tim Peters469cdad2002-08-08 20:19:19 +000034
Marc-André Lemburg54480d32000-06-07 09:04:05 +000035class StreamReader(Codec,codecs.StreamReader):
36 pass
37
38### encodings module API
39
40def getregentry():
Thomas Woutersa9773292006-04-21 09:43:23 +000041 return codecs.CodecInfo(
42 name='undefined',
43 encode=Codec().encode,
44 decode=Codec().decode,
45 incrementalencoder=IncrementalEncoder,
46 incrementaldecoder=IncrementalDecoder,
47 streamwriter=StreamWriter,
48 streamreader=StreamReader,
49 )