(self, dict=None)
| 47 | """ |
| 48 | |
| 49 | def __init__(self, dict=None): |
| 50 | self.data = {} |
| 51 | |
| 52 | def remove(k, selfref=IdentityWeakRef(self)): |
| 53 | self = selfref() |
| 54 | if self is not None: |
| 55 | if self._iterating: |
| 56 | self._pending_removals.append(k) |
| 57 | else: |
| 58 | del self.data[k] |
| 59 | |
| 60 | self._remove = remove |
| 61 | # A list of dead weakrefs (keys to be removed) |
| 62 | self._pending_removals = [] |
| 63 | self._iterating = set() |
| 64 | self._dirty_len = False |
| 65 | if dict is not None: |
| 66 | self.update(dict) |
| 67 | |
| 68 | def _scrub_removals(self): |
| 69 | d = self.data |