docs: def _prep_clients(self, clients):
          """Prep a client by tagging it with and id and wrapping methods.
  
          Methods are wrapper to catch ConnectionError so that we can remove
          it from the pool until the instance comes back up.
  
          :returns: patched clients
          """
          for pool_id, client in enumerate(clients):
              # Tag it with an id we'll use to identify it in the pool
              if hasattr(client, "pool_id"):
                  raise ValueError("%r is already part of a pool.", client)
              setattr(client, "pool_id", pool_id)
              # Wrap all public functions
              self._wrap_functions(client)
          return clients