Skip to content

Commit 7452376

Browse files
committed
expose functions for getting available connection classes
Logic is already there, confine it into functions to be used by tests.
1 parent f4d8d46 commit 7452376

File tree

1 file changed

+23
-2
lines changed

1 file changed

+23
-2
lines changed

cassandra/cluster.py

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,8 +192,29 @@ def _connection_reduce_fn(val,import_fn):
192192

193193
log = logging.getLogger(__name__)
194194

195-
conn_fns = (_try_gevent_import, _try_eventlet_import, _try_libev_import, _try_asyncore_import, _try_twisted_import)
196-
(conn_class, excs) = reduce(_connection_reduce_fn, conn_fns, (None,[]))
195+
def get_all_supported_connections_classes():
196+
classes = []
197+
excs = []
198+
for try_fn in (_try_gevent_import, _try_eventlet_import, _try_libev_import, _try_asyncore_import, _try_twisted_import):
199+
conn, exc = try_fn()
200+
if conn is not None:
201+
classes.append(conn)
202+
else:
203+
excs.append(exc)
204+
return tuple(classes), tuple(excs)
205+
206+
def get_default_connection_class():
207+
excs = []
208+
for try_fn in (_try_gevent_import, _try_eventlet_import, _try_libev_import, _try_asyncore_import, _try_twisted_import):
209+
conn, exc = try_fn()
210+
if conn is not None:
211+
return conn, None
212+
else:
213+
excs.append(exc)
214+
return None, tuple(excs)
215+
216+
217+
(conn_class, excs) = get_default_connection_class()
197218
if not conn_class:
198219
raise DependencyException("Unable to load a default connection class", excs)
199220
DefaultConnection = conn_class

0 commit comments

Comments
 (0)