diff options
author | mathieui <mathieui@mathieui.net> | 2021-04-21 23:20:25 +0200 |
---|---|---|
committer | mathieui <mathieui@mathieui.net> | 2021-07-03 11:17:15 +0200 |
commit | fed55d3dda2c01dca7e9b9ea036c4b7b756510ff (patch) | |
tree | f58baf97df9a1b1e5c8853999477fc7a9634697d /slixmpp/xmlstream/matcher/stanzapath.py | |
parent | 4931e7e6041ff6c59817d6807b0776a8994d0377 (diff) | |
download | slixmpp-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/stanzapath.py')
-rw-r--r-- | slixmpp/xmlstream/matcher/stanzapath.py | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/slixmpp/xmlstream/matcher/stanzapath.py b/slixmpp/xmlstream/matcher/stanzapath.py index 1bf3fa8e..b7de3ee2 100644 --- a/slixmpp/xmlstream/matcher/stanzapath.py +++ b/slixmpp/xmlstream/matcher/stanzapath.py @@ -4,8 +4,9 @@ # Part of Slixmpp: The Slick XMPP Library # :copyright: (c) 2011 Nathanael C. Fritz # :license: MIT, see LICENSE for more details +from typing import cast, List from slixmpp.xmlstream.matcher.base import MatcherBase -from slixmpp.xmlstream.stanzabase import fix_ns +from slixmpp.xmlstream.stanzabase import fix_ns, StanzaBase class StanzaPath(MatcherBase): @@ -17,22 +18,28 @@ class StanzaPath(MatcherBase): :param criteria: Object to compare some aspect of a stanza against. """ - - def __init__(self, criteria): - self._criteria = fix_ns(criteria, split=True, - propagate_ns=False, - default_ns='jabber:client') + _criteria: List[str] + _raw_criteria: str + + def __init__(self, criteria: str): + self._criteria = cast( + List[str], + fix_ns( + criteria, split=True, propagate_ns=False, + default_ns='jabber:client' + ) + ) self._raw_criteria = criteria - def match(self, stanza): + def match(self, stanza: StanzaBase) -> bool: """ Compare a stanza against a "stanza path". A stanza path is similar to an XPath expression, but uses the stanza's interfaces and plugins instead of the underlying XML. See the documentation for the stanza - :meth:`~slixmpp.xmlstream.stanzabase.ElementBase.match()` method + :meth:`~slixmpp.xmlstream.stanzabase.StanzaBase.match()` method for more information. - :param stanza: The :class:`~slixmpp.xmlstream.stanzabase.ElementBase` + :param stanza: The :class:`~slixmpp.xmlstream.stanzabase.StanzaBase` stanza to compare against. """ return stanza.match(self._criteria) or stanza.match(self._raw_criteria) |