OLD | NEW |
(Empty) | |
| 1 cachetools |
| 2 ======================================================================== |
| 3 |
| 4 This module provides various memoizing collections and decorators, |
| 5 including variants of the Python 3 Standard Library `@lru_cache`_ |
| 6 function decorator. |
| 7 |
| 8 .. code-block:: pycon |
| 9 |
| 10 >>> from cachetools import LRUCache |
| 11 >>> cache = LRUCache(maxsize=2) |
| 12 >>> cache.update([('first', 1), ('second', 2)]) |
| 13 >>> cache |
| 14 LRUCache([('second', 2), ('first', 1)], maxsize=2, currsize=2) |
| 15 >>> cache['third'] = 3 |
| 16 >>> cache |
| 17 LRUCache([('second', 2), ('third', 3)], maxsize=2, currsize=2) |
| 18 >>> cache['second'] |
| 19 2 |
| 20 >>> cache['fourth'] = 4 |
| 21 >>> cache |
| 22 LRUCache([('second', 2), ('fourth', 4)], maxsize=2, currsize=2) |
| 23 |
| 24 For the purpose of this module, a *cache* is a mutable_ mapping_ of a |
| 25 fixed maximum size. When the cache is full, i.e. by adding another |
| 26 item the cache would exceed its maximum size, the cache must choose |
| 27 which item(s) to discard based on a suitable `cache algorithm`_. In |
| 28 general, a cache's size is the total size of its items, and an item's |
| 29 size is a property or function of its value, e.g. the result of |
| 30 ``sys.getsizeof(value)``. For the trivial but common case that each |
| 31 item counts as ``1``, a cache's size is equal to the number of its |
| 32 items, or ``len(cache)``. |
| 33 |
| 34 Multiple cache classes based on different caching algorithms are |
| 35 implemented, and decorators for easily memoizing function and method |
| 36 calls are provided, too. |
| 37 |
| 38 |
| 39 Installation |
| 40 ------------------------------------------------------------------------ |
| 41 |
| 42 Install cachetools using pip:: |
| 43 |
| 44 pip install cachetools |
| 45 |
| 46 |
| 47 Project Resources |
| 48 ------------------------------------------------------------------------ |
| 49 |
| 50 .. image:: http://img.shields.io/pypi/v/cachetools.svg?style=flat |
| 51 :target: https://pypi.python.org/pypi/cachetools/ |
| 52 :alt: Latest PyPI version |
| 53 |
| 54 .. image:: http://img.shields.io/pypi/dm/cachetools.svg?style=flat |
| 55 :target: https://pypi.python.org/pypi/cachetools/ |
| 56 :alt: Number of PyPI downloads |
| 57 |
| 58 .. image:: http://img.shields.io/travis/tkem/cachetools/master.svg?style=flat |
| 59 :target: https://travis-ci.org/tkem/cachetools/ |
| 60 :alt: Travis CI build status |
| 61 |
| 62 .. image:: http://img.shields.io/coveralls/tkem/cachetools/master.svg?style=flat |
| 63 :target: https://coveralls.io/r/tkem/cachetools |
| 64 :alt: Test coverage |
| 65 |
| 66 - `Documentation`_ |
| 67 - `Issue Tracker`_ |
| 68 - `Source Code`_ |
| 69 - `Change Log`_ |
| 70 |
| 71 |
| 72 License |
| 73 ------------------------------------------------------------------------ |
| 74 |
| 75 Copyright (c) 2014-2016 Thomas Kemmer. |
| 76 |
| 77 Licensed under the `MIT License`_. |
| 78 |
| 79 |
| 80 .. _@lru_cache: http://docs.python.org/3/library/functools.html#functools.lru_ca
che |
| 81 .. _mutable: http://docs.python.org/dev/glossary.html#term-mutable |
| 82 .. _mapping: http://docs.python.org/dev/glossary.html#term-mapping |
| 83 .. _cache algorithm: http://en.wikipedia.org/wiki/Cache_algorithms |
| 84 |
| 85 .. _Documentation: http://pythonhosted.org/cachetools/ |
| 86 .. _Issue Tracker: https://github.com/tkem/cachetools/issues/ |
| 87 .. _Source Code: https://github.com/tkem/cachetools/ |
| 88 .. _Change Log: https://github.com/tkem/cachetools/blob/master/CHANGES.rst |
| 89 .. _MIT License: http://raw.github.com/tkem/cachetools/master/LICENSE |
| 90 |
| 91 |
OLD | NEW |