Skip to content

Commit dab1de4

Browse files
authored
Added pickle serializer. (#232)
1 parent 4d0a7e3 commit dab1de4

File tree

3 files changed

+22
-0
lines changed

3 files changed

+22
-0
lines changed

taskiq/serializers/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@
33
from .json_serializer import JSONSerializer
44
from .msgpack_serializer import MSGPackSerializer
55
from .orjson_serializer import ORJSONSerializer
6+
from .pickle import PickleSerializer
67

78
__all__ = [
89
"JSONSerializer",
910
"ORJSONSerializer",
1011
"MSGPackSerializer",
1112
"CBORSerializer",
13+
"PickleSerializer",
1214
]

taskiq/serializers/pickle.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import pickle
2+
from typing import Any
3+
4+
from taskiq.abc.serializer import TaskiqSerializer
5+
6+
7+
class PickleSerializer(TaskiqSerializer):
8+
"""Serializer that uses pickle."""
9+
10+
def dumpb(self, value: Any) -> bytes:
11+
"""Dumps value to bytes."""
12+
return pickle.dumps(value)
13+
14+
def loadb(self, value: bytes) -> Any:
15+
"""Loads value from bytes."""
16+
return pickle.loads(value) # noqa: S301

tests/serializers/test_serializers.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
JSONSerializer,
1212
MSGPackSerializer,
1313
ORJSONSerializer,
14+
PickleSerializer,
1415
)
1516

1617

@@ -21,6 +22,7 @@
2122
ORJSONSerializer(),
2223
CBORSerializer(),
2324
MSGPackSerializer(),
25+
PickleSerializer(),
2426
],
2527
)
2628
@pytest.mark.parametrize(
@@ -43,6 +45,7 @@ def test_generic_serializer(serializer: TaskiqSerializer, data: Any) -> None:
4345
[
4446
ORJSONSerializer(),
4547
CBORSerializer(),
48+
PickleSerializer(),
4649
],
4750
)
4851
def test_uuid_serialization(serializer: TaskiqSerializer) -> None:
@@ -55,6 +58,7 @@ def test_uuid_serialization(serializer: TaskiqSerializer) -> None:
5558
[
5659
CBORSerializer(),
5760
MSGPackSerializer(),
61+
PickleSerializer(),
5862
],
5963
)
6064
def test_datetime_serialization(serializer: TaskiqSerializer) -> None:

0 commit comments

Comments
 (0)