Source code for slixmpp.xmlstream.matcher.stanzapath
# slixmpp.xmlstream.matcher.stanzapath# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# Part of Slixmpp: The Slick XMPP Library# :copyright: (c) 2011 Nathanael C. Fritz# :license: MIT, see LICENSE for more detailsfromtypingimportcast,Listfromslixmpp.xmlstream.matcher.baseimportMatcherBasefromslixmpp.xmlstream.stanzabaseimportfix_ns,StanzaBase
[docs]classStanzaPath(MatcherBase):""" The StanzaPath matcher selects stanzas that match a given "stanza path", which is similar to a normal XPath except that it uses the interfaces and plugins of the stanza instead of the actual, underlying XML. :param criteria: Object to compare some aspect of a stanza against. """_criteria:List[str]_raw_criteria:strdef__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
[docs]defmatch(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.StanzaBase.match()` method for more information. :param stanza: The :class:`~slixmpp.xmlstream.stanzabase.StanzaBase` stanza to compare against. """returnstanza.match(self._criteria)orstanza.match(self._raw_criteria)