Show More
1 | NO CONTENT: new file 100644, binary diff hidden |
|
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 | How IPython Works |
|
1 | How IPython Works | |
2 | ================= |
|
2 | ================= | |
3 |
|
3 | |||
4 | Terminal IPython |
|
4 | Terminal IPython | |
5 | ---------------- |
|
5 | ---------------- | |
6 |
|
6 | |||
7 | When you type ``ipython``, you get the original IPython interface, running in |
|
7 | When you type ``ipython``, you get the original IPython interface, running in | |
8 | the terminal. It does something like this:: |
|
8 | the terminal. It does something like this:: | |
9 |
|
9 | |||
10 | while True: |
|
10 | while True: | |
11 | code = input(">>> ") |
|
11 | code = input(">>> ") | |
12 | exec(code) |
|
12 | exec(code) | |
13 |
|
13 | |||
14 | Of course, it's much more complicated, because it has to deal with multi-line |
|
14 | Of course, it's much more complicated, because it has to deal with multi-line | |
15 | code, tab completion using :mod:`readline`, magic commands, and so on. But the |
|
15 | code, tab completion using :mod:`readline`, magic commands, and so on. But the | |
16 | model is like that: prompt the user for some code, and when they've entered it, |
|
16 | model is like that: prompt the user for some code, and when they've entered it, | |
17 | exec it in the same process. |
|
17 | exec it in the same process. | |
18 |
|
18 | |||
19 | The IPython Kernel |
|
19 | The IPython Kernel | |
20 | ------------------ |
|
20 | ------------------ | |
21 |
|
21 | |||
22 | All the other interfaces—the Notebook, the Qt console, ``ipython console`` in |
|
22 | All the other interfaces—the Notebook, the Qt console, ``ipython console`` in | |
23 | the terminal, and third party interfaces—use the IPython Kernel. This is a |
|
23 | the terminal, and third party interfaces—use the IPython Kernel. This is a | |
24 | separate process which is responsible for running user code, and things like |
|
24 | separate process which is responsible for running user code, and things like | |
25 | computing possible completions. Frontends communicate with it using JSON |
|
25 | computing possible completions. Frontends communicate with it using JSON | |
26 | messages sent over ZeroMQ sockets; the protocol they use is described in |
|
26 | messages sent over ZeroMQ sockets; the protocol they use is described in | |
27 | :doc:`messaging`. |
|
27 | :doc:`messaging`. | |
28 |
|
28 | |||
29 | The core execution machinery for the kernel is shared with terminal IPython: |
|
29 | The core execution machinery for the kernel is shared with terminal IPython: | |
30 |
|
30 | |||
31 | .. image:: figs/ipy_kernel_and_terminal.png |
|
31 | .. image:: figs/ipy_kernel_and_terminal.png | |
32 |
|
32 | |||
33 | A kernel process can be connected to more than one frontend simultaneously. In |
|
33 | A kernel process can be connected to more than one frontend simultaneously. In | |
34 | this case, the different frontends will have access to the same variables. |
|
34 | this case, the different frontends will have access to the same variables. | |
35 |
|
35 | |||
36 | .. TODO: Diagram illustrating this? |
|
36 | .. TODO: Diagram illustrating this? | |
37 |
|
37 | |||
38 | This design was intended to allow easy development of different frontends based |
|
38 | This design was intended to allow easy development of different frontends based | |
39 | on the same kernel, but it also made it possible to support new languages in the |
|
39 | on the same kernel, but it also made it possible to support new languages in the | |
40 | same frontends, by developing kernels in those languages, and we are refining |
|
40 | same frontends, by developing kernels in those languages, and we are refining | |
41 | IPython to make that more practical. |
|
41 | IPython to make that more practical. | |
42 |
|
42 | |||
43 | Today, there are two ways to develop a kernel for another language. Wrapper |
|
43 | Today, there are two ways to develop a kernel for another language. Wrapper | |
44 | kernels reuse the communications machinery from IPython, and implement only the |
|
44 | kernels reuse the communications machinery from IPython, and implement only the | |
45 | core execution part. Native kernels implement execution and communications in |
|
45 | core execution part. Native kernels implement execution and communications in | |
46 | the target language: |
|
46 | the target language: | |
47 |
|
47 | |||
48 | .. image:: figs/other_kernels.png |
|
48 | .. image:: figs/other_kernels.png | |
49 |
|
49 | |||
50 | .. seealso:: |
|
50 | .. seealso:: | |
51 |
|
51 | |||
52 | :doc:`kernels` |
|
52 | :doc:`kernels` | |
53 |
|
53 | |||
54 | :doc:`wrapperkernels` |
|
54 | :doc:`wrapperkernels` | |
55 |
|
55 | |||
56 | Notebooks |
|
56 | Notebooks | |
57 | --------- |
|
57 | --------- | |
58 |
|
58 | |||
59 | The Notebook frontend does something extra. In addition to running your code, it |
|
59 | The Notebook frontend does something extra. In addition to running your code, it | |
60 | stores code and output, together with markdown notes, in an editable document |
|
60 | stores code and output, together with markdown notes, in an editable document | |
61 | called a notebook. When you save it, this is sent from your browser to the |
|
61 | called a notebook. When you save it, this is sent from your browser to the | |
62 | notebook server, which saves it on disk as a JSON file with a ``.ipynb`` |
|
62 | notebook server, which saves it on disk as a JSON file with a ``.ipynb`` | |
63 | extension. |
|
63 | extension. | |
64 |
|
64 | |||
65 | .. TODO: Diagram of how these pieces fit together. |
|
65 | .. image:: figs/notebook_components.png | |
66 |
|
66 | |||
67 | The notebook server, not the kernel, is responsible for saving and loading |
|
67 | The notebook server, not the kernel, is responsible for saving and loading | |
68 | notebooks, so you can edit notebooks even if you don't have the kernel for that |
|
68 | notebooks, so you can edit notebooks even if you don't have the kernel for that | |
69 | language—you just won't be able to run code. The kernel doesn't know anything |
|
69 | language—you just won't be able to run code. The kernel doesn't know anything | |
70 | about the notebook document: it just gets sent cells of code to execute when the |
|
70 | about the notebook document: it just gets sent cells of code to execute when the | |
71 | user runs them. |
|
71 | user runs them. | |
72 |
|
72 | |||
73 | Exporting to other formats |
|
73 | Exporting to other formats | |
74 | `````````````````````````` |
|
74 | `````````````````````````` | |
75 |
|
75 | |||
76 | The Nbconvert tool in IPython converts notebook files to other formats, such as |
|
76 | The Nbconvert tool in IPython converts notebook files to other formats, such as | |
77 | HTML, LaTeX, or reStructuredText. This conversion goes through a series of steps: |
|
77 | HTML, LaTeX, or reStructuredText. This conversion goes through a series of steps: | |
78 |
|
78 | |||
79 | .. image:: figs/nbconvert.png |
|
79 | .. image:: figs/nbconvert.png | |
80 |
|
80 | |||
81 | 1. Preprocessors modify the notebook in memory. E.g. ExecutePreprocessor runs |
|
81 | 1. Preprocessors modify the notebook in memory. E.g. ExecutePreprocessor runs | |
82 | the code in the notebook and updates the output. |
|
82 | the code in the notebook and updates the output. | |
83 | 2. An exporter converts the notebook to another file format. Most of the |
|
83 | 2. An exporter converts the notebook to another file format. Most of the | |
84 | exporters use templates for this. |
|
84 | exporters use templates for this. | |
85 | 3. Postprocessors work on the file produced by exporting. |
|
85 | 3. Postprocessors work on the file produced by exporting. | |
86 |
|
86 | |||
87 | The `nbviewer <http://nbviewer.ipython.org/>`_ website uses nbconvert with the |
|
87 | The `nbviewer <http://nbviewer.ipython.org/>`_ website uses nbconvert with the | |
88 | HTML exporter. When you give it a URL, it fetches the notebook from that URL, |
|
88 | HTML exporter. When you give it a URL, it fetches the notebook from that URL, | |
89 | converts it to HTML, and serves that HTML to you. |
|
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