logtoprocess: rewrite dict building in py3-compatible way
authorYuya Nishihara <yuya@tcha.org>
Sun, 11 Nov 2018 12:33:14 +0900
changeset 40620 b2e5a554bc7b
parent 40619 fbac323eb625
child 40621 175b590b1f51
logtoprocess: rewrite dict building in py3-compatible way
hgext/logtoprocess.py
--- a/hgext/logtoprocess.py	Sun Nov 11 12:27:23 2018 +0900
+++ b/hgext/logtoprocess.py	Sun Nov 11 12:33:14 2018 +0900
@@ -34,9 +34,11 @@
 
 from __future__ import absolute_import
 
-import itertools
 import os
 
+from mercurial import (
+    pycompat,
+)
 from mercurial.utils import (
     procutil,
 )
@@ -70,17 +72,16 @@
                     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)