Skip to main content

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

goroutine_py-1.0.9.tar.gz (3.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

goroutine_py-1.0.9-py3-none-any.whl (4.4 kB view details)

Uploaded Python 3

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

Hashes for goroutine_py-1.0.9.tar.gz
Algorithm Hash digest
SHA256 e221d647fbd154a1253bea640311d9b12362a9f7cbaee661deda363ba5ef8dea
MD5 d5a57352945b588967a440248c255bc4
BLAKE2b-256 de51244b3a4d8275cd68ee9f3d3f4f8e8465f0d06780ece4da067a6bc0407b6d

See more details on using hashes here.

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

Hashes for goroutine_py-1.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 1671fd83e9bbf524ba3a433420ecf6916970492126dd973b989f427d36201673
MD5 f3f23d50c98d7e795db26da155f8fa6d
BLAKE2b-256 ce33248db7f67599f22711364684c3e75863873ffee0aab8c723bf275d832e29

See more details on using hashes here.

Supported by

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