propcache is a Python 3 library that provides a fast implementation of cached properties for Python 3.10+. It is designed to be nearly identical to functools.cached_property, with an additional under_cached_property option that caches using self._cache. Useful for speeding up computed properties in Python applications, including optional pure Python or compiled installs.
Project status
- Actively maintained: Yes, there are recent upstream and repository updates within the last day (upstream push on 2026-09-16), with multiple tagged updates in September 2026.
- Cadence: Evidence suggests a short-term burst, with updates at least on 2026-09-15 and 2026-09-16 (v0.5.3 then v0.5.4), after a quieter period since mid-May (v0.5.2 on 2026-05-08).
AI summary generated
Recent updates
v0.5.4
Release v0.5.4 focuses on packaging and build backend behavior for downstream wheel builds. The change ensures compiled extension modules regain expected compiler optimizations (notably -O3/-DNDEBUG) and improves cached property read performance versus v0.5.3.
v0.5.3
Release v0.5.3 focuses on fixing concurrency issues in the Cython implementations of cached_property and under_cached_property when running on free-threaded CPython. It also includes a set of contributor and CI/tooling updates, plus dropping support for free-threaded Python 3.13.
Breakingv0.5.2
The v0.5.2 release primarily bumps the package version to 0.5.2. The code diff for this tag is minimal, consisting of a version string update in src/propcache/__init__.py and a changelog entry stating there are no significant changes.
v0.5.1
Release v0.5.1 has release notes that state no significant changes. However, the code diff shows multiple functional packaging and build-backend modifications, plus changes to supported Python versions and CI build matrices.
Featuresv0.4.1
v0.4.1 focuses on fixing a reference leak in the C extension implementations of cached_property and under_cached_property. It also updates the reusable-build-wheel workflow default OS to ubuntu-latest.
v0.4.0
v0.4.0 primarily introduces a performance optimization in the Cython implementation of cached properties by changing how the cache is checked and how Python C-API dict access is performed. It also expands CI and release build coverage for additional platforms, including arm64 Windows wheels and CPython 3.14 testing, and updates changelog/metadata.
Featuresv0.3.2
Release v0.3.2 focuses on build and documentation improvements. The main documented change is moving Cython usage to 3.1 across the build path, and making Cython line tracing opt-in via the with-cython-tracing build config (or PROPCACHE_CYTHON_TRACING).
v0.3.1
Release v0.3.1 is described as a typing-focused bug fix, aimed at improving type robustness. The code diff mostly matches that claim, but it also includes a few runtime-relevant and build-backend-adjacent modifications that are not mentioned in the release notes.
v0.3.0
v0.3.0 adds support for building and testing CPython 3.13 free-threaded (cp313t) artifacts, including C extension compilation tweaks and CI configuration. The release notes also mention CI pip dependency caching changes via `re-actors/cache-python-deps`. The code diff contains additional packaging and dependency-constraint changes that are not explicitly described in the release notes.
Featuresv0.2.1
Release v0.2.1 focuses on small bug fixes around the Cython implementations of the cached property decorators, plus dropping Python 3.8 support. It also includes CI and packaging build-system adjustments (ex: Cython pre-release handling) that primarily affect how wheels/sdists are produced.
Breakingv0.2.0
Release 0.2.0 focuses on improved typing and documentation for the cached_property and under_cached_property decorators. It also introduces a new recommended import path (propcache.api) and switches the project to a src layout.
Featuresv0.1.0
v0.1.0 primarily documents adding armv7l wheels to the release artifacts. The code diff also shows multiple build/CI related adjustments, plus a packaging backend change that renames a Cython-tracing opt-out environment variable.
Features