124 lines
		
	
	
	
		
			4.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			124 lines
		
	
	
	
		
			4.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
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
 | 
						|
 | 
						|
 |