Mercurial > public > mercurial-scm > hg
comparison mercurial/namespaces.py @ 43076:2372284d9457
formatting: blacken the codebase
This is using my patch to black
(https://github.com/psf/black/pull/826) so we don't un-wrap collection
literals.
Done with:
hg files 'set:**.py - mercurial/thirdparty/** - "contrib/python-zstandard/**"' | xargs black -S
# skip-blame mass-reformatting only
# no-check-commit reformats foo_bar functions
Differential Revision: https://phab.mercurial-scm.org/D6971
author | Augie Fackler <augie@google.com> |
---|---|
date | Sun, 06 Oct 2019 09:45:02 -0400 |
parents | 4c0683655599 |
children | 687b865b95ad |
comparison
equal
deleted
inserted
replaced
43075:57875cf423c9 | 43076:2372284d9457 |
---|---|
5 registrar, | 5 registrar, |
6 templatekw, | 6 templatekw, |
7 util, | 7 util, |
8 ) | 8 ) |
9 | 9 |
10 | |
10 def tolist(val): | 11 def tolist(val): |
11 """ | 12 """ |
12 a convenience method to return an empty list instead of None | 13 a convenience method to return an empty list instead of None |
13 """ | 14 """ |
14 if val is None: | 15 if val is None: |
15 return [] | 16 return [] |
16 else: | 17 else: |
17 return [val] | 18 return [val] |
19 | |
18 | 20 |
19 class namespaces(object): | 21 class namespaces(object): |
20 """provides an interface to register and operate on multiple namespaces. See | 22 """provides an interface to register and operate on multiple namespaces. See |
21 the namespace class below for details on the namespace object. | 23 the namespace class below for details on the namespace object. |
22 | 24 |
31 # we need current mercurial named objects (bookmarks, tags, and | 33 # we need current mercurial named objects (bookmarks, tags, and |
32 # branches) to be initialized somewhere, so that place is here | 34 # branches) to be initialized somewhere, so that place is here |
33 bmknames = lambda repo: repo._bookmarks.keys() | 35 bmknames = lambda repo: repo._bookmarks.keys() |
34 bmknamemap = lambda repo, name: tolist(repo._bookmarks.get(name)) | 36 bmknamemap = lambda repo, name: tolist(repo._bookmarks.get(name)) |
35 bmknodemap = lambda repo, node: repo.nodebookmarks(node) | 37 bmknodemap = lambda repo, node: repo.nodebookmarks(node) |
36 n = namespace("bookmarks", templatename="bookmark", | 38 n = namespace( |
37 logfmt=columns['bookmark'], | 39 "bookmarks", |
38 listnames=bmknames, | 40 templatename="bookmark", |
39 namemap=bmknamemap, nodemap=bmknodemap, | 41 logfmt=columns['bookmark'], |
40 builtin=True) | 42 listnames=bmknames, |
43 namemap=bmknamemap, | |
44 nodemap=bmknodemap, | |
45 builtin=True, | |
46 ) | |
41 self.addnamespace(n) | 47 self.addnamespace(n) |
42 | 48 |
43 tagnames = lambda repo: [t for t, n in repo.tagslist()] | 49 tagnames = lambda repo: [t for t, n in repo.tagslist()] |
44 tagnamemap = lambda repo, name: tolist(repo._tagscache.tags.get(name)) | 50 tagnamemap = lambda repo, name: tolist(repo._tagscache.tags.get(name)) |
45 tagnodemap = lambda repo, node: repo.nodetags(node) | 51 tagnodemap = lambda repo, node: repo.nodetags(node) |
46 n = namespace("tags", templatename="tag", | 52 n = namespace( |
47 logfmt=columns['tag'], | 53 "tags", |
48 listnames=tagnames, | 54 templatename="tag", |
49 namemap=tagnamemap, nodemap=tagnodemap, | 55 logfmt=columns['tag'], |
50 deprecated={'tip'}, | 56 listnames=tagnames, |
51 builtin=True) | 57 namemap=tagnamemap, |
58 nodemap=tagnodemap, | |
59 deprecated={'tip'}, | |
60 builtin=True, | |
61 ) | |
52 self.addnamespace(n) | 62 self.addnamespace(n) |
53 | 63 |
54 bnames = lambda repo: repo.branchmap().keys() | 64 bnames = lambda repo: repo.branchmap().keys() |
55 bnamemap = lambda repo, name: tolist(repo.branchtip(name, True)) | 65 bnamemap = lambda repo, name: tolist(repo.branchtip(name, True)) |
56 bnodemap = lambda repo, node: [repo[node].branch()] | 66 bnodemap = lambda repo, node: [repo[node].branch()] |
57 n = namespace("branches", templatename="branch", | 67 n = namespace( |
58 logfmt=columns['branch'], | 68 "branches", |
59 listnames=bnames, | 69 templatename="branch", |
60 namemap=bnamemap, nodemap=bnodemap, | 70 logfmt=columns['branch'], |
61 builtin=True) | 71 listnames=bnames, |
72 namemap=bnamemap, | |
73 nodemap=bnodemap, | |
74 builtin=True, | |
75 ) | |
62 self.addnamespace(n) | 76 self.addnamespace(n) |
63 | 77 |
64 def __getitem__(self, namespace): | 78 def __getitem__(self, namespace): |
65 """returns the namespace object""" | 79 """returns the namespace object""" |
66 return self._names[namespace] | 80 return self._names[namespace] |
87 self._names[namespace.name] = namespace | 101 self._names[namespace.name] = namespace |
88 | 102 |
89 # we only generate a template keyword if one does not already exist | 103 # we only generate a template keyword if one does not already exist |
90 if namespace.name not in templatekw.keywords: | 104 if namespace.name not in templatekw.keywords: |
91 templatekeyword = registrar.templatekeyword(templatekw.keywords) | 105 templatekeyword = registrar.templatekeyword(templatekw.keywords) |
106 | |
92 @templatekeyword(namespace.name, requires={'repo', 'ctx'}) | 107 @templatekeyword(namespace.name, requires={'repo', 'ctx'}) |
93 def generatekw(context, mapping): | 108 def generatekw(context, mapping): |
94 return templatekw.shownames(context, mapping, namespace.name) | 109 return templatekw.shownames(context, mapping, namespace.name) |
95 | 110 |
96 def singlenode(self, repo, name): | 111 def singlenode(self, repo, name): |
104 for ns, v in self._names.iteritems(): | 119 for ns, v in self._names.iteritems(): |
105 n = v.singlenode(repo, name) | 120 n = v.singlenode(repo, name) |
106 if n: | 121 if n: |
107 return n | 122 return n |
108 raise KeyError(_('no such name: %s') % name) | 123 raise KeyError(_('no such name: %s') % name) |
124 | |
109 | 125 |
110 class namespace(object): | 126 class namespace(object): |
111 """provides an interface to a namespace | 127 """provides an interface to a namespace |
112 | 128 |
113 Namespaces are basically generic many-to-many mapping between some | 129 Namespaces are basically generic many-to-many mapping between some |
133 'deprecated': set of names to be masked for ordinary use | 149 'deprecated': set of names to be masked for ordinary use |
134 'builtin': bool indicating if this namespace is supported by core | 150 'builtin': bool indicating if this namespace is supported by core |
135 Mercurial. | 151 Mercurial. |
136 """ | 152 """ |
137 | 153 |
138 def __init__(self, name, templatename=None, logname=None, colorname=None, | 154 def __init__( |
139 logfmt=None, listnames=None, namemap=None, nodemap=None, | 155 self, |
140 deprecated=None, builtin=False, singlenode=None): | 156 name, |
157 templatename=None, | |
158 logname=None, | |
159 colorname=None, | |
160 logfmt=None, | |
161 listnames=None, | |
162 namemap=None, | |
163 nodemap=None, | |
164 deprecated=None, | |
165 builtin=False, | |
166 singlenode=None, | |
167 ): | |
141 """create a namespace | 168 """create a namespace |
142 | 169 |
143 name: the namespace to be registered (in plural form) | 170 name: the namespace to be registered (in plural form) |
144 templatename: the name to use for templating | 171 templatename: the name to use for templating |
145 logname: the name to use for log output; if not specified templatename | 172 logname: the name to use for log output; if not specified templatename |