# HG changeset patch # User Yuya Nishihara # Date 1468240802 -32400 # Node ID 19205a0e2bf17d6d05e0897e77825e0305bae99a # Parent 945b4c14c5706d74289cf72456e95c416fcb3f27 error: make hintable exceptions reject unknown keyword arguments (API) Previously they would accept any typos of the hint keyword. diff -r 945b4c14c570 -r 19205a0e2bf1 mercurial/error.py --- a/mercurial/error.py Sat Jul 09 14:28:30 2016 +0900 +++ b/mercurial/error.py Mon Jul 11 21:40:02 2016 +0900 @@ -18,12 +18,12 @@ class Hint(object): """Mix-in to provide a hint of an error - This should come first in the inheritance list to consume **kw and pass - only *args to the exception class. + This should come first in the inheritance list to consume a hint and + pass remaining arguments to the exception class. """ def __init__(self, *args, **kw): - super(Hint, self).__init__(*args) - self.hint = kw.get('hint') + self.hint = kw.pop('hint', None) + super(Hint, self).__init__(*args, **kw) class RevlogError(Hint, Exception): pass diff -r 945b4c14c570 -r 19205a0e2bf1 mercurial/subrepo.py --- a/mercurial/subrepo.py Sat Jul 09 14:28:30 2016 +0900 +++ b/mercurial/subrepo.py Mon Jul 11 21:40:02 2016 +0900 @@ -56,9 +56,9 @@ class SubrepoAbort(error.Abort): """Exception class used to avoid handling a subrepo error more than once""" def __init__(self, *args, **kw): + self.subrepo = kw.pop('subrepo', None) + self.cause = kw.pop('cause', None) error.Abort.__init__(self, *args, **kw) - self.subrepo = kw.get('subrepo') - self.cause = kw.get('cause') def annotatesubrepoerror(func): def decoratedmethod(self, *args, **kargs):