muffin-dogpilecache

A simple DogpileCache helper plugin for muffin framework


Keywords
asyncio, aiohttp, muffin, dogpile, cache
License
MIT
Install
pip install muffin-dogpilecache==0.0.2

Documentation

Muffin-DogpileCache

Muffin-DogpileCache -- A simple DogpileCache helper plugin for muffin framework.

Requirements

  • python >= 3.4
  • muffin >= 0.5.5

Installation

Muffin-DogpileCache should be installed using pip:

pip install muffin-dogpilecache

Usage

Add muffin-dogpilecache to muffin plugin list:

import muffin


app = muffin.Application(
    'example',

    PLUGINS=(
        'muffin_dogpilecache',
    )
)

Add your configurations for dogpile.cache:

DOGPILECACHE_CONFIGS = {
    'cache.local.backend': 'dogpile.cache.dbm',
    'cache.local.arguments.filename': './dbmfile.dbm',
    'cache.redis.backend': 'dogpile.cache.redis',
    'cache.redis.arguments.host': 'localhost',
    'cache.redis.arguments.port': 6379,
}

Associate each configuration with a dogpile.cache region:

DOGPILECACHE_REGIONS = {
    'default': 'cache.local.',
    'redis': 'cache.redis.',
}

Decorate your functions:

@app.ps.dogpilecache.default.cache_on_arguments()
def my_local_cached_function():
    ...

@app.ps.dogpilecache.redis.cache_on_arguments()
def my_redis_cached_function():
    ...

Options

Option Description
DOGPILECACHE_CONFIGS Configurations for regions
DOGPILECACHE_REGIONS Regions related with the configurations prefix
DOGPILECACHE_TEST If true, set regions with dogpile.cache.null
DOGPILECACHE_FUNCTION_KEY_GENERATOR A function to generate custom cache keys

License

Licensed under a MIT license.