File python-dogpile.cache.changes of Package python-dogpile.cache
-------------------------------------------------------------------
Wed Mar 26 07:48:23 UTC 2025 - Steve Kowalik <[email protected]>
- Normalize metadata directory name.
-------------------------------------------------------------------
Mon May 6 08:35:52 UTC 2024 - Dirk Müller <[email protected]>
- update to 1.3.3:
* Added support for an additional pymemcached client parameter
PyMemcacheBackend.memcached_expire_time
* Fixed the return type for CacheRegion.get(), which was
inadvertently hardcoded to use CacheReturnType that only
resolved to CachedValue or NoValue. Fixed to return
ValuePayload which resolves to Any, as well as a new literal
indicating an enum constant for :data:.api.NO_VALUE. The
:data:.api.NO_VALUE constant remains available as the single
element of this enum.
-------------------------------------------------------------------
Mon Mar 18 12:15:51 UTC 2024 - Dirk Müller <[email protected]>
- update to 1.3.2:
* Added a new backend RedisClusterBackend, allowing support for
Redis Cluster.
* Added support for additional Redis client parameters
RedisBackend.socket_connect_timeout,
RedisBackend.socket_keepalive and
RedisBackend.socket_keepalive_options.
-------------------------------------------------------------------
Thu Feb 8 09:34:47 UTC 2024 - Dirk Müller <[email protected]>
- update to 1.3.1:
* Added new parameter RedisBackend.username to the Redis
backend, and RedisSentinelBackend.username to the Redis
Sentinel backend. These parameters allow for username
authentication in Redis when RBAC is enabled.
-------------------------------------------------------------------
Sun Jan 7 21:53:54 UTC 2024 - Dirk Müller <[email protected]>
- use %{?sle15_python_module_pythons}
- add typing-extensions
-------------------------------------------------------------------
Thu Dec 28 09:04:01 UTC 2023 - Dirk Müller <[email protected]>
- update to 1.3.0:
* Added new method :meth:`.CacheRegion.get_value_metadata`
which can be used to get a value from the cache along with
its metadata, including timestamp of when the value was cached.
The :class:`.CachedValue` object is returned which features
new accessors to retrieve cached time and current age.
* Minimum Python version is now Python 3.8; prior versions
Python 3.7 and 3.6 are EOL.
* Project setup is now based on pep-621 ``pyproject.toml``
configuration.
-------------------------------------------------------------------
Mon Jul 10 13:09:58 UTC 2023 - Dirk Müller <[email protected]>
- update to 1.2.2:
* Made use of pep-673 ``Self`` type for method chained methods
such as .CacheRegion.configure and .ProxyBackend.wrap
-------------------------------------------------------------------
Mon May 29 16:38:30 UTC 2023 - Dirk Müller <[email protected]>
- update to 1.2.1:
* Added py.typed file to root so that typing tools such as Mypy
recognize dogpile as typed. Pull request courtesy Daverball.
-------------------------------------------------------------------
Tue May 9 21:34:11 UTC 2023 - Dirk Müller <[email protected]>
- update to 1.2.0:
* Added new construct api.CantDeserializeException which can be
raised by user-defined deserializer functions which would be
passed to CacheRegion.deserializer, to indicate a cache value
that can't be deserialized and therefore should be regenerated.
-------------------------------------------------------------------
Tue Jul 19 12:05:35 UTC 2022 - Dirk Müller <[email protected]>
- update to 1.1.8:
* Moved the MemcacheArgs.dead_retry argument and the
MemcacheArgs.socket_timeout argument which were erroneously added to the
“set_parameters”, where they have no effect, to be part of the Memcached
connection arguments MemcachedBackend.dead_retry,
MemcachedBackend.socket_timeout.
* Added MemcacheArgs.dead_retry and MemcacheArgs.socket_timeout to the
dictionary of additional keyword arguments that will be passed directly to
GenericMemcachedBackend().
* Added RedisBackend.connection_kwargs parameter, which is a dictionary of
additional keyword arguments that will be passed directly to StrictRedis() or
StrictRedis.from_url(), in the same way that this parameter works with the
RedisSentinelBackend already
-------------------------------------------------------------------
Wed Mar 30 09:37:29 UTC 2022 - Luigi Baldoni <[email protected]>
- Update to version 1.1.5
* Added support for additional pymemcache HashClient
parameters: retry_attempts, retry_timeout, and
dead_timeout.
-------------------------------------------------------------------
Fri Dec 3 21:43:51 UTC 2021 - Ben Greiner <[email protected]>
- Update requirements
-------------------------------------------------------------------
Mon Sep 6 04:29:32 UTC 2021 - Steve Kowalik <[email protected]>
- Update to 1.1.4:
* [usecase] [memcached] Added support for pymemcache socket keepalive
and retrying client.
* [bug] [general] Fixed Python 3.10 deprecation warning involving
threading. Pull request
* [bug] [regression] [tests] Repaired the test suite to work with the
5.x series of the decorator module, which now appears to make use of
the __signature__ attribute.
* [bug] [regression] Fixed regression where ProxyBackend was missing
several methods that were added as part of the 1.1 release.
* [feature] [region] Added new region method CacheRegion.key_is_locked().
Returns True if the given key is subject to the dogpile lock, which
would indicate that the generator function is running at that time.
* [feature] [memcached] Added support for the pymemcache backend, using
the "dogpile.cache.pymemcache" backend identifier.
-------------------------------------------------------------------
Thu Jun 17 20:59:19 UTC 2021 - Dirk Müller <[email protected]>
- update to 1.1.3:
* rereleae, no changes
-------------------------------------------------------------------
Thu Apr 22 20:27:18 UTC 2021 - Dirk Müller <[email protected]>
- update to 1.1.2:
* rerelease, no changes
-------------------------------------------------------------------
Wed Mar 10 15:18:25 UTC 2021 - Dirk Müller <[email protected]>
- fix build for older distributions with old default-pytest
-------------------------------------------------------------------
Sun Jan 24 18:40:18 UTC 2021 - Dirk Müller <[email protected]>
- skip building against python 3.6
-------------------------------------------------------------------
Wed Nov 25 14:10:35 UTC 2020 - Matej Cepl <[email protected]>
- Update to 1.1.1:
- Fixed regression where the serialization and deserialization
functions could be inadvertently turned into instance methods with
an unexpected argument signature, namely when pickle.dumps and
pickle.loads are the pure Python version as is the case in pypy.
- Reworked the means by which values are serialized and deserialized
from backends, and provided for custom serialization of values.
Added the CacheRegion.serializer and CacheRegion.deserializer
parameters which may be set to any serializer.
- Serialization and deserialization now take place within the
CacheRegion so that backends may now assume string values in all
cases. This simplifies the existing backends and also makes custom
backends easier to write and maintain.
- Additionally, the serializer is now applied to the user-defined
value portion of the CachedValue and not to the metadata or other
portions of CachedValue object itself, so the serialized portion is
effectively a "payload" within the larger CachedValue structure that
is passed as part of the larger string format. The overall format is
a separate JSON of the cached value metadata, followed by the
serialized form. This allows for end-user serialization schemes that
are hardwired to the values themselves without the need to serialize
dogpile's internal structures as well.
- Existing custom backends should continue to work without issue; they
now have the option to forego any separate serialization steps, and
can also subclass a new backend BytesBackend that marks them as
a backend that only deals with bytes coming in and out; all internal
serialization logic from such a backend can be removed.
-------------------------------------------------------------------
Mon Sep 21 05:40:07 UTC 2020 - Dirk Mueller <[email protected]>
- update to 1.0.2:
* Added support for TLS connections to the bmemcached backend.
* dogpile.cache 1.0.0 was released with a minimum Python version of 3.5.
However, due to a dependency issue, the minimum version is now Python 3.6.
* Removed the "universal=1" directive from setup.cfg as this would create
py2/py3 wheels. dogpile 1.0.x is Python 3 only so a py3-only wheel is now
-------------------------------------------------------------------
Thu Jul 30 11:03:50 UTC 2020 - Dirk Mueller <[email protected]>
- skip python2 building - 0.9.2 is python 3.x only
-------------------------------------------------------------------
Tue Jun 2 17:00:19 UTC 2020 - Dirk Mueller <[email protected]>
- update to 0.9.2:
Ensured that the "pyproject.toml" file is not included in builds, as the
presence of this file indicates to pip that a pep-517 installation process
should be used. As this mode of operation appears to be not well supported
by current tools / distros, these problems are avoided within the scope of
dogpile.cache installation by omitting the file.
Added option to the Redis backend
:paramref:`.RedisBackend.thread_local_lock`, which when set to False will
disable the use of a threading local by the ``redis`` module in its
distributed lock service, which is known to interfere with the lock's
behavior when used in an "async" use case, within dogpile this would be
when using the :paramref:`.CacheRegion.async_creation_runner` feature. The
default is conservatively being left at True, but it's likely this should
be set to False in all cases, so a warning is emitted if this flag is not
set to False in conjunction with the distributed lock. Added an optional
argument to :class:`.RedisBackend` that specifies whether or not a
thread-local Redis lock should be used. This is the default, but it breaks
asynchronous runner compatibility.
-------------------------------------------------------------------
Fri Dec 20 18:20:21 UTC 2019 - Dirk Mueller <[email protected]>
- update to 0.9.0
* Added logging facililities into :class:`.CacheRegion`
-------------------------------------------------------------------
Fri Oct 4 14:09:51 UTC 2019 - Marketa Calabkova <[email protected]>
- Update to 0.8.0
* Replaced the Python compatbility routines for ``getfullargspec()`` with a
fully vendored version from Python 3.3. Originally, Python was emitting
deprecation warnings for this function in Python 3.8 alphas. While this
change was reverted, it was observed that Python 3 implementations for
``getfullargspec()`` are an order of magnitude slower as of the 3.4 series
where it was rewritten against ``Signature``. While Python plans to
improve upon this situation, SQLAlchemy projects for now are using a simple
replacement to avoid any future issues.
* Pinned minimum version of Python decorator module at 4.0.0.
* Fixed the :func:`.sha1_mangle_key` key mangler to coerce incoming Unicode
objects into bytes.
-------------------------------------------------------------------
Fri Mar 8 14:37:22 UTC 2019 - Tomáš Chvátal <[email protected]>
- Update to 0.7.1:
* fix python3 deprecation warnings
* Restore the API for async_creation_runner in all cases
-------------------------------------------------------------------
Thu Mar 7 10:53:24 UTC 2019 - Tomáš Chvátal <[email protected]>
- Fix fdupes call
-------------------------------------------------------------------
Thu Dec 6 05:44:25 UTC 2018 - Thomas Bechtold <[email protected]>
- update to 0.6.8:
* Project hosting has moved to GitHub, under the SQLAlchemy
organization at https://github.com/sqlalchemy/dogpile.cache
* Fixed issue in the :meth:`.CacheRegion.get_or_create_multi` method which
was erroneously considering the cached value as the timestamp field if the
:meth:`.CacheRegion.invalidate` method had ben used, usually causing a
``TypeError`` to occur, or in less frequent cases an invalid result for
whether or not the cached value was invalid, leading to excessive caching
or regeneration. The issue was a regression caused by an implementation
issue in the pluggable invalidation feature added in :ticket:`38`.
-------------------------------------------------------------------
Tue Dec 4 12:47:28 UTC 2018 - Matej Cepl <[email protected]>
- Remove superfluous devel dependency for noarch package
-------------------------------------------------------------------
Thu Oct 11 11:29:30 UTC 2018 - Dirk Mueller <[email protected]>
- update to 0.6.6:
Added method :attr:`.CacheRegion.actual_backend` which calculates and
caches the actual backend for the region, which may be abstracted by
the use of one or more :class:`.ProxyBackend` subclasses.
-------------------------------------------------------------------
Mon Apr 23 12:54:25 UTC 2018 - [email protected]
- skip lock tests, they fail frequently (bsc#1086987)
-------------------------------------------------------------------
Fri Apr 20 07:50:52 UTC 2018 - [email protected]
- for testing purposes drop dogpile.cache-tests_more_slow_waiters.patch
-------------------------------------------------------------------
Thu Apr 19 13:00:53 UTC 2018 - [email protected]
- only run generic tests using pytest (bsc#1089564)
-------------------------------------------------------------------
Tue Mar 27 00:44:45 CEST 2018 - [email protected]
- update to 0.6.5:
* Fixed import issue for Python 3.7 where several variables named
"async" were, leading to syntax errors.
* drop dogpile-threading.patch (upstreamed)
- add dogpile.cache-tests_more_slow_waiters.patch (bsc#1086987)
increase number of allowed slow waiters in testsuite
otherwise this testsuite seems extremely flaky on non-x86_64
-------------------------------------------------------------------
Sun Feb 18 17:35:00 UTC 2018 - [email protected]
- add dogpile-threading.patch
-------------------------------------------------------------------
Wed Nov 8 16:29:43 UTC 2017 - [email protected]
- Fix broken symlinks created by fdupes on the python3-dogpile.cache package
-------------------------------------------------------------------
Mon Aug 21 16:00:57 UTC 2017 - [email protected]
- update to 0.6.4:
* The method :meth:`.Region.get_or_create_multi` will not pass to the
cache backend if no values are ultimately to be stored, based on
the use of the :paramref:`.Region.get_or_create_multi.should_cache_fn`
function. This empty dictionary is unnecessary and can cause API
problems for backends like that of Redis.
* The :attr:`.api.NO_VALUE` constant now has a fixed ``__repr__()``
output, so that scenarios where this constant's string value
ends up being used as a cache key do not create multiple values.
* A new exception class :class:`.exception.PluginNotFound` is now
raised when a particular cache plugin class cannot be located
either as a setuptools entrypoint or as a registered backend.
Previously, a plain ``Exception`` was thrown.
* Added ``replace_existing_backend`` to
:meth:`.CacheRegion.configure_from_config`.
-------------------------------------------------------------------
Sat May 6 03:31:54 UTC 2017 - [email protected]
- Fix Provides/Obsoletes.
-------------------------------------------------------------------
Wed Mar 1 14:02:39 UTC 2017 - [email protected]
- Converted to single-spec
-------------------------------------------------------------------
Wed Aug 31 10:47:40 UTC 2016 - [email protected]
- update to 0.6.2:
* Added a new system to allow custom plugins specific to the issue of
"invalidate the entire region", using a new base class
: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.
* Added a new cache key generator :func:`.kwarg_function_key_generator`,
which takes keyword arguments as well as positional arguments into
account when forming the cache key.
* 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``.
* Drop 0001-Link-moved-functions-in-dogpile.cache.util.patch
applied upstream
-------------------------------------------------------------------
Mon Jul 4 08:00:04 UTC 2016 - [email protected]
- Use pypi.io for Source url
-------------------------------------------------------------------
Fri Jul 1 14:38:37 UTC 2016 - [email protected]
- dogpile.core was merged into dogpile.cache .
See https://gerrit.sqlalchemy.org/#/c/89/
So dogpile.core is no longer a Require.
- Add 0001-Link-moved-functions-in-dogpile.cache.util.patch
For backward compat.
-------------------------------------------------------------------
Tue Jun 7 09:48:08 UTC 2016 - [email protected]
- Update to version 0.6.1
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.
version 0.6.0
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.
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.
* 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”.
-------------------------------------------------------------------
Mon Mar 7 07:47:48 UTC 2016 - [email protected]
- update to 0.5.7:
* Added new parameter :paramref:`.GenericMemcachedBackend.lock_timeout`,
used in conjunction with :paramref:`.GenericMemcachedBackend.distributed_lock`,
will specify the timeout used when communicating to the ``.add()`` method of
the memcached client.
* Added a new flag :paramref:`.CacheRegion.configure.replace_existing_backend`,
allows a region to have a new backend replace an existing one.
* Test suite now runs using py.test.
* Repaired the :meth:`.CacheRegion.get_multi` method when used with a
list of zero length against the redis backend.
-------------------------------------------------------------------
Mon May 4 11:45:10 UTC 2015 - [email protected]
- update to version 0.5.6:
* 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.
- additional changes from version 0.5.5:
* 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.
* 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.
* The wrap argument is now propagated when calling
CacheRegion.configure_from_config(). Pull request courtesy
Jonathan Vanasco.
* Fixed tests under py.test, which were importing a symbol from
pytest itself is_unittest which has been removed.
- add fdupes as BuildRequires and call it after install
-------------------------------------------------------------------
Mon Sep 15 09:03:52 UTC 2014 - [email protected]
- Update to version 0.5.4:
* Added new :class:`.NullBackend`, for testing and cache-disabling
purposes. Pull request courtesy Wichert Akkerman.
* Added missing Mako test dependency to setup.py.
Pull request courtesy Wichert Akkerman.
* Fixed bug where calling :meth:`.CacheRegion.get_multi` or
:meth:`.CacheRegion.set_multi` with an empty list would cause failures
based on backend. Pull request courtesy Wichert Akkerman.
* Added new :paramref:`.RedisBackend.connection_pool` option
on the Redis backend; this can be passed a ``redis.ConnectionPool``
instance directly. Pull request courtesy Masayuko.
* Added new :paramref:`.RedisBackend.socket_timeout` option
on the Redis backend. Pull request courtesy
Saulius Menkevičius.
* Added support for tests to run via py.test.
* 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.
* The :func:`.coerce_string_conf` function, which is used by
:meth:`.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.
-------------------------------------------------------------------
Mon Jan 13 13:39:05 UTC 2014 - [email protected]
- update to 0.5.3:
* Fixed bug where the key_mangler would get in the way of usage of the
async_creation_runner feature within the :meth:`
-------------------------------------------------------------------
Mon Dec 30 13:58:50 UTC 2013 - [email protected]
- update to 0.5.2:
* Added a new argument ``lock_factory`` to the :class:`.DBMBackend`
* implementation. This allows for drop-in replacement of the default
* :class:`.FileLock` backend, which builds on ``os.flock()`` and only
* supports Unix platforms.
-------------------------------------------------------------------
Mon Oct 21 13:21:05 UTC 2013 - [email protected]
- update to 0.5.1:
* The :meth:`.CacheRegion.invalidate` method now supports an option
``hard=True|False``.
* 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
-------------------------------------------------------------------
Mon Sep 2 08:37:12 UTC 2013 - [email protected]
- Initial package (0.5.0)