Inheritance diagram for IPython.kernel.multiengine:
Adapt the IPython ControllerServer to IMultiEngine.
This module provides classes that adapt a ControllerService to the IMultiEngine interface. This interface is a basic interactive interface for working with a set of engines where it is desired to have explicit access to each registered engine.
The classes here are exposed to the network in files like:
Interface to multiple engines implementing IEngineCore/Serialized/Queued.
This class simply acts as a multiplexer of methods that are in the various IEngines* interfaces. Thus the methods here are jut like those in the IEngine* interfaces, but with an extra first argument, targets. The targets argument can have the following forms:
If targets is bad in any way, an InvalidEngineID will be raised. This includes engines not being registered.
All IEngineMultiplexer multiplexer methods must return a Deferred to a list with length equal to the number of targets. The elements of the list will correspond to the return of the corresponding IEngine method.
Failures are aggressive, meaning that if an action fails for any target, the overall action will fail immediately with that Failure.
Deferred to a list of results for each engine.
A controller that exposes an explicit interface to all of its engines.
This is the primary inteface for interactive usage.
Synchronous, two-phase version of IMultiEngine.
Methods in this interface are identical to those of IMultiEngine, but they take one additional argument:
execute(lines, targets=’all’) -> execute(lines, targets=’all, block=True)
Methods that work on multiple engines explicitly.
The representation of a ControllerService as a IMultiEngine.
Although it is not implemented currently, this class would be where a client/notification API is implemented. It could inherit from something like results.NotifierParent and then use the notify method to send notifications.
Parse the targets argument into a list of valid engine objects.
List of engine objects.
Adapt an IMultiEngine -> ISynchronousMultiEngine
Warning, this class uses a decorator that currently uses **kwargs. Because of this block must be passed as a kwarg, not positionally.
Return a list of registered engine ids.
Never use the two phase block/non-block stuff for this.