|
|
- Metadata-Version: 2.1
- Name: cachetools
- Version: 4.1.1
- Summary: Extensible memoizing collections and decorators
- Home-page: https://github.com/tkem/cachetools/
- Author: Thomas Kemmer
- Author-email: tkemmer@computer.org
- License: MIT
- Platform: UNKNOWN
- Classifier: Development Status :: 5 - Production/Stable
- Classifier: Environment :: Other Environment
- Classifier: Intended Audience :: Developers
- Classifier: License :: OSI Approved :: MIT License
- Classifier: Operating System :: OS Independent
- Classifier: Programming Language :: Python
- Classifier: Programming Language :: Python :: 3
- Classifier: Programming Language :: Python :: 3.5
- Classifier: Programming Language :: Python :: 3.6
- Classifier: Programming Language :: Python :: 3.7
- Classifier: Programming Language :: Python :: 3.8
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
- Requires-Python: ~=3.5
-
- cachetools
- ========================================================================
-
- .. image:: http://img.shields.io/pypi/v/cachetools
- :target: https://pypi.org/project/cachetools/
- :alt: Latest PyPI version
-
- .. image:: https://img.shields.io/readthedocs/cachetools
- :target: http://cachetools.readthedocs.io/
- :alt: Documentation build status
-
- .. image:: http://img.shields.io/travis/tkem/cachetools
- :target: https://travis-ci.org/tkem/cachetools/
- :alt: Travis CI build status
-
- .. image:: http://img.shields.io/coveralls/tkem/cachetools
- :target: https://coveralls.io/r/tkem/cachetools
- :alt: Test coverage
-
- .. image:: https://img.shields.io/github/license/tkem/cachetools
- :target: http://raw.github.com/tkem/cachetools/master/LICENSE
- :alt: License
-
- This module provides various memoizing collections and decorators,
- including variants of the Python Standard Library's `@lru_cache`_
- function decorator.
-
- .. code-block:: python
-
- from cachetools import cached, LRUCache, TTLCache
-
- # speed up calculating Fibonacci numbers with dynamic programming
- @cached(cache={})
- def fib(n):
- return n if n < 2 else fib(n - 1) + fib(n - 2)
-
- # cache least recently used Python Enhancement Proposals
- @cached(cache=LRUCache(maxsize=32))
- def get_pep(num):
- url = 'http://www.python.org/dev/peps/pep-%04d/' % num
- with urllib.request.urlopen(url) as s:
- return s.read()
-
- # cache weather data for no longer than ten minutes
- @cached(cache=TTLCache(maxsize=1024, ttl=600))
- def get_weather(place):
- return owm.weather_at_place(place).get_weather()
-
- For the purpose of this module, a *cache* is a mutable_ mapping_ of a
- fixed maximum size. When the cache is full, i.e. by adding another
- item the cache would exceed its maximum size, the cache must choose
- which item(s) to discard based on a suitable `cache algorithm`_. In
- general, a cache's size is the total size of its items, and an item's
- size is a property or function of its value, e.g. the result of
- ``sys.getsizeof(value)``. For the trivial but common case that each
- item counts as ``1``, a cache's size is equal to the number of its
- items, or ``len(cache)``.
-
- Multiple cache classes based on different caching algorithms are
- implemented, and decorators for easily memoizing function and method
- calls are provided, too.
-
-
- Installation
- ------------------------------------------------------------------------
-
- cachetools is available from PyPI_ and can be installed by running::
-
- pip install cachetools
-
-
- Project Resources
- ------------------------------------------------------------------------
-
- - `Documentation`_
- - `Issue tracker`_
- - `Source code`_
- - `Change log`_
-
-
- License
- ------------------------------------------------------------------------
-
- Copyright (c) 2014-2020 Thomas Kemmer.
-
- Licensed under the `MIT License`_.
-
-
- .. _@lru_cache: http://docs.python.org/3/library/functools.html#functools.lru_cache
- .. _mutable: http://docs.python.org/dev/glossary.html#term-mutable
- .. _mapping: http://docs.python.org/dev/glossary.html#term-mapping
- .. _cache algorithm: http://en.wikipedia.org/wiki/Cache_algorithms
-
- .. _PyPI: https://pypi.org/project/cachetools/
- .. _Documentation: https://cachetools.readthedocs.io/
- .. _Issue tracker: https://github.com/tkem/cachetools/issues/
- .. _Source code: https://github.com/tkem/cachetools/
- .. _Change log: https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst
- .. _MIT License: http://raw.github.com/tkem/cachetools/master/LICENSE
-
-
|