docs: def copy(self):
          """
          Create an inactive copy of the client object, suitable for passing
          to a separate thread.
  
          Note that the copied connections are not initialized, so reinit() must
          be called on the returned copy.
          """
          c = copy.deepcopy(self)
          for key in c.conns:
              c.conns[key] = self.conns[key].copy()
          return c