comparison mercurial/util.py @ 8207:dd8d5be57d65

util: take propertycache from context.py
author Matt Mackall <mpm@selenic.com>
date Sun, 26 Apr 2009 16:50:44 -0500
parents 03d93882fc93
children a1a5a57efe90
comparison
equal deleted inserted replaced
8206:cce63ef1045b 8207:dd8d5be57d65
134 if args not in cache: 134 if args not in cache:
135 cache[args] = func(*args) 135 cache[args] = func(*args)
136 return cache[args] 136 return cache[args]
137 137
138 return f 138 return f
139
140 class propertycache(object):
141 def __init__(self, func):
142 self.func = func
143 self.name = func.__name__
144 def __get__(self, obj, type=None):
145 result = self.func(obj)
146 setattr(obj, self.name, result)
147 return result
139 148
140 def pipefilter(s, cmd): 149 def pipefilter(s, cmd):
141 '''filter string S through command CMD, returning its output''' 150 '''filter string S through command CMD, returning its output'''
142 (pin, pout) = popen2(cmd, 'b') 151 (pin, pout) = popen2(cmd, 'b')
143 def writer(): 152 def writer():