class_docstr: Exposes a Python instance as a Courier server.
  
  This will initialize the object and expose all its public methods as Courier
  RPC methods. Attributes and method names starting with underscore will not be
  exposed. After that, run() will be called if it's provided.
  
  When run() is provided, the server will terminate at the end of run().
  Otherwise, it will serve indefinitely (until the job/experiment terminates).
  
  
  Advanced usage: if the object has a set_courier_server() method, it will be
  called with the courier server object passed in as the only argument. The
  courier server will then be managed by the user (e.g., need to manually call
  Start() of the courier server).
class_docstr_tok: ["Exposes","a","Python","instance","as","a","Courier","server",".","This","will","initialize","the","object","and","expose","all","its","public","methods","as","Courier","RPC","methods",".","Attributes","and","method","names","starting","with","underscore","will","not","be","exposed",".","After","that",",","run","(",")","will","be","called","if","it","'s","provided",".","When","run","(",")","is","provided",",","the","server","will","terminate","at","the","end","of","run","(",")",".","Otherwise",",","it","will","serve","indefinitely","(","until","the","job\/experiment","terminates",")",".","Advanced","usage",":","if","the","object","has","a","set_courier_server","(",")","method",",","it","will","be","called","with","the","courier","server","object","passed","in","as","the","only","argument",".","The","courier","server","will","then","be","managed","by","the","user","(","e.g.",",","need","to","manually","call","Start","(",")","of","the","courier","server",")","."]
docstr: See `Node.create_handle`.
docstr_tok: ["See","`","Node.create_handle","`","."]
code: def create_handle(self) -> CourierHandle:
      """See `Node.create_handle`."""
      return self._track_handle(
          CourierHandle(self._address, **self._courier_client_kwargs)
      )
  
imports: import datetime
  from typing import Any, Callable, Generic, Optional, Mapping, TypeVar
  from absl import logging
  import courier
  from launchpad import address
  from launchpad import flags
  from launchpad.launch import worker_manager
  from launchpad.launch import worker_manager_v2
  from launchpad.nodes import base
  from launchpad.nodes.courier import courier_utils
  from launchpad.nodes.python import node
label_desc: Use image node_id 3 for calling the CourierNode obj's underlying member method code with example usage: obj.create_handle() and returns: self