Skip to main content
https://travis-ci.org/yola/property-caching.svg?branch=fix/md-to-rst

Cached version of property

Written and used by the folks at Yola to support our free website builder.

Overview

  • cached_property - stores results of decorated methods in decorated object (in _cached_properties attribute)

  • class_cached_property - stores results of decorated methods in the class of decorated object (in _class_cached_properties attribute). All instances will share cached value.

  • clear_property_cache - deletes cached value (works for object cached properties only)

  • set_property_cache - explicitly sets property cache (works for object cached properties only)

  • is_property_cached - allows to check whether property was cached or not (works for object cached properties only)

Usage

from property_caching import (cached_property,
                              class_cached_property,
                              clear_property_cache,
                              set_property_cache,
                              truthy_cached_property)

class Dummy:
    @cached_property
    def foo(self):
        return self.service.expensive_operation()

    @truthy_cached_property
    def bar(self):
        # this value will only be cached if it doesn't evaluate to false:
        return self.service.expensive_operation2()

    @class_cached_property
    def service(self):
        return expensive_service_initialization()

d = Dummy()
d.foo   # calculates result and stores it in d._cached_properties
d.foo   # uses cached value

clear_property_cache(d, 'foo')   # clears cache for property `foo`
set_property_cache(d, 'foo', 42) # explicitly set cache for property `foo`

d2 = Dummy()
d2.foo  # re-calculates value of `foo` but uses cached service

Testing

Install development requirements:

pip install -r requirements.txt

Run the tests with:

python setup.py test
https://travis-ci.org/yola/property-caching.svg?branch=fix/md-to-rst

Metadata

Release files for property-caching 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for property-caching 1.1.0
File Size Uploaded
property-caching-1.1.0.tar.gz 3.9 kB Details

Release files / property-caching-1.1.0.tar.gz

Download URL property-caching-1.1.0.tar.gz
Size 3.9 kB
Tags Source
SHA-256 checksum
How to use checksums
d2bc1d6dce8e1512f62217e62e84f216163405f45a5a06a5058878126aac9647
BLAKE2b-256 checksum
How to use checksums
3dea630e58b10fc10a81f22d64ed265db759cb539535069bfb3c4d7222429d60
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.1.0 This release

1 release file

1.0.3

1 release file

1.0.2

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page