From f92e68c30a0d38d25486e3f3cfabe5dfb5961ef7 Mon Sep 17 00:00:00 2001 From: Nick Pope Date: Wed, 13 Sep 2023 15:49:10 +0100 Subject: Fixed #34822 -- Added support for serializing functions decorated with functools.lru_cache in migrations. `@functools.cache` and `@functools.lru_cache` return an object of type `functools._lru_cache_wrapper` which prevented the migrations serializer from working. Simply using the existing `FunctionTypeSerializer` for this additional type works as expected. --- docs/topics/migrations.txt | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'docs/topics') diff --git a/docs/topics/migrations.txt b/docs/topics/migrations.txt index 08d458fbb8..b7cd7043c2 100644 --- a/docs/topics/migrations.txt +++ b/docs/topics/migrations.txt @@ -788,6 +788,8 @@ Django can serialize the following: - Functions may be decorated if wrapped properly, i.e. using :func:`functools.wraps` + - The :func:`functools.cache` and :func:`functools.lru_cache` decorators are + explicitly supported - Unbound methods used from within the class body - Any class reference (must be in module's top-level scope) @@ -797,6 +799,11 @@ Django can serialize the following: Serialization support for ``enum.Flag`` was added. +.. versionchanged:: 5.0 + + Serialization support for functions decorated with :func:`functools.cache` + or :func:`functools.lru_cache` was added. + Django cannot serialize: - Nested classes -- cgit v1.3