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.
19 lines
473 B
19 lines
473 B
5 months ago
|
from __future__ import annotations
|
||
|
|
||
|
import json as _json
|
||
|
import typing as t
|
||
|
|
||
|
|
||
|
class _CompactJSON:
|
||
|
"""Wrapper around json module that strips whitespace."""
|
||
|
|
||
|
@staticmethod
|
||
|
def loads(payload: 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)
|