mirror of
				https://github.com/django/django.git
				synced 2025-10-31 01:25:32 +00:00 
			
		
		
		
	Refs #30127 -- Removed name argument for django.utils.functional.cached_property().
Per deprecation timeline.
This commit is contained in:
		| @@ -1,7 +1,6 @@ | ||||
| import copy | ||||
| import itertools | ||||
| import operator | ||||
| import warnings | ||||
| from functools import total_ordering, wraps | ||||
|  | ||||
|  | ||||
| @@ -23,16 +22,7 @@ class cached_property: | ||||
|             "__set_name__() on it." | ||||
|         ) | ||||
|  | ||||
|     def __init__(self, func, name=None): | ||||
|         from django.utils.deprecation import RemovedInDjango50Warning | ||||
|  | ||||
|         if name is not None: | ||||
|             warnings.warn( | ||||
|                 "The name argument is deprecated as it's unnecessary as of " | ||||
|                 "Python 3.6.", | ||||
|                 RemovedInDjango50Warning, | ||||
|                 stacklevel=2, | ||||
|             ) | ||||
|     def __init__(self, func): | ||||
|         self.real_func = func | ||||
|         self.__doc__ = getattr(func, "__doc__") | ||||
|  | ||||
|   | ||||
| @@ -427,7 +427,7 @@ https://web.archive.org/web/20110718035220/http://diveintomark.org/archives/2004 | ||||
| .. module:: django.utils.functional | ||||
|     :synopsis: Functional programming tools. | ||||
|  | ||||
| .. class:: cached_property(func, name=None) | ||||
| .. class:: cached_property(func) | ||||
|  | ||||
|     The ``@cached_property`` decorator caches the result of a method with a | ||||
|     single ``self`` argument as a property. The cached result will persist | ||||
| @@ -509,11 +509,6 @@ https://web.archive.org/web/20110718035220/http://diveintomark.org/archives/2004 | ||||
|         z = person.friends         # does not call | ||||
|         x is z                     # is True | ||||
|  | ||||
|     .. deprecated:: 4.1 | ||||
|  | ||||
|         The ``name`` parameter is deprecated and will be removed in Django 5.0 | ||||
|         as it's unnecessary as of Python 3.6. | ||||
|  | ||||
| .. class:: classproperty(method=None) | ||||
|  | ||||
|     Similar to :py:func:`@classmethod <classmethod>`, the ``@classproperty`` | ||||
|   | ||||
| @@ -308,3 +308,6 @@ to remove usage of these features. | ||||
| * The ``SitemapIndexItem.__str__()`` method is removed. | ||||
|  | ||||
| * The ``CSRF_COOKIE_MASKED`` transitional setting is removed. | ||||
|  | ||||
| * The ``name`` argument of ``django.utils.functional.cached_property()`` is | ||||
|   removed. | ||||
|   | ||||
| @@ -1,8 +1,6 @@ | ||||
| from unittest import mock | ||||
|  | ||||
| from django.test import SimpleTestCase | ||||
| from django.test.utils import ignore_warnings | ||||
| from django.utils.deprecation import RemovedInDjango50Warning | ||||
| from django.utils.functional import cached_property, classproperty, lazy | ||||
|  | ||||
|  | ||||
| @@ -108,30 +106,6 @@ class FunctionalTests(SimpleTestCase): | ||||
|         for attr in attrs: | ||||
|             self.assertCachedPropertyWorks(attr, Class) | ||||
|  | ||||
|     @ignore_warnings(category=RemovedInDjango50Warning) | ||||
|     def test_cached_property_name(self): | ||||
|         class Class: | ||||
|             def other_value(self): | ||||
|                 """Here is the docstring...""" | ||||
|                 return 1, object() | ||||
|  | ||||
|             other = cached_property(other_value, name="other") | ||||
|             other2 = cached_property(other_value, name="different_name") | ||||
|  | ||||
|         self.assertCachedPropertyWorks("other", Class) | ||||
|         # An explicit name is ignored. | ||||
|         obj = Class() | ||||
|         obj.other2 | ||||
|         self.assertFalse(hasattr(obj, "different_name")) | ||||
|  | ||||
|     def test_cached_property_name_deprecation_warning(self): | ||||
|         def value(self): | ||||
|             return 1 | ||||
|  | ||||
|         msg = "The name argument is deprecated as it's unnecessary as of Python 3.6." | ||||
|         with self.assertWarnsMessage(RemovedInDjango50Warning, msg): | ||||
|             cached_property(value, name="other_name") | ||||
|  | ||||
|     def test_cached_property_auto_name(self): | ||||
|         """ | ||||
|         cached_property caches its value and behaves like a property | ||||
|   | ||||
		Reference in New Issue
	
	Block a user