Let's setup a parallel environment:
from IPython.parallel import Client
rc = Client()
Let's define some classes in the local client interactive session:
class AClass(object):
def __init__(self, a):
self.a = a
def a_method(self, b):
return self.a + b
class BClass(AClass):
def b_method(self, b):
return self.a_method(b) * 2
b = BClass(3)
b.b_method(4)
14
Let's try to send those class definition to the engines for remote execution:
rc[:]['AClass'] = AClass
rc[:]['BClass'] = BClass
%%px
b = BClass(3)
b.b_method(4)
[0:execute]: --------------------------------------------------------------------------- NameError Traceback (most recent call last)<ipython-input-6-29247480be1e> in <module>() ----> 1 b = BClass(3) 2 b.b_method(4) NameError: name 'BClass' is not defined [1:execute]: --------------------------------------------------------------------------- NameError Traceback (most recent call last)<ipython-input-6-29247480be1e> in <module>() ----> 1 b = BClass(3) 2 b.b_method(4) NameError: name 'BClass' is not defined