Mercurial > hg
comparison hgext/transplant.py @ 43104:74802979dd9d
py3: define and use pycompat.itervalues()
.itervalues() only exists on Python 2. Python 3's equivalent is
.values(). But we don't want to blindly use .values() everywhere
because on Python 2, it will create a list, which will have performance
implications.
This commit introduces pycompat.itervalues() which will call the appropriate
method on the passed object. We update all callers of obj.itervalues()
to pycompat.itervalues(obj) instead.
With this commit, the only source tranforming remaining is for
iteritems(). Victory is near...
Differential Revision: https://phab.mercurial-scm.org/D7013
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sun, 06 Oct 2019 17:59:15 -0400 |
parents | eef9a2d67051 |
children | 8ff1ecfadcd1 |
comparison
equal
deleted
inserted
replaced
43103:c95b2f40db7c | 43104:74802979dd9d |
---|---|
98 def write(self): | 98 def write(self): |
99 if self.dirty and self.transplantfile: | 99 if self.dirty and self.transplantfile: |
100 if not os.path.isdir(self.path): | 100 if not os.path.isdir(self.path): |
101 os.mkdir(self.path) | 101 os.mkdir(self.path) |
102 fp = self.opener(self.transplantfile, b'w') | 102 fp = self.opener(self.transplantfile, b'w') |
103 for list in self.transplants.itervalues(): | 103 for list in pycompat.itervalues(self.transplants): |
104 for t in list: | 104 for t in list: |
105 l, r = map(nodemod.hex, (t.lnode, t.rnode)) | 105 l, r = map(nodemod.hex, (t.lnode, t.rnode)) |
106 fp.write(l + b':' + r + b'\n') | 106 fp.write(l + b':' + r + b'\n') |
107 fp.close() | 107 fp.close() |
108 self.dirty = False | 108 self.dirty = False |