Async functions to compare with anyio and asyncio, and toolkit to read excel with async/await.
Project description
asynctor
Some async functions that using anyio, and toolkit for excel read.
Installation
$ pip install asynctor
---> 100%
Successfully installed asynctor
Or use poetry:
poetry add asynctor
Usage
- bulk_gather/gather/run_async
>>> from asynctor 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 asynctor 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 asynctor 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 "asynctor[xls]")
>>> from asynctor.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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
asynctor-0.5.5.tar.gz
(8.0 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file asynctor-0.5.5.tar.gz.
File metadata
- Download URL: asynctor-0.5.5.tar.gz
- Upload date:
- Size: 8.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.11.9 Darwin/20.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3e7414c46f12403249aa488aa1eef59de63684a2b1377a86d0b1c7988df581b5
|
|
| MD5 |
6282507eaf75806a842a1fa6ab1a139b
|
|
| BLAKE2b-256 |
b49905fa7f9ffa784e8aafe4f9adc9133ac947e1c974e232350708d2fe6e0124
|
File details
Details for the file asynctor-0.5.5-py3-none-any.whl.
File metadata
- Download URL: asynctor-0.5.5-py3-none-any.whl
- Upload date:
- Size: 8.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.11.9 Darwin/20.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
266dd941e9f8f82157ca443e7862328344a752e0f587cfbfeba92731583ff342
|
|
| MD5 |
b07c352fd32a76e82f5b39a895d20edb
|
|
| BLAKE2b-256 |
fa42bf8aad748a7e9497e1fb69aeb7eeb9c3cfb4c62752a13850467987970801
|