Mercurial > piecrust2
diff piecrust/decorators.py @ 0:a212a3f2e3ee
Initial commit.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sat, 21 Dec 2013 14:44:02 -0800 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/piecrust/decorators.py Sat Dec 21 14:44:02 2013 -0800 @@ -0,0 +1,17 @@ +import functools + + +def lazy(f): + @functools.wraps(f) + def lazy_wrapper(*args, **kwargs): + if f.__lazyresult__ is None: + f.__lazyresult__ = f(*args, **kwargs) + return f.__lazyresult__ + + f.__lazyresult__ = None + return lazy_wrapper + + +def lazy_property(f): + return property(lazy(f)) +