root/alpine313/: expiringdict-1.2.2 metadata and description

Homepage Simple index PyPI page

Dictionary with auto-expiring values for caching purposes

author Mailgun Technologies Inc.
author_email admin@mailgun.com
classifiers
  • Development Status :: 4 - Beta
  • Intended Audience :: Developers
  • License :: OSI Approved :: Apache Software License
  • Programming Language :: Python :: 2
  • Programming Language :: Python :: 2.7
  • Programming Language :: Python :: 3
  • Programming Language :: Python :: 3.6
  • Topic :: Software Development :: Libraries
license Apache 2
requires_dist
  • typing ; python_version < "3.5"
  • dill ; extra == 'tests'
  • coverage ; extra == 'tests'
  • coveralls ; extra == 'tests'
  • mock ; extra == 'tests'
  • nose ; extra == 'tests'
File Tox results History
expiringdict-1.2.2-py3-none-any.whl
Size
8 KB
Type
Python Wheel
Python
3

Expiring Dict

https://travis-ci.org/mailgun/expiringdict.svg?branch=master https://coveralls.io/repos/github/mailgun/expiringdict/badge.svg?branch=master

ChangeLog

expiringdict is a Python caching library. The core of the library is ExpiringDict class which is an ordered dictionary with auto-expiring values for caching purposes. Expiration happens on any access, object is locked during cleanup from expired values. ExpiringDict can not store more than max_len elements - the oldest will be deleted.

Note: Iteration over dict and also keys() do not remove expired values!

Installation

If you wish to install from PyPi:

pip install expiringdict

If you wish to download the source and install from GitHub:

git clone git@github.com:mailgun/expiringdict.git
python setup.py install

or to install with test dependencies (Nose, Mock, coverage) run from the directory above:

pip install -e expiringdict[test]

To run tests with coverage:

nosetests --with-coverage --cover-package=expiringdict

Usage

Create a dictionary with capacity for 100 elements and elements expiring in 10 seconds:

from expiringdict import ExpiringDict
cache = ExpiringDict(max_len=100, max_age_seconds=10)

put and get a value there:

cache["key"] = "value"
cache.get("key")

copy from dict or OrderedDict:

from expiringdict import ExpiringDict
my_dict=dict()
my_dict['test'] = 1
cache = ExpiringDict(max_len=100, max_age_seconds=10, items=my_dict)
assert cache['test'] == 1

copy from another ExpiringDict, with or without new length and timeout:

from expiringdict import ExpiringDict
cache_hour = ExpiringDict(max_len=100, max_age_seconds=3600)
cache_hour['test'] = 1
cache_hour_copy = ExpiringDict(max_len=None, max_age_seconds=None, items=cache_hour)
cache_minute_copy = ExpiringDict(max_len=None, max_age_seconds=60, items=cache_hour)
assert cache_minute_copy['test'] == 1

pickle :

import dill
from expiringdict import ExpiringDict
cache = ExpiringDict(max_len=100, max_age_seconds=10)
cache['test'] = 1
pickled_cache = dill.dumps(cache)
unpickled_cache = dill.loads(cache)
assert unpickled_cache['test'] == 1