Dogpile.cache

Latest version: v1.3.3

Safety actively analyzes 630523 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 7 of 9

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](pullreq: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](ticket:71), [pull request 25](pullreq:25)

- **[bug]** The `wrap` argument is now propagated when calling
`CacheRegion.configure_from_config()`. Pull request courtesy
Jonathan Vanasco.

References: [41](ticket:41), [pull request 28](pullreq:28)

- **[bug]** Fixed tests under py.test, which were importing a symbol from
pytest itself `is_unittest` which has been removed.


rel_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](pullreq:18)

- **[bug]** Added missing Mako test dependency to setup.py.
Pull request courtesy Wichert Akkerman.

References: [pull request 19](pullreq: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](ticket:58), [pull request 20](pullreq: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](pullreq:17)

- **[feature]** Added new `RedisBackend.socket_timeout` option
on the Redis backend. Pull request courtesy
Saulius Menkevičius.

References: [pull request 16](pullreq: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](pullreq: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](ticket:57), [pull request 13](pullreq:13)


rel_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 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](pullreq: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](ticket: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](ticket:51), [pull request 11](pullreq: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](pullreq:9)


rel_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 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](ticket:44)


rel_0_5_1

0.5.1

Released: Thu Oct 10 2013
- **[feature]** The `CacheRegion.invalidate()` method now supports an option
`hard=True|False`. A "hard" invalidation, equivalent to the
existing functionality of `CacheRegion.invalidate()`, means
`CacheRegion.get_or_create()` will not return the "old" value at
all, forcing all getters to regenerate or wait for a regeneration.
"soft" invalidation means that getters can continue to return the
old value until a new one is generated.

References: [38](ticket:38)

- **[feature]** New dogpile-specific exception classes have been added, so that
issues like "region already configured", "region unconfigured",
raise dogpile-specific exceptions. Other exception classes have
been made more specific. Also added new accessor
`CacheRegion.is_configured`. Pullreq courtesy Morgan Fainberg.

References: [40](ticket:40)

- **[bug]** Erroneously missed when the same change was made for `set()`
in 0.5.0, the Redis backend now uses `pickle.HIGHEST_PROTOCOL`
for the `set_multi()` method as well when producing pickles.
Courtesy Łukasz Fidosz.

- **[bug] [py3k] [redis]** Fixed an errant `u''` causing incompatibility in Python3.2
in the Redis backend, courtesy Jimmey Mabey.

References: [39](ticket:39)

- **[bug]** The `util.coerce_string_conf()` method now correctly coerces
negative integers and those with a leading + sign. This previously
prevented configuring a `CacheRegion` with an `expiration_time`
of `'-1'`. Courtesy David Beitey.

- **[bug]** The `refresh()` method on `CacheRegion.cache_multi_on_arguments()`
now supports the `asdict` flag.


rel_0_5_0

0.5.0

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

Page 7 of 9

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.