##// END OF EJS Templates
Replace exec/eval with proper __import__....
Replace exec/eval with proper __import__. Unfortunately for some very weird reason, this code can't be called as a function, so I inlined a verbatim copy of importstring.import_item.

File last commit:

r10298:49d3c39a
r11019:4350decf
Show More
blocking.py
58 lines | 2.1 KiB | text/x-python | PythonLexer
MinRK
update inprocess kernel to new layout...
r10298 """ Implements a fully blocking kernel client.
epatters
Refactor kernel managers in preparation for the EmbeddedKernel.
r8408
Useful for test suites and blocking terminal interfaces.
"""
#-----------------------------------------------------------------------------
# Copyright (C) 2012 The IPython Development Team
#
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING.txt, distributed as part of this software.
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
MinRK
update inprocess kernel to new layout...
r10298 # IPython imports
epatters
BUG: raw_input logic incorrect for in-process terminal frontend.
r8482 from IPython.utils.io import raw_print
epatters
Refactor kernel managers in preparation for the EmbeddedKernel.
r8408 from IPython.utils.traitlets import Type
MinRK
update inprocess kernel to new layout...
r10298 from IPython.kernel.blocking.channels import BlockingChannelMixin
epatters
Refactor kernel managers in preparation for the EmbeddedKernel.
r8408
MinRK
update inprocess kernel to new layout...
r10298 # Local imports
from .channels import (
InProcessShellChannel,
InProcessIOPubChannel,
InProcessStdInChannel,
)
from .client import InProcessKernelClient
epatters
Refactor kernel managers in preparation for the EmbeddedKernel.
r8408
#-----------------------------------------------------------------------------
# Blocking kernel manager
#-----------------------------------------------------------------------------
Brian Granger
Cleanup naming and organization of channels....
r9120 class BlockingInProcessShellChannel(BlockingChannelMixin, InProcessShellChannel):
epatters
Refactor kernel managers in preparation for the EmbeddedKernel.
r8408 pass
Brian Granger
Cleanup naming and organization of channels....
r9120 class BlockingInProcessIOPubChannel(BlockingChannelMixin, InProcessIOPubChannel):
epatters
Refactor kernel managers in preparation for the EmbeddedKernel.
r8408 pass
Brian Granger
Cleanup naming and organization of channels....
r9120 class BlockingInProcessStdInChannel(BlockingChannelMixin, InProcessStdInChannel):
MinRK
update inprocess kernel to new layout...
r10298
epatters
BUG: raw_input logic incorrect for in-process terminal frontend.
r8482 def call_handlers(self, msg):
""" Overridden for the in-process channel.
This methods simply calls raw_input directly.
"""
msg_type = msg['header']['msg_type']
if msg_type == 'input_request':
MinRK
update inprocess kernel to new layout...
r10298 _raw_input = self.client.kernel._sys_raw_input
epatters
BUG: raw_input logic incorrect for in-process terminal frontend.
r8482 prompt = msg['content']['prompt']
raw_print(prompt, end='')
Pietro Berkes
BUG: Solve 2to3 conversion error....
r8940 self.input(_raw_input())
epatters
Refactor kernel managers in preparation for the EmbeddedKernel.
r8408
MinRK
update inprocess kernel to new layout...
r10298 class BlockingInProcessKernelClient(InProcessKernelClient):
epatters
Refactor kernel managers in preparation for the EmbeddedKernel.
r8408
# The classes to use for the various channels.
Brian Granger
Cleanup naming and organization of channels....
r9120 shell_channel_class = Type(BlockingInProcessShellChannel)
iopub_channel_class = Type(BlockingInProcessIOPubChannel)
stdin_channel_class = Type(BlockingInProcessStdInChannel)