Skip to content

Commit

Permalink
re-import orjson module for json serialization/deserialization (#294)
Browse files Browse the repository at this point in the history
* re-import orjson module for json serialization/deserialization

* fix test

Co-authored-by: Vikram Patki <54442035+patkivikram@users.noreply.github.com>
  • Loading branch information
YiuRULE and patkivikram authored May 19, 2022
1 parent 23307f3 commit 7cc93e8
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 7 deletions.
13 changes: 10 additions & 3 deletions faust/utils/json.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,10 @@
if typing.TYPE_CHECKING:
import orjson
else: # pragma: no cover
orjson = None # noqa
try:
import orjson
except ImportError:
orjson = None # noqa

DEFAULT_TEXTUAL_TYPES: List[Type] = [Decimal, uuid.UUID, bytes]

Expand Down Expand Up @@ -172,7 +175,6 @@ def dumps(
return json_dumps(
obj,
default=on_default,
option=orjson.OPT_NAIVE_UTC,
)

def loads(s: str, json_loads: Callable = orjson.loads, **kwargs: Any) -> Any:
Expand All @@ -188,7 +190,12 @@ def dumps(
**kwargs: Any,
) -> str:
"""Serialize to json. See :func:`json.dumps`."""
return json_dumps(obj, cls=cls, **dict(_JSON_DEFAULT_KWARGS, **kwargs))
return json_dumps(
obj,
cls=cls,
**dict(_JSON_DEFAULT_KWARGS, **kwargs),
separators=(",", ":"),
)

def loads(s: str, json_loads: Callable = json.loads, **kwargs: Any) -> Any:
"""Deserialize json string. See :func:`json.loads`."""
Expand Down
4 changes: 2 additions & 2 deletions tests/functional/test_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ def __init__(self, x, y, **kwargs):
assert p.y == 10

payload = p.dumps(serializer="json")
assert payload == b'{"x": 30, "y": 10}'
assert payload == b'{"x":30,"y":10}'

data = json.loads(payload)
p2 = Point.from_data(data)
Expand All @@ -128,7 +128,7 @@ def __post_init__(self):
assert p.z == 40

payload = p.dumps(serializer="json")
assert payload == b'{"x": 30, "y": 10}'
assert payload == b'{"x":30,"y":10}'

data = json.loads(payload)
p2 = Point.from_data(data)
Expand Down
4 changes: 2 additions & 2 deletions tests/unit/stores/test_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,15 +62,15 @@ async def test_on_rebalance(self, *, store):
)

def test_encode_key(self, *, store):
assert store._encode_key({"foo": 1}) == b'{"foo": 1}'
assert store._encode_key({"foo": 1}) == b'{"foo":1}'

def test_encode_key__cannot_be_None(self, *, store):
store.key_serializer = "raw"
with pytest.raises(TypeError):
store._encode_key(None)

def test_encode_value(self, *, store):
assert store._encode_value({"foo": 1}) == b'{"foo": 1}'
assert store._encode_value({"foo": 1}) == b'{"foo":1}'

def test_decode_key(self, *, store):
assert store._decode_key(b'{"foo": 1}') == {"foo": 1}
Expand Down

0 comments on commit 7cc93e8

Please sign in to comment.