From 450c31334044655053b67ff984cbe4d57b445c44 Mon Sep 17 00:00:00 2001 From: Lance Stout Date: Fri, 18 Mar 2011 17:30:29 -0400 Subject: [PATCH 1/2] Fix error in stanza handler registration in XEP-0092. --- sleekxmpp/plugins/xep_0092/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sleekxmpp/plugins/xep_0092/version.py b/sleekxmpp/plugins/xep_0092/version.py index 46bb27f..1ca6c15 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) From dbf6780345bb202d4a0a49034fbfc4535e844170 Mon Sep 17 00:00:00 2001 From: Lance Stout Date: Fri, 18 Mar 2011 17:34:07 -0400 Subject: [PATCH 2/2] Change namespace inclusion in strings. ElementBase instances will display the top-most namespace by default. StanzaBase instances will NOT display the top-most namespace by default. May pass True or False to __str__ to override. --- sleekxmpp/xmlstream/stanzabase.py | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/sleekxmpp/xmlstream/stanzabase.py b/sleekxmpp/xmlstream/stanzabase.py index 753977c..e9c7fc7 100644 --- a/sleekxmpp/xmlstream/stanzabase.py +++ b/sleekxmpp/xmlstream/stanzabase.py @@ -991,11 +991,16 @@ 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. """ - return tostring(self.xml, xmlns='', stanza_ns=self.namespace) + stanza_ns = '' if top_level_ns else self.namespace + return tostring(self.xml, xmlns='', stanza_ns=stanza_ns) def __repr__(self): """ @@ -1196,10 +1201,17 @@ 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)