code: def _do_export(self, remote_function):
          
          if self._worker.load_code_from_local:
              return
          # Work around limitations of Python pickling.
          function = remote_function._function
          function_name_global_valid = function.__name__ in function.__globals__
          function_name_global_value = function.__globals__.get(
              function.__name__)
          # Allow the function to reference itself as a global variable
          if not is_cython(function):
              function.__globals__[function.__name__] = remote_function
          try:
              pickled_function = pickle.dumps(function)
          finally:
              # Undo our changes
              if function_name_global_valid:
                  function.__globals__[function.__name__] = (
                      function_name_global_value)
              else:
                  del function.__globals__[function.__name__]
  
          check_oversized_pickle(pickled_function,
                                 remote_function._function_name,
                                 "remote function", self._worker)
          key = (b"RemoteFunction:" + self._worker.task_driver_id.binary() + b":"
                 + remote_function._function_descriptor.function_id.binary())
          self._worker.redis_client.hmset(
              key, {
                  "driver_id": self._worker.task_driver_id.binary(),
                  "function_id": remote_function._function_descriptor.
                  function_id.binary(),
                  "name": remote_function._function_name,
                  "module": function.__module__,
                  "function": pickled_function,
                  "max_calls": remote_function._max_calls
              })
          self._worker.redis_client.rpush("Exports", key)
docs: Pickle a remote function and export it to redis.
  
          Args:
              remote_function: the RemoteFunction object.