##// END OF EJS Templates
moved refresh of pull request overview to left, it's more intuitive to be there
moved refresh of pull request overview to left, it's more intuitive to be there

File last commit:

r2494:c4d418b4 beta
r2871:b54d1024 beta
Show More
lazy.py
28 lines | 760 B | text/x-python | PythonLexer
Added VCS into rhodecode core for faster and easier deployments of new versions
r2007 class LazyProperty(object):
"""
Decorator for easier creation of ``property`` from potentially expensive to
calculate attribute of the class.
Usage::
class Foo(object):
@LazyProperty
def bar(self):
print 'Calculating self._bar'
return 42
Taken from http://blog.pythonisito.com/2008/08/lazy-descriptors.html and
used widely.
"""
def __init__(self, func):
self._func = func
small fix for lazy property
r2494 self.__module__ = func.__module__
Added VCS into rhodecode core for faster and easier deployments of new versions
r2007 self.__name__ = func.__name__
self.__doc__ = func.__doc__
def __get__(self, obj, klass=None):
if obj is None:
small fix for lazy property
r2494 return self
Added VCS into rhodecode core for faster and easier deployments of new versions
r2007 result = obj.__dict__[self.__name__] = self._func(obj)
return result