D614: registrar: make cmdtype an attribute of the function in registar.command

pulkit (Pulkit Goyal) phabricator at mercurial-scm.org
Wed Sep 13 08:34:05 EDT 2017


pulkit updated this revision to Diff 1779.
pulkit edited the summary of this revision.
pulkit retitled this revision from "directaccess: make the hiddenlevel an attribute of the function" to "registrar: make cmdtype an attribute of the function in registar.command".

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D614?vs=1731&id=1779

REVISION DETAIL
  https://phab.mercurial-scm.org/D614

AFFECTED FILES
  mercurial/dispatch.py
  mercurial/registrar.py

CHANGE DETAILS

diff --git a/mercurial/registrar.py b/mercurial/registrar.py
--- a/mercurial/registrar.py
+++ b/mercurial/registrar.py
@@ -7,6 +7,8 @@
 
 from __future__ import absolute_import
 
+from .i18n import _
+
 from . import (
     configitems,
     error,
@@ -149,9 +151,14 @@
     def _doregister(self, func, name, options=(), synopsis=None,
                     norepo=False, optionalrepo=False, inferrepo=False,
                     cmdtype=cmdtype.UNRECOVERABLE_WRITE):
+        possiblecmdtypes = set(['unrecoverable', 'recoverable', 'readonly'])
         func.norepo = norepo
         func.optionalrepo = optionalrepo
         func.inferrepo = inferrepo
+        if cmdtype not in possiblecmdtypes:
+            raise error.ProgrammingError(_("unknown cmdtype value '%s' for "
+                                            "'%s' command") % (cmdtype, name))
+        func.cmdtype = cmdtype
         if synopsis:
             self._table[name] = func, list(options), synopsis
         else:
diff --git a/mercurial/dispatch.py b/mercurial/dispatch.py
--- a/mercurial/dispatch.py
+++ b/mercurial/dispatch.py
@@ -488,7 +488,7 @@
         return aliasargs(self.fn, args)
 
     def __getattr__(self, name):
-        adefaults = {r'norepo': True,
+        adefaults = {r'norepo': True, r'cmdtype': 'unrecoverable',
                      r'optionalrepo': False, r'inferrepo': False}
         if name not in adefaults:
             raise AttributeError(name)



To: pulkit, #hg-reviewers, durham
Cc: durham, mercurial-devel


More information about the Mercurial-devel mailing list