# HG changeset patch # User Sean Farley # Date 1419195984 28800 # Node ID 42908c3275c63b7d2d6c871094c1e2c8f7ba31c8 # Parent d8663e6153c17c7a037fdf65b6c4d57f65939ac9 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 -r d8663e6153c1 -r 42908c3275c6 mercurial/namespaces.py --- 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)