Show More
|
1 | NO CONTENT: new file 100644, binary diff hidden |
@@ -0,0 +1,474 | |||
|
1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
|
2 | <!-- Created with Inkscape (http://www.inkscape.org/) --> | |
|
3 | ||
|
4 | <svg | |
|
5 | xmlns:dc="http://purl.org/dc/elements/1.1/" | |
|
6 | xmlns:cc="http://creativecommons.org/ns#" | |
|
7 | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |
|
8 | xmlns:svg="http://www.w3.org/2000/svg" | |
|
9 | xmlns="http://www.w3.org/2000/svg" | |
|
10 | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |
|
11 | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |
|
12 | width="711.70575" | |
|
13 | height="401.44141" | |
|
14 | id="svg2" | |
|
15 | version="1.1" | |
|
16 | inkscape:version="0.48.5 r10040" | |
|
17 | sodipodi:docname="notebook_components.svg" | |
|
18 | inkscape:export-filename="/home/takluyver/Code/ipython/docs/source/development/figs/notebook_components.png" | |
|
19 | inkscape:export-xdpi="80" | |
|
20 | inkscape:export-ydpi="80"> | |
|
21 | <defs | |
|
22 | id="defs4"> | |
|
23 | <marker | |
|
24 | inkscape:stockid="Arrow2Lend" | |
|
25 | orient="auto" | |
|
26 | refY="0" | |
|
27 | refX="0" | |
|
28 | id="Arrow2Lend" | |
|
29 | style="overflow:visible"> | |
|
30 | <path | |
|
31 | id="path3966" | |
|
32 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | |
|
33 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | |
|
34 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | |
|
35 | inkscape:connector-curvature="0" /> | |
|
36 | </marker> | |
|
37 | <marker | |
|
38 | inkscape:stockid="Arrow1Lstart" | |
|
39 | orient="auto" | |
|
40 | refY="0" | |
|
41 | refX="0" | |
|
42 | id="Arrow1Lstart" | |
|
43 | style="overflow:visible"> | |
|
44 | <path | |
|
45 | id="path3945" | |
|
46 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | |
|
47 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | |
|
48 | transform="matrix(0.8,0,0,0.8,10,0)" | |
|
49 | inkscape:connector-curvature="0" /> | |
|
50 | </marker> | |
|
51 | <marker | |
|
52 | inkscape:stockid="Arrow1Lend" | |
|
53 | orient="auto" | |
|
54 | refY="0" | |
|
55 | refX="0" | |
|
56 | id="Arrow1Lend" | |
|
57 | style="overflow:visible"> | |
|
58 | <path | |
|
59 | id="path3948" | |
|
60 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | |
|
61 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | |
|
62 | transform="matrix(-0.8,0,0,-0.8,-10,0)" | |
|
63 | inkscape:connector-curvature="0" /> | |
|
64 | </marker> | |
|
65 | <marker | |
|
66 | inkscape:stockid="Arrow2Lend" | |
|
67 | orient="auto" | |
|
68 | refY="0" | |
|
69 | refX="0" | |
|
70 | id="Arrow2Lend-2" | |
|
71 | style="overflow:visible"> | |
|
72 | <path | |
|
73 | inkscape:connector-curvature="0" | |
|
74 | id="path3966-2" | |
|
75 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | |
|
76 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | |
|
77 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> | |
|
78 | </marker> | |
|
79 | <marker | |
|
80 | inkscape:stockid="Arrow2Lend" | |
|
81 | orient="auto" | |
|
82 | refY="0" | |
|
83 | refX="0" | |
|
84 | id="Arrow2Lend-6" | |
|
85 | style="overflow:visible"> | |
|
86 | <path | |
|
87 | inkscape:connector-curvature="0" | |
|
88 | id="path3966-4" | |
|
89 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | |
|
90 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | |
|
91 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> | |
|
92 | </marker> | |
|
93 | <marker | |
|
94 | inkscape:stockid="Arrow2Lend" | |
|
95 | orient="auto" | |
|
96 | refY="0" | |
|
97 | refX="0" | |
|
98 | id="marker5355" | |
|
99 | style="overflow:visible"> | |
|
100 | <path | |
|
101 | inkscape:connector-curvature="0" | |
|
102 | id="path5357" | |
|
103 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | |
|
104 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | |
|
105 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> | |
|
106 | </marker> | |
|
107 | <marker | |
|
108 | inkscape:stockid="Arrow2Lend" | |
|
109 | orient="auto" | |
|
110 | refY="0" | |
|
111 | refX="0" | |
|
112 | id="marker5355-3" | |
|
113 | style="overflow:visible"> | |
|
114 | <path | |
|
115 | inkscape:connector-curvature="0" | |
|
116 | id="path5357-0" | |
|
117 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | |
|
118 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | |
|
119 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> | |
|
120 | </marker> | |
|
121 | <marker | |
|
122 | inkscape:stockid="Arrow2Lend" | |
|
123 | orient="auto" | |
|
124 | refY="0" | |
|
125 | refX="0" | |
|
126 | id="Arrow2Lend-3" | |
|
127 | style="overflow:visible"> | |
|
128 | <path | |
|
129 | inkscape:connector-curvature="0" | |
|
130 | id="path3966-1" | |
|
131 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | |
|
132 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | |
|
133 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> | |
|
134 | </marker> | |
|
135 | <marker | |
|
136 | inkscape:stockid="Arrow2Lend" | |
|
137 | orient="auto" | |
|
138 | refY="0" | |
|
139 | refX="0" | |
|
140 | id="marker5355-33" | |
|
141 | style="overflow:visible"> | |
|
142 | <path | |
|
143 | inkscape:connector-curvature="0" | |
|
144 | id="path5357-7" | |
|
145 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | |
|
146 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | |
|
147 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> | |
|
148 | </marker> | |
|
149 | <marker | |
|
150 | inkscape:stockid="Arrow2Lend" | |
|
151 | orient="auto" | |
|
152 | refY="0" | |
|
153 | refX="0" | |
|
154 | id="Arrow2Lend-69" | |
|
155 | style="overflow:visible"> | |
|
156 | <path | |
|
157 | inkscape:connector-curvature="0" | |
|
158 | id="path3966-3" | |
|
159 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | |
|
160 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | |
|
161 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> | |
|
162 | </marker> | |
|
163 | <marker | |
|
164 | inkscape:stockid="Arrow2Lend" | |
|
165 | orient="auto" | |
|
166 | refY="0" | |
|
167 | refX="0" | |
|
168 | id="marker5355-0" | |
|
169 | style="overflow:visible"> | |
|
170 | <path | |
|
171 | inkscape:connector-curvature="0" | |
|
172 | id="path5357-5" | |
|
173 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | |
|
174 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | |
|
175 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> | |
|
176 | </marker> | |
|
177 | <marker | |
|
178 | inkscape:stockid="Arrow2Lend" | |
|
179 | orient="auto" | |
|
180 | refY="0" | |
|
181 | refX="0" | |
|
182 | id="Arrow2Lend-8" | |
|
183 | style="overflow:visible"> | |
|
184 | <path | |
|
185 | inkscape:connector-curvature="0" | |
|
186 | id="path3966-32" | |
|
187 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | |
|
188 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | |
|
189 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" /> | |
|
190 | </marker> | |
|
191 | </defs> | |
|
192 | <sodipodi:namedview | |
|
193 | id="base" | |
|
194 | pagecolor="#ffffff" | |
|
195 | bordercolor="#666666" | |
|
196 | borderopacity="1.0" | |
|
197 | inkscape:pageopacity="0.0" | |
|
198 | inkscape:pageshadow="2" | |
|
199 | inkscape:zoom="0.98994949" | |
|
200 | inkscape:cx="414.30751" | |
|
201 | inkscape:cy="88.902823" | |
|
202 | inkscape:document-units="px" | |
|
203 | inkscape:current-layer="layer1" | |
|
204 | showgrid="false" | |
|
205 | inkscape:window-width="1680" | |
|
206 | inkscape:window-height="1014" | |
|
207 | inkscape:window-x="0" | |
|
208 | inkscape:window-y="0" | |
|
209 | inkscape:window-maximized="1" | |
|
210 | fit-margin-top="1" | |
|
211 | fit-margin-left="1" | |
|
212 | fit-margin-right="1" | |
|
213 | fit-margin-bottom="1" | |
|
214 | units="cm" /> | |
|
215 | <metadata | |
|
216 | id="metadata7"> | |
|
217 | <rdf:RDF> | |
|
218 | <cc:Work | |
|
219 | rdf:about=""> | |
|
220 | <dc:format>image/svg+xml</dc:format> | |
|
221 | <dc:type | |
|
222 | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | |
|
223 | <dc:title></dc:title> | |
|
224 | </cc:Work> | |
|
225 | </rdf:RDF> | |
|
226 | </metadata> | |
|
227 | <g | |
|
228 | inkscape:label="Layer 1" | |
|
229 | inkscape:groupmode="layer" | |
|
230 | id="layer1" | |
|
231 | transform="translate(16.616428,19.440029)"> | |
|
232 | <g | |
|
233 | id="g3811" | |
|
234 | transform="translate(-35.878169,-100.12183)"> | |
|
235 | <path | |
|
236 | transform="translate(8.0812186,26.049684)" | |
|
237 | d="m 98.994951,154.33656 c 0,7.2526 -5.879389,13.13199 -13.131983,13.13199 -7.252593,0 -13.131982,-5.87939 -13.131982,-13.13199 0,-7.25259 5.879389,-13.13198 13.131982,-13.13198 7.252594,0 13.131983,5.87939 13.131983,13.13198 z" | |
|
238 | sodipodi:ry="13.131983" | |
|
239 | sodipodi:rx="13.131983" | |
|
240 | sodipodi:cy="154.33656" | |
|
241 | sodipodi:cx="85.862968" | |
|
242 | id="path3755" | |
|
243 | style="fill:none;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" | |
|
244 | sodipodi:type="arc" /> | |
|
245 | <path | |
|
246 | inkscape:connector-curvature="0" | |
|
247 | id="path3757" | |
|
248 | d="m 93.944187,193.73252 0,69.70052" | |
|
249 | style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> | |
|
250 | <path | |
|
251 | inkscape:connector-curvature="0" | |
|
252 | id="path3759" | |
|
253 | d="m 70.205601,211.91526 47.477169,0" | |
|
254 | style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> | |
|
255 | <path | |
|
256 | sodipodi:nodetypes="cc" | |
|
257 | inkscape:connector-curvature="0" | |
|
258 | id="path3761" | |
|
259 | d="m 75.691891,294.16241 17.96658,-30.72937" | |
|
260 | style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> | |
|
261 | <path | |
|
262 | sodipodi:nodetypes="cc" | |
|
263 | inkscape:connector-curvature="0" | |
|
264 | id="path3761-3" | |
|
265 | d="M 112.10981,294.16241 94.143243,263.43304" | |
|
266 | style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> | |
|
267 | </g> | |
|
268 | <g | |
|
269 | id="g5730" | |
|
270 | transform="translate(-48,-88)"> | |
|
271 | <rect | |
|
272 | ry="17.142857" | |
|
273 | y="186.6479" | |
|
274 | x="198.57143" | |
|
275 | height="78.571426" | |
|
276 | width="130" | |
|
277 | id="rect3818" | |
|
278 | style="fill:#e3d7f4;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> | |
|
279 | <text | |
|
280 | sodipodi:linespacing="125%" | |
|
281 | id="text3820" | |
|
282 | y="235.79105" | |
|
283 | x="210.28529" | |
|
284 | style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans" | |
|
285 | xml:space="preserve"><tspan | |
|
286 | y="235.79105" | |
|
287 | x="210.28529" | |
|
288 | id="tspan3822" | |
|
289 | sodipodi:role="line">Browser</tspan></text> | |
|
290 | </g> | |
|
291 | <g | |
|
292 | id="g5719" | |
|
293 | transform="translate(-48,-88)"> | |
|
294 | <rect | |
|
295 | ry="17.142857" | |
|
296 | y="186.6479" | |
|
297 | x="387.62143" | |
|
298 | height="78.571426" | |
|
299 | width="130" | |
|
300 | id="rect3818-6" | |
|
301 | style="fill:#e3f4d7;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> | |
|
302 | <text | |
|
303 | sodipodi:linespacing="125%" | |
|
304 | id="text3820-1" | |
|
305 | y="219.43362" | |
|
306 | x="451.40903" | |
|
307 | style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans" | |
|
308 | xml:space="preserve"><tspan | |
|
309 | style="font-size:26px" | |
|
310 | y="219.43362" | |
|
311 | x="451.40903" | |
|
312 | id="tspan3822-0" | |
|
313 | sodipodi:role="line">Notebook</tspan><tspan | |
|
314 | style="font-size:26px" | |
|
315 | id="tspan3870" | |
|
316 | y="251.93362" | |
|
317 | x="451.40903" | |
|
318 | sodipodi:role="line">server</tspan></text> | |
|
319 | </g> | |
|
320 | <g | |
|
321 | id="g5725" | |
|
322 | transform="translate(-48,-88)"> | |
|
323 | <rect | |
|
324 | ry="17.142857" | |
|
325 | y="186.6479" | |
|
326 | x="576.67145" | |
|
327 | height="78.571426" | |
|
328 | width="130" | |
|
329 | id="rect3818-3" | |
|
330 | style="fill:#e3f4d7;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> | |
|
331 | <text | |
|
332 | sodipodi:linespacing="125%" | |
|
333 | id="text3820-2" | |
|
334 | y="236.43361" | |
|
335 | x="600.9361" | |
|
336 | style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans" | |
|
337 | xml:space="preserve"><tspan | |
|
338 | y="236.43361" | |
|
339 | x="600.9361" | |
|
340 | id="tspan3822-3" | |
|
341 | sodipodi:role="line">Kernel</tspan></text> | |
|
342 | </g> | |
|
343 | <g | |
|
344 | id="g3931" | |
|
345 | transform="matrix(0.74285712,0,0,0.74285712,111.19287,-38.812036)"> | |
|
346 | <path | |
|
347 | sodipodi:nodetypes="cccccc" | |
|
348 | inkscape:connector-curvature="0" | |
|
349 | id="rect2993" | |
|
350 | d="m 346.23657,370.02731 78.76344,0 18.76344,18.76345 0,128.76344 -97.52688,0 z" | |
|
351 | style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.47311282;stroke-miterlimit:4;stroke-opacity:1" /> | |
|
352 | <text | |
|
353 | transform="matrix(0,-1,1,0,0,0)" | |
|
354 | sodipodi:linespacing="125%" | |
|
355 | id="text2996" | |
|
356 | y="388" | |
|
357 | x="-445.09641" | |
|
358 | style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans" | |
|
359 | xml:space="preserve"><tspan | |
|
360 | y="388" | |
|
361 | x="-445.09641" | |
|
362 | id="tspan2998" | |
|
363 | sodipodi:role="line">Notebook</tspan><tspan | |
|
364 | id="tspan3929" | |
|
365 | y="423" | |
|
366 | x="-445.09641" | |
|
367 | sodipodi:role="line">file</tspan></text> | |
|
368 | </g> | |
|
369 | <g | |
|
370 | id="g5575" | |
|
371 | transform="translate(-48,-86.605048)"> | |
|
372 | <path | |
|
373 | inkscape:connector-curvature="0" | |
|
374 | id="path3939" | |
|
375 | d="m 140.51539,230.56085 55.71428,0" | |
|
376 | style="fill:none;stroke:#000000;stroke-width:1.70000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:none;marker-end:url(#marker5355)" /> | |
|
377 | <path | |
|
378 | inkscape:connector-curvature="0" | |
|
379 | id="path3939-1" | |
|
380 | d="m 197.88571,218.51648 -55.71428,0" | |
|
381 | style="fill:none;stroke:#000000;stroke-width:1.70000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:none;marker-end:url(#Arrow2Lend)" /> | |
|
382 | </g> | |
|
383 | <text | |
|
384 | xml:space="preserve" | |
|
385 | style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans" | |
|
386 | x="-178.41751" | |
|
387 | y="41.691643" | |
|
388 | id="text5579" | |
|
389 | sodipodi:linespacing="125%" | |
|
390 | transform="matrix(0,-1,1,0,0,0)"><tspan | |
|
391 | sodipodi:role="line" | |
|
392 | id="tspan5581" | |
|
393 | x="-178.41751" | |
|
394 | y="41.691643">User</tspan></text> | |
|
395 | <g | |
|
396 | transform="matrix(0,1,-1,0,629.1601,37.48252)" | |
|
397 | id="g5575-1-4-9"> | |
|
398 | <path | |
|
399 | inkscape:connector-curvature="0" | |
|
400 | id="path3939-3-2-0" | |
|
401 | d="m 140.51539,230.56085 55.71428,0" | |
|
402 | style="fill:none;stroke:#000000;stroke-width:1.70000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:none;marker-end:url(#marker5355)" /> | |
|
403 | <path | |
|
404 | inkscape:connector-curvature="0" | |
|
405 | id="path3939-1-4-3-6" | |
|
406 | d="m 197.88571,218.51648 -55.71428,0" | |
|
407 | style="fill:none;stroke:#000000;stroke-width:1.70000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:none;marker-end:url(#Arrow2Lend)" /> | |
|
408 | </g> | |
|
409 | <g | |
|
410 | id="g5781" | |
|
411 | transform="translate(-48,-88)"> | |
|
412 | <g | |
|
413 | id="g5575-1-4" | |
|
414 | transform="translate(377.94589,1.3949516)"> | |
|
415 | <path | |
|
416 | style="fill:none;stroke:#000000;stroke-width:1.70000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:none;marker-end:url(#marker5355)" | |
|
417 | d="m 140.51539,230.56085 55.71428,0" | |
|
418 | id="path3939-3-2" | |
|
419 | inkscape:connector-curvature="0" /> | |
|
420 | <path | |
|
421 | style="fill:none;stroke:#000000;stroke-width:1.70000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:none;marker-end:url(#Arrow2Lend)" | |
|
422 | d="m 197.88571,218.51648 -55.71428,0" | |
|
423 | id="path3939-1-4-3" | |
|
424 | inkscape:connector-curvature="0" /> | |
|
425 | </g> | |
|
426 | <text | |
|
427 | transform="matrix(0,-1,1,0,0,0)" | |
|
428 | sodipodi:linespacing="125%" | |
|
429 | id="text5735" | |
|
430 | y="552.92767" | |
|
431 | x="-210.12585" | |
|
432 | style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans" | |
|
433 | xml:space="preserve"><tspan | |
|
434 | y="552.92767" | |
|
435 | x="-210.12585" | |
|
436 | id="tspan5737" | |
|
437 | sodipodi:role="line">ØMQ</tspan></text> | |
|
438 | </g> | |
|
439 | <g | |
|
440 | id="g5788" | |
|
441 | transform="translate(-48,-88)"> | |
|
442 | <g | |
|
443 | id="g5575-1" | |
|
444 | transform="translate(188.89588,1.3949516)"> | |
|
445 | <path | |
|
446 | style="fill:none;stroke:#000000;stroke-width:1.70000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:none;marker-end:url(#marker5355)" | |
|
447 | d="m 140.51539,230.56085 55.71428,0" | |
|
448 | id="path3939-3" | |
|
449 | inkscape:connector-curvature="0" /> | |
|
450 | <path | |
|
451 | style="fill:none;stroke:#000000;stroke-width:1.70000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:none;marker-end:url(#Arrow2Lend)" | |
|
452 | d="m 197.88571,218.51648 -55.71428,0" | |
|
453 | id="path3939-1-4" | |
|
454 | inkscape:connector-curvature="0" /> | |
|
455 | </g> | |
|
456 | <text | |
|
457 | transform="matrix(0,-1,1,0,0,0)" | |
|
458 | sodipodi:linespacing="125%" | |
|
459 | id="text5735-1" | |
|
460 | y="352.74976" | |
|
461 | x="-209.10046" | |
|
462 | style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans" | |
|
463 | xml:space="preserve"><tspan | |
|
464 | y="352.74976" | |
|
465 | x="-209.10046" | |
|
466 | id="tspan5737-1" | |
|
467 | sodipodi:role="line">HTTP &</tspan><tspan | |
|
468 | id="tspan5760" | |
|
469 | y="377.74976" | |
|
470 | x="-209.10046" | |
|
471 | sodipodi:role="line">Websockets</tspan></text> | |
|
472 | </g> | |
|
473 | </g> | |
|
474 | </svg> |
@@ -1,89 +1,89 | |||
|
1 | 1 | How IPython Works |
|
2 | 2 | ================= |
|
3 | 3 | |
|
4 | 4 | Terminal IPython |
|
5 | 5 | ---------------- |
|
6 | 6 | |
|
7 | 7 | When you type ``ipython``, you get the original IPython interface, running in |
|
8 | 8 | the terminal. It does something like this:: |
|
9 | 9 | |
|
10 | 10 | while True: |
|
11 | 11 | code = input(">>> ") |
|
12 | 12 | exec(code) |
|
13 | 13 | |
|
14 | 14 | Of course, it's much more complicated, because it has to deal with multi-line |
|
15 | 15 | code, tab completion using :mod:`readline`, magic commands, and so on. But the |
|
16 | 16 | model is like that: prompt the user for some code, and when they've entered it, |
|
17 | 17 | exec it in the same process. |
|
18 | 18 | |
|
19 | 19 | The IPython Kernel |
|
20 | 20 | ------------------ |
|
21 | 21 | |
|
22 | 22 | All the other interfaces—the Notebook, the Qt console, ``ipython console`` in |
|
23 | 23 | the terminal, and third party interfaces—use the IPython Kernel. This is a |
|
24 | 24 | separate process which is responsible for running user code, and things like |
|
25 | 25 | computing possible completions. Frontends communicate with it using JSON |
|
26 | 26 | messages sent over ZeroMQ sockets; the protocol they use is described in |
|
27 | 27 | :doc:`messaging`. |
|
28 | 28 | |
|
29 | 29 | The core execution machinery for the kernel is shared with terminal IPython: |
|
30 | 30 | |
|
31 | 31 | .. image:: figs/ipy_kernel_and_terminal.png |
|
32 | 32 | |
|
33 | 33 | A kernel process can be connected to more than one frontend simultaneously. In |
|
34 | 34 | this case, the different frontends will have access to the same variables. |
|
35 | 35 | |
|
36 | 36 | .. TODO: Diagram illustrating this? |
|
37 | 37 | |
|
38 | 38 | This design was intended to allow easy development of different frontends based |
|
39 | 39 | on the same kernel, but it also made it possible to support new languages in the |
|
40 | 40 | same frontends, by developing kernels in those languages, and we are refining |
|
41 | 41 | IPython to make that more practical. |
|
42 | 42 | |
|
43 | 43 | Today, there are two ways to develop a kernel for another language. Wrapper |
|
44 | 44 | kernels reuse the communications machinery from IPython, and implement only the |
|
45 | 45 | core execution part. Native kernels implement execution and communications in |
|
46 | 46 | the target language: |
|
47 | 47 | |
|
48 | 48 | .. image:: figs/other_kernels.png |
|
49 | 49 | |
|
50 | 50 | .. seealso:: |
|
51 | 51 | |
|
52 | 52 | :doc:`kernels` |
|
53 | 53 | |
|
54 | 54 | :doc:`wrapperkernels` |
|
55 | 55 | |
|
56 | 56 | Notebooks |
|
57 | 57 | --------- |
|
58 | 58 | |
|
59 | 59 | The Notebook frontend does something extra. In addition to running your code, it |
|
60 | 60 | stores code and output, together with markdown notes, in an editable document |
|
61 | 61 | called a notebook. When you save it, this is sent from your browser to the |
|
62 | 62 | notebook server, which saves it on disk as a JSON file with a ``.ipynb`` |
|
63 | 63 | extension. |
|
64 | 64 | |
|
65 | .. TODO: Diagram of how these pieces fit together. | |
|
65 | .. image:: figs/notebook_components.png | |
|
66 | 66 | |
|
67 | 67 | The notebook server, not the kernel, is responsible for saving and loading |
|
68 | 68 | notebooks, so you can edit notebooks even if you don't have the kernel for that |
|
69 | 69 | language—you just won't be able to run code. The kernel doesn't know anything |
|
70 | 70 | about the notebook document: it just gets sent cells of code to execute when the |
|
71 | 71 | user runs them. |
|
72 | 72 | |
|
73 | 73 | Exporting to other formats |
|
74 | 74 | `````````````````````````` |
|
75 | 75 | |
|
76 | 76 | The Nbconvert tool in IPython converts notebook files to other formats, such as |
|
77 | 77 | HTML, LaTeX, or reStructuredText. This conversion goes through a series of steps: |
|
78 | 78 | |
|
79 | 79 | .. image:: figs/nbconvert.png |
|
80 | 80 | |
|
81 | 81 | 1. Preprocessors modify the notebook in memory. E.g. ExecutePreprocessor runs |
|
82 | 82 | the code in the notebook and updates the output. |
|
83 | 83 | 2. An exporter converts the notebook to another file format. Most of the |
|
84 | 84 | exporters use templates for this. |
|
85 | 85 | 3. Postprocessors work on the file produced by exporting. |
|
86 | 86 | |
|
87 | 87 | The `nbviewer <http://nbviewer.ipython.org/>`_ website uses nbconvert with the |
|
88 | 88 | HTML exporter. When you give it a URL, it fetches the notebook from that URL, |
|
89 | 89 | converts it to HTML, and serves that HTML to you. |
General Comments 0
You need to be logged in to leave comments.
Login now