##// END OF EJS Templates
Finished initial reworking and updating of setup.py and friends, including the MANIFEST.in. Everything seems...
Finished initial reworking and updating of setup.py and friends, including the MANIFEST.in. Everything seems to work fine. I have also gone through the tests in various subpackages (like kernel) and have protected imports of twisted, zope.interface and foolscap with a try/except clause. Now the tests are simply not run if these deps are missing. All tests now pass no matter what.

File last commit:

r1234:52b55407
r1244:ba669b1a
Show More
parallelfunction.py
31 lines | 1.2 KiB | text/x-python | PythonLexer
/ IPython / kernel / parallelfunction.py
Brian E Granger
This is a manual merge of certain things in the ipython1-dev branch, revision 46, into the main ...
r1234 # 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)