Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions eventlib/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -113,14 +113,14 @@ def tcp_server(listensocket, server, *args, **kw):
\*\*kw
The keyword arguments to pass to *server*.
"""
print "tcpserver spawning %s on %s" % (server, listensocket.getsockname())
print(("tcpserver spawning %s on %s" % (server, listensocket.getsockname())))
try:
try:
while True:
spawn(server, listensocket.accept(), *args, **kw)
except socket.error, e:
except socket.error as e:
# Broken pipe means it was shutdown
if e[0] != 32:
if e.errno != 32:
raise
finally:
listensocket.close()
Expand Down Expand Up @@ -173,7 +173,7 @@ def get_fileno(obj):
try:
f = obj.fileno
except AttributeError:
assert isinstance(obj, (int, long))
assert isinstance(obj, int)
return obj
else:
return f()
Expand Down Expand Up @@ -211,7 +211,7 @@ def on_timeout():
if timeout is not None:
t = hub.schedule_call(timeout, on_timeout)
try:
for k, v in ds.iteritems():
for k, v in list(ds.items()):
d = hub.add_descriptor(k,
v.get('read') is not None and on_read,
v.get('write') is not None and on_write,
Expand Down Expand Up @@ -395,7 +395,7 @@ def with_timeout(seconds, func, *args, **kwds):
try:
try:
return func(*args, **kwds)
except TimeoutError, ex:
except TimeoutError as ex:
if ex is error and has_timeout_value:
return timeout_value
raise
Expand Down Expand Up @@ -529,7 +529,7 @@ def __call__(self, frame, event, arg):
line = 'Unknown code named [%s]. VM instruction #%d' % (
frame.f_code.co_name, frame.f_lasti)
if self.trace_names is None or name in self.trace_names:
print '%s:%s: %s' % (name, lineno, line.rstrip())
print(('%s:%s: %s' % (name, lineno, line.rstrip())))
if not self.show_values:
return self
details = '\t'
Expand All @@ -541,7 +541,7 @@ def __call__(self, frame, event, arg):
if tok in frame.f_locals:
details += '%s=%r ' % (tok, frame.f_locals[tok])
if details.strip():
print details
print(details)
return self


Expand Down Expand Up @@ -576,7 +576,7 @@ def named(name):
try:
obj = __import__(toimport)
break
except ImportError, err:
except ImportError as err:
# print 'Import error on %s: %s' % (toimport, err) # debugging spam
import_err_strings.append(err.__str__())
toimport = '.'.join(toimport.split('.')[:-1])
Expand Down
15 changes: 8 additions & 7 deletions eventlib/backdoor.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ def __init__(self, desc, hostport, locals):
'flush': lambda: None,
'readline': lambda *a: readline(*a).replace('\r\n', '\n'),
}
for key, value in self.fixups.iteritems():
for key, value in self.fixups.items():
if hasattr(desc, key):
self.old[key] = getattr(desc, key)
setattr(desc, key, value)
Expand Down Expand Up @@ -88,38 +88,39 @@ def finalize(self):
self.fixups.clear()
self.old.clear()
self.desc = None
print "backdoor closed to %s:%s" % self.hostport
print("backdoor closed to %s:%s" % self.hostport)


def backdoor_server(server, locals=None):
print "backdoor listening on %s:%s" % server.getsockname()
print("backdoor listening on %s:%s" % server.getsockname())
try:
try:
while True:
(conn, (host, port)) = server.accept()
print "backdoor connected to %s:%s" % (host, port)
print("backdoor connected to %s:%s" % (host, port))
fl = conn.makeGreenFile("rw")
fl.newlines = '\n'
greenlet = SocketConsole(fl, (host, port), locals)
hub = api.get_hub()
hub.schedule_call_global(0, greenlet.switch)
except socket.error, e:
except socket.error as e:
# Broken pipe means it was shutdown
if e[0] != 32:
raise
finally:
server.close()


def backdoor((conn, addr), locals=None):
def backdoor(connection, locals=None):
""" Use this with tcp_server like so:
api.tcp_server(
api.tcp_listener(('127.0.0.1', 9000)),
backdoor.backdoor,
{})
"""
(conn, addr) = connection
host, port = addr
print "backdoor to %s:%s" % (host, port)
print("backdoor to %s:%s" % (host, port))
fl = conn.makeGreenFile("rw")
fl.newlines = '\n'
greenlet = SocketConsole(fl, (host, port), locals)
Expand Down
6 changes: 3 additions & 3 deletions eventlib/coros.py
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ def send(self, result=None, exc=None):
self._exc = exc
hub = api.get_hub()
if self._waiters:
hub.schedule_call_global(0, self._do_send, self._result, self._exc, self._waiters.keys())
hub.schedule_call_global(0, self._do_send, self._result, self._exc, list(self._waiters.keys()))

def _do_send(self, result, exc, waiters):
while waiters:
Expand Down Expand Up @@ -441,7 +441,7 @@ def __init__(self, max_size=None):
self.items = collections.deque()
self.sem = semaphore(count=0, limit=max_size)

def __nonzero__(self):
def __bool__(self):
return len(self.items)>0

def __len__(self):
Expand Down Expand Up @@ -569,7 +569,7 @@ def received(self, message):


def _test():
print "Running doctests. There will be no further output if they succeed."
print("Running doctests. There will be no further output if they succeed.")
import doctest
doctest.testmod()

Expand Down
8 changes: 4 additions & 4 deletions eventlib/db_pool.py
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ def _schedule_expiration(self):
age_delay = (oldest - now) + self.max_age

next_delay = min(idle_delay, age_delay)
except IndexError, ValueError:
except IndexError as ValueError:
# no free items, unschedule ourselves
self._expiration_timer = None
return
Expand Down Expand Up @@ -245,7 +245,7 @@ def _safe_close(self, conn, quiet = False):
pass # conn is None, or junk
except:
if not quiet:
print "Connection.close raised: %s" % (sys.exc_info()[1])
print("Connection.close raised: %s" % (sys.exc_info()[1]))

def get(self):
conn = super(BaseConnectionPool, self).get()
Expand Down Expand Up @@ -297,7 +297,7 @@ def put(self, conn):
except:
# we don't care what the exception was, we just know the
# connection is dead
print "WARNING: connection.rollback raised: %s" % (sys.exc_info()[1])
print("WARNING: connection.rollback raised: %s" % (sys.exc_info()[1]))
conn = None

if conn is not None:
Expand Down Expand Up @@ -443,7 +443,7 @@ def __init__(self, baseconn, pool):
super(PooledConnectionWrapper, self).__init__(baseconn)
self._pool = pool

def __nonzero__(self):
def __bool__(self):
return (hasattr(self, '_base') and bool(self._base))

def _destroy(self):
Expand Down
6 changes: 3 additions & 3 deletions eventlib/exc.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,9 @@ def format_exc(exc=None):
f.f_code.co_filename,
exc_tb.tb_lineno,
[(key, value) for (key, value)
in f.f_locals.items() if key != '__builtins__'],
in list(f.f_locals.items()) if key != '__builtins__'],
[(key, value) for (key, value)
in f.f_globals.items() if key != '__builtins__']))
in list(f.f_globals.items()) if key != '__builtins__']))
exc_tb = exc_tb.tb_next

stack_trace = []
Expand Down Expand Up @@ -81,7 +81,7 @@ def format_exc(exc=None):
for name, var in local_vars:
if name == 'self' and hasattr(var, '__dict__'):
vars_dict['self'] = dict([
(key, value) for (key, value) in var.__dict__.items()
(key, value) for (key, value) in list(var.__dict__.items())
if re.search(
r'\Wself.%s\W' % (re.escape(key),), code_text)])
break
Expand Down
7 changes: 2 additions & 5 deletions eventlib/green/BaseHTTPServer.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,7 @@
from eventlib.green import socket
from eventlib.green import SocketServer

__import_lst = ['DEFAULT_ERROR_MESSAGE', '_quote_html', '__version__', '__all__', 'BaseHTTPRequestHandler']
__BaseHTTPServer = __import__('BaseHTTPServer')
for var in __import_lst:
exec "%s = __BaseHTTPServer.%s" % (var, var)
from http.server import( DEFAULT_ERROR_MESSAGE, __version__, __all__, BaseHTTPRequestHandler)


class HTTPServer(SocketServer.TCPServer):
Expand Down Expand Up @@ -46,7 +43,7 @@ def test(HandlerClass = BaseHTTPRequestHandler,
httpd = ServerClass(server_address, HandlerClass)

sa = httpd.socket.getsockname()
print "Serving HTTP on", sa[0], "port", sa[1], "..."
print("Serving HTTP on", sa[0], "port", sa[1], "...")
httpd.serve_forever()


Expand Down
6 changes: 1 addition & 5 deletions eventlib/green/SocketServer.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
__import_lst = ['__all__', '__version__', 'BaseServer', 'TCPServer', 'UDPServer', 'ForkingMixIn',
'ThreadingMixIn', 'BaseRequestHandler', 'StreamRequestHandler', 'DatagramRequestHandler']
__SocketServer = __import__('SocketServer')
for var in __import_lst:
exec "%s = __SocketServer.%s" % (var, var)
from socketserver import( __all__, __version__, BaseServer, TCPServer, UDPServer, ForkingMixIn, ThreadingMixIn, BaseRequestHandler, StreamRequestHandler, DatagramRequestHandler )


# QQQ ForkingMixIn should be fixed to use green waitpid?
Expand Down
Loading