diff --git a/distributed/protocol/serialize.py b/distributed/protocol/serialize.py index 1bea7ca496a..e504e59d3b5 100644 --- a/distributed/protocol/serialize.py +++ b/distributed/protocol/serialize.py @@ -157,14 +157,16 @@ def serialization_error_loads(header, frames): families = {} -def register_serialization_family(name, dumps, loads): - families[name] = (dumps, loads, dumps and has_keyword(dumps, "context")) +def register_serialization_family(name, dumps, loads, context=None): + if context is None: + context = has_keyword(dumps, "context") + families[name] = (dumps, loads, dumps and context) -register_serialization_family("dask", dask_dumps, dask_loads) -register_serialization_family("pickle", pickle_dumps, pickle_loads) -register_serialization_family("msgpack", msgpack_dumps, msgpack_loads) -register_serialization_family("error", None, serialization_error_loads) +register_serialization_family("dask", dask_dumps, dask_loads, True) +register_serialization_family("pickle", pickle_dumps, pickle_loads, True) +register_serialization_family("msgpack", msgpack_dumps, msgpack_loads, False) +register_serialization_family("error", None, serialization_error_loads, False) def check_dask_serializable(x): diff --git a/setup.py b/setup.py index 9160e1ffdc9..b36d6f65d26 100755 --- a/setup.py +++ b/setup.py @@ -47,6 +47,10 @@ "distributed.scheduler", sources=["distributed/scheduler.py"], ), + Extension( + "distributed.protocol.serialize", + sources=["distributed/protocol/serialize.py"], + ), ] for e in cyext_modules: e.cython_directives = {