33import itertools
44import logging
55from asyncio import CancelledError
6- from wolframclient .utils .asyncio import get_event_loop
76
87from wolframclient .evaluation .base import WolframAsyncEvaluator
98from wolframclient .evaluation .kernel .asyncsession import WolframLanguageAsyncSession
@@ -71,7 +70,9 @@ def __init__(
7170 ):
7271 super ().__init__ ()
7372 if poolsize <= 0 :
74- raise ValueError ("Invalid pool size value %i. Expecting a positive integer." % poolsize )
73+ raise ValueError (
74+ "Invalid pool size value %i. Expecting a positive integer." % poolsize
75+ )
7576 self ._queue = asyncio .Queue (load_factor * poolsize )
7677 self .async_language_session_class = async_language_session_class
7778 self ._evaluators = set ()
@@ -94,9 +95,7 @@ def __init__(
9495
9596 def _add_evaluator (self , evaluator , ** kwargs ):
9697 if evaluator is None or isinstance (evaluator , six .string_types ):
97- self ._evaluators .add (
98- self .async_language_session_class (kernel = evaluator , ** kwargs )
99- )
98+ self ._evaluators .add (self .async_language_session_class (kernel = evaluator , ** kwargs ))
10099 elif isinstance (evaluator , WolframAsyncEvaluator ):
101100 if evaluator in self ._evaluators :
102101 self ._evaluators .add (evaluator .duplicate ())
@@ -167,7 +166,9 @@ async def _async_start_kernel(self, kernel):
167166 )
168167 await kernel .stop ()
169168 except asyncio .CancelledError :
170- logger .info ("Cancelled signal during kernel termination following a failed start." )
169+ logger .info (
170+ "Cancelled signal during kernel termination following a failed start."
171+ )
171172 except Exception as e2 :
172173 logger .info ("Exception raised during clean-up after failed start: %s" , e2 )
173174
@@ -193,7 +194,8 @@ async def start(self):
193194 self .stopped = False
194195 # keep track of the init tasks. We have to wait before terminating.
195196 self ._kernel_start_tasks = {
196- asyncio .ensure_future (self ._async_start_kernel (kernel )) for kernel in self ._evaluators
197+ asyncio .ensure_future (self ._async_start_kernel (kernel ))
198+ for kernel in self ._evaluators
197199 }
198200 # uninitialized kernels are removed if they failed to start
199201 # if they do start, the task is added to _kernel_evaluation_loop_tasks.
@@ -205,7 +207,9 @@ async def start(self):
205207 _ , self ._kernel_start_tasks = await asyncio .wait (
206208 self ._kernel_start_tasks , return_when = asyncio .FIRST_COMPLETED
207209 )
208- logger .info ("Pool initialized with %i running kernels" , len (self ._kernel_evaluation_loop_tasks ))
210+ logger .info (
211+ "Pool initialized with %i running kernels" , len (self ._kernel_evaluation_loop_tasks )
212+ )
209213
210214 async def stop (self ):
211215
@@ -288,6 +292,7 @@ def parallel_evaluate(expressions, evaluator_spec=None, max_evaluators=4):
288292 Note that each evaluation should be independent and not rely on any previous one. There is no guarantee that two
289293 given expressions evaluate on the same kernel.
290294 """
295+
291296 async def cor ():
292297 async with WolframEvaluatorPool (evaluator_spec , poolsize = max_evaluators ) as pool :
293298 return await pool .evaluate_all (expressions )
0 commit comments