namespaces: update documentation and code indentation
The previous patch changed just the functionality, while this patch focuses on
the documentation and indentation to keep review simple.
--- a/mercurial/namespaces.py Fri Dec 19 17:27:20 2014 -0800
+++ b/mercurial/namespaces.py Sun Dec 21 13:06:24 2014 -0800
@@ -12,26 +12,9 @@
return [val]
class namespaces(object):
- """
- provides an interface to register a generic many-to-many mapping between
- some (namespaced) names and nodes. The goal here is to control the
- pollution of jamming things into tags or bookmarks (in extension-land) and
- to simplify internal bits of mercurial: log output, tab completion, etc.
-
- More precisely, we define a list of names (the namespace), a mapping of
- names to nodes, and a mapping from nodes to names. Each mapping
- returns a list of nodes.
+ """provides an interface to register and operate on multiple namespaces. See
+ the namespace class below for details on the namespace object.
- Furthermore, each name mapping will be passed a name to lookup which might
- not be in its domain. In this case, each method should return an empty list
- and not raise an error.
-
- We'll have a dictionary '_names' where each key is a namespace and
- its value is a dictionary of functions:
- 'templatename': name to use for templating (usually the singular form
- of the plural namespace name)
- 'namemap': function that takes a name and returns a list of nodes
- 'nodemap': function that takes a node and returns a list of names
"""
_names_version = 0
@@ -45,30 +28,27 @@
# 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, name: tolist(repo._bookmarks.get(name)),
- lambda repo, name: repo.nodebookmarks(name))
+ lambda repo, name: tolist(repo._bookmarks.get(name)),
+ lambda repo, name: repo.nodebookmarks(name))
self.addnamespace(n)
n = ns("tags", "tag",
- lambda repo, name: tolist(repo._tagscache.tags.get(name)),
- lambda repo, name: repo.nodetags(name))
+ lambda repo, name: tolist(repo._tagscache.tags.get(name)),
+ lambda repo, name: repo.nodetags(name))
self.addnamespace(n)
n = ns("branches", "branch",
- lambda repo, name: tolist(repo.branchtip(name)),
- lambda repo, node: [repo[node].branch()])
+ lambda repo, name: tolist(repo.branchtip(name)),
+ lambda repo, node: [repo[node].branch()])
self.addnamespace(n)
def addnamespace(self, namespace, order=None):
- """
- register a namespace
+ """register a namespace
namespace: the name to be registered (in plural form)
- templatename: the name to use for templating
- namemap: function that inputs a node, output name(s)
- nodemap: function that inputs a name, output node(s)
order: optional argument to specify the order of namespaces
(e.g. 'branches' should be listed before 'bookmarks')
+
"""
if order is not None:
self._names.insert(order, namespace.name, namespace)