Commit 2173ff57 authored by Ralf Schmitt's avatar Ralf Schmitt

py3 fixes for greenlet.py

replace __nonzero__ with __bool__ on py3. replace bound-method check
in getfuncname.
parent 7c4bad5d
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
import sys import sys
from gevent.hub import greenlet, getcurrent, get_hub, GreenletExit, Waiter from gevent.hub import greenlet, getcurrent, get_hub, GreenletExit, Waiter
from gevent.timeout import Timeout from gevent.timeout import Timeout
from gevent import six
__all__ = ['Greenlet', __all__ = ['Greenlet',
'joinall', 'joinall',
...@@ -151,13 +151,17 @@ class Greenlet(greenlet): ...@@ -151,13 +151,17 @@ class Greenlet(greenlet):
# needed by killall # needed by killall
return self.parent.loop return self.parent.loop
def __nonzero__(self): if six.PY3:
return self._start_event is not None and self._exception is _NONE def __bool__(self):
return self._start_event is not None and self._exception is _NONE
else:
def __nonzero__(self):
return self._start_event is not None and self._exception is _NONE
@property @property
def started(self): def started(self):
# DEPRECATED # DEPRECATED
return self.__nonzero__() return bool(self)
def ready(self): def ready(self):
"""Return true if and only if the greenlet has finished execution.""" """Return true if and only if the greenlet has finished execution."""
...@@ -498,6 +502,8 @@ def _kill(greenlet, exception, waiter): ...@@ -498,6 +502,8 @@ def _kill(greenlet, exception, waiter):
def joinall(greenlets, timeout=None, raise_error=False): def joinall(greenlets, timeout=None, raise_error=False):
xrange = six.moves.xrange
from gevent.queue import Queue from gevent.queue import Queue
queue = Queue() queue = Queue()
put = queue.put put = queue.put
...@@ -606,7 +612,13 @@ class LinkedFailed(LinkedExited): ...@@ -606,7 +612,13 @@ class LinkedFailed(LinkedExited):
def getfuncname(func): def getfuncname(func):
if not hasattr(func, 'im_self'): try:
six.get_method_self(func)
is_bound_method = True
except AttributeError:
is_bound_method = False
if not is_bound_method:
try: try:
funcname = func.__name__ funcname = func.__name__
except AttributeError: except AttributeError:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment