diff --git a/greentulip/__init__.py b/greentulip/__init__.py index f7d4a1e..ca435b6 100644 --- a/greentulip/__init__.py +++ b/greentulip/__init__.py @@ -3,15 +3,15 @@ # License: Apache 2.0 ## -"""greentulip package allows to compose greenlets and tulip coroutines.""" +"""greentulip package allows to compose greenlets and asyncio coroutines.""" __all__ = ['task', 'yield_from'] import greenlet -import tulip -from tulip import unix_events, tasks, futures +import asyncio +from asyncio import unix_events, tasks, futures class _LoopGreenlet(greenlet.greenlet): @@ -26,16 +26,16 @@ class _TaskGreenlet(greenlet.greenlet): ``@greentulip.task`` is executed in this greenlet""" -class GreenTask(tulip.Task): +class GreenTask(asyncio.Task): def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) + super(GreenTask, self).__init__(*args, **kwargs) self._greenlet = None - def _step(self, value=tasks._marker, exc=None): + def _step(self, value=None, exc=None): if self._greenlet is None: # Means that the task is not currently in a suspended greenlet # waiting for results for "yield_from" - ovr = super()._step + ovr = super(GreenTask, self)._step self._greenlet = _TaskGreenlet(ovr) # Store a reference to the current task for "yield_from" @@ -67,16 +67,16 @@ class GreenTask(tulip.Task): self._greenlet = None -class _GreenLoopMixin: +class _GreenLoopMixin(object): def _green_run(self, method, args, kwargs): return _LoopGreenlet(method).switch(*args, **kwargs) def run_until_complete(self, *args, **kwargs): - ovr = super().run_until_complete + ovr = super(_GreenLoopMixin, self).run_until_complete return self._green_run(ovr, args, kwargs) def run_forever(self, *args, **kwargs): - ovr = super().run_forever + ovr = super(_GreenLoopMixin, self).run_forever return self._green_run(ovr, args, kwargs) @@ -84,7 +84,7 @@ class GreenUnixSelectorLoop(_GreenLoopMixin, unix_events.SelectorEventLoop): pass -class GreenEventLoopPolicy(tulip.DefaultEventLoopPolicy): +class GreenEventLoopPolicy(asyncio.DefaultEventLoopPolicy): def new_event_loop(self): return GreenUnixSelectorLoop() @@ -132,7 +132,7 @@ def task(func): """A decorator, allows use of ``yield_from`` in the decorated or subsequent coroutines.""" - coro = tulip.coroutine(func) + coro = asyncio.coroutine(func) def task_wrapper(*args, **kwds): return GreenTask(coro(*args, **kwds)) @@ -140,5 +140,5 @@ def task(func): return task_wrapper -class _YIELDED: +class _YIELDED(object): """Marker, don't use it""" diff --git a/greentulip/socket.py b/greentulip/socket.py index d364042..5990fbb 100644 --- a/greentulip/socket.py +++ b/greentulip/socket.py @@ -8,7 +8,7 @@ Use ``greentulip.socket`` in the same way as you would use stdlib's ``socket.socket`` in ``greentulip.task`` tasks or coroutines invoked from them. """ -import tulip +import asyncio from socket import error, SOCK_STREAM from socket import socket as std_socket @@ -24,7 +24,7 @@ class socket: else: self._sock = std_socket(*args, **kwargs) self._sock.setblocking(False) - self._loop = tulip.get_event_loop() + self._loop = asyncio.get_event_loop() assert isinstance(self._loop, GreenUnixSelectorLoop), \ 'GreenUnixSelectorLoop event loop is required' @@ -169,7 +169,7 @@ class WriteFile: def create_connection(address: tuple, timeout=None): - loop = tulip.get_event_loop() + loop = asyncio.get_event_loop() host, port = address rslt = yield_from(