Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/branchmap.py @ 43106:d783f945a701
py3: finish porting iteritems() to pycompat and remove source transformer
This commit finishes porting .iteritems() to pycompat.iteritems()
for the mercurial package.
The translation of .iteritems() to .items() was the last conversion
performed by the source transformer. With the porting to pycompat
complete, we no longer have a need for the source transformer. So
the source transformer has been removed. Good riddance! The code
base is now compatible with Python 2 and Python 3.
For the record, as the person who introduced the source transformer,
it brings me joy to delete it. It accomplished its goal to facilitate
a port to Python 3 without overly burdening people on some painful
low-level differences between Python 2 and 3. It is unfortunate we
still have to wallpaper over many differences with the pycompat
shim. But it is what it is.
Differential Revision: https://phab.mercurial-scm.org/D7015
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Mon, 07 Oct 2019 00:04:04 -0400 |
parents | 74802979dd9d |
children | 1a47fe4bc154 |
comparison
equal
deleted
inserted
replaced
43105:649d3ac37a12 | 43106:d783f945a701 |
---|---|
226 def __contains__(self, key): | 226 def __contains__(self, key): |
227 self._verifybranch(key) | 227 self._verifybranch(key) |
228 return key in self._entries | 228 return key in self._entries |
229 | 229 |
230 def iteritems(self): | 230 def iteritems(self): |
231 for k, v in self._entries.iteritems(): | 231 for k, v in pycompat.iteritems(self._entries): |
232 self._verifybranch(k) | 232 self._verifybranch(k) |
233 yield k, v | 233 yield k, v |
234 | 234 |
235 items = iteritems | 235 items = iteritems |
236 | 236 |
342 if not closed: | 342 if not closed: |
343 heads = list(self.iteropen(heads)) | 343 heads = list(self.iteropen(heads)) |
344 return heads | 344 return heads |
345 | 345 |
346 def iterbranches(self): | 346 def iterbranches(self): |
347 for bn, heads in self.iteritems(): | 347 for bn, heads in pycompat.iteritems(self): |
348 yield (bn, heads) + self._branchtip(heads) | 348 yield (bn, heads) + self._branchtip(heads) |
349 | 349 |
350 def iterheads(self): | 350 def iterheads(self): |
351 """ returns all the heads """ | 351 """ returns all the heads """ |
352 self._verifyall() | 352 self._verifyall() |
368 cachekey = [hex(self.tipnode), b'%d' % self.tiprev] | 368 cachekey = [hex(self.tipnode), b'%d' % self.tiprev] |
369 if self.filteredhash is not None: | 369 if self.filteredhash is not None: |
370 cachekey.append(hex(self.filteredhash)) | 370 cachekey.append(hex(self.filteredhash)) |
371 f.write(b" ".join(cachekey) + b'\n') | 371 f.write(b" ".join(cachekey) + b'\n') |
372 nodecount = 0 | 372 nodecount = 0 |
373 for label, nodes in sorted(self._entries.iteritems()): | 373 for label, nodes in sorted(pycompat.iteritems(self._entries)): |
374 label = encoding.fromlocal(label) | 374 label = encoding.fromlocal(label) |
375 for node in nodes: | 375 for node in nodes: |
376 nodecount += 1 | 376 nodecount += 1 |
377 if node in self._closednodes: | 377 if node in self._closednodes: |
378 state = b'c' | 378 state = b'c' |
418 ntiprev = self.tiprev | 418 ntiprev = self.tiprev |
419 | 419 |
420 # if older branchheads are reachable from new ones, they aren't | 420 # if older branchheads are reachable from new ones, they aren't |
421 # really branchheads. Note checking parents is insufficient: | 421 # really branchheads. Note checking parents is insufficient: |
422 # 1 (branch a) -> 2 (branch b) -> 3 (branch a) | 422 # 1 (branch a) -> 2 (branch b) -> 3 (branch a) |
423 for branch, newheadrevs in newbranches.iteritems(): | 423 for branch, newheadrevs in pycompat.iteritems(newbranches): |
424 bheads = self._entries.setdefault(branch, []) | 424 bheads = self._entries.setdefault(branch, []) |
425 bheadset = set(cl.rev(node) for node in bheads) | 425 bheadset = set(cl.rev(node) for node in bheads) |
426 | 426 |
427 # This have been tested True on all internal usage of this function. | 427 # This have been tested True on all internal usage of this function. |
428 # run it again in case of doubt | 428 # run it again in case of doubt |