diff options
| author | Tim Graham <timograham@gmail.com> | 2019-01-18 10:04:29 -0500 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2019-01-30 10:19:48 -0500 |
| commit | 7e6b214ed34f5562dbd83cf54924a5b589a29715 (patch) | |
| tree | 2a2aa16c023638436bea449acdb06224bf7f33c7 /django/utils/functional.py | |
| parent | 5a5c77d55dc85c7e6cf910243257e408887f412a (diff) | |
Fixed #30116 -- Dropped support for Python 3.5.
Diffstat (limited to 'django/utils/functional.py')
| -rw-r--r-- | django/utils/functional.py | 29 |
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): |
