# HG changeset patch # User Jordi GutiƩrrez Hermoso # Date 1432240086 14400 # Node ID 821e664924dcaa8bdd1e559ebcf55363a6c87655 # Parent f2b98dacb37ddd6713b11a1a871fcdbbc5fd8bb2 error: refactor common hint-pattern into a common base class I'm about to make another exception class require hints, so third strike and you refactor. diff -r f2b98dacb37d -r 821e664924dc mercurial/error.py --- a/mercurial/error.py Fri May 22 11:50:57 2015 -0500 +++ b/mercurial/error.py Thu May 21 16:28:06 2015 -0400 @@ -13,6 +13,11 @@ # Do not import anything here, please +class HintException(Exception): + def __init__(self, *args, **kw): + Exception.__init__(self, *args) + self.hint = kw.get('hint') + class RevlogError(Exception): pass @@ -46,11 +51,9 @@ class InterventionRequired(Exception): """Exception raised when a command requires human intervention.""" -class Abort(Exception): +class Abort(HintException): """Raised if a command needs to print an error and exit.""" - def __init__(self, *args, **kw): - Exception.__init__(self, *args) - self.hint = kw.get('hint') + pass class HookAbort(Abort): """raised when a validation hook fails, aborting an operation @@ -80,10 +83,8 @@ self.function = function self.symbols = symbols -class RepoError(Exception): - def __init__(self, *args, **kw): - Exception.__init__(self, *args) - self.hint = kw.get('hint') +class RepoError(HintException): + pass class RepoLookupError(RepoError): pass