[code.view]

[top] / python / PyMOTW / codecs / codecs_invertcaps_charmap.py

     #!/usr/bin/env python
     # encoding: utf-8
     #
     # Copyright (c) 2010 Doug Hellmann.  All rights reserved.
     #
     """Character mapping encoder
     """
     #end_pymotw_header
     
     import codecs
     import string
     
     # Map every character to itself
     decoding_map = codecs.make_identity_dict(range(256))
     
     # Make a list of pairs of ordinal values for the lower and upper case
     # letters
     pairs = zip([ ord(c) for c in string.ascii_lowercase],
                 [ ord(c) for c in string.ascii_uppercase])
     
     # Modify the mapping to convert upper to lower and lower to upper.
     decoding_map.update( dict( (upper, lower) for (lower, upper) in pairs) )
     decoding_map.update( dict( (lower, upper) for (lower, upper) in pairs) )
     
     # Create a separate encoding map.
     encoding_map = codecs.make_encoding_map(decoding_map)
     
     if __name__ == '__main__':
         print codecs.charmap_encode('abc.DEF', 'strict', encoding_map)
         print codecs.charmap_decode('abc.DEF', 'strict', decoding_map)
         print encoding_map == decoding_map
         
     

[top] / python / PyMOTW / codecs / codecs_invertcaps_charmap.py

contact | logmethods.com