narrow: use list comprehension instead of filter for filtering lists
authorAugie Fackler <augie@google.com>
Wed, 21 Feb 2018 10:08:35 -0500
changeset 36345 f85e32a5e5c8
parent 36344 a65502597d8d
child 36346 f62369667a7c
narrow: use list comprehension instead of filter for filtering lists filter() returns a generator on Python 3, which causes these filters to break things. Differential Revision: https://phab.mercurial-scm.org/D2363
hgext/narrow/narrowchangegroup.py
hgext/narrow/narrowcopies.py
hgext/narrow/narrowpatch.py
--- a/hgext/narrow/narrowchangegroup.py	Wed Feb 21 09:43:35 2018 -0500
+++ b/hgext/narrow/narrowchangegroup.py	Wed Feb 21 10:08:35 2018 -0500
@@ -52,7 +52,7 @@
                           getattr(self, '_narrow_matcher', None))
         if matcher is not None:
             narrowmatch = matcher()
-            changedfiles = filter(narrowmatch, changedfiles)
+            changedfiles = [f for f in changedfiles if narrowmatch(f)]
         if getattr(self, 'is_shallow', False):
             # See comment in generate() for why this sadness is a thing.
             mfdicts = self._mfdicts
--- a/hgext/narrow/narrowcopies.py	Wed Feb 21 09:43:35 2018 -0500
+++ b/hgext/narrow/narrowcopies.py	Wed Feb 21 10:08:35 2018 -0500
@@ -19,7 +19,7 @@
         missing = orig(a, b, match)
         if util.safehasattr(repo, 'narrowmatch'):
             narrowmatch = repo.narrowmatch()
-            missing = filter(narrowmatch, missing)
+            missing = [f for f in missing if narrowmatch(f)]
         return missing
 
     def _checkcopies(orig, srcctx, dstctx, f, base, tca, remotebase, limit,
--- a/hgext/narrow/narrowpatch.py	Wed Feb 21 09:43:35 2018 -0500
+++ b/hgext/narrow/narrowpatch.py	Wed Feb 21 10:08:35 2018 -0500
@@ -31,9 +31,9 @@
                 copy, getfilectx, *args, **kwargs):
         if util.safehasattr(repo, 'narrowmatch'):
             narrowmatch = repo.narrowmatch()
-            modified = filter(narrowmatch, modified)
-            added = filter(narrowmatch, added)
-            removed = filter(narrowmatch, removed)
+            modified = [f for f in modified if narrowmatch(f)]
+            added = [f for f in added if narrowmatch(f)]
+            removed = [f for f in removed if narrowmatch(f)]
             copy = {k: v for k, v in copy.iteritems() if narrowmatch(k)}
         return orig(repo, revs, ctx1, ctx2, modified, added, removed, copy,
                     getfilectx, *args, **kwargs)