Python 3.4-3.7 support;
[librarian.git] / scripts / fn_qualifiers_list_from_redmine.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8
3
4 """
5 This scripts reads the table of footnote qualifiers from Redmine
6 and produces contents of fn_qualifiers.py – a list of valid qualifiers.
7 """
8 from __future__ import print_function, unicode_literals
9
10 from lxml import etree
11 from six.moves.urllib.request import urlopen
12
13 url = 'http://redmine.nowoczesnapolska.org.pl/projects/wl-publikacje/wiki/Lista_skr%C3%B3t%C3%B3w'
14
15 parser = etree.HTMLParser()
16 tree = etree.parse(urlopen(url), parser)
17
18 print("""\
19 # -*- coding: utf-8
20 \"""
21 List of standard footnote qualifiers.
22 This file is generated by scripts/fn_qualifiers_list_from_wiki.py,
23 do not edit it.
24 \"""
25 from __future__ import unicode_literals
26
27
28 FN_QUALIFIERS = {""")
29
30 for td in tree.findall('//td'):
31     print(("    '%s': '%s'," % (
32         td[0].text.replace('\\', '\\\\').replace("'", "\\'"),
33         td[0].tail.strip(' -').replace('\\', '\\\\').replace("'", "\\'")
34     )))
35
36 print("""    }""")