equal
deleted
inserted
replaced
1318 |
1318 |
1319 def __setitem__(self, k, v): |
1319 def __setitem__(self, k, v): |
1320 self.insert(k, v) |
1320 self.insert(k, v) |
1321 |
1321 |
1322 def __delitem__(self, k): |
1322 def __delitem__(self, k): |
1323 node = self._cache.pop(k) |
1323 self.pop(k) |
|
1324 |
|
1325 def pop(self, k, default=_notset): |
|
1326 try: |
|
1327 node = self._cache.pop(k) |
|
1328 except KeyError: |
|
1329 if default is _notset: |
|
1330 raise |
|
1331 return default |
|
1332 value = node.value |
1324 self.totalcost -= node.cost |
1333 self.totalcost -= node.cost |
1325 node.markempty() |
1334 node.markempty() |
1326 |
1335 |
1327 # Temporarily mark as newest item before re-adjusting head to make |
1336 # Temporarily mark as newest item before re-adjusting head to make |
1328 # this node the oldest item. |
1337 # this node the oldest item. |
1329 self._movetohead(node) |
1338 self._movetohead(node) |
1330 self._head = node.next |
1339 self._head = node.next |
|
1340 |
|
1341 return value |
1331 |
1342 |
1332 # Additional dict methods. |
1343 # Additional dict methods. |
1333 |
1344 |
1334 def get(self, k, default=None): |
1345 def get(self, k, default=None): |
1335 try: |
1346 try: |