Skip to main content

Async functions to compare with anyio and asyncio, and toolkit to read excel with async/await.

Project description

asyncur

Python Versions LatestVersionInPypi GithubActionResult Coverage Status Mypy coverage Ruff

Some async functions that using anyio, and toolkit for excel read.

Installation

$ pip install asyncur
---> 100%
Successfully installed asyncur

Or use poetry:

poetry add asyncur

Usage

  • bulk_gather/gather/run_async
>>> from asyncur import gather, run_async
>>> async def foo():
...     return 1
...
>>> await bulk_gather([foo(), foo()], limit=200)
(1, 1)
>>> await gather(foo(), foo())
(1, 1)
>>> run_async(gather(foo(), foo()))
(1, 1)
  • timeit
>>> import time
>>> import anyio
>>> from asyncur import timeit
>>> @timeit
... async def sleep_test():
...     await anyio.sleep(3)
...
>>> await sleep()
sleep_test Cost: 3.0 seconds

>>> @timeit
... def sleep_test2():
...     time.sleep(3.1)
...
>>> sleep_test2()
sleep_test2 Cost: 3.1 seconds
  • AsyncRedis
from contextlib import asynccontextmanager

from asyncur import AsyncRedis
from fastapi import FastAPI, Request

@asynccontextmanager
async def lifespan(app):
    async with AsyncRedis(app):
        yield

app = FastAPI(lifespan=lifespan)

@app.get('/')
async def root(request: Request) -> list[str]:
    return await AsyncRedis(request).keys()

@app.get('/redis')
async def get_value_from_redis_by_key(request: Request, key: str) -> str:
    value = await AsyncRedis(request).get(key)
    if not value:
        return ''
    return value.decode()
  • Read Excel File(need to install with xls extra: pip install "asyncur[xls]")
>>> from asycur.xls import load_xls
>>> await load_xls('tests/demo.xlsx')
[{'Column1': 'row1-\\t%c', 'Column2\nMultiLines': 0, 'Column 3': 1, 4: ''}, {'Column1': 'r2c1\n00', 'Column2\nMultiLines': 'r2 c2', 'Column 3': 2, 4: ''}]

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

asyncur-0.5.4.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

asyncur-0.5.4-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

Details for the file asyncur-0.5.4.tar.gz.

File metadata

  • Download URL: asyncur-0.5.4.tar.gz
  • Upload date:
  • Size: 8.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.8 Darwin/20.6.0

File hashes

Hashes for asyncur-0.5.4.tar.gz
Algorithm Hash digest
SHA256 990a290ad5fcc285dd74d3cc4e743b658b80ced32c5b5f06221a8b0d752b9e8c
MD5 1a572c587a1d86daf3a8e906a7c3329f
BLAKE2b-256 b441af616bcc6fd85aedd3786bdb0157f88a8191d828075b993f79f6aa06764f

See more details on using hashes here.

File details

Details for the file asyncur-0.5.4-py3-none-any.whl.

File metadata

  • Download URL: asyncur-0.5.4-py3-none-any.whl
  • Upload date:
  • Size: 8.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.8 Darwin/20.6.0

File hashes

Hashes for asyncur-0.5.4-py3-none-any.whl
Algorithm Hash digest
SHA256 8db4829869e9ca3c88216c1a9341151b2eb75739cfbf272cb3e967a3f3ad030f
MD5 41251f8cfed61dc7ee79424134a4f1b6
BLAKE2b-256 43a530d721a9ab12fb9c5e8424c38480c68002dbd0588f88ed704acb73b86699

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