summaryrefslogtreecommitdiffstats
path: root/Lib/json/scanner.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/json/scanner.py')
-rw-r--r--Lib/json/scanner.py20
1 files changed, 7 insertions, 13 deletions
diff --git a/Lib/json/scanner.py b/Lib/json/scanner.py
index 7a61cfc..74e6805 100644
--- a/Lib/json/scanner.py
+++ b/Lib/json/scanner.py
@@ -17,25 +17,25 @@ def py_make_scanner(context):
parse_array = context.parse_array
parse_string = context.parse_string
match_number = NUMBER_RE.match
+ encoding = context.encoding
strict = context.strict
parse_float = context.parse_float
parse_int = context.parse_int
parse_constant = context.parse_constant
object_hook = context.object_hook
object_pairs_hook = context.object_pairs_hook
- memo = context.memo
def _scan_once(string, idx):
try:
nextchar = string[idx]
except IndexError:
- raise StopIteration(idx) from None
+ raise StopIteration
if nextchar == '"':
- return parse_string(string, idx + 1, strict)
+ return parse_string(string, idx + 1, encoding, strict)
elif nextchar == '{':
- return parse_object((string, idx + 1), strict,
- _scan_once, object_hook, object_pairs_hook, memo)
+ return parse_object((string, idx + 1), encoding, strict,
+ _scan_once, object_hook, object_pairs_hook)
elif nextchar == '[':
return parse_array((string, idx + 1), _scan_once)
elif nextchar == 'n' and string[idx:idx + 4] == 'null':
@@ -60,14 +60,8 @@ def py_make_scanner(context):
elif nextchar == '-' and string[idx:idx + 9] == '-Infinity':
return parse_constant('-Infinity'), idx + 9
else:
- raise StopIteration(idx)
+ raise StopIteration
- def scan_once(string, idx):
- try:
- return _scan_once(string, idx)
- finally:
- memo.clear()
-
- return scan_once
+ return _scan_once
make_scanner = c_make_scanner or py_make_scanner