equal
deleted
inserted
replaced
170 The number parameters is variable so we need to build that format |
170 The number parameters is variable so we need to build that format |
171 dynamically. |
171 dynamically. |
172 """ |
172 """ |
173 return '>'+('BB'*nbparams) |
173 return '>'+('BB'*nbparams) |
174 |
174 |
175 class UnknownPartError(KeyError): |
175 class BundleValueError(ValueError): |
176 """error raised when no handler is found for a Mandatory part""" |
176 """error raised when bundle2 cannot be processed |
|
177 |
|
178 Current main usecase is unsupported part types.""" |
177 pass |
179 pass |
178 |
180 |
179 class ReadOnlyPartError(RuntimeError): |
181 class ReadOnlyPartError(RuntimeError): |
180 """error raised when code tries to alter a part being generated""" |
182 """error raised when code tries to alter a part being generated""" |
181 pass |
183 pass |
305 op.ui.debug('found a handler for part %r\n' % parttype) |
307 op.ui.debug('found a handler for part %r\n' % parttype) |
306 except KeyError: |
308 except KeyError: |
307 if key != parttype: # mandatory parts |
309 if key != parttype: # mandatory parts |
308 # todo: |
310 # todo: |
309 # - use a more precise exception |
311 # - use a more precise exception |
310 raise UnknownPartError(key) |
312 raise BundleValueError(key) |
311 op.ui.debug('ignoring unknown advisory part %r\n' % key) |
313 op.ui.debug('ignoring unknown advisory part %r\n' % key) |
312 # consuming the part |
314 # consuming the part |
313 part.read() |
315 part.read() |
314 continue |
316 continue |
315 |
317 |
837 raise util.Abort(inpart.params['message'], hint=inpart.params.get('hint')) |
839 raise util.Abort(inpart.params['message'], hint=inpart.params.get('hint')) |
838 |
840 |
839 @parthandler('b2x:error:unknownpart') |
841 @parthandler('b2x:error:unknownpart') |
840 def handlereplycaps(op, inpart): |
842 def handlereplycaps(op, inpart): |
841 """Used to transmit unknown part error over the wire""" |
843 """Used to transmit unknown part error over the wire""" |
842 raise UnknownPartError(inpart.params['parttype']) |
844 raise BundleValueError(inpart.params['parttype']) |
843 |
845 |
844 @parthandler('b2x:error:pushraced') |
846 @parthandler('b2x:error:pushraced') |
845 def handlereplycaps(op, inpart): |
847 def handlereplycaps(op, inpart): |
846 """Used to transmit push race error over the wire""" |
848 """Used to transmit push race error over the wire""" |
847 raise error.ResponseError(_('push failed:'), inpart.params['message']) |
849 raise error.ResponseError(_('push failed:'), inpart.params['message']) |