# encoding: utf-8 """A parallelized function that does scatter/execute/gather.""" __docformat__ = "restructuredtext en" #------------------------------------------------------------------------------- # Copyright (C) 2008 The IPython Development Team # # Distributed under the terms of the BSD License. The full license is in # the file COPYING, distributed as part of this software. #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # Imports #------------------------------------------------------------------------------- from types import FunctionType class ParallelFunction: """A function that operates in parallel on sequences.""" def __init__(self, func, multiengine, targets, block): """Create a `ParallelFunction`. """ assert isinstance(func, (str, FunctionType)), "func must be a fuction or str" self.func = func self.multiengine = multiengine self.targets = targets self.block = block def __call__(self, sequence): return self.multiengine.map(self.func, sequence, targets=self.targets, block=self.block)