Skip to main content

Expand standard functools to methods

Project description

https://travis-ci.com/youknowone/methodtools.svg?branch=master https://codecov.io/gh/youknowone/methodtools/graph/badge.svg

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:
https://pypi.python.org/pypi/methodtools/

Note

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

See also

This project is derived from Ring, a rich cache interface using the same method handling technique.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for methodtools, version 0.1.2
Filename, size File type Python version Upload date Hashes
Filename, size methodtools-0.1.2.tar.gz (2.7 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page