Fixed #27555 -- Removed django.utils.functional.lazy_property.

This commit is contained in:
Adam Chainz 2016-11-30 00:01:12 +00:00 committed by Tim Graham
parent 05d2c5a66d
commit 71609a5b90
3 changed files with 3 additions and 41 deletions

View File

@ -412,27 +412,6 @@ class SimpleLazyObject(LazyObject):
return copy.deepcopy(self._wrapped, memo) return copy.deepcopy(self._wrapped, memo)
class lazy_property(property):
"""
A property that works with subclasses by wrapping the decorated
functions of the base class.
"""
def __new__(cls, fget=None, fset=None, fdel=None, doc=None):
if fget is not None:
@wraps(fget)
def fget(instance, instance_type=None, name=fget.__name__):
return getattr(instance, name)()
if fset is not None:
@wraps(fset)
def fset(instance, value, name=fset.__name__):
return getattr(instance, name)(value)
if fdel is not None:
@wraps(fdel)
def fdel(instance, name=fdel.__name__):
return getattr(instance, name)()
return property(fget, fset, fdel, doc)
def partition(predicate, values): def partition(predicate, values):
""" """
Splits the values into two sets, based on the return value of the function Splits the values into two sets, based on the return value of the function

View File

@ -627,6 +627,8 @@ Miscellaneous
* The unused ``BaseCommand.can_import_settings`` attribute is removed. * The unused ``BaseCommand.can_import_settings`` attribute is removed.
* The undocumented ``django.utils.functional.lazy_property`` is removed.
.. _deprecated-features-1.11: .. _deprecated-features-1.11:
Features deprecated in 1.11 Features deprecated in 1.11

View File

@ -4,7 +4,7 @@ from __future__ import unicode_literals
import unittest import unittest
from django.utils import six from django.utils import six
from django.utils.functional import cached_property, lazy, lazy_property from django.utils.functional import cached_property, lazy
class FunctionalTestCase(unittest.TestCase): class FunctionalTestCase(unittest.TestCase):
@ -38,25 +38,6 @@ class FunctionalTestCase(unittest.TestCase):
t = lazy(lambda: Klazz(), Base)() t = lazy(lambda: Klazz(), Base)()
self.assertEqual(t.method(), 'Klazz') self.assertEqual(t.method(), 'Klazz')
def test_lazy_property(self):
class A(object):
def _get_do(self):
raise NotImplementedError
def _set_do(self, value):
raise NotImplementedError
do = lazy_property(_get_do, _set_do)
class B(A):
def _get_do(self):
return "DO IT"
with self.assertRaises(NotImplementedError):
A().do
self.assertEqual(B().do, 'DO IT')
def test_lazy_object_to_string(self): def test_lazy_object_to_string(self):
class Klazz(object): class Klazz(object):