diff -r cce63ef1045b -r dd8d5be57d65 mercurial/util.py --- a/mercurial/util.py Sun Apr 26 16:50:44 2009 -0500 +++ b/mercurial/util.py Sun Apr 26 16:50:44 2009 -0500 @@ -137,6 +137,15 @@ return f +class propertycache(object): + def __init__(self, func): + self.func = func + self.name = func.__name__ + def __get__(self, obj, type=None): + result = self.func(obj) + setattr(obj, self.name, result) + return result + def pipefilter(s, cmd): '''filter string S through command CMD, returning its output''' (pin, pout) = popen2(cmd, 'b')