Expand standard functools to methods
Project Links
Meta
Author: Jeong YunWon
Classifiers
License
- OSI Approved :: BSD License
Programming Language
- Python :: 2
- Python :: 2.7
- Python :: 3
- Python :: 3.6
- Python :: 3.7
- Python :: 3.8
- Python :: 3.9
- Python :: 3.10
- Python :: 3.11
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:
See also
[Documentation](https://methodtools.readthedocs.io/en/latest/)
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](https://github.com/youknowone/wirerope).
0.4.7
Feb 05, 2023
0.4.5
Jul 31, 2021
0.4.3
May 27, 2021
0.4.2
Jul 06, 2020
0.4.1
Jul 05, 2020
0.4.0
Jul 04, 2020
0.1.3
May 23, 2020
0.1.2
Oct 26, 2019
0.1.1
Oct 24, 2019
0.1.0
May 05, 2019