| Viewing file:  mklabels.py (1.27 KB)      -rw-r--r-- Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
"""
 webencodings.mklabels
 ~~~~~~~~~~~~~~~~~~~~~
 
 Regenarate the webencodings.labels module.
 
 :copyright: Copyright 2012 by Simon Sapin
 :license: BSD, see LICENSE for details.
 
 """
 
 import json
 try:
 from urllib import urlopen
 except ImportError:
 from urllib.request import urlopen
 
 
 def assert_lower(string):
 assert string == string.lower()
 return string
 
 
 def generate(url):
 parts = ['''\
 """
 
 webencodings.labels
 ~~~~~~~~~~~~~~~~~~~
 
 Map encoding labels to their name.
 
 :copyright: Copyright 2012 by Simon Sapin
 :license: BSD, see LICENSE for details.
 
 """
 
 # XXX Do not edit!
 # This file is automatically generated by mklabels.py
 
 LABELS = {
 ''']
 labels = [
 (repr(assert_lower(label)).lstrip('u'),
 repr(encoding['name']).lstrip('u'))
 for category in json.loads(urlopen(url).read().decode('ascii'))
 for encoding in category['encodings']
 for label in encoding['labels']]
 max_len = max(len(label) for label, name in labels)
 parts.extend(
 '    %s:%s %s,\n' % (label, ' ' * (max_len - len(label)), name)
 for label, name in labels)
 parts.append('}')
 return ''.join(parts)
 
 
 if __name__ == '__main__':
 print(generate('http://encoding.spec.whatwg.org/encodings.json'))
 
 |