# Module: `kernel.zmq.serialize`

serialization utilities for apply messages

## 4 Functions

`IPython.kernel.zmq.serialize.``serialize_object`(obj, buffer_threshold=1024, item_threshold=64)

  Serialize an object into a list of sendable buffers.

  Parameters:

  obj : object

  > The object to be serialized

  buffer_threshold : int

  > The threshold (in bytes) for pulling out data buffers to avoid pickling them.

  item_threshold : int

  > The maximum number of items over which canning will iterate. Containers (lists, dicts) larger than this will be pickled without introspection.

  Returns: | [bufs] : list of buffers representing the serialized object.

`IPython.kernel.zmq.serialize.``unserialize_object`(buffers, g=None)

  reconstruct an object serialized by serialize_object from data buffers.

  Parameters: | bufs : list of buffers/bytes g : globals to be used when uncanning
  Returns: | (newobj, bufs) : unpacked object, and the list of remaining unused buffers.

`IPython.kernel.zmq.serialize.``pack_apply_message`(f, args, kwargs, buffer_threshold=1024, item_threshold=64)

  pack up a function, args, and kwargs to be sent over the wire

  Each element of args/kwargs will be canned for special treatment, but inspection will not go any deeper than that.

  Any object whose data is larger than threshold will not have their data copied (only numpy arrays and bytes/buffers support zero-copy)

  Message will be a list of bytes/buffers of the format:

  [ cf, pinfo, <arg_bufs>, <kwarg_bufs> ]

  With length at least two + len(args) + len(kwargs)

`IPython.kernel.zmq.serialize.``unpack_apply_message`(bufs, g=None, copy=True)

  unpack f,args,kwargs from buffers packed by pack_apply_message() Returns: original f,args,kwargs