Skip to main content

cached_property() - computed once per instance, cached as attribute

Project description

https://travis-ci.com/penguinolog/backports.cached_property.svg?branch=master https://img.shields.io/pypi/v/backports.cached-property.svg https://img.shields.io/pypi/pyversions/backports.cached-property.svg https://img.shields.io/pypi/status/backports.cached-property.svg https://img.shields.io/github/license/penguinolog/backports.cached_property.svg https://img.shields.io/badge/code%20style-black-000000.svg

What

Python 3.8 adds great descriptor to functools: cached_property. Technically all required APIs was available since python 3.6, but it is what it is.

This package is a backport of this functionality for python 3.6 and 3.7.

How to use

from backports.cached_property import cached_property

And then python 3.8 documentation will work (because code is minimally changed):

Transform a method of a class into a property whose value is computed once and then cached as a normal attribute for the life of the instance. Similar to property, with the addition of caching. Useful for expensive computed properties of instances that are otherwise effectively immutable.

Example:

class DataSet:
    def __init__(self, sequence_of_numbers):
        self._data = sequence_of_numbers

    @cached_property
    def stdev(self):
        return statistics.stdev(self._data)

    @cached_property
    def variance(self):
        return statistics.variance(self._data)

Project details


Download files

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

Source Distribution

Built Distribution

File details

Details for the file backports.cached-property-1.0.0.post1.tar.gz.

File metadata

  • Download URL: backports.cached-property-1.0.0.post1.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.6

File hashes

Hashes for backports.cached-property-1.0.0.post1.tar.gz
Algorithm Hash digest
SHA256 7329ba527bcf530660a929657f60e860f371f3cbe2d5e7cec5115425a11ca11e
MD5 ab5af7b40a009ca2b362abd7087e218f
BLAKE2b-256 36a5cc92f218972bd825ad2f84ac5f2302e831aba5c6f88cd46706882c94a186

See more details on using hashes here.

File details

Details for the file backports.cached_property-1.0.0.post1-py3-none-any.whl.

File metadata

  • Download URL: backports.cached_property-1.0.0.post1-py3-none-any.whl
  • Upload date:
  • Size: 5.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.6

File hashes

Hashes for backports.cached_property-1.0.0.post1-py3-none-any.whl
Algorithm Hash digest
SHA256 4c9cde438e6cfa97b403a072668c5bf0b025b914f873ace91dda2815f687a5e2
MD5 478ecb8e9c4230da0526dc364354e2a8
BLAKE2b-256 f9357b46ea931fe3625f231a832cfe574ed80bf0b6e584c723898ac3e829e682

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page