mirror of https://github.com/python/cpython
Merge updates
This commit is contained in:
commit
a8b0f9adfe
|
@ -135,9 +135,9 @@ Basic Usage
|
||||||
using the JavaScript equivalents (``NaN``, ``Infinity``, ``-Infinity``).
|
using the JavaScript equivalents (``NaN``, ``Infinity``, ``-Infinity``).
|
||||||
|
|
||||||
If *indent* is a non-negative integer, then JSON array elements and object
|
If *indent* is a non-negative integer, then JSON array elements and object
|
||||||
members will be pretty-printed with that indent level. An indent level of 0
|
members will be pretty-printed with that indent level. An indent level of 0,
|
||||||
will only insert newlines. ``None`` (the default) selects the most compact
|
or negative, will only insert newlines. ``None`` (the default) selects the
|
||||||
representation.
|
most compact representation.
|
||||||
|
|
||||||
If *separators* is an ``(item_separator, dict_separator)`` tuple, then it
|
If *separators* is an ``(item_separator, dict_separator)`` tuple, then it
|
||||||
will be used instead of the default ``(', ', ': ')`` separators. ``(',',
|
will be used instead of the default ``(', ', ': ')`` separators. ``(',',
|
||||||
|
|
|
@ -233,7 +233,7 @@ class JSONEncoder(object):
|
||||||
|
|
||||||
|
|
||||||
if (_one_shot and c_make_encoder is not None
|
if (_one_shot and c_make_encoder is not None
|
||||||
and not self.indent):
|
and self.indent is None):
|
||||||
_iterencode = c_make_encoder(
|
_iterencode = c_make_encoder(
|
||||||
markers, self.default, _encoder, self.indent,
|
markers, self.default, _encoder, self.indent,
|
||||||
self.key_separator, self.item_separator, self.sort_keys,
|
self.key_separator, self.item_separator, self.sort_keys,
|
||||||
|
|
|
@ -2,6 +2,7 @@ from unittest import TestCase
|
||||||
|
|
||||||
import json
|
import json
|
||||||
import textwrap
|
import textwrap
|
||||||
|
from io import StringIO
|
||||||
|
|
||||||
class TestIndent(TestCase):
|
class TestIndent(TestCase):
|
||||||
def test_indent(self):
|
def test_indent(self):
|
||||||
|
@ -39,3 +40,18 @@ class TestIndent(TestCase):
|
||||||
self.assertEqual(h1, h)
|
self.assertEqual(h1, h)
|
||||||
self.assertEqual(h2, h)
|
self.assertEqual(h2, h)
|
||||||
self.assertEqual(d2, expect)
|
self.assertEqual(d2, expect)
|
||||||
|
|
||||||
|
def test_indent0(self):
|
||||||
|
h = {3: 1}
|
||||||
|
def check(indent, expected):
|
||||||
|
d1 = json.dumps(h, indent=indent)
|
||||||
|
self.assertEqual(d1, expected)
|
||||||
|
|
||||||
|
sio = StringIO()
|
||||||
|
json.dump(h, sio, indent=indent)
|
||||||
|
self.assertEqual(sio.getvalue(), expected)
|
||||||
|
|
||||||
|
# indent=0 should emit newlines
|
||||||
|
check(0, '{\n"3": 1\n}')
|
||||||
|
# indent=None is more compact
|
||||||
|
check(None, '{"3": 1}')
|
||||||
|
|
|
@ -53,6 +53,9 @@ Library
|
||||||
|
|
||||||
- Issue #11703 - urllib2.geturl() does not return correct url when the original
|
- Issue #11703 - urllib2.geturl() does not return correct url when the original
|
||||||
url contains #fragment.
|
url contains #fragment.
|
||||||
|
|
||||||
|
- Issue #10019: Fixed regression in json module where an indent of 0 stopped
|
||||||
|
adding newlines and acted instead like 'None'.
|
||||||
|
|
||||||
- Issue #5162: Treat services like frozen executables to allow child spawning
|
- Issue #5162: Treat services like frozen executables to allow child spawning
|
||||||
from multiprocessing.forking on Windows.
|
from multiprocessing.forking on Windows.
|
||||||
|
|
Loading…
Reference in New Issue