METADATA 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443
  1. Metadata-Version: 2.4
  2. Name: propcache
  3. Version: 0.4.1
  4. Summary: Accelerated property cache
  5. Home-page: https://github.com/aio-libs/propcache
  6. Author: Andrew Svetlov
  7. Author-email: andrew.svetlov@gmail.com
  8. Maintainer: aiohttp team <team@aiohttp.org>
  9. Maintainer-email: team@aiohttp.org
  10. License: Apache-2.0
  11. Project-URL: Chat: Matrix, https://matrix.to/#/#aio-libs:matrix.org
  12. Project-URL: Chat: Matrix Space, https://matrix.to/#/#aio-libs-space:matrix.org
  13. Project-URL: CI: GitHub Workflows, https://github.com/aio-libs/propcache/actions?query=branch:master
  14. Project-URL: Code of Conduct, https://github.com/aio-libs/.github/blob/master/CODE_OF_CONDUCT.md
  15. Project-URL: Coverage: codecov, https://codecov.io/github/aio-libs/propcache
  16. Project-URL: Docs: Changelog, https://propcache.readthedocs.io/en/latest/changes/
  17. Project-URL: Docs: RTD, https://propcache.readthedocs.io
  18. Project-URL: GitHub: issues, https://github.com/aio-libs/propcache/issues
  19. Project-URL: GitHub: repo, https://github.com/aio-libs/propcache
  20. Keywords: cython,cext,propcache
  21. Classifier: Development Status :: 5 - Production/Stable
  22. Classifier: Intended Audience :: Developers
  23. Classifier: License :: OSI Approved :: Apache Software License
  24. Classifier: Programming Language :: Cython
  25. Classifier: Programming Language :: Python
  26. Classifier: Programming Language :: Python :: 3
  27. Classifier: Programming Language :: Python :: 3.9
  28. Classifier: Programming Language :: Python :: 3.10
  29. Classifier: Programming Language :: Python :: 3.11
  30. Classifier: Programming Language :: Python :: 3.12
  31. Classifier: Programming Language :: Python :: 3.13
  32. Classifier: Programming Language :: Python :: 3.14
  33. Classifier: Topic :: Internet :: WWW/HTTP
  34. Classifier: Topic :: Software Development :: Libraries :: Python Modules
  35. Requires-Python: >=3.9
  36. Description-Content-Type: text/x-rst
  37. License-File: LICENSE
  38. License-File: NOTICE
  39. Dynamic: license-file
  40. propcache
  41. =========
  42. The module provides a fast implementation of cached properties for Python 3.9+.
  43. .. image:: https://github.com/aio-libs/propcache/actions/workflows/ci-cd.yml/badge.svg
  44. :target: https://github.com/aio-libs/propcache/actions?query=workflow%3ACI
  45. :align: right
  46. .. image:: https://codecov.io/gh/aio-libs/propcache/branch/master/graph/badge.svg
  47. :target: https://codecov.io/gh/aio-libs/propcache
  48. .. image:: https://badge.fury.io/py/propcache.svg
  49. :target: https://badge.fury.io/py/propcache
  50. .. image:: https://readthedocs.org/projects/propcache/badge/?version=latest
  51. :target: https://propcache.readthedocs.io
  52. .. image:: https://img.shields.io/pypi/pyversions/propcache.svg
  53. :target: https://pypi.python.org/pypi/propcache
  54. .. 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
  55. :target: https://matrix.to/#/%23aio-libs:matrix.org
  56. :alt: Matrix Room — #aio-libs:matrix.org
  57. .. 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
  58. :target: https://matrix.to/#/%23aio-libs-space:matrix.org
  59. :alt: Matrix Space — #aio-libs-space:matrix.org
  60. Introduction
  61. ------------
  62. The API is designed to be nearly identical to the built-in ``functools.cached_property`` class,
  63. except for the additional ``under_cached_property`` class which uses ``self._cache``
  64. instead of ``self.__dict__`` to store the cached values and prevents ``__set__`` from being called.
  65. For full documentation please read https://propcache.readthedocs.io.
  66. Installation
  67. ------------
  68. ::
  69. $ pip install propcache
  70. The library is Python 3 only!
  71. PyPI contains binary wheels for Linux, Windows and MacOS. If you want to install
  72. ``propcache`` on another operating system where wheels are not provided,
  73. the the tarball will be used to compile the library from
  74. the source code. It requires a C compiler and and Python headers installed.
  75. To skip the compilation you must explicitly opt-in by using a PEP 517
  76. configuration setting ``pure-python``, or setting the ``PROPCACHE_NO_EXTENSIONS``
  77. environment variable to a non-empty value, e.g.:
  78. .. code-block:: console
  79. $ pip install propcache --config-settings=pure-python=false
  80. Please note that the pure-Python (uncompiled) version is much slower. However,
  81. PyPy always uses a pure-Python implementation, and, as such, it is unaffected
  82. by this variable.
  83. API documentation
  84. ------------------
  85. The documentation is located at https://propcache.readthedocs.io.
  86. Source code
  87. -----------
  88. The project is hosted on GitHub_
  89. Please file an issue on the `bug tracker
  90. <https://github.com/aio-libs/propcache/issues>`_ if you have found a bug
  91. or have some suggestion in order to improve the library.
  92. Discussion list
  93. ---------------
  94. *aio-libs* google group: https://groups.google.com/forum/#!forum/aio-libs
  95. Feel free to post your questions and ideas here.
  96. Authors and License
  97. -------------------
  98. The ``propcache`` package is derived from ``yarl`` which is written by Andrew Svetlov.
  99. It's *Apache 2* licensed and freely available.
  100. .. _GitHub: https://github.com/aio-libs/propcache
  101. =========
  102. Changelog
  103. =========
  104. ..
  105. You should *NOT* be adding new change log entries to this file, this
  106. file is managed by towncrier. You *may* edit previous change logs to
  107. fix problems like typo corrections or such.
  108. To add a new change log entry, please see
  109. https://pip.pypa.io/en/latest/development/#adding-a-news-entry
  110. we named the news folder "changes".
  111. WARNING: Don't drop the next directive!
  112. .. towncrier release notes start
  113. 0.4.1
  114. =====
  115. *(2025-10-08)*
  116. Bug fixes
  117. ---------
  118. - Fixed reference leak caused by ``Py_INCREF`` because Cython has its own reference counter systems -- by `@Vizonex <https://github.com/sponsors/Vizonex>`__.
  119. *Related issues and pull requests on GitHub:*
  120. `#162 <https://github.com/aio-libs/propcache/issues/162>`__.
  121. Contributor-facing changes
  122. --------------------------
  123. - Fixes the default value for the ``os``
  124. parameter in ``reusable-build-wheel.yml``
  125. to be ``ubuntu-latest`` instead of
  126. ``ubuntu``.
  127. *Related issues and pull requests on GitHub:*
  128. `#155 <https://github.com/aio-libs/propcache/issues/155>`__.
  129. ----
  130. 0.4.0
  131. =====
  132. *(2025-10-04)*
  133. Features
  134. --------
  135. - Optimized propcache by replacing sentinel ``object`` for checking if
  136. the ``object`` is ``NULL`` and changed ``dict`` API for
  137. Python C-API -- by `@Vizonex <https://github.com/sponsors/Vizonex>`__.
  138. *Related issues and pull requests on GitHub:*
  139. `#121 <https://github.com/aio-libs/propcache/issues/121>`__.
  140. Contributor-facing changes
  141. --------------------------
  142. - Builds have been added for arm64 Windows
  143. wheels and the ``reusable-build-wheel.yml``
  144. workflow has been modified to allow for
  145. an OS value (``windows-11-arm``) which
  146. does not include the ``-latest`` postfix
  147. -- by `@finnagin <https://github.com/sponsors/finnagin>`__.
  148. *Related issues and pull requests on GitHub:*
  149. `#133 <https://github.com/aio-libs/propcache/issues/133>`__.
  150. - Added CI for CPython 3.14 -- by `@kumaraditya303 <https://github.com/sponsors/kumaraditya303>`__.
  151. *Related issues and pull requests on GitHub:*
  152. `#140 <https://github.com/aio-libs/propcache/issues/140>`__.
  153. ----
  154. 0.3.2
  155. =====
  156. *(2025-06-09)*
  157. Improved documentation
  158. ----------------------
  159. - Fixed incorrect decorator usage in the ``~propcache.api.under_cached_property`` example code -- by `@meanmail <https://github.com/sponsors/meanmail>`__.
  160. *Related issues and pull requests on GitHub:*
  161. `#109 <https://github.com/aio-libs/propcache/issues/109>`__.
  162. Packaging updates and notes for downstreams
  163. -------------------------------------------
  164. - Updated to use Cython 3.1 universally across the build path -- by `@lysnikolaou <https://github.com/sponsors/lysnikolaou>`__.
  165. *Related issues and pull requests on GitHub:*
  166. `#117 <https://github.com/aio-libs/propcache/issues/117>`__.
  167. - Made Cython line tracing opt-in via the ``with-cython-tracing`` build config setting -- by `@bdraco <https://github.com/sponsors/bdraco>`__.
  168. Previously, line tracing was enabled by default in ``pyproject.toml``, which caused build issues for some users and made wheels nearly twice as slow.
  169. Now line tracing is only enabled when explicitly requested via ``pip install . --config-setting=with-cython-tracing=true`` or by setting the ``PROPCACHE_CYTHON_TRACING`` environment variable.
  170. *Related issues and pull requests on GitHub:*
  171. `#118 <https://github.com/aio-libs/propcache/issues/118>`__.
  172. ----
  173. 0.3.1
  174. =====
  175. *(2025-03-25)*
  176. Bug fixes
  177. ---------
  178. - Improved typing annotations, fixing some type errors under correct usage
  179. and improving typing robustness generally -- by `@Dreamsorcerer <https://github.com/sponsors/Dreamsorcerer>`__.
  180. *Related issues and pull requests on GitHub:*
  181. `#103 <https://github.com/aio-libs/propcache/issues/103>`__.
  182. ----
  183. 0.3.0
  184. =====
  185. *(2025-02-20)*
  186. Features
  187. --------
  188. - Implemented support for the free-threaded build of CPython 3.13 -- by `@lysnikolaou <https://github.com/sponsors/lysnikolaou>`__.
  189. *Related issues and pull requests on GitHub:*
  190. `#84 <https://github.com/aio-libs/propcache/issues/84>`__.
  191. Packaging updates and notes for downstreams
  192. -------------------------------------------
  193. - Started building wheels for the free-threaded build of CPython 3.13 -- by `@lysnikolaou <https://github.com/sponsors/lysnikolaou>`__.
  194. *Related issues and pull requests on GitHub:*
  195. `#84 <https://github.com/aio-libs/propcache/issues/84>`__.
  196. Contributor-facing changes
  197. --------------------------
  198. - GitHub Actions CI/CD is now configured to manage caching pip-ecosystem
  199. dependencies using `re-actors/cache-python-deps`_ -- an action by
  200. `@webknjaz <https://github.com/sponsors/webknjaz>`__ that takes into account ABI stability and the exact
  201. version of Python runtime.
  202. .. _`re-actors/cache-python-deps`:
  203. https://github.com/marketplace/actions/cache-python-deps
  204. *Related issues and pull requests on GitHub:*
  205. `#93 <https://github.com/aio-libs/propcache/issues/93>`__.
  206. ----
  207. 0.2.1
  208. =====
  209. *(2024-12-01)*
  210. Bug fixes
  211. ---------
  212. - Stopped implicitly allowing the use of Cython pre-release versions when
  213. building the distribution package -- by `@ajsanchezsanz <https://github.com/sponsors/ajsanchezsanz>`__ and
  214. `@markgreene74 <https://github.com/sponsors/markgreene74>`__.
  215. *Related commits on GitHub:*
  216. `64df0a6 <https://github.com/aio-libs/propcache/commit/64df0a6>`__.
  217. - Fixed ``wrapped`` and ``func`` not being accessible in the Cython versions of ``propcache.api.cached_property`` and ``propcache.api.under_cached_property`` decorators -- by `@bdraco <https://github.com/sponsors/bdraco>`__.
  218. *Related issues and pull requests on GitHub:*
  219. `#72 <https://github.com/aio-libs/propcache/issues/72>`__.
  220. Removals and backward incompatible breaking changes
  221. ---------------------------------------------------
  222. - Removed support for Python 3.8 as it has reached end of life -- by `@bdraco <https://github.com/sponsors/bdraco>`__.
  223. *Related issues and pull requests on GitHub:*
  224. `#57 <https://github.com/aio-libs/propcache/issues/57>`__.
  225. Packaging updates and notes for downstreams
  226. -------------------------------------------
  227. - Stopped implicitly allowing the use of Cython pre-release versions when
  228. building the distribution package -- by `@ajsanchezsanz <https://github.com/sponsors/ajsanchezsanz>`__ and
  229. `@markgreene74 <https://github.com/sponsors/markgreene74>`__.
  230. *Related commits on GitHub:*
  231. `64df0a6 <https://github.com/aio-libs/propcache/commit/64df0a6>`__.
  232. ----
  233. 0.2.0
  234. =====
  235. *(2024-10-07)*
  236. Bug fixes
  237. ---------
  238. - Fixed loading the C-extensions on Python 3.8 -- by `@bdraco <https://github.com/sponsors/bdraco>`__.
  239. *Related issues and pull requests on GitHub:*
  240. `#26 <https://github.com/aio-libs/propcache/issues/26>`__.
  241. Features
  242. --------
  243. - Improved typing for the ``propcache.api.under_cached_property`` decorator -- by `@bdraco <https://github.com/sponsors/bdraco>`__.
  244. *Related issues and pull requests on GitHub:*
  245. `#38 <https://github.com/aio-libs/propcache/issues/38>`__.
  246. Improved documentation
  247. ----------------------
  248. - Added API documentation for the ``propcache.api.cached_property`` and ``propcache.api.under_cached_property`` decorators -- by `@bdraco <https://github.com/sponsors/bdraco>`__.
  249. *Related issues and pull requests on GitHub:*
  250. `#16 <https://github.com/aio-libs/propcache/issues/16>`__.
  251. Packaging updates and notes for downstreams
  252. -------------------------------------------
  253. - Moved ``propcache.api.under_cached_property`` and ``propcache.api.cached_property`` to `propcache.api` -- by `@bdraco <https://github.com/sponsors/bdraco>`__.
  254. Both decorators remain importable from the top-level package, however importing from `propcache.api` is now the recommended way to use them.
  255. *Related issues and pull requests on GitHub:*
  256. `#19 <https://github.com/aio-libs/propcache/issues/19>`__, `#24 <https://github.com/aio-libs/propcache/issues/24>`__, `#32 <https://github.com/aio-libs/propcache/issues/32>`__.
  257. - Converted project to use a src layout -- by `@bdraco <https://github.com/sponsors/bdraco>`__.
  258. *Related issues and pull requests on GitHub:*
  259. `#22 <https://github.com/aio-libs/propcache/issues/22>`__, `#29 <https://github.com/aio-libs/propcache/issues/29>`__, `#37 <https://github.com/aio-libs/propcache/issues/37>`__.
  260. ----
  261. 0.1.0
  262. =====
  263. *(2024-10-03)*
  264. Features
  265. --------
  266. - Added ``armv7l`` wheels -- by `@bdraco <https://github.com/sponsors/bdraco>`__.
  267. *Related issues and pull requests on GitHub:*
  268. `#5 <https://github.com/aio-libs/propcache/issues/5>`__.
  269. ----
  270. 0.0.0
  271. =====
  272. *(2024-10-02)*
  273. - Initial release.