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
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