Skip to main content

No project description provided

Project description

pySyncAsync

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

  • [Release Notes](#Release Notes)
    • [Version 0.0.1](#Version 0.0.1)
    • [Version 1.0.0](#Version 1.0.0)
  • Installation
  • [Quick start](#Quick start)
  • [User guide](#User guide)
    • [Root manager](#Root manager)
    • [Call object](#Call object)
    • [Template function](#Template function)
  • Examples

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

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

pySyncAsync-1.0.0.tar.gz (4.4 kB view hashes)

Uploaded Source

Built Distribution

pySyncAsync-1.0.0-py3-none-any.whl (6.5 kB view hashes)

Uploaded Python 3

Supported by

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