Skip to content

Latest commit

 

History

History
473 lines (250 loc) · 9.04 KB

CHANGELOG.rst

File metadata and controls

473 lines (250 loc) · 9.04 KB

v5.3.3 (2024-02-26)

  • Documentation improvements.
  • Update CI environment.

v5.3.2 (2023-10-24)

  • Add support for Python 3.12.
  • Various documentation improvements.

v5.3.1 (2023-05-27)

  • Depend on Python >= 3.7.

v5.3.0 (2023-01-22)

  • Add cache_info() function to @cached decorator.

v5.2.1 (2023-01-08)

  • Add support for Python 3.11.
  • Correct version information in RTD documentation.
  • badges/shields: Change to GitHub workflow badge routes.

v5.2.0 (2022-05-29)

  • Add cachetools.keys.methodkey().
  • Add cache_clear() function to decorators.
  • Add src directory to sys.path for Sphinx autodoc.
  • Modernize func wrappers.

v5.1.0 (2022-05-15)

  • Add cache decorator parameters as wrapper function attributes.

v5.0.0 (2021-12-21)

  • Require Python 3.7 or later (breaking change).
  • Remove deprecated submodules (breaking change).

    The cache, fifo, lfu, lru, mru, rr and ttl submodules have been deleted. Therefore, statements like

    from cachetools.ttl import TTLCache

    will no longer work. Use

    from cachetools import TTLCache

    instead.

  • Pass self to @cachedmethod key function (breaking change).

    The key function passed to the @cachedmethod decorator is now called as key(self, *args, **kwargs).

    The default key function has been changed to ignore its first argument, so this should only affect applications using custom key functions with the @cachedmethod decorator.

  • Change exact time of expiration in TTLCache (breaking change).

    TTLCache items now get expired if their expiration time is less than or equal to timer(). For applications using the default timer(), this should be barely noticeable, but it may affect the use of custom timers with larger tick intervals. Note that this also implies that a TTLCache with ttl=0 can no longer hold any items, since they will expire immediately.

  • Change Cache.__repr__() format (breaking change).

    String representations of cache instances now use a more compact and efficient format, e.g.

    LRUCache({1: 1, 2: 2}, maxsize=10, currsize=2)

  • Add TLRU cache implementation.
  • Documentation improvements.

v4.2.4 (2021-09-30)

  • Add submodule shims for backward compatibility.

v4.2.3 (2021-09-29)

  • Add documentation and tests for using TTLCache with datetime.
  • Link to typeshed typing stubs.
  • Flatten package file hierarchy.

v4.2.2 (2021-04-27)

  • Update build environment.
  • Remove Python 2 remnants.
  • Format code with Black.

v4.2.1 (2021-01-24)

  • Handle __missing__() not storing cache items.
  • Clean up __missing__() example.

v4.2.0 (2020-12-10)

  • Add FIFO cache implementation.
  • Add MRU cache implementation.
  • Improve behavior of decorators in case of race conditions.
  • Improve documentation regarding mutability of caches values and use of key functions with decorators.
  • Officially support Python 3.9.

v4.1.1 (2020-06-28)

  • Improve popitem() exception context handling.
  • Replace float('inf') with math.inf.
  • Improve "envkey" documentation example.

v4.1.0 (2020-04-08)

  • Support user_function with cachetools.func decorators (Python 3.8 compatibility).
  • Support cache_parameters() with cachetools.func decorators (Python 3.9 compatibility).

v4.0.0 (2019-12-15)

  • Require Python 3.5 or later.

v3.1.1 (2019-05-23)

  • Document how to use shared caches with @cachedmethod.
  • Fix pickling/unpickling of cache keys

v3.1.0 (2019-01-29)

  • Fix Python 3.8 compatibility issue.
  • Use time.monotonic as default timer if available.
  • Improve documentation regarding thread safety.

v3.0.0 (2018-11-04)

  • Officially support Python 3.7.
  • Drop Python 3.3 support (breaking change).
  • Remove missing cache constructor parameter (breaking change).
  • Remove self from @cachedmethod key arguments (breaking change).
  • Add support for maxsize=None in cachetools.func decorators.

v2.1.0 (2018-05-12)

  • Deprecate missing cache constructor parameter.
  • Handle overridden getsizeof() method in subclasses.
  • Fix Python 2.7 RRCache pickling issues.
  • Various documentation improvements.

v2.0.1 (2017-08-11)

  • Officially support Python 3.6.
  • Move documentation to RTD.
  • Documentation: Update import paths for key functions (courtesy of slavkoja).

v2.0.0 (2016-10-03)

  • Drop Python 3.2 support (breaking change).
  • Drop support for deprecated features (breaking change).
  • Move key functions to separate package (breaking change).
  • Accept non-integer maxsize in Cache.__repr__().

v1.1.6 (2016-04-01)

  • Reimplement LRUCache and TTLCache using collections.OrderedDict. Note that this will break pickle compatibility with previous versions.
  • Fix TTLCache not calling __missing__() of derived classes.
  • Handle ValueError in Cache.__missing__() for consistency with caching decorators.
  • Improve how TTLCache handles expired items.
  • Use Counter.most_common() for LFUCache.popitem().

v1.1.5 (2015-10-25)

  • Refactor Cache base class. Note that this will break pickle compatibility with previous versions.
  • Clean up LRUCache and TTLCache implementations.

v1.1.4 (2015-10-24)

  • Refactor LRUCache and TTLCache implementations. Note that this will break pickle compatibility with previous versions.
  • Document pending removal of deprecated features.
  • Minor documentation improvements.

v1.1.3 (2015-09-15)

  • Fix pickle tests.

v1.1.2 (2015-09-15)

  • Fix pickling of large LRUCache and TTLCache instances.

v1.1.1 (2015-09-07)

  • Improve key functions.
  • Improve documentation.
  • Improve unit test coverage.

v1.1.0 (2015-08-28)

  • Add @cached function decorator.
  • Add hashkey and typedkey functions.
  • Add key and lock arguments to @cachedmethod.
  • Set __wrapped__ attributes for Python versions < 3.2.
  • Move functools compatible decorators to cachetools.func.
  • Deprecate @cachedmethod typed argument.
  • Deprecate cache attribute for @cachedmethod wrappers.
  • Deprecate getsizeof and lock arguments for cachetools.func decorator.

v1.0.3 (2015-06-26)

  • Clear cache statistics when calling clear_cache().

v1.0.2 (2015-06-18)

  • Allow simple cache instances to be pickled.
  • Refactor Cache.getsizeof and Cache.missing default implementation.

v1.0.1 (2015-06-06)

  • Code cleanup for improved PEP 8 conformance.
  • Add documentation and unit tests for using @cachedmethod with generic mutable mappings.
  • Improve documentation.

v1.0.0 (2014-12-19)

  • Provide RRCache.choice property.
  • Improve documentation.

v0.8.2 (2014-12-15)

  • Use a NestedTimer for TTLCache.

v0.8.1 (2014-12-07)

  • Deprecate Cache.getsize().

v0.8.0 (2014-12-03)

  • Ignore ValueError raised on cache insertion in decorators.
  • Add Cache.getsize().
  • Add Cache.__missing__().
  • Feature freeze for v1.0.

v0.7.1 (2014-11-22)

  • Fix MANIFEST.in.

v0.7.0 (2014-11-12)

  • Deprecate TTLCache.ExpiredError.
  • Add choice argument to RRCache constructor.
  • Refactor LFUCache, LRUCache and TTLCache.
  • Use custom NullContext implementation for unsynchronized function decorators.

v0.6.0 (2014-10-13)

  • Raise TTLCache.ExpiredError for expired TTLCache items.
  • Support unsynchronized function decorators.
  • Allow @cachedmethod.cache() to return None

v0.5.1 (2014-09-25)

  • No formatting of KeyError arguments.
  • Update README.rst.

v0.5.0 (2014-09-23)

  • Do not delete expired items in TTLCache.__getitem__().
  • Add @ttl_cache function decorator.
  • Fix public getsizeof() usage.

v0.4.0 (2014-06-16)

  • Add TTLCache.
  • Add Cache base class.
  • Remove @cachedmethod lock parameter.

v0.3.1 (2014-05-07)

  • Add proper locking for cache_clear() and cache_info().
  • Report size in cache_info().

v0.3.0 (2014-05-06)

  • Remove @cache decorator.
  • Add size, getsizeof members.
  • Add @cachedmethod decorator.

v0.2.0 (2014-04-02)

  • Add @cache decorator.
  • Update documentation.

v0.1.0 (2014-03-27)

  • Initial release.