Browse code

remove lambda check

Bas Nijholt authored on 24/10/2019 15:55:01
Showing 1 changed files
... ...
@@ -9,7 +9,6 @@ import pickle
9 9
 import sys
10 10
 import time
11 11
 import traceback
12
-import types
13 12
 import warnings
14 13
 from contextlib import suppress
15 14
 
... ...
@@ -497,17 +496,16 @@ class AsyncRunner(BaseRunner):
497 496
                 return False
498 497
 
499 498
         if executor is None:
500
-            if isinstance(learner.function, types.LambdaType):
501
-                raise ValueError(
502
-                    "A lambda function cannot be pickled and "
503
-                    "therefore doesn't work with the default executor."
504
-                    "Either do not use a lamdba or use a framework that"
505
-                    " allows this, e.g. `ipyparallel` with `dill`."
506
-                )
507 499
             try:
508 500
                 pickle.dumps(learner.function)
509 501
             except pickle.PicklingError:
510
-                raise ValueError("`learner.function` needs to be pickleble.")
502
+                raise ValueError(
503
+                    "`learner.function` cannot be pickled (is it a lamdba function?)"
504
+                    " and therefore does not work with the default executor."
505
+                    " Either make sure the function is pickleble or use an executor"
506
+                    " that might work with 'hard to pickle'-functions"
507
+                    " , e.g. `ipyparallel` with `dill`."
508
+                )
511 509
 
512 510
         super().__init__(
513 511
             learner,