Show More
@@ -41,9 +41,9 b' class EngineFactory(RegistrationFactory):' | |||||
41 | out_stream_factory=Type('IPython.zmq.iostream.OutStream', config=True, |
|
41 | out_stream_factory=Type('IPython.zmq.iostream.OutStream', config=True, | |
42 | help="""The OutStream for handling stdout/err. |
|
42 | help="""The OutStream for handling stdout/err. | |
43 | Typically 'IPython.zmq.iostream.OutStream'""") |
|
43 | Typically 'IPython.zmq.iostream.OutStream'""") | |
44 | display_hook_factory=Type('IPython.zmq.displayhook.DisplayHook', config=True, |
|
44 | display_hook_factory=Type('IPython.zmq.displayhook.ZMQDisplayHook', config=True, | |
45 | help="""The class for handling displayhook. |
|
45 | help="""The class for handling displayhook. | |
46 | Typically 'IPython.zmq.displayhook.DisplayHook'""") |
|
46 | Typically 'IPython.zmq.displayhook.ZMQDisplayHook'""") | |
47 | location=Unicode(config=True, |
|
47 | location=Unicode(config=True, | |
48 | help="""The location (an IP address) of the controller. This is |
|
48 | help="""The location (an IP address) of the controller. This is | |
49 | used for disambiguating URLs, to determine whether |
|
49 | used for disambiguating URLs, to determine whether |
@@ -1,9 +1,13 b'' | |||||
1 | import __builtin__ |
|
1 | import __builtin__ | |
|
2 | from base64 import encodestring | |||
2 |
|
3 | |||
3 | from session import extract_header |
|
4 | from IPython.core.displayhook import DisplayHook | |
4 |
|
5 | from IPython.utils.traitlets import Instance, Dict | ||
5 | class DisplayHook(object): |
|
6 | from session import extract_header, Session | |
6 |
|
7 | |||
|
8 | class ZMQDisplayHook(object): | |||
|
9 | """A simple displayhook that publishes the object's repr over a ZeroMQ | |||
|
10 | socket.""" | |||
7 | topic=None |
|
11 | topic=None | |
8 |
|
12 | |||
9 | def __init__(self, session, pub_socket): |
|
13 | def __init__(self, session, pub_socket): | |
@@ -20,4 +24,41 b' class DisplayHook(object):' | |||||
20 | parent=self.parent_header, ident=self.topic) |
|
24 | parent=self.parent_header, ident=self.topic) | |
21 |
|
25 | |||
22 | def set_parent(self, parent): |
|
26 | def set_parent(self, parent): | |
23 | self.parent_header = extract_header(parent) No newline at end of file |
|
27 | self.parent_header = extract_header(parent) | |
|
28 | ||||
|
29 | ||||
|
30 | def _encode_png(data): | |||
|
31 | pngdata = data.get('image/png') | |||
|
32 | if pngdata is not None: | |||
|
33 | data['image/png'] = encodestring(pngdata) | |||
|
34 | ||||
|
35 | class ZMQShellDisplayHook(DisplayHook): | |||
|
36 | """A displayhook subclass that publishes data using ZeroMQ. This is intended | |||
|
37 | to work with an InteractiveShell instance. It sends a dict of different | |||
|
38 | representations of the object.""" | |||
|
39 | ||||
|
40 | session = Instance(Session) | |||
|
41 | pub_socket = Instance('zmq.Socket') | |||
|
42 | parent_header = Dict({}) | |||
|
43 | ||||
|
44 | def set_parent(self, parent): | |||
|
45 | """Set the parent for outbound messages.""" | |||
|
46 | self.parent_header = extract_header(parent) | |||
|
47 | ||||
|
48 | def start_displayhook(self): | |||
|
49 | self.msg = self.session.msg(u'pyout', {}, parent=self.parent_header) | |||
|
50 | ||||
|
51 | def write_output_prompt(self): | |||
|
52 | """Write the output prompt.""" | |||
|
53 | if self.do_full_cache: | |||
|
54 | self.msg['content']['execution_count'] = self.prompt_count | |||
|
55 | ||||
|
56 | def write_format_data(self, format_dict): | |||
|
57 | pngdata = format_dict.get('image/png') | |||
|
58 | _encode_png(format_dict) | |||
|
59 | self.msg['content']['data'] = format_dict | |||
|
60 | ||||
|
61 | def finish_displayhook(self): | |||
|
62 | """Finish up all displayhook activities.""" | |||
|
63 | self.session.send(self.pub_socket, self.msg) | |||
|
64 | self.msg = None |
@@ -13,7 +13,6 b' import sys' | |||||
13 | from parentpoller import ParentPollerWindows |
|
13 | from parentpoller import ParentPollerWindows | |
14 |
|
14 | |||
15 |
|
15 | |||
16 |
|
||||
17 | def base_launch_kernel(code, shell_port=0, iopub_port=0, stdin_port=0, hb_port=0, |
|
16 | def base_launch_kernel(code, shell_port=0, iopub_port=0, stdin_port=0, hb_port=0, | |
18 | ip=None, stdin=None, stdout=None, stderr=None, |
|
17 | ip=None, stdin=None, stdout=None, stderr=None, | |
19 | executable=None, independent=False, extra_arguments=[]): |
|
18 | executable=None, independent=False, extra_arguments=[]): |
@@ -16,7 +16,6 b' machinery. This should thus be thought of as scaffolding.' | |||||
16 | from __future__ import print_function |
|
16 | from __future__ import print_function | |
17 |
|
17 | |||
18 | # Stdlib |
|
18 | # Stdlib | |
19 | from base64 import encodestring |
|
|||
20 | import inspect |
|
19 | import inspect | |
21 | import os |
|
20 | import os | |
22 |
|
21 | |||
@@ -26,7 +25,6 b' from IPython.core.interactiveshell import (' | |||||
26 | ) |
|
25 | ) | |
27 | from IPython.core import page |
|
26 | from IPython.core import page | |
28 | from IPython.core.autocall import ZMQExitAutocall |
|
27 | from IPython.core.autocall import ZMQExitAutocall | |
29 | from IPython.core.displayhook import DisplayHook |
|
|||
30 | from IPython.core.displaypub import DisplayPublisher |
|
28 | from IPython.core.displaypub import DisplayPublisher | |
31 | from IPython.core.macro import Macro |
|
29 | from IPython.core.macro import Macro | |
32 | from IPython.core.magic import MacroToEdit |
|
30 | from IPython.core.magic import MacroToEdit | |
@@ -35,6 +33,7 b' from IPython.utils import io' | |||||
35 | from IPython.utils.path import get_py_filename |
|
33 | from IPython.utils.path import get_py_filename | |
36 | from IPython.utils.traitlets import Instance, Type, Dict |
|
34 | from IPython.utils.traitlets import Instance, Type, Dict | |
37 | from IPython.utils.warn import warn |
|
35 | from IPython.utils.warn import warn | |
|
36 | from IPython.zmq.displayhook import ZMQShellDisplayHook | |||
38 | from IPython.zmq.session import extract_header |
|
37 | from IPython.zmq.session import extract_header | |
39 | from session import Session |
|
38 | from session import Session | |
40 |
|
39 | |||
@@ -49,42 +48,6 b' install_payload_page()' | |||||
49 | # Functions and classes |
|
48 | # Functions and classes | |
50 | #----------------------------------------------------------------------------- |
|
49 | #----------------------------------------------------------------------------- | |
51 |
|
50 | |||
52 | def _encode_png(data): |
|
|||
53 | pngdata = data.get('image/png') |
|
|||
54 | if pngdata is not None: |
|
|||
55 | data['image/png'] = encodestring(pngdata) |
|
|||
56 |
|
||||
57 |
|
||||
58 | class ZMQDisplayHook(DisplayHook): |
|
|||
59 | """A displayhook subclass that publishes data using ZeroMQ.""" |
|
|||
60 |
|
||||
61 | session = Instance(Session) |
|
|||
62 | pub_socket = Instance('zmq.Socket') |
|
|||
63 | parent_header = Dict({}) |
|
|||
64 |
|
||||
65 | def set_parent(self, parent): |
|
|||
66 | """Set the parent for outbound messages.""" |
|
|||
67 | self.parent_header = extract_header(parent) |
|
|||
68 |
|
||||
69 | def start_displayhook(self): |
|
|||
70 | self.msg = self.session.msg(u'pyout', {}, parent=self.parent_header) |
|
|||
71 |
|
||||
72 | def write_output_prompt(self): |
|
|||
73 | """Write the output prompt.""" |
|
|||
74 | if self.do_full_cache: |
|
|||
75 | self.msg['content']['execution_count'] = self.prompt_count |
|
|||
76 |
|
||||
77 | def write_format_data(self, format_dict): |
|
|||
78 | pngdata = format_dict.get('image/png') |
|
|||
79 | _encode_png(format_dict) |
|
|||
80 | self.msg['content']['data'] = format_dict |
|
|||
81 |
|
||||
82 | def finish_displayhook(self): |
|
|||
83 | """Finish up all displayhook activities.""" |
|
|||
84 | self.session.send(self.pub_socket, self.msg) |
|
|||
85 | self.msg = None |
|
|||
86 |
|
||||
87 |
|
||||
88 | class ZMQDisplayPublisher(DisplayPublisher): |
|
51 | class ZMQDisplayPublisher(DisplayPublisher): | |
89 | """A display publisher that publishes data using a ZeroMQ PUB socket.""" |
|
52 | """A display publisher that publishes data using a ZeroMQ PUB socket.""" | |
90 |
|
53 | |||
@@ -114,7 +77,7 b' class ZMQDisplayPublisher(DisplayPublisher):' | |||||
114 | class ZMQInteractiveShell(InteractiveShell): |
|
77 | class ZMQInteractiveShell(InteractiveShell): | |
115 | """A subclass of InteractiveShell for ZMQ.""" |
|
78 | """A subclass of InteractiveShell for ZMQ.""" | |
116 |
|
79 | |||
117 | displayhook_class = Type(ZMQDisplayHook) |
|
80 | displayhook_class = Type(ZMQShellDisplayHook) | |
118 | display_pub_class = Type(ZMQDisplayPublisher) |
|
81 | display_pub_class = Type(ZMQDisplayPublisher) | |
119 |
|
82 | |||
120 | exiter = Instance(ZMQExitAutocall) |
|
83 | exiter = Instance(ZMQExitAutocall) |
General Comments 0
You need to be logged in to leave comments.
Login now