Skip to main content

Making asyncio coroutines chainable

Project description

asyncio-chainable

Making asyncio coroutines chainable

Built on: Python3 and Docker (alpine) and Poetry (Package Manager)
Maintained by: Chris Lee [sihrc.c.lee@gmail.com]

Installation

pip3 install asyncio_chainable

Example Usage

import pytest

from asyncio_chainable import async_chainable, async_chainable_class


@pytest.mark.asyncio
async def test_simple_chain():
    class Number:
        def __init__(self, num: int = 0):
            self.num = num

        @async_chainable
        async def add(self, num: int):
            self.num += num
            return self

        @async_chainable
        async def subtract(self, num: int):
            self.num -= num
            return self

    assert (await Number().add(5).subtract(2)).num == 3


@pytest.mark.asyncio
async def test_class_chain():
    @async_chainable_class
    class Number:
        def __init__(self, num: int = 0):
            self.num = num

        async def add(self, num: int):
            self.num += num
            return self

        async def subtract(self, num: int):
            self.num -= num
            return self

    assert (await Number().add(5).subtract(2)).num == 3

Contributing: Getting Started

Docker

  • Additional Python3 dependencies can be added to requirements.txt
  • Tests are located in ./tests
  • To run the docker container with the basic requirements, dependencies, and the package installed:
    $ touch .env
    $ docker-compose up
    

Poetry

$ poetry install

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

asyncio-chainable-0.1.3.tar.gz (3.1 kB view details)

Uploaded Source

Built Distribution

asyncio_chainable-0.1.3-py3-none-any.whl (4.1 kB view details)

Uploaded Python 3

File details

Details for the file asyncio-chainable-0.1.3.tar.gz.

File metadata

  • Download URL: asyncio-chainable-0.1.3.tar.gz
  • Upload date:
  • Size: 3.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.10.4 Linux/5.10.60.1-microsoft-standard-WSL2

File hashes

Hashes for asyncio-chainable-0.1.3.tar.gz
Algorithm Hash digest
SHA256 f5c463da376b8d1e9e3284e905514fdd46f99a62f85c720cf27855fbe06fa21c
MD5 10fa77b7979b036972af8f974d9072eb
BLAKE2b-256 d28c01030a87413c902a07c7b90d5f0b25cb010113538a4c1bce28810db3ba7c

See more details on using hashes here.

File details

Details for the file asyncio_chainable-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: asyncio_chainable-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 4.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.10.4 Linux/5.10.60.1-microsoft-standard-WSL2

File hashes

Hashes for asyncio_chainable-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 9cf085d7bdfd8648dbd84d9bdedf561de9377e6c2d7c1fde850c3e25008c466b
MD5 a97b3989024aad720e8c21c767747df0
BLAKE2b-256 89b6567059c5429e6910a1004ae2a656db57bae03af777a49004ea0973b0b822

See more details on using hashes here.

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