mercurial/bundle2.py
changeset 21626 985d139c8e8f
parent 21625 511f5fa63aa2
child 21627 3e8bcc90f07c
equal deleted inserted replaced
21625:511f5fa63aa2 21626:985d139c8e8f
   292         for part in iterparts:
   292         for part in iterparts:
   293             parttype = part.type
   293             parttype = part.type
   294             # part key are matched lower case
   294             # part key are matched lower case
   295             key = parttype.lower()
   295             key = parttype.lower()
   296             try:
   296             try:
   297                 handler = parthandlermapping[key]
   297                 handler = parthandlermapping.get(key)
       
   298                 if handler is None:
       
   299                     raise error.BundleValueError(parttype=key)
   298                 op.ui.debug('found a handler for part %r\n' % parttype)
   300                 op.ui.debug('found a handler for part %r\n' % parttype)
   299             except KeyError:
   301                 unknownparams = part.mandatorykeys - handler.params
       
   302                 if unknownparams:
       
   303                     unknownparams = list(unknownparams)
       
   304                     unknownparams.sort()
       
   305                     raise error.BundleValueError(parttype=key,
       
   306                                                    params=unknownparams)
       
   307             except error.BundleValueError, exc:
   300                 if key != parttype: # mandatory parts
   308                 if key != parttype: # mandatory parts
   301                     # todo:
   309                     raise
   302                     # - use a more precise exception
   310                 op.ui.debug('ignoring unsupported advisory part %s\n' % exc)
   303                     raise error.BundleValueError(parttype=key)
       
   304                 op.ui.debug('ignoring unknown advisory part %r\n' % key)
       
   305                 # consuming the part
   311                 # consuming the part
   306                 part.read()
   312                 part.read()
   307                 continue
   313                 continue
   308 
   314 
   309             unknownparams = part.mandatorykeys - handler.params
       
   310             if unknownparams:
       
   311                 unknownparams = list(unknownparams)
       
   312                 unknownparams.sort()
       
   313                 raise error.BundleValueError(parttype=key, params=unknownparams)
       
   314 
   315 
   315             # handler is called outside the above try block so that we don't
   316             # handler is called outside the above try block so that we don't
   316             # risk catching KeyErrors from anything other than the
   317             # risk catching KeyErrors from anything other than the
   317             # parthandlermapping lookup (any KeyError raised by handler()
   318             # parthandlermapping lookup (any KeyError raised by handler()
   318             # itself represents a defect of a different variety).
   319             # itself represents a defect of a different variety).