changeset 23718:42908c3275c6

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.
author Sean Farley <sean.michael.farley@gmail.com>
date Sun, 21 Dec 2014 13:06:24 -0800
parents d8663e6153c1
children 34364a4b25eb
files mercurial/namespaces.py
diffstat 1 files changed, 10 insertions(+), 30 deletions(-) [+]
line wrap: on
line diff
--- 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)