hgext/remotenames.py
changeset 43076 2372284d9457
parent 42603 3018749a71bb
child 43077 687b865b95ad
--- a/hgext/remotenames.py	Sat Oct 05 10:29:34 2019 -0400
+++ b/hgext/remotenames.py	Sun Oct 06 09:45:02 2019 -0400
@@ -28,9 +28,7 @@
 
 from mercurial.i18n import _
 
-from mercurial.node import (
-    bin,
-)
+from mercurial.node import bin
 from mercurial import (
     bookmarks,
     error,
@@ -45,15 +43,15 @@
     util,
 )
 
-from mercurial.utils import (
-    stringutil,
-)
+from mercurial.utils import stringutil
 
 if pycompat.ispy3:
     import collections.abc
+
     mutablemapping = collections.abc.MutableMapping
 else:
     import collections
+
     mutablemapping = collections.MutableMapping
 
 # Note for extension authors: ONLY specify testedwith = 'ships-with-hg-core' for
@@ -67,16 +65,17 @@
 templatekeyword = registrar.templatekeyword()
 revsetpredicate = registrar.revsetpredicate()
 
-configitem('remotenames', 'bookmarks',
-    default=True,
+configitem(
+    'remotenames', 'bookmarks', default=True,
 )
-configitem('remotenames', 'branches',
-    default=True,
+configitem(
+    'remotenames', 'branches', default=True,
 )
-configitem('remotenames', 'hoistedpeer',
-    default='default',
+configitem(
+    'remotenames', 'hoistedpeer', default='default',
 )
 
+
 class lazyremotenamedict(mutablemapping):
     """
     Read-only dict-like Class to lazily resolve remotename entries
@@ -88,10 +87,11 @@
     is in self.potentialentries we resolve it and store the result in
     self.cache. We cannot be lazy is when asked all the entries (keys).
     """
+
     def __init__(self, kind, repo):
         self.cache = {}
         self.potentialentries = {}
-        self._kind = kind # bookmarks or branches
+        self._kind = kind  # bookmarks or branches
         self._repo = repo
         self.loaded = False
 
@@ -99,8 +99,9 @@
         """ Read the remotenames file, store entries matching selected kind """
         self.loaded = True
         repo = self._repo
-        for node, rpath, rname in logexchange.readremotenamefile(repo,
-                                                                self._kind):
+        for node, rpath, rname in logexchange.readremotenamefile(
+            repo, self._kind
+        ):
             name = rpath + '/' + rname
             self.potentialentries[name] = (node, rpath, name)
 
@@ -117,7 +118,7 @@
         except LookupError:
             return None
         # Skip closed branches
-        if (self._kind == 'branches' and repo[binnode].closesbranch()):
+        if self._kind == 'branches' and repo[binnode].closesbranch():
             return None
         return [binnode]
 
@@ -169,6 +170,7 @@
 
     items = iteritems
 
+
 class remotenames(object):
     """
     This class encapsulates all the remotenames state. It also contains
@@ -223,7 +225,7 @@
             hoist += '/'
             for name, node in marktonodes.iteritems():
                 if name.startswith(hoist):
-                    name = name[len(hoist):]
+                    name = name[len(hoist) :]
                     self._hoisttonodes[name] = node
         return self._hoisttonodes
 
@@ -234,10 +236,11 @@
             hoist += '/'
             for name, node in marktonodes.iteritems():
                 if name.startswith(hoist):
-                    name = name[len(hoist):]
+                    name = name[len(hoist) :]
                     self._nodetohoists.setdefault(node[0], []).append(name)
         return self._nodetohoists
 
+
 def wrapprintbookmarks(orig, ui, repo, fm, bmarks):
     if 'remotebookmarks' not in repo.names:
         return
@@ -253,9 +256,11 @@
 
     return orig(ui, repo, fm, bmarks)
 
+
 def extsetup(ui):
     extensions.wrapfunction(bookmarks, '_printbookmarks', wrapprintbookmarks)
 
+
 def reposetup(ui, repo):
 
     # set the config option to store remotenames
@@ -274,10 +279,13 @@
             colorname='remotebookmark',
             logfmt='remote bookmark:  %s\n',
             listnames=lambda repo: repo._remotenames.bmarktonodes().keys(),
-            namemap=lambda repo, name:
-                repo._remotenames.bmarktonodes().get(name, []),
-            nodemap=lambda repo, node:
-                repo._remotenames.nodetobmarks().get(node, []))
+            namemap=lambda repo, name: repo._remotenames.bmarktonodes().get(
+                name, []
+            ),
+            nodemap=lambda repo, node: repo._remotenames.nodetobmarks().get(
+                node, []
+            ),
+        )
         repo.names.addnamespace(remotebookmarkns)
 
         # hoisting only works if there are remote bookmarks
@@ -288,12 +296,16 @@
                 templatename='hoistednames',
                 colorname='hoistedname',
                 logfmt='hoisted name:  %s\n',
-                listnames = lambda repo:
-                    repo._remotenames.hoisttonodes(hoist).keys(),
-                namemap = lambda repo, name:
-                    repo._remotenames.hoisttonodes(hoist).get(name, []),
-                nodemap = lambda repo, node:
-                    repo._remotenames.nodetohoists(hoist).get(node, []))
+                listnames=lambda repo: repo._remotenames.hoisttonodes(
+                    hoist
+                ).keys(),
+                namemap=lambda repo, name: repo._remotenames.hoisttonodes(
+                    hoist
+                ).get(name, []),
+                nodemap=lambda repo, node: repo._remotenames.nodetohoists(
+                    hoist
+                ).get(node, []),
+            )
             repo.names.addnamespace(hoistednamens)
 
     if ui.configbool('remotenames', 'branches'):
@@ -302,13 +314,17 @@
             templatename='remotebranches',
             colorname='remotebranch',
             logfmt='remote branch:  %s\n',
-            listnames = lambda repo: repo._remotenames.branchtonodes().keys(),
-            namemap = lambda repo, name:
-                repo._remotenames.branchtonodes().get(name, []),
-            nodemap = lambda repo, node:
-                repo._remotenames.nodetobranch().get(node, []))
+            listnames=lambda repo: repo._remotenames.branchtonodes().keys(),
+            namemap=lambda repo, name: repo._remotenames.branchtonodes().get(
+                name, []
+            ),
+            nodemap=lambda repo, node: repo._remotenames.nodetobranch().get(
+                node, []
+            ),
+        )
         repo.names.addnamespace(remotebranchns)
 
+
 @templatekeyword('remotenames', requires={'repo', 'ctx'})
 def remotenameskw(context, mapping):
     """List of strings. Remote names associated with the changeset."""
@@ -322,8 +338,10 @@
     if 'remotebranches' in repo.names:
         remotenames += repo.names['remotebranches'].names(repo, ctx.node())
 
-    return templateutil.compatlist(context, mapping, 'remotename', remotenames,
-                                   plural='remotenames')
+    return templateutil.compatlist(
+        context, mapping, 'remotename', remotenames, plural='remotenames'
+    )
+
 
 @templatekeyword('remotebookmarks', requires={'repo', 'ctx'})
 def remotebookmarkskw(context, mapping):
@@ -335,8 +353,14 @@
     if 'remotebookmarks' in repo.names:
         remotebmarks = repo.names['remotebookmarks'].names(repo, ctx.node())
 
-    return templateutil.compatlist(context, mapping, 'remotebookmark',
-                                   remotebmarks, plural='remotebookmarks')
+    return templateutil.compatlist(
+        context,
+        mapping,
+        'remotebookmark',
+        remotebmarks,
+        plural='remotebookmarks',
+    )
+
 
 @templatekeyword('remotebranches', requires={'repo', 'ctx'})
 def remotebrancheskw(context, mapping):
@@ -348,15 +372,22 @@
     if 'remotebranches' in repo.names:
         remotebranches = repo.names['remotebranches'].names(repo, ctx.node())
 
-    return templateutil.compatlist(context, mapping, 'remotebranch',
-                                   remotebranches, plural='remotebranches')
+    return templateutil.compatlist(
+        context,
+        mapping,
+        'remotebranch',
+        remotebranches,
+        plural='remotebranches',
+    )
+
 
 def _revsetutil(repo, subset, x, rtypes):
     """utility function to return a set of revs based on the rtypes"""
     args = revsetlang.getargs(x, 0, 1, _('only one argument accepted'))
     if args:
         kind, pattern, matcher = stringutil.stringmatcher(
-            revsetlang.getstring(args[0], _('argument must be a string')))
+            revsetlang.getstring(args[0], _('argument must be a string'))
+        )
     else:
         kind = pattern = None
         matcher = util.always
@@ -371,12 +402,14 @@
                     continue
                 nodes.update(ns.nodes(repo, name))
     if kind == 'literal' and not nodes:
-        raise error.RepoLookupError(_("remote name '%s' does not exist")
-                                    % pattern)
+        raise error.RepoLookupError(
+            _("remote name '%s' does not exist") % pattern
+        )
 
     revs = (cl.rev(n) for n in nodes if cl.hasnode(n))
     return subset & smartset.baseset(revs)
 
+
 @revsetpredicate('remotenames([name])')
 def remotenamesrevset(repo, subset, x):
     """All changesets which have a remotename on them. If `name` is
@@ -386,6 +419,7 @@
     """
     return _revsetutil(repo, subset, x, ('remotebookmarks', 'remotebranches'))
 
+
 @revsetpredicate('remotebranches([name])')
 def remotebranchesrevset(repo, subset, x):
     """All changesets which are branch heads on remotes. If `name` is
@@ -395,6 +429,7 @@
     """
     return _revsetutil(repo, subset, x, ('remotebranches',))
 
+
 @revsetpredicate('remotebookmarks([name])')
 def remotebmarksrevset(repo, subset, x):
     """All changesets which have bookmarks on remotes. If `name` is