Thomas Kemmer | 6d2692f | 2020-12-09 22:32:23 +0100 | [diff] [blame^] | 1 | v4.2.0 (UNRELEASED) |
2 | =================== | ||||
3 | |||||
4 | - Add FIFO cache implementation. | ||||
5 | |||||
6 | - Add MRU cache implementation. | ||||
7 | |||||
8 | - Improve behavior of decorators in case of race conditions. | ||||
9 | |||||
10 | - Improve documentation regarding mutability of caches values and use | ||||
11 | of key functions with decorators. | ||||
12 | |||||
13 | - Officially support Python 3.9. | ||||
14 | |||||
15 | |||||
Thomas Kemmer | 31a78b5 | 2020-06-28 21:27:40 +0200 | [diff] [blame] | 16 | v4.1.1 (2020-06-28) |
Thomas Kemmer | 4c1907e | 2020-06-28 21:16:38 +0200 | [diff] [blame] | 17 | =================== |
18 | |||||
19 | - Improve ``popitem()`` exception context handling. | ||||
20 | |||||
21 | - Replace ``float('inf')`` with ``math.inf``. | ||||
22 | |||||
23 | - Improve "envkey" documentation example. | ||||
24 | |||||
25 | |||||
Thomas Kemmer | a6258fb | 2020-04-08 13:33:09 +0200 | [diff] [blame] | 26 | v4.1.0 (2020-04-08) |
Thomas Kemmer | bb8df8f | 2020-04-08 13:23:29 +0200 | [diff] [blame] | 27 | =================== |
28 | |||||
29 | - Support ``user_function`` with ``cachetools.func`` decorators | ||||
30 | (Python 3.8 compatibility). | ||||
31 | |||||
32 | - Support ``cache_parameters()`` with ``cachetools.func`` decorators | ||||
33 | (Python 3.9 compatibility). | ||||
34 | |||||
35 | |||||
Thomas Kemmer | fa9d476 | 2019-12-15 20:53:23 +0100 | [diff] [blame] | 36 | v4.0.0 (2019-12-15) |
Thomas Kemmer | aa936f0 | 2019-12-15 20:46:13 +0100 | [diff] [blame] | 37 | =================== |
38 | |||||
39 | - Require Python 3.5 or later. | ||||
40 | |||||
41 | |||||
Thomas Kemmer | c530924 | 2019-05-23 21:49:13 +0200 | [diff] [blame] | 42 | v3.1.1 (2019-05-23) |
Thomas Kemmer | aa936f0 | 2019-12-15 20:46:13 +0100 | [diff] [blame] | 43 | =================== |
Thomas Kemmer | 695a47e | 2019-05-23 21:43:36 +0200 | [diff] [blame] | 44 | |
45 | - Document how to use shared caches with ``@cachedmethod``. | ||||
46 | |||||
47 | - Fix pickling/unpickling of cache keys | ||||
48 | |||||
49 | |||||
Thomas Kemmer | 1b67cdd | 2019-01-29 21:33:49 +0100 | [diff] [blame] | 50 | v3.1.0 (2019-01-29) |
Thomas Kemmer | aa936f0 | 2019-12-15 20:46:13 +0100 | [diff] [blame] | 51 | =================== |
Thomas Kemmer | 664b45b | 2019-01-29 21:25:27 +0100 | [diff] [blame] | 52 | |
53 | - Fix Python 3.8 compatibility issue. | ||||
54 | |||||
Thomas Kemmer | 1b67cdd | 2019-01-29 21:33:49 +0100 | [diff] [blame] | 55 | - Use ``time.monotonic`` as default timer if available. |
Thomas Kemmer | 664b45b | 2019-01-29 21:25:27 +0100 | [diff] [blame] | 56 | |
57 | - Improve documentation regarding thread safety. | ||||
58 | |||||
59 | |||||
Thomas Kemmer | 90d3507 | 2018-11-03 20:26:37 +0100 | [diff] [blame] | 60 | v3.0.0 (2018-11-04) |
Thomas Kemmer | aa936f0 | 2019-12-15 20:46:13 +0100 | [diff] [blame] | 61 | =================== |
Thomas Kemmer | 90d3507 | 2018-11-03 20:26:37 +0100 | [diff] [blame] | 62 | |
63 | - Officially support Python 3.7. | ||||
64 | |||||
65 | - Drop Python 3.3 support (breaking change). | ||||
66 | |||||
67 | - Remove ``missing`` cache constructor parameter (breaking change). | ||||
68 | |||||
69 | - Remove ``self`` from ``@cachedmethod`` key arguments (breaking | ||||
70 | change). | ||||
71 | |||||
72 | - Add support for ``maxsize=None`` in ``cachetools.func`` decorators. | ||||
73 | |||||
74 | |||||
Thomas Kemmer | 36d864e | 2018-05-12 18:21:47 +0200 | [diff] [blame] | 75 | v2.1.0 (2018-05-12) |
Thomas Kemmer | aa936f0 | 2019-12-15 20:46:13 +0100 | [diff] [blame] | 76 | =================== |
Thomas Kemmer | 45d9b0d | 2018-05-12 14:41:46 +0200 | [diff] [blame] | 77 | |
78 | - Deprecate ``missing`` cache constructor parameter. | ||||
79 | |||||
80 | - Handle overridden ``getsizeof()`` method in subclasses. | ||||
81 | |||||
82 | - Fix Python 2.7 ``RRCache`` pickling issues. | ||||
83 | |||||
84 | - Various documentation improvements. | ||||
85 | |||||
86 | |||||
Thomas Kemmer | fba5f8a | 2017-08-11 18:51:13 +0200 | [diff] [blame] | 87 | v2.0.1 (2017-08-11) |
Thomas Kemmer | aa936f0 | 2019-12-15 20:46:13 +0100 | [diff] [blame] | 88 | =================== |
Thomas Kemmer | fba5f8a | 2017-08-11 18:51:13 +0200 | [diff] [blame] | 89 | |
90 | - Officially support Python 3.6. | ||||
91 | |||||
92 | - Move documentation to RTD. | ||||
93 | |||||
94 | - Documentation: Update import paths for key functions (courtesy of | ||||
95 | slavkoja). | ||||
96 | |||||
97 | |||||
Thomas Kemmer | e27332b | 2016-10-03 14:00:45 +0200 | [diff] [blame] | 98 | v2.0.0 (2016-10-03) |
Thomas Kemmer | aa936f0 | 2019-12-15 20:46:13 +0100 | [diff] [blame] | 99 | =================== |
Thomas Kemmer | e27332b | 2016-10-03 14:00:45 +0200 | [diff] [blame] | 100 | |
101 | - Drop Python 3.2 support (breaking change). | ||||
102 | |||||
103 | - Drop support for deprecated features (breaking change). | ||||
104 | |||||
105 | - Move key functions to separate package (breaking change). | ||||
106 | |||||
107 | - Accept non-integer ``maxsize`` in ``Cache.__repr__()``. | ||||
108 | |||||
109 | |||||
Thomas Kemmer | 8bb68a2 | 2016-04-01 11:56:54 +0200 | [diff] [blame] | 110 | v1.1.6 (2016-04-01) |
Thomas Kemmer | aa936f0 | 2019-12-15 20:46:13 +0100 | [diff] [blame] | 111 | =================== |
Thomas Kemmer | 8bb68a2 | 2016-04-01 11:56:54 +0200 | [diff] [blame] | 112 | |
113 | - Reimplement ``LRUCache`` and ``TTLCache`` using | ||||
114 | ``collections.OrderedDict``. Note that this will break pickle | ||||
115 | compatibility with previous versions. | ||||
116 | |||||
117 | - Fix ``TTLCache`` not calling ``__missing__()`` of derived classes. | ||||
118 | |||||
119 | - Handle ``ValueError`` in ``Cache.__missing__()`` for consistency | ||||
120 | with caching decorators. | ||||
121 | |||||
122 | - Improve how ``TTLCache`` handles expired items. | ||||
123 | |||||
124 | - Use ``Counter.most_common()`` for ``LFUCache.popitem()``. | ||||
125 | |||||
126 | |||||
Thomas Kemmer | 4285373 | 2015-10-25 14:58:38 +0100 | [diff] [blame] | 127 | v1.1.5 (2015-10-25) |
Thomas Kemmer | aa936f0 | 2019-12-15 20:46:13 +0100 | [diff] [blame] | 128 | =================== |
Thomas Kemmer | 4285373 | 2015-10-25 14:58:38 +0100 | [diff] [blame] | 129 | |
130 | - Refactor ``Cache`` base class. Note that this will break pickle | ||||
131 | compatibility with previous versions. | ||||
132 | |||||
133 | - Clean up ``LRUCache`` and ``TTLCache`` implementations. | ||||
134 | |||||
135 | |||||
Thomas Kemmer | 41d521b | 2015-10-24 22:38:47 +0200 | [diff] [blame] | 136 | v1.1.4 (2015-10-24) |
Thomas Kemmer | aa936f0 | 2019-12-15 20:46:13 +0100 | [diff] [blame] | 137 | =================== |
Thomas Kemmer | 41d521b | 2015-10-24 22:38:47 +0200 | [diff] [blame] | 138 | |
139 | - Refactor ``LRUCache`` and ``TTLCache`` implementations. Note that | ||||
140 | this will break pickle compatibility with previous versions. | ||||
141 | |||||
142 | - Document pending removal of deprecated features. | ||||
143 | |||||
144 | - Minor documentation improvements. | ||||
145 | |||||
146 | |||||
Thomas Kemmer | 4f4b452 | 2015-09-15 20:43:42 +0200 | [diff] [blame] | 147 | v1.1.3 (2015-09-15) |
Thomas Kemmer | aa936f0 | 2019-12-15 20:46:13 +0100 | [diff] [blame] | 148 | =================== |
Thomas Kemmer | 4f4b452 | 2015-09-15 20:43:42 +0200 | [diff] [blame] | 149 | |
150 | - Fix pickle tests. | ||||
151 | |||||
152 | |||||
Thomas Kemmer | c8c8db1 | 2015-09-15 20:06:57 +0200 | [diff] [blame] | 153 | v1.1.2 (2015-09-15) |
Thomas Kemmer | aa936f0 | 2019-12-15 20:46:13 +0100 | [diff] [blame] | 154 | =================== |
Thomas Kemmer | c8c8db1 | 2015-09-15 20:06:57 +0200 | [diff] [blame] | 155 | |
156 | - Fix pickling of large ``LRUCache`` and ``TTLCache`` instances. | ||||
157 | |||||
158 | |||||
Thomas Kemmer | 5cdedd5 | 2015-09-07 20:53:37 +0200 | [diff] [blame] | 159 | v1.1.1 (2015-09-07) |
Thomas Kemmer | aa936f0 | 2019-12-15 20:46:13 +0100 | [diff] [blame] | 160 | =================== |
Thomas Kemmer | 5cdedd5 | 2015-09-07 20:53:37 +0200 | [diff] [blame] | 161 | |
162 | - Improve key functions. | ||||
163 | |||||
164 | - Improve documentation. | ||||
165 | |||||
166 | - Improve unit test coverage. | ||||
167 | |||||
168 | |||||
169 | v1.1.0 (2015-08-28) | ||||
Thomas Kemmer | aa936f0 | 2019-12-15 20:46:13 +0100 | [diff] [blame] | 170 | =================== |
Thomas Kemmer | 6a4c6f0 | 2015-08-28 20:31:47 +0200 | [diff] [blame] | 171 | |
172 | - Add ``@cached`` function decorator. | ||||
173 | |||||
174 | - Add ``hashkey`` and ``typedkey`` fuctions. | ||||
175 | |||||
176 | - Add `key` and `lock` arguments to ``@cachedmethod``. | ||||
177 | |||||
178 | - Set ``__wrapped__`` attributes for Python versions < 3.2. | ||||
179 | |||||
180 | - Move ``functools`` compatible decorators to ``cachetools.func``. | ||||
181 | |||||
182 | - Deprecate ``@cachedmethod`` `typed` argument. | ||||
183 | |||||
184 | - Deprecate `cache` attribute for ``@cachedmethod`` wrappers. | ||||
185 | |||||
186 | - Deprecate `getsizeof` and `lock` arguments for `cachetools.func` | ||||
187 | decorator. | ||||
188 | |||||
189 | |||||
Thomas Kemmer | 5cdedd5 | 2015-09-07 20:53:37 +0200 | [diff] [blame] | 190 | v1.0.3 (2015-06-26) |
Thomas Kemmer | aa936f0 | 2019-12-15 20:46:13 +0100 | [diff] [blame] | 191 | =================== |
Thomas Kemmer | 37024a7 | 2015-06-26 08:06:17 +0200 | [diff] [blame] | 192 | |
193 | - Clear cache statistics when calling ``clear_cache()``. | ||||
194 | |||||
195 | |||||
Thomas Kemmer | 5cdedd5 | 2015-09-07 20:53:37 +0200 | [diff] [blame] | 196 | v1.0.2 (2015-06-18) |
Thomas Kemmer | aa936f0 | 2019-12-15 20:46:13 +0100 | [diff] [blame] | 197 | =================== |
Thomas Kemmer | 0ca640f | 2015-06-18 19:24:52 +0200 | [diff] [blame] | 198 | |
199 | - Allow simple cache instances to be pickled. | ||||
200 | |||||
201 | - Refactor ``Cache.getsizeof`` and ``Cache.missing`` default | ||||
202 | implementation. | ||||
203 | |||||
204 | |||||
Thomas Kemmer | 5cdedd5 | 2015-09-07 20:53:37 +0200 | [diff] [blame] | 205 | v1.0.1 (2015-06-06) |
Thomas Kemmer | aa936f0 | 2019-12-15 20:46:13 +0100 | [diff] [blame] | 206 | =================== |
Thomas Kemmer | b26d1e5 | 2015-06-06 15:20:02 +0200 | [diff] [blame] | 207 | |
208 | - Code cleanup for improved PEP 8 conformance. | ||||
209 | |||||
210 | - Add documentation and unit tests for using ``@cachedmethod`` with | ||||
211 | generic mutable mappings. | ||||
212 | |||||
213 | - Improve documentation. | ||||
214 | |||||
215 | |||||
Thomas Kemmer | 5cdedd5 | 2015-09-07 20:53:37 +0200 | [diff] [blame] | 216 | v1.0.0 (2014-12-19) |
Thomas Kemmer | aa936f0 | 2019-12-15 20:46:13 +0100 | [diff] [blame] | 217 | =================== |
Thomas Kemmer | f3437a1 | 2014-12-19 15:56:11 +0100 | [diff] [blame] | 218 | |
Thomas Kemmer | 5c2a69b | 2014-12-19 15:59:10 +0100 | [diff] [blame] | 219 | - Provide ``RRCache.choice`` property. |
220 | |||||
Thomas Kemmer | c6137f2 | 2014-12-19 16:22:07 +0100 | [diff] [blame] | 221 | - Improve documentation. |
222 | |||||
Thomas Kemmer | f3437a1 | 2014-12-19 15:56:11 +0100 | [diff] [blame] | 223 | |
Thomas Kemmer | 5cdedd5 | 2015-09-07 20:53:37 +0200 | [diff] [blame] | 224 | v0.8.2 (2014-12-15) |
Thomas Kemmer | aa936f0 | 2019-12-15 20:46:13 +0100 | [diff] [blame] | 225 | =================== |
Thomas Kemmer | b624bf8 | 2014-12-10 06:50:01 +0100 | [diff] [blame] | 226 | |
227 | - Use a ``NestedTimer`` for ``TTLCache``. | ||||
228 | |||||
229 | |||||
Thomas Kemmer | 5cdedd5 | 2015-09-07 20:53:37 +0200 | [diff] [blame] | 230 | v0.8.1 (2014-12-07) |
Thomas Kemmer | aa936f0 | 2019-12-15 20:46:13 +0100 | [diff] [blame] | 231 | =================== |
Thomas Kemmer | d7cb994 | 2014-12-07 17:53:43 +0100 | [diff] [blame] | 232 | |
233 | - Deprecate ``Cache.getsize()``. | ||||
234 | |||||
235 | |||||
Thomas Kemmer | 5cdedd5 | 2015-09-07 20:53:37 +0200 | [diff] [blame] | 236 | v0.8.0 (2014-12-03) |
Thomas Kemmer | aa936f0 | 2019-12-15 20:46:13 +0100 | [diff] [blame] | 237 | =================== |
Thomas Kemmer | 08a83b3 | 2014-12-03 12:07:44 +0100 | [diff] [blame] | 238 | |
Thomas Kemmer | bf2de58 | 2014-12-03 18:37:35 +0100 | [diff] [blame] | 239 | - Ignore ``ValueError`` raised on cache insertion in decorators. |
Thomas Kemmer | 08a83b3 | 2014-12-03 12:07:44 +0100 | [diff] [blame] | 240 | |
Thomas Kemmer | 98e32c4 | 2014-12-03 12:14:36 +0100 | [diff] [blame] | 241 | - Add ``Cache.getsize()``. |
242 | |||||
Thomas Kemmer | bf2de58 | 2014-12-03 18:37:35 +0100 | [diff] [blame] | 243 | - Add ``Cache.__missing__()``. |
Thomas Kemmer | 5f80519 | 2014-12-03 13:07:43 +0100 | [diff] [blame] | 244 | |
Thomas Kemmer | 35855b5 | 2014-12-03 18:54:11 +0100 | [diff] [blame] | 245 | - Feature freeze for `v1.0`. |
246 | |||||
Thomas Kemmer | 08a83b3 | 2014-12-03 12:07:44 +0100 | [diff] [blame] | 247 | |
Thomas Kemmer | 5cdedd5 | 2015-09-07 20:53:37 +0200 | [diff] [blame] | 248 | v0.7.1 (2014-11-22) |
Thomas Kemmer | aa936f0 | 2019-12-15 20:46:13 +0100 | [diff] [blame] | 249 | =================== |
Thomas Kemmer | 827e2f5 | 2014-11-22 21:20:49 +0100 | [diff] [blame] | 250 | |
251 | - Fix `MANIFEST.in`. | ||||
252 | |||||
253 | |||||
Thomas Kemmer | 5cdedd5 | 2015-09-07 20:53:37 +0200 | [diff] [blame] | 254 | v0.7.0 (2014-11-12) |
Thomas Kemmer | aa936f0 | 2019-12-15 20:46:13 +0100 | [diff] [blame] | 255 | =================== |
Thomas Kemmer | 101513c | 2014-11-05 19:56:17 +0100 | [diff] [blame] | 256 | |
Thomas Kemmer | 8dd2764 | 2014-11-11 06:43:58 +0100 | [diff] [blame] | 257 | - Deprecate ``TTLCache.ExpiredError``. |
Thomas Kemmer | a49f49f | 2014-11-10 16:47:47 +0100 | [diff] [blame] | 258 | |
Thomas Kemmer | cef6653 | 2014-11-11 12:27:05 +0100 | [diff] [blame] | 259 | - Add `choice` argument to ``RRCache`` constructor. |
Thomas Kemmer | 07646b7 | 2014-11-05 20:27:14 +0100 | [diff] [blame] | 260 | |
Thomas Kemmer | cef6653 | 2014-11-11 12:27:05 +0100 | [diff] [blame] | 261 | - Refactor ``LFUCache``, ``LRUCache`` and ``TTLCache``. |
262 | |||||
Thomas Kemmer | 5385445 | 2014-11-12 07:58:59 +0100 | [diff] [blame] | 263 | - Use custom ``NullContext`` implementation for unsynchronized |
Thomas Kemmer | cef6653 | 2014-11-11 12:27:05 +0100 | [diff] [blame] | 264 | function decorators. |
Thomas Kemmer | 101513c | 2014-11-05 19:56:17 +0100 | [diff] [blame] | 265 | |
266 | |||||
Thomas Kemmer | 5cdedd5 | 2015-09-07 20:53:37 +0200 | [diff] [blame] | 267 | v0.6.0 (2014-10-13) |
Thomas Kemmer | aa936f0 | 2019-12-15 20:46:13 +0100 | [diff] [blame] | 268 | =================== |
Thomas Kemmer | 101513c | 2014-11-05 19:56:17 +0100 | [diff] [blame] | 269 | |
270 | - Raise ``TTLCache.ExpiredError`` for expired ``TTLCache`` items. | ||||
271 | |||||
272 | - Support unsynchronized function decorators. | ||||
273 | |||||
274 | - Allow ``@cachedmethod.cache()`` to return None | ||||
275 | |||||
276 | |||||
Thomas Kemmer | 5cdedd5 | 2015-09-07 20:53:37 +0200 | [diff] [blame] | 277 | v0.5.1 (2014-09-25) |
Thomas Kemmer | aa936f0 | 2019-12-15 20:46:13 +0100 | [diff] [blame] | 278 | =================== |
Thomas Kemmer | 101513c | 2014-11-05 19:56:17 +0100 | [diff] [blame] | 279 | |
280 | - No formatting of ``KeyError`` arguments. | ||||
281 | |||||
282 | - Update ``README.rst``. | ||||
283 | |||||
284 | |||||
Thomas Kemmer | 5cdedd5 | 2015-09-07 20:53:37 +0200 | [diff] [blame] | 285 | v0.5.0 (2014-09-23) |
Thomas Kemmer | aa936f0 | 2019-12-15 20:46:13 +0100 | [diff] [blame] | 286 | =================== |
Thomas Kemmer | 101513c | 2014-11-05 19:56:17 +0100 | [diff] [blame] | 287 | |
288 | - Do not delete expired items in TTLCache.__getitem__(). | ||||
289 | |||||
290 | - Add ``@ttl_cache`` function decorator. | ||||
291 | |||||
292 | - Fix public ``getsizeof()`` usage. | ||||
293 | |||||
294 | |||||
Thomas Kemmer | 5cdedd5 | 2015-09-07 20:53:37 +0200 | [diff] [blame] | 295 | v0.4.0 (2014-06-16) |
Thomas Kemmer | aa936f0 | 2019-12-15 20:46:13 +0100 | [diff] [blame] | 296 | =================== |
Thomas Kemmer | 101513c | 2014-11-05 19:56:17 +0100 | [diff] [blame] | 297 | |
298 | - Add ``TTLCache``. | ||||
299 | |||||
300 | - Add ``Cache`` base class. | ||||
301 | |||||
302 | - Remove ``@cachedmethod`` `lock` parameter. | ||||
303 | |||||
304 | |||||
Thomas Kemmer | 5cdedd5 | 2015-09-07 20:53:37 +0200 | [diff] [blame] | 305 | v0.3.1 (2014-05-07) |
Thomas Kemmer | aa936f0 | 2019-12-15 20:46:13 +0100 | [diff] [blame] | 306 | =================== |
Thomas Kemmer | 101513c | 2014-11-05 19:56:17 +0100 | [diff] [blame] | 307 | |
308 | - Add proper locking for ``cache_clear()`` and ``cache_info()``. | ||||
309 | |||||
310 | - Report `size` in ``cache_info()``. | ||||
311 | |||||
312 | |||||
Thomas Kemmer | 5cdedd5 | 2015-09-07 20:53:37 +0200 | [diff] [blame] | 313 | v0.3.0 (2014-05-06) |
Thomas Kemmer | aa936f0 | 2019-12-15 20:46:13 +0100 | [diff] [blame] | 314 | =================== |
Thomas Kemmer | 101513c | 2014-11-05 19:56:17 +0100 | [diff] [blame] | 315 | |
316 | - Remove ``@cache`` decorator. | ||||
317 | |||||
318 | - Add ``size``, ``getsizeof`` members. | ||||
319 | |||||
320 | - Add ``@cachedmethod`` decorator. | ||||
321 | |||||
322 | |||||
Thomas Kemmer | 5cdedd5 | 2015-09-07 20:53:37 +0200 | [diff] [blame] | 323 | v0.2.0 (2014-04-02) |
Thomas Kemmer | aa936f0 | 2019-12-15 20:46:13 +0100 | [diff] [blame] | 324 | =================== |
Thomas Kemmer | 101513c | 2014-11-05 19:56:17 +0100 | [diff] [blame] | 325 | |
326 | - Add ``@cache`` decorator. | ||||
327 | |||||
328 | - Update documentation. | ||||
329 | |||||
330 | |||||
Thomas Kemmer | 5cdedd5 | 2015-09-07 20:53:37 +0200 | [diff] [blame] | 331 | v0.1.0 (2014-03-27) |
Thomas Kemmer | aa936f0 | 2019-12-15 20:46:13 +0100 | [diff] [blame] | 332 | =================== |
Thomas Kemmer | 101513c | 2014-11-05 19:56:17 +0100 | [diff] [blame] | 333 | |
334 | - Initial release. |