66 Commits

Author SHA1 Message Date
Miss Islington (bot)
48769a28ad bpo-35615: Fix crashes when copying a Weak{Key,Value}Dictionary. (GH-11384) (GH-11785)
Protect dict iterations by wrapping them with _IterationGuard in the
following methods:

- WeakValueDictionary.copy()
- WeakValueDictionary.__deepcopy__()
- WeakKeyDictionary.copy()
- WeakKeyDictionary.__deepcopy__()
(cherry picked from commit 96d37dbcd2)

Co-authored-by: Fish <ltfish@users.noreply.github.com>
2019-02-07 20:09:16 +00:00
Serhiy Storchaka
81108375d9 bpo-30152: Reduce the number of imports for argparse. (#1269) 2017-09-26 00:55:55 +03:00
Serhiy Storchaka
2e576f5aec bpo-30144: Import collections ABC from collections.abc rather than collections. (#1263) 2017-04-24 09:05:00 +03:00
Łukasz Langa
9cd7e17640 Fix #29519: weakref spewing exceptions during interp finalization 2017-02-10 00:14:55 -08:00
Antoine Pitrou
e10ca3a0fe Issue #28427: old keys should not remove new values from
WeakValueDictionary when collecting from another thread.
2016-12-27 14:19:20 +01:00
Antoine Pitrou
c1ee488962 Issue #19542: Fix bugs in WeakValueDictionary.setdefault() and WeakValueDictionary.pop()
when a GC collection happens in another thread.

Original patch and report by Armin Rigo.
2016-12-19 10:56:40 +01:00
Serhiy Storchaka
f1c780870a Issue #22958: Constructor and update method of weakref.WeakValueDictionary
now accept the self and the dict keyword arguments.
2015-09-29 23:52:42 +03:00
Serhiy Storchaka
b5102e3550 Issue #22958: Constructor and update method of weakref.WeakValueDictionary
now accept the self and the dict keyword arguments.
2015-09-29 23:52:09 +03:00
Antoine Pitrou
414e15a88d Closes #21173: Fix len() on a WeakKeyDictionary when .clear() was called with an iterator alive. 2014-10-05 20:04:06 +02:00
Antoine Pitrou
1bf974dc6e Closes #21173: Fix len() on a WeakKeyDictionary when .clear() was called with an iterator alive. 2014-10-05 20:02:28 +02:00
Serhiy Storchaka
465e60e654 Issue #22033: Reprs of most Python implemened classes now contain actual
class name instead of hardcoded one.
2014-07-25 23:36:00 +03:00
Serhiy Storchaka
0c937b3ed6 Issue #22031: Reprs now always use hexadecimal format with the "0x" prefix
when contain an id in form " at 0x...".
2014-07-22 12:14:52 +03:00
Richard Oudkerk
a81dd65940 Issue #15528: Delay importing atexit until weakref.finalize() used. 2013-06-08 16:52:29 +01:00
Richard Oudkerk
7a3dae056d Issue #15528: Add weakref.finalize to support finalization using
weakref callbacks.

This is 2e446e87ac5b except that collections/__init__.py has been
modified to import proxy from _weakref instead of weakref.  This
eliminates an import cycle which seems to cause a problem on Unix but
not Windows.
2013-05-05 23:05:00 +01:00
Richard Oudkerk
39b17c513a Backout 2e446e87ac5b; it breaks the unix buildbots. 2013-05-05 22:12:34 +01:00
Richard Oudkerk
f3593026de Issue #15528: Add weakref.finalize to support finalization using
weakref callbacks.
2013-05-05 20:59:04 +01:00
Antoine Pitrou
c3afba104a Issue #14631: Add a new :class:weakref.WeakMethod to simulate weak references to bound methods. 2012-11-17 18:57:38 +01:00
Philip Jenvey
4993cc0a5b utilize yield from 2012-10-01 12:53:43 -07:00
Antoine Pitrou
bbe2f60b3c Issue #14159: Fix the len() of weak containers (WeakSet, WeakKeyDictionary, WeakValueDictionary) to return a better approximation when some objects are dead or dying.
Moreover, the implementation is now O(1) rather than O(n).
Thanks to Yury Selivanov for reporting.
2012-03-01 16:26:35 +01:00
Georg Brandl
bd87d0862b Use booleans. 2010-12-03 07:49:09 +00:00
Antoine Pitrou
c1baa601e2 Issue #7105: Make WeakKeyDictionary and WeakValueDictionary robust against
the destruction of weakref'ed objects while iterating.
2010-01-08 17:54:23 +00:00
Antoine Pitrou
c06de477a3 Issue #6149: Fix initialization of WeakValueDictionary objects from non-empty parameters. 2009-05-30 21:04:26 +00:00
Antoine Pitrou
6e61006cc2 Merged revisions 72669 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r72669 | antoine.pitrou | 2009-05-15 18:54:52 +0200 (ven., 15 mai 2009) | 3 lines

  Issue #2116: Weak references and weak dictionaries now support copy()ing and deepcopy()ing.
........
2009-05-15 17:04:50 +00:00
Brett Cannon
663fffa4e2 Fix a circular import dependency. 2009-03-25 23:31:22 +00:00
Barry Warsaw
ecaab837b6 Committing the patch in issue 2965, so that weakref dicts have a closer
interface to normal dictionaries.  keys(), values() and items() still return
iterators instead of views, but that can be fixed later (or not).
2008-09-04 01:42:51 +00:00