self._modified.discard(state)
def _dirty_states(self):
- return self._modified.union(s for s in list(self._mutable_attrs)
+ return self._modified.union(s for s in self._mutable_attrs.copy()
if s.modified)
def check_modified(self):
if self._modified:
return True
else:
- for state in list(self._mutable_attrs):
+ for state in self._mutable_attrs.copy():
if state.modified:
return True
return False
self.proxy_refs[con_proxy] = True
def _apply_all(self, methods):
- for rec in list(self.proxy_refs):
+ # must copy keys atomically
+ for rec in self.proxy_refs.keys():
if rec is not None and rec.is_valid:
try:
for name in methods: