traits_futures.i_parallel_context module

Interface for the parallelism context needed by the TraitsExecutor

class traits_futures.i_parallel_context.IParallelContext[source]

Bases: ABC

Interface for the parallelism context needed by the TraitsExecutor.

A class implementing this interface provides a worker pool, message router and other concurrency primitives suitable for a particular form of parallelism, for example multithreading or multiprocessing.

abstract close()[source]

Do any cleanup necessary before disposal of the context.

abstract property closed

True if this context is closed, else False.

abstract event()[source]

Return a shareable event suitable for this context.

Returns:

event – An event that can be shared safely with workers. The event should have the same API as threading.Event and multiprocessing.Event, providing at a minimum the set and is_set methods from that API.

Return type:

object

abstract message_router(event_loop)[source]

Return a message router suitable for use in this context.

Parameters:

event_loop (IEventLoop) – The event loop to interact with.

Returns:

message_router

Return type:

IMessageRouter

abstract worker_pool(*, max_workers=None)[source]

Provide a worker pool suitable for this context.

Parameters:

max_workers (int, optional) – Maximum number of workers in the worker pool. If not given, it’s up to the worker pool to choose a suitable number of workers, perhaps dependent on the number of logical cores present on the target machine.

Returns:

executor

Return type:

concurrent.futures.Executor