--- /dev/null
+from typing import Any, IO, Optional, Tuple, Callable, Dict, List, Union, Text\r
+\r
+class JSONDecodeError(ValueError):\r
+ def dumps(self, obj: Any) -> str: ...\r
+ def dump(self, obj: Any, fp: IO[str], *args: Any, **kwds: Any) -> None: ...\r
+ def loads(self, s: str) -> Any: ...\r
+ def load(self, fp: IO[str]) -> Any: ...\r
+\r
+def dumps(obj: Any,\r
+ skipkeys: bool = ...,\r
+ ensure_ascii: bool = ...,\r
+ check_circular: bool = ...,\r
+ allow_nan: bool = ...,\r
+ cls: Any = ...,\r
+ indent: Optional[int] = ...,\r
+ separators: Optional[Tuple[str, str]] = ...,\r
+ encoding: str = ...,\r
+ default: Optional[Callable[[Any], Any]] = ...,\r
+ sort_keys: bool = ...,\r
+ **kwds: Any) -> str: ...\r
+\r
+def dump(obj: Any,\r
+ fp: IO[str],\r
+ skipkeys: bool = ...,\r
+ ensure_ascii: bool = ...,\r
+ check_circular: bool = ...,\r
+ allow_nan: bool = ...,\r
+ cls: Any = ...,\r
+ indent: Optional[int] = ...,\r
+ separators: Optional[Tuple[str, str]] = ...,\r
+ encoding: str = ...,\r
+ default: Optional[Callable[[Any], Any]] = ...,\r
+ sort_keys: bool = ...,\r
+ **kwds: Any) -> None: ...\r
+\r
+def loads(s: Union[Text, bytes],\r
+ encoding: Any = ...,\r
+ cls: Any = ...,\r
+ object_hook: Optional[Callable[[Dict], Any]] = ...,\r
+ parse_float: Optional[Callable[[str], Any]] = ...,\r
+ parse_int: Optional[Callable[[str], Any]] = ...,\r
+ parse_constant: Optional[Callable[[str], Any]] = ...,\r
+ object_pairs_hook: Optional[Callable[[List[Tuple[Any, Any]]], Any]] = ...,\r
+ **kwds: Any) -> Any: ...\r
+\r
+def load(fp: IO[str],\r
+ encoding: Optional[str] = ...,\r
+ cls: Any = ...,\r
+ object_hook: Optional[Callable[[Dict], Any]] = ...,\r
+ parse_float: Optional[Callable[[str], Any]] = ...,\r
+ parse_int: Optional[Callable[[str], Any]] = ...,\r
+ parse_constant: Optional[Callable[[str], Any]] = ...,\r
+ object_pairs_hook: Optional[Callable[[List[Tuple[Any, Any]]], Any]] = ...,\r
+ **kwds: Any) -> Any: ...\r
+\r
+class JSONDecoder(object):\r
+ def __init__(self,\r
+ encoding: Union[Text, bytes] = ...,\r
+ object_hook: Callable[..., Any] = ...,\r
+ parse_float: Callable[[str], float] = ...,\r
+ parse_int: Callable[[str], int] = ...,\r
+ parse_constant: Callable[[str], Any] = ...,\r
+ strict: bool = ...,\r
+ object_pairs_hook: Callable[..., Any] = ...) -> None: ...\r
+\r
+ def decode(self, s: Union[Text, bytes], _w: Any = ...) -> Any: ...\r
+\r
+ def raw_decode(self,\r
+ s: Union[Text, bytes],\r
+ idx: int = ...) -> Tuple[Any, Any]: ...\r
+\r
+class JSONEncoder(object):\r
+ item_separator = ... # type: str\r
+ key_separator = ... # type: str\r
+ skipkeys = ... # type: bool\r
+ ensure_ascii = ... # type: bool\r
+ check_circular = ... # type: bool\r
+ allow_nan = ... # type: bool\r
+ sort_keys = ... # type: bool\r
+ indent = ... # type: int\r
+\r
+ def __init__(self,\r
+ skipkeys: bool = ...,\r
+ ensure_ascii: bool = ...,\r
+ check_circular: bool = ...,\r
+ allow_nan: bool = ...,\r
+ sort_keys: bool = ...,\r
+ indent: int = ...,\r
+ separators: Tuple[Union[Text, bytes], Union[Text, bytes]] = ...,\r
+ encoding: Union[Text, bytes] = ...,\r
+ default: Callable[..., Any] = ...) -> None: ...\r
+\r
+ def default(self, o: Any) -> Any: ...\r
+\r
+ def encode(self, o: Any) -> str: ...\r
+\r
+ def iterencode(self, o: Any, _one_shot: bool = ...) -> str: ...\r