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

Metadata

Release files for asyncur 0.5.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for asyncur 0.5.4
File Size Uploaded
asyncur-0.5.4.tar.gz 8.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for asyncur 0.5.4
File Interpreter ABI Platform
asyncur-0.5.4-py3-none-any.whl Python 3 none any Details

Total release size: 16.7 kB

Release files / asyncur-0.5.4.tar.gz

Download URL asyncur-0.5.4.tar.gz
Size 8.0 kB
Tags Source
SHA-256 checksum
How to use checksums
990a290ad5fcc285dd74d3cc4e743b658b80ced32c5b5f06221a8b0d752b9e8c
BLAKE2b-256 checksum
How to use checksums
b441af616bcc6fd85aedd3786bdb0157f88a8191d828075b993f79f6aa06764f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.3 CPython/3.11.8 Darwin/20.6.0

Release files / asyncur-0.5.4-py3-none-any.whl

Download URL asyncur-0.5.4-py3-none-any.whl
Size 8.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8db4829869e9ca3c88216c1a9341151b2eb75739cfbf272cb3e967a3f3ad030f
BLAKE2b-256 checksum
How to use checksums
43a530d721a9ab12fb9c5e8424c38480c68002dbd0588f88ed704acb73b86699
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.3 CPython/3.11.8 Darwin/20.6.0

Release history Release notifications | RSS feed

This release

0.5.4 This release

2 release files

0.5.2

2 release files

0.5.0

2 release files

0.4.2

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page