[Python-checkins] cpython (merge 3.2 -> default): Issue #5067: improve some json error messages.
antoine.pitrou
python-checkins at python.org
Fri Jun 29 02:03:51 CEST 2012
http://hg.python.org/cpython/rev/7523ab4e6e06
changeset: 77841:7523ab4e6e06
parent: 77839:c974c99acdf5
parent: 77840:9854520c8200
user: Antoine Pitrou <solipsis at pitrou.net>
date: Fri Jun 29 01:59:54 2012 +0200
summary:
Issue #5067: improve some json error messages.
Patch by Serhiy Storchaka.
files:
Doc/library/json.rst | 2 +-
Lib/json/__init__.py | 2 +-
Lib/json/decoder.py | 12 +++++++-----
Lib/json/tool.py | 2 +-
Modules/_json.c | 8 ++++----
5 files changed, 14 insertions(+), 12 deletions(-)
diff --git a/Doc/library/json.rst b/Doc/library/json.rst
--- a/Doc/library/json.rst
+++ b/Doc/library/json.rst
@@ -99,7 +99,7 @@
"json": "obj"
}
$ echo '{1.2:3.4}' | python -mjson.tool
- Expecting property name: line 1 column 1 (char 1)
+ Expecting property name enclosed in double quotes: line 1 column 1 (char 1)
.. highlight:: python3
diff --git a/Lib/json/__init__.py b/Lib/json/__init__.py
--- a/Lib/json/__init__.py
+++ b/Lib/json/__init__.py
@@ -97,7 +97,7 @@
"json": "obj"
}
$ echo '{ 1.2:3.4}' | python -m json.tool
- Expecting property name: line 1 column 2 (char 2)
+ Expecting property name enclosed in double quotes: line 1 column 2 (char 2)
"""
__version__ = '2.0.9'
__all__ = [
diff --git a/Lib/json/decoder.py b/Lib/json/decoder.py
--- a/Lib/json/decoder.py
+++ b/Lib/json/decoder.py
@@ -172,7 +172,8 @@
pairs = object_hook(pairs)
return pairs, end + 1
elif nextchar != '"':
- raise ValueError(errmsg("Expecting property name", s, end))
+ raise ValueError(errmsg(
+ "Expecting property name enclosed in double quotes", s, end))
end += 1
while True:
key, end = scanstring(s, end, strict)
@@ -182,7 +183,7 @@
if s[end:end + 1] != ':':
end = _w(s, end).end()
if s[end:end + 1] != ':':
- raise ValueError(errmsg("Expecting : delimiter", s, end))
+ raise ValueError(errmsg("Expecting ':' delimiter", s, end))
end += 1
try:
@@ -210,12 +211,13 @@
if nextchar == '}':
break
elif nextchar != ',':
- raise ValueError(errmsg("Expecting , delimiter", s, end - 1))
+ raise ValueError(errmsg("Expecting ',' delimiter", s, end - 1))
end = _w(s, end).end()
nextchar = s[end:end + 1]
end += 1
if nextchar != '"':
- raise ValueError(errmsg("Expecting property name", s, end - 1))
+ raise ValueError(errmsg(
+ "Expecting property name enclosed in double quotes", s, end - 1))
if object_pairs_hook is not None:
result = object_pairs_hook(pairs)
return result, end
@@ -249,7 +251,7 @@
if nextchar == ']':
break
elif nextchar != ',':
- raise ValueError(errmsg("Expecting , delimiter", s, end))
+ raise ValueError(errmsg("Expecting ',' delimiter", s, end))
try:
if s[end] in _ws:
end += 1
diff --git a/Lib/json/tool.py b/Lib/json/tool.py
--- a/Lib/json/tool.py
+++ b/Lib/json/tool.py
@@ -7,7 +7,7 @@
"json": "obj"
}
$ echo '{ 1.2:3.4}' | python -m json.tool
- Expecting property name: line 1 column 2 (char 2)
+ Expecting property name enclosed in double quotes: line 1 column 2 (char 2)
"""
import sys
diff --git a/Modules/_json.c b/Modules/_json.c
--- a/Modules/_json.c
+++ b/Modules/_json.c
@@ -646,7 +646,7 @@
/* read key */
if (PyUnicode_READ(kind, str, idx) != '"') {
- raise_errmsg("Expecting property name", pystr, idx);
+ raise_errmsg("Expecting property name enclosed in double quotes", pystr, idx);
goto bail;
}
key = scanstring_unicode(pystr, idx + 1, strict, &next_idx);
@@ -667,7 +667,7 @@
/* skip whitespace between key and : delimiter, read :, skip whitespace */
while (idx <= end_idx && IS_WHITESPACE(PyUnicode_READ(kind, str, idx))) idx++;
if (idx > end_idx || PyUnicode_READ(kind, str, idx) != ':') {
- raise_errmsg("Expecting : delimiter", pystr, idx);
+ raise_errmsg("Expecting ':' delimiter", pystr, idx);
goto bail;
}
idx++;
@@ -707,7 +707,7 @@
break;
}
else if (PyUnicode_READ(kind, str, idx) != ',') {
- raise_errmsg("Expecting , delimiter", pystr, idx);
+ raise_errmsg("Expecting ',' delimiter", pystr, idx);
goto bail;
}
idx++;
@@ -797,7 +797,7 @@
break;
}
else if (PyUnicode_READ(kind, str, idx) != ',') {
- raise_errmsg("Expecting , delimiter", pystr, idx);
+ raise_errmsg("Expecting ',' delimiter", pystr, idx);
goto bail;
}
idx++;
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list