code: def start(self) -> "PIDClient":
      if self.sock is not None:
          return self
      try:
          if isinstance(self.addr, str):
              # Unix socket.
              self.sock = socket.socket(family=socket.AF_UNIX)
              self.sock.connect(self.addr)
          elif isinstance(self.addr, int):
              self.sock = socket.socket()
              self.sock.connect(("127.0.0.1", self.addr))
          else:
              # An address and a port.
              self.sock = socket.socket()
              self.sock.connect(self.addr)
          # Send our PID to the PIDServer.
          self.sock.send(b"%d\n" % os.getpid())
          return self
      except Exception:
          self.close(graceful=False)
          raise
  
imports: import logging
  import os
  import selectors
  import signal
  import socket
  import subprocess
  import time
  from typing import Any, Callable, Dict, List, Optional, Tuple, Union
  import determined
label_desc: Use image node_id 2 for calling the PIDClient obj's underlying member method code with example usage: obj.start() and returns: self, self