Skip to main content

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: ''}]

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

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

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.

Release history Release notifications | RSS feed

This release

0.5.4 This release

2 files

0.5.2

2 files

0.5.0

2 files

0.4.2

2 files

0.4.0

2 files

0.3.1

2 files

0.3.0

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

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