freshcrate
Home > Frameworks > propcache

propcache

Accelerated property cache

Description

propcache ========= The module provides a fast implementation of cached properties for Python 3.9+. .. image:: https://github.com/aio-libs/propcache/actions/workflows/ci-cd.yml/badge.svg :target: https://github.com/aio-libs/propcache/actions?query=workflow%3ACI :align: right .. image:: https://codecov.io/gh/aio-libs/propcache/branch/master/graph/badge.svg :target: https://codecov.io/gh/aio-libs/propcache .. image:: https://badge.fury.io/py/propcache.svg :target: https://badge.fury.io/py/propcache .. image:: https://readthedocs.org/projects/propcache/badge/?version=latest :target: https://propcache.readthedocs.io .. image:: https://img.shields.io/pypi/pyversions/propcache.svg :target: https://pypi.python.org/pypi/propcache .. image:: https://img.shields.io/matrix/aio-libs:matrix.org?label=Discuss%20on%20Matrix%20at%20%23aio-libs%3Amatrix.org&logo=matrix&server_fqdn=matrix.org&style=flat :target: https://matrix.to/#/%23aio-libs:matrix.org :alt: Matrix Room — #aio-libs:matrix.org .. image:: https://img.shields.io/matrix/aio-libs-space:matrix.org?label=Discuss%20on%20Matrix%20at%20%23aio-libs-space%3Amatrix.org&logo=matrix&server_fqdn=matrix.org&style=flat :target: https://matrix.to/#/%23aio-libs-space:matrix.org :alt: Matrix Space — #aio-libs-space:matrix.org Introduction ------------ The API is designed to be nearly identical to the built-in ``functools.cached_property`` class, except for the additional ``under_cached_property`` class which uses ``self._cache`` instead of ``self.__dict__`` to store the cached values and prevents ``__set__`` from being called. For full documentation please read https://propcache.readthedocs.io. Installation ------------ :: $ pip install propcache The library is Python 3 only! PyPI contains binary wheels for Linux, Windows and MacOS. If you want to install ``propcache`` on another operating system where wheels are not provided, the the tarball will be used to compile the library from the source code. It requires a C compiler and and Python headers installed. To skip the compilation you must explicitly opt-in by using a PEP 517 configuration setting ``pure-python``, or setting the ``PROPCACHE_NO_EXTENSIONS`` environment variable to a non-empty value, e.g.: .. code-block:: console $ pip install propcache --config-settings=pure-python=false Please note that the pure-Python (uncompiled) version is much slower. However, PyPy always uses a pure-Python implementation, and, as such, it is unaffected by this variable. API documentation ------------------ The documentation is located at https://propcache.readthedocs.io. Source code ----------- The project is hosted on GitHub_ Please file an issue on the `bug tracker <https://github.com/aio-libs/propcache/issues>`_ if you have found a bug or have some suggestion in order to improve the library. Discussion list --------------- *aio-libs* google group: https://groups.google.com/forum/#!forum/aio-libs Feel free to post your questions and ideas here. Authors and License ------------------- The ``propcache`` package is derived from ``yarl`` which is written by Andrew Svetlov. It's *Apache 2* licensed and freely available. .. _GitHub: https://github.com/aio-libs/propcache ========= Changelog ========= .. You should *NOT* be adding new change log entries to this file, this file is managed by towncrier. You *may* edit previous change logs to fix problems like typo corrections or such. To add a new change log entry, please see https://pip.pypa.io/en/latest/development/#adding-a-news-entry we named the news folder "changes". WARNING: Don't drop the next directive! .. towncrier release notes start 0.4.1 ===== *(2025-10-08)* Bug fixes --------- - Fixed reference leak caused by ``Py_INCREF`` because Cython has its own reference counter systems -- by `@Vizonex <https://github.com/sponsors/Vizonex>`__. *Related issues and pull requests on GitHub:* `#162 <https://github.com/aio-libs/propcache/issues/162>`__. Contributor-facing changes -------------------------- - Fixes the default value for the ``os`` parameter in ``reusable-build-wheel.yml`` to be ``ubuntu-latest`` instead of ``ubuntu``. *Related issues and pull requests on GitHub:* `#155 <https://github.com/aio-libs/propcache/issues/155>`__. ---- 0.4.0 ===== *(2025-10-04)* Features -------- - Optimized propcache by replacing sentinel ``object`` for checking if the ``object`` is ``NULL`` and changed ``dict`` API for Python C-API -- by `@Vizonex <https://github.com/sponsors/Vizonex>`__. *Related issues and pull requests on GitHub:* `#121 <https://github.com/aio-libs/propcache/issues/121>`__. Contributor-facing changes -------------------------- - Builds have been added for arm64 Windows wheels and the ``reusable-build-wheel.yml`` workflow has been modified to allow for an OS value (``windows-11-arm``) which does not include the ``-latest`` postfix

Release History

VersionChangesUrgencyDate
0.4.1Imported from PyPI (0.4.1)Low4/21/2026
v0.4.1Bug fixes --------- - Fixed reference leak caused by ``Py_INCREF`` because Cython has its own reference counter systems -- by :user:`Vizonex`. *Related issues and pull requests on GitHub:* #162. Contributor-facing changes -------------------------- - Fixes the default value for the ``os`` parameter in ``reusable-build-wheel.yml`` to be ``ubuntu-latest`` instead of ``ubuntu``. *Related issues and pull requests on GitHub:* #155. ----Low10/8/2025
v0.4.0This release was YANKED due to a reference leak. Features -------- - Optimized propcache by replacing sentinel :py:class:`object` for checking if the :py:class:`object` is ``NULL`` and changed :py:class:`dict` API for Python C-API -- by :user:`Vizonex`. *Related issues and pull requests on GitHub:* #121. Contributor-facing changes -------------------------- - Builds have been added for arm64 Windows wheels and the ``reusable-build-wheel.yml`` workflow has beenLow10/4/2025
v0.3.2Improved documentation ---------------------- - Fixed incorrect decorator usage in the :func:`~propcache.api.under_cached_property` example code -- by :user:`meanmail`. *Related issues and pull requests on GitHub:* #109. Packaging updates and notes for downstreams ------------------------------------------- - Updated to use Cython 3.1 universally across the build path -- by :user:`lysnikolaou`. *Related issues and pull requests on GitHub:* #117. - Made Cython line tracing opt-in vLow6/9/2025
v0.3.1Bug fixes --------- - Improved typing annotations, fixing some type errors under correct usage and improving typing robustness generally -- by :user:`Dreamsorcerer`. *Related issues and pull requests on GitHub:* #103. ----Low3/26/2025
v0.3.0Features -------- - Implemented support for the free-threaded build of CPython 3.13 -- by :user:`lysnikolaou`. *Related issues and pull requests on GitHub:* #84. Packaging updates and notes for downstreams ------------------------------------------- - Started building wheels for the free-threaded build of CPython 3.13 -- by :user:`lysnikolaou`. *Related issues and pull requests on GitHub:* #84. Contributor-facing changes -------------------------- - GitHub Actions CI/CD is now cLow2/20/2025
v0.2.1Bug fixes --------- - Stopped implicitly allowing the use of Cython pre-release versions when building the distribution package -- by :user:`ajsanchezsanz` and :user:`markgreene74`. *Related commits on GitHub:* :commit:`64df0a6`. - Fixed ``wrapped`` and ``func`` not being accessible in the Cython versions of :func:`propcache.api.cached_property` and :func:`propcache.api.under_cached_property` decorators -- by :user:`bdraco`. *Related issues and pull requests on GitHub:* #72. ReLow12/1/2024
v0.2.0Bug fixes --------- - Fixed loading the C-extensions on Python 3.8 -- by :user:`bdraco`. *Related issues and pull requests on GitHub:* #26. Features -------- - Improved typing for the :func:`propcache.api.under_cached_property` decorator -- by :user:`bdraco`. *Related issues and pull requests on GitHub:* #38. Improved documentation ---------------------- - Added API documentation for the :func:`propcache.api.cached_property` and :func:`propcache.api.under_cached_property` decoraLow10/7/2024
v0.1.0Features -------- - Added ``armv7l`` wheels -- by :user:`bdraco`. *Related issues and pull requests on GitHub:* #5. ----Low10/3/2024
v0.0.0- Initial release.Low10/2/2024

Dependencies & License Audit

Loading dependencies...

Similar Packages

pre-commitA framework for managing and maintaining multi-language pre-commit hooks.v4.6.0
azure-core-tracing-opentelemetryMicrosoft Azure Azure Core OpenTelemetry plugin Library for Pythonazure-template_0.1.0b6187637
spdx-toolsSPDX parser and tools.0.8.5
lacesDjango components that know how to render themselves.0.1.2
django-tasksA backport of Django's built in Tasks framework0.12.0