summaryrefslogtreecommitdiff
path: root/django/utils/functional.py
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2019-01-18 10:04:29 -0500
committerTim Graham <timograham@gmail.com>2019-01-30 10:19:48 -0500
commit7e6b214ed34f5562dbd83cf54924a5b589a29715 (patch)
tree2a2aa16c023638436bea449acdb06224bf7f33c7 /django/utils/functional.py
parent5a5c77d55dc85c7e6cf910243257e408887f412a (diff)
Fixed #30116 -- Dropped support for Python 3.5.
Diffstat (limited to 'django/utils/functional.py')
-rw-r--r--django/utils/functional.py29
1 files changed, 3 insertions, 26 deletions
diff --git a/django/utils/functional.py b/django/utils/functional.py
index 64c79d3361..6118c108ef 100644
--- a/django/utils/functional.py
+++ b/django/utils/functional.py
@@ -3,8 +3,6 @@ import itertools
import operator
from functools import total_ordering, wraps
-from django.utils.version import PY36, get_docs_version
-
# You can't trivially replace this with `functools.partial` because this binds
# to classes and returns bound instances, whereas functools.partial (on
@@ -22,8 +20,8 @@ class cached_property:
A cached property can be made out of an existing method:
(e.g. ``url = cached_property(get_absolute_url)``).
- On Python < 3.6, the optional ``name`` argument must be provided, e.g.
- ``url = cached_property(get_absolute_url, name='url')``.
+ The optional ``name`` argument is obsolete as of Python 3.6 and will be
+ deprecated in Django 4.0 (#30127).
"""
name = None
@@ -34,29 +32,8 @@ class cached_property:
'__set_name__() on it.'
)
- @staticmethod
- def _is_mangled(name):
- return name.startswith('__') and not name.endswith('__')
-
def __init__(self, func, name=None):
- if PY36:
- self.real_func = func
- else:
- func_name = func.__name__
- name = name or func_name
- if not (isinstance(name, str) and name.isidentifier()):
- raise ValueError(
- "%r can't be used as the name of a cached_property." % name,
- )
- if self._is_mangled(name):
- raise ValueError(
- 'cached_property does not work with mangled methods on '
- 'Python < 3.6 without the appropriate `name` argument. See '
- 'https://docs.djangoproject.com/en/%s/ref/utils/'
- '#cached-property-mangled-name' % get_docs_version(),
- )
- self.name = name
- self.func = func
+ self.real_func = func
self.__doc__ = getattr(func, '__doc__')
def __set_name__(self, owner, name):