Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Expand functools features(lru_cache) to class - methods, classmethods, staticmethods and even for (unofficial) hybrid methods.

License

Notifications You must be signed in to change notification settings

youknowone/methodtools

Repository files navigation

methodtools

Expand functools features to methods, classmethods, staticmethods and even for (unofficial) hybrid methods.

For now, methodtools only provides methodtools.lru_cache.

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 staticmethod
 def cached_staticmethod(self, args):
 ...
@lru_cache() # just same as functools.lru_cache
def cached_function():
 ...

Installation

PyPI is the recommended way.

$ pip install methodtools
To browse versions and tarballs, visit:
https://pypi.python.org/pypi/methodtools/

Note

If you are working on Python 2, install also functools32.

See also

  • Documentation
  • This project is derived from Ring, a rich cache interface using the same method handling technique.
  • To learn more about bound method dispatching, see also wirerope.

About

Expand functools features(lru_cache) to class - methods, classmethods, staticmethods and even for (unofficial) hybrid methods.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

Languages

AltStyle によって変換されたページ (->オリジナル) /