- info:
Simple lru cache for asyncio
Installation
pip install async_lru
Usage
This package is 100% port of Python built-in function functools.lru_cache for asyncio
import asyncio
import aiohttp
from async_lru import alru_cache
@alru_cache(maxsize=32)
async def get_pep(num):
resource = 'http://www.python.org/dev/peps/pep-%04d/' % num
async with aiohttp.ClientSession() as session:
try:
async with session.get(resource) as s:
return await s.read()
except aiohttp.ClientError:
return 'Not Found'
async def main():
for n in 8, 290, 308, 320, 8, 218, 320, 279, 289, 320, 9991:
pep = await get_pep(n)
print(n, len(pep))
print(get_pep.cache_info())
# CacheInfo(hits=3, misses=8, maxsize=32, currsize=8)
# closing is optional, but highly recommended
await get_pep.cache_close()
asyncio.run(main())
TTL (time-to-live, expiration on timeout) is supported by accepting ttl configuration parameter (off by default):
@alru_cache(ttl=5)
async def func(arg):
return arg * 2
The library supports explicit invalidation for specific function call by cache_invalidate():
@alru_cache(ttl=5)
async def func(arg1, arg2):
return arg * 2
func.cache_invalidate(1, arg2=2)
The method returns True if corresponding arguments set was cached already, False otherwise.
Python 3.8+ is required
Thanks
The library was donated by Ocean S.A.
Thanks to the company for contribution.
Metadata
Release files for async-lru 2.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| async-lru-2.0.2.tar.gz | 9.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| async_lru-2.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.0 kB
Release files / async-lru-2.0.2.tar.gz
| Download URL | async-lru-2.0.2.tar.gz |
|---|---|
| Size | 9.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3b87ec4f2460c52cc7916a0138cc606b584c75d1ef7d661853c95d1d3acb869a
|
|
BLAKE2b-256 checksum How to use checksums |
9216be197573adca3d584dbd64d508488e95e36324ea036d751564d2f88d74bf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.8.16
|
Release files / async_lru-2.0.2-py3-none-any.whl
| Download URL | async_lru-2.0.2-py3-none-any.whl |
|---|---|
| Size | 5.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d7c2b873e9af5c5a1f0a87a6c145e7e0b4eb92342b7235dda9dd5b10e950d6e2
|
|
BLAKE2b-256 checksum How to use checksums |
17f8bdc723f93ec2458db76352e0f2c017331fe284e4e6b749db262199803f81
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.8.16
|