##// END OF EJS Templates
Cleanup of docs....
Brian Granger -
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>|&nbsp;</li>
6 <li><a href="{{ pathto('search') }}">search</a>|&nbsp;</li>
7 <li><a href="{{ pathto('whatsnew/index') }}">what's new </a> &raquo;</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'\.externals$',
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: 2
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
@@ -8,3 +8,4 b' Installation'
8 :maxdepth: 2
8 :maxdepth: 2
9
9
10 install.txt
10 install.txt
11
@@ -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.9 release, IPython requires Python 2.4 or greater. We have
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.Output, output_prompt.group())]))
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