mercurial/extensions.py
changeset 32343 d47d7d3bd07b
parent 32342 e5fbf9687600
child 32416 9a3e88d4a030
equal deleted inserted replaced
32342:e5fbf9687600 32343:d47d7d3bd07b
   119         ui.traceback()
   119         ui.traceback()
   120 
   120 
   121 # attributes set by registrar.command
   121 # attributes set by registrar.command
   122 _cmdfuncattrs = ('norepo', 'optionalrepo', 'inferrepo')
   122 _cmdfuncattrs = ('norepo', 'optionalrepo', 'inferrepo')
   123 
   123 
   124 def _validatecmdtable(cmdtable):
   124 def _validatecmdtable(ui, cmdtable):
   125     """Check if extension commands have required attributes"""
   125     """Check if extension commands have required attributes"""
   126     for c, e in cmdtable.iteritems():
   126     for c, e in cmdtable.iteritems():
   127         f = e[0]
   127         f = e[0]
       
   128         if getattr(f, '_deprecatedregistrar', False):
       
   129             ui.deprecwarn("cmdutil.command is deprecated, use "
       
   130                           "registrar.command to register '%s'" % c, '4.6')
   128         missing = [a for a in _cmdfuncattrs if not util.safehasattr(f, a)]
   131         missing = [a for a in _cmdfuncattrs if not util.safehasattr(f, a)]
   129         if not missing:
   132         if not missing:
   130             continue
   133             continue
   131         raise error.ProgrammingError(
   134         raise error.ProgrammingError(
   132             'missing attributes: %s' % ', '.join(missing),
   135             'missing attributes: %s' % ', '.join(missing),
   151     minver = getattr(mod, 'minimumhgversion', None)
   154     minver = getattr(mod, 'minimumhgversion', None)
   152     if minver and util.versiontuple(minver, 2) > util.versiontuple(n=2):
   155     if minver and util.versiontuple(minver, 2) > util.versiontuple(n=2):
   153         ui.warn(_('(third party extension %s requires version %s or newer '
   156         ui.warn(_('(third party extension %s requires version %s or newer '
   154                   'of Mercurial; disabling)\n') % (shortname, minver))
   157                   'of Mercurial; disabling)\n') % (shortname, minver))
   155         return
   158         return
   156     _validatecmdtable(getattr(mod, 'cmdtable', {}))
   159     _validatecmdtable(ui, getattr(mod, 'cmdtable', {}))
   157 
   160 
   158     _extensions[shortname] = mod
   161     _extensions[shortname] = mod
   159     _order.append(shortname)
   162     _order.append(shortname)
   160     for fn in _aftercallbacks.get(shortname, []):
   163     for fn in _aftercallbacks.get(shortname, []):
   161         fn(loaded=True)
   164         fn(loaded=True)