Skip to main content

Mixed sync-async queue to interoperate between asyncio tasks and classic threads

Project description

Mixed sync-async queue, supposed to be used for communicating between classic synchronous (threaded) code and asynchronous (in terms of asyncio) one.

Like Janus god the queue object from the library has two faces: synchronous and asynchronous interface.

Synchronous is fully compatible with standard queue, asynchronous one follows asyncio queue design.

Usage example

import asyncio
import janus

loop = asyncio.get_event_loop()
queue = janus.Queue(loop=loop)


def threaded(sync_q):
    for i in range(100):
        sync_q.put(i)
    sync_q.join()


@asyncio.coroutine
def async_coro(async_q):
    for i in range(100):
        val = yield from async_q.get()
        assert val == i
        async_q.task_done()


fut = loop.run_in_executor(None, threaded, queue.sync_q)
loop.run_until_complete(async_coro(queue.async_q))
loop.run_until_complete(fut)

License

janus library is offered under Apache 2 license.

Thanks

The library development is sponsored by DataRobot (http://datarobot.com/)

Changes

0.1.1 (2015-06-12)

  • Fix some typos in README and setup.py

  • Add addtional checks for loop closing

  • Mention DataRobot

0.1.0 (2015-06-11)

  • Initial release

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

janus-0.1.4.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

janus-0.1.4-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file janus-0.1.4.tar.gz.

File metadata

  • Download URL: janus-0.1.4.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for janus-0.1.4.tar.gz
Algorithm Hash digest
SHA256 0b0a787b878ccde67aad8f6569230555090a1016d40b57bd35053998a9481dbf
MD5 fa897d940db4b62fae7d251b60a99a20
BLAKE2b-256 48c20c709d81521f574255486ad15168fc70cc380eaafc67aae2245188aa9893

See more details on using hashes here.

File details

Details for the file janus-0.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for janus-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 b55c1dae43cc20267cd455253c2d9a982598c725bd7b0e27f37b538353e6bfc5
MD5 f295a53309142ca52eecfa182db9203d
BLAKE2b-256 42b0ed154319bff7007e4275e69808a6a3e33605d077415b15e312594c504769

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page