code: def dump(
      pickler: "TableRemotePersistentPickler", obj: "KVTable"
  ) -> Any:
      from fate.arch.computing.api import KVTable
  
      assert isinstance(obj, KVTable)
      key = pickler._get_next_table_key()
      pickler._push_table(obj, key)
      return _TablePersistentId(
          key=key,
          table_meta=TableMeta(
              num_partitions=obj.num_partitions,
              key_serdes_type=obj.key_serdes_type,
              value_serdes_type=obj.value_serdes_type,
              partitioner_type=obj.partitioner_type,
          ),
      )
  
imports: import io
  import logging
  import pickle
  import struct
  import typing
  from typing import Any, List, Tuple, TypeVar
  from fate.arch.config import cfg
  from ._table_meta import TableMeta
  from ._type import PartyMeta
label_desc: Use image node_id 2 for calling the _TablePersistentId obj's underlying member method code with example usage: obj.dump(pickler, obj) and returns: _TablePersistentId