[PATCH 4 of 4] namespaces: update documentation and code indentation

Sean Farley sean.michael.farley at gmail.com
Wed Dec 31 19:17:38 CST 2014


# HG changeset patch
# User Sean Farley <sean.michael.farley at gmail.com>
# Date 1419195984 28800
#      Sun Dec 21 13:06:24 2014 -0800
# Node ID 67fa155e2ffba23f5828e63e270508ed5ad30a83
# Parent  5e57375149bd835b636859bcfbfecdea5433c7b8
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.

diff --git a/mercurial/namespaces.py b/mercurial/namespaces.py
--- a/mercurial/namespaces.py
+++ b/mercurial/namespaces.py
@@ -10,30 +10,13 @@ def tolist(val):
         return []
     else:
         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.
+    """provides an interface to register and operate on multiple namespaces. See
+    the namespace class below for details on the namespace object.
 
-    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.
-
-    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
 
     def __init__(self):
@@ -43,34 +26,31 @@ class namespaces(object):
         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, 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)
         else:
             self._names[namespace.name] = namespace


More information about the Mercurial-devel mailing list