class_docstr: This object collects chunks from async get requests via __call__, and
  calls the underlying callback when the object is fully received, or if an
  exception while retrieving the object occurs.
  
  This is not used in synchronous gets (synchronous gets interact with the
  raylet servicer directly, not through the datapath).
  
  __call__ returns true once the underlying call back has been called.
class_docstr_tok: ["This","object","collects","chunks","from","async","get","requests","via","__call__",",","and","calls","the","underlying","callback","when","the","object","is","fully","received",",","or","if","an","exception","while","retrieving","the","object","occurs",".","This","is","not","used","in","synchronous","gets","(","synchronous","gets","interact","with","the","raylet","servicer","directly",",","not","through","the","datapath",")",".","__call__","returns","true","once","the","underlying","call","back","has","been","called","."]
code: def __init__(
      self,
      callback: ResponseCallable,
      request: ray_client_pb2.DataRequest,
  ):
      # Bytearray containing data received so far
      self.data = bytearray()
      # The callback that will be called once all data is received
      self.callback = callback
      # The id of the last chunk we've received, or -1 if haven't seen any yet
      self.last_seen_chunk = -1
      # The GetRequest that initiated the transfer. start_chunk_id will be
      # updated as chunks are received to avoid re-requesting chunks that
      # we've already received.
      self.request = request
  
imports: import math
  import logging
  import queue
  import threading
  import warnings
  import grpc
  from collections import OrderedDict
  from typing import Any, Callable, Dict, TYPE_CHECKING, Optional, Union
  import ray.core.generated.ray_client_pb2
  import ray.core.generated.ray_client_pb2_grpc
  from ray.util.client.common import INT32_MAX, OBJECT_TRANSFER_CHUNK_SIZE, OBJECT_TRANSFER_WARNING_SIZE
  from ray.util.debug import log_once
label_desc: Use image node_id 1 to create a new ChunkCollector object  with example: obj = ChunkCollector(callback, request)