[issue30100] WeakSet should allow discard and remove on items that can't have weak references

Raymond Hettinger report at bugs.python.org
Mon Mar 26 23:24:05 EDT 2018


Raymond Hettinger <raymond.hettinger at gmail.com> added the comment:

> my original motivating case was objects that are hashable but not weakly referenceable.  

It is probably not good design to extend discard() to handle types that aren't handled by the other methods.  To me, it isn't at all surprising that the business of a WeakSet is to handle objects that are both hashable and weak referenceable.  Muddying those waters may do more harm than good.  My recommendation is to decline the feature request.

One other thought.  As the Python world starts to encourage type annotations and static type checking, one benefit we would hope for is code with cleaner matches between the caller and callee signatures.  Accordingly, we shouldn't encourage people to write code with odd signatures:
  
    x : thing_that_cant_possibly_be_in_the_weakset
    some_weakset.discard(x)  # Someday, we might hope this would be flagged

----------
status: pending -> open
type:  -> enhancement
versions: +Python 3.8

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue30100>
_______________________________________


More information about the Python-bugs-list mailing list