[PATCH 2 of 4] logtoprocess: rewrite dict building in py3-compatible way

Yuya Nishihara yuya at tcha.org
Tue Nov 13 08:42:17 EST 2018


# HG changeset patch
# User Yuya Nishihara <yuya at tcha.org>
# Date 1541907194 -32400
#      Sun Nov 11 12:33:14 2018 +0900
# Node ID f05dc9a1613a2086e8effb1dda5f446d52d5237f
# Parent  acd1e5000af16058913ff547e08a35d4583a6dac
logtoprocess: rewrite dict building in py3-compatible way

diff --git a/hgext/logtoprocess.py b/hgext/logtoprocess.py
--- a/hgext/logtoprocess.py
+++ b/hgext/logtoprocess.py
@@ -34,9 +34,11 @@ not ensure that they exit cleanly.
 
 from __future__ import absolute_import
 
-import itertools
 import os
 
+from mercurial import (
+    pycompat,
+)
 from mercurial.utils import (
     procutil,
 )
@@ -70,17 +72,16 @@ def uisetup(ui):
                     messages = (formatted,) + msg[1:]
                 else:
                     messages = msg
+                env = {
+                    b'EVENT': event,
+                    b'HGPID': os.getpid(),
+                }
                 # positional arguments are listed as MSG[N] keys in the
                 # environment
-                msgpairs = (
-                    ('MSG{0:d}'.format(i), m)
-                    for i, m in enumerate(messages, 1))
+                env.update((b'MSG%d' % i, m) for i, m in enumerate(messages, 1))
                 # keyword arguments get prefixed with OPT_ and uppercased
-                optpairs = (
-                    ('OPT_{0}'.format(key.upper()), value)
-                    for key, value in opts.iteritems())
-                env = dict(itertools.chain(msgpairs, optpairs),
-                           EVENT=event, HGPID=os.getpid())
+                env.update((b'OPT_%s' % key.upper(), value)
+                           for key, value in pycompat.byteskwargs(opts).items())
                 fullenv = procutil.shellenviron(env)
                 procutil.runbgcommand(script, fullenv, shell=True)
             return super(logtoprocessui, self).log(event, *msg, **opts)


More information about the Mercurial-devel mailing list