Skip to content

Commit 3dafab5

Browse files
committed
[tools/VersionConv] Drop broken tag support
The VersionConverter convered an edge case of xml files with opening <B0> tags that were missing its closing tag. Support for this is dropped to make sure file are always opened with the proper encoding via lxml instead.
1 parent 804ccb5 commit 3dafab5

1 file changed

Lines changed: 7 additions & 21 deletions

File tree

odml/tools/version_converter.py

Lines changed: 7 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -24,42 +24,28 @@ class VersionConverter(object):
2424
'dtype': 'type'
2525
}
2626

27-
_error_strings = {
28-
'<B0>': ''
29-
}
30-
3127
def __init__(self, filename):
3228
self.filename = filename
3329
self.conversion_log = []
3430

3531
def _parse_xml(self):
3632
"""
37-
_parse_xml checks whether the provided file object can be parsed,
38-
fixes known mismatching elements and returns the parsed lxml tree.
33+
_parse_xml checks whether the provided file object can be parsed
34+
and returns the parsed lxml tree.
3935
:return: ElementTree
4036
"""
37+
# Make pretty print available by resetting format
38+
parser = ET.XMLParser(remove_blank_text=True)
4139
if isinstance(self.filename, io.StringIO):
4240
doc = self.filename.getvalue()
41+
tree = ET.ElementTree(ET.fromstring(doc, parser))
42+
4343
elif os.path.exists(self.filename) and os.path.getsize(self.filename) > 0:
44-
with open(self.filename, 'r+') as file:
45-
doc = file.read()
44+
tree = ET.parse(self.filename, parser)
4645
else:
4746
msg = "Cannot parse provided file object '%s'." % self.filename
4847
raise Exception(msg)
4948

50-
# Fix known mismatching elements
51-
for elem, val in self._error_strings.items():
52-
if elem in doc:
53-
doc = doc.replace(elem, val)
54-
55-
# Make sure encoding is present for the xml parser
56-
if sys.version_info.major > 2:
57-
doc = doc.encode('utf-8')
58-
59-
# Make pretty print available by resetting format
60-
parser = ET.XMLParser(remove_blank_text=True)
61-
tree = ET.ElementTree(ET.fromstring(doc, parser))
62-
6349
return tree
6450

6551
def _parse_json(self):

0 commit comments

Comments
 (0)