in pyignite/client.py [0:0]
def _connect(self, nodes):
# the following code is quite twisted, because the protocol version
# is initially unknown
# TODO: open first node in foreground, others − in background
for i, node in enumerate(nodes):
host, port = node
conn = Connection(self, host, port, **self._connection_args)
try:
if self.protocol_context is None or self.partition_aware:
# open connection before adding to the pool
conn.connect()
# now we have the protocol version
if not self.partition_aware:
# do not try to open more nodes
self._current_node = i
except connection_errors:
if self.partition_aware:
# schedule the reconnection
conn.reconnect()
self._nodes.append(conn)
if self.protocol_context is None:
raise ReconnectError('Can not connect.')