New submission from Daniel Fortunov <pythonb...@danielfortunov.com>:

The doccumentation at https://docs.python.org/3.10/library/weakref.html 
cautions that the WeakKeyDictionary and WeakValueDictionary are susceptible to 
the problem of dictionary mutation during iteration.

These notes present the user with a problem that has no easy solution.

I dug into the implementation and found that fortunately, Antoine Pitrou 
already addressed this challenge (10 years ago!) by introducing an 
_IterationGuard context manager to the implementation, which delays mutation 
while an iteration is in progress.

I asked for confirmation and Antoine agreed that these notes could be removed:
https://github.com/python/cpython/commit/c1baa601e2b558deb690edfdf334fceee3b03327#commitcomment-39514438

----------
assignee: docs@python
components: Documentation
messages: 370860
nosy: dfortunov, docs@python
priority: normal
severity: normal
status: open
title: weakref documentation contains cautions about dictionary mutation 
problems that have been solved in the implementation
versions: Python 3.10

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue40895>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to