class_docstr: A remote function.
  
  This is a decorated function. It can be used to spawn tasks.
  
  Attributes:
      _language: The target language.
      _function: The original function.
      _function_descriptor: The function descriptor. This is not defined
          until the remote function is first invoked because that is when the
          function is pickled, and the pickled function is used to compute
          the function descriptor.
      _function_name: The module and function name.
      _num_cpus: The default number of CPUs to use for invocations of this
          remote function.
      _num_gpus: The default number of GPUs to use for invocations of this
          remote function.
      _memory: The heap memory request in bytes for this task/actor,
          rounded down to the nearest integer.
      _resources: The default custom resource requirements for invocations of
          this remote function.
      _num_returns: The default number of return values for invocations
          of this remote function.
      _max_calls: The number of times a worker can execute this function
          before exiting.
      _max_retries: The number of times this task may be retried
          on worker failure.
      _retry_exceptions: Whether application-level errors should be retried.
          This can be a boolean or a list/tuple of exceptions that should be retried.
      _runtime_env: The runtime environment for this task.
      _decorator: An optional decorator that should be applied to the remote
          function invocation (as opposed to the function execution) before
          invoking the function. The decorator must return a function that
          takes in two arguments ("args" and "kwargs"). In most cases, it
          should call the function that was passed into the decorator and
          return the resulting ObjectRefs. For an example, see
          "test_decorated_function" in "python/ray/tests/test_basic.py".
      _function_signature: The function signature.
      _last_export_session_and_job: A pair of the last exported session
          and job to help us to know whether this function was exported.
          This is an imperfect mechanism used to determine if we need to
          export the remote function again. It is imperfect in the sense that
          the actor class definition could be exported multiple times by
          different workers.
      _scheduling_strategy: Strategy about how to schedule
          this remote function.
class_docstr_tok: ["A","remote","function",".","This","is","a","decorated","function",".","It","can","be","used","to","spawn","tasks",".","Attributes",":","_language",":","The","target","language",".","_function",":","The","original","function",".","_function_descriptor",":","The","function","descriptor",".","This","is","not","defined","until","the","remote","function","is","first","invoked","because","that","is","when","the","function","is","pickled",",","and","the","pickled","function","is","used","to","compute","the","function","descriptor",".","_function_name",":","The","module","and","function","name",".","_num_cpus",":","The","default","number","of","CPUs","to","use","for","invocations","of","this","remote","function",".","_num_gpus",":","The","default","number","of","GPUs","to","use","for","invocations","of","this","remote","function",".","_memory",":","The","heap","memory","request","in","bytes","for","this","task\/actor",",","rounded","down","to","the","nearest","integer",".","_resources",":","The","default","custom","resource","requirements","for","invocations","of","this","remote","function",".","_num_returns",":","The","default","number","of","return","values","for","invocations","of","this","remote","function",".","_max_calls",":","The","number","of","times","a","worker","can","execute","this","function","before","exiting",".","_max_retries",":","The","number","of","times","this","task","may","be","retried","on","worker","failure",".","_retry_exceptions",":","Whether","application-level","errors","should","be","retried",".","This","can","be","a","boolean","or","a","list\/tuple","of","exceptions","that","should","be","retried",".","_runtime_env",":","The","runtime","environment","for","this","task",".","_decorator",":","An","optional","decorator","that","should","be","applied","to","the","remote","function","invocation","(","as","opposed","to","the","function","execution",")","before","invoking","the","function",".","The","decorator","must","return","a","function","that","takes","in","two","arguments","(","``","args","''","and","``","kwargs","''",")",".","In","most","cases",",","it","should","call","the","function","that","was","passed","into","the","decorator","and","return","the","resulting","ObjectRefs",".","For","an","example",",","see","``","test_decorated_function","''","in","``","python\/ray\/tests\/test_basic.py","''",".","_function_signature",":","The","function","signature",".","_last_export_session_and_job",":","A","pair","of","the","last","exported","session","and","job","to","help","us","to","know","whether","this","function","was","exported",".","This","is","an","imperfect","mechanism","used","to","determine","if","we","need","to","export","the","remote","function","again",".","It","is","imperfect","in","the","sense","that","the","actor","class","definition","could","be","exported","multiple","times","by","different","workers",".","_scheduling_strategy",":","Strategy","about","how","to","schedule","this","remote","function","."]
code: def __setstate__(self, state):
      self.__dict__.update(state)
      self.__dict__["_inject_lock"] = Lock()
  
imports: import inspect
  import logging
  import os
  import uuid
  from functools import wraps
  from threading import Lock
  import ray._private.signature
  from ray import Language, cross_language
  from ray._private import ray_option_utils
  from ray._private.auto_init_hook import wrap_auto_init
  from ray._private.client_mode_hook import client_mode_convert_function, client_mode_should_convert
  from ray._private.ray_option_utils import _warn_if_using_deprecated_placement_group
  from ray._private.serialization import pickle_dumps
  from ray._private.utils import get_runtime_env_info, parse_runtime_env
  from ray._raylet import STREAMING_GENERATOR_RETURN, ObjectRefGenerator, PythonFunctionDescriptor
  from ray.util.annotations import DeveloperAPI, PublicAPI
  from ray.util.placement_group import _configure_placement_group_based_on_context
  from ray.util.scheduling_strategies import PlacementGroupSchedulingStrategy
  from ray.util.tracing.tracing_helper import _inject_tracing_into_function, _tracing_task_invocation
label_desc: Use image node_id 4 for calling the RemoteFunction obj's underlying member method code with example usage: obj.__setstate__(state) without return types