classification
Title: update json module docs in light of RFC 7159 & ECMA-404
Type: enhancement Stage: resolved
Components: Documentation Versions: Python 3.5, Python 3.4, Python 2.7
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: serhiy.storchaka Nosy List: berker.peksag, bob.ippolito, cvrebert, docs@python, ezio.melotti, pitrou, python-dev, rhettinger, serhiy.storchaka
Priority: normal Keywords: patch

Created on 2014-05-16 04:52 by cvrebert, last changed 2014-11-27 19:31 by serhiy.storchaka. This issue is now closed.

Files
File name Uploaded Description Edit
json-rfc-7159_1.patch cvrebert, 2014-07-13 21:12 v1 of patch that updates the json module docs review
Messages (13)
msg218644 - (view) Author: Chris Rebert (cvrebert) * Date: 2014-05-16 04:52
json module docs: https://docs.python.org/3/library/json.html

New superseding JSON RFC: https://tools.ietf.org/html/rfc7159
Errata to the new RFC: http://www.rfc-editor.org/errata_search.php?rfc=7159
ECMA-404: http://www.ecma-international.org/publications/standards/Ecma-404.htm

These updated specs are of particular relevance to the Standard Compliance section of the json module docs. There are also a bunch of new interoperability notes in the RFC that could probably bear repeating in the module's docs.
msg222972 - (view) Author: Chris Rebert (cvrebert) * Date: 2014-07-13 21:12
Here's a draft patch against the default branch that updates the json module's docs accordingly.

Note that under "Implementation Limitations", the statement "This module does not impose any such limits beyond those of the relevant Python datatypes themselves or the Python interpreter itself." is just a guess; I need someone who's familiar with the implementation to verify/correct this.
msg223038 - (view) Author: Bob Ippolito (bob.ippolito) * (Python committer) Date: 2014-07-14 15:58
This patch looks reasonable to me as-is.

With regard to "Infinite and NaN number values are accepted and output;" there's an option for that (allow_nan=False in encoding, parse_constant=some_function_that_raises in decoding). Since an exception can't be raised in a lambda there's no simple one-liner to ensure compliant decode.
msg223040 - (view) Author: Chris Rebert (cvrebert) * Date: 2014-07-14 16:14
Thanks for the speedy review!

Those NaN-related arguments are already mentioned in the docs (see last 2 sentences of https://docs.python.org/3/library/json.html#infinite-and-nan-number-values ), and this patch doesn't touch that subsection.
msg223041 - (view) Author: Bob Ippolito (bob.ippolito) * (Python committer) Date: 2014-07-14 16:22
Good call, I was just doing a quick review of the patch in isolation. Now I don't have anything at all to comment on :)
msg223051 - (view) Author: Raymond Hettinger (rhettinger) * (Python committer) Date: 2014-07-14 19:48
Thanks Bob.  If you want me to apply the patch, just assign this back to me.
msg225136 - (view) Author: Chris Rebert (cvrebert) * Date: 2014-08-10 10:30
So, when might I expect to see this patch merged, since it's now been approved?
msg225178 - (view) Author: Raymond Hettinger (rhettinger) * (Python committer) Date: 2014-08-11 06:51
Soonish.
msg231055 - (view) Author: Chris Rebert (cvrebert) * Date: 2014-11-11 23:51
Ping! It's been about 3 months since this was given the green light...
msg231751 - (view) Author: Raymond Hettinger (rhettinger) * (Python committer) Date: 2014-11-27 06:10
Serhiy, can you take this one.  The patch passes both mine and Bob's review; however, it doesn't apply cleanly to 2.7 and 3.4.  I haven't had the time to do the needed backports.
msg231770 - (view) Author: Roundup Robot (python-dev) Date: 2014-11-27 17:51
New changeset 7e534e18a99a by Serhiy Storchaka in branch '2.7':
Issue #21514: The documentation of the json module now refers to new JSON RFC
https://hg.python.org/cpython/rev/7e534e18a99a

New changeset 89bb4384f1e1 by Serhiy Storchaka in branch '3.4':
Issue #21514: The documentation of the json module now refers to new JSON RFC
https://hg.python.org/cpython/rev/89bb4384f1e1

New changeset aced2548345a by Serhiy Storchaka in branch 'default':
Issue #21514: The documentation of the json module now refers to new JSON RFC
https://hg.python.org/cpython/rev/aced2548345a
msg231771 - (view) Author: Chris Rebert (cvrebert) * Date: 2014-11-27 18:11
Thanks Serhiy!
msg231774 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2014-11-27 19:31
Thank you Chris for your patch.
History
Date User Action Args
2014-11-27 19:31:05serhiy.storchakasetmessages: + msg231774
2014-11-27 19:29:04berker.peksagsetstatus: open -> closed
resolution: fixed
stage: commit review -> resolved
2014-11-27 18:11:06cvrebertsetmessages: + msg231771
2014-11-27 17:51:16python-devsetnosy: + python-dev
messages: + msg231770
2014-11-27 06:10:31rhettingersetassignee: rhettinger -> serhiy.storchaka

messages: + msg231751
nosy: + serhiy.storchaka
2014-11-12 01:17:25berker.peksagsetnosy: + berker.peksag
2014-11-11 23:51:08cvrebertsetmessages: + msg231055
2014-08-11 09:24:58berker.peksagsetstage: needs patch -> commit review
2014-08-11 06:51:49rhettingersetmessages: + msg225178
2014-08-10 10:30:29cvrebertsetmessages: + msg225136
2014-07-14 19:53:23bob.ippolitosetassignee: bob.ippolito -> rhettinger
2014-07-14 19:48:10rhettingersetmessages: + msg223051
2014-07-14 16:22:54bob.ippolitosetmessages: + msg223041
2014-07-14 16:14:59cvrebertsetmessages: + msg223040
2014-07-14 15:58:43bob.ippolitosetmessages: + msg223038
2014-07-14 08:56:48rhettingersetassignee: docs@python -> bob.ippolito

nosy: + bob.ippolito
2014-07-13 21:12:52cvrebertsetfiles: + json-rfc-7159_1.patch
keywords: + patch
messages: + msg222972
2014-05-16 07:15:07ezio.melottisetnosy: + rhettinger, pitrou, ezio.melotti
stage: needs patch
type: enhancement

versions: + Python 3.4
2014-05-16 04:52:48cvrebertcreate