Changes¶
Version 0.17.0¶
Released 2026-08-24
Timeout now also accepts a
datetime.timedeltain addition to int. #510Float timeouts are deprecated and now rounded up to whole seconds, so backends with integer-second APIs (e.g. memcached) no longer fail with a confusing
TypeError. Passing a float will raise aTypeErrorin a future release; timeouts of any other unsupported type raiseTypeErrorimmediately. #510Add
memcache_client_libparameter toMemcachedCacheto select which memcache client library to use (pylibmc,google,memcache, orlibmc). When not set, the library is auto-detected as before. #511
Version 0.16.1¶
Released 2026-08-21
Add
check_connectionparameter to allow users to control whether the constructor will attempt to ping the client on init. #508
Version 0.16.0¶
Released 2026-08-20
Change
FileSystemCachedefault hash method tohashlib.sha256becausehashlib.md5is not available in FIPs builds. #500Ping backends servers on init to ensure they are reachable. #503
Fix
Memcachedwithpython-memcachedclient returned None instead of True whenflush_allwas successful. #504Add
ignore_delete_many_errorsparameter to all cache backends to allow users to control whetherdelete_many()raises aRuntimeErrorif any key fails to delete. #505
Version 0.15.4¶
Released 2026-08-08
Fix dumps in
RedisCacheto not use pickle for integers, so they remain compatible with the nativeINCRBY/DECRBYoperations used byinc()/dec(). #497
Version 0.15.3¶
Released 2026-08-08
Fix
MemcachedCacheincanddecmethods double normalizing keys. #495
Version 0.15.2¶
Released 2026-08-07
Fix
libmcinMemcachedCacheno reserve nor blocking. #493
Version 0.15.1¶
Released 2026-08-07
Version 0.15.0¶
Released 2026-07-31
Make
SimpleCachethread-safe using athreading.RLock. #446Make
pylibmcandlibmcclients thread-safe by usingClientPool. #287Drop support for Python 3.8, 3.9 and 3.10. #477
Add support for optional dependencies in
pyproject.tomlto allow users to install the dependencies for specific cache backends as needed. #459
Version 0.14.0¶
Released 2026-05-09
Improve typing and refresh project to use
pyprojectand pallets workflows #420Replace deprecated
datetime.utcnow()withdatetime.now()#421Fix
FileSystemCachepermission errors on Network Attached Storage (NAS) when trying to perform operations on files that are open in other processes #424Fix
delete_many()inRedisCacheandMemcachedCacheincorrectly reporting failed deletions due to comparing normalized keys against non-normalized keys #443Fix serializer returning an unbound variable error instead of
Nonewhen apickleerror is raised during serialization #448Fix
add()inSimpleCachetreating expired keys as still valid, preventing them from being overwritten until explicitly deleted #449Add
valkeybackend #441
Version 0.13.0¶
Released 2024-04-13
Version 0.12.0¶
Released 2024-02-11
RedisCachenow supports callables as keysAdded
MongoDBas a cache backend
Version 0.11.0¶
Released 2024-02-10
Drop python 3.7 support
Add python 3.11 support
Version 0.10.2¶
Released 2023-01-31
Fix broken release
Version 0.10.1¶
Released 2023-01-22
Fix logging pollution due to
DynamoDBlogging handler
Version 0.10.0¶
Released 2023-01-22
Version 0.9.0¶
Released 2022-06-26
Version 0.8.0¶
Released 2022-06-13
Remove deprecated
RedisCache.load_objectandRedisCache.dump_object. #147
Version 0.7.0¶
Released 2022-05-14
Version 0.6.0¶
Released 2022-01-18
Version 0.5.0¶
Released 2021-12-31
Cache types now have configurable serializers. #63
Version 0.4.1¶
Released 2021-10-04
Fix break in
RedisCachewhen a host object was passed inRedisCache.hostinstead of a string. #82
Version 0.4.0¶
Released 2021-10-03
All cache types now implement
BaseCacheinterface both in behavior and method return types. Thus, code written for one cache type should work with any other cache type. #71Add type information for static typing tools. #48
FileNotFoundexceptions will not be logged anymore inFileSystemCachemethods in order to avoid polluting application log files. #69
Version 0.3.0¶
Released 2021-08-12
Optimize
FileSystemCachepruning. #52Fix a bug in
FileSystemCachewhere entries would not be removed when the total was over the threshold, and the entry count would be lost. #52FileSystemCachelogs system-related exceptions. #51Removal of expired entries in
FileSystemCacheis only triggered if the number of entries is over thethresholdwhen callingset.gethasstill returnNoneandFalserespectively for expired entries, but will not remove the files. All removals happen at pruning time or explicitly withclearanddelete. #53
Version 0.2.0¶
Released 2021-06-25
Support for Python 2 has been dropped. Only Python 3.6 and above are supported.
Fix
FileSystemCache.setincorrectly considering value overrides on existing keys as new cache entries. #18SimpleCacheandFileSystemCachefirst remove expired entries, followed by older entries, when cleaning up. #26Fix problem where file count was not being updated in
FileSystemCache.getandFileSystemCache.hasafter removals. #20When attempting to access non-existent entries with
Memcached, these will now be initialized with a given valuedelta. #31
Version 0.1.1¶
Released 2020-06-20
Fix
FileSystemCacheon Windows.