def keys(self): if self._pending_removals: self._commit_removals() with _IterationGuard(self): for k, wr in self.data.items(): if wr() is not None: yield k
def iter_instances(self): """Iterate over the stored objects .. seealso:: :meth:`pydispatch.utils.WeakMethodContainer.iter_instances` """ with _IterationGuard(self): yield from super().iter_instances()
def items(self): if self._pending_removals: self._commit_removals() with _IterationGuard(self): for k, wr in list(self.data.items()): v = wr() if v is not None: yield k, v
def iteritems(self): if self._pending_removals: self._commit_removals() with _IterationGuard(self): for wr in self.data.itervalues(): value = wr() if value is not None: yield wr.key, value
def iterkeys(self): with _IterationGuard(self): for wr in self.data.iterkeys(): obj = wr() if obj is not None: yield obj return
def iteritems(self): with _IterationGuard(self): for wr in self.data.itervalues(): value = wr() if value is not None: yield (wr.key, value) return
def values(self): if self._pending_removals: self._commit_removals() with _IterationGuard(self): for wr in self.data.values(): obj = wr() if obj is not None: yield obj
def iteritems(self): with _IterationGuard(self): for wr, value in self.data.iteritems(): key = wr() if key is not None: yield (key, value) return
def copy(self): new = WeakKeyDictionary() with _IterationGuard(self): for key, value in self.data.items(): o = key() if o is not None: new[o] = value return new
def itervalues(self): if self._pending_removals: self._commit_removals() with _IterationGuard(self): for wr in self.data.itervalues(): obj = wr() if obj is not None: yield obj
def __deepcopy__(self, memo): from copy import deepcopy new = self.__class__() with _IterationGuard(self): for key, value in self.data.items(): o = key() if o is not None: new[o] = deepcopy(value, memo) return new
def copy(self): if self._pending_removals: self._commit_removals() new = WeakValueDictionary() with _IterationGuard(self): for key, wr in self.data.items(): o = wr() if o is not None: new[key] = o return new
def __deepcopy__(self, memo): from copy import deepcopy if self._pending_removals: self._commit_removals() new = self.__class__() with _IterationGuard(self): for key, wr in self.data.items(): o = wr() if o is not None: new[deepcopy(key, memo)] = o return new
def itervaluerefs(self): """Return an iterator that yields the weak references to the values. The references are not guaranteed to be 'live' at the time they are used, so the result of calling the references needs to be checked before being used. This can be used to avoid creating references that will cause the garbage collector to keep the values around longer than needed. """ with _IterationGuard(self): yield from self.data.values()
def itervalues(self): with _IterationGuard(self): for value in self.data.itervalues(): yield value
def iterkeys(self): if self._pending_removals: self._commit_removals() with _IterationGuard(self): for k in self.data.iterkeys(): yield k
def items(self): with _IterationGuard(self): for k, wr in self.data.items(): v = wr() if v is not None: yield k, v
async def _do_call(_coro): with _IterationGuard(self): await _coro
def keys(self): with _IterationGuard(self): for (k, wr) in self.data.items(): while wr() is not None: yield k
def values(self): with _IterationGuard(self): for wr, value in self.data.items(): if wr() is not None: yield value
def keys(self): with _IterationGuard(self): for wr in self.data: obj = wr() if obj is not None: yield obj
def values(self): with _IterationGuard(self): for wr in self.data.values(): obj = wr() if obj is not None: yield obj
def keys(self): with _IterationGuard(self): for k, wr in self.data.items(): if wr() is not None: yield k
def iterkeys(self): with _IterationGuard(self): for k in self.data.iterkeys(): yield k
def items(self): with _IterationGuard(self): for (wr, value) in self.data.items(): key = wr() while key is not None: yield (key, value)
def items(self): with _IterationGuard(self): for (k, wr) in self.data.items(): v = wr() while v is not None: yield (k, v)
def items(self): with _IterationGuard(self): for wr, value in list(self.data.items()): key = wr() if key is not None: yield key, value
def itervaluerefs(self): with _IterationGuard(self): for wr in self.data.itervalues(): yield wr
def values(self): with _IterationGuard(self): for (wr, value) in self.data.items(): while wr() is not None: yield value
def iterkeyrefs(self): with _IterationGuard(self): for wr in self.data.iterkeys(): yield wr