From 19a0fb83d08a29dd18e5280739f2f25c31f158d4 Mon Sep 17 00:00:00 2001 From: Joseph Weston <joseph.weston08@gmail.com> Date: Fri, 18 Aug 2017 11:52:37 +0200 Subject: [PATCH] correct checks for ipyparallel clients --- adaptive/runner.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/adaptive/runner.py b/adaptive/runner.py index 6fdef7e5..12455f67 100644 --- a/adaptive/runner.py +++ b/adaptive/runner.py @@ -84,10 +84,11 @@ class _AsyncExecutor: def _ensure_async_executor(executor, ioloop): - if isinstance(executor, concurrent.Executor): - pass - elif isinstance(executor, ipyparallel.Client): + if isinstance(executor, ipyparallel.Client): executor = executor.executor() + elif isinstance(executor, (concurrent.ProcessPoolExecutor, + concurrent.ThreadPoolExecutor)): + pass elif executor is None: executor = concurrent.ProcessPoolExecutor() else: @@ -102,10 +103,11 @@ def _get_executor_ncores(executor): if isinstance(executor, _AsyncExecutor): executor = executor.executor - if isinstance(executor, concurrent.Executor): + if isinstance(executor, ipyparallel.client.view.ViewExecutor): + return len(executor.view) + elif isinstance(executor, (concurrent.ProcessPoolExecutor, + concurrent.ThreadPoolExecutor)): return executor._max_workers # not public API! - elif isinstance(executor, ipyparallel.Client): - return len(executor) else: raise TypeError('Only concurrent.futures.Executors or ipyparallel ' 'clients can be used.') -- GitLab