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.
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 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(result):
'''
Parameter "result" is the return from task.
Use functools.partial() to give arguments if you need more args at the beginning.
'''
print('-* callback *-')
print(result)
After you defined all your tasks and callback, you can go like this:
go(task_1)
go(task_2)
# The "callback" parameter must be specified separately.
go(task_1, 5, callback = callback)
go(task_2, 3, callback = callback)
print('END')
# Forever runing to show results.
while 1:
time.sleep(5)
Output :
>>>
END
Task_2_done
Task_1_done
Task_2_done
-* callback *-
Result_2
Task_1_done
-* callback *-
Result_1
License
This project is licensed under the MIT License - see the LICENSE file for details.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file goroutine_py-1.0.9.tar.gz.
File metadata
- Download URL: goroutine_py-1.0.9.tar.gz
- Upload date:
- Size: 3.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e221d647fbd154a1253bea640311d9b12362a9f7cbaee661deda363ba5ef8dea
|
|
| MD5 |
d5a57352945b588967a440248c255bc4
|
|
| BLAKE2b-256 |
de51244b3a4d8275cd68ee9f3d3f4f8e8465f0d06780ece4da067a6bc0407b6d
|
File details
Details for the file goroutine_py-1.0.9-py3-none-any.whl.
File metadata
- Download URL: goroutine_py-1.0.9-py3-none-any.whl
- Upload date:
- Size: 4.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1671fd83e9bbf524ba3a433420ecf6916970492126dd973b989f427d36201673
|
|
| MD5 |
f3f23d50c98d7e795db26da155f8fa6d
|
|
| BLAKE2b-256 |
ce33248db7f67599f22711364684c3e75863873ffee0aab8c723bf275d832e29
|