diff options
author | Lance Stout <lancestout@gmail.com> | 2010-08-04 14:41:37 -0400 |
---|---|---|
committer | Lance Stout <lancestout@gmail.com> | 2010-08-04 14:41:37 -0400 |
commit | c54466596f3dcc7a35a41c49fff0d057d4a8ed8f (patch) | |
tree | 4171a261c93b8b4ead35938662cd8907ea5def5d /sleekxmpp/xmlstream/tostring/__init__.py | |
parent | aa1dbe97e0df2437a63a0b16566b75b8a874f065 (diff) | |
download | slixmpp-c54466596f3dcc7a35a41c49fff0d057d4a8ed8f.tar.gz slixmpp-c54466596f3dcc7a35a41c49fff0d057d4a8ed8f.tar.bz2 slixmpp-c54466596f3dcc7a35a41c49fff0d057d4a8ed8f.tar.xz slixmpp-c54466596f3dcc7a35a41c49fff0d057d4a8ed8f.zip |
Modified sleekxmpp.xmlstream.tostring to import ToString class based on Python version.
The package sleekxmpp.xmlstream.tostring26 remains for now until stanzabase is updated, but is no longer needed.
Diffstat (limited to 'sleekxmpp/xmlstream/tostring/__init__.py')
-rw-r--r-- | sleekxmpp/xmlstream/tostring/__init__.py | 70 |
1 files changed, 12 insertions, 58 deletions
diff --git a/sleekxmpp/xmlstream/tostring/__init__.py b/sleekxmpp/xmlstream/tostring/__init__.py index 6603cbb8..d93fe4ea 100644 --- a/sleekxmpp/xmlstream/tostring/__init__.py +++ b/sleekxmpp/xmlstream/tostring/__init__.py @@ -1,60 +1,14 @@ +""" -class ToString(object): - def __str__(self, xml=None, xmlns='', stringbuffer=''): - if xml is None: - xml = self.xml - newoutput = [stringbuffer] - #TODO respect ET mapped namespaces - itag = xml.tag.split('}', 1)[-1] - if '}' in xml.tag: - ixmlns = xml.tag.split('}', 1)[0][1:] - else: - ixmlns = '' - nsbuffer = '' - if xmlns != ixmlns and ixmlns != '' and ixmlns != self.namespace: - if self.stream is not None and ixmlns in self.stream.namespace_map: - if self.stream.namespace_map[ixmlns] != '': - itag = "%s:%s" % (self.stream.namespace_map[ixmlns], itag) - else: - nsbuffer = """ xmlns="%s\"""" % ixmlns - if ixmlns not in ('', xmlns, self.namespace): - nsbuffer = """ xmlns="%s\"""" % ixmlns - newoutput.append("<%s" % itag) - newoutput.append(nsbuffer) - for attrib in xml.attrib: - if '{' not in attrib: - newoutput.append(""" %s="%s\"""" % (attrib, self.xmlesc(xml.attrib[attrib]))) - if len(xml) or xml.text or xml.tail: - newoutput.append(">") - if xml.text: - newoutput.append(self.xmlesc(xml.text)) - if len(xml): - for child in xml.getchildren(): - newoutput.append(self.__str__(child, ixmlns)) - newoutput.append("</%s>" % (itag, )) - if xml.tail: - newoutput.append(self.xmlesc(xml.tail)) - elif xml.text: - newoutput.append(">%s</%s>" % (self.xmlesc(xml.text), itag)) - else: - newoutput.append(" />") - return ''.join(newoutput) +""" - def xmlesc(self, text): - text = list(text) - cc = 0 - matches = ('&', '<', '"', '>', "'") - for c in text: - if c in matches: - if c == '&': - text[cc] = '&' - elif c == '<': - text[cc] = '<' - elif c == '>': - text[cc] = '>' - elif c == "'": - text[cc] = ''' - else: - text[cc] = '"' - cc += 1 - return ''.join(text) +import sys + + +# Import the correct ToString class based on the Python version. +if sys.version_info < (3, 0): + from sleekxmpp.xmlstream.tostring.tostring26 import ToString +else: + from sleekxmpp.xmlstream.tostring.tostring import ToString + +__all__ = ['ToString'] |