hunk.code_window:     num_gpus_per_raylet = 5
       for i in range(num_nodes):
           cluster.add_node(
               num_cpus=10 * num_gpus_per_raylet,
               num_gpus=num_gpus_per_raylet,
               _system_config={"num_heartbeats_timeout": 1000} if i == 0 else {})
       ray.init(address=cluster.address)
       @ray.remote
       def create_actors(i, n):
           @ray.remote(num_gpus=1)
  
hunk.labels: keep keep keep keep keep replace keep keep keep keep keep
hunk.after_edit:             _system_config={"num_heartbeats_timeout": 100} if i == 0 else {})
  
hunk.file_path: python/ray/tests/test_actor_resources.py
hunk.type: replace
file: package io.ray.runtime.functionmanager;
  
  import io.ray.runtime.generated.Common.Language;
  import java.util.List;
  
  /**
   * Base interface of a Ray task's function descriptor.
   *
   * <p>A function descriptor is a list of strings that can uniquely describe a function. It's used to
   * load a function in workers.
   */
  public interface FunctionDescriptor {
  
    /** Returns A list of strings represents the functions. */
    List<String> toList();
  
    /** Returns The language of the function. */
    Language getLanguage();
  }
  