[PATCH 2 of 7] py3: rewrite itervalues() as values() by importer

Gregory Szorc gregory.szorc at gmail.com
Mon Mar 13 15:58:06 EDT 2017


On Mon, Mar 13, 2017 at 11:55 AM, Yuya Nishihara <yuya at tcha.org> wrote:

> # HG changeset patch
> # User Yuya Nishihara <yuya at tcha.org>
> # 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".
>

I agree it is similar and can be added without too much controversy. Since
you'll be resending the series, how about adding iterkeys() while you are
here?


>
> 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.
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.mercurial-scm.org/pipermail/mercurial-devel/attachments/20170313/1e652053/attachment.html>


More information about the Mercurial-devel mailing list