Skip to content

aio-libs/propcache

Repository files navigation

propcache

The module provides a fast implementation of cached properties for Python 3.8+.

https://readthedocs.org/projects/propcache/badge/?version=latest Matrix Room — #aio-libs:matrix.org 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.aio-libs.org.

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 (like Alpine Linux, which is not manylinux-compliant because of the missing glibc and therefore, cannot be used with our wheels) 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.:

$ 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.aio-libs.org.

Source code

The project is hosted on GitHub

Please file an issue on the bug tracker 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.