code: def apply(self, func, **kwargs):
          
          oid = self.oid
          self.call_queue.append((func, kwargs))
  
          def call_queue_closure(oid_obj, call_queues):
              for func, kwargs in call_queues:
                  if isinstance(func, ray.ObjectID):
                      func = ray.get(func)
                  if isinstance(kwargs, ray.ObjectID):
                      kwargs = ray.get(kwargs)
  
                  oid_obj = func(oid_obj, **kwargs)
  
              return oid_obj
  
          oid = deploy_ray_func.remote(
              call_queue_closure, oid, kwargs={"call_queues": self.call_queue}
          )
          self.call_queue = []
  
          return PyarrowOnRayFramePartition(oid)
docs: Apply a function to the object stored in this partition.
  
          Note: It does not matter if func is callable or an ObjectID. Ray will
              handle it correctly either way. The keyword arguments are sent as a
              dictionary.
  
          Args:
              func: The function to apply.
  
          Returns:
              A RayRemotePartition object.