2 """ Python Character Mapping Codec for ROT13.
4 See http://ucsub.colorado.edu/~kominek/rot13/ for details.
6 Written by Marc-Andre Lemburg (mal@lemburg.com).
14 class Codec(codecs.Codec):
16 def encode(self,input,errors='strict'):
17 return codecs.charmap_encode(input,errors,encoding_map)
19 def decode(self,input,errors='strict'):
20 return codecs.charmap_decode(input,errors,decoding_map)
22 class IncrementalEncoder(codecs.IncrementalEncoder):
23 def encode(self, input, final=False):
24 return codecs.charmap_encode(input,self.errors,encoding_map)[0]
26 class IncrementalDecoder(codecs.IncrementalDecoder):
27 def decode(self, input, final=False):
28 return codecs.charmap_decode(input,self.errors,decoding_map)[0]
30 class StreamWriter(Codec,codecs.StreamWriter):
33 class StreamReader(Codec,codecs.StreamReader):
36 ### encodings module API
39 return codecs.CodecInfo(
41 encode=Codec().encode,
42 decode=Codec().decode,
43 incrementalencoder=IncrementalEncoder,
44 incrementaldecoder=IncrementalDecoder,
45 streamwriter=StreamWriter,
46 streamreader=StreamReader,
51 decoding_map = codecs.make_identity_dict(range(256))
109 encoding_map = codecs.make_encoding_map(decoding_map)
113 def rot13(infile, outfile):
114 outfile.write(infile.read().encode('rot-13'))
116 if __name__ == '__main__':
118 rot13(sys.stdin, sys.stdout)