# HG changeset patch # User Sean Farley # Date 2015-01-15 03:55:20 # Node ID 9ef23402166717cba31b3eb265db058528355ebd # Parent 9f48242929a9a6824e62927c440e4707f2ba1e68 namespaces: use named args for namespace api This is just a style change but makes adding new arguments more robust for callers. diff --git a/mercurial/namespaces.py b/mercurial/namespaces.py --- a/mercurial/namespaces.py +++ b/mercurial/namespaces.py @@ -22,27 +22,27 @@ class namespaces(object): def __init__(self): self._names = util.sortdict() - # shorten the class name for less indentation - ns = namespace - # we need current mercurial named objects (bookmarks, tags, and # branches) to be initialized somewhere, so that place is here - n = ns("bookmarks", "bookmark", - lambda repo: repo._bookmarks.keys(), - lambda repo, name: tolist(repo._bookmarks.get(name)), - lambda repo, name: repo.nodebookmarks(name)) + bmknames = lambda repo: repo._bookmarks.keys() + bmknamemap = lambda repo, name: tolist(repo._bookmarks.get(name)) + bmknodemap = lambda repo, name: repo.nodebookmarks(name) + n = namespace("bookmarks", templatename="bookmark", listnames=bmknames, + namemap=bmknamemap, nodemap=bmknodemap) self.addnamespace(n) - n = ns("tags", "tag", - lambda repo: [t for t, n in repo.tagslist()], - lambda repo, name: tolist(repo._tagscache.tags.get(name)), - lambda repo, name: repo.nodetags(name)) + tagnames = lambda repo: [t for t, n in repo.tagslist()] + tagnamemap = lambda repo, name: tolist(repo._tagscache.tags.get(name)) + tagnodemap = lambda repo, name: repo.nodetags(name) + n = namespace("tags", templatename="tag", listnames=tagnames, + namemap=tagnamemap, nodemap=tagnodemap) self.addnamespace(n) - n = ns("branches", "branch", - lambda repo: repo.branchmap().keys(), - lambda repo, name: tolist(repo.branchtip(name, True)), - lambda repo, node: [repo[node].branch()]) + bnames = lambda repo: repo.branchmap().keys() + bnamemap = lambda repo, name: tolist(repo.branchtip(name, True)) + bnodemap = lambda repo, node: [repo[node].branch()] + n = namespace("branches", templatename="branch", listnames=bnames, + namemap=bnamemap, nodemap=bnodemap) self.addnamespace(n) def __getitem__(self, namespace): diff --git a/tests/test-log.t b/tests/test-log.t --- a/tests/test-log.t +++ b/tests/test-log.t @@ -1567,12 +1567,13 @@ Check that adding an arbitrary name show > > def reposetup(ui, repo): > foo = {'foo': repo[0].node()} - > ns = namespace("bars", "bar", - > lambda r: foo.keys(), - > lambda r, name: foo.get(name), - > lambda r, node: [name for name, n - > in foo.iteritems() - > if n == node]) + > names = lambda r: foo.keys() + > namemap = lambda r, name: foo.get(name) + > nodemap = lambda r, node: [name for name, n in foo.iteritems() + > if n == node] + > ns = namespace("bars", templatename="bar", listnames=names, + > namemap=namemap, nodemap=nodemap) + > > repo.names.addnamespace(ns) > EOF