Skip to content

Releases: sqlalchemy/dogpile.cache

1.5.0

11 Oct 17:35

Choose a tag to compare

1.5.0

Released: Sat Oct 11 2025

feature

  • [feature] [redis] Added a new RedisBackend.lock_prefix parameter to the
    RedisBackend and ValkeyBackend backends to allow
    customization of the lock key prefix. The prefix must be between 2 and 10
    characters long and may contain any alphanumeric character and the symbols
    _-.: . This allows for improved visual clarity when inspecting backend
    keys, particularly when key names may be ambiguous with the default
    _lock prefix. Pull request courtesy Jonathan Vanasco.

    References: #76

change

  • [change] [tests] The top-level test runner has been changed to use nox, adding a
    noxfile.py as well as some included modules. The tox.ini file
    remains in place so that tox runs will continue to function in the near
    term, however it will be eventually removed and improvements and
    maintenance going forward will be only towards noxfile.py.

  • [change] [platform] Minimum Python version is now 3.10, as Python 3.9 is EOL.

bug

  • [bug] [typing] A wide range of typing improvements and modernizations within the codebase.
    Pull request courtesy Stephen Finucane.

1.4.1

12 Sep 16:34

Choose a tag to compare

1.4.1

Released: Fri Sep 12 2025

usecase

  • [usecase] [redis] Added new parameters RedisBackend.lock_blocking_timeout and
    RedisBackend.lock_blocking to the Redis backend; and
    ValkeyBackend.lock_blocking_timeout and
    ValkeyBackend.lock_blocking to the Valkey backends. These
    parameters are then passed onto the redis/valkey client Lock creation
    methods and use the same defaults.

    References: #271

  • [usecase] [redis] Added new parameters for the Redis/Valkey backends. These params are passed
    directly to the constructors:

    -   `RedisBackend.ssl`
    
    -   `ValkeyBackend.ssl`
    

    These params default to None, and are only passed to the constructor if
    set. The docstrings instruct users to submit all additional ssl_
    prefixed params via the optional
    RedisBackend.connection_kwargs or
    ValkeyBackend.connection_kwargs parameter.

    References: #276

bug

  • [bug] [memory] Fixed issue where MemoryBackend.configure() would unexpectedly
    modify the input arguments dictionary by removing its contents. The method
    now preserves the original arguments dictionary as expected, consistent
    with the behavior of other backend types. Pull request courtesy Nicolas
    Simonds.

    References: #273

1.4.0

26 Apr 17:45

Choose a tag to compare

1.4.0

Released: Sat Apr 26 2025

bug

  • [bug] [general] The pyproject.toml configuration has been amended to use
    the updated PEP 639 configuration for license, which eliminates
    loud deprecation warnings when building the package. Note this
    necessarily bumps setuptools build requirement to 77.0.3 which
    forces Python 3.8 support to be dropped.

misc

  • [change] [general] Support for Python 3.8 has been dropped, the minimum version is now Python
    3.9, as 3.8 is EOL. This change is necessitated by the need to require
    setuptools 77.0.3 in order to satisfy PEP 639.

1.3.4

28 Jan 14:25

Choose a tag to compare

1.3.4

Released: Tue Jan 28 2025

usecase

  • [usecase] [valkey] Added backend for valkey server. This is based on valkey-py as the driver.

bug

  • [bug] [redis] Fixes to the recently added RedisClusterBackend fixing a runtime typing
    error that prevented it from running.

    References: #263

misc

  • [change] [general] The pin for setuptools<69.3 in pyproject.toml has been removed.
    This pin was to prevent a sudden change to PEP 625 in setuptools from
    taking place which changes the file name of SQLAlchemy's source
    distribution on pypi to be an all lower case name, and the change was
    extended to all SQLAlchemy projects to prevent any further surprises.
    However, the presence of this pin is now holding back environments that
    otherwise want to use a newer setuptools, so we've decided to move forward
    with this change, with the assumption that build environments will have
    largely accommodated the setuptools change by now.

1.3.3

05 May 17:01

Choose a tag to compare

1.3.3

Released: Sun May 5 2024

usecase

  • [usecase] [memcached] Added support for an additional pymemcached client parameter
    PyMemcacheBackend.memcached_expire_time. Pull request
    courtesy Takashi Kajinami.

bug

  • [bug] [typing] 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.

    Unknown interpreted text role "data".

    Unknown interpreted text role "data".

1.3.2

21 Feb 19:42

Choose a tag to compare

1.3.2

Released: Wed Feb 21 2024

usecase

  • [usecase] [redis] Added a new backend RedisClusterBackend, allowing support for
    Redis Cluster. Pull request courtesy Maël Naccache Tüfekçi.

    References: #250

  • [usecase] [redis] Added support for additional Redis client parameters
    RedisBackend.socket_connect_timeout,
    RedisBackend.socket_keepalive and
    RedisBackend.socket_keepalive_options. Pull request courtesy
    Takashi Kajinami.

    References: #252

1.3.1

07 Feb 22:56

Choose a tag to compare

1.3.1

Released: Wed Feb 7 2024

usecase

  • [usecase] [redis] 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. Pull request courtesy Takashi Kajinami.

1.3.0

20 Dec 14:16

Choose a tag to compare

1.3.0

Released: Wed Dec 20 2023

feature

  • [feature] [region] Added new method 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 CachedValue object is returned
    which features new accessors to retrieve cached time and current age. Pull
    request courtesy Grégoire Deveaux.

    References: #37

misc

  • [change] [setup] Minimum Python version is now Python 3.8; prior versions Python 3.7 and 3.6
    are EOL.

  • [change] [setup] Project setup is now based on pep-621 pyproject.toml configuration.

1.2.2

08 Jul 21:01

Choose a tag to compare

1.2.2

Released: Sat Jul 8 2023

bug

  • [bug] [typing] Made use of pep-673 Self type for method chained methods such as
    CacheRegion.configure() and ProxyBackend.wrap(). Pull request
    courtesy Viicos.

    References: #240

1.2.1

20 May 15:59

Choose a tag to compare

1.2.1

Released: Sat May 20 2023

bug

  • [bug] [typing] Added py.typed file to root so that typing tools such as Mypy recognize
    dogpile as typed. Pull request courtesy Daverball.

    References: #238