[issue15412] Note in documentation for weakrefs

2012-08-17 Thread Roundup Robot

Roundup Robot added the comment:

New changeset 78b0f294674c by Richard Oudkerk in branch '2.7':
Issue #15412: Remove erroneous note about weakrefs
http://hg.python.org/cpython/rev/78b0f294674c

New changeset 24b13be81d61 by Richard Oudkerk in branch '3.2':
Issue #15412: Remove erroneous note about weakrefs
http://hg.python.org/cpython/rev/24b13be81d61

--
nosy: +python-dev

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue15412
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue15412] Note in documentation for weakrefs

2012-08-17 Thread Richard Oudkerk

Changes by Richard Oudkerk shibt...@gmail.com:


--
resolution:  - fixed
stage:  - committed/rejected
status: open - closed

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue15412
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue15412] Note in documentation for weakrefs

2012-07-21 Thread Richard Oudkerk

New submission from Richard Oudkerk shibt...@gmail.com:

In the documentation on weakrefs there is the following quote

Note: Weak references to an object are cleared before the object’s
__del__() is called, to ensure that the weak reference callback 
(if any) finds the object still alive.

But I think the weakref is always dead by the time the callback is invoked.  
The first paragraph from the documentation for weakref.ref(object[, callback]) 
contains the following:

If callback is provided and not None, and the returned weakref 
object is still alive, the callback will be called when the object 
is about to be finalized; the weak reference object will be passed 
as the only parameter to the callback; **the referent will no longer 
be available**.

Which does prompt a question: what use is there for the weakref argument to the 
callback if it already dead?

(Compare http://bugs.python.org/issue14933)

--
assignee: docs@python
components: Documentation
messages: 166002
nosy: docs@python, pitrou, sbt
priority: normal
severity: normal
status: open
title: Note in documentation for weakrefs

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue15412
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue15412] Note in documentation for weakrefs

2012-07-21 Thread Antoine Pitrou

Antoine Pitrou pit...@free.fr added the comment:

 In the documentation on weakrefs there is the following quote
 
 Note: Weak references to an object are cleared before the object’s
 __del__() is called, to ensure that the weak reference callback 
 (if any) finds the object still alive.
 
 But I think the weakref is always dead by the time the callback is
 invoked.

It's true, the doc needs fixing.

 Which does prompt a question: what use is there for the weakref
 argument to the callback if it already dead?

The weakref is dead but it's still a weakref, and it can be used to
e.g. index a container of existing weakrefs (cf. WeakSet,
WeakKeyDictionary, WeakValueDictionary).

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue15412
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue15412] Note in documentation for weakrefs

2012-07-21 Thread Richard Oudkerk

Richard Oudkerk shibt...@gmail.com added the comment:

 The weakref is dead but it's still a weakref, and it can be used to
 e.g. index a container of existing weakrefs (cf. WeakSet,
 WeakKeyDictionary, WeakValueDictionary).

Ah.

I had assumed that since dead weakrefs were unhashable you couldn't safely use 
them as keys in a dict.  (Presumably removal of a no longer hashable key from a 
dict is O(n)?)

I also hadn't realize that weakrefs were subclassable.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue15412
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue15412] Note in documentation for weakrefs

2012-07-21 Thread Antoine Pitrou

Antoine Pitrou pit...@free.fr added the comment:

 I had assumed that since dead weakrefs were unhashable you couldn't
 safely use them as keys in a dict.  (Presumably removal of a no longer
 hashable key from a dict is O(n)?)

They are unhashable if you didn't hash them alive. Otherwise they retain
their old hash value (which is quite useful :-)).

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue15412
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com