Skip to content
Snippets Groups Projects

Better error message

Merged Alexander Schlemmer requested to merge f-better-error-message into dev
All threads resolved!
Files
15
@@ -195,7 +195,10 @@ class XMLTagConverter(Converter):
class XMLTextNodeConverter(Converter):
def create_children(self, generalStore: GeneralStore, element: StructureElement):
raise NotImplementedError()
"""
This converter does not create children.
"""
return []
def typecheck(self, element: StructureElement):
"""
@@ -210,6 +213,47 @@ class XMLTextNodeConverter(Converter):
if not isinstance(element, XMLTextNode):
raise TypeError("Element must be an instance of XMLTextNode.")
raise NotImplementedError()
vardict = {}
m_text = re.match(self.definition["match_text"], element.value,
re.DOTALL)
if m_text is None:
return None
vardict.update(m_text.groupdict())
return vardict
class XMLAttributeNodeConverter(Converter):
def create_children(self, generalStore: GeneralStore, element: StructureElement):
"""
This converter does not create children.
"""
return []
def typecheck(self, element: StructureElement):
"""
Check whether the current structure element can be converted using
this converter.
"""
return isinstance(element, XMLAttributeNode)
def match(self, element: StructureElement) -> Optional[dict]:
# See https://gitlab.indiscale.com/caosdb/src/caosdb-crawler/-/issues/145
# for a suggestion for the design of the matching algorithm.
if not isinstance(element, XMLAttributeNode):
raise TypeError("Element must be an instance of XMLAttributeNode.")
vardict = {}
return None
m_name = re.match(self.definition["match_name"], element.key)
if m_name is None:
return None
vardict.update(m_name.groupdict())
m_value = re.match(self.definition["match_value"], element.value)
if m_value is None:
return None
vardict.update(m_value.groupdict())
return vardict
Loading