Hi, I just released Trollius 0.4: https://pypi.python.org/pypi/trollius
Documentation: http://trollius.readthedocs.org/ The main change is that it is now possible to run asyncio coroutines in Trollius coroutines, and the opposite. The debug mode has been enhanced (thanks to improvements in Tulip). Changes between Trollius 0.3 and 0.4: * Trollius event loop now supports asyncio coroutines: - Trollius coroutines can yield asyncio coroutines, - asyncio coroutines can yield Trollius coroutines, - asyncio.set_event_loop() accepts a Trollius event loop, - asyncio.set_event_loop_policy() accepts a Trollius event loop policy. * The ``PYTHONASYNCIODEBUG`` envrionment variable has been renamed to ``TROLLIUSDEBUG``. The environment variable is now used even if the Python command line option ``-E`` is used. * Synchronize with Tulip. * Support PyPy (fix subproces, fix unit tests). Tulip changes: * Tulip issue #171: BaseEventLoop.close() now raises an exception if the event loop is running. You must first stop the event loop and then wait until it stopped, before closing it. * Tulip issue #172: only log selector timing in debug mode * Enable the debug mode of event loops when the ``TROLLIUSDEBUG`` environment variable is set * BaseEventLoop._assert_is_current_event_loop() now only raises an exception if the current loop is set. * Tulip issue #105: in debug mode, log callbacks taking more than 100 ms to be executed. * Python issue 21595: ``BaseSelectorEventLoop._read_from_self()`` reads all available bytes from the "self pipe", not only a single byte. This change reduces the risk of having the pipe full and so getting the "BlockingIOError: [Errno 11] Resource temporarily unavailable" message. * Python issue 21723: asyncio.Queue: support any type of number (ex: float) for the maximum size. Patch written by Vajrasky Kok. * Issue #173: Enhance repr(Handle) and repr(Task): add the filename and line number, when available. For task, the current line number of the coroutine is used. * Add BaseEventLoop.is_closed() method. run_forever() and run_until_complete() methods now raises an exception if the event loop was closed. * Make sure that socketpair() close sockets on error. Close the listening socket if sock.bind() raises an exception. * Fix ResourceWarning: close sockets on errors. BaseEventLoop.create_connection(), BaseEventLoop.create_datagram_endpoint() and _UnixSelectorEventLoop.create_unix_server() now close the newly created socket on error. * Rephrase and fix docstrings. * Fix tests on Windows: wait for the subprocess exit. Before, regrtest failed to remove the temporary test directory because the process was still running in this directory. * Refactor unit tests. On Python 3.5, generators now get their name from the function, no more from the code. So the ``@coroutine`` decorator doesn't loose the original name of the function anymore. Victor
