Mercurial > python-hglib
diff hglib/client.py @ 176:3f854e3bcdd1 2.2
client: raise KeyError from __getitem__ (BC)
object.__getitem__ is supposed to raise either IndexError or KeyError
(depending on whether the thing is a sequence or a mapping). Before,
we would raise ValueError because that's what the context constructor
raises.
I choose to raise KeyError because IndexError felt a bit too limiting.
This does sacrifice some magic with for loops handling IndexError.
However, iteration of this object should be handled by a custom
__iter__, so I don't think this is a problem.
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Wed, 06 Jul 2016 14:14:22 -0700 |
parents | c16e2087660f |
children | 77a5fded9f45 |
line wrap: on
line diff
--- a/hglib/client.py Wed Jul 06 14:11:02 2016 -0700 +++ b/hglib/client.py Wed Jul 06 14:14:22 2016 -0700 @@ -1631,7 +1631,10 @@ return self._version def __getitem__(self, changeid): - return context.changectx(self, changeid) + try: + return context.changectx(self, changeid) + except ValueError as e: + raise KeyError(*e.args) def __contains__(self, changeid): """