Message8315

Author jayv
Recipients jayv
Date 2014-04-30.21:26:24
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1398893184.91.0.979515915396.issue2133@psf.upfronthosting.co.za>
In-reply-to
Content
Expected behavior:
defaultdict.get(key, default) should not create entries in the map when no key is found and a default is specified.

Eg:

>>> from collections import defaultdict
>>>
>>> d = defaultdict(set)
>>>
>>> d['one'] = [1]
>>>
>>> d['two']
set([])
>>>
>>> print(d)
defaultdict(<type 'set'>, {'two': set([]), 'one': [1]})
>>>
>>> d.get('three', [])
set([])
>>>
>>> print(d)
defaultdict(<type 'set'>, {'two': set([]), 'one': [1], 'three': set([])})
>>>
>>>

The map now contains an entry 'three', this is a nasty source of memory-leaks (our system had maps with millions of entries caused by this subtle bug).
History
Date User Action Args
2014-04-30 21:26:24jayvsetrecipients: + jayv
2014-04-30 21:26:24jayvsetmessageid: <1398893184.91.0.979515915396.issue2133@psf.upfronthosting.co.za>
2014-04-30 21:26:24jayvlinkissue2133 messages
2014-04-30 21:26:24jayvcreate