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".
--- a/mercurial/__init__.py Sun Mar 12 17:20:42 2017 -0700
+++ b/mercurial/__init__.py Mon Mar 13 08:44:57 2017 -0700
@@ -310,10 +310,10 @@
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 @@
# ``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.