|
""" |
|
|
|
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')) |
|
|