blob: 9b1ce99b339ae08eb63334393d8d81d54ab26475 [file] [log] [blame]
Guido van Rossum0229bf62000-03-10 23:17:24 +00001""" Python 'unicode-escape' Codec
2
3
4Written by Marc-Andre Lemburg (mal@lemburg.com).
5
6(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
7
8"""
9import codecs
10
11### Codec APIs
12
13class 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_escape_encode
18 decode = codecs.unicode_escape_decode
19
Thomas Woutersa9773292006-04-21 09:43:23 +000020class IncrementalEncoder(codecs.IncrementalEncoder):
21 def encode(self, input, final=False):
22 return codecs.unicode_escape_encode(input, self.errors)[0]
23
Miss Islington (bot)0bff4cc2021-10-14 10:02:20 -070024class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
25 def _buffer_decode(self, input, errors, final):
26 return codecs.unicode_escape_decode(input, errors, final)
Thomas Woutersa9773292006-04-21 09:43:23 +000027
Guido van Rossum0229bf62000-03-10 23:17:24 +000028class StreamWriter(Codec,codecs.StreamWriter):
29 pass
Tim Peters469cdad2002-08-08 20:19:19 +000030
Guido van Rossum0229bf62000-03-10 23:17:24 +000031class StreamReader(Codec,codecs.StreamReader):
Miss Islington (bot)0bff4cc2021-10-14 10:02:20 -070032 def decode(self, input, errors='strict'):
33 return codecs.unicode_escape_decode(input, errors, False)
Guido van Rossum0229bf62000-03-10 23:17:24 +000034
35### encodings module API
36
37def getregentry():
Thomas Woutersa9773292006-04-21 09:43:23 +000038 return codecs.CodecInfo(
39 name='unicode-escape',
40 encode=Codec.encode,
41 decode=Codec.decode,
42 incrementalencoder=IncrementalEncoder,
43 incrementaldecoder=IncrementalDecoder,
44 streamwriter=StreamWriter,
45 streamreader=StreamReader,
46 )