bpo-39377: json: Remove the encoding option. (GH-18075)
This commit is contained in:
parent
e96d954527
commit
5492bfcefe
|
@ -329,8 +329,6 @@ def loads(s, *, cls=None, object_hook=None, parse_float=None,
|
||||||
|
|
||||||
To use a custom ``JSONDecoder`` subclass, specify it with the ``cls``
|
To use a custom ``JSONDecoder`` subclass, specify it with the ``cls``
|
||||||
kwarg; otherwise ``JSONDecoder`` is used.
|
kwarg; otherwise ``JSONDecoder`` is used.
|
||||||
|
|
||||||
The ``encoding`` argument is ignored and deprecated since Python 3.1.
|
|
||||||
"""
|
"""
|
||||||
if isinstance(s, str):
|
if isinstance(s, str):
|
||||||
if s.startswith('\ufeff'):
|
if s.startswith('\ufeff'):
|
||||||
|
@ -342,15 +340,6 @@ def loads(s, *, cls=None, object_hook=None, parse_float=None,
|
||||||
f'not {s.__class__.__name__}')
|
f'not {s.__class__.__name__}')
|
||||||
s = s.decode(detect_encoding(s), 'surrogatepass')
|
s = s.decode(detect_encoding(s), 'surrogatepass')
|
||||||
|
|
||||||
if "encoding" in kw:
|
|
||||||
import warnings
|
|
||||||
warnings.warn(
|
|
||||||
"'encoding' is ignored and deprecated. It will be removed in Python 3.9",
|
|
||||||
DeprecationWarning,
|
|
||||||
stacklevel=2
|
|
||||||
)
|
|
||||||
del kw['encoding']
|
|
||||||
|
|
||||||
if (cls is None and object_hook is None and
|
if (cls is None and object_hook is None and
|
||||||
parse_int is None and parse_float is None and
|
parse_int is None and parse_float is None and
|
||||||
parse_constant is None and object_pairs_hook is None and not kw):
|
parse_constant is None and object_pairs_hook is None and not kw):
|
||||||
|
|
|
@ -95,9 +95,5 @@ class TestDecode:
|
||||||
d = self.json.JSONDecoder()
|
d = self.json.JSONDecoder()
|
||||||
self.assertRaises(ValueError, d.raw_decode, 'a'*42, -50000)
|
self.assertRaises(ValueError, d.raw_decode, 'a'*42, -50000)
|
||||||
|
|
||||||
def test_deprecated_encode(self):
|
|
||||||
with self.assertWarns(DeprecationWarning):
|
|
||||||
self.loads('{}', encoding='fake')
|
|
||||||
|
|
||||||
class TestPyDecode(TestDecode, PyTest): pass
|
class TestPyDecode(TestDecode, PyTest): pass
|
||||||
class TestCDecode(TestDecode, CTest): pass
|
class TestCDecode(TestDecode, CTest): pass
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
Removed ``encoding`` option from :func:`json.loads`. It has been deprecated
|
||||||
|
since Python 3.1.
|
Loading…
Reference in New Issue