##// END OF EJS Templates
raise na OSERROR if repository data sent from git hook to hook handler is somehow invalid
raise na OSERROR if repository data sent from git hook to hook handler is somehow invalid

File last commit:

r2494:c4d418b4 beta
r2818:3d0bd5f7 beta
Show More
lazy.py
28 lines | 760 B | text/x-python | PythonLexer
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
self.__module__ = func.__module__
self.__name__ = func.__name__
self.__doc__ = func.__doc__
def __get__(self, obj, klass=None):
if obj is None:
return self
result = obj.__dict__[self.__name__] = self._func(obj)
return result