Expand standard functools to methods
Project description
Expand functools features to methods, classmethods, staticmethods and even for (unofficial) hybrid methods.
Use methodtools module instead of functools module. Than it will work as you expected.
from methodtools import lru_cache
class A(object):
# cached method. the storage lifetime follows `self` object
@lru_cache()
def cached_method(self, args):
...
# cached classmethod. the storage lifetime follows `A` class
@lru_cache() # the order is important!
@classmethod # always lru_cache on top of classmethod
def cached_classmethod(self, args):
...
# cached staticmethod. the storage lifetime follows `A` class
@lru_cache() # the order is important!
@staticmethod # always lru_cache on top of classmethod
def cached_staticmethod(self, args):
...
@lru_cache() # just same as functools.lru_cache
def cached_function():
...
Documentation
For now, methodtools only provides lru_cache. See above for example. See documentation of functools.lru_cache for arguments details.
Installation
PyPI is the recommended way.
$ pip install methodtools
- To browse versions and tarballs, visit:
See also
This project is derived from Ring, a rich cache interface using the same method handling technique.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
methodtools-0.1.2.tar.gz
(2.7 kB
view hashes)