From patchwork Wed Sep 17 15:11:22 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [1, of, 7] formatter: extract function that encode values to json string From: Yuya Nishihara X-Patchwork-Id: 5844 Message-Id: <932109f051e8f29e986e.1410966682@mimosa> To: mercurial-devel@selenic.com Date: Thu, 18 Sep 2014 00:11:22 +0900 # HG changeset patch # User Yuya Nishihara # Date 1410956143 -32400 # Wed Sep 17 21:15:43 2014 +0900 # Node ID 932109f051e8f29e986ef43b0af19c673eb50a96 # Parent 48791c2bea1ceda4e4f28bc11651e281d636ce1a formatter: extract function that encode values to json string This is the stub for tuple support, which will be used to encode ctx.date() in the same manner as jsonchangeset printer. diff --git a/mercurial/formatter.py b/mercurial/formatter.py --- a/mercurial/formatter.py +++ b/mercurial/formatter.py @@ -88,6 +88,12 @@ class pickleformatter(baseformatter): baseformatter.end(self) self._ui.write(cPickle.dumps(self._data)) +def _jsonifyobj(v): + if isinstance(v, int): + return '%d' % v + else: + return '"%s"' % encoding.jsonescape(v) + class jsonformatter(baseformatter): def __init__(self, ui, topic, opts): baseformatter.__init__(self, ui, topic, opts) @@ -106,10 +112,7 @@ class jsonformatter(baseformatter): first = False else: self._ui.write(",\n") - if isinstance(v, int): - self._ui.write(' "%s": %d' % (k, v)) - else: - self._ui.write(' "%s": "%s"' % (k, encoding.jsonescape(v))) + self._ui.write(' "%s": %s' % (k, _jsonifyobj(v))) self._ui.write("\n }") def end(self): baseformatter.end(self)