From 9b7455e918a437c3db91e88dcbf6d9c93fef96f8 Mon Sep 17 00:00:00 2001 From: Bouke Haarsma Date: Fri, 1 Nov 2013 21:15:41 +0100 Subject: Fixed #21351 -- Replaced memoize with Python's lru_cache. Replaced the custom, untested memoize with a similar decorator from Python's 3.2 stdlib. Although some minor performance degradation (see ticket), it is expected that in the long run lru_cache will outperform memoize once it is implemented in C. Thanks to EvilDMP for the report and Baptiste Mispelon for the idea of replacing memoize with lru_cache. --- docs/internals/deprecation.txt | 2 ++ docs/releases/1.7.txt | 10 ++++++++++ 2 files changed, 12 insertions(+) (limited to 'docs') diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt index f2e2c4c2f7..f2d121e641 100644 --- a/docs/internals/deprecation.txt +++ b/docs/internals/deprecation.txt @@ -479,6 +479,8 @@ these changes. * The ``zh-cn`` and ``zh-tw`` language codes will be removed and have been replaced by the ``zh-hans`` and ``zh-hant`` language code respectively. +* The internal ``django.utils.functional.memoize`` will be removed. + 2.0 --- diff --git a/docs/releases/1.7.txt b/docs/releases/1.7.txt index 2aab6f26a7..d703f44e4b 100644 --- a/docs/releases/1.7.txt +++ b/docs/releases/1.7.txt @@ -752,3 +752,13 @@ recently introduced language codes ``zh-hans`` and ``zh-hant`` respectively. If you use these language codes, you should rename the locale directories and update your settings to reflect these changes. The deprecated language codes will be removed in Django 1.9. + +``django.utils.functional.memoize`` function +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The function ``memoize`` is deprecated and should be replaced by the +``functools.lru_cache`` decorator (available from Python 3.2 onwards). + +Django ships a backport of this decorator for older Python versions and it's +available at ``django.utils.lru_cache.lru_cache``. The deprecated function will +be removed in Django 1.9. -- cgit v1.3