summaryrefslogtreecommitdiff
path: root/slixmpp/xmlstream/matcher/xpath.py
diff options
context:
space:
mode:
authormathieui <mathieui@mathieui.net>2021-04-21 23:20:25 +0200
committermathieui <mathieui@mathieui.net>2021-07-03 11:17:15 +0200
commitfed55d3dda2c01dca7e9b9ea036c4b7b756510ff (patch)
treef58baf97df9a1b1e5c8853999477fc7a9634697d /slixmpp/xmlstream/matcher/xpath.py
parent4931e7e6041ff6c59817d6807b0776a8994d0377 (diff)
downloadslixmpp-fed55d3dda2c01dca7e9b9ea036c4b7b756510ff.tar.gz
slixmpp-fed55d3dda2c01dca7e9b9ea036c4b7b756510ff.tar.bz2
slixmpp-fed55d3dda2c01dca7e9b9ea036c4b7b756510ff.tar.xz
slixmpp-fed55d3dda2c01dca7e9b9ea036c4b7b756510ff.zip
typing: matchers and senders
Leftover error that I cannot fix: * https://github.com/python/mypy/issues/708 Leftover error that I am unsure of what to do: * xml handlers are not properly typed (it seems like nothing in slix is using it, considering a removal instead of adding an Union everywhere)
Diffstat (limited to 'slixmpp/xmlstream/matcher/xpath.py')
-rw-r--r--slixmpp/xmlstream/matcher/xpath.py17
1 files changed, 9 insertions, 8 deletions
diff --git a/slixmpp/xmlstream/matcher/xpath.py b/slixmpp/xmlstream/matcher/xpath.py
index b7503b73..bd41b60a 100644
--- a/slixmpp/xmlstream/matcher/xpath.py
+++ b/slixmpp/xmlstream/matcher/xpath.py
@@ -4,7 +4,8 @@
# Part of Slixmpp: The Slick XMPP Library
# :copyright: (c) 2011 Nathanael C. Fritz
# :license: MIT, see LICENSE for more details
-from slixmpp.xmlstream.stanzabase import ET, fix_ns
+from typing import cast
+from slixmpp.xmlstream.stanzabase import ET, fix_ns, StanzaBase
from slixmpp.xmlstream.matcher.base import MatcherBase
@@ -17,23 +18,23 @@ class MatchXPath(MatcherBase):
If the value of :data:`IGNORE_NS` is set to ``True``, then XPath
expressions will be matched without using namespaces.
"""
+ _criteria: str
- def __init__(self, criteria):
- self._criteria = fix_ns(criteria)
+ def __init__(self, criteria: str):
+ self._criteria = cast(str, fix_ns(criteria))
- def match(self, xml):
+ def match(self, xml: StanzaBase) -> bool:
"""
Compare a stanza's XML contents to an XPath expression.
If the value of :data:`IGNORE_NS` is set to ``True``, then XPath
expressions will be matched without using namespaces.
- :param xml: The :class:`~slixmpp.xmlstream.stanzabase.ElementBase`
+ :param xml: The :class:`~slixmpp.xmlstream.stanzabase.StanzaBase`
stanza to compare against.
"""
- if hasattr(xml, 'xml'):
- xml = xml.xml
+ real_xml = xml.xml
x = ET.Element('x')
- x.append(xml)
+ x.append(real_xml)
return x.find(self._criteria) is not None