old_contents: """The IPython ZMQ-based parallel computing interface.
  
  Authors:
  
  * MinRK
  """
  #-----------------------------------------------------------------------------
  #  Copyright (C) 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.
  #-----------------------------------------------------------------------------
  
  #-----------------------------------------------------------------------------
  # Imports
  #-----------------------------------------------------------------------------
  
  import os
  import warnings
  
  import zmq
  
  from IPython.config.configurable import MultipleInstanceError
  from IPython.zmq import check_for_zmq
  
  if os.name == 'nt':
      min_pyzmq = '2.1.7'
  else:
      min_pyzmq = '2.1.4'
  
  check_for_zmq(min_pyzmq, 'IPython.parallel')
  
  from IPython.utils.pickleutil import Reference
  
  from .client.asyncresult import *
  from .client.client import Client
  from .client.remotefunction import *
  from .client.view import *
  from .util import interactive
  from .controller.dependency import *
  
  #-----------------------------------------------------------------------------
  # Functions
  #-----------------------------------------------------------------------------
  
  
  def bind_kernel(**kwargs):
      """Bind an Engine's Kernel to be used as a full IPython kernel.
      
      This allows a running Engine to be used simultaneously as a full IPython kernel
      with the QtConsole or other frontends.
      
      This function returns immediately.
      """
      from IPython.zmq.ipkernel import IPKernelApp
      from IPython.parallel.apps.ipengineapp import IPEngineApp
      
      # first check for IPKernelApp, in which case this should be a no-op
      # because there is already a bound kernel
      if IPKernelApp.initialized() and isinstance(IPKernelApp._instance, IPKernelApp):
          return
      
      if IPEngineApp.initialized():
          try:
              app = IPEngineApp.instance()
          except MultipleInstanceError:
              pass
          else:
              return app.bind_kernel(**kwargs)
      
      raise RuntimeError("bind_kernel be called from an IPEngineApp instance")
      
  
  
  
new_contents: """The IPython ZMQ-based parallel computing interface.
  
  Authors:
  
  * MinRK
  """
  #-----------------------------------------------------------------------------
  #  Copyright (C) 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.
  #-----------------------------------------------------------------------------
  
  #-----------------------------------------------------------------------------
  # Imports
  #-----------------------------------------------------------------------------
  
  import os
  import warnings
  
  import zmq
  
  from IPython.config.configurable import MultipleInstanceError
  from IPython.zmq import check_for_zmq
  
  if os.name == 'nt':
      min_pyzmq = '2.1.7'
  else:
      min_pyzmq = '2.1.4'
  
  check_for_zmq(min_pyzmq, 'IPython.parallel')
  
  from IPython.utils.pickleutil import Reference
  
  from .client.asyncresult import *
  from .client.client import Client
  from .client.remotefunction import *
  from .client.view import *
  from .controller.dependency import *
  from .error import *
  from .util import interactive
  
  #-----------------------------------------------------------------------------
  # Functions
  #-----------------------------------------------------------------------------
  
  
  def bind_kernel(**kwargs):
      """Bind an Engine's Kernel to be used as a full IPython kernel.
      
      This allows a running Engine to be used simultaneously as a full IPython kernel
      with the QtConsole or other frontends.
      
      This function returns immediately.
      """
      from IPython.zmq.ipkernel import IPKernelApp
      from IPython.parallel.apps.ipengineapp import IPEngineApp
      
      # first check for IPKernelApp, in which case this should be a no-op
      # because there is already a bound kernel
      if IPKernelApp.initialized() and isinstance(IPKernelApp._instance, IPKernelApp):
          return
      
      if IPEngineApp.initialized():
          try:
              app = IPEngineApp.instance()
          except MultipleInstanceError:
              pass
          else:
              return app.bind_kernel(**kwargs)
      
      raise RuntimeError("bind_kernel be called from an IPEngineApp instance")
      
  
  
  
subject: include errors in IPython.parallel namespace