fixed socket name collision in xmlstream.py and fixed python 3.x compatibility

This commit is contained in:
Nathan Fritz 2010-10-14 10:58:07 -07:00
parent a41a4369c6
commit 0d0b963fe5
6 changed files with 19 additions and 16 deletions

View file

@ -44,10 +44,14 @@ packages = [ 'sleekxmpp',
'sleekxmpp/xmlstream',
'sleekxmpp/xmlstream/matcher',
'sleekxmpp/xmlstream/handler',
'sleekxmpp/xmlstream/tostring',
'sleekxmpp/thirdparty',
]
if sys.version_info < (3, 0):
py_modules = ['sleekxmpp.xmlstream.tostring.tostring26']
else:
py_modules = ['sleekxmpp.xmlstream.tostring.tostring']
setup(
name = "sleekxmpp",
version = VERSION,

View file

@ -162,7 +162,8 @@ class ClientXMPP(BaseXMPP):
intmax += answer.priority
addresses[intmax] = (answer.target.to_text()[:-1],
answer.port)
priorities = addresses.keys()
#python3 returns a generator for dictionary keys
priorities = [x for x in addresses.keys()]
priorities.sort()
picked = random.randint(0, intmax)

View file

@ -290,7 +290,6 @@ class DefaultConfig(ElementBase):
def setConfig(self, value):
self['form'].setStanzaValues(value.getStanzaValues())
print self['form']['title']
return self
registerStanzaPlugin(PubsubOwner, DefaultConfig)
@ -370,7 +369,6 @@ class OwnerDefault(OwnerConfigure):
def setConfig(self, value):
self['form'].setStanzaValues(value.getStanzaValues())
print self['from']['title']
return self
registerStanzaPlugin(PubsubOwner, OwnerDefault)

View file

@ -53,7 +53,7 @@ class SleekTest(unittest.TestCase):
try:
xml = ET.fromstring(xml_string)
return xml
except SyntaxError, e:
except SyntaxError as e:
if 'unbound' in e.msg:
known_prefixes = {
'stream': 'http://etherx.jabber.org/streams'}

View file

@ -268,11 +268,11 @@ class _StateCtx:
if __name__ == '__main__':
def callback(s, s2):
print 1, s.transition('on', 'off', wait=0.0, func=callback, args=[s,s2])
print 2, s2.transition('off', 'on', func=callback, args=[s,s2])
print((1, s.transition('on', 'off', wait=0.0, func=callback, args=[s,s2])))
print((2, s2.transition('off', 'on', func=callback, args=[s,s2])))
return True
s = StateMachine(('off', 'on'))
s2 = StateMachine(('off', 'on'))
print 3, s.transition('off', 'on', wait=0.0, func=callback, args=[s,s2]),
print s.current_state(), s2.current_state()
print((3, s.transition('off', 'on', wait=0.0, func=callback, args=[s,s2]),))
print((s.current_state(), s2.current_state()))

View file

@ -10,7 +10,7 @@ from __future__ import with_statement, unicode_literals
import copy
import logging
import socket
import socket as Socket
import ssl
import sys
import threading
@ -165,7 +165,7 @@ class XMLStream(object):
if sys.version_info < (3, 0):
self.socket_class = Socket26
else:
self.socket_class = socket.socket
self.socket_class = Socket.socket
self.use_ssl = False
self.use_tls = False
@ -247,7 +247,7 @@ class XMLStream(object):
def _connect(self):
self.stop.clear()
self.socket = self.socket_class(socket.AF_INET, socket.SOCK_STREAM)
self.socket = self.socket_class(Socket.AF_INET, Socket.SOCK_STREAM)
self.socket.settimeout(None)
if self.use_ssl and self.ssl_support:
logging.debug("Socket Wrapped for SSL")
@ -265,7 +265,7 @@ class XMLStream(object):
#this event is where you should set your application state
self.event("connected", direct=True)
return True
except socket.error as serr:
except Socket.error as serr:
error_msg = "Could not connect. Socket Error #%s: %s"
logging.error(error_msg % (serr.errno, serr.strerror))
time.sleep(1)
@ -297,8 +297,8 @@ class XMLStream(object):
try:
self.socket.close()
self.filesocket.close()
self.socket.shutdown(socket.SHUT_RDWR)
except socket.error as serr:
self.socket.shutdown(Socket.SHUT_RDWR)
except Socket.error as serr:
pass
finally:
#clear your application state
@ -670,7 +670,7 @@ class XMLStream(object):
except SystemExit:
logging.debug("SystemExit in _process")
self.stop.set()
except socket.error:
except Socket.error:
logging.exception('Socket Error')
except:
logging.exception('Connection error. Reconnecting.')