absurdfarce commented on code in PR #1290:
URL:
https://github.com/apache/cassandra-python-driver/pull/1290#discussion_r3157196338
##########
cassandra/cluster.py:
##########
@@ -1424,26 +1424,26 @@ def _create_thread_pool_executor(self, **kwargs):
:return: A ThreadPoolExecutor instance.
"""
tpe_class = ThreadPoolExecutor
- if sys.version_info[0] >= 3 and sys.version_info[1] >= 7:
- try:
- from cassandra.io.eventletreactor import EventletConnection
- is_eventlet = issubclass(self.connection_class,
EventletConnection)
- except:
- # Eventlet is not available or can't be detected
- return tpe_class(**kwargs)
- if is_eventlet:
- try:
- from futurist import GreenThreadPoolExecutor
- tpe_class = GreenThreadPoolExecutor
- except ImportError:
- # futurist is not available
- raise ImportError(
- ("Python 3.7+ and Eventlet cause the
`concurrent.futures.ThreadPoolExecutor` "
- "to hang indefinitely. If you want to use the
Eventlet reactor, you "
- "need to install the `futurist` package to allow the
driver to use "
- "the GreenThreadPoolExecutor. See
https://github.com/eventlet/eventlet/issues/508 "
- "for more details."))
+ try:
+ from cassandra.io.eventletreactor import EventletConnection
+ is_eventlet = issubclass(self.connection_class, EventletConnection)
+ except ImportError:
+ # Eventlet is not available or can't be detected
+ return tpe_class(**kwargs)
+
+ if is_eventlet:
+ try:
+ from futurist import GreenThreadPoolExecutor
+ tpe_class = GreenThreadPoolExecutor
+ except ImportError:
+ # futurist is not available
+ raise ImportError(
+ ("Python 3.7+ and Eventlet cause the
`concurrent.futures.ThreadPoolExecutor` "
+ "to hang indefinitely. If you want to use the Eventlet
reactor, you "
+ "need to install the `futurist` package to allow the
driver to use "
+ "the GreenThreadPoolExecutor. See
https://github.com/eventlet/eventlet/issues/508 "
+ "for more details."))
Review Comment:
We should perhaps change this usage to be more consistent with the current
state of things on two fronts:
1. Remove the conditionals on Python versions
2. Recommend against eventlet anyways
Maybe something more like the following?
> When using eventlet the `concurrent.futures.ThreadPoolExecutor` will hang
indefinitely. If you want to use the eventlet reactor, you need to install the
`futurist` package to allow the driver to use the GreenThreadPoolExecutor. See
https://github.com/eventlet/eventlet/issues/508 for more details.
>
> Note that the eventlet reactor is deprecated and will be removed in
3.31.0. We strongly recommend using the asyncore or libev reactors for
production code.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]