def __init__(self, connections, dead_timeout=<NUM_LIT>, timeout_cutoff=<NUM_LIT:5>,<EOL>selector_class=RoundRobinSelector, randomize_hosts=True, **kwargs):
self.connection_opts = connections<EOL>self.connections = [c for (c, opts) in connections]<EOL>self.dead = PriorityQueue(len(self.connections))<EOL>self.dead_count = {}<EOL>if randomize_hosts:<EOL><INDENT>random.shuffle(self.connections)<EOL><DEDENT>self.dead_timeout = dead_timeout<EOL>self.timeout_cutoff = timeout_cutoff<EOL>self.selector = selector_class(dict(connections))<EOL>
:arg connections: list of tuples containing the
    :class:`~elasticsearch.Connection` instance and it's options
:arg dead_timeout: number of seconds a connection should be retired for
    after a failure, increases on consecutive failures
:arg timeout_cutoff: number of consecutive failures after which the
    timeout doesn't increase
:arg selector_class: :class:`~elasticsearch.ConnectionSelector`
    subclass to use
:arg randomize_hosts: shuffle the list of connections upon arrival to
    avoid dog piling effect across processes