changeset 28893:ee11167fe1da

parser: extract helper that creates a dict of aliases This will be common between revset and templater. The local variable 'alias' is renamed to 'a' to avoid shadowing the global 'alias' class.
author Yuya Nishihara <yuya@tcha.org>
date Mon, 29 Feb 2016 19:24:15 +0900
parents 0c135f37c6f8
children 0f59674dc9ff
files mercurial/parser.py mercurial/revset.py
diffstat 2 files changed, 11 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/parser.py	Mon Feb 29 18:33:30 2016 +0900
+++ b/mercurial/parser.py	Mon Feb 29 19:24:15 2016 +0900
@@ -462,3 +462,13 @@
         if err:
             err = efmt % {'section': cls._section, 'name': name, 'error': err}
         return alias(name, tree, args, err, repl)
+
+    @classmethod
+    def buildmap(cls, items):
+        """Parse a list of alias (name, replacement) pairs into a dict of
+        alias objects"""
+        aliases = {}
+        for decl, defn in items:
+            a = cls.build(decl, defn)
+            aliases[a.name] = a
+        return aliases
--- a/mercurial/revset.py	Mon Feb 29 18:33:30 2016 +0900
+++ b/mercurial/revset.py	Mon Feb 29 19:24:15 2016 +0900
@@ -2320,10 +2320,7 @@
     return result
 
 def findaliases(ui, tree, showwarning=None):
-    aliases = {}
-    for k, v in ui.configitems('revsetalias'):
-        alias = _aliasrules.build(k, v)
-        aliases[alias.name] = alias
+    aliases = _aliasrules.buildmap(ui.configitems('revsetalias'))
     tree = _expandaliases(aliases, tree, [], {})
     if showwarning:
         # warn about problematic (but not referred) aliases