docs: def set_servers(self, node_couplets):
          """Set the current collection of servers. The entries are 2-tuples of 
          contexts and nodes.
          """
  
          node_couplets_s = set(node_couplets)
  
          if node_couplets_s != self.__node_couplets_s:
              _logger.info("Servers have changed. NEW: %s REMOVED: %s", 
                           node_couplets_s - self.__node_couplets_s, 
                           self.__node_couplets_s - node_couplets_s)
  
          # Since no servers means no connection greenlets, and the discover 
          # greenlet is technically scheduled and not running between 
          # invocations, this should successfully terminate the process.
          if not node_couplets_s:
              raise EnvironmentError("No servers available.")
  
          self.__node_couplets_s = node_couplets_s