You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

34 lines
918 B

import json as _json
import typing as _t
from types import ModuleType
class _CompactJSON:
"""Wrapper around json module that strips whitespace."""
@staticmethod
def loads(payload: _t.Union[str, bytes]) -> _t.Any:
return _json.loads(payload)
@staticmethod
def dumps(obj: _t.Any, **kwargs: _t.Any) -> str:
kwargs.setdefault("ensure_ascii", False)
kwargs.setdefault("separators", (",", ":"))
return _json.dumps(obj, **kwargs)
class DeprecatedJSON(ModuleType):
def __getattribute__(self, item: str) -> _t.Any:
import warnings
warnings.warn(
"Importing 'itsdangerous.json' is deprecated and will be"
" removed in ItsDangerous 2.1. Use Python's 'json' module"
" instead.",
DeprecationWarning,
stacklevel=2,
)
return getattr(_json, item)
json = DeprecatedJSON("json")