diff --git a/sleekxmpp/plugins/xep_0092/version.py b/sleekxmpp/plugins/xep_0092/version.py index 46bb27f7..1ca6c15e 100644 --- a/sleekxmpp/plugins/xep_0092/version.py +++ b/sleekxmpp/plugins/xep_0092/version.py @@ -42,7 +42,7 @@ class xep_0092(base_plugin): self.xmpp.register_handler( Callback('Software Version', - StanzaPath('iq@=get/software_version'), + StanzaPath('iq@type=get/software_version'), self._handle_version)) register_stanza_plugin(Iq, Version) diff --git a/sleekxmpp/xmlstream/stanzabase.py b/sleekxmpp/xmlstream/stanzabase.py index 4f1189fd..8b538d29 100644 --- a/sleekxmpp/xmlstream/stanzabase.py +++ b/sleekxmpp/xmlstream/stanzabase.py @@ -991,13 +991,18 @@ class ElementBase(object): """ return self.__class__(xml=copy.deepcopy(self.xml), parent=self.parent) - def __str__(self): + def __str__(self, top_level_ns=True): """ Return a string serialization of the underlying XML object. + + Arguments: + top_level_ns -- Display the top-most namespace. + Defaults to True. """ + stanza_ns = '' if top_level_ns else self.namespace return tostring(self.xml, xmlns='', - stanza_ns=self.namespace, - top_level=True) + stanza_ns=stanza_ns, + top_level = not top_level_ns) def __repr__(self): """ @@ -1198,12 +1203,19 @@ class StanzaBase(ElementBase): return self.__class__(xml=copy.deepcopy(self.xml), stream=self.stream) - def __str__(self): - """Serialize the stanza's XML to a string.""" + def __str__(self, top_level_ns=False): + """ + Serialize the stanza's XML to a string. + + Arguments: + top_level_ns -- Display the top-most namespace. + Defaults to False. + """ + stanza_ns = '' if top_level_ns else self.namespace return tostring(self.xml, xmlns='', - stanza_ns=self.namespace, + stanza_ns=stanza_ns, stream=self.stream, - top_level = True) + top_level = not top_level_ns) # To comply with PEP8, method names now use underscores.