D6961: py3: fix phabricator's use of json.loads() for py3.5

Kwan (Ian Moody) phabricator at mercurial-scm.org
Fri Oct 4 17:39:05 UTC 2019


Kwan created this revision.
Herald added subscribers: mercurial-devel, mjpieters.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  Missed this in c340a8ac7ef3 <https://phab.mercurial-scm.org/rHGc340a8ac7ef38f88b48796c6add58b3a541cb4e8> since `loads()` takes bytes from 3.6 onwards.

REPOSITORY
  rHG Mercurial

BRANCH
  default

REVISION DETAIL
  https://phab.mercurial-scm.org/D6961

AFFECTED FILES
  hgext/phabricator.py

CHANGE DETAILS

diff --git a/hgext/phabricator.py b/hgext/phabricator.py
--- a/hgext/phabricator.py
+++ b/hgext/phabricator.py
@@ -251,7 +251,8 @@
     parsed = pycompat.rapply(
         lambda x: encoding.unitolocal(x) if isinstance(x, pycompat.unicode)
         else x,
-        json.loads(body)
+        # json.loads only accepts bytes from py3.6+
+        json.loads(encoding.unifromlocal(body))
     )
     if parsed.get(b'error_code'):
         msg = (_(b'Conduit Error (%s): %s')



To: Kwan, #hg-reviewers
Cc: mjpieters, mercurial-devel


More information about the Mercurial-devel mailing list