def update(self, deviceProxy): unused = set(self._processes) for id, process in deviceProxy.processes.iteritems(): unused.discard(id) if id in self._processes: self._processes[id].update(process) else: self._processes[id] = ProcessStats(process) #delete the left overs for id in unused: del self._processes[id] for key, value in self._pidToProcess.items(): if value._config.name == id: del self._pidToProcess[key]