Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/util.py @ 21813:c2262004c2e2
config: move config.sortdict class into util
This makes it more natural to use the sortdict class from outside config.py.
author | Angel Ezquerra <angel.ezquerra@gmail.com> |
---|---|
date | Sun, 23 Feb 2014 01:56:31 +0100 |
parents | cc13addbd62b |
children | 86c2d792a4b7 |
comparison
equal
deleted
inserted
replaced
21812:73e4a02e6d23 | 21813:c2262004c2e2 |
---|---|
221 for i, v in enumerate(self): | 221 for i, v in enumerate(self): |
222 if v == val: | 222 if v == val: |
223 del self[i] | 223 del self[i] |
224 break | 224 break |
225 | 225 |
226 class sortdict(dict): | |
227 '''a simple sorted dictionary''' | |
228 def __init__(self, data=None): | |
229 self._list = [] | |
230 if data: | |
231 self.update(data) | |
232 def copy(self): | |
233 return sortdict(self) | |
234 def __setitem__(self, key, val): | |
235 if key in self: | |
236 self._list.remove(key) | |
237 self._list.append(key) | |
238 dict.__setitem__(self, key, val) | |
239 def __iter__(self): | |
240 return self._list.__iter__() | |
241 def update(self, src): | |
242 for k in src: | |
243 self[k] = src[k] | |
244 def clear(self): | |
245 dict.clear(self) | |
246 self._list = [] | |
247 def items(self): | |
248 return [(k, self[k]) for k in self._list] | |
249 def __delitem__(self, key): | |
250 dict.__delitem__(self, key) | |
251 self._list.remove(key) | |
252 def keys(self): | |
253 return self._list | |
254 def iterkeys(self): | |
255 return self._list.__iter__() | |
256 | |
226 class lrucachedict(object): | 257 class lrucachedict(object): |
227 '''cache most recent gets from or sets to this dictionary''' | 258 '''cache most recent gets from or sets to this dictionary''' |
228 def __init__(self, maxsize): | 259 def __init__(self, maxsize): |
229 self._cache = {} | 260 self._cache = {} |
230 self._maxsize = maxsize | 261 self._maxsize = maxsize |