code: def test__is_msgpack_serializable():
      assert _is_msgpack_serializable(None)
      assert _is_msgpack_serializable("a")
      assert _is_msgpack_serializable(1)
      assert _is_msgpack_serializable(1.0)
      assert _is_msgpack_serializable(b"0")
      assert _is_msgpack_serializable({"a": "b"})
      assert _is_msgpack_serializable(["a"])
      assert _is_msgpack_serializable(("a",))
  
      class C:
          def __hash__(self):
              return 5
  
      assert not _is_msgpack_serializable(["a", C()])
      assert not _is_msgpack_serializable(("a", C()))
      assert not _is_msgpack_serializable(C())
      assert not _is_msgpack_serializable({C(): "foo"})
      assert not _is_msgpack_serializable({"foo": C()})
  
imports: from __future__ import annotations
  import copy
  import pickle
  from array import array
  import msgpack
  import pytest
  from tlz import identity
  import dask
  from distributed import Nanny, wait
  from distributed.comm.utils import from_frames, to_frames
  from distributed.protocol import Serialize, Serialized, dask_serialize, deserialize, deserialize_bytes, dumps, loads, nested_deserialize, register_serialization, register_serialization_family, serialize, serialize_bytelist, serialize_bytes, to_serialize
  from distributed.protocol.serialize import _is_msgpack_serializable, check_dask_serializable
  from distributed.utils import ensure_memoryview, nbytes
  from distributed.utils_test import NO_AMM, gen_test, inc
  from dask import delayed
  from distributed.utils_test import gen_cluster
label_desc: Use image node_id 33 for calling a global function with example usage: test__is_msgpack_serializable() and returns: int