error: refactor common hint-pattern into a common base class
authorJordi Gutiérrez Hermoso <jordigh@octave.org>
Thu, 21 May 2015 16:28:06 -0400
changeset 25248 821e664924dc
parent 25247 f2b98dacb37d
child 25249 4311e78a4609
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.
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