annotate lxmldump.py @ 6:34a89d61dbe7

Merge and cleanup.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 10 May 2021 21:43:00 +0300
parents 274b2091137c 7ce08dea935b
children 4b4299b62f7f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
1 #!/usr/bin/python3 -B
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
2 # coding=utf-8
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
3 ###
4
Matti Hamalainen <ccr@tnsp.org>
parents: 1
diff changeset
4 ### lxmldump - Dump ISO/FDIS 1951 XML file data
Matti Hamalainen <ccr@tnsp.org>
parents: 1
diff changeset
5 ### Programmed and designed by Matti 'ccr' Hämäläinen <ccr@tnsp.org>
Matti Hamalainen <ccr@tnsp.org>
parents: 1
diff changeset
6 ### (C) Copyright 2021 Tecnic Software productions (TNSP)
Matti Hamalainen <ccr@tnsp.org>
parents: 1
diff changeset
7 ###
Matti Hamalainen <ccr@tnsp.org>
parents: 1
diff changeset
8 ### Python 3.7+ required!
0
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
9 ###
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
10 import sys
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
11 import signal
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
12 import re
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
13 from pathlib import Path
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
14 import xml.etree.ElementTree as xmlET
5
274b2091137c Some more work on cleaning this up.
Matti Hamalainen <ccr@tnsp.org>
parents: 4
diff changeset
15 import unicodedata
0
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
16
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
17 assert sys.version_info >= (3, 7)
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
18
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
19
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
20 ###
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
21 ### Default settings
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
22 ###
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
23 pkk_cfg = {
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
24 "dump": False,
5
274b2091137c Some more work on cleaning this up.
Matti Hamalainen <ccr@tnsp.org>
parents: 4
diff changeset
25 "normalize": False,
0
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
26 }
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
27
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
28
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
29 ###
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
30 ### Misc. helper functions, etc
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
31 ###
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
32 def pkk_cleanup():
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
33 return 0
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
34
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
35
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
36 ## Wrapper for print()
5
274b2091137c Some more work on cleaning this up.
Matti Hamalainen <ccr@tnsp.org>
parents: 4
diff changeset
37 def pkk_print(smsg):
274b2091137c Some more work on cleaning this up.
Matti Hamalainen <ccr@tnsp.org>
parents: 4
diff changeset
38 if pkk_cfg["normalize"]:
274b2091137c Some more work on cleaning this up.
Matti Hamalainen <ccr@tnsp.org>
parents: 4
diff changeset
39 sys.stdout.write(unicodedata.normalize("NFC", smsg))
274b2091137c Some more work on cleaning this up.
Matti Hamalainen <ccr@tnsp.org>
parents: 4
diff changeset
40 else:
274b2091137c Some more work on cleaning this up.
Matti Hamalainen <ccr@tnsp.org>
parents: 4
diff changeset
41 sys.stdout.write(smsg)
0
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
42
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
43
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
44 ## Fatal error handler
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
45 def pkk_fatal(smsg):
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
46 print(u"ERROR: "+ smsg)
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
47 sys.exit(1)
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
48
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
49
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
50 ## Handler for SIGINT signals
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
51 def pkk_signal_handler(signal, frame):
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
52 pkk_cleanup()
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
53 print(u"\nQuitting due to SIGINT / Ctrl+C!")
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
54 sys.exit(1)
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
55
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
56
6
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
57 ##
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
58 def pkk_dump_recursive(lnode, indent):
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
59 if lnode.tag == "Example":
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
60 stmp = "".join(lnode.itertext()).strip()
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
61 print("{}{} \"{}\"".format(" " * indent, lnode.tag, stmp))
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
62 else:
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
63 stmp = ""
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
64 if lnode.text != None:
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
65 tmp = str(lnode.text).strip()
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
66 if tmp != "":
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
67 stmp = " \""+ tmp +"\""
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
68
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
69 if len(lnode.attrib) > 0:
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
70 atmp = " "+str(lnode.attrib)
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
71 else:
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
72 atmp = ""
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
73
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
74 pkk_print("{}{}{}{}\n".format(" " * indent, lnode.tag, atmp, stmp))
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
75 for qnode in lnode.findall("./*"):
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
76 pkk_dump_recursive(qnode, indent + 1)
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
77
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
78
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
79 ##
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
80 def pkk_output_node(dnode):
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
81 wlist = []
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
82 dlist = []
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
83 for wnode in dnode.findall("./HeadwordCtn"):
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
84 for qnode in wnode.findall("./SearchForm"):
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
85 wlist.append(str(qnode.text).strip())
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
86
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
87 for qnode in wnode.findall("./Definition"):
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
88 dlist.append(str(qnode.text).strip())
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
89
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
90 for wnode in dnode.findall("./SenseGrp"):
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
91 for qnode in wnode.findall("./Definition"):
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
92 dlist.append(str(qnode.text).strip())
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
93
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
94 pkk_print("{} : {}\n".format(", ".join(wlist), " ; ".join(dlist)))
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
95
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
96
0
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
97 ###
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
98 ### Main program starts
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
99 ###
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
100 signal.signal(signal.SIGINT, pkk_signal_handler)
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
101
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
102
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
103 ### Check if we have arguments
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
104 pkk_show_help = False
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
105 pkk_filenames = []
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
106 argc = 1
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
107 while argc < len(sys.argv):
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
108 arg = sys.argv[argc]
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
109
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
110 needs_param = False
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
111 if argc + 1 < len(sys.argv):
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
112 param = sys.argv[argc + 1]
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
113 else:
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
114 param = None
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
115
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
116 # Check for option type arg
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
117 if arg[0:1] == "-":
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
118 oarg = arg
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
119 arg = arg.lstrip("-")
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
120
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
121 if arg == "help" or arg == "h":
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
122 pkk_show_help = True
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
123 elif arg == "dump" or arg == "d":
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
124 pkk_cfg["dump"] = True
5
274b2091137c Some more work on cleaning this up.
Matti Hamalainen <ccr@tnsp.org>
parents: 4
diff changeset
125 elif arg == "normalize" or arg == "n":
274b2091137c Some more work on cleaning this up.
Matti Hamalainen <ccr@tnsp.org>
parents: 4
diff changeset
126 pkk_cfg["normalize"] = True
0
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
127 else:
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
128 pkk_fatal(u"Invalid option argument '{0}'.".format(oarg))
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
129
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
130 if needs_param and param == None:
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
131 pkk_fatal(u"Option '{0}' requires an argument.".format(oarg))
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
132 else:
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
133 # Non-option argument
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
134 pkk_filenames.append(arg)
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
135
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
136 if needs_param:
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
137 argc += 2
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
138 else:
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
139 argc += 1
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
140
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
141
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
142 ### Show help if requested
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
143 if pkk_show_help or len(pkk_filenames) == 0:
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
144 print(u"lxmldump - Dump ISO/FDIS 1951 XML file data")
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
145 print(u"Usage: {0} <options> <input xml file(s)>".
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
146 format(str(Path(sys.argv[0]).name)))
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
147 print(u"")
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
148 print(u" --help Show this help")
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
149 print(u" -d, --dump Dump mode")
6
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
150 print(u" -n, --normalize Output NFC normalized Unicode")
0
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
151 print(u"")
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
152 sys.exit(0)
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
153
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
154
6
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
155 ### Handle each input file
0
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
156 for filename in pkk_filenames:
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
157 # Parse XML file into element tree
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
158 try:
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
159 uxml = xmlET.parse(filename)
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
160 except Exception as e:
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
161 pkk_fatal(u"SVG/XML parsing failed: {0}".format(str(e)))
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
162
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
163 # Dump output
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
164 try:
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
165 xroot = uxml.getroot()
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
166 for dnode in xroot.findall("./DictionaryEntry"):
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
167 if pkk_cfg["dump"]:
6
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
168 pkk_dump_recursive(dnode, 0)
0
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
169 print("\n\n")
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
170 else:
6
34a89d61dbe7 Merge and cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 5 3
diff changeset
171 pkk_output_node(dnode)
0
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
172
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
173 except (BrokenPipeError, IOError) as e:
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
174 sys.stderr.close()
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
175 sys.exit(1)
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
176
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
177 pkk_cleanup()
bddf1c283e51 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
178 sys.exit(0)