Module pprocess :: Class Map
[hide private]
[frames] | no frames]

Class Map

source code

Exchange --+
           |
          Map

An exchange which can be used like the built-in 'map' function.

Instance Methods [hide private]
 
__init__(self, *args, **kw)
Initialise the exchange with an optional list of 'channels'.
source code
 
init(self)
Remember the channel addition order to order output.
source code
 
add(self, channel)
Add the given 'channel' to the exchange.
source code
 
start(self, callable, *args, **kw)
Create a new process for the given 'callable' using any additional arguments provided.
source code
 
create(self)
Create a new process and return the created communications channel to the created process.
source code
 
__call__(self, callable, sequence)
Wrap and invoke 'callable' for each element in the 'sequence'.
source code
 
store_data(self, channel)
Accumulate the incoming data, associating results with channels.
source code
 
__iter__(self) source code
 
next(self)
Return the next element in the map.
source code
 
__getitem__(self, i)
Return element 'i' from the map.
source code
 
_next(self) source code
 
_get(self, i) source code

Inherited from Exchange: active, add_wait, busy, finish, manage, ready, remove, start_waiting, store, unfinished, wait

Method Details [hide private]

__init__(self, *args, **kw)
(Constructor)

source code 

Initialise the exchange with an optional list of 'channels'.

If the optional 'limit' is specified, restrictions on the addition of
new channels can be enforced and observed through the 'add_wait', 'wait'
and 'finish' methods. To make use of these methods, create a subclass of
this class and define a working 'store_data' method.

If the optional 'reuse' parameter is set to a true value, channels and
processes will be reused for waiting computations, but the callable will
be invoked for each computation.

If the optional 'continuous' parameter is set to a true value, channels
and processes will be retained after receiving data sent from such
processes, since it will be assumed that they will communicate more
data.

If the optional 'autoclose' parameter is set to a false value, channels
will not be closed automatically when they are removed from the exchange
- by default they are closed when removed.

Overrides: Exchange.__init__
(inherited documentation)

add(self, channel)

source code 
Add the given 'channel' to the exchange.

Overrides: Exchange.add

start(self, callable, *args, **kw)

source code 

Create a new process for the given 'callable' using any additional
arguments provided. Then, monitor the channel created between this
process and the created process.

Overrides: Exchange.start

create(self)

source code 

Create a new process and return the created communications channel to
the created process. In the creating process, return None - the channel
receiving data from the created process will be automatically managed by
this exchange.

Overrides: Exchange.create

store_data(self, channel)

source code 
Accumulate the incoming data, associating results with channels.

Overrides: Exchange.store_data