Skip to main content
info:

Simple lru cache for asyncio

https://travis-ci.org/aio-libs/async_lru.svg?branch=master https://img.shields.io/pypi/v/async_lru.svg https://codecov.io/gh/aio-libs/async_lru/branch/master/graph/badge.svg

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.close()


loop = asyncio.get_event_loop()

loop.run_until_complete(main())

loop.close()

Python 3.3+ is required

Thanks

The library was donated by Ocean S.A.

Thanks to the company for contribution.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

async_lru-1.0.0.tar.gz (4.9 kB view details)

Uploaded Source

File details

Details for the file async_lru-1.0.0.tar.gz.

File metadata

  • Download URL: async_lru-1.0.0.tar.gz
  • Upload date:
  • Size: 4.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for async_lru-1.0.0.tar.gz
Algorithm Hash digest
SHA256 851318e5e6f6f758efe3f6a083a05d292ccc3a9dae3fdcd2edfe0d7b8bd97ed9
MD5 76f017d76b75ac0820e47324407bde95
BLAKE2b-256 13eec4ead3f64d50659818ba25baffbf09f48454ff42d4cf2aae0938298c68f5

See more details on using hashes here.

Supported by

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