[BUG] function argument set to an object
Luke Kenneth Casson Leighton
lkcl at lkcl.net
Mon Dec 19 07:06:17 GMT 2016
aiyaaa! mustn't do this! it's the "pattern" for a singleton:
LocalStatusSQLite.py (and probably LocalStatus.py as well):
def savemessage(self, uid, content, flags, rtime, mtime=0, labels=set()):
example:
>>> def singleton(val, x = set()):
... x.add(val)
... return x
...
>>> singleton(5)
set([5])
>>> singleton(7)
set([5, 7])
baad, veryverybaad :) so, any time that labels are used, if you
happen *not* to have that last argument in calling savemessage but
there are instances where it is, things go horribly badly wrong
because the labels= argument ends up STORING prior labels in that
set()...
must do this instead:
>>> def notasingleton(val, x=None):
... if x is None:
... x = set()
... x.add(val)
... return x
...
>>> notasingleton(5)
set([5])
>>> notasingleton(7)
set([7])
>>> y = set()
>>> notasingleton(7, y)
set([7])
>>> notasingleton(5, y)
set([5, 7])
will submit a patch later, am in the middle of the first lmdb revision.
l.
--
-- http://crowdsupply.com/eoma68 eco-conscious computing
More information about the OfflineIMAP-project
mailing list