An Asyncio-based concurrency library for Python.
Project description
English | 中文
goroutine-py
🚀 An Asyncio-based concurrency library for Python.
Easy concurrency just like goroutine without worry about thread and coroutine in Python.
Introduction
Withing goroutine.app.go
you can run a coroutine or a func asynchronously.
Main function go :
go (obj: callable, *args, callback: callable = None, lock: bool = False)
obj: Takes both callable coroutinefunction and func as object.
*args: Arguments for your obj.
callback: Attaches a callable that will be called when the future finishes.
lock: Thread safe if True. It can slow your program.
This argument only work for "func" not "coroutinefunction".
Getting Started
Support:
Python 3.7 / 3.8 / 3.9 / 3.10 / 3.11 / 3.12
Installation
First you have to install goroutine-py like this:
pip install goroutine-py
Quick Tutorial
The primary entity of goroutine-py is goroutine.app.go
.
You can simply start using goroutine-py like this:
First, define your tasks:
import asyncio
import functools
import time
from goroutine.app import go
# A normal func
def task_1(n=2):
time.sleep(n)
print('Task_1_done')
return 'Result_1'
# A coroutinefunction
async def task_2(n=1):
await asyncio.sleep(n)
print('Task_2_done')
return 'Result_2'
# Callback func
def callback(future, arg=None):
'''
At least ONE Parameter "future" is required.
This future is a concurrent.futures.Future.
Use functools.partial() to give arguments for your callback func.
'''
print(future.result(),arg)
After you defined all your tasks and callback, you can go like this:
go(task_1)
go(task_2)
go(task_1, 4, callback=callback)
go(task_2, 2, callback=functools.partial(callback,arg='a'))
print('END')
Output :
>>>
END
Task_2_done
Task_1_done
Task_2_done
Result_2 a
Task_1_done
Result_1 None
License
This project is licensed under the MIT License - see the LICENSE
file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for goroutine_py-1.0.7-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a1293d349407f8db6d0c2471d1c5bdf179c7bdb6c6a3df92997da59ed6133036 |
|
MD5 | cad321595ab879e0789126900eded7c1 |
|
BLAKE2b-256 | b1609d4c6255819c78104eccbfab62c4eff11b7fa984a7fc1cda50a5d4ab5730 |