Releases: sqlalchemy/dogpile.cache
0.6.3
0.6.3
Released: Thu May 18, 2017
- [feature] Added
replace_existing_backend
to
CacheRegion.configure_from_config()
.
Pull request courtesy Daniel Kraus.
0.6.2
0.6.2
Released: Tue Aug 16 2016
-
[feature] Added a new system to allow custom plugins specific to the issue of
"invalidate the entire region", using a new base class
RegionInvalidationStrategy
. As there are many potential
strategies to this (special backend function, storing special keys, etc.)
the mechanism for both soft and hard invalidation is now customizable.
New approaches to region invalidation can be contributed as documented
recipes. Pull request courtesy Alexander Makarov.References: #38
-
[feature] Added a new cache key generator
kwarg_function_key_generator()
,
which takes keyword arguments as well as positional arguments into
account when forming the cache key.References: #43
-
[bug] Restored some more util symbols that users may have been relying upon
(although these were not necessarily intended as user-facing):
dogpile.cache.util.coerce_string_conf
,
dogpile.cache.util.KeyReentrantMutex
,
dogpile.cache.util.memoized_property
,
dogpile.cache.util.PluginLoader
,
dogpile.cache.util.to_list
.
0.6.1
0.6.0
0.6.0
Released: Mon Jun 6 2016
-
[feature] The
dogpile.core
library has been rolled in as part of the
dogpile.cache
distribution. The configuration of thedogpile
name as a namespace package is also removed fromdogpile.cache
.
In order to allow existing installations ofdogpile.core
as a separate
package to remain unaffected, the.core
package has been retired
withindogpile.cache
directly; theLock
class is now
available directly asdogpile.Lock
and the additionaldogpile.core
constructs are under thedogpile.util
namespace.Additionally, the long-deprecated
dogpile.core.Dogpile
and
dogpile.core.SyncReaderDogpile
classes have been removed.References: #91
-
[bug] The Redis backend now creates a copy of the "arguments" dictionary passed
to it, before popping values out of it. This prevents the given
dictionary from losing its keys. -
[bug] Fixed bug in "null" backend where
NullLock
did not
accept a flag for theNullLock.acquire()
method, nor did
it return a boolean value for "success".References: #97
0.5.7
0.5.7
Released: Mon Oct 19 2015
-
[feature] Added new parameter
GenericMemcachedBackend.lock_timeout
,
used in conjunction with
GenericMemcachedBackend.distributed_lock
, will specify the
timeout used when communicating to the.add()
method of the memcached
client. Pull request courtesy Frits Stegmann and Morgan Fainberg.References: #54, pull request 37
-
[feature] Added a new flag
CacheRegion.configure.replace_existing_backend
,
allows a region to have a new backend replace an existing one.
Pull request courtesy hbccbh.References: #65, pull request 35
-
[feature] [tests] Test suite now runs using py.test. Pull request courtesy
John Anderson.References: pull request 33
-
[bug] [redis] Repaired the
CacheRegion.get_multi()
method when used with a
list of zero length against the redis backend.References: #74
0.5.6
0.5.6
Released: Mon Feb 2 2015
-
[feature] Changed the pickle protocol for the file/DBM backend to
pickle.HIGHEST_PROTOCOL
when producing new pickles,
to match that of the redis and memorypickle backends.
Pull request courtesy anentropic.References: pull request 30
0.5.5
0.5.5
Released: Wed Jan 21 2015
-
[feature] Added new arguments
CacheRegion.cache_on_arguments.function_key_generator
and
CacheRegion.cache_multi_on_arguments.function_multi_key_generator
which serve as per-decorator replacements for the region-wide
CacheRegion.function_key_generator
and
CacheRegion.function_multi_key_generator
parameters,
respectively, so that custom key production schemes can be applied
on a per-function basis within one region.
Pull request courtesy Hongbin Lu.References: pull request 26
-
[bug] Fixed bug where sending -1 for the
CacheRegion.get_or_create.expiration_time
parameter to
CacheRegion.get_or_create()
or
CacheRegion.get_or_create_multi()
would fail to honor the setting as "no expiration time". Pull request
courtesy Hongbin Lu.References: #71, pull request 25
-
[bug] The
wrap
argument is now propagated when calling
CacheRegion.configure_from_config()
. Pull request courtesy
Jonathan Vanasco.References: #41, pull request 28
-
[bug] Fixed tests under py.test, which were importing a symbol from
pytest itselfis_unittest
which has been removed.
0.5.4
0.5.4
Released: Sat Jun 14 2014
-
[feature] Added new
NullBackend
, for testing and cache-disabling
purposes. Pull request courtesy Wichert Akkerman.References: pull request 18
-
[bug] Added missing Mako test dependency to setup.py.
Pull request courtesy Wichert Akkerman.References: pull request 19
-
[bug] Fixed bug where calling
CacheRegion.get_multi()
or
CacheRegion.set_multi()
with an empty list would cause failures
based on backend. Pull request courtesy Wichert Akkerman.References: #58, pull request 20
-
[feature] Added new
RedisBackend.connection_pool
option
on the Redis backend; this can be passed aredis.ConnectionPool
instance directly. Pull request courtesy Masayuko.References: pull request 17
-
[feature] Added new
RedisBackend.socket_timeout
option
on the Redis backend. Pull request courtesy
Saulius Menkevičius.References: pull request 16
-
[feature] Added support for tests to run via py.test.
-
[bug] Repaired the entry point for Mako templates; the name of the entrypoint
itself was wrong vs. what was in the docs, but beyond that the entrypoint
would load the wrong module name. Pull request courtesy zoomorph.References: pull request 15
-
[bug] The
coerce_string_conf()
function, which is used by
Region.configure_from_config()
, will now recognize floating point
values when parsing conf strings and deliver them as such; this supports
non-integer values such as Redislock_sleep
. Pullreq courtesy
Jeff Dairiki.References: #57, pull request 13
0.5.3
0.5.3
Released: Wed Jan 8 2014
-
[bug] Fixed bug where the key_mangler would get in the way of usage of the
async_creation_runner feature within theRegion.get_or_create()
method, by sending in the mangled key instead of the original key. The
"mangled" key is only supposed to be exposed within the backend storage,
not the creation function which sends the key back into theRegion.set()
,
which does the mangling itself. Pull request courtesy Ryan Kolak.References: pull request 10
-
[bug] [py3k] Fixed bug where the
Region.get_multi()
method wasn't calling
the backend correctly in Py3K (e.g. was passing a destructivemap()
object) which would cause this method to fail on the memcached backend. -
[feature] Added a
get()
method to complement theset()
,invalidate()
andrefresh()
methods established on functions decorated by
CacheRegion.cache_on_arguments()
and
CacheRegion.cache_multi_on_arguments()
. Pullreq courtesy
Eric Hanchrow.References: #55
-
[feature] Added a new variant on
MemoryBackend
,MemoryPickleBackend
.
This backend appliespickle.dumps()
andpickle.loads()
to cached
values upon set and get, so that similar copy-on-cache behavior as that
of other backends is employed, guarding cached values against subsequent
in-memory state changes. Pullreq courtesy Jonathan Vanasco.References: #51, pull request 11
-
[bug] Fixed a format call in the redis backend which would otherwise fail
on Python 2.6; courtesy Jeff Dairiki.References: pull request 9
0.5.2
0.5.2
Released: Fri Nov 15 2013
-
[bug] Fixes to routines on Windows, including that default unit tests pass,
and an adjustment to the "soft expiration" feature to ensure the
expiration works given windows time.time() behavior. -
[bug] Added py2.6 compatibility for unsupported
total_seconds()
call
in region.py -
[feature] Added a new argument
lock_factory
to theDBMBackend
implementation. This allows for drop-in replacement of the default
FileLock
backend, which builds onos.flock()
and only
supports Unix platforms. A new abstract baseAbstractFileLock
has been added to provide a common base for custom lock implementations.
The documentation points to an example thread-based rw lock which is
now tested on Windows.References: #44