Mercurial > hg
comparison mercurial/util.py @ 39564:5d75a3c16193
util: make capacity a public attribute on lrucachedict
So others can query it. Useful for operations that may want to verify
the cache has capacity for N items before it performs an operation that
may cause cache eviction.
Differential Revision: https://phab.mercurial-scm.org/D4499
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Thu, 06 Sep 2018 11:37:27 -0700 |
parents | b31b01f93b11 |
children | 2dcc68c7d25b |
comparison
equal
deleted
inserted
replaced
39563:b31b01f93b11 | 39564:5d75a3c16193 |
---|---|
1239 | 1239 |
1240 self._head = head = _lrucachenode() | 1240 self._head = head = _lrucachenode() |
1241 head.prev = head | 1241 head.prev = head |
1242 head.next = head | 1242 head.next = head |
1243 self._size = 1 | 1243 self._size = 1 |
1244 self._capacity = max | 1244 self.capacity = max |
1245 | 1245 |
1246 def __len__(self): | 1246 def __len__(self): |
1247 return len(self._cache) | 1247 return len(self._cache) |
1248 | 1248 |
1249 def __contains__(self, k): | 1249 def __contains__(self, k): |
1267 if node is not None: | 1267 if node is not None: |
1268 node.value = v | 1268 node.value = v |
1269 self._movetohead(node) | 1269 self._movetohead(node) |
1270 return | 1270 return |
1271 | 1271 |
1272 if self._size < self._capacity: | 1272 if self._size < self.capacity: |
1273 node = self._addcapacity() | 1273 node = self._addcapacity() |
1274 else: | 1274 else: |
1275 # Grab the last/oldest item. | 1275 # Grab the last/oldest item. |
1276 node = self._head.prev | 1276 node = self._head.prev |
1277 | 1277 |
1310 n = n.next | 1310 n = n.next |
1311 | 1311 |
1312 self._cache.clear() | 1312 self._cache.clear() |
1313 | 1313 |
1314 def copy(self): | 1314 def copy(self): |
1315 result = lrucachedict(self._capacity) | 1315 result = lrucachedict(self.capacity) |
1316 | 1316 |
1317 # We copy entries by iterating in oldest-to-newest order so the copy | 1317 # We copy entries by iterating in oldest-to-newest order so the copy |
1318 # has the correct ordering. | 1318 # has the correct ordering. |
1319 | 1319 |
1320 # Find the first non-empty entry. | 1320 # Find the first non-empty entry. |