[MERGE] FIFOCache and FIFOSizeCache
John Arbash Meinel
john at arbash-meinel.com
Tue Dec 9 23:41:43 GMT 2008
-----BEGIN PGP SIGNED MESSAGE-----
Robert Collins wrote:
> On Tue, 2008-12-09 at 16:54 -0600, John Arbash Meinel wrote:
>> That would optimize for the case where you are replacing items, rather
>> than optimizing for the case where add is called when the item is not
> Well, I wasn't trying to change the optimisation at all.
>> It is hard to say what the most common case is, but I would guess that
>> most caches are only used for things that won't actually mutate, so I
>> would rather optimize for that case.
>> Or are you just trying to change the semantics of "del fifo[foo]" into
>> "fifo.discard(foo)" [which doesn't raise if foo doesn't exist]?
> if moved into __delitem__ I was expecting
> if key not in self:
> raise KeyError(key)
>> I'm willing to change it, but I think I have it written the correct
> It just seems duplicative.
Writing it this way allows us to not have to raise and then catch
KeyError in the common case that key is not in self. I'm presuming that
it is a more common case than key is in self which wouldn't raise the
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
-----END PGP SIGNATURE-----
More information about the bazaar