Released: Fri Jun 21 2013
- **[misc]** Source repository has been moved to git.
- **[bug]** The Redis backend now uses `pickle.HIGHEST_PROTOCOL` when
producing pickles. Courtesy Lx Yu.
- **[bug]** `CacheRegion.cache_on_arguments()` now has a new argument
`to_str`, defaults to `str()`. Can be replaced with `unicode()`
or other functions to support caching of functions that
accept non-unicode arguments. Initial patch courtesy Lx Yu.
- **[feature]** Now using the `Lock` included with the Python
`redis` backend, which adds `lock_timeout`
and `lock_sleep` arguments to the `RedisBackend`.
- **[feature]** Added new methods `CacheRegion.get_or_create_multi()`
and `CacheRegion.cache_multi_on_arguments()`, which
make use of the `CacheRegion.get_multi()` and similar
functions to store and retrieve multiple keys at once while
maintaining dogpile semantics for each.
References: [33](ticket:33), [35](ticket:35)
- **[feature]** Added a method `refresh()` to functions decorated by
`CacheRegion.cache_on_arguments()` and
`CacheRegion.cache_multi_on_arguments()`, to complement
`invalidate()` and `set()`.
References: [36](ticket:36)
- **[feature]** `CacheRegion.configure()` accepts an
optional `datetime.timedelta` object
for the `expiration_time` argument as well
as an integer, courtesy Jack Lutz.
References: [13](ticket:13)
- **[feature]** The `expiration_time` argument passed to
`CacheRegion.cache_on_arguments()`
may be a callable, to return a dynamic
timeout value. Courtesy David Beitey.
References: [20](ticket:20)
- **[feature]** Added support for simple augmentation of existing
backends using the `ProxyBackend` class.
Thanks to Tim Hanus for the great effort with
development, testing, and documentation.
References: [26](ticket:26)
- **[feature]** Full support for multivalue get/set/delete
added, using `CacheRegion.get_multi()`,
`CacheRegion.set_multi()`, `CacheRegion.delete_multi()`,
courtesy Marcos Araujo Sobrinho.
References: [pull request 14](pullreq:14)
- **[bug]** Fixed bug where the "name" parameter for
`CacheRegion` was ignored entirely.
Courtesy Wichert Akkerman.
References: [27](ticket:27)
rel_0_4_3