propcache 0.3.1__tar.gz → 0.3.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. {propcache-0.3.1 → propcache-0.3.2}/CHANGES.rst +36 -0
  2. {propcache-0.3.1/src/propcache.egg-info → propcache-0.3.2}/PKG-INFO +37 -1
  3. {propcache-0.3.1 → propcache-0.3.2}/docs/api.rst +1 -1
  4. {propcache-0.3.1 → propcache-0.3.2}/packaging/pep517_backend/_backend.py +2 -5
  5. {propcache-0.3.1 → propcache-0.3.2}/packaging/pep517_backend/_cython_configuration.py +17 -3
  6. {propcache-0.3.1 → propcache-0.3.2}/packaging/pep517_backend/_transformers.py +3 -1
  7. {propcache-0.3.1 → propcache-0.3.2}/pyproject.toml +0 -10
  8. propcache-0.3.2/requirements/cython.txt +1 -0
  9. propcache-0.3.1/requirements/test-pure.txt → propcache-0.3.2/requirements/test.txt +1 -0
  10. {propcache-0.3.1 → propcache-0.3.2}/src/propcache/__init__.py +1 -1
  11. {propcache-0.3.1 → propcache-0.3.2/src/propcache.egg-info}/PKG-INFO +37 -1
  12. {propcache-0.3.1 → propcache-0.3.2}/src/propcache.egg-info/SOURCES.txt +0 -3
  13. propcache-0.3.1/requirements/cython-freethreading.txt +0 -1
  14. propcache-0.3.1/requirements/cython.txt +0 -1
  15. propcache-0.3.1/requirements/test-freethreading.txt +0 -2
  16. propcache-0.3.1/requirements/test.txt +0 -2
  17. {propcache-0.3.1 → propcache-0.3.2}/.coveragerc +0 -0
  18. {propcache-0.3.1 → propcache-0.3.2}/CHANGES/.TEMPLATE.rst +0 -0
  19. {propcache-0.3.1 → propcache-0.3.2}/CHANGES/.gitignore +0 -0
  20. {propcache-0.3.1 → propcache-0.3.2}/CHANGES/README.rst +0 -0
  21. {propcache-0.3.1 → propcache-0.3.2}/LICENSE +0 -0
  22. {propcache-0.3.1 → propcache-0.3.2}/MANIFEST.in +0 -0
  23. {propcache-0.3.1 → propcache-0.3.2}/NOTICE +0 -0
  24. {propcache-0.3.1 → propcache-0.3.2}/README.rst +0 -0
  25. {propcache-0.3.1 → propcache-0.3.2}/docs/Makefile +0 -0
  26. {propcache-0.3.1 → propcache-0.3.2}/docs/_static/README.txt +0 -0
  27. {propcache-0.3.1 → propcache-0.3.2}/docs/changes.rst +0 -0
  28. {propcache-0.3.1 → propcache-0.3.2}/docs/conf.py +0 -0
  29. {propcache-0.3.1 → propcache-0.3.2}/docs/contributing/guidelines.rst +0 -0
  30. {propcache-0.3.1 → propcache-0.3.2}/docs/contributing/release_guide.rst +0 -0
  31. {propcache-0.3.1 → propcache-0.3.2}/docs/index.rst +0 -0
  32. {propcache-0.3.1 → propcache-0.3.2}/docs/make.bat +0 -0
  33. {propcache-0.3.1 → propcache-0.3.2}/docs/spelling_wordlist.txt +0 -0
  34. {propcache-0.3.1 → propcache-0.3.2}/packaging/README.md +0 -0
  35. {propcache-0.3.1 → propcache-0.3.2}/packaging/pep517_backend/__init__.py +0 -0
  36. {propcache-0.3.1 → propcache-0.3.2}/packaging/pep517_backend/__main__.py +0 -0
  37. {propcache-0.3.1 → propcache-0.3.2}/packaging/pep517_backend/_compat.py +0 -0
  38. {propcache-0.3.1 → propcache-0.3.2}/packaging/pep517_backend/cli.py +0 -0
  39. {propcache-0.3.1 → propcache-0.3.2}/packaging/pep517_backend/hooks.py +0 -0
  40. {propcache-0.3.1 → propcache-0.3.2}/pytest.ini +0 -0
  41. {propcache-0.3.1 → propcache-0.3.2}/requirements/codspeed.txt +0 -0
  42. {propcache-0.3.1 → propcache-0.3.2}/requirements/dev.txt +0 -0
  43. {propcache-0.3.1 → propcache-0.3.2}/requirements/doc-spelling.txt +0 -0
  44. {propcache-0.3.1 → propcache-0.3.2}/requirements/doc.txt +0 -0
  45. {propcache-0.3.1 → propcache-0.3.2}/requirements/lint.txt +0 -0
  46. {propcache-0.3.1 → propcache-0.3.2}/requirements/towncrier.txt +0 -0
  47. {propcache-0.3.1 → propcache-0.3.2}/setup.cfg +0 -0
  48. {propcache-0.3.1 → propcache-0.3.2}/src/propcache/_helpers.py +0 -0
  49. {propcache-0.3.1 → propcache-0.3.2}/src/propcache/_helpers_c.pyx +0 -0
  50. {propcache-0.3.1 → propcache-0.3.2}/src/propcache/_helpers_py.py +0 -0
  51. {propcache-0.3.1 → propcache-0.3.2}/src/propcache/api.py +0 -0
  52. {propcache-0.3.1 → propcache-0.3.2}/src/propcache/py.typed +0 -0
  53. {propcache-0.3.1 → propcache-0.3.2}/src/propcache.egg-info/dependency_links.txt +0 -0
  54. {propcache-0.3.1 → propcache-0.3.2}/src/propcache.egg-info/not-zip-safe +0 -0
  55. {propcache-0.3.1 → propcache-0.3.2}/src/propcache.egg-info/top_level.txt +0 -0
  56. {propcache-0.3.1 → propcache-0.3.2}/tests/conftest.py +0 -0
  57. {propcache-0.3.1 → propcache-0.3.2}/tests/test_api.py +0 -0
  58. {propcache-0.3.1 → propcache-0.3.2}/tests/test_benchmarks.py +0 -0
  59. {propcache-0.3.1 → propcache-0.3.2}/tests/test_cached_property.py +0 -0
  60. {propcache-0.3.1 → propcache-0.3.2}/tests/test_init.py +0 -0
  61. {propcache-0.3.1 → propcache-0.3.2}/tests/test_under_cached_property.py +0 -0
  62. {propcache-0.3.1 → propcache-0.3.2}/towncrier.toml +0 -0
@@ -14,6 +14,42 @@ Changelog
14
14
 
15
15
  .. towncrier release notes start
16
16
 
17
+ 0.3.2
18
+ =====
19
+
20
+ *(2025-06-09)*
21
+
22
+
23
+ Improved documentation
24
+ ----------------------
25
+
26
+ - Fixed incorrect decorator usage in the :func:`~propcache.api.under_cached_property` example code -- by :user:`meanmail`.
27
+
28
+ *Related issues and pull requests on GitHub:*
29
+ :issue:`109`.
30
+
31
+
32
+ Packaging updates and notes for downstreams
33
+ -------------------------------------------
34
+
35
+ - Updated to use Cython 3.1 universally across the build path -- by :user:`lysnikolaou`.
36
+
37
+ *Related issues and pull requests on GitHub:*
38
+ :issue:`117`.
39
+
40
+ - Made Cython line tracing opt-in via the ``with-cython-tracing`` build config setting -- by :user:`bdraco`.
41
+
42
+ Previously, line tracing was enabled by default in :file:`pyproject.toml`, which caused build issues for some users and made wheels nearly twice as slow.
43
+
44
+ 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.
45
+
46
+ *Related issues and pull requests on GitHub:*
47
+ :issue:`118`.
48
+
49
+
50
+ ----
51
+
52
+
17
53
  0.3.1
18
54
  =====
19
55
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: propcache
3
- Version: 0.3.1
3
+ Version: 0.3.2
4
4
  Summary: Accelerated property cache
5
5
  Home-page: https://github.com/aio-libs/propcache
6
6
  Author: Andrew Svetlov
@@ -152,6 +152,42 @@ Changelog
152
152
 
153
153
  .. towncrier release notes start
154
154
 
155
+ 0.3.2
156
+ =====
157
+
158
+ *(2025-06-09)*
159
+
160
+
161
+ Improved documentation
162
+ ----------------------
163
+
164
+ - Fixed incorrect decorator usage in the ``~propcache.api.under_cached_property`` example code -- by `@meanmail <https://github.com/sponsors/meanmail>`__.
165
+
166
+ *Related issues and pull requests on GitHub:*
167
+ `#109 <https://github.com/aio-libs/propcache/issues/109>`__.
168
+
169
+
170
+ Packaging updates and notes for downstreams
171
+ -------------------------------------------
172
+
173
+ - Updated to use Cython 3.1 universally across the build path -- by `@lysnikolaou <https://github.com/sponsors/lysnikolaou>`__.
174
+
175
+ *Related issues and pull requests on GitHub:*
176
+ `#117 <https://github.com/aio-libs/propcache/issues/117>`__.
177
+
178
+ - Made Cython line tracing opt-in via the ``with-cython-tracing`` build config setting -- by `@bdraco <https://github.com/sponsors/bdraco>`__.
179
+
180
+ Previously, line tracing was enabled by default in ``pyproject.toml``, which caused build issues for some users and made wheels nearly twice as slow.
181
+
182
+ 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.
183
+
184
+ *Related issues and pull requests on GitHub:*
185
+ `#118 <https://github.com/aio-libs/propcache/issues/118>`__.
186
+
187
+
188
+ ----
189
+
190
+
155
191
  0.3.1
156
192
  =====
157
193
 
@@ -42,7 +42,7 @@ under_cached_property
42
42
  self._data = data
43
43
  self._cache = {}
44
44
 
45
- @cached_property
45
+ @under_cached_property
46
46
  def calculated_data(self):
47
47
  return expensive_operation(self._data)
48
48
 
@@ -4,7 +4,6 @@
4
4
  from __future__ import annotations
5
5
 
6
6
  import os
7
- import sysconfig
8
7
  import typing as t
9
8
  from collections.abc import Iterator
10
9
  from contextlib import contextmanager, nullcontext, suppress
@@ -293,7 +292,7 @@ def maybe_prebuild_c_extensions(
293
292
  with build_dir_ctx:
294
293
  config = _get_local_cython_config()
295
294
 
296
- cythonize_args = _make_cythonize_cli_args_from_config(config)
295
+ cythonize_args = _make_cythonize_cli_args_from_config(config, cython_line_tracing_requested)
297
296
  with _patched_cython_env(config['env'], cython_line_tracing_requested):
298
297
  _cythonize_cli_cmd(cythonize_args) # type: ignore[no-untyped-call]
299
298
  with patched_distutils_cmd_install():
@@ -376,10 +375,8 @@ def get_requires_for_build_wheel(
376
375
 
377
376
  if is_pure_python_build:
378
377
  c_ext_build_deps = []
379
- elif sysconfig.get_config_var('Py_GIL_DISABLED'):
380
- c_ext_build_deps = ['Cython ~= 3.1.0a1']
381
378
  else:
382
- c_ext_build_deps = ['Cython ~= 3.0.12']
379
+ c_ext_build_deps = ['Cython ~= 3.1.0']
383
380
 
384
381
  return _setuptools_get_requires_for_build_wheel(
385
382
  config_settings=config_settings,
@@ -18,7 +18,7 @@ from ._transformers import get_cli_kwargs_from_config, get_enabled_cli_flags_fro
18
18
  class Config(TypedDict):
19
19
  env: dict[str, str]
20
20
  flags: dict[str, bool]
21
- kwargs: dict[str, str]
21
+ kwargs: dict[str, str | dict[str, str]]
22
22
  src: list[str]
23
23
 
24
24
 
@@ -79,11 +79,25 @@ def get_local_cython_config() -> Config:
79
79
  return config_mapping['tool']['local']['cythonize'] # type: ignore[no-any-return]
80
80
 
81
81
 
82
- def make_cythonize_cli_args_from_config(config: Config) -> list[str]:
82
+ def _configure_cython_line_tracing(config_kwargs: dict[str, str | dict[str, str]], cython_line_tracing_requested: bool) -> None:
83
+ """Configure Cython line tracing directives if requested."""
84
+ # If line tracing is requested, add it to the directives
85
+ if cython_line_tracing_requested:
86
+ directives = config_kwargs.setdefault('directive', {})
87
+ assert isinstance(directives, dict) # Type narrowing for mypy
88
+ directives['linetrace'] = 'True'
89
+ directives['profile'] = 'True'
90
+
91
+
92
+ def make_cythonize_cli_args_from_config(config: Config, cython_line_tracing_requested: bool = False) -> list[str]:
83
93
  py_ver_arg = f'-{_python_version_tuple.major!s}'
84
94
 
85
95
  cli_flags = get_enabled_cli_flags_from_config(config['flags'])
86
- cli_kwargs = get_cli_kwargs_from_config(config['kwargs'])
96
+ config_kwargs = config['kwargs']
97
+
98
+ _configure_cython_line_tracing(config_kwargs, cython_line_tracing_requested)
99
+
100
+ cli_kwargs = get_cli_kwargs_from_config(config_kwargs)
87
101
 
88
102
  return cli_flags + [py_ver_arg] + cli_kwargs + ['--'] + config['src']
89
103
 
@@ -17,7 +17,9 @@ def _emit_opt_pairs(opt_pair: tuple[str, Union[dict[str, str], str]]) -> Iterato
17
17
  yield from ("=".join(map(str, (flag_opt,) + pair)) for pair in sub_pairs)
18
18
 
19
19
 
20
- def get_cli_kwargs_from_config(kwargs_map: dict[str, str]) -> list[str]:
20
+ def get_cli_kwargs_from_config(
21
+ kwargs_map: dict[str, Union[str, dict[str, str]]],
22
+ ) -> list[str]:
21
23
  """Make a list of options with values from config."""
22
24
  return list(chain.from_iterable(map(_emit_opt_pairs, kwargs_map.items())))
23
25
 
@@ -48,7 +48,6 @@ keep-going = false
48
48
  # https://cython.rtfd.io/en/latest/src/userguide/source_files_and_compilation.html#compiler-directives
49
49
  embedsignature = "True"
50
50
  emit_code_comments = "True"
51
- linetrace = "True" # Implies `profile=True`
52
51
 
53
52
  [tool.local.cythonize.kwargs.compile-time-env]
54
53
  # This section can contain compile time env vars
@@ -95,12 +94,3 @@ before-test = [] # Windows cmd has different syntax and pip chooses wheels
95
94
 
96
95
  [tool.cibuildwheel.linux]
97
96
  before-all = "yum install -y libffi-devel || apk add --upgrade libffi-dev || apt-get install libffi-dev"
98
-
99
- # TODO: Remove this when there's a Cython 3.1 final release
100
- # Remove PIP_CONSTRAINT from the environment
101
- [[tool.cibuildwheel.overrides]]
102
- select = "cp313t-*"
103
-
104
- test-requires = "-r requirements/test-freethreading.txt"
105
- inherit.environment = "append"
106
- environment = {PIP_CONSTRAINT = "requirements/cython-freethreading.txt"}
@@ -0,0 +1 @@
1
+ cython==3.1.2
@@ -1,3 +1,4 @@
1
+ -r cython.txt
1
2
  covdefaults
2
3
  pytest==8.3.5
3
4
  pytest-cov>=2.3.1
@@ -4,7 +4,7 @@ from typing import TYPE_CHECKING
4
4
 
5
5
  _PUBLIC_API = ("cached_property", "under_cached_property")
6
6
 
7
- __version__ = "0.3.1"
7
+ __version__ = "0.3.2"
8
8
  __all__ = ()
9
9
 
10
10
  # Imports have moved to `propcache.api` in 0.2.0+.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: propcache
3
- Version: 0.3.1
3
+ Version: 0.3.2
4
4
  Summary: Accelerated property cache
5
5
  Home-page: https://github.com/aio-libs/propcache
6
6
  Author: Andrew Svetlov
@@ -152,6 +152,42 @@ Changelog
152
152
 
153
153
  .. towncrier release notes start
154
154
 
155
+ 0.3.2
156
+ =====
157
+
158
+ *(2025-06-09)*
159
+
160
+
161
+ Improved documentation
162
+ ----------------------
163
+
164
+ - Fixed incorrect decorator usage in the ``~propcache.api.under_cached_property`` example code -- by `@meanmail <https://github.com/sponsors/meanmail>`__.
165
+
166
+ *Related issues and pull requests on GitHub:*
167
+ `#109 <https://github.com/aio-libs/propcache/issues/109>`__.
168
+
169
+
170
+ Packaging updates and notes for downstreams
171
+ -------------------------------------------
172
+
173
+ - Updated to use Cython 3.1 universally across the build path -- by `@lysnikolaou <https://github.com/sponsors/lysnikolaou>`__.
174
+
175
+ *Related issues and pull requests on GitHub:*
176
+ `#117 <https://github.com/aio-libs/propcache/issues/117>`__.
177
+
178
+ - Made Cython line tracing opt-in via the ``with-cython-tracing`` build config setting -- by `@bdraco <https://github.com/sponsors/bdraco>`__.
179
+
180
+ Previously, line tracing was enabled by default in ``pyproject.toml``, which caused build issues for some users and made wheels nearly twice as slow.
181
+
182
+ 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.
183
+
184
+ *Related issues and pull requests on GitHub:*
185
+ `#118 <https://github.com/aio-libs/propcache/issues/118>`__.
186
+
187
+
188
+ ----
189
+
190
+
155
191
  0.3.1
156
192
  =====
157
193
 
@@ -31,14 +31,11 @@ packaging/pep517_backend/_transformers.py
31
31
  packaging/pep517_backend/cli.py
32
32
  packaging/pep517_backend/hooks.py
33
33
  requirements/codspeed.txt
34
- requirements/cython-freethreading.txt
35
34
  requirements/cython.txt
36
35
  requirements/dev.txt
37
36
  requirements/doc-spelling.txt
38
37
  requirements/doc.txt
39
38
  requirements/lint.txt
40
- requirements/test-freethreading.txt
41
- requirements/test-pure.txt
42
39
  requirements/test.txt
43
40
  requirements/towncrier.txt
44
41
  src/propcache/__init__.py
@@ -1 +0,0 @@
1
- cython==3.1.0a1
@@ -1 +0,0 @@
1
- cython==3.0.12
@@ -1,2 +0,0 @@
1
- -r cython-freethreading.txt
2
- -r test-pure.txt
@@ -1,2 +0,0 @@
1
- -r cython.txt
2
- -r test-pure.txt
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes