Skip to content

OlegYurchik/pySyncAsync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pySyncAsync

A library for template generation of synchronous and asynchronous functions in Python.

Release Notes

Version 0.0.1

Doesn't work, only library base

Version 1.0.0

  • Add README
  • Add Manager class
  • Add root manager
  • Add tests for import, common manager and root manager

Installation

You can install this library by download from GitHub:

git clone https://github.com/OlegYurchik/pySyncAsync
cd pySyncAsync
python setup.py install

or install from PyPI:

pip install pySyncAsync

Quick start

Just let me show simple code for set your templates and run them

import asyncio
import time
from random import randint

import pysyncasync as psa


@psa.register("sum")
def sync_func(a, b):
    print("SUM SYNC START")
    time.sleep(1)
    return a + b


@psa.register("sum")
async def async_func(a, b):
    print("SUM ASYNC START")
    await asyncio.sleep(1)
    return a + b


def worker():
    a, b, c, d = (randint(0, 10**9) for _ in range(4))

    call1 = psa.Call("sum", a, b)
    yield call1

    call2 = psa.Call("sum", c, d)
    yield call2

    call3 = psa.Call("sum", call1.result, call2.result)
    yield call3

    return call3.result


def main():
    generated_worker = psa.generate(worker, psa.SYNC)
    return generated_worker()


def a_main():
    generated_worker = psa.generate(worker, psa.ASYNC)    
    loop = asyncio.get_event_loop()
    return loop.run_until_complete(generated_worker())


if __name__ == "__main__":
    print("SYNC SESSION")    
    main()
    print("ASYNC SESSION")
    a_main()

User guide

Manager

Root manager

Call object

Template function

Examples

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages