##// END OF EJS Templates
Backport PR #2126: ipcluster broken with any batch (PBS/LSF/SGE)...
Backport PR #2126: ipcluster broken with any batch (PBS/LSF/SGE) I have setup ipcluster_config.py to start with LSF: ``` c.IPClusterStart.controller_launcher_class = 'LSF' c.IPClusterStart.engine_launcher_class = 'LSF' ``` But the ipcluster command fails to start the engines: ``` ipcluster start --profile=lsf -n 10 ``` The problem is fixed if I add quotes to the launch command string ```cmd``` in ```launcher.py```. ``` diff --git a/IPython/parallel/apps/launcher.py b/IPython/parallel/apps/launcher.py index e752d2a..6035303 100644 --- a/IPython/parallel/apps/launcher.py +++ b/IPython/parallel/apps/launcher.py @@ -73,7 +73,7 @@ WINDOWS = os.name == 'nt' # Paths to the kernel apps #----------------------------------------------------------------------------- -cmd = "from IPython.parallel.apps.%s import launch_new_instance; launch_new_instance()" +cmd = "\"from IPython.parallel.apps.%s import launch_new_instance; launch_new_instance()\"" ipcluster_cmd_argv = [sys.executable, "-c", cmd % "ipclusterapp"] ```

File last commit:

r5390:c82649ea
r7995:061632b4
Show More
test_linefrontend.py
37 lines | 1.1 KiB | text/x-python | PythonLexer
# encoding: utf-8
"""
Test the LineFrontEnd
"""
__docformat__ = "restructuredtext en"
#-------------------------------------------------------------------------------
# Copyright (C) 2008-2011 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.
#-------------------------------------------------------------------------------
from IPython.frontend.linefrontendbase import LineFrontEndBase
from copy import deepcopy
import nose.tools as nt
class ConcreteLineFrontEnd(LineFrontEndBase):
""" A concrete class to test the LineFrontEndBase.
"""
def capture_output(self):
pass
def release_output(self):
pass
def test_is_complete():
""" Tests line completion heuristic.
"""
frontend = ConcreteLineFrontEnd()
yield nt.assert_true, not frontend.is_complete('for x in \\')
yield nt.assert_true, not frontend.is_complete('for x in (1, ):')
yield nt.assert_true, frontend.is_complete('for x in (1, ):\n pass')