Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
220391fa
Commit
220391fa
authored
Mar 13, 2013
by
Ezio Melotti
Browse files
Options
Browse Files
Download
Plain Diff
#17368: merge with 3.2.
parents
72cdb5c3
a7d64a6f
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
15 additions
and
5 deletions
+15
-5
Lib/json/decoder.py
Lib/json/decoder.py
+1
-1
Lib/test/json_tests/test_decode.py
Lib/test/json_tests/test_decode.py
+10
-4
Misc/NEWS
Misc/NEWS
+4
-0
No files found.
Lib/json/decoder.py
View file @
220391fa
...
...
@@ -166,7 +166,7 @@ def JSONObject(s_and_end, strict, scan_once, object_hook, object_pairs_hook,
if
nextchar
==
'}'
:
if
object_pairs_hook
is
not
None
:
result
=
object_pairs_hook
(
pairs
)
return
result
,
end
return
result
,
end
+
1
pairs
=
{}
if
object_hook
is
not
None
:
pairs
=
object_hook
(
pairs
)
...
...
Lib/test/json_tests/test_decode.py
View file @
220391fa
...
...
@@ -25,16 +25,22 @@ class TestDecode:
p
=
[(
"xkd"
,
1
),
(
"kcw"
,
2
),
(
"art"
,
3
),
(
"hxm"
,
4
),
(
"qrt"
,
5
),
(
"pad"
,
6
),
(
"hoy"
,
7
)]
self
.
assertEqual
(
self
.
loads
(
s
),
eval
(
s
))
self
.
assertEqual
(
self
.
loads
(
s
,
object_pairs_hook
=
lambda
x
:
x
),
p
)
self
.
assertEqual
(
self
.
loads
(
s
,
object_pairs_hook
=
lambda
x
:
x
),
p
)
self
.
assertEqual
(
self
.
json
.
load
(
StringIO
(
s
),
object_pairs_hook
=
lambda
x
:
x
),
p
)
od
=
self
.
loads
(
s
,
object_pairs_hook
=
OrderedDict
)
od
=
self
.
loads
(
s
,
object_pairs_hook
=
OrderedDict
)
self
.
assertEqual
(
od
,
OrderedDict
(
p
))
self
.
assertEqual
(
type
(
od
),
OrderedDict
)
# the object_pairs_hook takes priority over the object_hook
self
.
assertEqual
(
self
.
loads
(
s
,
object_pairs_hook
=
OrderedDict
,
object_hook
=
lambda
x
:
None
),
self
.
assertEqual
(
self
.
loads
(
s
,
object_pairs_hook
=
OrderedDict
,
object_hook
=
lambda
x
:
None
),
OrderedDict
(
p
))
# check that empty objects literals work (see #17368)
self
.
assertEqual
(
self
.
loads
(
'{}'
,
object_pairs_hook
=
OrderedDict
),
OrderedDict
())
self
.
assertEqual
(
self
.
loads
(
'{"empty": {}}'
,
object_pairs_hook
=
OrderedDict
),
OrderedDict
([(
'empty'
,
OrderedDict
())]))
def
test_decoder_optimizations
(
self
):
# Several optimizations were made that skip over calls to
...
...
Misc/NEWS
View file @
220391fa
...
...
@@ -193,6 +193,10 @@ Core and Builtins
Library
-------
- Issue #17368: Fix an off-by-one error in the Python JSON decoder that caused
a failure while decoding empty object literals when object_pairs_hook was
specified.
- Issue #14645: The email generator classes now produce output using the
specified linesep throughout. Previously if the prolog, epilog, or
body were stored with a different linesep, that linesep was used. This
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment