Pablo Galindo
96074de573
bpo-40523: Add pass-throughs for hash() and reversed() to weakref.proxy objects (GH-19946)
2020-05-05 22:58:19 +01:00
Curtis Bucher
8f1ed21ecf
bpo-36144: Add union operators to WeakValueDictionary584 ( #19127 )
2020-03-24 18:51:29 -07:00
Curtis Bucher
25e580a73c
bpo-36144: Add union operators to WeakKeyDictionary ( #19106 )
2020-03-23 13:49:46 -07:00
Victor Stinner
c6e5c1123b
bpo-39489: Remove COUNT_ALLOCS special build (GH-18259)
...
Remove:
* COUNT_ALLOCS macro
* sys.getcounts() function
* SHOW_ALLOC_COUNT code in listobject.c
* SHOW_TRACK_COUNT code in tupleobject.c
* PyConfig.show_alloc_count field
* -X showalloccount command line option
* @test.support.requires_type_collecting decorator
2020-02-03 15:17:15 +01:00
Pablo Galindo
10cd00a9e3
bpo-38395: Fix ownership in weakref.proxy methods (GH-16632)
...
The implementation of weakref.proxy's methods call back into the Python
API using a borrowed references of the weakly referenced object
(acquired via PyWeakref_GET_OBJECT). This API call may delete the last
reference to the object (either directly or via GC), leaving a dangling
pointer, which can be subsequently dereferenced.
To fix this, claim a temporary ownership of the referenced object when
calling the appropriate method. Some functions because at the moment they
do not need to access the borrowed referent, but to protect against
future changes to these functions, ownership need to be fixed in
all potentially affected methods.
2019-10-08 16:30:50 +01:00
Victor Stinner
a2af05a0d3
bpo-38006: Avoid closure in weakref.WeakValueDictionary (GH-15641)
...
weakref.WeakValueDictionary defines a local remove() function used as
callback for weak references. This function was created with a
closure. Modify the implementation to avoid the closure.
2019-09-09 16:55:58 +02:00
Serhiy Storchaka
662db125cd
bpo-37685: Fixed __eq__, __lt__ etc implementations in some classes. (GH-14952)
...
They now return NotImplemented for unsupported type of the other operand.
2019-08-08 08:42:54 +03:00
Serhiy Storchaka
142566c028
[3.9] bpo-37116: Use PEP 570 syntax for positional-only parameters. (GH-12620)
...
Turn deprecation warnings added in 3.8 into TypeError.
2019-06-05 18:22:31 +03:00
Mark Dickinson
7abb6c05af
bpo-36669: add matmul support to weakref.proxy (GH-12932)
2019-04-26 15:56:15 +09:00
Serhiy Storchaka
42a139ed88
bpo-36492: Deprecate passing some arguments as keyword arguments. (GH-12637)
...
Deprecated passing the following arguments as keyword arguments:
- "func" in functools.partialmethod(), weakref.finalize(),
profile.Profile.runcall(), cProfile.Profile.runcall(),
bdb.Bdb.runcall(), trace.Trace.runfunc() and
curses.wrapper().
- "function" in unittest.addModuleCleanup() and
unittest.TestCase.addCleanup().
- "fn" in the submit() method of concurrent.futures.ThreadPoolExecutor
and concurrent.futures.ProcessPoolExecutor.
- "callback" in contextlib.ExitStack.callback(),
contextlib.AsyncExitStack.callback() and
contextlib.AsyncExitStack.push_async_callback().
- "c" and "typeid" in the create() method of multiprocessing.managers.Server
and multiprocessing.managers.SharedMemoryServer.
- "obj" in weakref.finalize().
Also allowed to pass arbitrary keyword arguments (even "self" and "func")
if the above arguments are passed as positional argument.
2019-04-01 09:16:35 +03:00
Fish
96d37dbcd2
bpo-35615: Fix crashes when copying a Weak{Key,Value}Dictionary. (GH-11384)
...
Protect dict iterations by wrapping them with _IterationGuard in the
following methods:
- WeakValueDictionary.copy()
- WeakValueDictionary.__deepcopy__()
- WeakKeyDictionary.copy()
- WeakKeyDictionary.__deepcopy__()
2019-02-07 19:51:59 +00:00
Leo Arias
c3d9508ff2
bpo-32746: Fix multiple typos (GH-5144)
...
Fix typos found by codespell in docs, docstrings, and comments.
2018-02-03 19:36:10 -05:00
Antoine Pitrou
a6a4dc816d
bpo-31370: Remove support for threads-less builds ( #3385 )
...
* Remove Setup.config
* Always define WITH_THREAD for compatibility.
2017-09-07 18:56:24 +02:00
Antoine Pitrou
d741ed492f
Issue #28427 : old keys should not remove new values from
...
WeakValueDictionary when collecting from another thread.
2016-12-27 14:23:43 +01: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
d4580ecb8d
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:58:14 +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
Benjamin Peterson
804480912c
merge 3.5 ( #26617 )
2016-10-04 00:00:23 -07:00
Benjamin Peterson
8f657c35b9
ensure gc tracking is off when invoking weakref callbacks ( closes #26617 )
2016-10-04 00:00:02 -07:00
Victor Stinner
742da040db
Implement compact dict
...
Issue #27350 : `dict` implementation is changed like PyPy. It is more compact
and preserves insertion order.
_PyDict_Dummy() function has been removed.
Disable test_gdb: python-gdb.py is not updated yet to the new structure of
compact dictionaries (issue #28023 ).
Patch written by INADA Naoki.
2016-09-07 17:40:12 -07:00
Gregory P. Smith ext:(%20%5BGoogle%20Inc.%5D)
cd14d5d299
Correct a comment in the test referencing the wrong issue number (issue3100
...
is correct, not 3110).
2016-09-07 00:22:22 +00:00
Serhiy Storchaka
a793037d80
Issue #19527 : Fixed tests with defined COUNT_ALLOCS.
2016-07-03 22:27:26 +03:00
Serhiy Storchaka
21eb48764c
Issue #17765 : weakref.ref() no longer silently ignores keyword arguments.
...
Patch by Georg Brandl.
2016-05-07 15:41:09 +03:00
Martin Panter
2eb819f7a8
Issue #25523 : Merge "a" to "an" fixes from 3.4 into 3.5
2015-11-02 04:04:57 +00:00
Martin Panter
7462b64911
Issue #25523 : Correct "a" article to "an" article
...
This changes the main documentation, doc strings, source code comments, and a
couple error messages in the test suite. In some cases the word was removed
or edited some other way to fix the grammar.
2015-11-02 03:37:02 +00: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
Berker Peksag
ce643913a9
Issue #9517 : Move script_helper to the support package.
...
Patch by Christie Wilson.
2015-05-06 06:33:17 +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
Benjamin Peterson
d475731c54
merge 3.4 ( #22267 )
2014-08-24 18:04:25 -05:00
Benjamin Peterson
18bb702182
fix some test_weakref tests to not rely on ref-counting ( closes #22267 )
2014-08-24 18:02:15 -05:00
Antoine Pitrou
b349e4c929
Issue #22116 : C functions and methods (of the 'builtin_function_or_method' type) can now be weakref'ed. Patch by Wei Wu.
2014-08-06 19:31:40 -04: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
Serhiy Storchaka
c1fc5b50a0
Issue #19607 : Use specific asserts in weakref tests.
2013-11-17 13:20:39 +02:00
Serhiy Storchaka
2e29c9e1c2
Issue #19607 : Use specific asserts in weakref tests.
2013-11-17 13:20:09 +02: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
Mark Dickinson
556e94b8fe
Issue #17643 : Add __callback__ attribute to weakref.ref.
2013-04-13 15:45:44 +01:00
Antoine Pitrou
53f604c794
Issue #16602 : When a weakref's target was part of a long deallocation chain, the object could remain reachable through its weakref even though its refcount had dropped to zero.
...
Thanks to Eugene Toder for diagnosing and reporting the issue.
2012-12-08 21:18:50 +01:00
Antoine Pitrou
62a0d6ea40
Issue #16602 : When a weakref's target was part of a long deallocation chain, the object could remain reachable through its weakref even though its refcount had dropped to zero.
...
Thanks to Eugene Toder for diagnosing and reporting the issue.
2012-12-08 21:15:26 +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
Antoine Pitrou
e11fecb5a9
Issue #16453 : Fix equality testing of dead weakref objects.
...
Also add tests for ordering and hashing.
2012-11-11 19:36:51 +01: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
Antoine Pitrou
3af01a1579
NOTE: only ported the test for new-style classes.
...
Merged revisions 79535 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r79535 | antoine.pitrou | 2010-03-31 23:32:15 +0200 (mer., 31 mars 2010) | 5 lines
Issue #8268 : Old-style classes (not just instances) now support weak
references.
........
2010-03-31 21:40:47 +00:00
Ezio Melotti
b58e0bd8bb
use assert[Not]In where appropriate
2010-01-23 15:40:09 +00:00
Benjamin Peterson
577473fe68
use assert[Not]In where appropriate
...
A patch from Dave Malcolm.
2010-01-19 00:09:57 +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
Benjamin Peterson
32019774b9
fix __bytes__ handling here in py3x
...
Merged revisions 76395 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r76395 | benjamin.peterson | 2009-11-18 21:00:02 -0600 (Wed, 18 Nov 2009) | 1 line
#5037 proxy __unicode__ correctly
........
2009-11-19 03:08:32 +00:00