diff --git a/src/linkahead/common/models.py b/src/linkahead/common/models.py index 326e5f6d2307cf961fb440003a8a1a68cdbc4d43..ed80c60051f4c6c58c920490aa5363a135643085 100644 --- a/src/linkahead/common/models.py +++ b/src/linkahead/common/models.py @@ -1860,12 +1860,12 @@ class QueryTemplate(): @staticmethod def _from_xml(xml: etree._Element): - if xml.tag.lower() == "querytemplate": + if str(xml.tag).lower() == "querytemplate": q = QueryTemplate(name=xml.get("name"), description=xml.get("description"), query=None) for e in xml: - if e.tag.lower() == "query": + if str(e.tag).lower() == "query": q.query = e.text else: child = _parse_single_xml_element(e) @@ -1902,7 +1902,7 @@ class QueryTemplate(): ret = Messages() for m in self.messages: - if m.type.lower() == "error": + if str(m.type).lower() == "error": ret.append(m) return ret @@ -2732,7 +2732,7 @@ class ParentList(list): # by name for e in self: - if e.name is not None and e.name.lower() == parent.name.lower(): + if e.name is not None and str(e.name).lower() == str(parent.name).lower(): list.remove(self, e) return @@ -4885,7 +4885,7 @@ class Query(): self.etag = q.get("etag") for m in q: - if m.tag.lower() == 'warning' or m.tag.lower() == 'error': + if str(m.tag).lower() == 'warning' or str(m.tag).lower() == 'error': self.messages.append(_parse_single_xml_element(m)) else: self.q = q @@ -5092,13 +5092,13 @@ class DropOffBox(list): xml = etree.fromstring(body) for child in xml: - if child.tag.lower() == "stats": + if str(child.tag).lower() == "stats": infoelem = child break for child in infoelem: - if child.tag.lower() == "dropoffbox": + if str(child.tag).lower() == "dropoffbox": dropoffboxelem = child break @@ -5273,36 +5273,36 @@ def _parse_single_xml_element(elem: etree._Element): "entity": Entity, } - if elem.tag.lower() in classmap: - klass = classmap.get(elem.tag.lower()) + if str(elem.tag).lower() in classmap: + klass = classmap.get(str(elem.tag).lower()) if klass is None: raise LinkAheadException("No class for tag '{}' found.".format(elem.tag)) entity = klass() Entity._from_xml(entity, elem) return entity - elif elem.tag.lower() == "version": + elif str(elem.tag).lower() == "version": return Version.from_xml(elem) - elif elem.tag.lower() == "state": + elif str(elem.tag).lower() == "state": return State.from_xml(elem) - elif elem.tag.lower() == "emptystring": + elif str(elem.tag).lower() == "emptystring": return "" - elif elem.tag.lower() == "value": - if len(elem) == 1 and elem[0].tag.lower() == "emptystring": + elif str(elem.tag).lower() == "value": + if len(elem) == 1 and str(elem[0].tag).lower() == "emptystring": return "" - elif len(elem) == 1 and elem[0].tag.lower() in classmap: + elif len(elem) == 1 and str(elem[0].tag).lower() in classmap: return _parse_single_xml_element(elem[0]) elif elem.text is None or elem.text.strip() == "": return None return str(elem.text.strip()) - elif elem.tag.lower() == "querytemplate": + elif str(elem.tag).lower() == "querytemplate": return QueryTemplate._from_xml(elem) - elif elem.tag.lower() == 'query': + elif str(elem.tag).lower() == 'query': return Query(elem) - elif elem.tag.lower() == 'history': + elif str(elem.tag).lower() == 'history': return Message(type='History', description=elem.get("transaction")) - elif elem.tag.lower() == 'stats': + elif str(elem.tag).lower() == 'stats': counts = elem.find("counts") if counts is None: raise LinkAheadException("'stats' element without a 'count' found.") diff --git a/src/linkahead/common/state.py b/src/linkahead/common/state.py index e352f82d9820620d1692cb6337eb218210e799e6..b708ca13cb0a648aa2ca00507f39a531e4f55d14 100644 --- a/src/linkahead/common/state.py +++ b/src/linkahead/common/state.py @@ -20,11 +20,11 @@ # ** end header from __future__ import annotations # Can be removed with 3.10. -import copy -from lxml import etree +import copy from typing import TYPE_CHECKING -import sys + +from lxml import etree if TYPE_CHECKING: from typing import Optional @@ -87,7 +87,8 @@ class Transition: return self._to_state def __repr__(self): - return f'Transition(name="{self.name}", from_state="{self.from_state}", to_state="{self.to_state}", description="{self.description}")' + return (f'Transition(name="{self.name}", from_state="{self.from_state}", ' + f'to_state="{self.to_state}", description="{self.description}")') def __eq__(self, other): return ( @@ -103,9 +104,9 @@ class Transition: @staticmethod def from_xml(xml: etree._Element) -> "Transition": to_state = [to.get("name") - for to in xml if to.tag.lower() == "tostate"] + for to in xml if str(to.tag).lower() == "tostate"] from_state = [ - from_.get("name") for from_ in xml if from_.tag.lower() == "fromstate" + from_.get("name") for from_ in xml if str(from_.tag).lower() == "fromstate" ] return Transition( name=xml.get("name"), @@ -199,7 +200,7 @@ class State: result._id = xml.get("id") result._description = xml.get("description") transitions = [ - Transition.from_xml(t) for t in xml if t.tag.lower() == "transition" + Transition.from_xml(t) for t in xml if str(t.tag).lower() == "transition" ] if transitions: result._transitions = set(transitions)