Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

A Celery-like event loop with `asyncio` and no dependencies

It runs an asyncio event loop in a separate thread, drives native coroutines within the loop, and then returns the future in an asynchronous manner.

Dependency

It requires Python 3.5+.

Installation

$ git clone https://github.com/dgkim5360/asyncloop.git
$ cd asyncloop
asyncloop$ python setup.py install

Getting started

import asyncio as aio

from asyncloop import AsyncLoop


# A simple job, which should be a native coroutine
async def job_to_wait(sleep_sec):
    await aio.sleep(sleep_sec)
    return sleep_sec


# A simple callback
def callback(fut):
    if fut.cancelled():
        print('CANCELLED:', fut)
    elif fut.done():
        print('DONE:', fut)
        print('RESULT:', fut.result()


# AsyncLoop starts
aloop = AsyncLoop()  # <AsyncLoop(Thread-##, initial)>
aloop.start()  # <AsyncLoop(Thread-##, started ##########)>

# Submit a job and be free to work on
# it returns an AsyncJob object, a simple wrapper of concurrent.Future
ajob = aloop.submit(job_to_wait(10), callback)
ajob  # <AsyncJob at 0x####>

# After 10 seconds the callback activated
# DONE: <Future at 0x#### state=finished returned int>
# RESULT: 10

# Get a result
ret = ajob.result()  # 10

# You MUST stop the aloop before exit or destroy
aloop.stop()  # <AsyncLoop(Thread-##, stopped ##########)>

So far, that’s all.

Release files for asyncloop 0.0.1.dev2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for asyncloop 0.0.1.dev2
File Size Uploaded
asyncloop-0.0.1.dev2.tar.gz 3.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for asyncloop 0.0.1.dev2
File Interpreter ABI Platform
asyncloop-0.0.1.dev2-py3-none-any.whl Python 3 none any Details

Total release size: 9.5 kB

Release files / asyncloop-0.0.1.dev2.tar.gz

Download URL asyncloop-0.0.1.dev2.tar.gz
Size 3.6 kB
Tags Source
SHA-256 checksum
How to use checksums
c53ded99c97be8059213b2f12349c58e053f3f4c3f35aa993f7e1cb210aa3c13
BLAKE2b-256 checksum
How to use checksums
9832024effdfdc7ed82df04d0c6f2aa7cd39d763bf74e086ba7da4e492f7d97b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / asyncloop-0.0.1.dev2-py3-none-any.whl

Download URL asyncloop-0.0.1.dev2-py3-none-any.whl
Size 5.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a12e50e2934e5cee7893c0abf46ea3d267d7c602448c3bf16feddca7a989f664
BLAKE2b-256 checksum
How to use checksums
3500cee47ed2df703f0543c46bf63042e7f42e96b2758362aad60dbb958a3ada
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.0.1.dev2 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page