Skip to content

Releases: sqlalchemy/dogpile.cache

0.6.3

20 Sep 19:10
Compare
Choose a tag to compare

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

20 Sep 19:10
Compare
Choose a tag to compare

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

20 Sep 19:10
Compare
Choose a tag to compare

0.6.1

Released: Mon Jun 6 2016

  • [bug] Fixed imports for dogpile.core restoring ReadWriteMutex
    and NameRegistry into the base namespace, in addition to
    dogpile.core.nameregistry and dogpile.core.readwrite_lock.

    References: #99

0.6.0

20 Sep 19:10
Compare
Choose a tag to compare

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 the dogpile
    name as a namespace package is also removed from dogpile.cache.
    In order to allow existing installations of dogpile.core as a separate
    package to remain unaffected, the .core package has been retired
    within dogpile.cache directly; the Lock class is now
    available directly as dogpile.Lock and the additional dogpile.core
    constructs are under the dogpile.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 the NullLock.acquire() method, nor did
    it return a boolean value for "success".

    References: #97

0.5.7

20 Sep 19:10
Compare
Choose a tag to compare

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

20 Sep 19:10
Compare
Choose a tag to compare

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

20 Sep 19:10
Compare
Choose a tag to compare

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 itself is_unittest which has been removed.

0.5.4

20 Sep 19:10
Compare
Choose a tag to compare

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 a redis.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 Redis lock_sleep. Pullreq courtesy
    Jeff Dairiki.

    References: #57, pull request 13

0.5.3

20 Sep 19:10
Compare
Choose a tag to compare

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 the Region.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 the Region.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 destructive map()
    object) which would cause this method to fail on the memcached backend.

  • [feature] Added a get() method to complement the set(), invalidate()
    and refresh() 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 applies pickle.dumps() and pickle.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

20 Sep 19:10
Compare
Choose a tag to compare

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 the DBMBackend
    implementation. This allows for drop-in replacement of the default
    FileLock backend, which builds on os.flock() and only
    supports Unix platforms. A new abstract base AbstractFileLock
    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