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