Skip to content

Commit 3bf7212

Browse files
committed
[tools/dict_parser] Err handle Sec/Prop creation
Adding error handling to the DictReaders Section and Property creation to allow recovering an invalid document.
1 parent e461fca commit 3bf7212

1 file changed

Lines changed: 14 additions & 3 deletions

File tree

odml/tools/dict_parser.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,14 @@ def parse_sections(self, section_list):
312312
# Make sure to always use the correct odml format attribute name
313313
sec_attrs[odmlfmt.Section.map(attr)] = content
314314

315-
sec = odmlfmt.Section.create(**sec_attrs)
315+
try:
316+
sec = odmlfmt.Section.create(**sec_attrs)
317+
except Exception as exc:
318+
msg = "Error trying to create Section (%s)\n%s" % (sec_attrs, str(exc))
319+
self.error(msg)
320+
# If recovered in ignore_error mode, return empty list
321+
return odml_sections
322+
316323
for prop in sec_props:
317324
sec.append(prop)
318325

@@ -348,7 +355,11 @@ def parse_properties(self, props_list):
348355
# Make sure to always use the correct odml format attribute name
349356
prop_attrs[odmlfmt.Property.map(attr)] = content
350357

351-
prop = odmlfmt.Property.create(**prop_attrs)
352-
odml_props.append(prop)
358+
try:
359+
prop = odmlfmt.Property.create(**prop_attrs)
360+
odml_props.append(prop)
361+
except Exception as exc:
362+
msg = "Error trying to create Property (%s)\n%s" % (prop_attrs, str(exc))
363+
self.error(msg)
353364

354365
return odml_props

0 commit comments

Comments
 (0)