Search code examples
ipythonpickleipython-paralleldill

Tell IPython Parallel to use Pickle again after Dill has been activated


I'm developing a distributed application using IPython parallel. There are several tasks which are carried out one after another on the IPython cluster engines. One of these tasks inevitably makes use of closures. Hence, I have to tell IPython to use Dill instead of Pickle by calling dv.use_dill(). Though this should be temporarily.

Is there any way to activate Pickle again once Dill is enabled? I couldn't find any function (something of the form dv.use_pickle()) which would make such an option explicit.


Solution

  • I'm the dill author. I don't know if IPython does anything unusual, but you can revert to pickle if you like through dill directly with dill.extend(False)… although this is a relatively new feature (not yet in a stable release).

    If IPython doesn't have a dv.use_pickle() (it doesn't at the moment), it should… and could just use the above to do it.