From patchwork Mon Mar 13 18:59:03 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [2,of,7] py3: rewrite itervalues() as values() by importer From: Yuya Nishihara X-Patchwork-Id: 19290 Message-Id: To: mercurial-devel@mercurial-scm.org Date: Mon, 13 Mar 2017 11:59:03 -0700 # HG changeset patch # User Yuya Nishihara # Date 1489419897 25200 # Mon Mar 13 08:44:57 2017 -0700 # Node ID c9700b5cb641c10d8b0e6ac90896ebe5cb7c0658 # Parent b7717d4dc60bcc3a3f4b7b85476954357f52783b py3: rewrite itervalues() as values() by importer I'm not a great fan of these importer magics, but this should be okay since "itervalues" seems as unique name as "iteritems". diff --git a/mercurial/__init__.py b/mercurial/__init__.py --- a/mercurial/__init__.py +++ b/mercurial/__init__.py @@ -310,10 +310,10 @@ if sys.version_info[0] >= 3: if argidx is not None: _ensureunicode(argidx) - # It changes iteritems to items as iteritems is not + # It changes iteritems/values to items/values as they are not # present in Python 3 world. - elif fn == 'iteritems': - yield t._replace(string='items') + elif fn in ('iteritems', 'itervalues'): + yield t._replace(string=fn[4:]) continue # Emit unmodified token. @@ -323,7 +323,7 @@ if sys.version_info[0] >= 3: # ``replacetoken`` or any mechanism that changes semantics of module # loading is changed. Otherwise cached bytecode may get loaded without # the new transformation mechanisms applied. - BYTECODEHEADER = b'HG\x00\x08' + BYTECODEHEADER = b'HG\x00\x09' class hgloader(importlib.machinery.SourceFileLoader): """Custom module loader that transforms source code.