From dbf6780345bb202d4a0a49034fbfc4535e844170 Mon Sep 17 00:00:00 2001 From: Lance Stout Date: Fri, 18 Mar 2011 17:34:07 -0400 Subject: [PATCH] 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 753977c1..e9c7fc7a 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)