diff options
author | Robert Robinson <rerobins@gmail.com> | 2015-09-18 13:30:30 -0600 |
---|---|---|
committer | Robert Robinson <rerobins@gmail.com> | 2015-09-18 13:30:30 -0600 |
commit | 5fc14de32e7fbd4e33a0e1ed92d8fb23871a2a2d (patch) | |
tree | d21287dbbb7882b766098e0a81c0d1d3677d28d3 /sleekxmpp/xmlstream/stanzabase.py | |
parent | e5582694c07236e6830c20361840360a1dde37f3 (diff) | |
parent | d245558fd5eeee4fa34731ccea47c4c3132d805f (diff) | |
download | slixmpp-5fc14de32e7fbd4e33a0e1ed92d8fb23871a2a2d.tar.gz slixmpp-5fc14de32e7fbd4e33a0e1ed92d8fb23871a2a2d.tar.bz2 slixmpp-5fc14de32e7fbd4e33a0e1ed92d8fb23871a2a2d.tar.xz slixmpp-5fc14de32e7fbd4e33a0e1ed92d8fb23871a2a2d.zip |
Merge pull request #3 from fritzy/develop
Merge to fritzy_master
Diffstat (limited to 'sleekxmpp/xmlstream/stanzabase.py')
-rw-r--r-- | sleekxmpp/xmlstream/stanzabase.py | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/sleekxmpp/xmlstream/stanzabase.py b/sleekxmpp/xmlstream/stanzabase.py index 97107098..c2e0f718 100644 --- a/sleekxmpp/xmlstream/stanzabase.py +++ b/sleekxmpp/xmlstream/stanzabase.py @@ -19,6 +19,7 @@ import logging import weakref from xml.etree import cElementTree as ET +from sleekxmpp.util import safedict from sleekxmpp.xmlstream import JID from sleekxmpp.xmlstream.tostring import tostring from sleekxmpp.thirdparty import OrderedDict @@ -562,10 +563,13 @@ class ElementBase(object): .. versionadded:: 1.0-Beta1 """ - values = {} + values = OrderedDict() values['lang'] = self['lang'] for interface in self.interfaces: - values[interface] = self[interface] + if isinstance(self[interface], JID): + values[interface] = self[interface].jid + else: + values[interface] = self[interface] if interface in self.lang_interfaces: values['%s|*' % interface] = self['%s|*' % interface] for plugin, stanza in self.plugins.items(): @@ -676,6 +680,8 @@ class ElementBase(object): if lang and attrib in self.lang_interfaces: kwargs['lang'] = lang + kwargs = safedict(kwargs) + if attrib == 'substanzas': return self.iterables elif attrib in self.interfaces or attrib == 'lang': @@ -752,6 +758,8 @@ class ElementBase(object): if lang and attrib in self.lang_interfaces: kwargs['lang'] = lang + kwargs = safedict(kwargs) + if attrib in self.interfaces or attrib == 'lang': if value is not None: set_method = "set_%s" % attrib.lower() @@ -838,6 +846,8 @@ class ElementBase(object): if lang and attrib in self.lang_interfaces: kwargs['lang'] = lang + kwargs = safedict(kwargs) + if attrib in self.interfaces or attrib == 'lang': del_method = "del_%s" % attrib.lower() del_method2 = "del%s" % attrib.title() |