Patchwork [5,of,9,v2] bundlerevlog: use for loop over iterator instead of while True

login
register
mail settings
Submitter Augie Fackler
Date Aug. 5, 2016, 5:23 p.m.
Message ID <8f8a9c204d704878faab.1470417823@arthedain.pit.corp.google.com>
Download mbox | patch
Permalink /patch/16124/
State Superseded
Headers show

Comments

Augie Fackler - Aug. 5, 2016, 5:23 p.m.
# HG changeset patch
# User Augie Fackler <augie@google.com>
# Date 1470416990 14400
#      Fri Aug 05 13:09:50 2016 -0400
# Node ID 8f8a9c204d704878faabbeca4c6c011ebc0a088e
# Parent  882d809ec9834608cb3472eb9dc49bbcd4b5ef7a
bundlerevlog: use for loop over iterator instead of while True

The iter() builtin has a neat pattern where you give it a callable of
no arguments and a sentinel value, and you can then loop over the
function calls like a normal iterator. This cleans up the code a
little.

Patch

diff --git a/mercurial/bundlerepo.py b/mercurial/bundlerepo.py
--- a/mercurial/bundlerepo.py
+++ b/mercurial/bundlerepo.py
@@ -56,10 +56,7 @@  class bundlerevlog(revlog.revlog):
         self.repotiprev = n - 1
         chain = None
         self.bundlerevs = set() # used by 'bundle()' revset expression
-        while True:
-            chunkdata = bundle.deltachunk(chain)
-            if not chunkdata:
-                break
+        for chunkdata in iter(lambda: bundle.deltachunk(chain), {}):
             node = chunkdata['node']
             p1 = chunkdata['p1']
             p2 = chunkdata['p2']