1+ from _typeshed import Incomplete
12from collections .abc import Callable
23from re import Match
34from typing import Any , Literal
45
56class JSONDecoder :
67 encoding : str
78 object_hook : Callable [[dict [Any , Any ]], Any ] | None
9+ # transforms a list of (key, json_value) pairs to an arbitrary value
10+ object_pairs_hook : Callable [[list [tuple [str , Any ]]], Any ] | None
811 parse_float : Callable [[str ], Any ] | None
912 parse_int : Callable [[str ], Any ] | None
1013 parse_constant : Callable [[str ], Any ] | None
1114 strict : bool
12- object_pairs_hook : Callable [[list [tuple [Any , Any ]]], Any ] | None
15+ array_hook : Callable [[list [Any ]], Any ] | None # transforms a JSON value to an arbitrary value
16+ # They have many parameters, it might be better to use Protocol:
17+ parse_object : Callable [..., tuple [Incomplete , int ]]
18+ parse_array : Callable [..., tuple [Incomplete , int ]]
19+ parse_string : Callable [..., tuple [Incomplete , int ]]
1320 memo : dict [Any , Any ]
1421 scan_once : Callable [[str , int ], tuple [bool , int ]]
1522
@@ -23,6 +30,7 @@ class JSONDecoder:
2330 strict : bool = True ,
2431 object_pairs_hook : Callable [[list [tuple [Any , Any ]]], Any ] | None = None ,
2532 allow_nan : bool = False ,
33+ array_hook : Callable [[list [Any ]], Any ] | None = None , # transforms a JSON value to an arbitrary value
2634 ) -> None : ...
2735 def decode (self , s : str , _w : Callable [[str , int ], Match [str ]] = ..., _PY3 : Literal [True ] = True ) -> Any : ...
2836 def raw_decode (
0 commit comments