diff --git a/econtext/core.py b/econtext/core.py index 9d5023f5..a9a07ed0 100644 --- a/econtext/core.py +++ b/econtext/core.py @@ -955,8 +955,6 @@ class ExternalContext(object): The :py:class:`IoLogger` connected to ``stderr``. """ - forwarder = None - def _setup_master(self, parent_id, context_id, key): self.broker = Broker() self.router = Router(self.broker) @@ -989,7 +987,7 @@ class ExternalContext(object): core_src = '\n'.join(core_src.splitlines()[:-1]) fp.close() - self.importer = Importer(self.master, core_src) + self.importer = Importer(self.parent, core_src) sys.meta_path.append(self.importer) def _setup_package(self, context_id): diff --git a/econtext/master.py b/econtext/master.py index 869a651c..34409e14 100644 --- a/econtext/master.py +++ b/econtext/master.py @@ -261,7 +261,7 @@ class ModuleForwarder(object): return 'ModuleForwarder(%r)' % (self.context,) def _on_get_module(self, msg): - LOG.debug('%r._on_get_module(%r, %r)', self, msg) + LOG.debug('%r._on_get_module(%r)', self, msg) if msg == econtext.core._DEAD: return @@ -289,7 +289,7 @@ class ModuleForwarder(object): def _on_got_source(self, msg, original_msg): LOG.debug('%r._on_got_source(%r, %r)', self, msg, original_msg) fullname = original_msg.data - self.importer._cache[fullname] = msg.unpickled() + self.importer._cache[fullname] = msg.unpickle() self.context.send( econtext.core.Message( data=msg.data, @@ -470,12 +470,16 @@ class Context(econtext.core.Context): def _proxy_connect(econtext, name, context_id, klass, kwargs): econtext.router.__class__ = Router # TODO + context = econtext.router._connect( context_id, klass, name=name, **kwargs ) + + LOG.debug('_proxy_connect(): constructing ModuleForwarder for %r', context) + ModuleForwarder(context, econtext.parent, econtext.importer) return context.name