Show More
This diff has been collapsed as it changes many lines, (507 lines changed) Show them Hide them | |||||
@@ -0,0 +1,507 b'' | |||||
|
1 | /** | |||
|
2 | * Alternate Sphinx design | |||
|
3 | * Originally created by Armin Ronacher for Werkzeug, adapted by Georg Brandl. | |||
|
4 | */ | |||
|
5 | ||||
|
6 | body { | |||
|
7 | font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva', 'Verdana', sans-serif; | |||
|
8 | font-size: 14px; | |||
|
9 | letter-spacing: -0.01em; | |||
|
10 | line-height: 150%; | |||
|
11 | text-align: center; | |||
|
12 | /*background-color: #AFC1C4; */ | |||
|
13 | background-color: #BFD1D4; | |||
|
14 | color: black; | |||
|
15 | padding: 0; | |||
|
16 | border: 1px solid #aaa; | |||
|
17 | ||||
|
18 | margin: 0px 80px 0px 80px; | |||
|
19 | min-width: 740px; | |||
|
20 | } | |||
|
21 | ||||
|
22 | a { | |||
|
23 | color: #CA7900; | |||
|
24 | text-decoration: none; | |||
|
25 | } | |||
|
26 | ||||
|
27 | a:hover { | |||
|
28 | color: #2491CF; | |||
|
29 | } | |||
|
30 | ||||
|
31 | pre { | |||
|
32 | font-family: 'Consolas', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace; | |||
|
33 | font-size: 0.95em; | |||
|
34 | letter-spacing: 0.015em; | |||
|
35 | padding: 0.5em; | |||
|
36 | border: 1px solid #ccc; | |||
|
37 | background-color: #f8f8f8; | |||
|
38 | } | |||
|
39 | ||||
|
40 | td.linenos pre { | |||
|
41 | padding: 0.5em 0; | |||
|
42 | border: 0; | |||
|
43 | background-color: transparent; | |||
|
44 | color: #aaa; | |||
|
45 | } | |||
|
46 | ||||
|
47 | table.highlighttable { | |||
|
48 | margin-left: 0.5em; | |||
|
49 | } | |||
|
50 | ||||
|
51 | table.highlighttable td { | |||
|
52 | padding: 0 0.5em 0 0.5em; | |||
|
53 | } | |||
|
54 | ||||
|
55 | cite, code, tt { | |||
|
56 | font-family: 'Consolas', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace; | |||
|
57 | font-size: 0.95em; | |||
|
58 | letter-spacing: 0.01em; | |||
|
59 | } | |||
|
60 | ||||
|
61 | hr { | |||
|
62 | border: 1px solid #abc; | |||
|
63 | margin: 2em; | |||
|
64 | } | |||
|
65 | ||||
|
66 | tt { | |||
|
67 | background-color: #f2f2f2; | |||
|
68 | border-bottom: 1px solid #ddd; | |||
|
69 | color: #333; | |||
|
70 | } | |||
|
71 | ||||
|
72 | tt.descname { | |||
|
73 | background-color: transparent; | |||
|
74 | font-weight: bold; | |||
|
75 | font-size: 1.2em; | |||
|
76 | border: 0; | |||
|
77 | } | |||
|
78 | ||||
|
79 | tt.descclassname { | |||
|
80 | background-color: transparent; | |||
|
81 | border: 0; | |||
|
82 | } | |||
|
83 | ||||
|
84 | tt.xref { | |||
|
85 | background-color: transparent; | |||
|
86 | font-weight: bold; | |||
|
87 | border: 0; | |||
|
88 | } | |||
|
89 | ||||
|
90 | a tt { | |||
|
91 | background-color: transparent; | |||
|
92 | font-weight: bold; | |||
|
93 | border: 0; | |||
|
94 | color: #CA7900; | |||
|
95 | } | |||
|
96 | ||||
|
97 | a tt:hover { | |||
|
98 | color: #2491CF; | |||
|
99 | } | |||
|
100 | ||||
|
101 | dl { | |||
|
102 | margin-bottom: 15px; | |||
|
103 | } | |||
|
104 | ||||
|
105 | dd p { | |||
|
106 | margin-top: 0px; | |||
|
107 | } | |||
|
108 | ||||
|
109 | dd ul, dd table { | |||
|
110 | margin-bottom: 10px; | |||
|
111 | } | |||
|
112 | ||||
|
113 | dd { | |||
|
114 | margin-top: 3px; | |||
|
115 | margin-bottom: 10px; | |||
|
116 | margin-left: 30px; | |||
|
117 | } | |||
|
118 | ||||
|
119 | .refcount { | |||
|
120 | color: #060; | |||
|
121 | } | |||
|
122 | ||||
|
123 | dt:target, | |||
|
124 | .highlight { | |||
|
125 | background-color: #fbe54e; | |||
|
126 | } | |||
|
127 | ||||
|
128 | dl.class, dl.function { | |||
|
129 | border-top: 2px solid #888; | |||
|
130 | } | |||
|
131 | ||||
|
132 | dl.method, dl.attribute { | |||
|
133 | border-top: 1px solid #aaa; | |||
|
134 | } | |||
|
135 | ||||
|
136 | dl.glossary dt { | |||
|
137 | font-weight: bold; | |||
|
138 | font-size: 1.1em; | |||
|
139 | } | |||
|
140 | ||||
|
141 | pre { | |||
|
142 | line-height: 120%; | |||
|
143 | } | |||
|
144 | ||||
|
145 | pre a { | |||
|
146 | color: inherit; | |||
|
147 | text-decoration: underline; | |||
|
148 | } | |||
|
149 | ||||
|
150 | .first { | |||
|
151 | margin-top: 0 !important; | |||
|
152 | } | |||
|
153 | ||||
|
154 | div.document { | |||
|
155 | background-color: white; | |||
|
156 | text-align: left; | |||
|
157 | background-image: url(contents.png); | |||
|
158 | background-repeat: repeat-x; | |||
|
159 | } | |||
|
160 | ||||
|
161 | /* | |||
|
162 | div.documentwrapper { | |||
|
163 | width: 100%; | |||
|
164 | } | |||
|
165 | */ | |||
|
166 | ||||
|
167 | div.clearer { | |||
|
168 | clear: both; | |||
|
169 | } | |||
|
170 | ||||
|
171 | div.related h3 { | |||
|
172 | display: none; | |||
|
173 | } | |||
|
174 | ||||
|
175 | div.related ul { | |||
|
176 | background-image: url(navigation.png); | |||
|
177 | height: 2em; | |||
|
178 | list-style: none; | |||
|
179 | border-top: 1px solid #ddd; | |||
|
180 | border-bottom: 1px solid #ddd; | |||
|
181 | margin: 0; | |||
|
182 | padding-left: 10px; | |||
|
183 | } | |||
|
184 | ||||
|
185 | div.related ul li { | |||
|
186 | margin: 0; | |||
|
187 | padding: 0; | |||
|
188 | height: 2em; | |||
|
189 | float: left; | |||
|
190 | } | |||
|
191 | ||||
|
192 | div.related ul li.right { | |||
|
193 | float: right; | |||
|
194 | margin-right: 5px; | |||
|
195 | } | |||
|
196 | ||||
|
197 | div.related ul li a { | |||
|
198 | margin: 0; | |||
|
199 | padding: 0 5px 0 5px; | |||
|
200 | line-height: 1.75em; | |||
|
201 | color: #EE9816; | |||
|
202 | } | |||
|
203 | ||||
|
204 | div.related ul li a:hover { | |||
|
205 | color: #3CA8E7; | |||
|
206 | } | |||
|
207 | ||||
|
208 | div.body { | |||
|
209 | margin: 0; | |||
|
210 | padding: 0.5em 20px 20px 20px; | |||
|
211 | } | |||
|
212 | ||||
|
213 | div.bodywrapper { | |||
|
214 | margin: 0 240px 0 0; | |||
|
215 | border-right: 1px solid #ccc; | |||
|
216 | } | |||
|
217 | ||||
|
218 | div.body a { | |||
|
219 | text-decoration: underline; | |||
|
220 | } | |||
|
221 | ||||
|
222 | div.sphinxsidebar { | |||
|
223 | margin: 0; | |||
|
224 | padding: 0.5em 15px 15px 0; | |||
|
225 | width: 210px; | |||
|
226 | float: right; | |||
|
227 | text-align: left; | |||
|
228 | /* margin-left: -100%; */ | |||
|
229 | } | |||
|
230 | ||||
|
231 | div.sphinxsidebar h4, div.sphinxsidebar h3 { | |||
|
232 | margin: 1em 0 0.5em 0; | |||
|
233 | font-size: 0.9em; | |||
|
234 | padding: 0.1em 0 0.1em 0.5em; | |||
|
235 | color: white; | |||
|
236 | border: 1px solid #86989B; | |||
|
237 | background-color: #AFC1C4; | |||
|
238 | } | |||
|
239 | ||||
|
240 | div.sphinxsidebar ul { | |||
|
241 | padding-left: 1.5em; | |||
|
242 | margin-top: 7px; | |||
|
243 | list-style: none; | |||
|
244 | padding: 0; | |||
|
245 | line-height: 130%; | |||
|
246 | } | |||
|
247 | ||||
|
248 | div.sphinxsidebar ul ul { | |||
|
249 | list-style: square; | |||
|
250 | margin-left: 20px; | |||
|
251 | } | |||
|
252 | ||||
|
253 | p { | |||
|
254 | margin: 0.8em 0 0.5em 0; | |||
|
255 | } | |||
|
256 | ||||
|
257 | p.rubric { | |||
|
258 | font-weight: bold; | |||
|
259 | } | |||
|
260 | ||||
|
261 | h1 { | |||
|
262 | margin: 0; | |||
|
263 | padding: 0.7em 0 0.3em 0; | |||
|
264 | font-size: 1.5em; | |||
|
265 | color: #11557C; | |||
|
266 | } | |||
|
267 | ||||
|
268 | h2 { | |||
|
269 | margin: 1.3em 0 0.2em 0; | |||
|
270 | font-size: 1.35em; | |||
|
271 | padding: 0; | |||
|
272 | } | |||
|
273 | ||||
|
274 | h3 { | |||
|
275 | margin: 1em 0 -0.3em 0; | |||
|
276 | font-size: 1.2em; | |||
|
277 | } | |||
|
278 | ||||
|
279 | h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { | |||
|
280 | color: black!important; | |||
|
281 | } | |||
|
282 | ||||
|
283 | h1 a.anchor, h2 a.anchor, h3 a.anchor, h4 a.anchor, h5 a.anchor, h6 a.anchor { | |||
|
284 | display: none; | |||
|
285 | margin: 0 0 0 0.3em; | |||
|
286 | padding: 0 0.2em 0 0.2em; | |||
|
287 | color: #aaa!important; | |||
|
288 | } | |||
|
289 | ||||
|
290 | h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor, | |||
|
291 | h5:hover a.anchor, h6:hover a.anchor { | |||
|
292 | display: inline; | |||
|
293 | } | |||
|
294 | ||||
|
295 | h1 a.anchor:hover, h2 a.anchor:hover, h3 a.anchor:hover, h4 a.anchor:hover, | |||
|
296 | h5 a.anchor:hover, h6 a.anchor:hover { | |||
|
297 | color: #777; | |||
|
298 | background-color: #eee; | |||
|
299 | } | |||
|
300 | ||||
|
301 | table { | |||
|
302 | border-collapse: collapse; | |||
|
303 | margin: 0 -0.5em 0 -0.5em; | |||
|
304 | } | |||
|
305 | ||||
|
306 | table td, table th { | |||
|
307 | padding: 0.2em 0.5em 0.2em 0.5em; | |||
|
308 | } | |||
|
309 | ||||
|
310 | div.footer { | |||
|
311 | background-color: #E3EFF1; | |||
|
312 | color: #86989B; | |||
|
313 | padding: 3px 8px 3px 0; | |||
|
314 | clear: both; | |||
|
315 | font-size: 0.8em; | |||
|
316 | text-align: right; | |||
|
317 | } | |||
|
318 | ||||
|
319 | div.footer a { | |||
|
320 | color: #86989B; | |||
|
321 | text-decoration: underline; | |||
|
322 | } | |||
|
323 | ||||
|
324 | div.pagination { | |||
|
325 | margin-top: 2em; | |||
|
326 | padding-top: 0.5em; | |||
|
327 | border-top: 1px solid black; | |||
|
328 | text-align: center; | |||
|
329 | } | |||
|
330 | ||||
|
331 | div.sphinxsidebar ul.toc { | |||
|
332 | margin: 1em 0 1em 0; | |||
|
333 | padding: 0 0 0 0.5em; | |||
|
334 | list-style: none; | |||
|
335 | } | |||
|
336 | ||||
|
337 | div.sphinxsidebar ul.toc li { | |||
|
338 | margin: 0.5em 0 0.5em 0; | |||
|
339 | font-size: 0.9em; | |||
|
340 | line-height: 130%; | |||
|
341 | } | |||
|
342 | ||||
|
343 | div.sphinxsidebar ul.toc li p { | |||
|
344 | margin: 0; | |||
|
345 | padding: 0; | |||
|
346 | } | |||
|
347 | ||||
|
348 | div.sphinxsidebar ul.toc ul { | |||
|
349 | margin: 0.2em 0 0.2em 0; | |||
|
350 | padding: 0 0 0 1.8em; | |||
|
351 | } | |||
|
352 | ||||
|
353 | div.sphinxsidebar ul.toc ul li { | |||
|
354 | padding: 0; | |||
|
355 | } | |||
|
356 | ||||
|
357 | div.admonition, div.warning { | |||
|
358 | font-size: 0.9em; | |||
|
359 | margin: 1em 0 0 0; | |||
|
360 | border: 1px solid #86989B; | |||
|
361 | background-color: #f7f7f7; | |||
|
362 | } | |||
|
363 | ||||
|
364 | div.admonition p, div.warning p { | |||
|
365 | margin: 0.5em 1em 0.5em 1em; | |||
|
366 | padding: 0; | |||
|
367 | } | |||
|
368 | ||||
|
369 | div.admonition pre, div.warning pre { | |||
|
370 | margin: 0.4em 1em 0.4em 1em; | |||
|
371 | } | |||
|
372 | ||||
|
373 | div.admonition p.admonition-title, | |||
|
374 | div.warning p.admonition-title { | |||
|
375 | margin: 0; | |||
|
376 | padding: 0.1em 0 0.1em 0.5em; | |||
|
377 | color: white; | |||
|
378 | border-bottom: 1px solid #86989B; | |||
|
379 | font-weight: bold; | |||
|
380 | background-color: #AFC1C4; | |||
|
381 | } | |||
|
382 | ||||
|
383 | div.warning { | |||
|
384 | border: 1px solid #940000; | |||
|
385 | } | |||
|
386 | ||||
|
387 | div.warning p.admonition-title { | |||
|
388 | background-color: #CF0000; | |||
|
389 | border-bottom-color: #940000; | |||
|
390 | } | |||
|
391 | ||||
|
392 | div.admonition ul, div.admonition ol, | |||
|
393 | div.warning ul, div.warning ol { | |||
|
394 | margin: 0.1em 0.5em 0.5em 3em; | |||
|
395 | padding: 0; | |||
|
396 | } | |||
|
397 | ||||
|
398 | div.versioninfo { | |||
|
399 | margin: 1em 0 0 0; | |||
|
400 | border: 1px solid #ccc; | |||
|
401 | background-color: #DDEAF0; | |||
|
402 | padding: 8px; | |||
|
403 | line-height: 1.3em; | |||
|
404 | font-size: 0.9em; | |||
|
405 | } | |||
|
406 | ||||
|
407 | ||||
|
408 | a.headerlink { | |||
|
409 | color: #c60f0f!important; | |||
|
410 | font-size: 1em; | |||
|
411 | margin-left: 6px; | |||
|
412 | padding: 0 4px 0 4px; | |||
|
413 | text-decoration: none!important; | |||
|
414 | visibility: hidden; | |||
|
415 | } | |||
|
416 | ||||
|
417 | h1:hover > a.headerlink, | |||
|
418 | h2:hover > a.headerlink, | |||
|
419 | h3:hover > a.headerlink, | |||
|
420 | h4:hover > a.headerlink, | |||
|
421 | h5:hover > a.headerlink, | |||
|
422 | h6:hover > a.headerlink, | |||
|
423 | dt:hover > a.headerlink { | |||
|
424 | visibility: visible; | |||
|
425 | } | |||
|
426 | ||||
|
427 | a.headerlink:hover { | |||
|
428 | background-color: #ccc; | |||
|
429 | color: white!important; | |||
|
430 | } | |||
|
431 | ||||
|
432 | table.indextable td { | |||
|
433 | text-align: left; | |||
|
434 | vertical-align: top; | |||
|
435 | } | |||
|
436 | ||||
|
437 | table.indextable dl, table.indextable dd { | |||
|
438 | margin-top: 0; | |||
|
439 | margin-bottom: 0; | |||
|
440 | } | |||
|
441 | ||||
|
442 | table.indextable tr.pcap { | |||
|
443 | height: 10px; | |||
|
444 | } | |||
|
445 | ||||
|
446 | table.indextable tr.cap { | |||
|
447 | margin-top: 10px; | |||
|
448 | background-color: #f2f2f2; | |||
|
449 | } | |||
|
450 | ||||
|
451 | img.toggler { | |||
|
452 | margin-right: 3px; | |||
|
453 | margin-top: 3px; | |||
|
454 | cursor: pointer; | |||
|
455 | } | |||
|
456 | ||||
|
457 | img.inheritance { | |||
|
458 | border: 0px | |||
|
459 | } | |||
|
460 | ||||
|
461 | form.pfform { | |||
|
462 | margin: 10px 0 20px 0; | |||
|
463 | } | |||
|
464 | ||||
|
465 | table.contentstable { | |||
|
466 | width: 90%; | |||
|
467 | } | |||
|
468 | ||||
|
469 | table.contentstable p.biglink { | |||
|
470 | line-height: 150%; | |||
|
471 | } | |||
|
472 | ||||
|
473 | a.biglink { | |||
|
474 | font-size: 1.3em; | |||
|
475 | } | |||
|
476 | ||||
|
477 | span.linkdescr { | |||
|
478 | font-style: italic; | |||
|
479 | padding-top: 5px; | |||
|
480 | font-size: 90%; | |||
|
481 | } | |||
|
482 | ||||
|
483 | ul.search { | |||
|
484 | margin: 10px 0 0 20px; | |||
|
485 | padding: 0; | |||
|
486 | } | |||
|
487 | ||||
|
488 | ul.search li { | |||
|
489 | padding: 5px 0 5px 20px; | |||
|
490 | background-image: url(file.png); | |||
|
491 | background-repeat: no-repeat; | |||
|
492 | background-position: 0 7px; | |||
|
493 | } | |||
|
494 | ||||
|
495 | ul.search li a { | |||
|
496 | font-weight: bold; | |||
|
497 | } | |||
|
498 | ||||
|
499 | ul.search li div.context { | |||
|
500 | color: #888; | |||
|
501 | margin: 2px 0 0 30px; | |||
|
502 | text-align: left; | |||
|
503 | } | |||
|
504 | ||||
|
505 | ul.keywordmatches li.goodmatch a { | |||
|
506 | font-weight: bold; | |||
|
507 | } |
@@ -0,0 +1,23 b'' | |||||
|
1 | {% extends "!layout.html" %} | |||
|
2 | ||||
|
3 | ||||
|
4 | {% block rootrellink %} | |||
|
5 | <li><a href="{{ pathto('index') }}">home</a>| </li> | |||
|
6 | <li><a href="{{ pathto('search') }}">search</a>| </li> | |||
|
7 | <li><a href="{{ pathto('whatsnew/index') }}">what's new </a> »</li> | |||
|
8 | {% endblock %} | |||
|
9 | ||||
|
10 | ||||
|
11 | {% block relbar1 %} | |||
|
12 | ||||
|
13 | <div style="background-color: white; text-align: left; padding: 10px 10px 15px 15px"> | |||
|
14 | <a href="{{ pathto('index') }}"><img src="{{ | |||
|
15 | pathto("_static/logo.png", 1) }}" border="0" alt="IPython Documentation"/></a> | |||
|
16 | </div> | |||
|
17 | {{ super() }} | |||
|
18 | {% endblock %} | |||
|
19 | ||||
|
20 | {# put the sidebar before the body #} | |||
|
21 | {% block sidebar1 %}{{ sidebar() }}{% endblock %} | |||
|
22 | {% block sidebar2 %}{% endblock %} | |||
|
23 |
@@ -0,0 +1,13 b'' | |||||
|
1 | .. _about_index: | |||
|
2 | ||||
|
3 | ============= | |||
|
4 | About IPython | |||
|
5 | ============= | |||
|
6 | ||||
|
7 | .. toctree:: | |||
|
8 | :maxdepth: 1 | |||
|
9 | ||||
|
10 | credits | |||
|
11 | history | |||
|
12 | license_and_copyright | |||
|
13 |
@@ -0,0 +1,49 b'' | |||||
|
1 | ================================================ | |||
|
2 | Development version | |||
|
3 | ================================================ | |||
|
4 | ||||
|
5 | Main `ipython` branch | |||
|
6 | ===================== | |||
|
7 | ||||
|
8 | New features | |||
|
9 | ------------ | |||
|
10 | ||||
|
11 | * Added a new module :mod:`IPython.lib.inputhook` to manage the integration | |||
|
12 | with GUI event loops using `PyOS_InputHook`. See the docstrings in this | |||
|
13 | module or the main IPython docs for details. | |||
|
14 | * For users, GUI event loop integration is now handled through the new | |||
|
15 | :command:`%gui` magic command. Type ``%gui?`` at an IPython prompt for | |||
|
16 | documentation. | |||
|
17 | * For developers :mod:`IPython.lib.inputhook` provides a simple interface | |||
|
18 | for managing the event loops in their interactive GUI applications. | |||
|
19 | Examples can be found in our :file:`docs/examples/lib` directory. | |||
|
20 | ||||
|
21 | Bug fixes | |||
|
22 | --------- | |||
|
23 | ||||
|
24 | * Keyboard interrupts now work with GUI support enabled across all platforms | |||
|
25 | and all GUI toolkits reliably. | |||
|
26 | ||||
|
27 | Backwards incompatible changes | |||
|
28 | ------------------------------ | |||
|
29 | ||||
|
30 | * Support for ``qt3`` has been dropped. User's who need this should use | |||
|
31 | previous versions of IPython. | |||
|
32 | * Removed :mod:`shellglobals` as it was obsolete. | |||
|
33 | * Removed all the threaded shells in :mod:`IPython.core.shell`. These are no | |||
|
34 | longer needed because of the new capabilities in | |||
|
35 | :mod:`IPython.lib.inputhook`. | |||
|
36 | * The old threading command line flags (pylab/wthread/etc.) have been | |||
|
37 | deprecated. Use :mod:`IPython.inputhook` or the new :command:`%gui` magic | |||
|
38 | command instead. | |||
|
39 | * New top-level sub-packages have been created: :mod:`IPython.core`, | |||
|
40 | :mod:`IPython.lib`, :mod:`IPython.utils`, :mod:`IPython.deathrow`, | |||
|
41 | :mod:`IPython.quarantine`. All existing top-level modules have been | |||
|
42 | moved to appropriate sub-packages. All internal import statements | |||
|
43 | have been updated and tests have been added. The build system (setup.py | |||
|
44 | and friends) have been updated. | |||
|
45 | * Compatability modules have been created for :mod:`IPython.Shell`, | |||
|
46 | :mod:`IPython.ipapi` and :mod:`IPython.iplib` that display warnings | |||
|
47 | and then load the actual implementation from :mod:`IPython.core`. | |||
|
48 | * :mod:`Extensions` has been moved to :mod:`extensions`. | |||
|
49 |
@@ -0,0 +1,23 b'' | |||||
|
1 | .. Developers should add in this file, during each release cycle, information | |||
|
2 | .. about important changes they've made, in a summary format that's meant for | |||
|
3 | .. end users. For each release we normally have three sections: features, bug | |||
|
4 | .. fixes and api breakage. | |||
|
5 | .. Please remember to credit the authors of the contributions by name, | |||
|
6 | .. especially when they are new users or developers who do not regularly | |||
|
7 | .. participate in IPython's development. | |||
|
8 | ||||
|
9 | .. _whatsnew_index: | |||
|
10 | ||||
|
11 | ===================== | |||
|
12 | What's new in IPython | |||
|
13 | ===================== | |||
|
14 | ||||
|
15 | .. toctree:: | |||
|
16 | :maxdepth: 1 | |||
|
17 | ||||
|
18 | development | |||
|
19 | version0.10 | |||
|
20 | version0.9 | |||
|
21 | version0.8 | |||
|
22 | ||||
|
23 |
@@ -0,0 +1,223 b'' | |||||
|
1 | ======================================== | |||
|
2 | 0.10 series | |||
|
3 | ======================================== | |||
|
4 | ||||
|
5 | Release 0.10 | |||
|
6 | ============ | |||
|
7 | ||||
|
8 | This release brings months of slow but steady development, and will be the last | |||
|
9 | before a major restructuring and cleanup of IPython's internals that is already | |||
|
10 | under way. For this reason, we hope that 0.10 will be a stable and robust | |||
|
11 | release so that while users adapt to some of the API changes that will come | |||
|
12 | with the refactoring that will become IPython 0.11, they can safely use 0.10 in | |||
|
13 | all existing projects with minimal changes (if any). | |||
|
14 | ||||
|
15 | IPython 0.10 is now a medium-sized project, with roughly (as reported by David | |||
|
16 | Wheeler's :command:`sloccount` utility) 40750 lines of Python code, and a diff | |||
|
17 | between 0.9.1 and this release that contains almost 28000 lines of code and | |||
|
18 | documentation. Our documentation, in PDF format, is a 495-page long PDF | |||
|
19 | document (also available in HTML format, both generated from the same sources). | |||
|
20 | ||||
|
21 | Many users and developers contributed code, features, bug reports and ideas to | |||
|
22 | this release. Please do not hesitate in contacting us if we've failed to | |||
|
23 | acknowledge your contribution here. In particular, for this release we have | |||
|
24 | contribution from the following people, a mix of new and regular names (in | |||
|
25 | alphabetical order by first name): | |||
|
26 | ||||
|
27 | * Alexander Clausen: fix #341726. | |||
|
28 | * Brian Granger: lots of work everywhere (features, bug fixes, etc). | |||
|
29 | * Daniel Ashbrook: bug report on MemoryError during compilation, now fixed. | |||
|
30 | * Darren Dale: improvements to documentation build system, feedback, design | |||
|
31 | ideas. | |||
|
32 | * Fernando Perez: various places. | |||
|
33 | * Gaël Varoquaux: core code, ipythonx GUI, design discussions, etc. Lots... | |||
|
34 | * John Hunter: suggestions, bug fixes, feedback. | |||
|
35 | * Jorgen Stenarson: work on many fronts, tests, fixes, win32 support, etc. | |||
|
36 | * Laurent Dufréchou: many improvements to ipython-wx standalone app. | |||
|
37 | * Lukasz Pankowski: prefilter, `%edit`, demo improvements. | |||
|
38 | * Matt Foster: TextMate support in `%edit`. | |||
|
39 | * Nathaniel Smith: fix #237073. | |||
|
40 | * Pauli Virtanen: fixes and improvements to extensions, documentation. | |||
|
41 | * Prabhu Ramachandran: improvements to `%timeit`. | |||
|
42 | * Robert Kern: several extensions. | |||
|
43 | * Sameer D'Costa: help on critical bug #269966. | |||
|
44 | * Stephan Peijnik: feedback on Debian compliance and many man pages. | |||
|
45 | * Steven Bethard: we are now shipping his :mod:`argparse` module. | |||
|
46 | * Tom Fetherston: many improvements to :mod:`IPython.demo` module. | |||
|
47 | * Ville Vainio: lots of work everywhere (features, bug fixes, etc). | |||
|
48 | * Vishal Vasta: ssh support in ipcluster. | |||
|
49 | * Walter Doerwald: work on the :mod:`IPython.ipipe` system. | |||
|
50 | ||||
|
51 | Below we give an overview of new features, bug fixes and backwards-incompatible | |||
|
52 | changes. For a detailed account of every change made, feel free to view the | |||
|
53 | project log with :command:`bzr log`. | |||
|
54 | ||||
|
55 | New features | |||
|
56 | ------------ | |||
|
57 | ||||
|
58 | * New `%paste` magic automatically extracts current contents of clipboard and | |||
|
59 | pastes it directly, while correctly handling code that is indented or | |||
|
60 | prepended with `>>>` or `...` python prompt markers. A very useful new | |||
|
61 | feature contributed by Robert Kern. | |||
|
62 | ||||
|
63 | * IPython 'demos', created with the :mod:`IPython.demo` module, can now be | |||
|
64 | created from files on disk or strings in memory. Other fixes and | |||
|
65 | improvements to the demo system, by Tom Fetherston. | |||
|
66 | ||||
|
67 | * Added :func:`find_cmd` function to :mod:`IPython.platutils` module, to find | |||
|
68 | commands in a cross-platform manner. | |||
|
69 | ||||
|
70 | * Many improvements and fixes to Gaël Varoquaux's :command:`ipythonx`, a | |||
|
71 | WX-based lightweight IPython instance that can be easily embedded in other WX | |||
|
72 | applications. These improvements have made it possible to now have an | |||
|
73 | embedded IPython in Mayavi and other tools. | |||
|
74 | ||||
|
75 | * :class:`MultiengineClient` objects now have a :meth:`benchmark` method. | |||
|
76 | ||||
|
77 | * The manual now includes a full set of auto-generated API documents from the | |||
|
78 | code sources, using Sphinx and some of our own support code. We are now | |||
|
79 | using the `Numpy Documentation Standard`_ for all docstrings, and we have | |||
|
80 | tried to update as many existing ones as possible to this format. | |||
|
81 | ||||
|
82 | * The new :mod:`IPython.Extensions.ipy_pretty` extension by Robert Kern | |||
|
83 | provides configurable pretty-printing. | |||
|
84 | ||||
|
85 | * Many improvements to the :command:`ipython-wx` standalone WX-based IPython | |||
|
86 | application by Laurent Dufréchou. It can optionally run in a thread, and | |||
|
87 | this can be toggled at runtime (allowing the loading of Matplotlib in a | |||
|
88 | running session without ill effects). | |||
|
89 | ||||
|
90 | * IPython includes a copy of Steven Bethard's argparse_ in the | |||
|
91 | :mod:`IPython.external` package, so we can use it internally and it is also | |||
|
92 | available to any IPython user. By installing it in this manner, we ensure | |||
|
93 | zero conflicts with any system-wide installation you may already have while | |||
|
94 | minimizing external dependencies for new users. In IPython 0.10, We ship | |||
|
95 | argparse version 1.0. | |||
|
96 | ||||
|
97 | * An improved and much more robust test suite, that runs groups of tests in | |||
|
98 | separate subprocesses using either Nose or Twisted's :command:`trial` runner | |||
|
99 | to ensure proper management of Twisted-using code. The test suite degrades | |||
|
100 | gracefully if optional dependencies are not available, so that the | |||
|
101 | :command:`iptest` command can be run with only Nose installed and nothing | |||
|
102 | else. We also have more and cleaner test decorators to better select tests | |||
|
103 | depending on runtime conditions, do setup/teardown, etc. | |||
|
104 | ||||
|
105 | * The new ipcluster now has a fully working ssh mode that should work on | |||
|
106 | Linux, Unix and OS X. Thanks to Vishal Vatsa for implementing this! | |||
|
107 | ||||
|
108 | * The wonderful TextMate editor can now be used with %edit on OS X. Thanks | |||
|
109 | to Matt Foster for this patch. | |||
|
110 | ||||
|
111 | * The documentation regarding parallel uses of IPython, including MPI and PBS, | |||
|
112 | has been significantly updated and improved. | |||
|
113 | ||||
|
114 | * The developer guidelines in the documentation have been updated to explain | |||
|
115 | our workflow using :command:`bzr` and Launchpad. | |||
|
116 | ||||
|
117 | * Fully refactored :command:`ipcluster` command line program for starting | |||
|
118 | IPython clusters. This new version is a complete rewrite and 1) is fully | |||
|
119 | cross platform (we now use Twisted's process management), 2) has much | |||
|
120 | improved performance, 3) uses subcommands for different types of clusters, 4) | |||
|
121 | uses argparse for parsing command line options, 5) has better support for | |||
|
122 | starting clusters using :command:`mpirun`, 6) has experimental support for | |||
|
123 | starting engines using PBS. It can also reuse FURL files, by appropriately | |||
|
124 | passing options to its subcommands. However, this new version of ipcluster | |||
|
125 | should be considered a technology preview. We plan on changing the API in | |||
|
126 | significant ways before it is final. | |||
|
127 | ||||
|
128 | * Full description of the security model added to the docs. | |||
|
129 | ||||
|
130 | * cd completer: show bookmarks if no other completions are available. | |||
|
131 | ||||
|
132 | * sh profile: easy way to give 'title' to prompt: assign to variable | |||
|
133 | '_prompt_title'. It looks like this:: | |||
|
134 | ||||
|
135 | [~]|1> _prompt_title = 'sudo!' | |||
|
136 | sudo![~]|2> | |||
|
137 | ||||
|
138 | * %edit: If you do '%edit pasted_block', pasted_block variable gets updated | |||
|
139 | with new data (so repeated editing makes sense) | |||
|
140 | ||||
|
141 | .. _Numpy Documentation Standard: http://projects.scipy.org/numpy/wiki/CodingStyleGuidelines#docstring-standard | |||
|
142 | ||||
|
143 | .. _argparse: http://code.google.com/p/argparse/ | |||
|
144 | ||||
|
145 | Bug fixes | |||
|
146 | --------- | |||
|
147 | ||||
|
148 | * Fix #368719, removed top-level debian/ directory to make the job of Debian | |||
|
149 | packagers easier. | |||
|
150 | ||||
|
151 | * Fix #291143 by including man pages contributed by Stephan Peijnik from the | |||
|
152 | Debian project. | |||
|
153 | ||||
|
154 | * Fix #358202, effectively a race condition, by properly synchronizing file | |||
|
155 | creation at cluster startup time. | |||
|
156 | ||||
|
157 | * `%timeit` now handles correctly functions that take a long time to execute | |||
|
158 | even the first time, by not repeating them. | |||
|
159 | ||||
|
160 | * Fix #239054, releasing of references after exiting. | |||
|
161 | ||||
|
162 | * Fix #341726, thanks to Alexander Clausen. | |||
|
163 | ||||
|
164 | * Fix #269966. This long-standing and very difficult bug (which is actually a | |||
|
165 | problem in Python itself) meant long-running sessions would inevitably grow | |||
|
166 | in memory size, often with catastrophic consequences if users had large | |||
|
167 | objects in their scripts. Now, using `%run` repeatedly should not cause any | |||
|
168 | memory leaks. Special thanks to John Hunter and Sameer D'Costa for their | |||
|
169 | help with this bug. | |||
|
170 | ||||
|
171 | * Fix #295371, bug in `%history`. | |||
|
172 | ||||
|
173 | * Improved support for py2exe. | |||
|
174 | ||||
|
175 | * Fix #270856: IPython hangs with PyGTK | |||
|
176 | ||||
|
177 | * Fix #270998: A magic with no docstring breaks the '%magic magic' | |||
|
178 | ||||
|
179 | * fix #271684: -c startup commands screw up raw vs. native history | |||
|
180 | ||||
|
181 | * Numerous bugs on Windows with the new ipcluster have been fixed. | |||
|
182 | ||||
|
183 | * The ipengine and ipcontroller scripts now handle missing furl files | |||
|
184 | more gracefully by giving better error messages. | |||
|
185 | ||||
|
186 | * %rehashx: Aliases no longer contain dots. python3.0 binary | |||
|
187 | will create alias python30. Fixes: | |||
|
188 | #259716 "commands with dots in them don't work" | |||
|
189 | ||||
|
190 | * %cpaste: %cpaste -r repeats the last pasted block. | |||
|
191 | The block is assigned to pasted_block even if code | |||
|
192 | raises exception. | |||
|
193 | ||||
|
194 | * Bug #274067 'The code in get_home_dir is broken for py2exe' was | |||
|
195 | fixed. | |||
|
196 | ||||
|
197 | * Many other small bug fixes not listed here by number (see the bzr log for | |||
|
198 | more info). | |||
|
199 | ||||
|
200 | Backwards incompatible changes | |||
|
201 | ------------------------------ | |||
|
202 | ||||
|
203 | * `ipykit` and related files were unmaintained and have been removed. | |||
|
204 | ||||
|
205 | * The :func:`IPython.genutils.doctest_reload` does not actually call | |||
|
206 | `reload(doctest)` anymore, as this was causing many problems with the test | |||
|
207 | suite. It still resets `doctest.master` to None. | |||
|
208 | ||||
|
209 | * While we have not deliberately broken Python 2.4 compatibility, only minor | |||
|
210 | testing was done with Python 2.4, while 2.5 and 2.6 were fully tested. But | |||
|
211 | if you encounter problems with 2.4, please do report them as bugs. | |||
|
212 | ||||
|
213 | * The :command:`ipcluster` now requires a mode argument; for example to start a | |||
|
214 | cluster on the local machine with 4 engines, you must now type:: | |||
|
215 | ||||
|
216 | $ ipcluster local -n 4 | |||
|
217 | ||||
|
218 | * The controller now has a ``-r`` flag that needs to be used if you want to | |||
|
219 | reuse existing furl files. Otherwise they are deleted (the default). | |||
|
220 | ||||
|
221 | * Remove ipy_leo.py. You can use :command:`easy_install ipython-extension` to | |||
|
222 | get it. (done to decouple it from ipython release cycle) | |||
|
223 |
@@ -0,0 +1,34 b'' | |||||
|
1 | ======================================== | |||
|
2 | 0.8 series | |||
|
3 | ======================================== | |||
|
4 | ||||
|
5 | Release 0.8.4 | |||
|
6 | ============= | |||
|
7 | ||||
|
8 | This was a quick release to fix an unfortunate bug that slipped into the 0.8.3 | |||
|
9 | release. The ``--twisted`` option was disabled, as it turned out to be broken | |||
|
10 | across several platforms. | |||
|
11 | ||||
|
12 | ||||
|
13 | Release 0.8.3 | |||
|
14 | ============= | |||
|
15 | ||||
|
16 | * pydb is now disabled by default (due to %run -d problems). You can enable | |||
|
17 | it by passing -pydb command line argument to IPython. Note that setting | |||
|
18 | it in config file won't work. | |||
|
19 | ||||
|
20 | ||||
|
21 | Release 0.8.2 | |||
|
22 | ============= | |||
|
23 | ||||
|
24 | * %pushd/%popd behave differently; now "pushd /foo" pushes CURRENT directory | |||
|
25 | and jumps to /foo. The current behaviour is closer to the documented | |||
|
26 | behaviour, and should not trip anyone. | |||
|
27 | ||||
|
28 | ||||
|
29 | Older releases | |||
|
30 | ============== | |||
|
31 | ||||
|
32 | Changes in earlier releases of IPython are described in the older file | |||
|
33 | ``ChangeLog``. Please refer to this document for details. | |||
|
34 |
@@ -0,0 +1,283 b'' | |||||
|
1 | ======================================== | |||
|
2 | 0.9 series | |||
|
3 | ======================================== | |||
|
4 | ||||
|
5 | Release 0.9.1 | |||
|
6 | ============= | |||
|
7 | ||||
|
8 | This release was quickly made to restore compatibility with Python 2.4, which | |||
|
9 | version 0.9 accidentally broke. No new features were introduced, other than | |||
|
10 | some additional testing support for internal use. | |||
|
11 | ||||
|
12 | ||||
|
13 | Release 0.9 | |||
|
14 | =========== | |||
|
15 | ||||
|
16 | New features | |||
|
17 | ------------ | |||
|
18 | ||||
|
19 | * All furl files and security certificates are now put in a read-only | |||
|
20 | directory named ~./ipython/security. | |||
|
21 | ||||
|
22 | * A single function :func:`get_ipython_dir`, in :mod:`IPython.genutils` that | |||
|
23 | determines the user's IPython directory in a robust manner. | |||
|
24 | ||||
|
25 | * Laurent's WX application has been given a top-level script called | |||
|
26 | ipython-wx, and it has received numerous fixes. We expect this code to be | |||
|
27 | architecturally better integrated with Gael's WX 'ipython widget' over the | |||
|
28 | next few releases. | |||
|
29 | ||||
|
30 | * The Editor synchronization work by Vivian De Smedt has been merged in. This | |||
|
31 | code adds a number of new editor hooks to synchronize with editors under | |||
|
32 | Windows. | |||
|
33 | ||||
|
34 | * A new, still experimental but highly functional, WX shell by Gael Varoquaux. | |||
|
35 | This work was sponsored by Enthought, and while it's still very new, it is | |||
|
36 | based on a more cleanly organized arhictecture of the various IPython | |||
|
37 | components. We will continue to develop this over the next few releases as a | |||
|
38 | model for GUI components that use IPython. | |||
|
39 | ||||
|
40 | * Another GUI frontend, Cocoa based (Cocoa is the OSX native GUI framework), | |||
|
41 | authored by Barry Wark. Currently the WX and the Cocoa ones have slightly | |||
|
42 | different internal organizations, but the whole team is working on finding | |||
|
43 | what the right abstraction points are for a unified codebase. | |||
|
44 | ||||
|
45 | * As part of the frontend work, Barry Wark also implemented an experimental | |||
|
46 | event notification system that various ipython components can use. In the | |||
|
47 | next release the implications and use patterns of this system regarding the | |||
|
48 | various GUI options will be worked out. | |||
|
49 | ||||
|
50 | * IPython finally has a full test system, that can test docstrings with | |||
|
51 | IPython-specific functionality. There are still a few pieces missing for it | |||
|
52 | to be widely accessible to all users (so they can run the test suite at any | |||
|
53 | time and report problems), but it now works for the developers. We are | |||
|
54 | working hard on continuing to improve it, as this was probably IPython's | |||
|
55 | major Achilles heel (the lack of proper test coverage made it effectively | |||
|
56 | impossible to do large-scale refactoring). The full test suite can now | |||
|
57 | be run using the :command:`iptest` command line program. | |||
|
58 | ||||
|
59 | * The notion of a task has been completely reworked. An `ITask` interface has | |||
|
60 | been created. This interface defines the methods that tasks need to | |||
|
61 | implement. These methods are now responsible for things like submitting | |||
|
62 | tasks and processing results. There are two basic task types: | |||
|
63 | :class:`IPython.kernel.task.StringTask` (this is the old `Task` object, but | |||
|
64 | renamed) and the new :class:`IPython.kernel.task.MapTask`, which is based on | |||
|
65 | a function. | |||
|
66 | ||||
|
67 | * A new interface, :class:`IPython.kernel.mapper.IMapper` has been defined to | |||
|
68 | standardize the idea of a `map` method. This interface has a single `map` | |||
|
69 | method that has the same syntax as the built-in `map`. We have also defined | |||
|
70 | a `mapper` factory interface that creates objects that implement | |||
|
71 | :class:`IPython.kernel.mapper.IMapper` for different controllers. Both the | |||
|
72 | multiengine and task controller now have mapping capabilties. | |||
|
73 | ||||
|
74 | * The parallel function capabilities have been reworks. The major changes are | |||
|
75 | that i) there is now an `@parallel` magic that creates parallel functions, | |||
|
76 | ii) the syntax for mulitple variable follows that of `map`, iii) both the | |||
|
77 | multiengine and task controller now have a parallel function implementation. | |||
|
78 | ||||
|
79 | * All of the parallel computing capabilities from `ipython1-dev` have been | |||
|
80 | merged into IPython proper. This resulted in the following new subpackages: | |||
|
81 | :mod:`IPython.kernel`, :mod:`IPython.kernel.core`, :mod:`IPython.config`, | |||
|
82 | :mod:`IPython.tools` and :mod:`IPython.testing`. | |||
|
83 | ||||
|
84 | * As part of merging in the `ipython1-dev` stuff, the `setup.py` script and | |||
|
85 | friends have been completely refactored. Now we are checking for | |||
|
86 | dependencies using the approach that matplotlib uses. | |||
|
87 | ||||
|
88 | * The documentation has been completely reorganized to accept the | |||
|
89 | documentation from `ipython1-dev`. | |||
|
90 | ||||
|
91 | * We have switched to using Foolscap for all of our network protocols in | |||
|
92 | :mod:`IPython.kernel`. This gives us secure connections that are both | |||
|
93 | encrypted and authenticated. | |||
|
94 | ||||
|
95 | * We have a brand new `COPYING.txt` files that describes the IPython license | |||
|
96 | and copyright. The biggest change is that we are putting "The IPython | |||
|
97 | Development Team" as the copyright holder. We give more details about | |||
|
98 | exactly what this means in this file. All developer should read this and use | |||
|
99 | the new banner in all IPython source code files. | |||
|
100 | ||||
|
101 | * sh profile: ./foo runs foo as system command, no need to do !./foo anymore | |||
|
102 | ||||
|
103 | * String lists now support ``sort(field, nums = True)`` method (to easily sort | |||
|
104 | system command output). Try it with ``a = !ls -l ; a.sort(1, nums=1)``. | |||
|
105 | ||||
|
106 | * '%cpaste foo' now assigns the pasted block as string list, instead of string | |||
|
107 | ||||
|
108 | * The ipcluster script now run by default with no security. This is done | |||
|
109 | because the main usage of the script is for starting things on localhost. | |||
|
110 | Eventually when ipcluster is able to start things on other hosts, we will put | |||
|
111 | security back. | |||
|
112 | ||||
|
113 | * 'cd --foo' searches directory history for string foo, and jumps to that dir. | |||
|
114 | Last part of dir name is checked first. If no matches for that are found, | |||
|
115 | look at the whole path. | |||
|
116 | ||||
|
117 | ||||
|
118 | Bug fixes | |||
|
119 | --------- | |||
|
120 | ||||
|
121 | * The Windows installer has been fixed. Now all IPython scripts have ``.bat`` | |||
|
122 | versions created. Also, the Start Menu shortcuts have been updated. | |||
|
123 | ||||
|
124 | * The colors escapes in the multiengine client are now turned off on win32 as | |||
|
125 | they don't print correctly. | |||
|
126 | ||||
|
127 | * The :mod:`IPython.kernel.scripts.ipengine` script was exec'ing | |||
|
128 | mpi_import_statement incorrectly, which was leading the engine to crash when | |||
|
129 | mpi was enabled. | |||
|
130 | ||||
|
131 | * A few subpackages had missing ``__init__.py`` files. | |||
|
132 | ||||
|
133 | * The documentation is only created if Sphinx is found. Previously, the | |||
|
134 | ``setup.py`` script would fail if it was missing. | |||
|
135 | ||||
|
136 | * Greedy ``cd`` completion has been disabled again (it was enabled in 0.8.4) as | |||
|
137 | it caused problems on certain platforms. | |||
|
138 | ||||
|
139 | ||||
|
140 | Backwards incompatible changes | |||
|
141 | ------------------------------ | |||
|
142 | ||||
|
143 | * The ``clusterfile`` options of the :command:`ipcluster` command has been | |||
|
144 | removed as it was not working and it will be replaced soon by something much | |||
|
145 | more robust. | |||
|
146 | ||||
|
147 | * The :mod:`IPython.kernel` configuration now properly find the user's | |||
|
148 | IPython directory. | |||
|
149 | ||||
|
150 | * In ipapi, the :func:`make_user_ns` function has been replaced with | |||
|
151 | :func:`make_user_namespaces`, to support dict subclasses in namespace | |||
|
152 | creation. | |||
|
153 | ||||
|
154 | * :class:`IPython.kernel.client.Task` has been renamed | |||
|
155 | :class:`IPython.kernel.client.StringTask` to make way for new task types. | |||
|
156 | ||||
|
157 | * The keyword argument `style` has been renamed `dist` in `scatter`, `gather` | |||
|
158 | and `map`. | |||
|
159 | ||||
|
160 | * Renamed the values that the rename `dist` keyword argument can have from | |||
|
161 | `'basic'` to `'b'`. | |||
|
162 | ||||
|
163 | * IPython has a larger set of dependencies if you want all of its capabilities. | |||
|
164 | See the `setup.py` script for details. | |||
|
165 | ||||
|
166 | * The constructors for :class:`IPython.kernel.client.MultiEngineClient` and | |||
|
167 | :class:`IPython.kernel.client.TaskClient` no longer take the (ip,port) tuple. | |||
|
168 | Instead they take the filename of a file that contains the FURL for that | |||
|
169 | client. If the FURL file is in your IPYTHONDIR, it will be found automatically | |||
|
170 | and the constructor can be left empty. | |||
|
171 | ||||
|
172 | * The asynchronous clients in :mod:`IPython.kernel.asyncclient` are now created | |||
|
173 | using the factory functions :func:`get_multiengine_client` and | |||
|
174 | :func:`get_task_client`. These return a `Deferred` to the actual client. | |||
|
175 | ||||
|
176 | * The command line options to `ipcontroller` and `ipengine` have changed to | |||
|
177 | reflect the new Foolscap network protocol and the FURL files. Please see the | |||
|
178 | help for these scripts for details. | |||
|
179 | ||||
|
180 | * The configuration files for the kernel have changed because of the Foolscap | |||
|
181 | stuff. If you were using custom config files before, you should delete them | |||
|
182 | and regenerate new ones. | |||
|
183 | ||||
|
184 | Changes merged in from IPython1 | |||
|
185 | ------------------------------- | |||
|
186 | ||||
|
187 | New features | |||
|
188 | ............ | |||
|
189 | ||||
|
190 | * Much improved ``setup.py`` and ``setupegg.py`` scripts. Because Twisted and | |||
|
191 | zope.interface are now easy installable, we can declare them as dependencies | |||
|
192 | in our setupegg.py script. | |||
|
193 | ||||
|
194 | * IPython is now compatible with Twisted 2.5.0 and 8.x. | |||
|
195 | ||||
|
196 | * Added a new example of how to use :mod:`ipython1.kernel.asynclient`. | |||
|
197 | ||||
|
198 | * Initial draft of a process daemon in :mod:`ipython1.daemon`. This has not | |||
|
199 | been merged into IPython and is still in `ipython1-dev`. | |||
|
200 | ||||
|
201 | * The ``TaskController`` now has methods for getting the queue status. | |||
|
202 | ||||
|
203 | * The ``TaskResult`` objects not have information about how long the task | |||
|
204 | took to run. | |||
|
205 | ||||
|
206 | * We are attaching additional attributes to exceptions ``(_ipython_*)`` that | |||
|
207 | we use to carry additional info around. | |||
|
208 | ||||
|
209 | * New top-level module :mod:`asyncclient` that has asynchronous versions (that | |||
|
210 | return deferreds) of the client classes. This is designed to users who want | |||
|
211 | to run their own Twisted reactor. | |||
|
212 | ||||
|
213 | * All the clients in :mod:`client` are now based on Twisted. This is done by | |||
|
214 | running the Twisted reactor in a separate thread and using the | |||
|
215 | :func:`blockingCallFromThread` function that is in recent versions of Twisted. | |||
|
216 | ||||
|
217 | * Functions can now be pushed/pulled to/from engines using | |||
|
218 | :meth:`MultiEngineClient.push_function` and | |||
|
219 | :meth:`MultiEngineClient.pull_function`. | |||
|
220 | ||||
|
221 | * Gather/scatter are now implemented in the client to reduce the work load | |||
|
222 | of the controller and improve performance. | |||
|
223 | ||||
|
224 | * Complete rewrite of the IPython docuementation. All of the documentation | |||
|
225 | from the IPython website has been moved into docs/source as restructured | |||
|
226 | text documents. PDF and HTML documentation are being generated using | |||
|
227 | Sphinx. | |||
|
228 | ||||
|
229 | * New developer oriented documentation: development guidelines and roadmap. | |||
|
230 | ||||
|
231 | * Traditional ``ChangeLog`` has been changed to a more useful ``changes.txt`` | |||
|
232 | file that is organized by release and is meant to provide something more | |||
|
233 | relevant for users. | |||
|
234 | ||||
|
235 | Bug fixes | |||
|
236 | ......... | |||
|
237 | ||||
|
238 | * Created a proper ``MANIFEST.in`` file to create source distributions. | |||
|
239 | ||||
|
240 | * Fixed a bug in the ``MultiEngine`` interface. Previously, multi-engine | |||
|
241 | actions were being collected with a :class:`DeferredList` with | |||
|
242 | ``fireononeerrback=1``. This meant that methods were returning | |||
|
243 | before all engines had given their results. This was causing extremely odd | |||
|
244 | bugs in certain cases. To fix this problem, we have 1) set | |||
|
245 | ``fireononeerrback=0`` to make sure all results (or exceptions) are in | |||
|
246 | before returning and 2) introduced a :exc:`CompositeError` exception | |||
|
247 | that wraps all of the engine exceptions. This is a huge change as it means | |||
|
248 | that users will have to catch :exc:`CompositeError` rather than the actual | |||
|
249 | exception. | |||
|
250 | ||||
|
251 | Backwards incompatible changes | |||
|
252 | .............................. | |||
|
253 | ||||
|
254 | * All names have been renamed to conform to the lowercase_with_underscore | |||
|
255 | convention. This will require users to change references to all names like | |||
|
256 | ``queueStatus`` to ``queue_status``. | |||
|
257 | ||||
|
258 | * Previously, methods like :meth:`MultiEngineClient.push` and | |||
|
259 | :meth:`MultiEngineClient.push` used ``*args`` and ``**kwargs``. This was | |||
|
260 | becoming a problem as we weren't able to introduce new keyword arguments into | |||
|
261 | the API. Now these methods simple take a dict or sequence. This has also | |||
|
262 | allowed us to get rid of the ``*All`` methods like :meth:`pushAll` and | |||
|
263 | :meth:`pullAll`. These things are now handled with the ``targets`` keyword | |||
|
264 | argument that defaults to ``'all'``. | |||
|
265 | ||||
|
266 | * The :attr:`MultiEngineClient.magicTargets` has been renamed to | |||
|
267 | :attr:`MultiEngineClient.targets`. | |||
|
268 | ||||
|
269 | * All methods in the MultiEngine interface now accept the optional keyword | |||
|
270 | argument ``block``. | |||
|
271 | ||||
|
272 | * Renamed :class:`RemoteController` to :class:`MultiEngineClient` and | |||
|
273 | :class:`TaskController` to :class:`TaskClient`. | |||
|
274 | ||||
|
275 | * Renamed the top-level module from :mod:`api` to :mod:`client`. | |||
|
276 | ||||
|
277 | * Most methods in the multiengine interface now raise a :exc:`CompositeError` | |||
|
278 | exception that wraps the user's exceptions, rather than just raising the raw | |||
|
279 | user's exception. | |||
|
280 | ||||
|
281 | * Changed the ``setupNS`` and ``resultNames`` in the ``Task`` class to ``push`` | |||
|
282 | and ``pull``. | |||
|
283 |
@@ -15,19 +15,25 b" if __name__ == '__main__':" | |||||
15 | package = 'IPython' |
|
15 | package = 'IPython' | |
16 | outdir = pjoin('source','api','generated') |
|
16 | outdir = pjoin('source','api','generated') | |
17 | docwriter = ApiDocWriter(package,rst_extension='.txt') |
|
17 | docwriter = ApiDocWriter(package,rst_extension='.txt') | |
|
18 | # You have to escape the . here because . is a special char for regexps. | |||
|
19 | # You must do make clean if you change this! | |||
18 | docwriter.package_skip_patterns += [r'\.fixes$', |
|
20 | docwriter.package_skip_patterns += [r'\.fixes$', | |
19 |
r'\.external |
|
21 | r'\.external$', | |
20 | r'\.extensions', |
|
22 | r'\.extensions', | |
21 | r'\.kernel.config', |
|
23 | r'\.kernel\.config', | |
22 | r'\.attic', |
|
24 | r'\.attic', | |
23 | r'\.quarantine', |
|
25 | r'\.quarantine', | |
24 | r'\.deathrow' |
|
26 | r'\.deathrow', | |
|
27 | r'\.config\.default', | |||
|
28 | r'\.config\.profile', | |||
|
29 | r'\.frontend', | |||
|
30 | r'\.gui' | |||
25 | ] |
|
31 | ] | |
26 | docwriter.module_skip_patterns += [ r'\.core.fakemodule', |
|
32 | docwriter.module_skip_patterns += [ r'\.core\.fakemodule', | |
27 | r'\.cocoa', |
|
33 | r'\.cocoa', | |
28 | r'\.ipdoctest', |
|
34 | r'\.ipdoctest', | |
29 | r'\.Gnuplot', |
|
35 | r'\.Gnuplot', | |
30 | r'\.frontend.process.winprocess', |
|
36 | r'\.frontend\.process\.winprocess', | |
31 | ] |
|
37 | ] | |
32 | docwriter.write_api_docs(outdir) |
|
38 | docwriter.write_api_docs(outdir) | |
33 | docwriter.write_index(outdir, 'gen', |
|
39 | docwriter.write_index(outdir, 'gen', |
@@ -205,3 +205,4 b' know if we have ommitted your name by accident:' | |||||
205 | Sphinx system used by Python, Matplotlib and many more projects. |
|
205 | Sphinx system used by Python, Matplotlib and many more projects. | |
206 |
|
206 | |||
207 | * [Stefan van der Walt] <stefan-AT-sun.ac.za>: support for the new config system. |
|
207 | * [Stefan van der Walt] <stefan-AT-sun.ac.za>: support for the new config system. | |
|
208 |
1 | NO CONTENT: file renamed from docs/source/history.txt to docs/source/about/history.txt |
|
NO CONTENT: file renamed from docs/source/history.txt to docs/source/about/history.txt |
@@ -88,4 +88,5 b' its author/authors have decided to publish the code.' | |||||
88 |
|
88 | |||
89 | Versions of IPython up to and including 0.6.3 were released under the GNU |
|
89 | Versions of IPython up to and including 0.6.3 were released under the GNU | |
90 | Lesser General Public License (LGPL), available at |
|
90 | Lesser General Public License (LGPL), available at | |
91 | http://www.gnu.org/copyleft/lesser.html. No newline at end of file |
|
91 | http://www.gnu.org/copyleft/lesser.html. | |
|
92 |
@@ -35,15 +35,16 b" execfile('../../IPython/core/release.py',iprelease)" | |||||
35 |
|
35 | |||
36 | # Add any Sphinx extension module names here, as strings. They can be extensions |
|
36 | # Add any Sphinx extension module names here, as strings. They can be extensions | |
37 | # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. |
|
37 | # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. | |
38 | extensions = ['sphinx.ext.autodoc', |
|
38 | extensions = [ | |
39 | 'sphinx.ext.doctest', |
|
39 | # 'matplotlib.sphinxext.mathmpl', | |
40 |
|
40 | 'matplotlib.sphinxext.only_directives', | ||
41 | 'only_directives', |
|
41 | # 'matplotlib.sphinxext.plot_directive', | |
42 | 'inheritance_diagram', |
|
42 | 'sphinx.ext.autodoc', | |
43 | 'ipython_console_highlighting', |
|
43 | 'sphinx.ext.doctest', | |
44 | # 'plot_directive', # disabled for now, needs matplotlib |
|
44 | 'inheritance_diagram', | |
45 | 'numpydoc', # to preprocess docstrings |
|
45 | 'ipython_console_highlighting', | |
46 | ] |
|
46 | 'numpydoc', # to preprocess docstrings | |
|
47 | ] | |||
47 |
|
48 | |||
48 | # Add any paths that contain templates here, relative to this directory. |
|
49 | # Add any paths that contain templates here, relative to this directory. | |
49 | templates_path = ['_templates'] |
|
50 | templates_path = ['_templates'] |
@@ -283,4 +283,5 b" having to repeat all of your basic options (common things that don't" | |||||
283 | change such as your color preferences, for example), any profile can |
|
283 | change such as your color preferences, for example), any profile can | |
284 | include another configuration file. The most common way to use profiles |
|
284 | include another configuration file. The most common way to use profiles | |
285 | is then to have each one include your basic ipythonrc file as a starting |
|
285 | is then to have each one include your basic ipythonrc file as a starting | |
286 | point, and then add further customizations. No newline at end of file |
|
286 | point, and then add further customizations. | |
|
287 |
@@ -8,3 +8,4 b' Configuration and customization' | |||||
8 | initial_config.txt |
|
8 | initial_config.txt | |
9 | customization.txt |
|
9 | customization.txt | |
10 | new_config.txt |
|
10 | new_config.txt | |
|
11 |
@@ -247,3 +247,4 b' Notes:' | |||||
247 | * Be aware that if you customize py-python-command previously, this |
|
247 | * Be aware that if you customize py-python-command previously, this | |
248 | value will override what ipython.el does (because loading the |
|
248 | value will override what ipython.el does (because loading the | |
249 | customization variables comes later). |
|
249 | customization variables comes later). | |
|
250 |
@@ -24,4 +24,5 b' To create these files for the first time, do the following::' | |||||
24 | But, you should only need to do this if you need to modify the defaults. If needed |
|
24 | But, you should only need to do this if you need to modify the defaults. If needed | |
25 | repeat this process with the ``notebook`` and ``core`` configuration as well. If you |
|
25 | repeat this process with the ``notebook`` and ``core`` configuration as well. If you | |
26 | are running into problems with IPython, you might try deleting these configuration |
|
26 | are running into problems with IPython, you might try deleting these configuration | |
27 | files. No newline at end of file |
|
27 | files. | |
|
28 |
@@ -139,3 +139,4 b' are interested in working on this part of IPython. The current prototype of' | |||||
139 | .. _.ini: http://docs.python.org/lib/module-ConfigParser.html |
|
139 | .. _.ini: http://docs.python.org/lib/module-ConfigParser.html | |
140 | .. _ConfigObj: http://www.voidspace.org.uk/python/configobj.html |
|
140 | .. _ConfigObj: http://www.voidspace.org.uk/python/configobj.html | |
141 | .. _Traits: http://code.enthought.com/traits/ |
|
141 | .. _Traits: http://code.enthought.com/traits/ | |
|
142 |
@@ -31,3 +31,4 b' There are a number of things that complicate this:' | |||||
31 | different host. Ahhhh! |
|
31 | different host. Ahhhh! | |
32 | * Our configurations are not singletons. A given user will likely have |
|
32 | * Our configurations are not singletons. A given user will likely have | |
33 | many different configurations for different clusters. |
|
33 | many different configurations for different clusters. | |
|
34 |
@@ -101,3 +101,4 b' machinery to process reStructuredText):' | |||||
101 |
|
101 | |||
102 | - `Docstring Processing System Framework <http://www.python.org/peps/pep-0256.html>`_ |
|
102 | - `Docstring Processing System Framework <http://www.python.org/peps/pep-0256.html>`_ | |
103 | - `Docutils Design Specification <http://www.python.org/peps/pep-0258.html>`_ |
|
103 | - `Docutils Design Specification <http://www.python.org/peps/pep-0258.html>`_ | |
|
104 |
@@ -13,3 +13,4 b'' | |||||
13 | notification_blueprint.txt |
|
13 | notification_blueprint.txt | |
14 | config_blueprint.txt |
|
14 | config_blueprint.txt | |
15 | reorg.txt |
|
15 | reorg.txt | |
|
16 |
@@ -78,6 +78,31 b" Like magic, Dwight's frontend is able to provide output, even during" | |||||
78 | long-running calculations. Now if Jim could just convince Dwight to use |
|
78 | long-running calculations. Now if Jim could just convince Dwight to use | |
79 | Twisted... |
|
79 | Twisted... | |
80 |
|
80 | |||
81 | 2. Boss Hog is writing a frontend for the IPython project. Because Boss Hog is stuck in the stone age, his frontend will be written in a new Fortran-like dialect of python and will run only from the command line. Because he doesn't need any fancy notification system and is used to worrying about every cycle on his rat-wheel powered mini, Boss Hog is adamant that the new notification system not produce any performance penalty. As they say in Hazard county, there's no such thing as a free lunch. If he wanted zero overhead, he should have kept using IPython 0.8. Instead, those tricky Duke boys slide in a suped-up bridge-out jumpin' awkwardly confederate-lovin' notification module that imparts only a constant (and small) performance penalty when the Interpreter (or any other object) fires an event for which there are no registered observers. Of course, the same notificaiton-enabled Interpreter can then be used in frontends that require notifications, thus saving the IPython project from a nasty civil war. |
|
81 | 2. Boss Hog is writing a frontend for the IPython project. Because Boss Hog is | |
|
82 | stuck in the stone age, his frontend will be written in a new Fortran-like | |||
|
83 | dialect of python and will run only from the command line. Because he doesn't | |||
|
84 | need any fancy notification system and is used to worrying about every cycle | |||
|
85 | on his rat-wheel powered mini, Boss Hog is adamant that the new notification | |||
|
86 | system not produce any performance penalty. As they say in Hazard county, | |||
|
87 | there's no such thing as a free lunch. If he wanted zero overhead, he should | |||
|
88 | have kept using IPython 0.8. Instead, those tricky Duke boys slide in a | |||
|
89 | suped-up bridge-out jumpin' awkwardly confederate-lovin' notification module | |||
|
90 | that imparts only a constant (and small) performance penalty when the | |||
|
91 | Interpreter (or any other object) fires an event for which there are no | |||
|
92 | registered observers. Of course, the same notificaiton-enabled Interpreter can | |||
|
93 | then be used in frontends that require notifications, thus saving the IPython | |||
|
94 | project from a nasty civil war. | |||
82 |
|
95 | |||
83 | 3. Barry is wrting a frontend for the IPython project. Because Barry's front end is the *new hotness*, it uses an asynchronous event model to communicate with a Twisted :mod:`~IPython.kernel.engineservice` that communicates with the IPython :class:`~IPython.kernel.core.interpreter.Interpreter`. Using the :mod:`IPython.kernel.notification` module, an asynchronous wrapper on the :mod:`IPython.kernel.core.notification` module, Barry's frontend can register for notifications from the interpreter that are delivered asynchronously. Even if Barry's frontend is running on a separate process or even host from the Interpreter, the notifications are delivered, as if by dark and twisted magic. Just like Dwight's frontend, Barry's frontend can now recieve notifications of e.g. writing to stdout/stderr, opening/closing an external file, an exception in the executing code, etc. No newline at end of file |
|
96 | 3. Barry is wrting a frontend for the IPython project. Because Barry's front | |
|
97 | end is the *new hotness*, it uses an asynchronous event model to communicate | |||
|
98 | with a Twisted :mod:`~IPython.kernel.engineservice` that communicates with the | |||
|
99 | IPython :class:`~IPython.kernel.core.interpreter.Interpreter`. Using the | |||
|
100 | :mod:`IPython.kernel.notification` module, an asynchronous wrapper on the | |||
|
101 | :mod:`IPython.kernel.core.notification` module, Barry's frontend can register | |||
|
102 | for notifications from the interpreter that are delivered asynchronously. Even | |||
|
103 | if Barry's frontend is running on a separate process or even host from the | |||
|
104 | Interpreter, the notifications are delivered, as if by dark and twisted magic. | |||
|
105 | Just like Dwight's frontend, Barry's frontend can now recieve notifications of | |||
|
106 | e.g. writing to stdout/stderr, opening/closing an external file, an exception | |||
|
107 | in the executing code, etc. | |||
|
108 |
@@ -515,3 +515,4 b' version 0.11 at least, we will retain Python 2.5 compatibility.' | |||||
515 | .. [reStructuredText] reStructuredText. http://docutils.sourceforge.net/rst.html |
|
515 | .. [reStructuredText] reStructuredText. http://docutils.sourceforge.net/rst.html | |
516 | .. [Sphinx] Sphinx. http://sphinx.pocoo.org/ |
|
516 | .. [Sphinx] Sphinx. http://sphinx.pocoo.org/ | |
517 | .. [Nose] Nose: a discovery based unittest extension. http://code.google.com/p/python-nose/ |
|
517 | .. [Nose] Nose: a discovery based unittest extension. http://code.google.com/p/python-nose/ | |
|
518 |
@@ -82,3 +82,4 b' Status' | |||||
82 | ====== |
|
82 | ====== | |
83 |
|
83 | |||
84 | This branch was merged into trunk in early August of 2009. |
|
84 | This branch was merged into trunk in early August of 2009. | |
|
85 |
@@ -92,5 +92,3 b' Currently, we have a number of performance issues in :mod:`IPython.kernel`:' | |||||
92 | separate the controller itself into multiple processes, one for the core |
|
92 | separate the controller itself into multiple processes, one for the core | |
93 | controller and one each for the controller interfaces. |
|
93 | controller and one each for the controller interfaces. | |
94 |
|
94 | |||
95 |
|
||||
96 |
|
@@ -94,12 +94,3 b' handling the data movement. Here are some ideas:' | |||||
94 | Isn't Python slow to be used for high-performance parallel computing? |
|
94 | Isn't Python slow to be used for high-performance parallel computing? | |
95 | --------------------------------------------------------------------- |
|
95 | --------------------------------------------------------------------- | |
96 |
|
96 | |||
97 |
|
||||
98 |
|
||||
99 |
|
||||
100 |
|
||||
101 |
|
||||
102 |
|
||||
103 |
|
||||
104 |
|
||||
105 |
|
@@ -7,25 +7,28 b' IPython Documentation' | |||||
7 | :Release: |release| |
|
7 | :Release: |release| | |
8 | :Date: |today| |
|
8 | :Date: |today| | |
9 |
|
9 | |||
10 | Contents: |
|
10 | Welcome to the official IPython documentation. This document describes the | |
|
11 | various parts of IPython that are relevant to both users and developers. | |||
|
12 | ||||
|
13 | Contents | |||
|
14 | ======== | |||
11 |
|
15 | |||
12 | .. toctree:: |
|
16 | .. toctree:: | |
13 |
:maxdepth: |
|
17 | :maxdepth: 1 | |
14 |
|
18 | |||
15 | overview.txt |
|
19 | overview.txt | |
|
20 | whatsnew/index.txt | |||
16 | install/index.txt |
|
21 | install/index.txt | |
17 | interactive/index.txt |
|
22 | interactive/index.txt | |
18 | parallel/index.txt |
|
23 | parallel/index.txt | |
19 | config/index.txt |
|
24 | config/index.txt | |
20 | faq.txt |
|
|||
21 | history.txt |
|
|||
22 | changes.txt |
|
|||
23 | development/index.txt |
|
25 | development/index.txt | |
24 | api/index.txt |
|
26 | api/index.txt | |
25 | license_and_copyright.txt |
|
27 | faq.txt | |
26 | credits.txt |
|
28 | about/index.txt | |
27 |
|
29 | |||
28 | .. htmlonly:: |
|
30 | .. htmlonly:: | |
29 | * :ref:`genindex` |
|
31 | * :ref:`genindex` | |
30 | * :ref:`modindex` |
|
32 | * :ref:`modindex` | |
31 | * :ref:`search` |
|
33 | * :ref:`search` | |
|
34 |
@@ -291,3 +291,4 b' binary installer is available on the `wxPython website' | |||||
291 | .. [ZopeInterface] http://pypi.python.org/pypi/zope.interface |
|
291 | .. [ZopeInterface] http://pypi.python.org/pypi/zope.interface | |
292 | .. [Foolscap] Foolscap network protocol. http://foolscap.lothar.com/trac |
|
292 | .. [Foolscap] Foolscap network protocol. http://foolscap.lothar.com/trac | |
293 | .. [pyOpenSSL] pyOpenSSL. http://pyopenssl.sourceforge.net |
|
293 | .. [pyOpenSSL] pyOpenSSL. http://pyopenssl.sourceforge.net | |
|
294 |
@@ -249,4 +249,5 b' ipy_server.py ipy_signals.py ipy_stock_completers.py' | |||||
249 | ipy_system_conf.py ipy_traits_completer.py ipy_vimserver.py |
|
249 | ipy_system_conf.py ipy_traits_completer.py ipy_vimserver.py | |
250 | ipy_which.py ipy_workdir.py jobctrl.py ledit.py numeric_formats.py |
|
250 | ipy_which.py ipy_workdir.py jobctrl.py ledit.py numeric_formats.py | |
251 | PhysicalQInput.py PhysicalQInteractive.py pickleshare.py |
|
251 | PhysicalQInput.py PhysicalQInteractive.py pickleshare.py | |
252 | pspersistence.py win32clip.py __init__.py No newline at end of file |
|
252 | pspersistence.py win32clip.py __init__.py | |
|
253 |
@@ -9,3 +9,4 b' Using IPython for interactive work' | |||||
9 | reference.txt |
|
9 | reference.txt | |
10 | shell.txt |
|
10 | shell.txt | |
11 | extension_api.txt |
|
11 | extension_api.txt | |
|
12 |
@@ -281,4 +281,5 b" single space (for convenient passing to system commands). The '.n'" | |||||
281 | property return one string where the lines are separated by '\n' |
|
281 | property return one string where the lines are separated by '\n' | |
282 | (i.e. the original output of the function). If the items in string |
|
282 | (i.e. the original output of the function). If the items in string | |
283 | list are file names, '.p' can be used to get a list of "path" objects |
|
283 | list are file names, '.p' can be used to get a list of "path" objects | |
284 | for convenient file manipulation. No newline at end of file |
|
284 | for convenient file manipulation. | |
|
285 |
@@ -313,3 +313,5 b' organized by project and date.' | |||||
313 | Contribute your own: If you have your own favorite tip on using IPython |
|
313 | Contribute your own: If you have your own favorite tip on using IPython | |
314 | efficiently for a certain task (especially things which can't be done in |
|
314 | efficiently for a certain task (especially things which can't be done in | |
315 | the normal Python interpreter), don't hesitate to send it! |
|
315 | the normal Python interpreter), don't hesitate to send it! | |
|
316 | ||||
|
317 |
@@ -218,9 +218,10 b' for parallel computing.' | |||||
218 | Portability and Python requirements |
|
218 | Portability and Python requirements | |
219 | ----------------------------------- |
|
219 | ----------------------------------- | |
220 |
|
220 | |||
221 |
As of the 0. |
|
221 | As of the 0.11 release, IPython works with either Python 2.5 or 2.6. | |
222 | not begun to test IPython on Python 2.6 or 3.0, but we expect it will |
|
222 | Versions 0.9 and 0.10 worked with Python 2.4 as well. We have not begun | |
223 | work with some minor changes. |
|
223 | the test and port IPython to 3.0. Our plan is to gradually drop Python 2.5 | |
|
224 | support and then begin the transition to strict 2.6 and 3.0. | |||
224 |
|
225 | |||
225 | IPython is known to work on the following operating systems: |
|
226 | IPython is known to work on the following operating systems: | |
226 |
|
227 | |||
@@ -229,4 +230,5 b' IPython is known to work on the following operating systems:' | |||||
229 | * Mac OS X |
|
230 | * Mac OS X | |
230 | * Windows (CygWin, XP, Vista, etc.) |
|
231 | * Windows (CygWin, XP, Vista, etc.) | |
231 |
|
232 | |||
232 | See :ref:`here <install_index>` for instructions on how to install IPython. No newline at end of file |
|
233 | See :ref:`here <install_index>` for instructions on how to install IPython. | |
|
234 |
@@ -13,3 +13,5 b' Using IPython for parallel computing' | |||||
13 | parallel_task.txt |
|
13 | parallel_task.txt | |
14 | parallel_mpi.txt |
|
14 | parallel_mpi.txt | |
15 | parallel_security.txt |
|
15 | parallel_security.txt | |
|
16 | ||||
|
17 |
@@ -174,3 +174,5 b' compiled C, C++ and Fortran libraries that have been exposed to Python.' | |||||
174 | .. [mpi4py] MPI for Python. mpi4py: http://mpi4py.scipy.org/ |
|
174 | .. [mpi4py] MPI for Python. mpi4py: http://mpi4py.scipy.org/ | |
175 | .. [OpenMPI] Open MPI. http://www.open-mpi.org/ |
|
175 | .. [OpenMPI] Open MPI. http://www.open-mpi.org/ | |
176 | .. [PyTrilinos] PyTrilinos. http://trilinos.sandia.gov/packages/pytrilinos/ |
|
176 | .. [PyTrilinos] PyTrilinos. http://trilinos.sandia.gov/packages/pytrilinos/ | |
|
177 | ||||
|
178 |
@@ -385,3 +385,5 b' the log files to us will often help us to debug any problems.' | |||||
385 |
|
385 | |||
386 | .. [PBS] Portable Batch System. http://www.openpbs.org/ |
|
386 | .. [PBS] Portable Batch System. http://www.openpbs.org/ | |
387 | .. [SSH] SSH-Agent http://en.wikipedia.org/wiki/Ssh-agent |
|
387 | .. [SSH] SSH-Agent http://en.wikipedia.org/wiki/Ssh-agent | |
|
388 | ||||
|
389 |
@@ -362,3 +362,5 b' authentication steps that the CLIENT and SERVER perform after an encrypted' | |||||
362 | channel is established. |
|
362 | channel is established. | |
363 |
|
363 | |||
364 | .. [RFC5246] <http://tools.ietf.org/html/rfc5246> |
|
364 | .. [RFC5246] <http://tools.ietf.org/html/rfc5246> | |
|
365 | ||||
|
366 |
@@ -118,3 +118,4 b' We are in the process of developing more detailed information about the task' | |||||
118 | interface. For now, the docstrings of the :class:`TaskClient`, |
|
118 | interface. For now, the docstrings of the :class:`TaskClient`, | |
119 | :class:`StringTask` and :class:`MapTask` classes should be consulted. |
|
119 | :class:`StringTask` and :class:`MapTask` classes should be consulted. | |
120 |
|
120 | |||
|
121 |
@@ -251,6 +251,7 b' class ApiDocWriter(object):' | |||||
251 | ad += ' :members:\n' \ |
|
251 | ad += ' :members:\n' \ | |
252 | ' :undoc-members:\n' \ |
|
252 | ' :undoc-members:\n' \ | |
253 | ' :show-inheritance:\n' \ |
|
253 | ' :show-inheritance:\n' \ | |
|
254 | ' :inherited-members:\n' \ | |||
254 | '\n' \ |
|
255 | '\n' \ | |
255 | ' .. automethod:: __init__\n' |
|
256 | ' .. automethod:: __init__\n' | |
256 | if multi_fx: |
|
257 | if multi_fx: |
@@ -1,4 +1,8 b'' | |||||
1 | """reST directive for syntax-highlighting ipython interactive sessions. |
|
1 | """reST directive for syntax-highlighting ipython interactive sessions. | |
|
2 | ||||
|
3 | XXX - See what improvements can be made based on the new (as of Sept 2009) | |||
|
4 | 'pycon' lexer for the python console. At the very least it will give better | |||
|
5 | highlighted tracebacks. | |||
2 | """ |
|
6 | """ | |
3 |
|
7 | |||
4 | #----------------------------------------------------------------------------- |
|
8 | #----------------------------------------------------------------------------- | |
@@ -15,7 +19,6 b' from pygments.token import Comment, Generic' | |||||
15 |
|
19 | |||
16 | from sphinx import highlighting |
|
20 | from sphinx import highlighting | |
17 |
|
21 | |||
18 |
|
||||
19 | #----------------------------------------------------------------------------- |
|
22 | #----------------------------------------------------------------------------- | |
20 | # Global constants |
|
23 | # Global constants | |
21 | line_re = re.compile('.*?\n') |
|
24 | line_re = re.compile('.*?\n') | |
@@ -77,8 +80,11 b' class IPythonConsoleLexer(Lexer):' | |||||
77 | [(0, Generic.Prompt, continue_prompt.group())])) |
|
80 | [(0, Generic.Prompt, continue_prompt.group())])) | |
78 | curcode += line[continue_prompt.end():] |
|
81 | curcode += line[continue_prompt.end():] | |
79 | elif output_prompt is not None: |
|
82 | elif output_prompt is not None: | |
|
83 | # Use the 'error' token for output. We should probably make | |||
|
84 | # our own token, but error is typicaly in a bright color like | |||
|
85 | # red, so it works fine for our output prompts. | |||
80 | insertions.append((len(curcode), |
|
86 | insertions.append((len(curcode), | |
81 |
[(0, Generic. |
|
87 | [(0, Generic.Error, output_prompt.group())])) | |
82 | curcode += line[output_prompt.end():] |
|
88 | curcode += line[output_prompt.end():] | |
83 | else: |
|
89 | else: | |
84 | if curcode: |
|
90 | if curcode: | |
@@ -93,6 +99,16 b' class IPythonConsoleLexer(Lexer):' | |||||
93 | pylexer.get_tokens_unprocessed(curcode)): |
|
99 | pylexer.get_tokens_unprocessed(curcode)): | |
94 | yield item |
|
100 | yield item | |
95 |
|
101 | |||
|
102 | ||||
|
103 | def setup(app): | |||
|
104 | """Setup as a sphinx extension.""" | |||
|
105 | ||||
|
106 | # This is only a lexer, so adding it below to pygments appears sufficient. | |||
|
107 | # But if somebody knows that the right API usage should be to do that via | |||
|
108 | # sphinx, by all means fix it here. At least having this setup.py | |||
|
109 | # suppresses the sphinx warning we'd get without it. | |||
|
110 | pass | |||
|
111 | ||||
96 | #----------------------------------------------------------------------------- |
|
112 | #----------------------------------------------------------------------------- | |
97 | # Register the extension as a valid pygments lexer |
|
113 | # Register the extension as a valid pygments lexer | |
98 | highlighting.lexers['ipython'] = IPythonConsoleLexer() |
|
114 | highlighting.lexers['ipython'] = IPythonConsoleLexer() |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
This diff has been collapsed as it changes many lines, (589 lines changed) Show them Hide them |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
General Comments 0
You need to be logged in to leave comments.
Login now