Skip to main content

Memoize asyncio Python calls with a per-result TTL

Project description

aiomemoizettl CircleCI Test Coverage

Memoize asyncio Python calls with a per-result TTL

Installation

pip install aiomemoizettl

Usage

For a coroutine whose arguments are hashable, you can create a memoized version by passing it to memoize_ttl, along with a function that converts its return value to a TTL.

For example, the below

import asyncio
from aiomemoizettl import memoize_ttl

async def main():
    memoized = memoize_ttl(coro, get_ttl=lambda result: result['ttl'])
    results = await asyncio.gather(*[
        memoized(1),
        memoized(2),
    ])
    await asyncio.sleep(1)

    results = await asyncio.gather(*[
        memoized(1),
        memoized(2),  # Will used the cached value of `coro(2)`
    ])

async def coro(value):
    print('Inside coro', value)
    return {'ttl': value, 'some-other': 'data'}

loop = asyncio.get_event_loop()
loop.run_until_complete(main())
loop.close()

will output

Inside coro 1
Inside coro 2
Inside coro 1

Project details


Download files

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

Source Distribution

aiomemoizettl-0.0.3.tar.gz (2.1 kB view details)

Uploaded Source

Built Distribution

aiomemoizettl-0.0.3-py3-none-any.whl (3.2 kB view details)

Uploaded Python 3

File details

Details for the file aiomemoizettl-0.0.3.tar.gz.

File metadata

  • Download URL: aiomemoizettl-0.0.3.tar.gz
  • Upload date:
  • Size: 2.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.6

File hashes

Hashes for aiomemoizettl-0.0.3.tar.gz
Algorithm Hash digest
SHA256 0a80d2dc765e545263f515363b6700ec8cf86fa3968b529f56390b28e34f743d
MD5 13dd1cfee6bcaeb52b57ffdc4d646a17
BLAKE2b-256 3f6de57e96f11ee334ec746b4d7a96351b35f6b42e53855c2a7c255d16be62e3

See more details on using hashes here.

File details

Details for the file aiomemoizettl-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: aiomemoizettl-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 3.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.6

File hashes

Hashes for aiomemoizettl-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 07a6becac60f6cd2604b9f2b73bcd9a50079a0b7b55e2a4e45b1eec5a3ea9659
MD5 4da3da0cc6b28a5e27569758367f0b57
BLAKE2b-256 364959ad30138158b09ee058c72d053461c15dcc3f43fe26f53fed98aab3c32e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page