Mercurial > public > mercurial-scm > hg
diff hgext/bugzilla.py @ 43380:579672b347d2 stable
py3: define and use json.loads polyfill
Python 3.5's json.loads() requires a str. Only Python 3.6+
supports passing a bytes or bytearray.
This commit implements a json.loads() polyfill on Python 3.5
so that we can use bytes. The added function to detect encodings
comes verbatim from Python 3.7.
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sat, 02 Nov 2019 12:09:35 -0700 |
parents | 4aa72cdf616f |
children | 9f70512ae2cf |
line wrap: on
line diff
--- a/hgext/bugzilla.py Sat Nov 02 11:48:38 2019 -0700 +++ b/hgext/bugzilla.py Sat Nov 02 12:09:35 2019 -0700 @@ -955,7 +955,7 @@ def _fetch(self, burl): try: resp = url.open(self.ui, burl) - return json.loads(resp.read()) + return pycompat.json_loads(resp.read()) except util.urlerr.httperror as inst: if inst.code == 401: raise error.Abort(_(b'authorization failed')) @@ -978,7 +978,7 @@ req = request_type(burl, data, {b'Content-Type': b'application/json'}) try: resp = url.opener(self.ui).open(req) - return json.loads(resp.read()) + return pycompat.json_loads(resp.read()) except util.urlerr.httperror as inst: if inst.code == 401: raise error.Abort(_(b'authorization failed'))