mercurial/error.py
changeset 47291 d9c71bbe20f7
parent 47290 5e736d2e9703
child 47292 5a75be916316
equal deleted inserted replaced
47290:5e736d2e9703 47291:d9c71bbe20f7
    52 
    52 
    53 
    53 
    54 class Abort(Hint, Exception):
    54 class Abort(Hint, Exception):
    55     """Raised if a command needs to print an error and exit."""
    55     """Raised if a command needs to print an error and exit."""
    56 
    56 
    57     def __init__(self, message, hint=None, detailed_exit_code=None):
    57     def __init__(
       
    58         self, message, hint=None, coarse_exit_code=None, detailed_exit_code=None
       
    59     ):
    58         # type: (bytes, Optional[bytes]) -> None
    60         # type: (bytes, Optional[bytes]) -> None
    59         self.message = message
    61         self.message = message
    60         self.hint = hint
    62         self.hint = hint
       
    63         self.coarse_exit_code = coarse_exit_code
    61         self.detailed_exit_code = detailed_exit_code
    64         self.detailed_exit_code = detailed_exit_code
    62         # Pass the message into the Exception constructor to help extensions
    65         # Pass the message into the Exception constructor to help extensions
    63         # that look for exc.args[0].
    66         # that look for exc.args[0].
    64         Exception.__init__(self, message)
    67         Exception.__init__(self, message)
    65 
    68 
   190         super(WorkerError, self).__init__(status_code)
   193         super(WorkerError, self).__init__(status_code)
   191 
   194 
   192     __bytes__ = _tobytes
   195     __bytes__ = _tobytes
   193 
   196 
   194 
   197 
   195 class InterventionRequired(Hint, Exception):
   198 class InterventionRequired(Abort):
   196     """Exception raised when a command requires human intervention."""
   199     """Exception raised when a command requires human intervention."""
   197 
   200 
   198     __bytes__ = _tobytes
   201     def __init__(self, message, hint=None):
       
   202         super(InterventionRequired, self).__init__(
       
   203             message, hint=hint, coarse_exit_code=1, detailed_exit_code=240
       
   204         )
       
   205 
       
   206     def format(self):
       
   207         # type: () -> bytes
       
   208         from .i18n import _
       
   209 
       
   210         message = _(b"%s\n") % self.message
       
   211         if self.hint:
       
   212             message += _(b"(%s)\n") % self.hint
       
   213         return message
   199 
   214 
   200 
   215 
   201 class ConflictResolutionRequired(InterventionRequired):
   216 class ConflictResolutionRequired(InterventionRequired):
   202     """Exception raised when a continuable command required merge conflict resolution."""
   217     """Exception raised when a continuable command required merge conflict resolution."""
   203 
   218