class_docstr: Abstract class for a node in a Ray task graph.
  
  A node has a type (e.g., FunctionNode), data (e.g., function options and
  body), arguments (Python values, DAGNodes, and DAGNodes nested within Python
  argument values) and options (Ray API .options() used for function, class
  or class method)
docstr: args:
      args (Tuple[Any]): Bound node arguments.
          ex: func_or_class.bind(1)
      kwargs (Dict[str, Any]): Bound node keyword arguments.
          ex: func_or_class.bind(a=1)
      options (Dict[str, Any]): Bound node options arguments.
          ex: func_or_class.options(num_cpus=2)
      other_args_to_resolve (Dict[str, Any]): Bound kwargs to resolve
          that's specific to subclass implementation without exposing
          as args in base class, example: ClassMethodNode
docstr_tok: ["args",":","args","(","Tuple","[","Any","]",")",":","Bound","node","arguments",".","ex",":","func_or_class.bind","(","1",")","kwargs","(","Dict","[","str",",","Any","]",")",":","Bound","node","keyword","arguments",".","ex",":","func_or_class.bind","(","a=1",")","options","(","Dict","[","str",",","Any","]",")",":","Bound","node","options","arguments",".","ex",":","func_or_class.options","(","num_cpus=2",")","other_args_to_resolve","(","Dict","[","str",",","Any","]",")",":","Bound","kwargs","to","resolve","that","'s","specific","to","subclass","implementation","without","exposing","as","args","in","base","class",",","example",":","ClassMethodNode"]
code: def __init__(
      self,
      args: Tuple[Any],
      kwargs: Dict[str, Any],
      options: Dict[str, Any],
      other_args_to_resolve: Dict[str, Any],
  ):
      """
      args:
          args (Tuple[Any]): Bound node arguments.
              ex: func_or_class.bind(1)
          kwargs (Dict[str, Any]): Bound node keyword arguments.
              ex: func_or_class.bind(a=1)
          options (Dict[str, Any]): Bound node options arguments.
              ex: func_or_class.options(num_cpus=2)
          other_args_to_resolve (Dict[str, Any]): Bound kwargs to resolve
              that's specific to subclass implementation without exposing
              as args in base class, example: ClassMethodNode
      """
      self._bound_args: Tuple[Any] = args or []
      self._bound_kwargs: Dict[str, Any] = kwargs or {}
      self._bound_options: Dict[str, Any] = options or {}
      self._bound_other_args_to_resolve: Optional[Dict[str, Any]] = (
          other_args_to_resolve or {}
      )
      # UUID that is not changed over copies of this node.
      self._stable_uuid = uuid.uuid4().hex
      # Cached values from last call to execute()
      self.cache_from_last_execute = {}
  
imports: import ray
  from ray.dag.base import DAGNodeBase
  from ray.dag.py_obj_scanner import _PyObjScanner
  from ray.util.annotations import DeveloperAPI
  from typing import Optional, Union, List, Tuple, Dict, Any, TypeVar, Callable
  import uuid
  import asyncio
  from ray.dag.compiled_dag_node import build_compiled_dag_from_ray_dag
label_desc: Use image node_id 1 to create a new DAGNode object from inherited base classes: DAGNodeBase with example: obj = DAGNode(args, kwargs, options, other_args_to_resolve)