##// END OF EJS Templates
Doc updates about demos...
fperez -
Show More
@@ -1,8964 +1,9056 b''
1 #LyX 1.3 created this file. For more info see http://www.lyx.org/
1 #LyX 1.3 created this file. For more info see http://www.lyx.org/
2 \lyxformat 221
2 \lyxformat 221
3 \textclass article
3 \textclass article
4 \begin_preamble
4 \begin_preamble
5 %\usepackage{ae,aecompl}
5 %\usepackage{ae,aecompl}
6 \usepackage{color}
6 \usepackage{color}
7
7
8 % A few colors to replace the defaults for certain link types
8 % A few colors to replace the defaults for certain link types
9 \definecolor{orange}{cmyk}{0,0.4,0.8,0.2}
9 \definecolor{orange}{cmyk}{0,0.4,0.8,0.2}
10 \definecolor{darkorange}{rgb}{.71,0.21,0.01}
10 \definecolor{darkorange}{rgb}{.71,0.21,0.01}
11 \definecolor{darkred}{rgb}{.52,0.08,0.01}
11 \definecolor{darkred}{rgb}{.52,0.08,0.01}
12 \definecolor{darkgreen}{rgb}{.12,.54,.11}
12 \definecolor{darkgreen}{rgb}{.12,.54,.11}
13
13
14 % Use and configure listings package for nicely formatted code
14 % Use and configure listings package for nicely formatted code
15 \usepackage{listings}
15 \usepackage{listings}
16 \lstset{
16 \lstset{
17 language=Python,
17 language=Python,
18 basicstyle=\small\ttfamily,
18 basicstyle=\small\ttfamily,
19 commentstyle=\ttfamily\color{blue},
19 commentstyle=\ttfamily\color{blue},
20 stringstyle=\ttfamily\color{darkorange},
20 stringstyle=\ttfamily\color{darkorange},
21 showstringspaces=false,
21 showstringspaces=false,
22 breaklines=true,
22 breaklines=true,
23 postbreak = \space\dots
23 postbreak = \space\dots
24 }
24 }
25
25
26 \usepackage[%pdftex, % needed for pdflatex
26 \usepackage[%pdftex, % needed for pdflatex
27 breaklinks=true, % so long urls are correctly broken across lines
27 breaklinks=true, % so long urls are correctly broken across lines
28 colorlinks=true,
28 colorlinks=true,
29 urlcolor=blue,
29 urlcolor=blue,
30 linkcolor=darkred,
30 linkcolor=darkred,
31 citecolor=darkgreen,
31 citecolor=darkgreen,
32 ]{hyperref}
32 ]{hyperref}
33
33
34 \usepackage{html}
34 \usepackage{html}
35
35
36 % This helps prevent overly long lines that stretch beyond the margins
36 % This helps prevent overly long lines that stretch beyond the margins
37 \sloppy
37 \sloppy
38
38
39 % Define a \codelist command which either uses listings for latex, or
39 % Define a \codelist command which either uses listings for latex, or
40 % plain verbatim for html (since latex2html doesn't understand the
40 % plain verbatim for html (since latex2html doesn't understand the
41 % listings package).
41 % listings package).
42 \usepackage{verbatim}
42 \usepackage{verbatim}
43 \newcommand{\codelist}[1] {
43 \newcommand{\codelist}[1] {
44 \latex{\lstinputlisting{#1}}
44 \latex{\lstinputlisting{#1}}
45 \html{\verbatiminput{#1}}
45 \html{\verbatiminput{#1}}
46 }
46 }
47 \end_preamble
47 \end_preamble
48 \language english
48 \language english
49 \inputencoding latin1
49 \inputencoding latin1
50 \fontscheme palatino
50 \fontscheme palatino
51 \graphics default
51 \graphics default
52 \paperfontsize 10
52 \paperfontsize 10
53 \spacing single
53 \spacing single
54 \papersize Default
54 \papersize Default
55 \paperpackage a4
55 \paperpackage a4
56 \use_geometry 1
56 \use_geometry 1
57 \use_amsmath 0
57 \use_amsmath 0
58 \use_natbib 0
58 \use_natbib 0
59 \use_numerical_citations 0
59 \use_numerical_citations 0
60 \paperorientation portrait
60 \paperorientation portrait
61 \leftmargin 1.1in
61 \leftmargin 1.1in
62 \topmargin 1in
62 \topmargin 1in
63 \rightmargin 1.1in
63 \rightmargin 1.1in
64 \bottommargin 1in
64 \bottommargin 1in
65 \secnumdepth 3
65 \secnumdepth 3
66 \tocdepth 3
66 \tocdepth 3
67 \paragraph_separation skip
67 \paragraph_separation skip
68 \defskip medskip
68 \defskip medskip
69 \quotes_language english
69 \quotes_language english
70 \quotes_times 2
70 \quotes_times 2
71 \papercolumns 1
71 \papercolumns 1
72 \papersides 1
72 \papersides 1
73 \paperpagestyle fancy
73 \paperpagestyle fancy
74
74
75 \layout Title
75 \layout Title
76
76
77 IPython
77 IPython
78 \newline
78 \newline
79
79
80 \size larger
80 \size larger
81 An enhanced Interactive Python
81 An enhanced Interactive Python
82 \size large
82 \size large
83
83
84 \newline
84 \newline
85 User Manual, v.
85 User Manual, v.
86 __version__
86 __version__
87 \layout Author
87 \layout Author
88
88
89 Fernando PοΏ½rez
89 Fernando PοΏ½rez
90 \layout Standard
90 \layout Standard
91
91
92
92
93 \begin_inset ERT
93 \begin_inset ERT
94 status Collapsed
94 status Collapsed
95
95
96 \layout Standard
96 \layout Standard
97
97
98 \backslash
98 \backslash
99 latex{
99 latex{
100 \end_inset
100 \end_inset
101
101
102
102
103 \begin_inset LatexCommand \tableofcontents{}
103 \begin_inset LatexCommand \tableofcontents{}
104
104
105 \end_inset
105 \end_inset
106
106
107
107
108 \begin_inset ERT
108 \begin_inset ERT
109 status Collapsed
109 status Collapsed
110
110
111 \layout Standard
111 \layout Standard
112 }
112 }
113 \end_inset
113 \end_inset
114
114
115
115
116 \layout Standard
116 \layout Standard
117
117
118
118
119 \begin_inset ERT
119 \begin_inset ERT
120 status Open
120 status Open
121
121
122 \layout Standard
122 \layout Standard
123
123
124 \backslash
124 \backslash
125 html{
125 html{
126 \backslash
126 \backslash
127 bodytext{bgcolor=#ffffff}}
127 bodytext{bgcolor=#ffffff}}
128 \end_inset
128 \end_inset
129
129
130
130
131 \layout Section
131 \layout Section
132 \pagebreak_top
132 \pagebreak_top
133 Overview
133 Overview
134 \layout Standard
134 \layout Standard
135
135
136 One of Python's most useful features is its interactive interpreter.
136 One of Python's most useful features is its interactive interpreter.
137 This system allows very fast testing of ideas without the overhead of creating
137 This system allows very fast testing of ideas without the overhead of creating
138 test files as is typical in most programming languages.
138 test files as is typical in most programming languages.
139 However, the interpreter supplied with the standard Python distribution
139 However, the interpreter supplied with the standard Python distribution
140 is somewhat limited for extended interactive use.
140 is somewhat limited for extended interactive use.
141 \layout Standard
141 \layout Standard
142
142
143 IPython is a free software project (released under the BSD license) which
143 IPython is a free software project (released under the BSD license) which
144 tries to:
144 tries to:
145 \layout Enumerate
145 \layout Enumerate
146
146
147 Provide an interactive shell superior to Python's default.
147 Provide an interactive shell superior to Python's default.
148 IPython has many features for object introspection, system shell access,
148 IPython has many features for object introspection, system shell access,
149 and its own special command system for adding functionality when working
149 and its own special command system for adding functionality when working
150 interactively.
150 interactively.
151 It tries to be a very efficient environment both for Python code development
151 It tries to be a very efficient environment both for Python code development
152 and for exploration of problems using Python objects (in situations like
152 and for exploration of problems using Python objects (in situations like
153 data analysis).
153 data analysis).
154 \layout Enumerate
154 \layout Enumerate
155
155
156 Serve as an embeddable, ready to use interpreter for your own programs.
156 Serve as an embeddable, ready to use interpreter for your own programs.
157 IPython can be started with a single call from inside another program,
157 IPython can be started with a single call from inside another program,
158 providing access to the current namespace.
158 providing access to the current namespace.
159 This can be very useful both for debugging purposes and for situations
159 This can be very useful both for debugging purposes and for situations
160 where a blend of batch-processing and interactive exploration are needed.
160 where a blend of batch-processing and interactive exploration are needed.
161 \layout Enumerate
161 \layout Enumerate
162
162
163 Offer a flexible framework which can be used as the base environment for
163 Offer a flexible framework which can be used as the base environment for
164 other systems with Python as the underlying language.
164 other systems with Python as the underlying language.
165 Specifically scientific environments like Mathematica, IDL and Matlab inspired
165 Specifically scientific environments like Mathematica, IDL and Matlab inspired
166 its design, but similar ideas can be useful in many fields.
166 its design, but similar ideas can be useful in many fields.
167 \layout Subsection
167 \layout Subsection
168
168
169 Main features
169 Main features
170 \layout Itemize
170 \layout Itemize
171
171
172 Dynamic object introspection.
172 Dynamic object introspection.
173 One can access docstrings, function definition prototypes, source code,
173 One can access docstrings, function definition prototypes, source code,
174 source files and other details of any object accessible to the interpreter
174 source files and other details of any object accessible to the interpreter
175 with a single keystroke (`
175 with a single keystroke (`
176 \family typewriter
176 \family typewriter
177 ?
177 ?
178 \family default
178 \family default
179 ').
179 ').
180 \layout Itemize
180 \layout Itemize
181
181
182 Completion in the local namespace, by typing TAB at the prompt.
182 Completion in the local namespace, by typing TAB at the prompt.
183 This works for keywords, methods, variables and files in the current directory.
183 This works for keywords, methods, variables and files in the current directory.
184 This is supported via the readline library, and full access to configuring
184 This is supported via the readline library, and full access to configuring
185 readline's behavior is provided.
185 readline's behavior is provided.
186 \layout Itemize
186 \layout Itemize
187
187
188 Numbered input/output prompts with command history (persistent across sessions
188 Numbered input/output prompts with command history (persistent across sessions
189 and tied to each profile), full searching in this history and caching of
189 and tied to each profile), full searching in this history and caching of
190 all input and output.
190 all input and output.
191 \layout Itemize
191 \layout Itemize
192
192
193 User-extensible `magic' commands.
193 User-extensible `magic' commands.
194 A set of commands prefixed with
194 A set of commands prefixed with
195 \family typewriter
195 \family typewriter
196 %
196 %
197 \family default
197 \family default
198 is available for controlling IPython itself and provides directory control,
198 is available for controlling IPython itself and provides directory control,
199 namespace information and many aliases to common system shell commands.
199 namespace information and many aliases to common system shell commands.
200 \layout Itemize
200 \layout Itemize
201
201
202 Alias facility for defining your own system aliases.
202 Alias facility for defining your own system aliases.
203 \layout Itemize
203 \layout Itemize
204
204
205 Complete system shell access.
205 Complete system shell access.
206 Lines starting with ! are passed directly to the system shell, and using
206 Lines starting with ! are passed directly to the system shell, and using
207 !! captures shell output into python variables for further use.
207 !! captures shell output into python variables for further use.
208 \layout Itemize
208 \layout Itemize
209
209
210 All calls to the system (via aliases or via !) have their standard output/error
210 All calls to the system (via aliases or via !) have their standard output/error
211 automatically stored as strings, and also available as lists.
211 automatically stored as strings, and also available as lists.
212 \layout Itemize
212 \layout Itemize
213
213
214 Background execution of Python commands in a separate thread.
214 Background execution of Python commands in a separate thread.
215 IPython has an internal job manager called
215 IPython has an internal job manager called
216 \family typewriter
216 \family typewriter
217 jobs
217 jobs
218 \family default
218 \family default
219 , and a conveninence backgrounding magic function called
219 , and a conveninence backgrounding magic function called
220 \family typewriter
220 \family typewriter
221 %bg
221 %bg
222 \family default
222 \family default
223 .
223 .
224 \layout Itemize
224 \layout Itemize
225
225
226 The ability to expand python variables when calling the system shell.
226 The ability to expand python variables when calling the system shell.
227 In a shell command, any python variable prefixed with
227 In a shell command, any python variable prefixed with
228 \family typewriter
228 \family typewriter
229 $
229 $
230 \family default
230 \family default
231 is expanded.
231 is expanded.
232 A double
232 A double
233 \family typewriter
233 \family typewriter
234 $$
234 $$
235 \family default
235 \family default
236 allows passing a literal
236 allows passing a literal
237 \family typewriter
237 \family typewriter
238 $
238 $
239 \family default
239 \family default
240 to the shell (for access to shell and environment variables like
240 to the shell (for access to shell and environment variables like
241 \family typewriter
241 \family typewriter
242 $PATH
242 $PATH
243 \family default
243 \family default
244 ).
244 ).
245 \layout Itemize
245 \layout Itemize
246
246
247 Filesystem navigation, via a magic
247 Filesystem navigation, via a magic
248 \family typewriter
248 \family typewriter
249 %cd
249 %cd
250 \family default
250 \family default
251 command, along with a persistent bookmark system (using
251 command, along with a persistent bookmark system (using
252 \family typewriter
252 \family typewriter
253 %bookmark
253 %bookmark
254 \family default
254 \family default
255 ) for fast access to frequently visited directories.
255 ) for fast access to frequently visited directories.
256 \layout Itemize
256 \layout Itemize
257
257
258 Automatic indentation (optional) of code as you type (through the readline
258 Automatic indentation (optional) of code as you type (through the readline
259 library).
259 library).
260 \layout Itemize
260 \layout Itemize
261
261
262 Macro system for quickly re-executing multiple lines of previous input with
262 Macro system for quickly re-executing multiple lines of previous input with
263 a single name.
263 a single name.
264 \layout Itemize
264 \layout Itemize
265
265
266 Session logging (you can then later use these logs as code in your programs).
266 Session logging (you can then later use these logs as code in your programs).
267 \layout Itemize
267 \layout Itemize
268
268
269 Session restoring: logs can be replayed to restore a previous session to
269 Session restoring: logs can be replayed to restore a previous session to
270 the state where you left it.
270 the state where you left it.
271 \layout Itemize
271 \layout Itemize
272
272
273 Verbose and colored exception traceback printouts.
273 Verbose and colored exception traceback printouts.
274 Easier to parse visually, and in verbose mode they produce a lot of useful
274 Easier to parse visually, and in verbose mode they produce a lot of useful
275 debugging information (basically a terminal version of the cgitb module).
275 debugging information (basically a terminal version of the cgitb module).
276 \layout Itemize
276 \layout Itemize
277
277
278 Auto-parentheses: callable objects can be executed without parentheses:
278 Auto-parentheses: callable objects can be executed without parentheses:
279
279
280 \family typewriter
280 \family typewriter
281 `sin 3'
281 `sin 3'
282 \family default
282 \family default
283 is automatically converted to
283 is automatically converted to
284 \family typewriter
284 \family typewriter
285 `sin(3)
285 `sin(3)
286 \family default
286 \family default
287 '.
287 '.
288 \layout Itemize
288 \layout Itemize
289
289
290 Auto-quoting: using `
290 Auto-quoting: using `
291 \family typewriter
291 \family typewriter
292 ,
292 ,
293 \family default
293 \family default
294 ' or `
294 ' or `
295 \family typewriter
295 \family typewriter
296 ;
296 ;
297 \family default
297 \family default
298 ' as the first character forces auto-quoting of the rest of the line:
298 ' as the first character forces auto-quoting of the rest of the line:
299 \family typewriter
299 \family typewriter
300 `,my_function a\SpecialChar ~
300 `,my_function a\SpecialChar ~
301 b'
301 b'
302 \family default
302 \family default
303 becomes automatically
303 becomes automatically
304 \family typewriter
304 \family typewriter
305 `my_function("a","b")'
305 `my_function("a","b")'
306 \family default
306 \family default
307 , while
307 , while
308 \family typewriter
308 \family typewriter
309 `;my_function a\SpecialChar ~
309 `;my_function a\SpecialChar ~
310 b'
310 b'
311 \family default
311 \family default
312 becomes
312 becomes
313 \family typewriter
313 \family typewriter
314 `my_function("a b")'
314 `my_function("a b")'
315 \family default
315 \family default
316 .
316 .
317 \layout Itemize
317 \layout Itemize
318
318
319 Extensible input syntax.
319 Extensible input syntax.
320 You can define filters that pre-process user input to simplify input in
320 You can define filters that pre-process user input to simplify input in
321 special situations.
321 special situations.
322 This allows for example pasting multi-line code fragments which start with
322 This allows for example pasting multi-line code fragments which start with
323
323
324 \family typewriter
324 \family typewriter
325 `>>>'
325 `>>>'
326 \family default
326 \family default
327 or
327 or
328 \family typewriter
328 \family typewriter
329 `...'
329 `...'
330 \family default
330 \family default
331 such as those from other python sessions or the standard Python documentation.
331 such as those from other python sessions or the standard Python documentation.
332 \layout Itemize
332 \layout Itemize
333
333
334 Flexible configuration system.
334 Flexible configuration system.
335 It uses a configuration file which allows permanent setting of all command-line
335 It uses a configuration file which allows permanent setting of all command-line
336 options, module loading, code and file execution.
336 options, module loading, code and file execution.
337 The system allows recursive file inclusion, so you can have a base file
337 The system allows recursive file inclusion, so you can have a base file
338 with defaults and layers which load other customizations for particular
338 with defaults and layers which load other customizations for particular
339 projects.
339 projects.
340 \layout Itemize
340 \layout Itemize
341
341
342 Embeddable.
342 Embeddable.
343 You can call IPython as a python shell inside your own python programs.
343 You can call IPython as a python shell inside your own python programs.
344 This can be used both for debugging code or for providing interactive abilities
344 This can be used both for debugging code or for providing interactive abilities
345 to your programs with knowledge about the local namespaces (very useful
345 to your programs with knowledge about the local namespaces (very useful
346 in debugging and data analysis situations).
346 in debugging and data analysis situations).
347 \layout Itemize
347 \layout Itemize
348
348
349 Easy debugger access.
349 Easy debugger access.
350 You can set IPython to call up the Python debugger (pdb) every time there
350 You can set IPython to call up the Python debugger (pdb) every time there
351 is an uncaught exception.
351 is an uncaught exception.
352 This drops you inside the code which triggered the exception with all the
352 This drops you inside the code which triggered the exception with all the
353 data live and it is possible to navigate the stack to rapidly isolate the
353 data live and it is possible to navigate the stack to rapidly isolate the
354 source of a bug.
354 source of a bug.
355 The
355 The
356 \family typewriter
356 \family typewriter
357 %run
357 %run
358 \family default
358 \family default
359 magic command --with the
359 magic command --with the
360 \family typewriter
360 \family typewriter
361 -d
361 -d
362 \family default
362 \family default
363 option-- can run any script under
363 option-- can run any script under
364 \family typewriter
364 \family typewriter
365 pdb
365 pdb
366 \family default
366 \family default
367 's control, automatically setting initial breakpoints for you.
367 's control, automatically setting initial breakpoints for you.
368 \layout Itemize
368 \layout Itemize
369
369
370 Profiler support.
370 Profiler support.
371 You can run single statements (similar to
371 You can run single statements (similar to
372 \family typewriter
372 \family typewriter
373 profile.run()
373 profile.run()
374 \family default
374 \family default
375 ) or complete programs under the profiler's control.
375 ) or complete programs under the profiler's control.
376 While this is possible with the standard
376 While this is possible with the standard
377 \family typewriter
377 \family typewriter
378 profile
378 profile
379 \family default
379 \family default
380 module, IPython wraps this functionality with magic commands (see
380 module, IPython wraps this functionality with magic commands (see
381 \family typewriter
381 \family typewriter
382 `%prun'
382 `%prun'
383 \family default
383 \family default
384 and
384 and
385 \family typewriter
385 \family typewriter
386 `%run -p
386 `%run -p
387 \family default
387 \family default
388 ') convenient for rapid interactive work.
388 ') convenient for rapid interactive work.
389 \layout Subsection
389 \layout Subsection
390
390
391 Portability and Python requirements
391 Portability and Python requirements
392 \layout Standard
392 \layout Standard
393
393
394
394
395 \series bold
395 \series bold
396 Python requirements:
396 Python requirements:
397 \series default
397 \series default
398 IPython works with Python version 2.2 or newer.
398 IPython works with Python version 2.2 or newer.
399 It has been tested with Python 2.4 and no problems have been reported.
399 It has been tested with Python 2.4 and no problems have been reported.
400 Support for Python 2.1 hasn't been recently tested, since I don't have access
400 Support for Python 2.1 hasn't been recently tested, since I don't have access
401 to it on any of my systems.
401 to it on any of my systems.
402 But I suspect there may be some problems with Python 2.1, because some of
402 But I suspect there may be some problems with Python 2.1, because some of
403 the newer code may use 2.2 features.
403 the newer code may use 2.2 features.
404 \layout Standard
404 \layout Standard
405
405
406 IPython is developed under
406 IPython is developed under
407 \series bold
407 \series bold
408 Linux
408 Linux
409 \series default
409 \series default
410 , but it should work in any reasonable Unix-type system (tested OK under
410 , but it should work in any reasonable Unix-type system (tested OK under
411 Solaris and the *BSD family, for which a port exists thanks to Dryice Liu).
411 Solaris and the *BSD family, for which a port exists thanks to Dryice Liu).
412 \layout Standard
412 \layout Standard
413
413
414
414
415 \series bold
415 \series bold
416 Mac OS X
416 Mac OS X
417 \series default
417 \series default
418 : it works, apparently without any problems (thanks to Jim Boyle at Lawrence
418 : it works, apparently without any problems (thanks to Jim Boyle at Lawrence
419 Livermore for the information).
419 Livermore for the information).
420 Thanks to Andrea Riciputi, Fink support is available.
420 Thanks to Andrea Riciputi, Fink support is available.
421 \layout Standard
421 \layout Standard
422
422
423
423
424 \series bold
424 \series bold
425 CygWin
425 CygWin
426 \series default
426 \series default
427 : it works mostly OK, though some users have reported problems with prompt
427 : it works mostly OK, though some users have reported problems with prompt
428 coloring.
428 coloring.
429 No satisfactory solution to this has been found so far, you may want to
429 No satisfactory solution to this has been found so far, you may want to
430 disable colors permanently in the
430 disable colors permanently in the
431 \family typewriter
431 \family typewriter
432 ipythonrc
432 ipythonrc
433 \family default
433 \family default
434 configuration file if you experience problems.
434 configuration file if you experience problems.
435 If you have proper color support under cygwin, please post to the IPython
435 If you have proper color support under cygwin, please post to the IPython
436 mailing list so this issue can be resolved for all users.
436 mailing list so this issue can be resolved for all users.
437 \layout Standard
437 \layout Standard
438
438
439
439
440 \series bold
440 \series bold
441 Windows
441 Windows
442 \series default
442 \series default
443 : it works well under Windows XP/2k, and I suspect NT should behave similarly.
443 : it works well under Windows XP/2k, and I suspect NT should behave similarly.
444 Section\SpecialChar ~
444 Section\SpecialChar ~
445
445
446 \begin_inset LatexCommand \ref{sub:Under-Windows}
446 \begin_inset LatexCommand \ref{sub:Under-Windows}
447
447
448 \end_inset
448 \end_inset
449
449
450 describes installation details for Windows, including some additional tools
450 describes installation details for Windows, including some additional tools
451 needed on this platform.
451 needed on this platform.
452 \layout Standard
452 \layout Standard
453
453
454 Windows 9x support is present, and has been reported to work fine (at least
454 Windows 9x support is present, and has been reported to work fine (at least
455 on WinME).
455 on WinME).
456 \layout Standard
456 \layout Standard
457
457
458 Please note, however, that I have very little access to and experience with
458 Please note, however, that I have very little access to and experience with
459 Windows development.
459 Windows development.
460 For this reason, Windows-specific bugs tend to linger far longer than I
460 For this reason, Windows-specific bugs tend to linger far longer than I
461 would like, and often I just can't find a satisfactory solution.
461 would like, and often I just can't find a satisfactory solution.
462 If any Windows user wants to join in with development help, all hands are
462 If any Windows user wants to join in with development help, all hands are
463 always welcome.
463 always welcome.
464 \layout Subsection
464 \layout Subsection
465
465
466 Location
466 Location
467 \layout Standard
467 \layout Standard
468
468
469 IPython is generously hosted at
469 IPython is generously hosted at
470 \begin_inset LatexCommand \htmlurl{http://ipython.scipy.org}
470 \begin_inset LatexCommand \htmlurl{http://ipython.scipy.org}
471
471
472 \end_inset
472 \end_inset
473
473
474 by the SciPy project.
474 by the SciPy project.
475 This site offers downloads, subversion access, mailing lists and a bug
475 This site offers downloads, subversion access, mailing lists and a bug
476 tracking system.
476 tracking system.
477 I am very grateful to Enthought (
477 I am very grateful to Enthought (
478 \begin_inset LatexCommand \htmlurl{http://www.enthought.com}
478 \begin_inset LatexCommand \htmlurl{http://www.enthought.com}
479
479
480 \end_inset
480 \end_inset
481
481
482 ) and all of the SciPy team for their contribution.
482 ) and all of the SciPy team for their contribution.
483 \layout Section
483 \layout Section
484
484
485
485
486 \begin_inset LatexCommand \label{sec:install}
486 \begin_inset LatexCommand \label{sec:install}
487
487
488 \end_inset
488 \end_inset
489
489
490 Installation
490 Installation
491 \layout Subsection
491 \layout Subsection
492
492
493 Instant instructions
493 Instant instructions
494 \layout Standard
494 \layout Standard
495
495
496 If you are of the impatient kind, under Linux/Unix simply untar/unzip the
496 If you are of the impatient kind, under Linux/Unix simply untar/unzip the
497 download, then install with
497 download, then install with
498 \family typewriter
498 \family typewriter
499 `python setup.py install'
499 `python setup.py install'
500 \family default
500 \family default
501 .
501 .
502 Under Windows, double-click on the provided
502 Under Windows, double-click on the provided
503 \family typewriter
503 \family typewriter
504 .exe
504 .exe
505 \family default
505 \family default
506 binary installer.
506 binary installer.
507 \layout Standard
507 \layout Standard
508
508
509 Then, take a look at Sections
509 Then, take a look at Sections
510 \begin_inset LatexCommand \ref{sec:good_config}
510 \begin_inset LatexCommand \ref{sec:good_config}
511
511
512 \end_inset
512 \end_inset
513
513
514 for configuring things optimally and
514 for configuring things optimally and
515 \begin_inset LatexCommand \ref{sec:quick_tips}
515 \begin_inset LatexCommand \ref{sec:quick_tips}
516
516
517 \end_inset
517 \end_inset
518
518
519 for quick tips on efficient use of IPython.
519 for quick tips on efficient use of IPython.
520 You can later refer to the rest of the manual for all the gory details.
520 You can later refer to the rest of the manual for all the gory details.
521 \layout Standard
521 \layout Standard
522
522
523 See the notes in sec.
523 See the notes in sec.
524
524
525 \begin_inset LatexCommand \ref{sec:upgrade}
525 \begin_inset LatexCommand \ref{sec:upgrade}
526
526
527 \end_inset
527 \end_inset
528
528
529 for upgrading IPython versions.
529 for upgrading IPython versions.
530 \layout Subsection
530 \layout Subsection
531
531
532 Detailed Unix instructions (Linux, Mac OS X, etc.)
532 Detailed Unix instructions (Linux, Mac OS X, etc.)
533 \layout Standard
533 \layout Standard
534
534
535 For RPM based systems, simply install the supplied package in the usual
535 For RPM based systems, simply install the supplied package in the usual
536 manner.
536 manner.
537 If you download the tar archive, the process is:
537 If you download the tar archive, the process is:
538 \layout Enumerate
538 \layout Enumerate
539
539
540 Unzip/untar the
540 Unzip/untar the
541 \family typewriter
541 \family typewriter
542 ipython-XXX.tar.gz
542 ipython-XXX.tar.gz
543 \family default
543 \family default
544 file wherever you want (
544 file wherever you want (
545 \family typewriter
545 \family typewriter
546 XXX
546 XXX
547 \family default
547 \family default
548 is the version number).
548 is the version number).
549 It will make a directory called
549 It will make a directory called
550 \family typewriter
550 \family typewriter
551 ipython-XXX.
551 ipython-XXX.
552
552
553 \family default
553 \family default
554 Change into that directory where you will find the files
554 Change into that directory where you will find the files
555 \family typewriter
555 \family typewriter
556 README
556 README
557 \family default
557 \family default
558 and
558 and
559 \family typewriter
559 \family typewriter
560 setup.py
560 setup.py
561 \family default
561 \family default
562 .
562 .
563
563
564 \family typewriter
564 \family typewriter
565 O
565 O
566 \family default
566 \family default
567 nce you've completed the installation, you can safely remove this directory.
567 nce you've completed the installation, you can safely remove this directory.
568
568
569 \layout Enumerate
569 \layout Enumerate
570
570
571 If you are installing over a previous installation of version 0.2.0 or earlier,
571 If you are installing over a previous installation of version 0.2.0 or earlier,
572 first remove your
572 first remove your
573 \family typewriter
573 \family typewriter
574 $HOME/.ipython
574 $HOME/.ipython
575 \family default
575 \family default
576 directory, since the configuration file format has changed somewhat (the
576 directory, since the configuration file format has changed somewhat (the
577 '=' were removed from all option specifications).
577 '=' were removed from all option specifications).
578 Or you can call ipython with the
578 Or you can call ipython with the
579 \family typewriter
579 \family typewriter
580 -upgrade
580 -upgrade
581 \family default
581 \family default
582 option and it will do this automatically for you.
582 option and it will do this automatically for you.
583 \layout Enumerate
583 \layout Enumerate
584
584
585 IPython uses distutils, so you can install it by simply typing at the system
585 IPython uses distutils, so you can install it by simply typing at the system
586 prompt (don't type the
586 prompt (don't type the
587 \family typewriter
587 \family typewriter
588 $
588 $
589 \family default
589 \family default
590 )
590 )
591 \newline
591 \newline
592
592
593 \family typewriter
593 \family typewriter
594 $ python setup.py install
594 $ python setup.py install
595 \family default
595 \family default
596
596
597 \newline
597 \newline
598 Note that this assumes you have root access to your machine.
598 Note that this assumes you have root access to your machine.
599 If you don't have root access or don't want IPython to go in the default
599 If you don't have root access or don't want IPython to go in the default
600 python directories, you'll need to use the
600 python directories, you'll need to use the
601 \begin_inset ERT
601 \begin_inset ERT
602 status Collapsed
602 status Collapsed
603
603
604 \layout Standard
604 \layout Standard
605
605
606 \backslash
606 \backslash
607 verb|--home|
607 verb|--home|
608 \end_inset
608 \end_inset
609
609
610 option (or
610 option (or
611 \begin_inset ERT
611 \begin_inset ERT
612 status Collapsed
612 status Collapsed
613
613
614 \layout Standard
614 \layout Standard
615
615
616 \backslash
616 \backslash
617 verb|--prefix|
617 verb|--prefix|
618 \end_inset
618 \end_inset
619
619
620 ).
620 ).
621 For example:
621 For example:
622 \newline
622 \newline
623
623
624 \begin_inset ERT
624 \begin_inset ERT
625 status Collapsed
625 status Collapsed
626
626
627 \layout Standard
627 \layout Standard
628
628
629 \backslash
629 \backslash
630 verb|$ python setup.py install --home $HOME/local|
630 verb|$ python setup.py install --home $HOME/local|
631 \end_inset
631 \end_inset
632
632
633
633
634 \newline
634 \newline
635 will install IPython into
635 will install IPython into
636 \family typewriter
636 \family typewriter
637 $HOME/local
637 $HOME/local
638 \family default
638 \family default
639 and its subdirectories (creating them if necessary).
639 and its subdirectories (creating them if necessary).
640 \newline
640 \newline
641 You can type
641 You can type
642 \newline
642 \newline
643
643
644 \begin_inset ERT
644 \begin_inset ERT
645 status Collapsed
645 status Collapsed
646
646
647 \layout Standard
647 \layout Standard
648
648
649 \backslash
649 \backslash
650 verb|$ python setup.py --help|
650 verb|$ python setup.py --help|
651 \end_inset
651 \end_inset
652
652
653
653
654 \newline
654 \newline
655 for more details.
655 for more details.
656 \newline
656 \newline
657 Note that if you change the default location for
657 Note that if you change the default location for
658 \begin_inset ERT
658 \begin_inset ERT
659 status Collapsed
659 status Collapsed
660
660
661 \layout Standard
661 \layout Standard
662
662
663 \backslash
663 \backslash
664 verb|--home|
664 verb|--home|
665 \end_inset
665 \end_inset
666
666
667 at installation, IPython may end up installed at a location which is not
667 at installation, IPython may end up installed at a location which is not
668 part of your
668 part of your
669 \family typewriter
669 \family typewriter
670 $PYTHONPATH
670 $PYTHONPATH
671 \family default
671 \family default
672 environment variable.
672 environment variable.
673 In this case, you'll need to configure this variable to include the actual
673 In this case, you'll need to configure this variable to include the actual
674 directory where the
674 directory where the
675 \family typewriter
675 \family typewriter
676 IPython/
676 IPython/
677 \family default
677 \family default
678 directory ended (typically the value you give to
678 directory ended (typically the value you give to
679 \begin_inset ERT
679 \begin_inset ERT
680 status Collapsed
680 status Collapsed
681
681
682 \layout Standard
682 \layout Standard
683
683
684 \backslash
684 \backslash
685 verb|--home|
685 verb|--home|
686 \end_inset
686 \end_inset
687
687
688 plus
688 plus
689 \family typewriter
689 \family typewriter
690 /lib/python
690 /lib/python
691 \family default
691 \family default
692 ).
692 ).
693 \layout Subsubsection
693 \layout Subsubsection
694
694
695 Mac OSX information
695 Mac OSX information
696 \layout Standard
696 \layout Standard
697
697
698 Under OSX, there is a choice you need to make.
698 Under OSX, there is a choice you need to make.
699 Apple ships its own build of Python, which lives in the core OSX filesystem
699 Apple ships its own build of Python, which lives in the core OSX filesystem
700 hierarchy.
700 hierarchy.
701 You can also manually install a separate Python, either purely by hand
701 You can also manually install a separate Python, either purely by hand
702 (typically in
702 (typically in
703 \family typewriter
703 \family typewriter
704 /usr/local
704 /usr/local
705 \family default
705 \family default
706 ) or by using Fink, which puts everything under
706 ) or by using Fink, which puts everything under
707 \family typewriter
707 \family typewriter
708 /sw
708 /sw
709 \family default
709 \family default
710 .
710 .
711 Which route to follow is a matter of personal preference, as I've seen
711 Which route to follow is a matter of personal preference, as I've seen
712 users who favor each of the approaches.
712 users who favor each of the approaches.
713 Here I will simply list the known installation issues under OSX, along
713 Here I will simply list the known installation issues under OSX, along
714 with their solutions.
714 with their solutions.
715 \layout Standard
715 \layout Standard
716
716
717 This page:
717 This page:
718 \begin_inset LatexCommand \htmlurl{http://geosci.uchicago.edu/~tobis/pylab.html}
718 \begin_inset LatexCommand \htmlurl{http://geosci.uchicago.edu/~tobis/pylab.html}
719
719
720 \end_inset
720 \end_inset
721
721
722 contains information on this topic, with additional details on how to make
722 contains information on this topic, with additional details on how to make
723 IPython and matplotlib play nicely under OSX.
723 IPython and matplotlib play nicely under OSX.
724 \layout Subsubsection*
724 \layout Subsubsection*
725
725
726 GUI problems
726 GUI problems
727 \layout Standard
727 \layout Standard
728
728
729 The following instructions apply to an install of IPython under OSX from
729 The following instructions apply to an install of IPython under OSX from
730 unpacking the
730 unpacking the
731 \family typewriter
731 \family typewriter
732 .tar.gz
732 .tar.gz
733 \family default
733 \family default
734 distribution and installing it for the default Python interpreter shipped
734 distribution and installing it for the default Python interpreter shipped
735 by Apple.
735 by Apple.
736 If you are using a fink install, fink will take care of these details for
736 If you are using a fink install, fink will take care of these details for
737 you, by installing IPython against fink's Python.
737 you, by installing IPython against fink's Python.
738 \layout Standard
738 \layout Standard
739
739
740 IPython offers various forms of support for interacting with graphical applicati
740 IPython offers various forms of support for interacting with graphical applicati
741 ons from the command line, from simple Tk apps (which are in principle always
741 ons from the command line, from simple Tk apps (which are in principle always
742 supported by Python) to interactive control of WX, Qt and GTK apps.
742 supported by Python) to interactive control of WX, Qt and GTK apps.
743 Under OSX, however, this requires that ipython is installed by calling
743 Under OSX, however, this requires that ipython is installed by calling
744 the special
744 the special
745 \family typewriter
745 \family typewriter
746 pythonw
746 pythonw
747 \family default
747 \family default
748 script at installation time, which takes care of coordinating things with
748 script at installation time, which takes care of coordinating things with
749 Apple's graphical environment.
749 Apple's graphical environment.
750 \layout Standard
750 \layout Standard
751
751
752 So when installing under OSX, it is best to use the following command:
752 So when installing under OSX, it is best to use the following command:
753 \family typewriter
753 \family typewriter
754
754
755 \newline
755 \newline
756
756
757 \family default
757 \family default
758
758
759 \begin_inset ERT
759 \begin_inset ERT
760 status Collapsed
760 status Collapsed
761
761
762 \layout Standard
762 \layout Standard
763
763
764 \backslash
764 \backslash
765 verb| $ sudo pythonw setup.py install --install-scripts=/usr/local/bin|
765 verb| $ sudo pythonw setup.py install --install-scripts=/usr/local/bin|
766 \end_inset
766 \end_inset
767
767
768
768
769 \newline
769 \newline
770 or
770 or
771 \newline
771 \newline
772
772
773 \begin_inset ERT
773 \begin_inset ERT
774 status Open
774 status Open
775
775
776 \layout Standard
776 \layout Standard
777
777
778 \backslash
778 \backslash
779 verb| $ sudo pythonw setup.py install --install-scripts=/usr/bin|
779 verb| $ sudo pythonw setup.py install --install-scripts=/usr/bin|
780 \end_inset
780 \end_inset
781
781
782
782
783 \newline
783 \newline
784 depending on where you like to keep hand-installed executables.
784 depending on where you like to keep hand-installed executables.
785 \layout Standard
785 \layout Standard
786
786
787 The resulting script will have an appropriate shebang line (the first line
787 The resulting script will have an appropriate shebang line (the first line
788 in the script whic begins with
788 in the script whic begins with
789 \family typewriter
789 \family typewriter
790 #!...
790 #!...
791 \family default
791 \family default
792 ) such that the ipython interpreter can interact with the OS X GUI.
792 ) such that the ipython interpreter can interact with the OS X GUI.
793 If the installed version does not work and has a shebang line that points
793 If the installed version does not work and has a shebang line that points
794 to, for example, just
794 to, for example, just
795 \family typewriter
795 \family typewriter
796 /usr/bin/python
796 /usr/bin/python
797 \family default
797 \family default
798 , then you might have a stale, cached version in your
798 , then you might have a stale, cached version in your
799 \family typewriter
799 \family typewriter
800 build/scripts-<python-version>
800 build/scripts-<python-version>
801 \family default
801 \family default
802 directory.
802 directory.
803 Delete that directory and rerun the
803 Delete that directory and rerun the
804 \family typewriter
804 \family typewriter
805 setup.py
805 setup.py
806 \family default
806 \family default
807 .
807 .
808
808
809 \layout Standard
809 \layout Standard
810
810
811 It is also a good idea to use the special flag
811 It is also a good idea to use the special flag
812 \begin_inset ERT
812 \begin_inset ERT
813 status Collapsed
813 status Collapsed
814
814
815 \layout Standard
815 \layout Standard
816
816
817 \backslash
817 \backslash
818 verb|--install-scripts|
818 verb|--install-scripts|
819 \end_inset
819 \end_inset
820
820
821 as indicated above, to ensure that the ipython scripts end up in a location
821 as indicated above, to ensure that the ipython scripts end up in a location
822 which is part of your
822 which is part of your
823 \family typewriter
823 \family typewriter
824 $PATH
824 $PATH
825 \family default
825 \family default
826 .
826 .
827 Otherwise Apple's Python will put the scripts in an internal directory
827 Otherwise Apple's Python will put the scripts in an internal directory
828 not available by default at the command line (if you use
828 not available by default at the command line (if you use
829 \family typewriter
829 \family typewriter
830 /usr/local/bin
830 /usr/local/bin
831 \family default
831 \family default
832 , you need to make sure this is in your
832 , you need to make sure this is in your
833 \family typewriter
833 \family typewriter
834 $PATH
834 $PATH
835 \family default
835 \family default
836 , which may not be true by default).
836 , which may not be true by default).
837 \layout Subsubsection*
837 \layout Subsubsection*
838
838
839 Readline problems
839 Readline problems
840 \layout Standard
840 \layout Standard
841
841
842 By default, the Python version shipped by Apple does
842 By default, the Python version shipped by Apple does
843 \emph on
843 \emph on
844 not
844 not
845 \emph default
845 \emph default
846 include the readline library, so central to IPython's behavior.
846 include the readline library, so central to IPython's behavior.
847 If you install IPython against Apple's Python, you will not have arrow
847 If you install IPython against Apple's Python, you will not have arrow
848 keys, tab completion, etc.
848 keys, tab completion, etc.
849 For Mac OSX 10.3 (Panther), you can find a prebuilt readline library here:
849 For Mac OSX 10.3 (Panther), you can find a prebuilt readline library here:
850 \newline
850 \newline
851
851
852 \begin_inset LatexCommand \htmlurl{http://pythonmac.org/packages/readline-5.0-py2.3-macosx10.3.zip}
852 \begin_inset LatexCommand \htmlurl{http://pythonmac.org/packages/readline-5.0-py2.3-macosx10.3.zip}
853
853
854 \end_inset
854 \end_inset
855
855
856
856
857 \layout Standard
857 \layout Standard
858
858
859 If you are using OSX 10.4 (Tiger), after installing this package you need
859 If you are using OSX 10.4 (Tiger), after installing this package you need
860 to either:
860 to either:
861 \layout Enumerate
861 \layout Enumerate
862
862
863 move
863 move
864 \family typewriter
864 \family typewriter
865 readline.so
865 readline.so
866 \family default
866 \family default
867 from
867 from
868 \family typewriter
868 \family typewriter
869 /Library/Python/2.3
869 /Library/Python/2.3
870 \family default
870 \family default
871 to
871 to
872 \family typewriter
872 \family typewriter
873 /Library/Python/2.3/site-packages
873 /Library/Python/2.3/site-packages
874 \family default
874 \family default
875 , or
875 , or
876 \layout Enumerate
876 \layout Enumerate
877
877
878 install
878 install
879 \begin_inset LatexCommand \htmlurl{http://pythonmac.org/packages/TigerPython23Compat.pkg.zip}
879 \begin_inset LatexCommand \htmlurl{http://pythonmac.org/packages/TigerPython23Compat.pkg.zip}
880
880
881 \end_inset
881 \end_inset
882
882
883
883
884 \layout Standard
884 \layout Standard
885
885
886 Users installing against Fink's Python or a properly hand-built one should
886 Users installing against Fink's Python or a properly hand-built one should
887 not have this problem.
887 not have this problem.
888 \layout Subsection
888 \layout Subsection
889
889
890
890
891 \begin_inset LatexCommand \label{sub:Under-Windows}
891 \begin_inset LatexCommand \label{sub:Under-Windows}
892
892
893 \end_inset
893 \end_inset
894
894
895 Windows instructions
895 Windows instructions
896 \layout Standard
896 \layout Standard
897
897
898 While you can use IPython under Windows with only a stock Python installation,
898 While you can use IPython under Windows with only a stock Python installation,
899 there is one extension,
899 there is one extension,
900 \family typewriter
900 \family typewriter
901 readline
901 readline
902 \family default
902 \family default
903 , which will make the whole experience a lot more pleasant.
903 , which will make the whole experience a lot more pleasant.
904 It is almost a requirement, since IPython will complain in its absence
904 It is almost a requirement, since IPython will complain in its absence
905 (though it will function).
905 (though it will function).
906
906
907 \layout Standard
907 \layout Standard
908
908
909 The
909 The
910 \family typewriter
910 \family typewriter
911 readline
911 readline
912 \family default
912 \family default
913 extension needs two other libraries to work, so in all you need:
913 extension needs two other libraries to work, so in all you need:
914 \layout Enumerate
914 \layout Enumerate
915
915
916
916
917 \family typewriter
917 \family typewriter
918 PyWin32
918 PyWin32
919 \family default
919 \family default
920 from
920 from
921 \begin_inset LatexCommand \htmlurl{http://starship.python.net/crew/mhammond}
921 \begin_inset LatexCommand \htmlurl{http://starship.python.net/crew/mhammond}
922
922
923 \end_inset
923 \end_inset
924
924
925 .
925 .
926 \layout Enumerate
926 \layout Enumerate
927
927
928
928
929 \family typewriter
929 \family typewriter
930 CTypes
930 CTypes
931 \family default
931 \family default
932 from
932 from
933 \begin_inset LatexCommand \htmlurl{http://starship.python.net/crew/theller/ctypes}
933 \begin_inset LatexCommand \htmlurl{http://starship.python.net/crew/theller/ctypes}
934
934
935 \end_inset
935 \end_inset
936
936
937 (you
937 (you
938 \emph on
938 \emph on
939 must
939 must
940 \emph default
940 \emph default
941 use version 0.9.1 or newer).
941 use version 0.9.1 or newer).
942 \layout Enumerate
942 \layout Enumerate
943
943
944
944
945 \family typewriter
945 \family typewriter
946 Readline
946 Readline
947 \family default
947 \family default
948 for Windows from
948 for Windows from
949 \begin_inset LatexCommand \htmlurl{http://sourceforge.net/projects/uncpythontools}
949 \begin_inset LatexCommand \htmlurl{http://sourceforge.net/projects/uncpythontools}
950
950
951 \end_inset
951 \end_inset
952
952
953 .
953 .
954 \layout Standard
954 \layout Standard
955
955
956
956
957 \series bold
957 \series bold
958 Warning about a broken readline-like library:
958 Warning about a broken readline-like library:
959 \series default
959 \series default
960 several users have reported problems stemming from using the pseudo-readline
960 several users have reported problems stemming from using the pseudo-readline
961 library at
961 library at
962 \begin_inset LatexCommand \htmlurl{http://newcenturycomputers.net/projects/readline.html}
962 \begin_inset LatexCommand \htmlurl{http://newcenturycomputers.net/projects/readline.html}
963
963
964 \end_inset
964 \end_inset
965
965
966 .
966 .
967 This is a broken library which, while called readline, only implements
967 This is a broken library which, while called readline, only implements
968 an incomplete subset of the readline API.
968 an incomplete subset of the readline API.
969 Since it is still called readline, it fools IPython's detection mechanisms
969 Since it is still called readline, it fools IPython's detection mechanisms
970 and causes unpredictable crashes later.
970 and causes unpredictable crashes later.
971 If you wish to use IPython under Windows, you must NOT use this library,
971 If you wish to use IPython under Windows, you must NOT use this library,
972 which for all purposes is (at least as of version 1.6) terminally broken.
972 which for all purposes is (at least as of version 1.6) terminally broken.
973 \layout Subsubsection
973 \layout Subsubsection
974
974
975 Gary Bishop's readline and color support for Windows
975 Gary Bishop's readline and color support for Windows
976 \layout Standard
976 \layout Standard
977
977
978 Some of IPython's very useful features are:
978 Some of IPython's very useful features are:
979 \layout Itemize
979 \layout Itemize
980
980
981 Integrated readline support (Tab-based file, object and attribute completion,
981 Integrated readline support (Tab-based file, object and attribute completion,
982 input history across sessions, editable command line, etc.)
982 input history across sessions, editable command line, etc.)
983 \layout Itemize
983 \layout Itemize
984
984
985 Coloring of prompts, code and tracebacks.
985 Coloring of prompts, code and tracebacks.
986 \layout Standard
986 \layout Standard
987
987
988 These, by default, are only available under Unix-like operating systems.
988 These, by default, are only available under Unix-like operating systems.
989 However, thanks to Gary Bishop's work, Windows XP/2k users can also benefit
989 However, thanks to Gary Bishop's work, Windows XP/2k users can also benefit
990 from them.
990 from them.
991 His readline library implements both GNU readline functionality and color
991 His readline library implements both GNU readline functionality and color
992 support, so that IPython under Windows XP/2k can be as friendly and powerful
992 support, so that IPython under Windows XP/2k can be as friendly and powerful
993 as under Unix-like environments.
993 as under Unix-like environments.
994 \layout Standard
994 \layout Standard
995
995
996 You can find Gary's tools at
996 You can find Gary's tools at
997 \begin_inset LatexCommand \htmlurl{http://sourceforge.net/projects/uncpythontools}
997 \begin_inset LatexCommand \htmlurl{http://sourceforge.net/projects/uncpythontools}
998
998
999 \end_inset
999 \end_inset
1000
1000
1001 ; Gary's
1001 ; Gary's
1002 \family typewriter
1002 \family typewriter
1003 readline
1003 readline
1004 \family default
1004 \family default
1005 requires in turn the
1005 requires in turn the
1006 \family typewriter
1006 \family typewriter
1007 ctypes
1007 ctypes
1008 \family default
1008 \family default
1009 library by Thomas Heller, available at
1009 library by Thomas Heller, available at
1010 \begin_inset LatexCommand \htmlurl{http://starship.python.net/crew/theller/ctypes}
1010 \begin_inset LatexCommand \htmlurl{http://starship.python.net/crew/theller/ctypes}
1011
1011
1012 \end_inset
1012 \end_inset
1013
1013
1014 , and Mark Hammond's
1014 , and Mark Hammond's
1015 \family typewriter
1015 \family typewriter
1016 PyWin32
1016 PyWin32
1017 \family default
1017 \family default
1018 from
1018 from
1019 \begin_inset LatexCommand \htmlurl{http://starship.python.net/crew/mhammond}
1019 \begin_inset LatexCommand \htmlurl{http://starship.python.net/crew/mhammond}
1020
1020
1021 \end_inset
1021 \end_inset
1022
1022
1023 (
1023 (
1024 \family typewriter
1024 \family typewriter
1025 PyWin32
1025 PyWin32
1026 \family default
1026 \family default
1027 is great for anything Windows-related anyway, so you might as well get
1027 is great for anything Windows-related anyway, so you might as well get
1028 it).
1028 it).
1029 \layout Standard
1029 \layout Standard
1030
1030
1031 Under MS\SpecialChar ~
1031 Under MS\SpecialChar ~
1032 Windows, IPython will complain if it can not find this
1032 Windows, IPython will complain if it can not find this
1033 \family typewriter
1033 \family typewriter
1034 readline
1034 readline
1035 \family default
1035 \family default
1036 library at startup and any time the
1036 library at startup and any time the
1037 \family typewriter
1037 \family typewriter
1038 %colors
1038 %colors
1039 \family default
1039 \family default
1040 command is issued, so you can consider it to be a quasi-requirement.
1040 command is issued, so you can consider it to be a quasi-requirement.
1041 \layout Subsubsection
1041 \layout Subsubsection
1042
1042
1043 Installation procedure
1043 Installation procedure
1044 \layout Standard
1044 \layout Standard
1045
1045
1046 Once you have the above installed, from the IPython download directory grab
1046 Once you have the above installed, from the IPython download directory grab
1047 the
1047 the
1048 \family typewriter
1048 \family typewriter
1049 ipython-XXX.win32.exe
1049 ipython-XXX.win32.exe
1050 \family default
1050 \family default
1051 file, where
1051 file, where
1052 \family typewriter
1052 \family typewriter
1053 XXX
1053 XXX
1054 \family default
1054 \family default
1055 represents the version number.
1055 represents the version number.
1056 This is a regular windows executable installer, which you can simply double-cli
1056 This is a regular windows executable installer, which you can simply double-cli
1057 ck to install.
1057 ck to install.
1058 It will add an entry for IPython to your Start Menu, as well as registering
1058 It will add an entry for IPython to your Start Menu, as well as registering
1059 IPython in the Windows list of applications, so you can later uninstall
1059 IPython in the Windows list of applications, so you can later uninstall
1060 it from the Control Panel.
1060 it from the Control Panel.
1061
1061
1062 \layout Standard
1062 \layout Standard
1063
1063
1064 IPython tries to install the configuration information in a directory named
1064 IPython tries to install the configuration information in a directory named
1065
1065
1066 \family typewriter
1066 \family typewriter
1067 .ipython
1067 .ipython
1068 \family default
1068 \family default
1069 (
1069 (
1070 \family typewriter
1070 \family typewriter
1071 _ipython
1071 _ipython
1072 \family default
1072 \family default
1073 under Windows) located in your `home' directory.
1073 under Windows) located in your `home' directory.
1074 IPython sets this directory by looking for a
1074 IPython sets this directory by looking for a
1075 \family typewriter
1075 \family typewriter
1076 HOME
1076 HOME
1077 \family default
1077 \family default
1078 environment variable; if such a variable does not exist, it uses
1078 environment variable; if such a variable does not exist, it uses
1079 \family typewriter
1079 \family typewriter
1080 HOMEDRIVE
1080 HOMEDRIVE
1081 \backslash
1081 \backslash
1082 HOMEPATH
1082 HOMEPATH
1083 \family default
1083 \family default
1084 (these are always defined by Windows).
1084 (these are always defined by Windows).
1085 This typically gives something like
1085 This typically gives something like
1086 \family typewriter
1086 \family typewriter
1087 C:
1087 C:
1088 \backslash
1088 \backslash
1089 Documents and Settings
1089 Documents and Settings
1090 \backslash
1090 \backslash
1091 YourUserName
1091 YourUserName
1092 \family default
1092 \family default
1093 , but your local details may vary.
1093 , but your local details may vary.
1094 In this directory you will find all the files that configure IPython's
1094 In this directory you will find all the files that configure IPython's
1095 defaults, and you can put there your profiles and extensions.
1095 defaults, and you can put there your profiles and extensions.
1096 This directory is automatically added by IPython to
1096 This directory is automatically added by IPython to
1097 \family typewriter
1097 \family typewriter
1098 sys.path
1098 sys.path
1099 \family default
1099 \family default
1100 , so anything you place there can be found by
1100 , so anything you place there can be found by
1101 \family typewriter
1101 \family typewriter
1102 import
1102 import
1103 \family default
1103 \family default
1104 statements.
1104 statements.
1105 \layout Paragraph
1105 \layout Paragraph
1106
1106
1107 Upgrading
1107 Upgrading
1108 \layout Standard
1108 \layout Standard
1109
1109
1110 For an IPython upgrade, you should first uninstall the previous version.
1110 For an IPython upgrade, you should first uninstall the previous version.
1111 This will ensure that all files and directories (such as the documentation)
1111 This will ensure that all files and directories (such as the documentation)
1112 which carry embedded version strings in their names are properly removed.
1112 which carry embedded version strings in their names are properly removed.
1113 \layout Paragraph
1113 \layout Paragraph
1114
1114
1115 Manual installation under Win32
1115 Manual installation under Win32
1116 \layout Standard
1116 \layout Standard
1117
1117
1118 In case the automatic installer does not work for some reason, you can download
1118 In case the automatic installer does not work for some reason, you can download
1119 the
1119 the
1120 \family typewriter
1120 \family typewriter
1121 ipython-XXX.tar.gz
1121 ipython-XXX.tar.gz
1122 \family default
1122 \family default
1123 file, which contains the full IPython source distribution (the popular
1123 file, which contains the full IPython source distribution (the popular
1124 WinZip can read
1124 WinZip can read
1125 \family typewriter
1125 \family typewriter
1126 .tar.gz
1126 .tar.gz
1127 \family default
1127 \family default
1128 files).
1128 files).
1129 After uncompressing the archive, you can install it at a command terminal
1129 After uncompressing the archive, you can install it at a command terminal
1130 just like any other Python module, by using
1130 just like any other Python module, by using
1131 \family typewriter
1131 \family typewriter
1132 `python setup.py install'
1132 `python setup.py install'
1133 \family default
1133 \family default
1134 .
1134 .
1135
1135
1136 \layout Standard
1136 \layout Standard
1137
1137
1138 After the installation, run the supplied
1138 After the installation, run the supplied
1139 \family typewriter
1139 \family typewriter
1140 win32_manual_post_install.py
1140 win32_manual_post_install.py
1141 \family default
1141 \family default
1142 script, which creates the necessary Start Menu shortcuts for you.
1142 script, which creates the necessary Start Menu shortcuts for you.
1143 \layout Subsection
1143 \layout Subsection
1144
1144
1145
1145
1146 \begin_inset LatexCommand \label{sec:upgrade}
1146 \begin_inset LatexCommand \label{sec:upgrade}
1147
1147
1148 \end_inset
1148 \end_inset
1149
1149
1150 Upgrading from a previous version
1150 Upgrading from a previous version
1151 \layout Standard
1151 \layout Standard
1152
1152
1153 If you are upgrading from a previous version of IPython, after doing the
1153 If you are upgrading from a previous version of IPython, after doing the
1154 routine installation described above, you should call IPython with the
1154 routine installation described above, you should call IPython with the
1155
1155
1156 \family typewriter
1156 \family typewriter
1157 -upgrade
1157 -upgrade
1158 \family default
1158 \family default
1159 option the first time you run your new copy.
1159 option the first time you run your new copy.
1160 This will automatically update your configuration directory while preserving
1160 This will automatically update your configuration directory while preserving
1161 copies of your old files.
1161 copies of your old files.
1162 You can then later merge back any personal customizations you may have
1162 You can then later merge back any personal customizations you may have
1163 made into the new files.
1163 made into the new files.
1164 It is a good idea to do this as there may be new options available in the
1164 It is a good idea to do this as there may be new options available in the
1165 new configuration files which you will not have.
1165 new configuration files which you will not have.
1166 \layout Standard
1166 \layout Standard
1167
1167
1168 Under Windows, if you don't know how to call python scripts with arguments
1168 Under Windows, if you don't know how to call python scripts with arguments
1169 from a command line, simply delete the old config directory and IPython
1169 from a command line, simply delete the old config directory and IPython
1170 will make a new one.
1170 will make a new one.
1171 Win2k and WinXP users will find it in
1171 Win2k and WinXP users will find it in
1172 \family typewriter
1172 \family typewriter
1173 C:
1173 C:
1174 \backslash
1174 \backslash
1175 Documents and Settings
1175 Documents and Settings
1176 \backslash
1176 \backslash
1177 YourUserName
1177 YourUserName
1178 \backslash
1178 \backslash
1179 _ipython
1179 _ipython
1180 \family default
1180 \family default
1181 , and Win 9x users under
1181 , and Win 9x users under
1182 \family typewriter
1182 \family typewriter
1183 C:
1183 C:
1184 \backslash
1184 \backslash
1185 Program Files
1185 Program Files
1186 \backslash
1186 \backslash
1187 IPython
1187 IPython
1188 \backslash
1188 \backslash
1189 _ipython.
1189 _ipython.
1190 \layout Section
1190 \layout Section
1191
1191
1192
1192
1193 \begin_inset LatexCommand \label{sec:good_config}
1193 \begin_inset LatexCommand \label{sec:good_config}
1194
1194
1195 \end_inset
1195 \end_inset
1196
1196
1197
1197
1198 \begin_inset OptArg
1198 \begin_inset OptArg
1199 collapsed true
1199 collapsed true
1200
1200
1201 \layout Standard
1201 \layout Standard
1202
1202
1203 Initial configuration
1203 Initial configuration
1204 \begin_inset ERT
1204 \begin_inset ERT
1205 status Collapsed
1205 status Collapsed
1206
1206
1207 \layout Standard
1207 \layout Standard
1208
1208
1209 \backslash
1209 \backslash
1210 ldots
1210 ldots
1211 \end_inset
1211 \end_inset
1212
1212
1213
1213
1214 \end_inset
1214 \end_inset
1215
1215
1216 Initial configuration of your environment
1216 Initial configuration of your environment
1217 \layout Standard
1217 \layout Standard
1218
1218
1219 This section will help you set various things in your environment for your
1219 This section will help you set various things in your environment for your
1220 IPython sessions to be as efficient as possible.
1220 IPython sessions to be as efficient as possible.
1221 All of IPython's configuration information, along with several example
1221 All of IPython's configuration information, along with several example
1222 files, is stored in a directory named by default
1222 files, is stored in a directory named by default
1223 \family typewriter
1223 \family typewriter
1224 $HOME/.ipython
1224 $HOME/.ipython
1225 \family default
1225 \family default
1226 .
1226 .
1227 You can change this by defining the environment variable
1227 You can change this by defining the environment variable
1228 \family typewriter
1228 \family typewriter
1229 IPYTHONDIR
1229 IPYTHONDIR
1230 \family default
1230 \family default
1231 , or at runtime with the command line option
1231 , or at runtime with the command line option
1232 \family typewriter
1232 \family typewriter
1233 -ipythondir
1233 -ipythondir
1234 \family default
1234 \family default
1235 .
1235 .
1236 \layout Standard
1236 \layout Standard
1237
1237
1238 If all goes well, the first time you run IPython it should automatically
1238 If all goes well, the first time you run IPython it should automatically
1239 create a user copy of the config directory for you, based on its builtin
1239 create a user copy of the config directory for you, based on its builtin
1240 defaults.
1240 defaults.
1241 You can look at the files it creates to learn more about configuring the
1241 You can look at the files it creates to learn more about configuring the
1242 system.
1242 system.
1243 The main file you will modify to configure IPython's behavior is called
1243 The main file you will modify to configure IPython's behavior is called
1244
1244
1245 \family typewriter
1245 \family typewriter
1246 ipythonrc
1246 ipythonrc
1247 \family default
1247 \family default
1248 (with a
1248 (with a
1249 \family typewriter
1249 \family typewriter
1250 .ini
1250 .ini
1251 \family default
1251 \family default
1252 extension under Windows), included for reference in Sec.
1252 extension under Windows), included for reference in Sec.
1253
1253
1254 \begin_inset LatexCommand \ref{sec:ipytonrc-sample}
1254 \begin_inset LatexCommand \ref{sec:ipytonrc-sample}
1255
1255
1256 \end_inset
1256 \end_inset
1257
1257
1258 .
1258 .
1259 This file is very commented and has many variables you can change to suit
1259 This file is very commented and has many variables you can change to suit
1260 your taste, you can find more details in Sec.
1260 your taste, you can find more details in Sec.
1261
1261
1262 \begin_inset LatexCommand \ref{sec:customization}
1262 \begin_inset LatexCommand \ref{sec:customization}
1263
1263
1264 \end_inset
1264 \end_inset
1265
1265
1266 .
1266 .
1267 Here we discuss the basic things you will want to make sure things are
1267 Here we discuss the basic things you will want to make sure things are
1268 working properly from the beginning.
1268 working properly from the beginning.
1269 \layout Subsection
1269 \layout Subsection
1270
1270
1271
1271
1272 \begin_inset LatexCommand \label{sec:help-access}
1272 \begin_inset LatexCommand \label{sec:help-access}
1273
1273
1274 \end_inset
1274 \end_inset
1275
1275
1276 Access to the Python help system
1276 Access to the Python help system
1277 \layout Standard
1277 \layout Standard
1278
1278
1279 This is true for Python in general (not just for IPython): you should have
1279 This is true for Python in general (not just for IPython): you should have
1280 an environment variable called
1280 an environment variable called
1281 \family typewriter
1281 \family typewriter
1282 PYTHONDOCS
1282 PYTHONDOCS
1283 \family default
1283 \family default
1284 pointing to the directory where your HTML Python documentation lives.
1284 pointing to the directory where your HTML Python documentation lives.
1285 In my system it's
1285 In my system it's
1286 \family typewriter
1286 \family typewriter
1287 /usr/share/doc/python-docs-2.3.4/html
1287 /usr/share/doc/python-docs-2.3.4/html
1288 \family default
1288 \family default
1289 , check your local details or ask your systems administrator.
1289 , check your local details or ask your systems administrator.
1290
1290
1291 \layout Standard
1291 \layout Standard
1292
1292
1293 This is the directory which holds the HTML version of the Python manuals.
1293 This is the directory which holds the HTML version of the Python manuals.
1294 Unfortunately it seems that different Linux distributions package these
1294 Unfortunately it seems that different Linux distributions package these
1295 files differently, so you may have to look around a bit.
1295 files differently, so you may have to look around a bit.
1296 Below I show the contents of this directory on my system for reference:
1296 Below I show the contents of this directory on my system for reference:
1297 \layout Standard
1297 \layout Standard
1298
1298
1299
1299
1300 \family typewriter
1300 \family typewriter
1301 [html]> ls
1301 [html]> ls
1302 \newline
1302 \newline
1303 about.dat acks.html dist/ ext/ index.html lib/ modindex.html stdabout.dat tut/
1303 about.dat acks.html dist/ ext/ index.html lib/ modindex.html stdabout.dat tut/
1304 about.html api/ doc/ icons/ inst/ mac/ ref/ style.css
1304 about.html api/ doc/ icons/ inst/ mac/ ref/ style.css
1305 \layout Standard
1305 \layout Standard
1306
1306
1307 You should really make sure this variable is correctly set so that Python's
1307 You should really make sure this variable is correctly set so that Python's
1308 pydoc-based help system works.
1308 pydoc-based help system works.
1309 It is a powerful and convenient system with full access to the Python manuals
1309 It is a powerful and convenient system with full access to the Python manuals
1310 and all modules accessible to you.
1310 and all modules accessible to you.
1311 \layout Standard
1311 \layout Standard
1312
1312
1313 Under Windows it seems that pydoc finds the documentation automatically,
1313 Under Windows it seems that pydoc finds the documentation automatically,
1314 so no extra setup appears necessary.
1314 so no extra setup appears necessary.
1315 \layout Subsection
1315 \layout Subsection
1316
1316
1317 Editor
1317 Editor
1318 \layout Standard
1318 \layout Standard
1319
1319
1320 The
1320 The
1321 \family typewriter
1321 \family typewriter
1322 %edit
1322 %edit
1323 \family default
1323 \family default
1324 command (and its alias
1324 command (and its alias
1325 \family typewriter
1325 \family typewriter
1326 %ed
1326 %ed
1327 \family default
1327 \family default
1328 ) will invoke the editor set in your environment as
1328 ) will invoke the editor set in your environment as
1329 \family typewriter
1329 \family typewriter
1330 EDITOR
1330 EDITOR
1331 \family default
1331 \family default
1332 .
1332 .
1333 If this variable is not set, it will default to
1333 If this variable is not set, it will default to
1334 \family typewriter
1334 \family typewriter
1335 vi
1335 vi
1336 \family default
1336 \family default
1337 under Linux/Unix and to
1337 under Linux/Unix and to
1338 \family typewriter
1338 \family typewriter
1339 notepad
1339 notepad
1340 \family default
1340 \family default
1341 under Windows.
1341 under Windows.
1342 You may want to set this variable properly and to a lightweight editor
1342 You may want to set this variable properly and to a lightweight editor
1343 which doesn't take too long to start (that is, something other than a new
1343 which doesn't take too long to start (that is, something other than a new
1344 instance of
1344 instance of
1345 \family typewriter
1345 \family typewriter
1346 Emacs
1346 Emacs
1347 \family default
1347 \family default
1348 ).
1348 ).
1349 This way you can edit multi-line code quickly and with the power of a real
1349 This way you can edit multi-line code quickly and with the power of a real
1350 editor right inside IPython.
1350 editor right inside IPython.
1351
1351
1352 \layout Standard
1352 \layout Standard
1353
1353
1354 If you are a dedicated
1354 If you are a dedicated
1355 \family typewriter
1355 \family typewriter
1356 Emacs
1356 Emacs
1357 \family default
1357 \family default
1358 user, you should set up the
1358 user, you should set up the
1359 \family typewriter
1359 \family typewriter
1360 Emacs
1360 Emacs
1361 \family default
1361 \family default
1362 server so that new requests are handled by the original process.
1362 server so that new requests are handled by the original process.
1363 This means that almost no time is spent in handling the request (assuming
1363 This means that almost no time is spent in handling the request (assuming
1364 an
1364 an
1365 \family typewriter
1365 \family typewriter
1366 Emacs
1366 Emacs
1367 \family default
1367 \family default
1368 process is already running).
1368 process is already running).
1369 For this to work, you need to set your
1369 For this to work, you need to set your
1370 \family typewriter
1370 \family typewriter
1371 EDITOR
1371 EDITOR
1372 \family default
1372 \family default
1373 environment variable to
1373 environment variable to
1374 \family typewriter
1374 \family typewriter
1375 'emacsclient'
1375 'emacsclient'
1376 \family default
1376 \family default
1377 .
1377 .
1378
1378
1379 \family typewriter
1379 \family typewriter
1380
1380
1381 \family default
1381 \family default
1382 The code below, supplied by Francois Pinard, can then be used in your
1382 The code below, supplied by Francois Pinard, can then be used in your
1383 \family typewriter
1383 \family typewriter
1384 .emacs
1384 .emacs
1385 \family default
1385 \family default
1386 file to enable the server:
1386 file to enable the server:
1387 \layout Standard
1387 \layout Standard
1388
1388
1389
1389
1390 \family typewriter
1390 \family typewriter
1391 (defvar server-buffer-clients)
1391 (defvar server-buffer-clients)
1392 \newline
1392 \newline
1393 (when (and (fboundp 'server-start) (string-equal (getenv "TERM") 'xterm))
1393 (when (and (fboundp 'server-start) (string-equal (getenv "TERM") 'xterm))
1394 \newline
1394 \newline
1395
1395
1396 \begin_inset ERT
1396 \begin_inset ERT
1397 status Collapsed
1397 status Collapsed
1398
1398
1399 \layout Standard
1399 \layout Standard
1400
1400
1401 \backslash
1401 \backslash
1402 hspace*{0mm}
1402 hspace*{0mm}
1403 \end_inset
1403 \end_inset
1404
1404
1405 \SpecialChar ~
1405 \SpecialChar ~
1406 \SpecialChar ~
1406 \SpecialChar ~
1407 (server-start)
1407 (server-start)
1408 \newline
1408 \newline
1409
1409
1410 \begin_inset ERT
1410 \begin_inset ERT
1411 status Collapsed
1411 status Collapsed
1412
1412
1413 \layout Standard
1413 \layout Standard
1414
1414
1415 \backslash
1415 \backslash
1416 hspace*{0mm}
1416 hspace*{0mm}
1417 \end_inset
1417 \end_inset
1418
1418
1419 \SpecialChar ~
1419 \SpecialChar ~
1420 \SpecialChar ~
1420 \SpecialChar ~
1421 (defun fp-kill-server-with-buffer-routine ()
1421 (defun fp-kill-server-with-buffer-routine ()
1422 \newline
1422 \newline
1423
1423
1424 \begin_inset ERT
1424 \begin_inset ERT
1425 status Collapsed
1425 status Collapsed
1426
1426
1427 \layout Standard
1427 \layout Standard
1428
1428
1429 \backslash
1429 \backslash
1430 hspace*{0mm}
1430 hspace*{0mm}
1431 \end_inset
1431 \end_inset
1432
1432
1433 \SpecialChar ~
1433 \SpecialChar ~
1434 \SpecialChar ~
1434 \SpecialChar ~
1435 \SpecialChar ~
1435 \SpecialChar ~
1436 \SpecialChar ~
1436 \SpecialChar ~
1437 (and server-buffer-clients (server-done)))
1437 (and server-buffer-clients (server-done)))
1438 \newline
1438 \newline
1439
1439
1440 \begin_inset ERT
1440 \begin_inset ERT
1441 status Collapsed
1441 status Collapsed
1442
1442
1443 \layout Standard
1443 \layout Standard
1444
1444
1445 \backslash
1445 \backslash
1446 hspace*{0mm}
1446 hspace*{0mm}
1447 \end_inset
1447 \end_inset
1448
1448
1449 \SpecialChar ~
1449 \SpecialChar ~
1450 \SpecialChar ~
1450 \SpecialChar ~
1451 (add-hook 'kill-buffer-hook 'fp-kill-server-with-buffer-routine))
1451 (add-hook 'kill-buffer-hook 'fp-kill-server-with-buffer-routine))
1452 \layout Standard
1452 \layout Standard
1453
1453
1454 You can also set the value of this editor via the commmand-line option '-
1454 You can also set the value of this editor via the commmand-line option '-
1455 \family typewriter
1455 \family typewriter
1456 editor'
1456 editor'
1457 \family default
1457 \family default
1458 or in your
1458 or in your
1459 \family typewriter
1459 \family typewriter
1460 ipythonrc
1460 ipythonrc
1461 \family default
1461 \family default
1462 file.
1462 file.
1463 This is useful if you wish to use specifically for IPython an editor different
1463 This is useful if you wish to use specifically for IPython an editor different
1464 from your typical default (and for Windows users who tend to use fewer
1464 from your typical default (and for Windows users who tend to use fewer
1465 environment variables).
1465 environment variables).
1466 \layout Subsection
1466 \layout Subsection
1467
1467
1468 Color
1468 Color
1469 \layout Standard
1469 \layout Standard
1470
1470
1471 The default IPython configuration has most bells and whistles turned on
1471 The default IPython configuration has most bells and whistles turned on
1472 (they're pretty safe).
1472 (they're pretty safe).
1473 But there's one that
1473 But there's one that
1474 \emph on
1474 \emph on
1475 may
1475 may
1476 \emph default
1476 \emph default
1477 cause problems on some systems: the use of color on screen for displaying
1477 cause problems on some systems: the use of color on screen for displaying
1478 information.
1478 information.
1479 This is very useful, since IPython can show prompts and exception tracebacks
1479 This is very useful, since IPython can show prompts and exception tracebacks
1480 with various colors, display syntax-highlighted source code, and in general
1480 with various colors, display syntax-highlighted source code, and in general
1481 make it easier to visually parse information.
1481 make it easier to visually parse information.
1482 \layout Standard
1482 \layout Standard
1483
1483
1484 The following terminals seem to handle the color sequences fine:
1484 The following terminals seem to handle the color sequences fine:
1485 \layout Itemize
1485 \layout Itemize
1486
1486
1487 Linux main text console, KDE Konsole, Gnome Terminal, E-term, rxvt, xterm.
1487 Linux main text console, KDE Konsole, Gnome Terminal, E-term, rxvt, xterm.
1488 \layout Itemize
1488 \layout Itemize
1489
1489
1490 CDE terminal (tested under Solaris).
1490 CDE terminal (tested under Solaris).
1491 This one boldfaces light colors.
1491 This one boldfaces light colors.
1492 \layout Itemize
1492 \layout Itemize
1493
1493
1494 (X)Emacs buffers.
1494 (X)Emacs buffers.
1495 See sec.
1495 See sec.
1496 \begin_inset LatexCommand \ref{sec:emacs}
1496 \begin_inset LatexCommand \ref{sec:emacs}
1497
1497
1498 \end_inset
1498 \end_inset
1499
1499
1500 for more details on using IPython with (X)Emacs.
1500 for more details on using IPython with (X)Emacs.
1501 \layout Itemize
1501 \layout Itemize
1502
1502
1503 A Windows (XP/2k) command prompt
1503 A Windows (XP/2k) command prompt
1504 \emph on
1504 \emph on
1505 with Gary Bishop's support extensions
1505 with Gary Bishop's support extensions
1506 \emph default
1506 \emph default
1507 .
1507 .
1508 Gary's extensions are discussed in Sec.\SpecialChar ~
1508 Gary's extensions are discussed in Sec.\SpecialChar ~
1509
1509
1510 \begin_inset LatexCommand \ref{sub:Under-Windows}
1510 \begin_inset LatexCommand \ref{sub:Under-Windows}
1511
1511
1512 \end_inset
1512 \end_inset
1513
1513
1514 .
1514 .
1515 \layout Itemize
1515 \layout Itemize
1516
1516
1517 A Windows (XP/2k) CygWin shell.
1517 A Windows (XP/2k) CygWin shell.
1518 Although some users have reported problems; it is not clear whether there
1518 Although some users have reported problems; it is not clear whether there
1519 is an issue for everyone or only under specific configurations.
1519 is an issue for everyone or only under specific configurations.
1520 If you have full color support under cygwin, please post to the IPython
1520 If you have full color support under cygwin, please post to the IPython
1521 mailing list so this issue can be resolved for all users.
1521 mailing list so this issue can be resolved for all users.
1522 \layout Standard
1522 \layout Standard
1523
1523
1524 These have shown problems:
1524 These have shown problems:
1525 \layout Itemize
1525 \layout Itemize
1526
1526
1527 Windows command prompt in WinXP/2k logged into a Linux machine via telnet
1527 Windows command prompt in WinXP/2k logged into a Linux machine via telnet
1528 or ssh.
1528 or ssh.
1529 \layout Itemize
1529 \layout Itemize
1530
1530
1531 Windows native command prompt in WinXP/2k,
1531 Windows native command prompt in WinXP/2k,
1532 \emph on
1532 \emph on
1533 without
1533 without
1534 \emph default
1534 \emph default
1535 Gary Bishop's extensions.
1535 Gary Bishop's extensions.
1536 Once Gary's readline library is installed, the normal WinXP/2k command
1536 Once Gary's readline library is installed, the normal WinXP/2k command
1537 prompt works perfectly.
1537 prompt works perfectly.
1538 \layout Standard
1538 \layout Standard
1539
1539
1540 Currently the following color schemes are available:
1540 Currently the following color schemes are available:
1541 \layout Itemize
1541 \layout Itemize
1542
1542
1543
1543
1544 \family typewriter
1544 \family typewriter
1545 NoColor
1545 NoColor
1546 \family default
1546 \family default
1547 : uses no color escapes at all (all escapes are empty
1547 : uses no color escapes at all (all escapes are empty
1548 \begin_inset Quotes eld
1548 \begin_inset Quotes eld
1549 \end_inset
1549 \end_inset
1550
1550
1551
1551
1552 \begin_inset Quotes eld
1552 \begin_inset Quotes eld
1553 \end_inset
1553 \end_inset
1554
1554
1555 strings).
1555 strings).
1556 This 'scheme' is thus fully safe to use in any terminal.
1556 This 'scheme' is thus fully safe to use in any terminal.
1557 \layout Itemize
1557 \layout Itemize
1558
1558
1559
1559
1560 \family typewriter
1560 \family typewriter
1561 Linux
1561 Linux
1562 \family default
1562 \family default
1563 : works well in Linux console type environments: dark background with light
1563 : works well in Linux console type environments: dark background with light
1564 fonts.
1564 fonts.
1565 It uses bright colors for information, so it is difficult to read if you
1565 It uses bright colors for information, so it is difficult to read if you
1566 have a light colored background.
1566 have a light colored background.
1567 \layout Itemize
1567 \layout Itemize
1568
1568
1569
1569
1570 \family typewriter
1570 \family typewriter
1571 LightBG
1571 LightBG
1572 \family default
1572 \family default
1573 : the basic colors are similar to those in the
1573 : the basic colors are similar to those in the
1574 \family typewriter
1574 \family typewriter
1575 Linux
1575 Linux
1576 \family default
1576 \family default
1577 scheme but darker.
1577 scheme but darker.
1578 It is easy to read in terminals with light backgrounds.
1578 It is easy to read in terminals with light backgrounds.
1579 \layout Standard
1579 \layout Standard
1580
1580
1581 IPython uses colors for two main groups of things: prompts and tracebacks
1581 IPython uses colors for two main groups of things: prompts and tracebacks
1582 which are directly printed to the terminal, and the object introspection
1582 which are directly printed to the terminal, and the object introspection
1583 system which passes large sets of data through a pager.
1583 system which passes large sets of data through a pager.
1584 \layout Subsubsection
1584 \layout Subsubsection
1585
1585
1586 Input/Output prompts and exception tracebacks
1586 Input/Output prompts and exception tracebacks
1587 \layout Standard
1587 \layout Standard
1588
1588
1589 You can test whether the colored prompts and tracebacks work on your system
1589 You can test whether the colored prompts and tracebacks work on your system
1590 interactively by typing
1590 interactively by typing
1591 \family typewriter
1591 \family typewriter
1592 '%colors Linux'
1592 '%colors Linux'
1593 \family default
1593 \family default
1594 at the prompt (use '
1594 at the prompt (use '
1595 \family typewriter
1595 \family typewriter
1596 %colors LightBG'
1596 %colors LightBG'
1597 \family default
1597 \family default
1598 if your terminal has a light background).
1598 if your terminal has a light background).
1599 If the input prompt shows garbage like:
1599 If the input prompt shows garbage like:
1600 \newline
1600 \newline
1601
1601
1602 \family typewriter
1602 \family typewriter
1603 [0;32mIn [[1;32m1[0;32m]: [0;00m
1603 [0;32mIn [[1;32m1[0;32m]: [0;00m
1604 \family default
1604 \family default
1605
1605
1606 \newline
1606 \newline
1607 instead of (in color) something like:
1607 instead of (in color) something like:
1608 \newline
1608 \newline
1609
1609
1610 \family typewriter
1610 \family typewriter
1611 In [1]:
1611 In [1]:
1612 \family default
1612 \family default
1613
1613
1614 \newline
1614 \newline
1615 this means that your terminal doesn't properly handle color escape sequences.
1615 this means that your terminal doesn't properly handle color escape sequences.
1616 You can go to a 'no color' mode by typing '
1616 You can go to a 'no color' mode by typing '
1617 \family typewriter
1617 \family typewriter
1618 %colors NoColor
1618 %colors NoColor
1619 \family default
1619 \family default
1620 '.
1620 '.
1621
1621
1622 \layout Standard
1622 \layout Standard
1623
1623
1624 You can try using a different terminal emulator program.
1624 You can try using a different terminal emulator program.
1625 To permanently set your color preferences, edit the file
1625 To permanently set your color preferences, edit the file
1626 \family typewriter
1626 \family typewriter
1627 $HOME/.ipython/ipythonrc
1627 $HOME/.ipython/ipythonrc
1628 \family default
1628 \family default
1629 and set the
1629 and set the
1630 \family typewriter
1630 \family typewriter
1631 colors
1631 colors
1632 \family default
1632 \family default
1633 option to the desired value.
1633 option to the desired value.
1634 \layout Subsubsection
1634 \layout Subsubsection
1635
1635
1636 Object details (types, docstrings, source code, etc.)
1636 Object details (types, docstrings, source code, etc.)
1637 \layout Standard
1637 \layout Standard
1638
1638
1639 IPython has a set of special functions for studying the objects you are
1639 IPython has a set of special functions for studying the objects you are
1640 working with, discussed in detail in Sec.
1640 working with, discussed in detail in Sec.
1641
1641
1642 \begin_inset LatexCommand \ref{sec:dyn-object-info}
1642 \begin_inset LatexCommand \ref{sec:dyn-object-info}
1643
1643
1644 \end_inset
1644 \end_inset
1645
1645
1646 .
1646 .
1647 But this system relies on passing information which is longer than your
1647 But this system relies on passing information which is longer than your
1648 screen through a data pager, such as the common Unix
1648 screen through a data pager, such as the common Unix
1649 \family typewriter
1649 \family typewriter
1650 less
1650 less
1651 \family default
1651 \family default
1652 and
1652 and
1653 \family typewriter
1653 \family typewriter
1654 more
1654 more
1655 \family default
1655 \family default
1656 programs.
1656 programs.
1657 In order to be able to see this information in color, your pager needs
1657 In order to be able to see this information in color, your pager needs
1658 to be properly configured.
1658 to be properly configured.
1659 I strongly recommend using
1659 I strongly recommend using
1660 \family typewriter
1660 \family typewriter
1661 less
1661 less
1662 \family default
1662 \family default
1663 instead of
1663 instead of
1664 \family typewriter
1664 \family typewriter
1665 more
1665 more
1666 \family default
1666 \family default
1667 , as it seems that
1667 , as it seems that
1668 \family typewriter
1668 \family typewriter
1669 more
1669 more
1670 \family default
1670 \family default
1671 simply can not understand colored text correctly.
1671 simply can not understand colored text correctly.
1672 \layout Standard
1672 \layout Standard
1673
1673
1674 In order to configure
1674 In order to configure
1675 \family typewriter
1675 \family typewriter
1676 less
1676 less
1677 \family default
1677 \family default
1678 as your default pager, do the following:
1678 as your default pager, do the following:
1679 \layout Enumerate
1679 \layout Enumerate
1680
1680
1681 Set the environment
1681 Set the environment
1682 \family typewriter
1682 \family typewriter
1683 PAGER
1683 PAGER
1684 \family default
1684 \family default
1685 variable to
1685 variable to
1686 \family typewriter
1686 \family typewriter
1687 less
1687 less
1688 \family default
1688 \family default
1689 .
1689 .
1690 \layout Enumerate
1690 \layout Enumerate
1691
1691
1692 Set the environment
1692 Set the environment
1693 \family typewriter
1693 \family typewriter
1694 LESS
1694 LESS
1695 \family default
1695 \family default
1696 variable to
1696 variable to
1697 \family typewriter
1697 \family typewriter
1698 -r
1698 -r
1699 \family default
1699 \family default
1700 (plus any other options you always want to pass to
1700 (plus any other options you always want to pass to
1701 \family typewriter
1701 \family typewriter
1702 less
1702 less
1703 \family default
1703 \family default
1704 by default).
1704 by default).
1705 This tells
1705 This tells
1706 \family typewriter
1706 \family typewriter
1707 less
1707 less
1708 \family default
1708 \family default
1709 to properly interpret control sequences, which is how color information
1709 to properly interpret control sequences, which is how color information
1710 is given to your terminal.
1710 is given to your terminal.
1711 \layout Standard
1711 \layout Standard
1712
1712
1713 For the
1713 For the
1714 \family typewriter
1714 \family typewriter
1715 csh
1715 csh
1716 \family default
1716 \family default
1717 or
1717 or
1718 \family typewriter
1718 \family typewriter
1719 tcsh
1719 tcsh
1720 \family default
1720 \family default
1721 shells, add to your
1721 shells, add to your
1722 \family typewriter
1722 \family typewriter
1723 ~/.cshrc
1723 ~/.cshrc
1724 \family default
1724 \family default
1725 file the lines:
1725 file the lines:
1726 \layout Standard
1726 \layout Standard
1727
1727
1728
1728
1729 \family typewriter
1729 \family typewriter
1730 setenv PAGER less
1730 setenv PAGER less
1731 \newline
1731 \newline
1732 setenv LESS -r
1732 setenv LESS -r
1733 \layout Standard
1733 \layout Standard
1734
1734
1735 There is similar syntax for other Unix shells, look at your system documentation
1735 There is similar syntax for other Unix shells, look at your system documentation
1736 for details.
1736 for details.
1737 \layout Standard
1737 \layout Standard
1738
1738
1739 If you are on a system which lacks proper data pagers (such as Windows),
1739 If you are on a system which lacks proper data pagers (such as Windows),
1740 IPython will use a very limited builtin pager.
1740 IPython will use a very limited builtin pager.
1741 \layout Subsection
1741 \layout Subsection
1742
1742
1743
1743
1744 \begin_inset LatexCommand \label{sec:emacs}
1744 \begin_inset LatexCommand \label{sec:emacs}
1745
1745
1746 \end_inset
1746 \end_inset
1747
1747
1748 (X)Emacs configuration
1748 (X)Emacs configuration
1749 \layout Standard
1749 \layout Standard
1750
1750
1751 Thanks to the work of Alexander Schmolck and Prabhu Ramachandran, currently
1751 Thanks to the work of Alexander Schmolck and Prabhu Ramachandran, currently
1752 (X)Emacs and IPython get along very well.
1752 (X)Emacs and IPython get along very well.
1753
1753
1754 \layout Standard
1754 \layout Standard
1755
1755
1756
1756
1757 \series bold
1757 \series bold
1758 Important note:
1758 Important note:
1759 \series default
1759 \series default
1760 You will need to use a recent enough version of
1760 You will need to use a recent enough version of
1761 \family typewriter
1761 \family typewriter
1762 python-mode.el
1762 python-mode.el
1763 \family default
1763 \family default
1764 , along with the file
1764 , along with the file
1765 \family typewriter
1765 \family typewriter
1766 ipython.el
1766 ipython.el
1767 \family default
1767 \family default
1768 .
1768 .
1769 You can check that the version you have of
1769 You can check that the version you have of
1770 \family typewriter
1770 \family typewriter
1771 python-mode.el
1771 python-mode.el
1772 \family default
1772 \family default
1773 is new enough by either looking at the revision number in the file itself,
1773 is new enough by either looking at the revision number in the file itself,
1774 or asking for it in (X)Emacs via
1774 or asking for it in (X)Emacs via
1775 \family typewriter
1775 \family typewriter
1776 M-x py-version
1776 M-x py-version
1777 \family default
1777 \family default
1778 .
1778 .
1779 Versions 4.68 and newer contain the necessary fixes for proper IPython support.
1779 Versions 4.68 and newer contain the necessary fixes for proper IPython support.
1780 \layout Standard
1780 \layout Standard
1781
1781
1782 The file
1782 The file
1783 \family typewriter
1783 \family typewriter
1784 ipython.el
1784 ipython.el
1785 \family default
1785 \family default
1786 is included with the IPython distribution, in the documentation directory
1786 is included with the IPython distribution, in the documentation directory
1787 (where this manual resides in PDF and HTML formats).
1787 (where this manual resides in PDF and HTML formats).
1788 \layout Standard
1788 \layout Standard
1789
1789
1790 Once you put these files in your Emacs path, all you need in your
1790 Once you put these files in your Emacs path, all you need in your
1791 \family typewriter
1791 \family typewriter
1792 .emacs
1792 .emacs
1793 \family default
1793 \family default
1794 file is:
1794 file is:
1795 \layout Standard
1795 \layout Standard
1796
1796
1797
1797
1798 \family typewriter
1798 \family typewriter
1799 (require 'ipython)
1799 (require 'ipython)
1800 \layout Standard
1800 \layout Standard
1801
1801
1802 This should give you full support for executing code snippets via IPython,
1802 This should give you full support for executing code snippets via IPython,
1803 opening IPython as your Python shell via
1803 opening IPython as your Python shell via
1804 \family typewriter
1804 \family typewriter
1805 C-c\SpecialChar ~
1805 C-c\SpecialChar ~
1806 !
1806 !
1807 \family default
1807 \family default
1808 , etc.
1808 , etc.
1809
1809
1810 \layout Subsubsection*
1810 \layout Subsubsection*
1811
1811
1812 Notes
1812 Notes
1813 \layout Itemize
1813 \layout Itemize
1814
1814
1815 There is one caveat you should be aware of: you must start the IPython shell
1815 There is one caveat you should be aware of: you must start the IPython shell
1816
1816
1817 \emph on
1817 \emph on
1818 before
1818 before
1819 \emph default
1819 \emph default
1820 attempting to execute any code regions via
1820 attempting to execute any code regions via
1821 \family typewriter
1821 \family typewriter
1822 C-c\SpecialChar ~
1822 C-c\SpecialChar ~
1823 |
1823 |
1824 \family default
1824 \family default
1825 .
1825 .
1826 Simply type
1826 Simply type
1827 \family typewriter
1827 \family typewriter
1828 C-c\SpecialChar ~
1828 C-c\SpecialChar ~
1829 !
1829 !
1830 \family default
1830 \family default
1831 to start IPython before passing any code regions to the interpreter, and
1831 to start IPython before passing any code regions to the interpreter, and
1832 you shouldn't experience any problems.
1832 you shouldn't experience any problems.
1833 \newline
1833 \newline
1834 This is due to a bug in Python itself, which has been fixed for Python 2.3,
1834 This is due to a bug in Python itself, which has been fixed for Python 2.3,
1835 but exists as of Python 2.2.2 (reported as SF bug [ 737947 ]).
1835 but exists as of Python 2.2.2 (reported as SF bug [ 737947 ]).
1836 \layout Itemize
1836 \layout Itemize
1837
1837
1838 The (X)Emacs support is maintained by Alexander Schmolck, so all comments/reques
1838 The (X)Emacs support is maintained by Alexander Schmolck, so all comments/reques
1839 ts should be directed to him through the IPython mailing lists.
1839 ts should be directed to him through the IPython mailing lists.
1840
1840
1841 \layout Itemize
1841 \layout Itemize
1842
1842
1843 This code is still somewhat experimental so it's a bit rough around the
1843 This code is still somewhat experimental so it's a bit rough around the
1844 edges (although in practice, it works quite well).
1844 edges (although in practice, it works quite well).
1845 \layout Itemize
1845 \layout Itemize
1846
1846
1847 Be aware that if you customize
1847 Be aware that if you customize
1848 \family typewriter
1848 \family typewriter
1849 py-python-command
1849 py-python-command
1850 \family default
1850 \family default
1851 previously, this value will override what
1851 previously, this value will override what
1852 \family typewriter
1852 \family typewriter
1853 ipython.el
1853 ipython.el
1854 \family default
1854 \family default
1855 does (because loading the customization variables comes later).
1855 does (because loading the customization variables comes later).
1856 \layout Section
1856 \layout Section
1857
1857
1858
1858
1859 \begin_inset LatexCommand \label{sec:quick_tips}
1859 \begin_inset LatexCommand \label{sec:quick_tips}
1860
1860
1861 \end_inset
1861 \end_inset
1862
1862
1863 Quick tips
1863 Quick tips
1864 \layout Standard
1864 \layout Standard
1865
1865
1866 IPython can be used as an improved replacement for the Python prompt, and
1866 IPython can be used as an improved replacement for the Python prompt, and
1867 for that you don't really need to read any more of this manual.
1867 for that you don't really need to read any more of this manual.
1868 But in this section we'll try to summarize a few tips on how to make the
1868 But in this section we'll try to summarize a few tips on how to make the
1869 most effective use of it for everyday Python development, highlighting
1869 most effective use of it for everyday Python development, highlighting
1870 things you might miss in the rest of the manual (which is getting long).
1870 things you might miss in the rest of the manual (which is getting long).
1871 We'll give references to parts in the manual which provide more detail
1871 We'll give references to parts in the manual which provide more detail
1872 when appropriate.
1872 when appropriate.
1873 \layout Standard
1873 \layout Standard
1874
1874
1875 The following article by Jeremy Jones provides an introductory tutorial
1875 The following article by Jeremy Jones provides an introductory tutorial
1876 about IPython:
1876 about IPython:
1877 \newline
1877 \newline
1878
1878
1879 \begin_inset LatexCommand \htmlurl{http://www.onlamp.com/pub/a/python/2005/01/27/ipython.html}
1879 \begin_inset LatexCommand \htmlurl{http://www.onlamp.com/pub/a/python/2005/01/27/ipython.html}
1880
1880
1881 \end_inset
1881 \end_inset
1882
1882
1883
1883
1884 \layout Itemize
1884 \layout Itemize
1885
1885
1886 The TAB key.
1886 The TAB key.
1887 TAB-completion, especially for attributes, is a convenient way to explore
1887 TAB-completion, especially for attributes, is a convenient way to explore
1888 the structure of any object you're dealing with.
1888 the structure of any object you're dealing with.
1889 Simply type
1889 Simply type
1890 \family typewriter
1890 \family typewriter
1891 object_name.<TAB>
1891 object_name.<TAB>
1892 \family default
1892 \family default
1893 and a list of the object's attributes will be printed (see sec.
1893 and a list of the object's attributes will be printed (see sec.
1894
1894
1895 \begin_inset LatexCommand \ref{sec:readline}
1895 \begin_inset LatexCommand \ref{sec:readline}
1896
1896
1897 \end_inset
1897 \end_inset
1898
1898
1899 for more).
1899 for more).
1900 Tab completion also works on file and directory names, which combined with
1900 Tab completion also works on file and directory names, which combined with
1901 IPython's alias system allows you to do from within IPython many of the
1901 IPython's alias system allows you to do from within IPython many of the
1902 things you normally would need the system shell for.
1902 things you normally would need the system shell for.
1903
1903
1904 \layout Itemize
1904 \layout Itemize
1905
1905
1906 Explore your objects.
1906 Explore your objects.
1907 Typing
1907 Typing
1908 \family typewriter
1908 \family typewriter
1909 object_name?
1909 object_name?
1910 \family default
1910 \family default
1911 will print all sorts of details about any object, including docstrings,
1911 will print all sorts of details about any object, including docstrings,
1912 function definition lines (for call arguments) and constructor details
1912 function definition lines (for call arguments) and constructor details
1913 for classes.
1913 for classes.
1914 The magic commands
1914 The magic commands
1915 \family typewriter
1915 \family typewriter
1916 %pdoc
1916 %pdoc
1917 \family default
1917 \family default
1918 ,
1918 ,
1919 \family typewriter
1919 \family typewriter
1920 %pdef
1920 %pdef
1921 \family default
1921 \family default
1922 ,
1922 ,
1923 \family typewriter
1923 \family typewriter
1924 %psource
1924 %psource
1925 \family default
1925 \family default
1926 and
1926 and
1927 \family typewriter
1927 \family typewriter
1928 %pfile
1928 %pfile
1929 \family default
1929 \family default
1930 will respectively print the docstring, function definition line, full source
1930 will respectively print the docstring, function definition line, full source
1931 code and the complete file for any object (when they can be found).
1931 code and the complete file for any object (when they can be found).
1932 If automagic is on (it is by default), you don't need to type the '
1932 If automagic is on (it is by default), you don't need to type the '
1933 \family typewriter
1933 \family typewriter
1934 %
1934 %
1935 \family default
1935 \family default
1936 ' explicitly.
1936 ' explicitly.
1937 See sec.
1937 See sec.
1938
1938
1939 \begin_inset LatexCommand \ref{sec:dyn-object-info}
1939 \begin_inset LatexCommand \ref{sec:dyn-object-info}
1940
1940
1941 \end_inset
1941 \end_inset
1942
1942
1943 for more.
1943 for more.
1944 \layout Itemize
1944 \layout Itemize
1945
1945
1946 The
1946 The
1947 \family typewriter
1947 \family typewriter
1948 %run
1948 %run
1949 \family default
1949 \family default
1950 magic command allows you to run any python script and load all of its data
1950 magic command allows you to run any python script and load all of its data
1951 directly into the interactive namespace.
1951 directly into the interactive namespace.
1952 Since the file is re-read from disk each time, changes you make to it are
1952 Since the file is re-read from disk each time, changes you make to it are
1953 reflected immediately (in contrast to the behavior of
1953 reflected immediately (in contrast to the behavior of
1954 \family typewriter
1954 \family typewriter
1955 import
1955 import
1956 \family default
1956 \family default
1957 ).
1957 ).
1958 I rarely use
1958 I rarely use
1959 \family typewriter
1959 \family typewriter
1960 import
1960 import
1961 \family default
1961 \family default
1962 for code I am testing, relying on
1962 for code I am testing, relying on
1963 \family typewriter
1963 \family typewriter
1964 %run
1964 %run
1965 \family default
1965 \family default
1966 instead.
1966 instead.
1967 See sec.
1967 See sec.
1968
1968
1969 \begin_inset LatexCommand \ref{sec:magic}
1969 \begin_inset LatexCommand \ref{sec:magic}
1970
1970
1971 \end_inset
1971 \end_inset
1972
1972
1973 for more on this and other magic commands, or type the name of any magic
1973 for more on this and other magic commands, or type the name of any magic
1974 command and ? to get details on it.
1974 command and ? to get details on it.
1975 See also sec.
1975 See also sec.
1976
1976
1977 \begin_inset LatexCommand \ref{sec:dreload}
1977 \begin_inset LatexCommand \ref{sec:dreload}
1978
1978
1979 \end_inset
1979 \end_inset
1980
1980
1981 for a recursive reload command.
1981 for a recursive reload command.
1982 \newline
1982 \newline
1983
1983
1984 \family typewriter
1984 \family typewriter
1985 %run
1985 %run
1986 \family default
1986 \family default
1987 also has special flags for timing the execution of your scripts (
1987 also has special flags for timing the execution of your scripts (
1988 \family typewriter
1988 \family typewriter
1989 -t
1989 -t
1990 \family default
1990 \family default
1991 ) and for executing them under the control of either Python's
1991 ) and for executing them under the control of either Python's
1992 \family typewriter
1992 \family typewriter
1993 pdb
1993 pdb
1994 \family default
1994 \family default
1995 debugger (
1995 debugger (
1996 \family typewriter
1996 \family typewriter
1997 -d
1997 -d
1998 \family default
1998 \family default
1999 ) or profiler (
1999 ) or profiler (
2000 \family typewriter
2000 \family typewriter
2001 -p
2001 -p
2002 \family default
2002 \family default
2003 ).
2003 ).
2004 With all of these,
2004 With all of these,
2005 \family typewriter
2005 \family typewriter
2006 %run
2006 %run
2007 \family default
2007 \family default
2008 can be used as the main tool for efficient interactive development of code
2008 can be used as the main tool for efficient interactive development of code
2009 which you write in your editor of choice.
2009 which you write in your editor of choice.
2010 \layout Itemize
2010 \layout Itemize
2011
2011
2012 Use the Python debugger,
2012 Use the Python debugger,
2013 \family typewriter
2013 \family typewriter
2014 pdb
2014 pdb
2015 \family default
2015 \family default
2016
2016
2017 \begin_inset Foot
2017 \begin_inset Foot
2018 collapsed true
2018 collapsed true
2019
2019
2020 \layout Standard
2020 \layout Standard
2021
2021
2022 Thanks to Christian Hart and Matthew Arnison for the suggestions leading
2022 Thanks to Christian Hart and Matthew Arnison for the suggestions leading
2023 to IPython's improved debugger and profiler support.
2023 to IPython's improved debugger and profiler support.
2024 \end_inset
2024 \end_inset
2025
2025
2026 .
2026 .
2027 The
2027 The
2028 \family typewriter
2028 \family typewriter
2029 %pdb
2029 %pdb
2030 \family default
2030 \family default
2031 command allows you to toggle on and off the automatic invocation of the
2031 command allows you to toggle on and off the automatic invocation of the
2032 pdb debugger at any uncaught exception.
2032 pdb debugger at any uncaught exception.
2033 The advantage of this is that pdb starts
2033 The advantage of this is that pdb starts
2034 \emph on
2034 \emph on
2035 inside
2035 inside
2036 \emph default
2036 \emph default
2037 the function where the exception occurred, with all data still available.
2037 the function where the exception occurred, with all data still available.
2038 You can print variables, see code, execute statements and even walk up
2038 You can print variables, see code, execute statements and even walk up
2039 and down the call stack to track down the true source of the problem (which
2039 and down the call stack to track down the true source of the problem (which
2040 often is many layers in the stack above where the exception gets triggered).
2040 often is many layers in the stack above where the exception gets triggered).
2041 \newline
2041 \newline
2042 Running programs with
2042 Running programs with
2043 \family typewriter
2043 \family typewriter
2044 %run
2044 %run
2045 \family default
2045 \family default
2046 and pdb active can be an efficient to develop and debug code, in many cases
2046 and pdb active can be an efficient to develop and debug code, in many cases
2047 eliminating the need for
2047 eliminating the need for
2048 \family typewriter
2048 \family typewriter
2049 print
2049 print
2050 \family default
2050 \family default
2051 statements or external debugging tools.
2051 statements or external debugging tools.
2052 I often simply put a
2052 I often simply put a
2053 \family typewriter
2053 \family typewriter
2054 1/0
2054 1/0
2055 \family default
2055 \family default
2056 in a place where I want to take a look so that pdb gets called, quickly
2056 in a place where I want to take a look so that pdb gets called, quickly
2057 view whatever variables I need to or test various pieces of code and then
2057 view whatever variables I need to or test various pieces of code and then
2058 remove the
2058 remove the
2059 \family typewriter
2059 \family typewriter
2060 1/0
2060 1/0
2061 \family default
2061 \family default
2062 .
2062 .
2063 \newline
2063 \newline
2064 Note also that `
2064 Note also that `
2065 \family typewriter
2065 \family typewriter
2066 %run -d
2066 %run -d
2067 \family default
2067 \family default
2068 ' activates
2068 ' activates
2069 \family typewriter
2069 \family typewriter
2070 pdb
2070 pdb
2071 \family default
2071 \family default
2072 and automatically sets initial breakpoints for you to step through your
2072 and automatically sets initial breakpoints for you to step through your
2073 code, watch variables, etc.
2073 code, watch variables, etc.
2074 See Sec.\SpecialChar ~
2074 See Sec.\SpecialChar ~
2075
2075
2076 \begin_inset LatexCommand \ref{sec:cache_output}
2076 \begin_inset LatexCommand \ref{sec:cache_output}
2077
2077
2078 \end_inset
2078 \end_inset
2079
2079
2080 for details.
2080 for details.
2081 \layout Itemize
2081 \layout Itemize
2082
2082
2083 Use the output cache.
2083 Use the output cache.
2084 All output results are automatically stored in a global dictionary named
2084 All output results are automatically stored in a global dictionary named
2085
2085
2086 \family typewriter
2086 \family typewriter
2087 Out
2087 Out
2088 \family default
2088 \family default
2089 and variables named
2089 and variables named
2090 \family typewriter
2090 \family typewriter
2091 _1
2091 _1
2092 \family default
2092 \family default
2093 ,
2093 ,
2094 \family typewriter
2094 \family typewriter
2095 _2
2095 _2
2096 \family default
2096 \family default
2097 , etc.
2097 , etc.
2098 alias them.
2098 alias them.
2099 For example, the result of input line 4 is available either as
2099 For example, the result of input line 4 is available either as
2100 \family typewriter
2100 \family typewriter
2101 Out[4]
2101 Out[4]
2102 \family default
2102 \family default
2103 or as
2103 or as
2104 \family typewriter
2104 \family typewriter
2105 _4
2105 _4
2106 \family default
2106 \family default
2107 .
2107 .
2108 Additionally, three variables named
2108 Additionally, three variables named
2109 \family typewriter
2109 \family typewriter
2110 _
2110 _
2111 \family default
2111 \family default
2112 ,
2112 ,
2113 \family typewriter
2113 \family typewriter
2114 __
2114 __
2115 \family default
2115 \family default
2116 and
2116 and
2117 \family typewriter
2117 \family typewriter
2118 ___
2118 ___
2119 \family default
2119 \family default
2120 are always kept updated with the for the last three results.
2120 are always kept updated with the for the last three results.
2121 This allows you to recall any previous result and further use it for new
2121 This allows you to recall any previous result and further use it for new
2122 calculations.
2122 calculations.
2123 See Sec.\SpecialChar ~
2123 See Sec.\SpecialChar ~
2124
2124
2125 \begin_inset LatexCommand \ref{sec:cache_output}
2125 \begin_inset LatexCommand \ref{sec:cache_output}
2126
2126
2127 \end_inset
2127 \end_inset
2128
2128
2129 for more.
2129 for more.
2130 \layout Itemize
2130 \layout Itemize
2131
2131
2132 Put a '
2132 Put a '
2133 \family typewriter
2133 \family typewriter
2134 ;
2134 ;
2135 \family default
2135 \family default
2136 ' at the end of a line to supress the printing of output.
2136 ' at the end of a line to supress the printing of output.
2137 This is useful when doing calculations which generate long output you are
2137 This is useful when doing calculations which generate long output you are
2138 not interested in seeing.
2138 not interested in seeing.
2139 The
2139 The
2140 \family typewriter
2140 \family typewriter
2141 _*
2141 _*
2142 \family default
2142 \family default
2143 variables and the
2143 variables and the
2144 \family typewriter
2144 \family typewriter
2145 Out[]
2145 Out[]
2146 \family default
2146 \family default
2147 list do get updated with the contents of the output, even if it is not
2147 list do get updated with the contents of the output, even if it is not
2148 printed.
2148 printed.
2149 You can thus still access the generated results this way for further processing.
2149 You can thus still access the generated results this way for further processing.
2150 \layout Itemize
2150 \layout Itemize
2151
2151
2152 A similar system exists for caching input.
2152 A similar system exists for caching input.
2153 All input is stored in a global list called
2153 All input is stored in a global list called
2154 \family typewriter
2154 \family typewriter
2155 In
2155 In
2156 \family default
2156 \family default
2157 , so you can re-execute lines 22 through 28 plus line 34 by typing
2157 , so you can re-execute lines 22 through 28 plus line 34 by typing
2158 \family typewriter
2158 \family typewriter
2159 'exec In[22:29]+In[34]'
2159 'exec In[22:29]+In[34]'
2160 \family default
2160 \family default
2161 (using Python slicing notation).
2161 (using Python slicing notation).
2162 If you need to execute the same set of lines often, you can assign them
2162 If you need to execute the same set of lines often, you can assign them
2163 to a macro with the
2163 to a macro with the
2164 \family typewriter
2164 \family typewriter
2165 %macro
2165 %macro
2166 \family default
2166 \family default
2167
2167
2168 \family typewriter
2168 \family typewriter
2169 function.
2169 function.
2170
2170
2171 \family default
2171 \family default
2172 See sec.
2172 See sec.
2173
2173
2174 \begin_inset LatexCommand \ref{sec:cache_input}
2174 \begin_inset LatexCommand \ref{sec:cache_input}
2175
2175
2176 \end_inset
2176 \end_inset
2177
2177
2178 for more.
2178 for more.
2179 \layout Itemize
2179 \layout Itemize
2180
2180
2181 Use your input history.
2181 Use your input history.
2182 The
2182 The
2183 \family typewriter
2183 \family typewriter
2184 %hist
2184 %hist
2185 \family default
2185 \family default
2186 command can show you all previous input, without line numbers if desired
2186 command can show you all previous input, without line numbers if desired
2187 (option
2187 (option
2188 \family typewriter
2188 \family typewriter
2189 -n
2189 -n
2190 \family default
2190 \family default
2191 ) so you can directly copy and paste code either back in IPython or in a
2191 ) so you can directly copy and paste code either back in IPython or in a
2192 text editor.
2192 text editor.
2193 You can also save all your history by turning on logging via
2193 You can also save all your history by turning on logging via
2194 \family typewriter
2194 \family typewriter
2195 %logstart
2195 %logstart
2196 \family default
2196 \family default
2197 ; these logs can later be either reloaded as IPython sessions or used as
2197 ; these logs can later be either reloaded as IPython sessions or used as
2198 code for your programs.
2198 code for your programs.
2199 \layout Itemize
2199 \layout Itemize
2200
2200
2201 Define your own macros with
2201 Define your own macros with
2202 \family typewriter
2202 \family typewriter
2203 %macro
2203 %macro
2204 \family default
2204 \family default
2205 .
2205 .
2206 This can be useful for automating sequences of expressions when working
2206 This can be useful for automating sequences of expressions when working
2207 interactively.
2207 interactively.
2208 \layout Itemize
2208 \layout Itemize
2209
2209
2210 Define your own system aliases.
2210 Define your own system aliases.
2211 Even though IPython gives you access to your system shell via the
2211 Even though IPython gives you access to your system shell via the
2212 \family typewriter
2212 \family typewriter
2213 !
2213 !
2214 \family default
2214 \family default
2215 prefix, it is convenient to have aliases to the system commands you use
2215 prefix, it is convenient to have aliases to the system commands you use
2216 most often.
2216 most often.
2217 This allows you to work seamlessly from inside IPython with the same commands
2217 This allows you to work seamlessly from inside IPython with the same commands
2218 you are used to in your system shell.
2218 you are used to in your system shell.
2219 \newline
2219 \newline
2220 IPython comes with some pre-defined aliases and a complete system for changing
2220 IPython comes with some pre-defined aliases and a complete system for changing
2221 directories, both via a stack (see
2221 directories, both via a stack (see
2222 \family typewriter
2222 \family typewriter
2223 %pushd
2223 %pushd
2224 \family default
2224 \family default
2225 ,
2225 ,
2226 \family typewriter
2226 \family typewriter
2227 %popd
2227 %popd
2228 \family default
2228 \family default
2229 and
2229 and
2230 \family typewriter
2230 \family typewriter
2231 %ds
2231 %ds
2232 \family default
2232 \family default
2233 ) and via direct
2233 ) and via direct
2234 \family typewriter
2234 \family typewriter
2235 %cd
2235 %cd
2236 \family default
2236 \family default
2237 .
2237 .
2238 The latter keeps a history of visited directories and allows you to go
2238 The latter keeps a history of visited directories and allows you to go
2239 to any previously visited one.
2239 to any previously visited one.
2240 \layout Itemize
2240 \layout Itemize
2241
2241
2242 Use Python to manipulate the results of system commands.
2242 Use Python to manipulate the results of system commands.
2243 The `
2243 The `
2244 \family typewriter
2244 \family typewriter
2245 !!
2245 !!
2246 \family default
2246 \family default
2247 ' special syntax, and the
2247 ' special syntax, and the
2248 \family typewriter
2248 \family typewriter
2249 %sc
2249 %sc
2250 \family default
2250 \family default
2251 and
2251 and
2252 \family typewriter
2252 \family typewriter
2253 %sx
2253 %sx
2254 \family default
2254 \family default
2255 magic commands allow you to capture system output into Python variables.
2255 magic commands allow you to capture system output into Python variables.
2256 \layout Itemize
2256 \layout Itemize
2257
2257
2258 Expand python variables when calling the shell (either via
2258 Expand python variables when calling the shell (either via
2259 \family typewriter
2259 \family typewriter
2260 `!'
2260 `!'
2261 \family default
2261 \family default
2262 and
2262 and
2263 \family typewriter
2263 \family typewriter
2264 `!!'
2264 `!!'
2265 \family default
2265 \family default
2266 or via aliases) by prepending a
2266 or via aliases) by prepending a
2267 \family typewriter
2267 \family typewriter
2268 $
2268 $
2269 \family default
2269 \family default
2270 in front of them.
2270 in front of them.
2271 You can also expand complete python expressions.
2271 You can also expand complete python expressions.
2272 See sec.\SpecialChar ~
2272 See sec.\SpecialChar ~
2273
2273
2274 \begin_inset LatexCommand \ref{sub:System-shell-access}
2274 \begin_inset LatexCommand \ref{sub:System-shell-access}
2275
2275
2276 \end_inset
2276 \end_inset
2277
2277
2278 for more.
2278 for more.
2279 \layout Itemize
2279 \layout Itemize
2280
2280
2281 Use profiles to maintain different configurations (modules to load, function
2281 Use profiles to maintain different configurations (modules to load, function
2282 definitions, option settings) for particular tasks.
2282 definitions, option settings) for particular tasks.
2283 You can then have customized versions of IPython for specific purposes.
2283 You can then have customized versions of IPython for specific purposes.
2284 See sec.\SpecialChar ~
2284 See sec.\SpecialChar ~
2285
2285
2286 \begin_inset LatexCommand \ref{sec:profiles}
2286 \begin_inset LatexCommand \ref{sec:profiles}
2287
2287
2288 \end_inset
2288 \end_inset
2289
2289
2290 for more.
2290 for more.
2291 \layout Itemize
2291 \layout Itemize
2292
2292
2293 Embed IPython in your programs.
2293 Embed IPython in your programs.
2294 A few lines of code are enough to load a complete IPython inside your own
2294 A few lines of code are enough to load a complete IPython inside your own
2295 programs, giving you the ability to work with your data interactively after
2295 programs, giving you the ability to work with your data interactively after
2296 automatic processing has been completed.
2296 automatic processing has been completed.
2297 See sec.\SpecialChar ~
2297 See sec.\SpecialChar ~
2298
2298
2299 \begin_inset LatexCommand \ref{sec:embed}
2299 \begin_inset LatexCommand \ref{sec:embed}
2300
2300
2301 \end_inset
2301 \end_inset
2302
2302
2303 for more.
2303 for more.
2304 \layout Itemize
2304 \layout Itemize
2305
2305
2306 Use the Python profiler.
2306 Use the Python profiler.
2307 When dealing with performance issues, the
2307 When dealing with performance issues, the
2308 \family typewriter
2308 \family typewriter
2309 %run
2309 %run
2310 \family default
2310 \family default
2311 command with a
2311 command with a
2312 \family typewriter
2312 \family typewriter
2313 -p
2313 -p
2314 \family default
2314 \family default
2315 option allows you to run complete programs under the control of the Python
2315 option allows you to run complete programs under the control of the Python
2316 profiler.
2316 profiler.
2317 The
2317 The
2318 \family typewriter
2318 \family typewriter
2319 %prun
2319 %prun
2320 \family default
2320 \family default
2321 command does a similar job for single Python expressions (like function
2321 command does a similar job for single Python expressions (like function
2322 calls).
2322 calls).
2323 \layout Itemize
2323 \layout Itemize
2324
2324
2325 Use
2325 Use
2326 \family typewriter
2326 \family typewriter
2327 %edit
2327 %edit
2328 \family default
2328 \family default
2329 to have almost multiline editing.
2329 to have almost multiline editing.
2330 While IPython doesn't support true multiline editing, this command allows
2330 While IPython doesn't support true multiline editing, this command allows
2331 you to call an editor on the spot, and IPython will execute the code you
2331 you to call an editor on the spot, and IPython will execute the code you
2332 type in there as if it were typed interactively.
2332 type in there as if it were typed interactively.
2333 \layout Itemize
2333 \layout Itemize
2334
2334
2335 Use the IPython.demo.Demo class to load any Python script as an interactive
2335 Use the IPython.demo.Demo class to load any Python script as an interactive
2336 demo.
2336 demo.
2337 With a minimal amount of simple markup, you can control the execution of
2337 With a minimal amount of simple markup, you can control the execution of
2338 the script, stopping as needed.
2338 the script, stopping as needed.
2339 See sec.\SpecialChar ~
2339 See sec.\SpecialChar ~
2340
2340
2341 \begin_inset LatexCommand \ref{sec:interactive-demos}
2341 \begin_inset LatexCommand \ref{sec:interactive-demos}
2342
2342
2343 \end_inset
2343 \end_inset
2344
2344
2345 for more.
2345 for more.
2346 \layout Standard
2346 \layout Standard
2347
2347
2348 If you have your own favorite tip on using IPython efficiently for a certain
2348 If you have your own favorite tip on using IPython efficiently for a certain
2349 task (especially things which can't be done in the normal Python interpreter),
2349 task (especially things which can't be done in the normal Python interpreter),
2350 don't hesitate to send it!
2350 don't hesitate to send it!
2351 \layout Section
2351 \layout Section
2352
2352
2353 Command-line use
2353 Command-line use
2354 \layout Standard
2354 \layout Standard
2355
2355
2356 You start IPython with the command:
2356 You start IPython with the command:
2357 \layout Standard
2357 \layout Standard
2358
2358
2359
2359
2360 \family typewriter
2360 \family typewriter
2361 $ ipython [options] files
2361 $ ipython [options] files
2362 \layout Standard
2362 \layout Standard
2363
2363
2364 If invoked with no options, it executes all the files listed in sequence
2364 If invoked with no options, it executes all the files listed in sequence
2365 and drops you into the interpreter while still acknowledging any options
2365 and drops you into the interpreter while still acknowledging any options
2366 you may have set in your ipythonrc file.
2366 you may have set in your ipythonrc file.
2367 This behavior is different from standard Python, which when called as
2367 This behavior is different from standard Python, which when called as
2368 \family typewriter
2368 \family typewriter
2369 python -i
2369 python -i
2370 \family default
2370 \family default
2371 will only execute one file and ignore your configuration setup.
2371 will only execute one file and ignore your configuration setup.
2372 \layout Standard
2372 \layout Standard
2373
2373
2374 Please note that some of the configuration options are not available at
2374 Please note that some of the configuration options are not available at
2375 the command line, simply because they are not practical here.
2375 the command line, simply because they are not practical here.
2376 Look into your ipythonrc configuration file for details on those.
2376 Look into your ipythonrc configuration file for details on those.
2377 This file typically installed in the
2377 This file typically installed in the
2378 \family typewriter
2378 \family typewriter
2379 $HOME/.ipython
2379 $HOME/.ipython
2380 \family default
2380 \family default
2381 directory.
2381 directory.
2382 For Windows users,
2382 For Windows users,
2383 \family typewriter
2383 \family typewriter
2384 $HOME
2384 $HOME
2385 \family default
2385 \family default
2386 resolves to
2386 resolves to
2387 \family typewriter
2387 \family typewriter
2388 C:
2388 C:
2389 \backslash
2389 \backslash
2390
2390
2391 \backslash
2391 \backslash
2392 Documents and Settings
2392 Documents and Settings
2393 \backslash
2393 \backslash
2394
2394
2395 \backslash
2395 \backslash
2396 YourUserName
2396 YourUserName
2397 \family default
2397 \family default
2398 in most instances.
2398 in most instances.
2399 In the rest of this text, we will refer to this directory as
2399 In the rest of this text, we will refer to this directory as
2400 \family typewriter
2400 \family typewriter
2401 IPYTHONDIR
2401 IPYTHONDIR
2402 \family default
2402 \family default
2403 .
2403 .
2404 \layout Subsection
2404 \layout Subsection
2405
2405
2406
2406
2407 \begin_inset LatexCommand \label{sec:threading-opts}
2407 \begin_inset LatexCommand \label{sec:threading-opts}
2408
2408
2409 \end_inset
2409 \end_inset
2410
2410
2411 Special Threading Options
2411 Special Threading Options
2412 \layout Standard
2412 \layout Standard
2413
2413
2414 The following special options are ONLY valid at the beginning of the command
2414 The following special options are ONLY valid at the beginning of the command
2415 line, and not later.
2415 line, and not later.
2416 This is because they control the initial- ization of ipython itself, before
2416 This is because they control the initial- ization of ipython itself, before
2417 the normal option-handling mechanism is active.
2417 the normal option-handling mechanism is active.
2418 \layout List
2418 \layout List
2419 \labelwidthstring 00.00.0000
2419 \labelwidthstring 00.00.0000
2420
2420
2421
2421
2422 \family typewriter
2422 \family typewriter
2423 \series bold
2423 \series bold
2424 -gthread,\SpecialChar ~
2424 -gthread,\SpecialChar ~
2425 -qthread,\SpecialChar ~
2425 -qthread,\SpecialChar ~
2426 -wthread,\SpecialChar ~
2426 -wthread,\SpecialChar ~
2427 -pylab:
2427 -pylab:
2428 \family default
2428 \family default
2429 \series default
2429 \series default
2430 Only
2430 Only
2431 \emph on
2431 \emph on
2432 one
2432 one
2433 \emph default
2433 \emph default
2434 of these can be given, and it can only be given as the first option passed
2434 of these can be given, and it can only be given as the first option passed
2435 to IPython (it will have no effect in any other position).
2435 to IPython (it will have no effect in any other position).
2436 They provide threading support for the GTK Qt and WXPython toolkits, and
2436 They provide threading support for the GTK Qt and WXPython toolkits, and
2437 for the matplotlib library.
2437 for the matplotlib library.
2438 \layout List
2438 \layout List
2439 \labelwidthstring 00.00.0000
2439 \labelwidthstring 00.00.0000
2440
2440
2441 \SpecialChar ~
2441 \SpecialChar ~
2442 With any of the first three options, IPython starts running a separate
2442 With any of the first three options, IPython starts running a separate
2443 thread for the graphical toolkit's operation, so that you can open and
2443 thread for the graphical toolkit's operation, so that you can open and
2444 control graphical elements from within an IPython command line, without
2444 control graphical elements from within an IPython command line, without
2445 blocking.
2445 blocking.
2446 All three provide essentially the same functionality, respectively for
2446 All three provide essentially the same functionality, respectively for
2447 GTK, QT and WXWidgets (via their Python interfaces).
2447 GTK, QT and WXWidgets (via their Python interfaces).
2448 \layout List
2448 \layout List
2449 \labelwidthstring 00.00.0000
2449 \labelwidthstring 00.00.0000
2450
2450
2451 \SpecialChar ~
2451 \SpecialChar ~
2452 If
2452 If
2453 \family typewriter
2453 \family typewriter
2454 -pylab
2454 -pylab
2455 \family default
2455 \family default
2456 is given, IPython loads special support for the mat plotlib library (
2456 is given, IPython loads special support for the mat plotlib library (
2457 \begin_inset LatexCommand \htmlurl{http://matplotlib.sourceforge.net}
2457 \begin_inset LatexCommand \htmlurl{http://matplotlib.sourceforge.net}
2458
2458
2459 \end_inset
2459 \end_inset
2460
2460
2461 ), allowing interactive usage of any of its backends as defined in the user's
2461 ), allowing interactive usage of any of its backends as defined in the user's
2462
2462
2463 \family typewriter
2463 \family typewriter
2464 ~/.matplotlib/matplotlibrc
2464 ~/.matplotlib/matplotlibrc
2465 \family default
2465 \family default
2466 file.
2466 file.
2467 It automatically activates GTK, Qt or WX threading for IPyhton if the choice
2467 It automatically activates GTK, Qt or WX threading for IPyhton if the choice
2468 of matplotlib backend requires it.
2468 of matplotlib backend requires it.
2469 It also modifies the
2469 It also modifies the
2470 \family typewriter
2470 \family typewriter
2471 %run
2471 %run
2472 \family default
2472 \family default
2473 command to correctly execute (without blocking) any matplotlib-based script
2473 command to correctly execute (without blocking) any matplotlib-based script
2474 which calls
2474 which calls
2475 \family typewriter
2475 \family typewriter
2476 show()
2476 show()
2477 \family default
2477 \family default
2478 at the end.
2478 at the end.
2479
2479
2480 \layout List
2480 \layout List
2481 \labelwidthstring 00.00.0000
2481 \labelwidthstring 00.00.0000
2482
2482
2483
2483
2484 \family typewriter
2484 \family typewriter
2485 \series bold
2485 \series bold
2486 -tk
2486 -tk
2487 \family default
2487 \family default
2488 \series default
2488 \series default
2489 The
2489 The
2490 \family typewriter
2490 \family typewriter
2491 -g/q/wthread
2491 -g/q/wthread
2492 \family default
2492 \family default
2493 options, and
2493 options, and
2494 \family typewriter
2494 \family typewriter
2495 -pylab
2495 -pylab
2496 \family default
2496 \family default
2497 (if matplotlib is configured to use GTK, Qt or WX), will normally block
2497 (if matplotlib is configured to use GTK, Qt or WX), will normally block
2498 Tk graphical interfaces.
2498 Tk graphical interfaces.
2499 This means that when either GTK, Qt or WX threading is active, any attempt
2499 This means that when either GTK, Qt or WX threading is active, any attempt
2500 to open a Tk GUI will result in a dead window, and possibly cause the Python
2500 to open a Tk GUI will result in a dead window, and possibly cause the Python
2501 interpreter to crash.
2501 interpreter to crash.
2502 An extra option,
2502 An extra option,
2503 \family typewriter
2503 \family typewriter
2504 -tk
2504 -tk
2505 \family default
2505 \family default
2506 , is available to address this issue.
2506 , is available to address this issue.
2507 It can
2507 It can
2508 \emph on
2508 \emph on
2509 only
2509 only
2510 \emph default
2510 \emph default
2511 be given as a
2511 be given as a
2512 \emph on
2512 \emph on
2513 second
2513 second
2514 \emph default
2514 \emph default
2515 option after any of the above (
2515 option after any of the above (
2516 \family typewriter
2516 \family typewriter
2517 -gthread
2517 -gthread
2518 \family default
2518 \family default
2519 ,
2519 ,
2520 \family typewriter
2520 \family typewriter
2521 -wthread
2521 -wthread
2522 \family default
2522 \family default
2523 or
2523 or
2524 \family typewriter
2524 \family typewriter
2525 -pylab
2525 -pylab
2526 \family default
2526 \family default
2527 ).
2527 ).
2528 \layout List
2528 \layout List
2529 \labelwidthstring 00.00.0000
2529 \labelwidthstring 00.00.0000
2530
2530
2531 \SpecialChar ~
2531 \SpecialChar ~
2532 If
2532 If
2533 \family typewriter
2533 \family typewriter
2534 -tk
2534 -tk
2535 \family default
2535 \family default
2536 is given, IPython will try to coordinate Tk threading with GTK, Qt or WX.
2536 is given, IPython will try to coordinate Tk threading with GTK, Qt or WX.
2537 This is however potentially unreliable, and you will have to test on your
2537 This is however potentially unreliable, and you will have to test on your
2538 platform and Python configuration to determine whether it works for you.
2538 platform and Python configuration to determine whether it works for you.
2539 Debian users have reported success, apparently due to the fact that Debian
2539 Debian users have reported success, apparently due to the fact that Debian
2540 builds all of Tcl, Tk, Tkinter and Python with pthreads support.
2540 builds all of Tcl, Tk, Tkinter and Python with pthreads support.
2541 Under other Linux environments (such as Fedora Core 2/3), this option has
2541 Under other Linux environments (such as Fedora Core 2/3), this option has
2542 caused random crashes and lockups of the Python interpreter.
2542 caused random crashes and lockups of the Python interpreter.
2543 Under other operating systems (Mac OSX and Windows), you'll need to try
2543 Under other operating systems (Mac OSX and Windows), you'll need to try
2544 it to find out, since currently no user reports are available.
2544 it to find out, since currently no user reports are available.
2545 \layout List
2545 \layout List
2546 \labelwidthstring 00.00.0000
2546 \labelwidthstring 00.00.0000
2547
2547
2548 \SpecialChar ~
2548 \SpecialChar ~
2549 There is unfortunately no way for IPython to determine at run time whether
2549 There is unfortunately no way for IPython to determine at run time whether
2550
2550
2551 \family typewriter
2551 \family typewriter
2552 -tk
2552 -tk
2553 \family default
2553 \family default
2554 will work reliably or not, so you will need to do some experiments before
2554 will work reliably or not, so you will need to do some experiments before
2555 relying on it for regular work.
2555 relying on it for regular work.
2556
2556
2557 \layout Subsection
2557 \layout Subsection
2558
2558
2559
2559
2560 \begin_inset LatexCommand \label{sec:cmd-line-opts}
2560 \begin_inset LatexCommand \label{sec:cmd-line-opts}
2561
2561
2562 \end_inset
2562 \end_inset
2563
2563
2564 Regular Options
2564 Regular Options
2565 \layout Standard
2565 \layout Standard
2566
2566
2567 After the above threading options have been given, regular options can follow
2567 After the above threading options have been given, regular options can follow
2568 in any order.
2568 in any order.
2569 All options can be abbreviated to their shortest non-ambiguous form and
2569 All options can be abbreviated to their shortest non-ambiguous form and
2570 are case-sensitive.
2570 are case-sensitive.
2571 One or two dashes can be used.
2571 One or two dashes can be used.
2572 Some options have an alternate short form, indicated after a
2572 Some options have an alternate short form, indicated after a
2573 \family typewriter
2573 \family typewriter
2574 |
2574 |
2575 \family default
2575 \family default
2576 .
2576 .
2577 \layout Standard
2577 \layout Standard
2578
2578
2579 Most options can also be set from your ipythonrc configuration file.
2579 Most options can also be set from your ipythonrc configuration file.
2580 See the provided example for more details on what the options do.
2580 See the provided example for more details on what the options do.
2581 Options given at the command line override the values set in the ipythonrc
2581 Options given at the command line override the values set in the ipythonrc
2582 file.
2582 file.
2583 \layout Standard
2583 \layout Standard
2584
2584
2585 All options with a
2585 All options with a
2586 \family typewriter
2586 \family typewriter
2587 no|
2587 no|
2588 \family default
2588 \family default
2589 prepended can be specified in 'no' form (
2589 prepended can be specified in 'no' form (
2590 \family typewriter
2590 \family typewriter
2591 -nooption
2591 -nooption
2592 \family default
2592 \family default
2593 instead of
2593 instead of
2594 \family typewriter
2594 \family typewriter
2595 -option
2595 -option
2596 \family default
2596 \family default
2597 ) to turn the feature off.
2597 ) to turn the feature off.
2598 \layout List
2598 \layout List
2599 \labelwidthstring 00.00.0000
2599 \labelwidthstring 00.00.0000
2600
2600
2601
2601
2602 \family typewriter
2602 \family typewriter
2603 \series bold
2603 \series bold
2604 -help
2604 -help
2605 \family default
2605 \family default
2606 \series default
2606 \series default
2607 : print a help message and exit.
2607 : print a help message and exit.
2608 \layout List
2608 \layout List
2609 \labelwidthstring 00.00.0000
2609 \labelwidthstring 00.00.0000
2610
2610
2611
2611
2612 \family typewriter
2612 \family typewriter
2613 \series bold
2613 \series bold
2614 -pylab:
2614 -pylab:
2615 \family default
2615 \family default
2616 \series default
2616 \series default
2617 this can
2617 this can
2618 \emph on
2618 \emph on
2619 only
2619 only
2620 \emph default
2620 \emph default
2621 be given as the
2621 be given as the
2622 \emph on
2622 \emph on
2623 first
2623 first
2624 \emph default
2624 \emph default
2625 option passed to IPython (it will have no effect in any other position).
2625 option passed to IPython (it will have no effect in any other position).
2626 It adds special support for the matplotlib library (
2626 It adds special support for the matplotlib library (
2627 \begin_inset LatexCommand \htmlurl[http://matplotlib.sourceforge.net]{http://matplotlib.sourceforge.net}
2627 \begin_inset LatexCommand \htmlurl[http://matplotlib.sourceforge.net]{http://matplotlib.sourceforge.net}
2628
2628
2629 \end_inset
2629 \end_inset
2630
2630
2631 ), allowing interactive usage of any of its backends as defined in the user's
2631 ), allowing interactive usage of any of its backends as defined in the user's
2632
2632
2633 \family typewriter
2633 \family typewriter
2634 .matplotlibrc
2634 .matplotlibrc
2635 \family default
2635 \family default
2636 file.
2636 file.
2637 It automatically activates GTK or WX threading for IPyhton if the choice
2637 It automatically activates GTK or WX threading for IPyhton if the choice
2638 of matplotlib backend requires it.
2638 of matplotlib backend requires it.
2639 It also modifies the
2639 It also modifies the
2640 \family typewriter
2640 \family typewriter
2641 %run
2641 %run
2642 \family default
2642 \family default
2643 command to correctly execute (without blocking) any matplotlib-based script
2643 command to correctly execute (without blocking) any matplotlib-based script
2644 which calls
2644 which calls
2645 \family typewriter
2645 \family typewriter
2646 show()
2646 show()
2647 \family default
2647 \family default
2648 at the end.
2648 at the end.
2649 See Sec.\SpecialChar ~
2649 See Sec.\SpecialChar ~
2650
2650
2651 \begin_inset LatexCommand \ref{sec:matplotlib-support}
2651 \begin_inset LatexCommand \ref{sec:matplotlib-support}
2652
2652
2653 \end_inset
2653 \end_inset
2654
2654
2655 for more details.
2655 for more details.
2656 \layout List
2656 \layout List
2657 \labelwidthstring 00.00.0000
2657 \labelwidthstring 00.00.0000
2658
2658
2659
2659
2660 \family typewriter
2660 \family typewriter
2661 \series bold
2661 \series bold
2662 -no|automagic
2662 -no|automagic
2663 \series default
2663 \series default
2664 :
2664 :
2665 \family default
2665 \family default
2666 make magic commands automatic (without needing their first character to
2666 make magic commands automatic (without needing their first character to
2667 be
2667 be
2668 \family typewriter
2668 \family typewriter
2669 %
2669 %
2670 \family default
2670 \family default
2671 ).
2671 ).
2672 Type
2672 Type
2673 \family typewriter
2673 \family typewriter
2674 %magic
2674 %magic
2675 \family default
2675 \family default
2676 at the IPython prompt for more information.
2676 at the IPython prompt for more information.
2677 \layout List
2677 \layout List
2678 \labelwidthstring 00.00.0000
2678 \labelwidthstring 00.00.0000
2679
2679
2680
2680
2681 \family typewriter
2681 \family typewriter
2682 \series bold
2682 \series bold
2683 -no|banner
2683 -no|banner
2684 \series default
2684 \series default
2685 :
2685 :
2686 \family default
2686 \family default
2687 Print the initial information banner (default on).
2687 Print the initial information banner (default on).
2688 \layout List
2688 \layout List
2689 \labelwidthstring 00.00.0000
2689 \labelwidthstring 00.00.0000
2690
2690
2691
2691
2692 \family typewriter
2692 \family typewriter
2693 \series bold
2693 \series bold
2694 -c\SpecialChar ~
2694 -c\SpecialChar ~
2695 <command>:
2695 <command>:
2696 \family default
2696 \family default
2697 \series default
2697 \series default
2698 execute the given command string, and set sys.argv to
2698 execute the given command string, and set sys.argv to
2699 \family typewriter
2699 \family typewriter
2700 ['c']
2700 ['c']
2701 \family default
2701 \family default
2702 .
2702 .
2703 This is similar to the
2703 This is similar to the
2704 \family typewriter
2704 \family typewriter
2705 -c
2705 -c
2706 \family default
2706 \family default
2707 option in the normal Python interpreter.
2707 option in the normal Python interpreter.
2708
2708
2709 \layout List
2709 \layout List
2710 \labelwidthstring 00.00.0000
2710 \labelwidthstring 00.00.0000
2711
2711
2712
2712
2713 \family typewriter
2713 \family typewriter
2714 \series bold
2714 \series bold
2715 -cache_size|cs\SpecialChar ~
2715 -cache_size|cs\SpecialChar ~
2716 <n>
2716 <n>
2717 \series default
2717 \series default
2718 :
2718 :
2719 \family default
2719 \family default
2720 size of the output cache (maximum number of entries to hold in memory).
2720 size of the output cache (maximum number of entries to hold in memory).
2721 The default is 1000, you can change it permanently in your config file.
2721 The default is 1000, you can change it permanently in your config file.
2722 Setting it to 0 completely disables the caching system, and the minimum
2722 Setting it to 0 completely disables the caching system, and the minimum
2723 value accepted is 20 (if you provide a value less than 20, it is reset
2723 value accepted is 20 (if you provide a value less than 20, it is reset
2724 to 0 and a warning is issued) This limit is defined because otherwise you'll
2724 to 0 and a warning is issued) This limit is defined because otherwise you'll
2725 spend more time re-flushing a too small cache than working.
2725 spend more time re-flushing a too small cache than working.
2726 \layout List
2726 \layout List
2727 \labelwidthstring 00.00.0000
2727 \labelwidthstring 00.00.0000
2728
2728
2729
2729
2730 \family typewriter
2730 \family typewriter
2731 \series bold
2731 \series bold
2732 -classic|cl
2732 -classic|cl
2733 \series default
2733 \series default
2734 :
2734 :
2735 \family default
2735 \family default
2736 Gives IPython a similar feel to the classic Python prompt.
2736 Gives IPython a similar feel to the classic Python prompt.
2737 \layout List
2737 \layout List
2738 \labelwidthstring 00.00.0000
2738 \labelwidthstring 00.00.0000
2739
2739
2740
2740
2741 \family typewriter
2741 \family typewriter
2742 \series bold
2742 \series bold
2743 -colors\SpecialChar ~
2743 -colors\SpecialChar ~
2744 <scheme>:
2744 <scheme>:
2745 \family default
2745 \family default
2746 \series default
2746 \series default
2747 Color scheme for prompts and exception reporting.
2747 Color scheme for prompts and exception reporting.
2748 Currently implemented: NoColor, Linux and LightBG.
2748 Currently implemented: NoColor, Linux and LightBG.
2749 \layout List
2749 \layout List
2750 \labelwidthstring 00.00.0000
2750 \labelwidthstring 00.00.0000
2751
2751
2752
2752
2753 \family typewriter
2753 \family typewriter
2754 \series bold
2754 \series bold
2755 -no|color_info:
2755 -no|color_info:
2756 \family default
2756 \family default
2757 \series default
2757 \series default
2758 IPython can display information about objects via a set of functions, and
2758 IPython can display information about objects via a set of functions, and
2759 optionally can use colors for this, syntax highlighting source code and
2759 optionally can use colors for this, syntax highlighting source code and
2760 various other elements.
2760 various other elements.
2761 However, because this information is passed through a pager (like 'less')
2761 However, because this information is passed through a pager (like 'less')
2762 and many pagers get confused with color codes, this option is off by default.
2762 and many pagers get confused with color codes, this option is off by default.
2763 You can test it and turn it on permanently in your ipythonrc file if it
2763 You can test it and turn it on permanently in your ipythonrc file if it
2764 works for you.
2764 works for you.
2765 As a reference, the 'less' pager supplied with Mandrake 8.2 works ok, but
2765 As a reference, the 'less' pager supplied with Mandrake 8.2 works ok, but
2766 that in RedHat 7.2 doesn't.
2766 that in RedHat 7.2 doesn't.
2767 \layout List
2767 \layout List
2768 \labelwidthstring 00.00.0000
2768 \labelwidthstring 00.00.0000
2769
2769
2770 \SpecialChar ~
2770 \SpecialChar ~
2771 Test it and turn it on permanently if it works with your system.
2771 Test it and turn it on permanently if it works with your system.
2772 The magic function
2772 The magic function
2773 \family typewriter
2773 \family typewriter
2774 %color_info
2774 %color_info
2775 \family default
2775 \family default
2776 allows you to toggle this interactively for testing.
2776 allows you to toggle this interactively for testing.
2777 \layout List
2777 \layout List
2778 \labelwidthstring 00.00.0000
2778 \labelwidthstring 00.00.0000
2779
2779
2780
2780
2781 \family typewriter
2781 \family typewriter
2782 \series bold
2782 \series bold
2783 -no|debug
2783 -no|debug
2784 \family default
2784 \family default
2785 \series default
2785 \series default
2786 : Show information about the loading process.
2786 : Show information about the loading process.
2787 Very useful to pin down problems with your configuration files or to get
2787 Very useful to pin down problems with your configuration files or to get
2788 details about session restores.
2788 details about session restores.
2789 \layout List
2789 \layout List
2790 \labelwidthstring 00.00.0000
2790 \labelwidthstring 00.00.0000
2791
2791
2792
2792
2793 \family typewriter
2793 \family typewriter
2794 \series bold
2794 \series bold
2795 -no|deep_reload
2795 -no|deep_reload
2796 \series default
2796 \series default
2797 :
2797 :
2798 \family default
2798 \family default
2799 IPython can use the
2799 IPython can use the
2800 \family typewriter
2800 \family typewriter
2801 deep_reload
2801 deep_reload
2802 \family default
2802 \family default
2803 module which reloads changes in modules recursively (it replaces the
2803 module which reloads changes in modules recursively (it replaces the
2804 \family typewriter
2804 \family typewriter
2805 reload()
2805 reload()
2806 \family default
2806 \family default
2807 function, so you don't need to change anything to use it).
2807 function, so you don't need to change anything to use it).
2808
2808
2809 \family typewriter
2809 \family typewriter
2810 deep_reload()
2810 deep_reload()
2811 \family default
2811 \family default
2812 forces a full reload of modules whose code may have changed, which the
2812 forces a full reload of modules whose code may have changed, which the
2813 default
2813 default
2814 \family typewriter
2814 \family typewriter
2815 reload()
2815 reload()
2816 \family default
2816 \family default
2817 function does not.
2817 function does not.
2818 \layout List
2818 \layout List
2819 \labelwidthstring 00.00.0000
2819 \labelwidthstring 00.00.0000
2820
2820
2821 \SpecialChar ~
2821 \SpecialChar ~
2822 When deep_reload is off, IPython will use the normal
2822 When deep_reload is off, IPython will use the normal
2823 \family typewriter
2823 \family typewriter
2824 reload()
2824 reload()
2825 \family default
2825 \family default
2826 , but deep_reload will still be available as
2826 , but deep_reload will still be available as
2827 \family typewriter
2827 \family typewriter
2828 dreload()
2828 dreload()
2829 \family default
2829 \family default
2830 .
2830 .
2831 This feature is off by default [which means that you have both normal
2831 This feature is off by default [which means that you have both normal
2832 \family typewriter
2832 \family typewriter
2833 reload()
2833 reload()
2834 \family default
2834 \family default
2835 and
2835 and
2836 \family typewriter
2836 \family typewriter
2837 dreload()
2837 dreload()
2838 \family default
2838 \family default
2839 ].
2839 ].
2840 \layout List
2840 \layout List
2841 \labelwidthstring 00.00.0000
2841 \labelwidthstring 00.00.0000
2842
2842
2843
2843
2844 \family typewriter
2844 \family typewriter
2845 \series bold
2845 \series bold
2846 -editor\SpecialChar ~
2846 -editor\SpecialChar ~
2847 <name>
2847 <name>
2848 \family default
2848 \family default
2849 \series default
2849 \series default
2850 : Which editor to use with the
2850 : Which editor to use with the
2851 \family typewriter
2851 \family typewriter
2852 %edit
2852 %edit
2853 \family default
2853 \family default
2854 command.
2854 command.
2855 By default, IPython will honor your
2855 By default, IPython will honor your
2856 \family typewriter
2856 \family typewriter
2857 EDITOR
2857 EDITOR
2858 \family default
2858 \family default
2859 environment variable (if not set, vi is the Unix default and notepad the
2859 environment variable (if not set, vi is the Unix default and notepad the
2860 Windows one).
2860 Windows one).
2861 Since this editor is invoked on the fly by IPython and is meant for editing
2861 Since this editor is invoked on the fly by IPython and is meant for editing
2862 small code snippets, you may want to use a small, lightweight editor here
2862 small code snippets, you may want to use a small, lightweight editor here
2863 (in case your default
2863 (in case your default
2864 \family typewriter
2864 \family typewriter
2865 EDITOR
2865 EDITOR
2866 \family default
2866 \family default
2867 is something like Emacs).
2867 is something like Emacs).
2868 \layout List
2868 \layout List
2869 \labelwidthstring 00.00.0000
2869 \labelwidthstring 00.00.0000
2870
2870
2871
2871
2872 \family typewriter
2872 \family typewriter
2873 \series bold
2873 \series bold
2874 -ipythondir\SpecialChar ~
2874 -ipythondir\SpecialChar ~
2875 <name>
2875 <name>
2876 \series default
2876 \series default
2877 :
2877 :
2878 \family default
2878 \family default
2879 name of your IPython configuration directory
2879 name of your IPython configuration directory
2880 \family typewriter
2880 \family typewriter
2881 IPYTHONDIR
2881 IPYTHONDIR
2882 \family default
2882 \family default
2883 .
2883 .
2884 This can also be specified through the environment variable
2884 This can also be specified through the environment variable
2885 \family typewriter
2885 \family typewriter
2886 IPYTHONDIR
2886 IPYTHONDIR
2887 \family default
2887 \family default
2888 .
2888 .
2889 \layout List
2889 \layout List
2890 \labelwidthstring 00.00.0000
2890 \labelwidthstring 00.00.0000
2891
2891
2892
2892
2893 \family typewriter
2893 \family typewriter
2894 \series bold
2894 \series bold
2895 -log|l
2895 -log|l
2896 \family default
2896 \family default
2897 \series default
2897 \series default
2898 : generate a log file of all input.
2898 : generate a log file of all input.
2899 Defaults to
2899 Defaults to
2900 \family typewriter
2900 \family typewriter
2901 $IPYTHONDIR/log
2901 $IPYTHONDIR/log
2902 \family default
2902 \family default
2903 .
2903 .
2904 You can use this to later restore a session by loading your logfile as
2904 You can use this to later restore a session by loading your logfile as
2905 a file to be executed with option
2905 a file to be executed with option
2906 \family typewriter
2906 \family typewriter
2907 -logplay
2907 -logplay
2908 \family default
2908 \family default
2909 (see below).
2909 (see below).
2910 \layout List
2910 \layout List
2911 \labelwidthstring 00.00.0000
2911 \labelwidthstring 00.00.0000
2912
2912
2913
2913
2914 \family typewriter
2914 \family typewriter
2915 \series bold
2915 \series bold
2916 -logfile|lf\SpecialChar ~
2916 -logfile|lf\SpecialChar ~
2917 <name>
2917 <name>
2918 \series default
2918 \series default
2919 :
2919 :
2920 \family default
2920 \family default
2921 specify the name of your logfile.
2921 specify the name of your logfile.
2922 \layout List
2922 \layout List
2923 \labelwidthstring 00.00.0000
2923 \labelwidthstring 00.00.0000
2924
2924
2925
2925
2926 \family typewriter
2926 \family typewriter
2927 \series bold
2927 \series bold
2928 -logplay|lp\SpecialChar ~
2928 -logplay|lp\SpecialChar ~
2929 <name>
2929 <name>
2930 \series default
2930 \series default
2931 :
2931 :
2932 \family default
2932 \family default
2933 you can replay a previous log.
2933 you can replay a previous log.
2934 For restoring a session as close as possible to the state you left it in,
2934 For restoring a session as close as possible to the state you left it in,
2935 use this option (don't just run the logfile).
2935 use this option (don't just run the logfile).
2936 With
2936 With
2937 \family typewriter
2937 \family typewriter
2938 -logplay
2938 -logplay
2939 \family default
2939 \family default
2940 , IPython will try to reconstruct the previous working environment in full,
2940 , IPython will try to reconstruct the previous working environment in full,
2941 not just execute the commands in the logfile.
2941 not just execute the commands in the logfile.
2942 \layout List
2942 \layout List
2943 \labelwidthstring 00.00.0000
2943 \labelwidthstring 00.00.0000
2944
2944
2945 \SpecialChar ~
2945 \SpecialChar ~
2946 When a session is restored, logging is automatically turned on again with
2946 When a session is restored, logging is automatically turned on again with
2947 the name of the logfile it was invoked with (it is read from the log header).
2947 the name of the logfile it was invoked with (it is read from the log header).
2948 So once you've turned logging on for a session, you can quit IPython and
2948 So once you've turned logging on for a session, you can quit IPython and
2949 reload it as many times as you want and it will continue to log its history
2949 reload it as many times as you want and it will continue to log its history
2950 and restore from the beginning every time.
2950 and restore from the beginning every time.
2951 \layout List
2951 \layout List
2952 \labelwidthstring 00.00.0000
2952 \labelwidthstring 00.00.0000
2953
2953
2954 \SpecialChar ~
2954 \SpecialChar ~
2955 Caveats: there are limitations in this option.
2955 Caveats: there are limitations in this option.
2956 The history variables
2956 The history variables
2957 \family typewriter
2957 \family typewriter
2958 _i*
2958 _i*
2959 \family default
2959 \family default
2960 ,
2960 ,
2961 \family typewriter
2961 \family typewriter
2962 _*
2962 _*
2963 \family default
2963 \family default
2964 and
2964 and
2965 \family typewriter
2965 \family typewriter
2966 _dh
2966 _dh
2967 \family default
2967 \family default
2968 don't get restored properly.
2968 don't get restored properly.
2969 In the future we will try to implement full session saving by writing and
2969 In the future we will try to implement full session saving by writing and
2970 retrieving a 'snapshot' of the memory state of IPython.
2970 retrieving a 'snapshot' of the memory state of IPython.
2971 But our first attempts failed because of inherent limitations of Python's
2971 But our first attempts failed because of inherent limitations of Python's
2972 Pickle module, so this may have to wait.
2972 Pickle module, so this may have to wait.
2973 \layout List
2973 \layout List
2974 \labelwidthstring 00.00.0000
2974 \labelwidthstring 00.00.0000
2975
2975
2976
2976
2977 \family typewriter
2977 \family typewriter
2978 \series bold
2978 \series bold
2979 -no|messages
2979 -no|messages
2980 \series default
2980 \series default
2981 :
2981 :
2982 \family default
2982 \family default
2983 Print messages which IPython collects about its startup process (default
2983 Print messages which IPython collects about its startup process (default
2984 on).
2984 on).
2985 \layout List
2985 \layout List
2986 \labelwidthstring 00.00.0000
2986 \labelwidthstring 00.00.0000
2987
2987
2988
2988
2989 \family typewriter
2989 \family typewriter
2990 \series bold
2990 \series bold
2991 -no|pdb
2991 -no|pdb
2992 \family default
2992 \family default
2993 \series default
2993 \series default
2994 : Automatically call the pdb debugger after every uncaught exception.
2994 : Automatically call the pdb debugger after every uncaught exception.
2995 If you are used to debugging using pdb, this puts you automatically inside
2995 If you are used to debugging using pdb, this puts you automatically inside
2996 of it after any call (either in IPython or in code called by it) which
2996 of it after any call (either in IPython or in code called by it) which
2997 triggers an exception which goes uncaught.
2997 triggers an exception which goes uncaught.
2998 \layout List
2998 \layout List
2999 \labelwidthstring 00.00.0000
2999 \labelwidthstring 00.00.0000
3000
3000
3001
3001
3002 \family typewriter
3002 \family typewriter
3003 \series bold
3003 \series bold
3004 -no|pprint
3004 -no|pprint
3005 \series default
3005 \series default
3006 :
3006 :
3007 \family default
3007 \family default
3008 ipython can optionally use the pprint (pretty printer) module for displaying
3008 ipython can optionally use the pprint (pretty printer) module for displaying
3009 results.
3009 results.
3010 pprint tends to give a nicer display of nested data structures.
3010 pprint tends to give a nicer display of nested data structures.
3011 If you like it, you can turn it on permanently in your config file (default
3011 If you like it, you can turn it on permanently in your config file (default
3012 off).
3012 off).
3013 \layout List
3013 \layout List
3014 \labelwidthstring 00.00.0000
3014 \labelwidthstring 00.00.0000
3015
3015
3016
3016
3017 \family typewriter
3017 \family typewriter
3018 \series bold
3018 \series bold
3019 -profile|p <name>
3019 -profile|p <name>
3020 \series default
3020 \series default
3021 :
3021 :
3022 \family default
3022 \family default
3023 assume that your config file is
3023 assume that your config file is
3024 \family typewriter
3024 \family typewriter
3025 ipythonrc-<name>
3025 ipythonrc-<name>
3026 \family default
3026 \family default
3027 (looks in current dir first, then in
3027 (looks in current dir first, then in
3028 \family typewriter
3028 \family typewriter
3029 IPYTHONDIR
3029 IPYTHONDIR
3030 \family default
3030 \family default
3031 ).
3031 ).
3032 This is a quick way to keep and load multiple config files for different
3032 This is a quick way to keep and load multiple config files for different
3033 tasks, especially if you use the include option of config files.
3033 tasks, especially if you use the include option of config files.
3034 You can keep a basic
3034 You can keep a basic
3035 \family typewriter
3035 \family typewriter
3036 IPYTHONDIR/ipythonrc
3036 IPYTHONDIR/ipythonrc
3037 \family default
3037 \family default
3038 file and then have other 'profiles' which include this one and load extra
3038 file and then have other 'profiles' which include this one and load extra
3039 things for particular tasks.
3039 things for particular tasks.
3040 For example:
3040 For example:
3041 \layout List
3041 \layout List
3042 \labelwidthstring 00.00.0000
3042 \labelwidthstring 00.00.0000
3043
3043
3044
3044
3045 \family typewriter
3045 \family typewriter
3046 \SpecialChar ~
3046 \SpecialChar ~
3047
3047
3048 \family default
3048 \family default
3049 1.
3049 1.
3050
3050
3051 \family typewriter
3051 \family typewriter
3052 $HOME/.ipython/ipythonrc
3052 $HOME/.ipython/ipythonrc
3053 \family default
3053 \family default
3054 : load basic things you always want.
3054 : load basic things you always want.
3055 \layout List
3055 \layout List
3056 \labelwidthstring 00.00.0000
3056 \labelwidthstring 00.00.0000
3057
3057
3058
3058
3059 \family typewriter
3059 \family typewriter
3060 \SpecialChar ~
3060 \SpecialChar ~
3061
3061
3062 \family default
3062 \family default
3063 2.
3063 2.
3064
3064
3065 \family typewriter
3065 \family typewriter
3066 $HOME/.ipython/ipythonrc-math
3066 $HOME/.ipython/ipythonrc-math
3067 \family default
3067 \family default
3068 : load (1) and basic math-related modules.
3068 : load (1) and basic math-related modules.
3069
3069
3070 \layout List
3070 \layout List
3071 \labelwidthstring 00.00.0000
3071 \labelwidthstring 00.00.0000
3072
3072
3073
3073
3074 \family typewriter
3074 \family typewriter
3075 \SpecialChar ~
3075 \SpecialChar ~
3076
3076
3077 \family default
3077 \family default
3078 3.
3078 3.
3079
3079
3080 \family typewriter
3080 \family typewriter
3081 $HOME/.ipython/ipythonrc-numeric
3081 $HOME/.ipython/ipythonrc-numeric
3082 \family default
3082 \family default
3083 : load (1) and Numeric and plotting modules.
3083 : load (1) and Numeric and plotting modules.
3084 \layout List
3084 \layout List
3085 \labelwidthstring 00.00.0000
3085 \labelwidthstring 00.00.0000
3086
3086
3087 \SpecialChar ~
3087 \SpecialChar ~
3088 Since it is possible to create an endless loop by having circular file
3088 Since it is possible to create an endless loop by having circular file
3089 inclusions, IPython will stop if it reaches 15 recursive inclusions.
3089 inclusions, IPython will stop if it reaches 15 recursive inclusions.
3090 \layout List
3090 \layout List
3091 \labelwidthstring 00.00.0000
3091 \labelwidthstring 00.00.0000
3092
3092
3093
3093
3094 \family typewriter
3094 \family typewriter
3095 \series bold
3095 \series bold
3096 -prompt_in1|pi1\SpecialChar ~
3096 -prompt_in1|pi1\SpecialChar ~
3097 <string>:
3097 <string>:
3098 \family default
3098 \family default
3099 \series default
3099 \series default
3100 Specify the string used for input prompts.
3100 Specify the string used for input prompts.
3101 Note that if you are using numbered prompts, the number is represented
3101 Note that if you are using numbered prompts, the number is represented
3102 with a '
3102 with a '
3103 \backslash
3103 \backslash
3104 #' in the string.
3104 #' in the string.
3105 Don't forget to quote strings with spaces embedded in them.
3105 Don't forget to quote strings with spaces embedded in them.
3106 Default: '
3106 Default: '
3107 \family typewriter
3107 \family typewriter
3108 In\SpecialChar ~
3108 In\SpecialChar ~
3109 [
3109 [
3110 \backslash
3110 \backslash
3111 #]:
3111 #]:
3112 \family default
3112 \family default
3113 '.
3113 '.
3114 Sec.\SpecialChar ~
3114 Sec.\SpecialChar ~
3115
3115
3116 \begin_inset LatexCommand \ref{sec:prompts}
3116 \begin_inset LatexCommand \ref{sec:prompts}
3117
3117
3118 \end_inset
3118 \end_inset
3119
3119
3120 discusses in detail all the available escapes to customize your prompts.
3120 discusses in detail all the available escapes to customize your prompts.
3121 \layout List
3121 \layout List
3122 \labelwidthstring 00.00.0000
3122 \labelwidthstring 00.00.0000
3123
3123
3124
3124
3125 \family typewriter
3125 \family typewriter
3126 \series bold
3126 \series bold
3127 -prompt_in2|pi2\SpecialChar ~
3127 -prompt_in2|pi2\SpecialChar ~
3128 <string>:
3128 <string>:
3129 \family default
3129 \family default
3130 \series default
3130 \series default
3131 Similar to the previous option, but used for the continuation prompts.
3131 Similar to the previous option, but used for the continuation prompts.
3132 The special sequence '
3132 The special sequence '
3133 \family typewriter
3133 \family typewriter
3134
3134
3135 \backslash
3135 \backslash
3136 D
3136 D
3137 \family default
3137 \family default
3138 ' is similar to '
3138 ' is similar to '
3139 \family typewriter
3139 \family typewriter
3140
3140
3141 \backslash
3141 \backslash
3142 #
3142 #
3143 \family default
3143 \family default
3144 ', but with all digits replaced dots (so you can have your continuation
3144 ', but with all digits replaced dots (so you can have your continuation
3145 prompt aligned with your input prompt).
3145 prompt aligned with your input prompt).
3146 Default: '
3146 Default: '
3147 \family typewriter
3147 \family typewriter
3148 \SpecialChar ~
3148 \SpecialChar ~
3149 \SpecialChar ~
3149 \SpecialChar ~
3150 \SpecialChar ~
3150 \SpecialChar ~
3151 .
3151 .
3152 \backslash
3152 \backslash
3153 D.:
3153 D.:
3154 \family default
3154 \family default
3155 ' (note three spaces at the start for alignment with '
3155 ' (note three spaces at the start for alignment with '
3156 \family typewriter
3156 \family typewriter
3157 In\SpecialChar ~
3157 In\SpecialChar ~
3158 [
3158 [
3159 \backslash
3159 \backslash
3160 #]
3160 #]
3161 \family default
3161 \family default
3162 ').
3162 ').
3163 \layout List
3163 \layout List
3164 \labelwidthstring 00.00.0000
3164 \labelwidthstring 00.00.0000
3165
3165
3166
3166
3167 \family typewriter
3167 \family typewriter
3168 \series bold
3168 \series bold
3169 -prompt_out|po\SpecialChar ~
3169 -prompt_out|po\SpecialChar ~
3170 <string>:
3170 <string>:
3171 \family default
3171 \family default
3172 \series default
3172 \series default
3173 String used for output prompts, also uses numbers like
3173 String used for output prompts, also uses numbers like
3174 \family typewriter
3174 \family typewriter
3175 prompt_in1
3175 prompt_in1
3176 \family default
3176 \family default
3177 .
3177 .
3178 Default: '
3178 Default: '
3179 \family typewriter
3179 \family typewriter
3180 Out[
3180 Out[
3181 \backslash
3181 \backslash
3182 #]:
3182 #]:
3183 \family default
3183 \family default
3184 '
3184 '
3185 \layout List
3185 \layout List
3186 \labelwidthstring 00.00.0000
3186 \labelwidthstring 00.00.0000
3187
3187
3188
3188
3189 \family typewriter
3189 \family typewriter
3190 \series bold
3190 \series bold
3191 -quick
3191 -quick
3192 \family default
3192 \family default
3193 \series default
3193 \series default
3194 : start in bare bones mode (no config file loaded).
3194 : start in bare bones mode (no config file loaded).
3195 \layout List
3195 \layout List
3196 \labelwidthstring 00.00.0000
3196 \labelwidthstring 00.00.0000
3197
3197
3198
3198
3199 \family typewriter
3199 \family typewriter
3200 \series bold
3200 \series bold
3201 -rcfile\SpecialChar ~
3201 -rcfile\SpecialChar ~
3202 <name>
3202 <name>
3203 \series default
3203 \series default
3204 :
3204 :
3205 \family default
3205 \family default
3206 name of your IPython resource configuration file.
3206 name of your IPython resource configuration file.
3207 Normally IPython loads ipythonrc (from current directory) or
3207 Normally IPython loads ipythonrc (from current directory) or
3208 \family typewriter
3208 \family typewriter
3209 IPYTHONDIR/ipythonrc
3209 IPYTHONDIR/ipythonrc
3210 \family default
3210 \family default
3211 .
3211 .
3212 \layout List
3212 \layout List
3213 \labelwidthstring 00.00.0000
3213 \labelwidthstring 00.00.0000
3214
3214
3215 \SpecialChar ~
3215 \SpecialChar ~
3216 If the loading of your config file fails, IPython starts with a bare bones
3216 If the loading of your config file fails, IPython starts with a bare bones
3217 configuration (no modules loaded at all).
3217 configuration (no modules loaded at all).
3218 \layout List
3218 \layout List
3219 \labelwidthstring 00.00.0000
3219 \labelwidthstring 00.00.0000
3220
3220
3221
3221
3222 \family typewriter
3222 \family typewriter
3223 \series bold
3223 \series bold
3224 -no|readline
3224 -no|readline
3225 \family default
3225 \family default
3226 \series default
3226 \series default
3227 : use the readline library, which is needed to support name completion and
3227 : use the readline library, which is needed to support name completion and
3228 command history, among other things.
3228 command history, among other things.
3229 It is enabled by default, but may cause problems for users of X/Emacs in
3229 It is enabled by default, but may cause problems for users of X/Emacs in
3230 Python comint or shell buffers.
3230 Python comint or shell buffers.
3231 \layout List
3231 \layout List
3232 \labelwidthstring 00.00.0000
3232 \labelwidthstring 00.00.0000
3233
3233
3234 \SpecialChar ~
3234 \SpecialChar ~
3235 Note that X/Emacs 'eterm' buffers (opened with
3235 Note that X/Emacs 'eterm' buffers (opened with
3236 \family typewriter
3236 \family typewriter
3237 M-x\SpecialChar ~
3237 M-x\SpecialChar ~
3238 term
3238 term
3239 \family default
3239 \family default
3240 ) support IPython's readline and syntax coloring fine, only 'emacs' (
3240 ) support IPython's readline and syntax coloring fine, only 'emacs' (
3241 \family typewriter
3241 \family typewriter
3242 M-x\SpecialChar ~
3242 M-x\SpecialChar ~
3243 shell
3243 shell
3244 \family default
3244 \family default
3245 and
3245 and
3246 \family typewriter
3246 \family typewriter
3247 C-c\SpecialChar ~
3247 C-c\SpecialChar ~
3248 !
3248 !
3249 \family default
3249 \family default
3250 ) buffers do not.
3250 ) buffers do not.
3251 \layout List
3251 \layout List
3252 \labelwidthstring 00.00.0000
3252 \labelwidthstring 00.00.0000
3253
3253
3254
3254
3255 \family typewriter
3255 \family typewriter
3256 \series bold
3256 \series bold
3257 -screen_length|sl\SpecialChar ~
3257 -screen_length|sl\SpecialChar ~
3258 <n>
3258 <n>
3259 \series default
3259 \series default
3260 :
3260 :
3261 \family default
3261 \family default
3262 number of lines of your screen.
3262 number of lines of your screen.
3263 This is used to control printing of very long strings.
3263 This is used to control printing of very long strings.
3264 Strings longer than this number of lines will be sent through a pager instead
3264 Strings longer than this number of lines will be sent through a pager instead
3265 of directly printed.
3265 of directly printed.
3266 \layout List
3266 \layout List
3267 \labelwidthstring 00.00.0000
3267 \labelwidthstring 00.00.0000
3268
3268
3269 \SpecialChar ~
3269 \SpecialChar ~
3270 The default value for this is 0, which means IPython will auto-detect your
3270 The default value for this is 0, which means IPython will auto-detect your
3271 screen size every time it needs to print certain potentially long strings
3271 screen size every time it needs to print certain potentially long strings
3272 (this doesn't change the behavior of the 'print' keyword, it's only triggered
3272 (this doesn't change the behavior of the 'print' keyword, it's only triggered
3273 internally).
3273 internally).
3274 If for some reason this isn't working well (it needs curses support), specify
3274 If for some reason this isn't working well (it needs curses support), specify
3275 it yourself.
3275 it yourself.
3276 Otherwise don't change the default.
3276 Otherwise don't change the default.
3277 \layout List
3277 \layout List
3278 \labelwidthstring 00.00.0000
3278 \labelwidthstring 00.00.0000
3279
3279
3280
3280
3281 \family typewriter
3281 \family typewriter
3282 \series bold
3282 \series bold
3283 -separate_in|si\SpecialChar ~
3283 -separate_in|si\SpecialChar ~
3284 <string>
3284 <string>
3285 \series default
3285 \series default
3286 :
3286 :
3287 \family default
3287 \family default
3288 separator before input prompts.
3288 separator before input prompts.
3289 Default: '
3289 Default: '
3290 \family typewriter
3290 \family typewriter
3291
3291
3292 \backslash
3292 \backslash
3293 n
3293 n
3294 \family default
3294 \family default
3295 '
3295 '
3296 \layout List
3296 \layout List
3297 \labelwidthstring 00.00.0000
3297 \labelwidthstring 00.00.0000
3298
3298
3299
3299
3300 \family typewriter
3300 \family typewriter
3301 \series bold
3301 \series bold
3302 -separate_out|so\SpecialChar ~
3302 -separate_out|so\SpecialChar ~
3303 <string>
3303 <string>
3304 \family default
3304 \family default
3305 \series default
3305 \series default
3306 : separator before output prompts.
3306 : separator before output prompts.
3307 Default: nothing.
3307 Default: nothing.
3308 \layout List
3308 \layout List
3309 \labelwidthstring 00.00.0000
3309 \labelwidthstring 00.00.0000
3310
3310
3311
3311
3312 \family typewriter
3312 \family typewriter
3313 \series bold
3313 \series bold
3314 -separate_out2|so2\SpecialChar ~
3314 -separate_out2|so2\SpecialChar ~
3315 <string>
3315 <string>
3316 \series default
3316 \series default
3317 :
3317 :
3318 \family default
3318 \family default
3319 separator after output prompts.
3319 separator after output prompts.
3320 Default: nothing.
3320 Default: nothing.
3321 \layout List
3321 \layout List
3322 \labelwidthstring 00.00.0000
3322 \labelwidthstring 00.00.0000
3323
3323
3324 \SpecialChar ~
3324 \SpecialChar ~
3325 For these three options, use the value 0 to specify no separator.
3325 For these three options, use the value 0 to specify no separator.
3326 \layout List
3326 \layout List
3327 \labelwidthstring 00.00.0000
3327 \labelwidthstring 00.00.0000
3328
3328
3329
3329
3330 \family typewriter
3330 \family typewriter
3331 \series bold
3331 \series bold
3332 -nosep
3332 -nosep
3333 \series default
3333 \series default
3334 :
3334 :
3335 \family default
3335 \family default
3336 shorthand for
3336 shorthand for
3337 \family typewriter
3337 \family typewriter
3338 '-SeparateIn 0 -SeparateOut 0 -SeparateOut2 0'
3338 '-SeparateIn 0 -SeparateOut 0 -SeparateOut2 0'
3339 \family default
3339 \family default
3340 .
3340 .
3341 Simply removes all input/output separators.
3341 Simply removes all input/output separators.
3342 \layout List
3342 \layout List
3343 \labelwidthstring 00.00.0000
3343 \labelwidthstring 00.00.0000
3344
3344
3345
3345
3346 \family typewriter
3346 \family typewriter
3347 \series bold
3347 \series bold
3348 -upgrade
3348 -upgrade
3349 \family default
3349 \family default
3350 \series default
3350 \series default
3351 : allows you to upgrade your
3351 : allows you to upgrade your
3352 \family typewriter
3352 \family typewriter
3353 IPYTHONDIR
3353 IPYTHONDIR
3354 \family default
3354 \family default
3355 configuration when you install a new version of IPython.
3355 configuration when you install a new version of IPython.
3356 Since new versions may include new command line options or example files,
3356 Since new versions may include new command line options or example files,
3357 this copies updated ipythonrc-type files.
3357 this copies updated ipythonrc-type files.
3358 However, it backs up (with a
3358 However, it backs up (with a
3359 \family typewriter
3359 \family typewriter
3360 .old
3360 .old
3361 \family default
3361 \family default
3362 extension) all files which it overwrites so that you can merge back any
3362 extension) all files which it overwrites so that you can merge back any
3363 customizations you might have in your personal files.
3363 customizations you might have in your personal files.
3364 \layout List
3364 \layout List
3365 \labelwidthstring 00.00.0000
3365 \labelwidthstring 00.00.0000
3366
3366
3367
3367
3368 \family typewriter
3368 \family typewriter
3369 \series bold
3369 \series bold
3370 -Version
3370 -Version
3371 \series default
3371 \series default
3372 :
3372 :
3373 \family default
3373 \family default
3374 print version information and exit.
3374 print version information and exit.
3375 \layout List
3375 \layout List
3376 \labelwidthstring 00.00.0000
3376 \labelwidthstring 00.00.0000
3377
3377
3378
3378
3379 \family typewriter
3379 \family typewriter
3380 \series bold
3380 \series bold
3381 -xmode <modename>
3381 -xmode <modename>
3382 \series default
3382 \series default
3383 :
3383 :
3384 \family default
3384 \family default
3385 Mode for exception reporting.
3385 Mode for exception reporting.
3386 \layout List
3386 \layout List
3387 \labelwidthstring 00.00.0000
3387 \labelwidthstring 00.00.0000
3388
3388
3389 \SpecialChar ~
3389 \SpecialChar ~
3390 Valid modes: Plain, Context and Verbose.
3390 Valid modes: Plain, Context and Verbose.
3391 \layout List
3391 \layout List
3392 \labelwidthstring 00.00.0000
3392 \labelwidthstring 00.00.0000
3393
3393
3394 \SpecialChar ~
3394 \SpecialChar ~
3395 Plain: similar to python's normal traceback printing.
3395 Plain: similar to python's normal traceback printing.
3396 \layout List
3396 \layout List
3397 \labelwidthstring 00.00.0000
3397 \labelwidthstring 00.00.0000
3398
3398
3399 \SpecialChar ~
3399 \SpecialChar ~
3400 Context: prints 5 lines of context source code around each line in the
3400 Context: prints 5 lines of context source code around each line in the
3401 traceback.
3401 traceback.
3402 \layout List
3402 \layout List
3403 \labelwidthstring 00.00.0000
3403 \labelwidthstring 00.00.0000
3404
3404
3405 \SpecialChar ~
3405 \SpecialChar ~
3406 Verbose: similar to Context, but additionally prints the variables currently
3406 Verbose: similar to Context, but additionally prints the variables currently
3407 visible where the exception happened (shortening their strings if too long).
3407 visible where the exception happened (shortening their strings if too long).
3408 This can potentially be very slow, if you happen to have a huge data structure
3408 This can potentially be very slow, if you happen to have a huge data structure
3409 whose string representation is complex to compute.
3409 whose string representation is complex to compute.
3410 Your computer may appear to freeze for a while with cpu usage at 100%.
3410 Your computer may appear to freeze for a while with cpu usage at 100%.
3411 If this occurs, you can cancel the traceback with Ctrl-C (maybe hitting
3411 If this occurs, you can cancel the traceback with Ctrl-C (maybe hitting
3412 it more than once).
3412 it more than once).
3413 \layout Section
3413 \layout Section
3414
3414
3415 Interactive use
3415 Interactive use
3416 \layout Standard
3416 \layout Standard
3417
3417
3418
3418
3419 \series bold
3419 \series bold
3420 Warning
3420 Warning
3421 \series default
3421 \series default
3422 : IPython relies on the existence of a global variable called
3422 : IPython relies on the existence of a global variable called
3423 \family typewriter
3423 \family typewriter
3424 __IP
3424 __IP
3425 \family default
3425 \family default
3426 which controls the shell itself.
3426 which controls the shell itself.
3427 If you redefine
3427 If you redefine
3428 \family typewriter
3428 \family typewriter
3429 __IP
3429 __IP
3430 \family default
3430 \family default
3431 to anything, bizarre behavior will quickly occur.
3431 to anything, bizarre behavior will quickly occur.
3432 \layout Standard
3432 \layout Standard
3433
3433
3434 Other than the above warning, IPython is meant to work as a drop-in replacement
3434 Other than the above warning, IPython is meant to work as a drop-in replacement
3435 for the standard interactive interpreter.
3435 for the standard interactive interpreter.
3436 As such, any code which is valid python should execute normally under IPython
3436 As such, any code which is valid python should execute normally under IPython
3437 (cases where this is not true should be reported as bugs).
3437 (cases where this is not true should be reported as bugs).
3438 It does, however, offer many features which are not available at a standard
3438 It does, however, offer many features which are not available at a standard
3439 python prompt.
3439 python prompt.
3440 What follows is a list of these.
3440 What follows is a list of these.
3441 \layout Subsection
3441 \layout Subsection
3442
3442
3443 Caution for Windows users
3443 Caution for Windows users
3444 \layout Standard
3444 \layout Standard
3445
3445
3446 Windows, unfortunately, uses the `
3446 Windows, unfortunately, uses the `
3447 \family typewriter
3447 \family typewriter
3448
3448
3449 \backslash
3449 \backslash
3450
3450
3451 \family default
3451 \family default
3452 ' character as a path separator.
3452 ' character as a path separator.
3453 This is a terrible choice, because `
3453 This is a terrible choice, because `
3454 \family typewriter
3454 \family typewriter
3455
3455
3456 \backslash
3456 \backslash
3457
3457
3458 \family default
3458 \family default
3459 ' also represents the escape character in most modern programming languages,
3459 ' also represents the escape character in most modern programming languages,
3460 including Python.
3460 including Python.
3461 For this reason, issuing many of the commands discussed below (especially
3461 For this reason, issuing many of the commands discussed below (especially
3462 magics which affect the filesystem) with `
3462 magics which affect the filesystem) with `
3463 \family typewriter
3463 \family typewriter
3464
3464
3465 \backslash
3465 \backslash
3466
3466
3467 \family default
3467 \family default
3468 ' in them will cause strange errors.
3468 ' in them will cause strange errors.
3469 \layout Standard
3469 \layout Standard
3470
3470
3471 A partial solution is to use instead the `
3471 A partial solution is to use instead the `
3472 \family typewriter
3472 \family typewriter
3473 /
3473 /
3474 \family default
3474 \family default
3475 ' character as a path separator, which Windows recognizes in
3475 ' character as a path separator, which Windows recognizes in
3476 \emph on
3476 \emph on
3477 most
3477 most
3478 \emph default
3478 \emph default
3479 situations.
3479 situations.
3480 However, in Windows commands `
3480 However, in Windows commands `
3481 \family typewriter
3481 \family typewriter
3482 /
3482 /
3483 \family default
3483 \family default
3484 ' flags options, so you can not use it for the root directory.
3484 ' flags options, so you can not use it for the root directory.
3485 This means that paths beginning at the root must be typed in a contrived
3485 This means that paths beginning at the root must be typed in a contrived
3486 manner like:
3486 manner like:
3487 \newline
3487 \newline
3488
3488
3489 \family typewriter
3489 \family typewriter
3490 %copy
3490 %copy
3491 \backslash
3491 \backslash
3492 opt/foo/bar.txt
3492 opt/foo/bar.txt
3493 \backslash
3493 \backslash
3494 tmp
3494 tmp
3495 \layout Standard
3495 \layout Standard
3496
3496
3497 There is no sensible thing IPython can do to truly work around this flaw
3497 There is no sensible thing IPython can do to truly work around this flaw
3498 in Windows
3498 in Windows
3499 \begin_inset Foot
3499 \begin_inset Foot
3500 collapsed true
3500 collapsed true
3501
3501
3502 \layout Standard
3502 \layout Standard
3503
3503
3504 If anyone comes up with a
3504 If anyone comes up with a
3505 \emph on
3505 \emph on
3506 clean
3506 clean
3507 \emph default
3507 \emph default
3508 solution which works consistently and does not negatively impact other
3508 solution which works consistently and does not negatively impact other
3509 platforms at all, I'll gladly accept a patch.
3509 platforms at all, I'll gladly accept a patch.
3510 \end_inset
3510 \end_inset
3511
3511
3512 .
3512 .
3513 \layout Subsection
3513 \layout Subsection
3514
3514
3515
3515
3516 \begin_inset LatexCommand \label{sec:magic}
3516 \begin_inset LatexCommand \label{sec:magic}
3517
3517
3518 \end_inset
3518 \end_inset
3519
3519
3520 Magic command system
3520 Magic command system
3521 \layout Standard
3521 \layout Standard
3522
3522
3523 IPython will treat any line whose first character is a
3523 IPython will treat any line whose first character is a
3524 \family typewriter
3524 \family typewriter
3525 %
3525 %
3526 \family default
3526 \family default
3527 as a special call to a 'magic' function.
3527 as a special call to a 'magic' function.
3528 These allow you to control the behavior of IPython itself, plus a lot of
3528 These allow you to control the behavior of IPython itself, plus a lot of
3529 system-type features.
3529 system-type features.
3530 They are all prefixed with a
3530 They are all prefixed with a
3531 \family typewriter
3531 \family typewriter
3532 %
3532 %
3533 \family default
3533 \family default
3534 character, but parameters are given without parentheses or quotes.
3534 character, but parameters are given without parentheses or quotes.
3535 \layout Standard
3535 \layout Standard
3536
3536
3537 Example: typing
3537 Example: typing
3538 \family typewriter
3538 \family typewriter
3539 '%cd mydir'
3539 '%cd mydir'
3540 \family default
3540 \family default
3541 (without the quotes) changes you working directory to
3541 (without the quotes) changes you working directory to
3542 \family typewriter
3542 \family typewriter
3543 'mydir'
3543 'mydir'
3544 \family default
3544 \family default
3545 , if it exists.
3545 , if it exists.
3546 \layout Standard
3546 \layout Standard
3547
3547
3548 If you have 'automagic' enabled (in your
3548 If you have 'automagic' enabled (in your
3549 \family typewriter
3549 \family typewriter
3550 ipythonrc
3550 ipythonrc
3551 \family default
3551 \family default
3552 file, via the command line option
3552 file, via the command line option
3553 \family typewriter
3553 \family typewriter
3554 -automagic
3554 -automagic
3555 \family default
3555 \family default
3556 or with the
3556 or with the
3557 \family typewriter
3557 \family typewriter
3558 %automagic
3558 %automagic
3559 \family default
3559 \family default
3560 function), you don't need to type in the
3560 function), you don't need to type in the
3561 \family typewriter
3561 \family typewriter
3562 %
3562 %
3563 \family default
3563 \family default
3564 explicitly.
3564 explicitly.
3565 IPython will scan its internal list of magic functions and call one if
3565 IPython will scan its internal list of magic functions and call one if
3566 it exists.
3566 it exists.
3567 With automagic on you can then just type '
3567 With automagic on you can then just type '
3568 \family typewriter
3568 \family typewriter
3569 cd mydir
3569 cd mydir
3570 \family default
3570 \family default
3571 ' to go to directory '
3571 ' to go to directory '
3572 \family typewriter
3572 \family typewriter
3573 mydir
3573 mydir
3574 \family default
3574 \family default
3575 '.
3575 '.
3576 The automagic system has the lowest possible precedence in name searches,
3576 The automagic system has the lowest possible precedence in name searches,
3577 so defining an identifier with the same name as an existing magic function
3577 so defining an identifier with the same name as an existing magic function
3578 will shadow it for automagic use.
3578 will shadow it for automagic use.
3579 You can still access the shadowed magic function by explicitly using the
3579 You can still access the shadowed magic function by explicitly using the
3580
3580
3581 \family typewriter
3581 \family typewriter
3582 %
3582 %
3583 \family default
3583 \family default
3584 character at the beginning of the line.
3584 character at the beginning of the line.
3585 \layout Standard
3585 \layout Standard
3586
3586
3587 An example (with automagic on) should clarify all this:
3587 An example (with automagic on) should clarify all this:
3588 \layout LyX-Code
3588 \layout LyX-Code
3589
3589
3590 In [1]: cd ipython # %cd is called by automagic
3590 In [1]: cd ipython # %cd is called by automagic
3591 \layout LyX-Code
3591 \layout LyX-Code
3592
3592
3593 /home/fperez/ipython
3593 /home/fperez/ipython
3594 \layout LyX-Code
3594 \layout LyX-Code
3595
3595
3596 In [2]: cd=1 # now cd is just a variable
3596 In [2]: cd=1 # now cd is just a variable
3597 \layout LyX-Code
3597 \layout LyX-Code
3598
3598
3599 In [3]: cd ..
3599 In [3]: cd ..
3600 # and doesn't work as a function anymore
3600 # and doesn't work as a function anymore
3601 \layout LyX-Code
3601 \layout LyX-Code
3602
3602
3603 ------------------------------------------------------------
3603 ------------------------------------------------------------
3604 \layout LyX-Code
3604 \layout LyX-Code
3605
3605
3606 File "<console>", line 1
3606 File "<console>", line 1
3607 \layout LyX-Code
3607 \layout LyX-Code
3608
3608
3609 cd ..
3609 cd ..
3610 \layout LyX-Code
3610 \layout LyX-Code
3611
3611
3612 ^
3612 ^
3613 \layout LyX-Code
3613 \layout LyX-Code
3614
3614
3615 SyntaxError: invalid syntax
3615 SyntaxError: invalid syntax
3616 \layout LyX-Code
3616 \layout LyX-Code
3617
3617
3618 \layout LyX-Code
3618 \layout LyX-Code
3619
3619
3620 In [4]: %cd ..
3620 In [4]: %cd ..
3621 # but %cd always works
3621 # but %cd always works
3622 \layout LyX-Code
3622 \layout LyX-Code
3623
3623
3624 /home/fperez
3624 /home/fperez
3625 \layout LyX-Code
3625 \layout LyX-Code
3626
3626
3627 In [5]: del cd # if you remove the cd variable
3627 In [5]: del cd # if you remove the cd variable
3628 \layout LyX-Code
3628 \layout LyX-Code
3629
3629
3630 In [6]: cd ipython # automagic can work again
3630 In [6]: cd ipython # automagic can work again
3631 \layout LyX-Code
3631 \layout LyX-Code
3632
3632
3633 /home/fperez/ipython
3633 /home/fperez/ipython
3634 \layout Standard
3634 \layout Standard
3635
3635
3636 You can define your own magic functions to extend the system.
3636 You can define your own magic functions to extend the system.
3637 The following is a snippet of code which shows how to do it.
3637 The following is a snippet of code which shows how to do it.
3638 It is provided as file
3638 It is provided as file
3639 \family typewriter
3639 \family typewriter
3640 example-magic.py
3640 example-magic.py
3641 \family default
3641 \family default
3642 in the examples directory:
3642 in the examples directory:
3643 \layout Standard
3643 \layout Standard
3644
3644
3645
3645
3646 \begin_inset ERT
3646 \begin_inset ERT
3647 status Open
3647 status Open
3648
3648
3649 \layout Standard
3649 \layout Standard
3650
3650
3651 \backslash
3651 \backslash
3652 codelist{examples/example-magic.py}
3652 codelist{examples/example-magic.py}
3653 \end_inset
3653 \end_inset
3654
3654
3655
3655
3656 \layout Standard
3656 \layout Standard
3657
3657
3658 You can also define your own aliased names for magic functions.
3658 You can also define your own aliased names for magic functions.
3659 In your
3659 In your
3660 \family typewriter
3660 \family typewriter
3661 ipythonrc
3661 ipythonrc
3662 \family default
3662 \family default
3663 file, placing a line like:
3663 file, placing a line like:
3664 \layout Standard
3664 \layout Standard
3665
3665
3666
3666
3667 \family typewriter
3667 \family typewriter
3668 execute __IP.magic_cl = __IP.magic_clear
3668 execute __IP.magic_cl = __IP.magic_clear
3669 \layout Standard
3669 \layout Standard
3670
3670
3671 will define
3671 will define
3672 \family typewriter
3672 \family typewriter
3673 %cl
3673 %cl
3674 \family default
3674 \family default
3675 as a new name for
3675 as a new name for
3676 \family typewriter
3676 \family typewriter
3677 %clear
3677 %clear
3678 \family default
3678 \family default
3679 .
3679 .
3680 \layout Standard
3680 \layout Standard
3681
3681
3682 Type
3682 Type
3683 \family typewriter
3683 \family typewriter
3684 %magic
3684 %magic
3685 \family default
3685 \family default
3686 for more information, including a list of all available magic functions
3686 for more information, including a list of all available magic functions
3687 at any time and their docstrings.
3687 at any time and their docstrings.
3688 You can also type
3688 You can also type
3689 \family typewriter
3689 \family typewriter
3690 %magic_function_name?
3690 %magic_function_name?
3691 \family default
3691 \family default
3692 (see sec.
3692 (see sec.
3693
3693
3694 \begin_inset LatexCommand \ref{sec:dyn-object-info}
3694 \begin_inset LatexCommand \ref{sec:dyn-object-info}
3695
3695
3696 \end_inset
3696 \end_inset
3697
3697
3698 for information on the
3698 for information on the
3699 \family typewriter
3699 \family typewriter
3700 '?'
3700 '?'
3701 \family default
3701 \family default
3702 system) to get information about any particular magic function you are
3702 system) to get information about any particular magic function you are
3703 interested in.
3703 interested in.
3704 \layout Subsubsection
3704 \layout Subsubsection
3705
3705
3706 Magic commands
3706 Magic commands
3707 \layout Standard
3707 \layout Standard
3708
3708
3709 The rest of this section is automatically generated for each release from
3709 The rest of this section is automatically generated for each release from
3710 the docstrings in the IPython code.
3710 the docstrings in the IPython code.
3711 Therefore the formatting is somewhat minimal, but this method has the advantage
3711 Therefore the formatting is somewhat minimal, but this method has the advantage
3712 of having information always in sync with the code.
3712 of having information always in sync with the code.
3713 \layout Standard
3713 \layout Standard
3714
3714
3715 A list of all the magic commands available in IPython's
3715 A list of all the magic commands available in IPython's
3716 \emph on
3716 \emph on
3717 default
3717 default
3718 \emph default
3718 \emph default
3719 installation follows.
3719 installation follows.
3720 This is similar to what you'll see by simply typing
3720 This is similar to what you'll see by simply typing
3721 \family typewriter
3721 \family typewriter
3722 %magic
3722 %magic
3723 \family default
3723 \family default
3724 at the prompt, but that will also give you information about magic commands
3724 at the prompt, but that will also give you information about magic commands
3725 you may have added as part of your personal customizations.
3725 you may have added as part of your personal customizations.
3726 \layout Standard
3726 \layout Standard
3727
3727
3728
3728
3729 \begin_inset Include \input{magic.tex}
3729 \begin_inset Include \input{magic.tex}
3730 preview false
3730 preview false
3731
3731
3732 \end_inset
3732 \end_inset
3733
3733
3734
3734
3735 \layout Subsection
3735 \layout Subsection
3736
3736
3737 Access to the standard Python help
3737 Access to the standard Python help
3738 \layout Standard
3738 \layout Standard
3739
3739
3740 As of Python 2.1, a help system is available with access to object docstrings
3740 As of Python 2.1, a help system is available with access to object docstrings
3741 and the Python manuals.
3741 and the Python manuals.
3742 Simply type
3742 Simply type
3743 \family typewriter
3743 \family typewriter
3744 'help'
3744 'help'
3745 \family default
3745 \family default
3746 (no quotes) to access it.
3746 (no quotes) to access it.
3747 You can also type
3747 You can also type
3748 \family typewriter
3748 \family typewriter
3749 help(object)
3749 help(object)
3750 \family default
3750 \family default
3751 to obtain information about a given object, and
3751 to obtain information about a given object, and
3752 \family typewriter
3752 \family typewriter
3753 help('keyword')
3753 help('keyword')
3754 \family default
3754 \family default
3755 for information on a keyword.
3755 for information on a keyword.
3756 As noted in sec.
3756 As noted in sec.
3757
3757
3758 \begin_inset LatexCommand \ref{sec:help-access}
3758 \begin_inset LatexCommand \ref{sec:help-access}
3759
3759
3760 \end_inset
3760 \end_inset
3761
3761
3762 , you need to properly configure your environment variable
3762 , you need to properly configure your environment variable
3763 \family typewriter
3763 \family typewriter
3764 PYTHONDOCS
3764 PYTHONDOCS
3765 \family default
3765 \family default
3766 for this feature to work correctly.
3766 for this feature to work correctly.
3767 \layout Subsection
3767 \layout Subsection
3768
3768
3769
3769
3770 \begin_inset LatexCommand \label{sec:dyn-object-info}
3770 \begin_inset LatexCommand \label{sec:dyn-object-info}
3771
3771
3772 \end_inset
3772 \end_inset
3773
3773
3774 Dynamic object information
3774 Dynamic object information
3775 \layout Standard
3775 \layout Standard
3776
3776
3777 Typing
3777 Typing
3778 \family typewriter
3778 \family typewriter
3779 ?word
3779 ?word
3780 \family default
3780 \family default
3781 or
3781 or
3782 \family typewriter
3782 \family typewriter
3783 word?
3783 word?
3784 \family default
3784 \family default
3785 prints detailed information about an object.
3785 prints detailed information about an object.
3786 If certain strings in the object are too long (docstrings, code, etc.) they
3786 If certain strings in the object are too long (docstrings, code, etc.) they
3787 get snipped in the center for brevity.
3787 get snipped in the center for brevity.
3788 This system gives access variable types and values, full source code for
3788 This system gives access variable types and values, full source code for
3789 any object (if available), function prototypes and other useful information.
3789 any object (if available), function prototypes and other useful information.
3790 \layout Standard
3790 \layout Standard
3791
3791
3792 Typing
3792 Typing
3793 \family typewriter
3793 \family typewriter
3794 ??word
3794 ??word
3795 \family default
3795 \family default
3796 or
3796 or
3797 \family typewriter
3797 \family typewriter
3798 word??
3798 word??
3799 \family default
3799 \family default
3800 gives access to the full information without snipping long strings.
3800 gives access to the full information without snipping long strings.
3801 Long strings are sent to the screen through the
3801 Long strings are sent to the screen through the
3802 \family typewriter
3802 \family typewriter
3803 less
3803 less
3804 \family default
3804 \family default
3805 pager if longer than the screen and printed otherwise.
3805 pager if longer than the screen and printed otherwise.
3806 On systems lacking the
3806 On systems lacking the
3807 \family typewriter
3807 \family typewriter
3808 less
3808 less
3809 \family default
3809 \family default
3810 command, IPython uses a very basic internal pager.
3810 command, IPython uses a very basic internal pager.
3811 \layout Standard
3811 \layout Standard
3812
3812
3813 The following magic functions are particularly useful for gathering information
3813 The following magic functions are particularly useful for gathering information
3814 about your working environment.
3814 about your working environment.
3815 You can get more details by typing
3815 You can get more details by typing
3816 \family typewriter
3816 \family typewriter
3817 %magic
3817 %magic
3818 \family default
3818 \family default
3819 or querying them individually (use
3819 or querying them individually (use
3820 \family typewriter
3820 \family typewriter
3821 %function_name?
3821 %function_name?
3822 \family default
3822 \family default
3823 with or without the
3823 with or without the
3824 \family typewriter
3824 \family typewriter
3825 %
3825 %
3826 \family default
3826 \family default
3827 ), this is just a summary:
3827 ), this is just a summary:
3828 \layout List
3828 \layout List
3829 \labelwidthstring 00.00.0000
3829 \labelwidthstring 00.00.0000
3830
3830
3831
3831
3832 \family typewriter
3832 \family typewriter
3833 \series bold
3833 \series bold
3834 %pdoc\SpecialChar ~
3834 %pdoc\SpecialChar ~
3835 <object>
3835 <object>
3836 \family default
3836 \family default
3837 \series default
3837 \series default
3838 : Print (or run through a pager if too long) the docstring for an object.
3838 : Print (or run through a pager if too long) the docstring for an object.
3839 If the given object is a class, it will print both the class and the constructo
3839 If the given object is a class, it will print both the class and the constructo
3840 r docstrings.
3840 r docstrings.
3841 \layout List
3841 \layout List
3842 \labelwidthstring 00.00.0000
3842 \labelwidthstring 00.00.0000
3843
3843
3844
3844
3845 \family typewriter
3845 \family typewriter
3846 \series bold
3846 \series bold
3847 %pdef\SpecialChar ~
3847 %pdef\SpecialChar ~
3848 <object>
3848 <object>
3849 \family default
3849 \family default
3850 \series default
3850 \series default
3851 : Print the definition header for any callable object.
3851 : Print the definition header for any callable object.
3852 If the object is a class, print the constructor information.
3852 If the object is a class, print the constructor information.
3853 \layout List
3853 \layout List
3854 \labelwidthstring 00.00.0000
3854 \labelwidthstring 00.00.0000
3855
3855
3856
3856
3857 \family typewriter
3857 \family typewriter
3858 \series bold
3858 \series bold
3859 %psource\SpecialChar ~
3859 %psource\SpecialChar ~
3860 <object>
3860 <object>
3861 \family default
3861 \family default
3862 \series default
3862 \series default
3863 : Print (or run through a pager if too long) the source code for an object.
3863 : Print (or run through a pager if too long) the source code for an object.
3864 \layout List
3864 \layout List
3865 \labelwidthstring 00.00.0000
3865 \labelwidthstring 00.00.0000
3866
3866
3867
3867
3868 \family typewriter
3868 \family typewriter
3869 \series bold
3869 \series bold
3870 %pfile\SpecialChar ~
3870 %pfile\SpecialChar ~
3871 <object>
3871 <object>
3872 \family default
3872 \family default
3873 \series default
3873 \series default
3874 : Show the entire source file where an object was defined via a pager, opening
3874 : Show the entire source file where an object was defined via a pager, opening
3875 it at the line where the object definition begins.
3875 it at the line where the object definition begins.
3876 \layout List
3876 \layout List
3877 \labelwidthstring 00.00.0000
3877 \labelwidthstring 00.00.0000
3878
3878
3879
3879
3880 \family typewriter
3880 \family typewriter
3881 \series bold
3881 \series bold
3882 %who/%whos
3882 %who/%whos
3883 \family default
3883 \family default
3884 \series default
3884 \series default
3885 : These functions give information about identifiers you have defined interactiv
3885 : These functions give information about identifiers you have defined interactiv
3886 ely (not things you loaded or defined in your configuration files).
3886 ely (not things you loaded or defined in your configuration files).
3887
3887
3888 \family typewriter
3888 \family typewriter
3889 %who
3889 %who
3890 \family default
3890 \family default
3891 just prints a list of identifiers and
3891 just prints a list of identifiers and
3892 \family typewriter
3892 \family typewriter
3893 %whos
3893 %whos
3894 \family default
3894 \family default
3895 prints a table with some basic details about each identifier.
3895 prints a table with some basic details about each identifier.
3896 \layout Standard
3896 \layout Standard
3897
3897
3898 Note that the dynamic object information functions (
3898 Note that the dynamic object information functions (
3899 \family typewriter
3899 \family typewriter
3900 ?/??, %pdoc, %pfile, %pdef, %psource
3900 ?/??, %pdoc, %pfile, %pdef, %psource
3901 \family default
3901 \family default
3902 ) give you access to documentation even on things which are not really defined
3902 ) give you access to documentation even on things which are not really defined
3903 as separate identifiers.
3903 as separate identifiers.
3904 Try for example typing
3904 Try for example typing
3905 \family typewriter
3905 \family typewriter
3906 {}.get?
3906 {}.get?
3907 \family default
3907 \family default
3908 or after doing
3908 or after doing
3909 \family typewriter
3909 \family typewriter
3910 import os
3910 import os
3911 \family default
3911 \family default
3912 , type
3912 , type
3913 \family typewriter
3913 \family typewriter
3914 os.path.abspath??
3914 os.path.abspath??
3915 \family default
3915 \family default
3916 .
3916 .
3917 \layout Subsection
3917 \layout Subsection
3918
3918
3919
3919
3920 \begin_inset LatexCommand \label{sec:readline}
3920 \begin_inset LatexCommand \label{sec:readline}
3921
3921
3922 \end_inset
3922 \end_inset
3923
3923
3924 Readline-based features
3924 Readline-based features
3925 \layout Standard
3925 \layout Standard
3926
3926
3927 These features require the GNU readline library, so they won't work if your
3927 These features require the GNU readline library, so they won't work if your
3928 Python installation lacks readline support.
3928 Python installation lacks readline support.
3929 We will first describe the default behavior IPython uses, and then how
3929 We will first describe the default behavior IPython uses, and then how
3930 to change it to suit your preferences.
3930 to change it to suit your preferences.
3931 \layout Subsubsection
3931 \layout Subsubsection
3932
3932
3933 Command line completion
3933 Command line completion
3934 \layout Standard
3934 \layout Standard
3935
3935
3936 At any time, hitting TAB will complete any available python commands or
3936 At any time, hitting TAB will complete any available python commands or
3937 variable names, and show you a list of the possible completions if there's
3937 variable names, and show you a list of the possible completions if there's
3938 no unambiguous one.
3938 no unambiguous one.
3939 It will also complete filenames in the current directory if no python names
3939 It will also complete filenames in the current directory if no python names
3940 match what you've typed so far.
3940 match what you've typed so far.
3941 \layout Subsubsection
3941 \layout Subsubsection
3942
3942
3943 Search command history
3943 Search command history
3944 \layout Standard
3944 \layout Standard
3945
3945
3946 IPython provides two ways for searching through previous input and thus
3946 IPython provides two ways for searching through previous input and thus
3947 reduce the need for repetitive typing:
3947 reduce the need for repetitive typing:
3948 \layout Enumerate
3948 \layout Enumerate
3949
3949
3950 Start typing, and then use
3950 Start typing, and then use
3951 \family typewriter
3951 \family typewriter
3952 Ctrl-p
3952 Ctrl-p
3953 \family default
3953 \family default
3954 (previous,up) and
3954 (previous,up) and
3955 \family typewriter
3955 \family typewriter
3956 Ctrl-n
3956 Ctrl-n
3957 \family default
3957 \family default
3958 (next,down) to search through only the history items that match what you've
3958 (next,down) to search through only the history items that match what you've
3959 typed so far.
3959 typed so far.
3960 If you use
3960 If you use
3961 \family typewriter
3961 \family typewriter
3962 Ctrl-p/Ctrl-n
3962 Ctrl-p/Ctrl-n
3963 \family default
3963 \family default
3964 at a blank prompt, they just behave like normal arrow keys.
3964 at a blank prompt, they just behave like normal arrow keys.
3965 \layout Enumerate
3965 \layout Enumerate
3966
3966
3967 Hit
3967 Hit
3968 \family typewriter
3968 \family typewriter
3969 Ctrl-r
3969 Ctrl-r
3970 \family default
3970 \family default
3971 : opens a search prompt.
3971 : opens a search prompt.
3972 Begin typing and the system searches your history for lines that contain
3972 Begin typing and the system searches your history for lines that contain
3973 what you've typed so far, completing as much as it can.
3973 what you've typed so far, completing as much as it can.
3974 \layout Subsubsection
3974 \layout Subsubsection
3975
3975
3976 Persistent command history across sessions
3976 Persistent command history across sessions
3977 \layout Standard
3977 \layout Standard
3978
3978
3979 IPython will save your input history when it leaves and reload it next time
3979 IPython will save your input history when it leaves and reload it next time
3980 you restart it.
3980 you restart it.
3981 By default, the history file is named
3981 By default, the history file is named
3982 \family typewriter
3982 \family typewriter
3983 $IPYTHONDIR/history
3983 $IPYTHONDIR/history
3984 \family default
3984 \family default
3985 , but if you've loaded a named profile, '
3985 , but if you've loaded a named profile, '
3986 \family typewriter
3986 \family typewriter
3987 -PROFILE_NAME
3987 -PROFILE_NAME
3988 \family default
3988 \family default
3989 ' is appended to the name.
3989 ' is appended to the name.
3990 This allows you to keep separate histories related to various tasks: commands
3990 This allows you to keep separate histories related to various tasks: commands
3991 related to numerical work will not be clobbered by a system shell history,
3991 related to numerical work will not be clobbered by a system shell history,
3992 for example.
3992 for example.
3993 \layout Subsubsection
3993 \layout Subsubsection
3994
3994
3995 Autoindent
3995 Autoindent
3996 \layout Standard
3996 \layout Standard
3997
3997
3998 IPython can recognize lines ending in ':' and indent the next line, while
3998 IPython can recognize lines ending in ':' and indent the next line, while
3999 also un-indenting automatically after 'raise' or 'return'.
3999 also un-indenting automatically after 'raise' or 'return'.
4000
4000
4001 \layout Standard
4001 \layout Standard
4002
4002
4003 This feature uses the readline library, so it will honor your
4003 This feature uses the readline library, so it will honor your
4004 \family typewriter
4004 \family typewriter
4005 ~/.inputrc
4005 ~/.inputrc
4006 \family default
4006 \family default
4007 configuration (or whatever file your
4007 configuration (or whatever file your
4008 \family typewriter
4008 \family typewriter
4009 INPUTRC
4009 INPUTRC
4010 \family default
4010 \family default
4011 variable points to).
4011 variable points to).
4012 Adding the following lines to your
4012 Adding the following lines to your
4013 \family typewriter
4013 \family typewriter
4014 .inputrc
4014 .inputrc
4015 \family default
4015 \family default
4016 file can make indenting/unindenting more convenient (
4016 file can make indenting/unindenting more convenient (
4017 \family typewriter
4017 \family typewriter
4018 M-i
4018 M-i
4019 \family default
4019 \family default
4020 indents,
4020 indents,
4021 \family typewriter
4021 \family typewriter
4022 M-u
4022 M-u
4023 \family default
4023 \family default
4024 unindents):
4024 unindents):
4025 \layout Standard
4025 \layout Standard
4026
4026
4027
4027
4028 \family typewriter
4028 \family typewriter
4029 $if Python
4029 $if Python
4030 \newline
4030 \newline
4031 "
4031 "
4032 \backslash
4032 \backslash
4033 M-i": "\SpecialChar ~
4033 M-i": "\SpecialChar ~
4034 \SpecialChar ~
4034 \SpecialChar ~
4035 \SpecialChar ~
4035 \SpecialChar ~
4036 \SpecialChar ~
4036 \SpecialChar ~
4037 "
4037 "
4038 \newline
4038 \newline
4039 "
4039 "
4040 \backslash
4040 \backslash
4041 M-u": "
4041 M-u": "
4042 \backslash
4042 \backslash
4043 d
4043 d
4044 \backslash
4044 \backslash
4045 d
4045 d
4046 \backslash
4046 \backslash
4047 d
4047 d
4048 \backslash
4048 \backslash
4049 d"
4049 d"
4050 \newline
4050 \newline
4051 $endif
4051 $endif
4052 \layout Standard
4052 \layout Standard
4053
4053
4054 Note that there are 4 spaces between the quote marks after
4054 Note that there are 4 spaces between the quote marks after
4055 \family typewriter
4055 \family typewriter
4056 "M-i"
4056 "M-i"
4057 \family default
4057 \family default
4058 above.
4058 above.
4059 \layout Standard
4059 \layout Standard
4060
4060
4061
4061
4062 \series bold
4062 \series bold
4063 Warning:
4063 Warning:
4064 \series default
4064 \series default
4065 this feature is ON by default, but it can cause problems with the pasting
4065 this feature is ON by default, but it can cause problems with the pasting
4066 of multi-line indented code (the pasted code gets re-indented on each line).
4066 of multi-line indented code (the pasted code gets re-indented on each line).
4067 A magic function
4067 A magic function
4068 \family typewriter
4068 \family typewriter
4069 %autoindent
4069 %autoindent
4070 \family default
4070 \family default
4071 allows you to toggle it on/off at runtime.
4071 allows you to toggle it on/off at runtime.
4072 You can also disable it permanently on in your
4072 You can also disable it permanently on in your
4073 \family typewriter
4073 \family typewriter
4074 ipythonrc
4074 ipythonrc
4075 \family default
4075 \family default
4076 file (set
4076 file (set
4077 \family typewriter
4077 \family typewriter
4078 autoindent 0
4078 autoindent 0
4079 \family default
4079 \family default
4080 ).
4080 ).
4081 \layout Subsubsection
4081 \layout Subsubsection
4082
4082
4083 Customizing readline behavior
4083 Customizing readline behavior
4084 \layout Standard
4084 \layout Standard
4085
4085
4086 All these features are based on the GNU readline library, which has an extremely
4086 All these features are based on the GNU readline library, which has an extremely
4087 customizable interface.
4087 customizable interface.
4088 Normally, readline is configured via a file which defines the behavior
4088 Normally, readline is configured via a file which defines the behavior
4089 of the library; the details of the syntax for this can be found in the
4089 of the library; the details of the syntax for this can be found in the
4090 readline documentation available with your system or on the Internet.
4090 readline documentation available with your system or on the Internet.
4091 IPython doesn't read this file (if it exists) directly, but it does support
4091 IPython doesn't read this file (if it exists) directly, but it does support
4092 passing to readline valid options via a simple interface.
4092 passing to readline valid options via a simple interface.
4093 In brief, you can customize readline by setting the following options in
4093 In brief, you can customize readline by setting the following options in
4094 your
4094 your
4095 \family typewriter
4095 \family typewriter
4096 ipythonrc
4096 ipythonrc
4097 \family default
4097 \family default
4098 configuration file (note that these options can
4098 configuration file (note that these options can
4099 \emph on
4099 \emph on
4100 not
4100 not
4101 \emph default
4101 \emph default
4102 be specified at the command line):
4102 be specified at the command line):
4103 \layout List
4103 \layout List
4104 \labelwidthstring 00.00.0000
4104 \labelwidthstring 00.00.0000
4105
4105
4106
4106
4107 \family typewriter
4107 \family typewriter
4108 \series bold
4108 \series bold
4109 readline_parse_and_bind:
4109 readline_parse_and_bind:
4110 \family default
4110 \family default
4111 \series default
4111 \series default
4112 this option can appear as many times as you want, each time defining a
4112 this option can appear as many times as you want, each time defining a
4113 string to be executed via a
4113 string to be executed via a
4114 \family typewriter
4114 \family typewriter
4115 readline.parse_and_bind()
4115 readline.parse_and_bind()
4116 \family default
4116 \family default
4117 command.
4117 command.
4118 The syntax for valid commands of this kind can be found by reading the
4118 The syntax for valid commands of this kind can be found by reading the
4119 documentation for the GNU readline library, as these commands are of the
4119 documentation for the GNU readline library, as these commands are of the
4120 kind which readline accepts in its configuration file.
4120 kind which readline accepts in its configuration file.
4121 \layout List
4121 \layout List
4122 \labelwidthstring 00.00.0000
4122 \labelwidthstring 00.00.0000
4123
4123
4124
4124
4125 \family typewriter
4125 \family typewriter
4126 \series bold
4126 \series bold
4127 readline_remove_delims:
4127 readline_remove_delims:
4128 \family default
4128 \family default
4129 \series default
4129 \series default
4130 a string of characters to be removed from the default word-delimiters list
4130 a string of characters to be removed from the default word-delimiters list
4131 used by readline, so that completions may be performed on strings which
4131 used by readline, so that completions may be performed on strings which
4132 contain them.
4132 contain them.
4133 Do not change the default value unless you know what you're doing.
4133 Do not change the default value unless you know what you're doing.
4134 \layout List
4134 \layout List
4135 \labelwidthstring 00.00.0000
4135 \labelwidthstring 00.00.0000
4136
4136
4137
4137
4138 \family typewriter
4138 \family typewriter
4139 \series bold
4139 \series bold
4140 readline_omit__names
4140 readline_omit__names
4141 \family default
4141 \family default
4142 \series default
4142 \series default
4143 : when tab-completion is enabled, hitting
4143 : when tab-completion is enabled, hitting
4144 \family typewriter
4144 \family typewriter
4145 <tab>
4145 <tab>
4146 \family default
4146 \family default
4147 after a '
4147 after a '
4148 \family typewriter
4148 \family typewriter
4149 .
4149 .
4150 \family default
4150 \family default
4151 ' in a name will complete all attributes of an object, including all the
4151 ' in a name will complete all attributes of an object, including all the
4152 special methods whose names include double underscores (like
4152 special methods whose names include double underscores (like
4153 \family typewriter
4153 \family typewriter
4154 __getitem__
4154 __getitem__
4155 \family default
4155 \family default
4156 or
4156 or
4157 \family typewriter
4157 \family typewriter
4158 __class__
4158 __class__
4159 \family default
4159 \family default
4160 ).
4160 ).
4161 If you'd rather not see these names by default, you can set this option
4161 If you'd rather not see these names by default, you can set this option
4162 to 1.
4162 to 1.
4163 Note that even when this option is set, you can still see those names by
4163 Note that even when this option is set, you can still see those names by
4164 explicitly typing a
4164 explicitly typing a
4165 \family typewriter
4165 \family typewriter
4166 _
4166 _
4167 \family default
4167 \family default
4168 after the period and hitting
4168 after the period and hitting
4169 \family typewriter
4169 \family typewriter
4170 <tab>
4170 <tab>
4171 \family default
4171 \family default
4172 : '
4172 : '
4173 \family typewriter
4173 \family typewriter
4174 name._<tab>
4174 name._<tab>
4175 \family default
4175 \family default
4176 ' will always complete attribute names starting with '
4176 ' will always complete attribute names starting with '
4177 \family typewriter
4177 \family typewriter
4178 _
4178 _
4179 \family default
4179 \family default
4180 '.
4180 '.
4181 \layout List
4181 \layout List
4182 \labelwidthstring 00.00.0000
4182 \labelwidthstring 00.00.0000
4183
4183
4184 \SpecialChar ~
4184 \SpecialChar ~
4185 This option is off by default so that new users see all attributes of any
4185 This option is off by default so that new users see all attributes of any
4186 objects they are dealing with.
4186 objects they are dealing with.
4187 \layout Standard
4187 \layout Standard
4188
4188
4189 You will find the default values along with a corresponding detailed explanation
4189 You will find the default values along with a corresponding detailed explanation
4190 in your
4190 in your
4191 \family typewriter
4191 \family typewriter
4192 ipythonrc
4192 ipythonrc
4193 \family default
4193 \family default
4194 file.
4194 file.
4195 \layout Subsection
4195 \layout Subsection
4196
4196
4197 Session logging and restoring
4197 Session logging and restoring
4198 \layout Standard
4198 \layout Standard
4199
4199
4200 You can log all input from a session either by starting IPython with the
4200 You can log all input from a session either by starting IPython with the
4201 command line switches
4201 command line switches
4202 \family typewriter
4202 \family typewriter
4203 -log
4203 -log
4204 \family default
4204 \family default
4205 or
4205 or
4206 \family typewriter
4206 \family typewriter
4207 -logfile
4207 -logfile
4208 \family default
4208 \family default
4209 (see sec.
4209 (see sec.
4210
4210
4211 \begin_inset LatexCommand \ref{sec:cmd-line-opts}
4211 \begin_inset LatexCommand \ref{sec:cmd-line-opts}
4212
4212
4213 \end_inset
4213 \end_inset
4214
4214
4215 )or by activating the logging at any moment with the magic function
4215 )or by activating the logging at any moment with the magic function
4216 \family typewriter
4216 \family typewriter
4217 %logstart
4217 %logstart
4218 \family default
4218 \family default
4219 .
4219 .
4220
4220
4221 \layout Standard
4221 \layout Standard
4222
4222
4223 Log files can later be reloaded with the
4223 Log files can later be reloaded with the
4224 \family typewriter
4224 \family typewriter
4225 -logplay
4225 -logplay
4226 \family default
4226 \family default
4227 option and IPython will attempt to 'replay' the log by executing all the
4227 option and IPython will attempt to 'replay' the log by executing all the
4228 lines in it, thus restoring the state of a previous session.
4228 lines in it, thus restoring the state of a previous session.
4229 This feature is not quite perfect, but can still be useful in many cases.
4229 This feature is not quite perfect, but can still be useful in many cases.
4230 \layout Standard
4230 \layout Standard
4231
4231
4232 The log files can also be used as a way to have a permanent record of any
4232 The log files can also be used as a way to have a permanent record of any
4233 code you wrote while experimenting.
4233 code you wrote while experimenting.
4234 Log files are regular text files which you can later open in your favorite
4234 Log files are regular text files which you can later open in your favorite
4235 text editor to extract code or to 'clean them up' before using them to
4235 text editor to extract code or to 'clean them up' before using them to
4236 replay a session.
4236 replay a session.
4237 \layout Standard
4237 \layout Standard
4238
4238
4239 The
4239 The
4240 \family typewriter
4240 \family typewriter
4241 %logstart
4241 %logstart
4242 \family default
4242 \family default
4243 function for activating logging in mid-session is used as follows:
4243 function for activating logging in mid-session is used as follows:
4244 \layout Standard
4244 \layout Standard
4245
4245
4246
4246
4247 \family typewriter
4247 \family typewriter
4248 %logstart [log_name [log_mode]]
4248 %logstart [log_name [log_mode]]
4249 \layout Standard
4249 \layout Standard
4250
4250
4251 If no name is given, it defaults to a file named
4251 If no name is given, it defaults to a file named
4252 \family typewriter
4252 \family typewriter
4253 'log'
4253 'log'
4254 \family default
4254 \family default
4255 in your IPYTHONDIR directory, in
4255 in your IPYTHONDIR directory, in
4256 \family typewriter
4256 \family typewriter
4257 'rotate'
4257 'rotate'
4258 \family default
4258 \family default
4259 mode (see below).
4259 mode (see below).
4260 \layout Standard
4260 \layout Standard
4261
4261
4262 '
4262 '
4263 \family typewriter
4263 \family typewriter
4264 %logstart name
4264 %logstart name
4265 \family default
4265 \family default
4266 ' saves to file
4266 ' saves to file
4267 \family typewriter
4267 \family typewriter
4268 'name'
4268 'name'
4269 \family default
4269 \family default
4270 in
4270 in
4271 \family typewriter
4271 \family typewriter
4272 'backup'
4272 'backup'
4273 \family default
4273 \family default
4274 mode.
4274 mode.
4275 It saves your history up to that point and then continues logging.
4275 It saves your history up to that point and then continues logging.
4276 \layout Standard
4276 \layout Standard
4277
4277
4278
4278
4279 \family typewriter
4279 \family typewriter
4280 %logstart
4280 %logstart
4281 \family default
4281 \family default
4282 takes a second optional parameter: logging mode.
4282 takes a second optional parameter: logging mode.
4283 This can be one of (note that the modes are given unquoted):
4283 This can be one of (note that the modes are given unquoted):
4284 \layout List
4284 \layout List
4285 \labelwidthstring 00.00.0000
4285 \labelwidthstring 00.00.0000
4286
4286
4287
4287
4288 \family typewriter
4288 \family typewriter
4289 over
4289 over
4290 \family default
4290 \family default
4291 : overwrite existing
4291 : overwrite existing
4292 \family typewriter
4292 \family typewriter
4293 log_name
4293 log_name
4294 \family default
4294 \family default
4295 .
4295 .
4296 \layout List
4296 \layout List
4297 \labelwidthstring 00.00.0000
4297 \labelwidthstring 00.00.0000
4298
4298
4299
4299
4300 \family typewriter
4300 \family typewriter
4301 backup
4301 backup
4302 \family default
4302 \family default
4303 : rename (if exists) to
4303 : rename (if exists) to
4304 \family typewriter
4304 \family typewriter
4305 log_name~
4305 log_name~
4306 \family default
4306 \family default
4307 and start
4307 and start
4308 \family typewriter
4308 \family typewriter
4309 log_name
4309 log_name
4310 \family default
4310 \family default
4311 .
4311 .
4312 \layout List
4312 \layout List
4313 \labelwidthstring 00.00.0000
4313 \labelwidthstring 00.00.0000
4314
4314
4315
4315
4316 \family typewriter
4316 \family typewriter
4317 append
4317 append
4318 \family default
4318 \family default
4319 : well, that says it.
4319 : well, that says it.
4320 \layout List
4320 \layout List
4321 \labelwidthstring 00.00.0000
4321 \labelwidthstring 00.00.0000
4322
4322
4323
4323
4324 \family typewriter
4324 \family typewriter
4325 rotate
4325 rotate
4326 \family default
4326 \family default
4327 : create rotating logs
4327 : create rotating logs
4328 \family typewriter
4328 \family typewriter
4329 log_name
4329 log_name
4330 \family default
4330 \family default
4331 .
4331 .
4332 \family typewriter
4332 \family typewriter
4333 1~
4333 1~
4334 \family default
4334 \family default
4335 ,
4335 ,
4336 \family typewriter
4336 \family typewriter
4337 log_name.2~
4337 log_name.2~
4338 \family default
4338 \family default
4339 , etc.
4339 , etc.
4340 \layout Standard
4340 \layout Standard
4341
4341
4342 The
4342 The
4343 \family typewriter
4343 \family typewriter
4344 %logoff
4344 %logoff
4345 \family default
4345 \family default
4346 and
4346 and
4347 \family typewriter
4347 \family typewriter
4348 %logon
4348 %logon
4349 \family default
4349 \family default
4350 functions allow you to temporarily stop and resume logging to a file which
4350 functions allow you to temporarily stop and resume logging to a file which
4351 had previously been started with
4351 had previously been started with
4352 \family typewriter
4352 \family typewriter
4353 %logstart
4353 %logstart
4354 \family default
4354 \family default
4355 .
4355 .
4356 They will fail (with an explanation) if you try to use them before logging
4356 They will fail (with an explanation) if you try to use them before logging
4357 has been started.
4357 has been started.
4358 \layout Subsection
4358 \layout Subsection
4359
4359
4360
4360
4361 \begin_inset LatexCommand \label{sub:System-shell-access}
4361 \begin_inset LatexCommand \label{sub:System-shell-access}
4362
4362
4363 \end_inset
4363 \end_inset
4364
4364
4365 System shell access
4365 System shell access
4366 \layout Standard
4366 \layout Standard
4367
4367
4368 Any input line beginning with a
4368 Any input line beginning with a
4369 \family typewriter
4369 \family typewriter
4370 !
4370 !
4371 \family default
4371 \family default
4372 character is passed verbatim (minus the
4372 character is passed verbatim (minus the
4373 \family typewriter
4373 \family typewriter
4374 !
4374 !
4375 \family default
4375 \family default
4376 , of course) to the underlying operating system.
4376 , of course) to the underlying operating system.
4377 For example, typing
4377 For example, typing
4378 \family typewriter
4378 \family typewriter
4379 !ls
4379 !ls
4380 \family default
4380 \family default
4381 will run
4381 will run
4382 \family typewriter
4382 \family typewriter
4383 'ls'
4383 'ls'
4384 \family default
4384 \family default
4385 in the current directory.
4385 in the current directory.
4386 \layout Subsubsection
4386 \layout Subsubsection
4387
4387
4388 Manual capture of command output
4388 Manual capture of command output
4389 \layout Standard
4389 \layout Standard
4390
4390
4391 If the input line begins with
4391 If the input line begins with
4392 \emph on
4392 \emph on
4393 two
4393 two
4394 \emph default
4394 \emph default
4395 exclamation marks,
4395 exclamation marks,
4396 \family typewriter
4396 \family typewriter
4397 !!
4397 !!
4398 \family default
4398 \family default
4399 , the command is executed but its output is captured and returned as a python
4399 , the command is executed but its output is captured and returned as a python
4400 list, split on newlines.
4400 list, split on newlines.
4401 Any output sent by the subprocess to standard error is printed separately,
4401 Any output sent by the subprocess to standard error is printed separately,
4402 so that the resulting list only captures standard output.
4402 so that the resulting list only captures standard output.
4403 The
4403 The
4404 \family typewriter
4404 \family typewriter
4405 !!
4405 !!
4406 \family default
4406 \family default
4407 syntax is a shorthand for the
4407 syntax is a shorthand for the
4408 \family typewriter
4408 \family typewriter
4409 %sx
4409 %sx
4410 \family default
4410 \family default
4411 magic command.
4411 magic command.
4412 \layout Standard
4412 \layout Standard
4413
4413
4414 Finally, the
4414 Finally, the
4415 \family typewriter
4415 \family typewriter
4416 %sc
4416 %sc
4417 \family default
4417 \family default
4418 magic (short for `shell capture') is similar to
4418 magic (short for `shell capture') is similar to
4419 \family typewriter
4419 \family typewriter
4420 %sx
4420 %sx
4421 \family default
4421 \family default
4422 , but allowing more fine-grained control of the capture details, and storing
4422 , but allowing more fine-grained control of the capture details, and storing
4423 the result directly into a named variable.
4423 the result directly into a named variable.
4424 \layout Standard
4424 \layout Standard
4425
4425
4426 See Sec.\SpecialChar ~
4426 See Sec.\SpecialChar ~
4427
4427
4428 \begin_inset LatexCommand \ref{sec:magic}
4428 \begin_inset LatexCommand \ref{sec:magic}
4429
4429
4430 \end_inset
4430 \end_inset
4431
4431
4432 for details on the magics
4432 for details on the magics
4433 \family typewriter
4433 \family typewriter
4434 %sc
4434 %sc
4435 \family default
4435 \family default
4436 and
4436 and
4437 \family typewriter
4437 \family typewriter
4438 %sx
4438 %sx
4439 \family default
4439 \family default
4440 , or use IPython's own help (
4440 , or use IPython's own help (
4441 \family typewriter
4441 \family typewriter
4442 sc?
4442 sc?
4443 \family default
4443 \family default
4444 and
4444 and
4445 \family typewriter
4445 \family typewriter
4446 sx?
4446 sx?
4447 \family default
4447 \family default
4448 ) for further details.
4448 ) for further details.
4449 \layout Standard
4449 \layout Standard
4450
4450
4451 IPython also allows you to expand the value of python variables when making
4451 IPython also allows you to expand the value of python variables when making
4452 system calls.
4452 system calls.
4453 Any python variable or expression which you prepend with
4453 Any python variable or expression which you prepend with
4454 \family typewriter
4454 \family typewriter
4455 $
4455 $
4456 \family default
4456 \family default
4457 will get expanded before the system call is made.
4457 will get expanded before the system call is made.
4458
4458
4459 \layout Standard
4459 \layout Standard
4460
4460
4461
4461
4462 \family typewriter
4462 \family typewriter
4463 In [1]: pyvar='Hello world'
4463 In [1]: pyvar='Hello world'
4464 \newline
4464 \newline
4465 In [2]: !echo "A python variable: $pyvar"
4465 In [2]: !echo "A python variable: $pyvar"
4466 \newline
4466 \newline
4467 A python variable: Hello world
4467 A python variable: Hello world
4468 \layout Standard
4468 \layout Standard
4469
4469
4470 If you want the shell to actually see a literal
4470 If you want the shell to actually see a literal
4471 \family typewriter
4471 \family typewriter
4472 $
4472 $
4473 \family default
4473 \family default
4474 , you need to type it twice:
4474 , you need to type it twice:
4475 \layout Standard
4475 \layout Standard
4476
4476
4477
4477
4478 \family typewriter
4478 \family typewriter
4479 In [3]: !echo "A system variable: $$HOME"
4479 In [3]: !echo "A system variable: $$HOME"
4480 \newline
4480 \newline
4481 A system variable: /home/fperez
4481 A system variable: /home/fperez
4482 \layout Standard
4482 \layout Standard
4483
4483
4484 You can pass arbitrary expressions, though you'll need to delimit them with
4484 You can pass arbitrary expressions, though you'll need to delimit them with
4485
4485
4486 \family typewriter
4486 \family typewriter
4487 {}
4487 {}
4488 \family default
4488 \family default
4489 if there is ambiguity as to the extent of the expression:
4489 if there is ambiguity as to the extent of the expression:
4490 \layout Standard
4490 \layout Standard
4491
4491
4492
4492
4493 \family typewriter
4493 \family typewriter
4494 In [5]: x=10
4494 In [5]: x=10
4495 \newline
4495 \newline
4496 In [6]: y=20
4496 In [6]: y=20
4497 \newline
4497 \newline
4498 In [13]: !echo $x+y
4498 In [13]: !echo $x+y
4499 \newline
4499 \newline
4500 10+y
4500 10+y
4501 \newline
4501 \newline
4502 In [7]: !echo ${x+y}
4502 In [7]: !echo ${x+y}
4503 \newline
4503 \newline
4504 30
4504 30
4505 \layout Standard
4505 \layout Standard
4506
4506
4507 Even object attributes can be expanded:
4507 Even object attributes can be expanded:
4508 \layout Standard
4508 \layout Standard
4509
4509
4510
4510
4511 \family typewriter
4511 \family typewriter
4512 In [12]: !echo $sys.argv
4512 In [12]: !echo $sys.argv
4513 \newline
4513 \newline
4514 [/home/fperez/usr/bin/ipython]
4514 [/home/fperez/usr/bin/ipython]
4515 \layout Subsection
4515 \layout Subsection
4516
4516
4517 System command aliases
4517 System command aliases
4518 \layout Standard
4518 \layout Standard
4519
4519
4520 The
4520 The
4521 \family typewriter
4521 \family typewriter
4522 %alias
4522 %alias
4523 \family default
4523 \family default
4524 magic function and the
4524 magic function and the
4525 \family typewriter
4525 \family typewriter
4526 alias
4526 alias
4527 \family default
4527 \family default
4528 option in the
4528 option in the
4529 \family typewriter
4529 \family typewriter
4530 ipythonrc
4530 ipythonrc
4531 \family default
4531 \family default
4532 configuration file allow you to define magic functions which are in fact
4532 configuration file allow you to define magic functions which are in fact
4533 system shell commands.
4533 system shell commands.
4534 These aliases can have parameters.
4534 These aliases can have parameters.
4535
4535
4536 \layout Standard
4536 \layout Standard
4537
4537
4538 '
4538 '
4539 \family typewriter
4539 \family typewriter
4540 %alias alias_name cmd
4540 %alias alias_name cmd
4541 \family default
4541 \family default
4542 ' defines '
4542 ' defines '
4543 \family typewriter
4543 \family typewriter
4544 alias_name
4544 alias_name
4545 \family default
4545 \family default
4546 ' as an alias for '
4546 ' as an alias for '
4547 \family typewriter
4547 \family typewriter
4548 cmd
4548 cmd
4549 \family default
4549 \family default
4550 '
4550 '
4551 \layout Standard
4551 \layout Standard
4552
4552
4553 Then, typing '
4553 Then, typing '
4554 \family typewriter
4554 \family typewriter
4555 %alias_name params
4555 %alias_name params
4556 \family default
4556 \family default
4557 ' will execute the system command '
4557 ' will execute the system command '
4558 \family typewriter
4558 \family typewriter
4559 cmd params
4559 cmd params
4560 \family default
4560 \family default
4561 ' (from your underlying operating system).
4561 ' (from your underlying operating system).
4562
4562
4563 \layout Standard
4563 \layout Standard
4564
4564
4565 You can also define aliases with parameters using
4565 You can also define aliases with parameters using
4566 \family typewriter
4566 \family typewriter
4567 %s
4567 %s
4568 \family default
4568 \family default
4569 specifiers (one per parameter).
4569 specifiers (one per parameter).
4570 The following example defines the
4570 The following example defines the
4571 \family typewriter
4571 \family typewriter
4572 %parts
4572 %parts
4573 \family default
4573 \family default
4574 function as an alias to the command '
4574 function as an alias to the command '
4575 \family typewriter
4575 \family typewriter
4576 echo first %s second %s
4576 echo first %s second %s
4577 \family default
4577 \family default
4578 ' where each
4578 ' where each
4579 \family typewriter
4579 \family typewriter
4580 %s
4580 %s
4581 \family default
4581 \family default
4582 will be replaced by a positional parameter to the call to
4582 will be replaced by a positional parameter to the call to
4583 \family typewriter
4583 \family typewriter
4584 %parts:
4584 %parts:
4585 \layout Standard
4585 \layout Standard
4586
4586
4587
4587
4588 \family typewriter
4588 \family typewriter
4589 In [1]: alias parts echo first %s second %s
4589 In [1]: alias parts echo first %s second %s
4590 \newline
4590 \newline
4591 In [2]: %parts A B
4591 In [2]: %parts A B
4592 \newline
4592 \newline
4593 first A second B
4593 first A second B
4594 \newline
4594 \newline
4595 In [3]: %parts A
4595 In [3]: %parts A
4596 \newline
4596 \newline
4597 Incorrect number of arguments: 2 expected.
4597 Incorrect number of arguments: 2 expected.
4598
4598
4599 \newline
4599 \newline
4600 parts is an alias to: 'echo first %s second %s'
4600 parts is an alias to: 'echo first %s second %s'
4601 \layout Standard
4601 \layout Standard
4602
4602
4603 If called with no parameters,
4603 If called with no parameters,
4604 \family typewriter
4604 \family typewriter
4605 %alias
4605 %alias
4606 \family default
4606 \family default
4607 prints the table of currently defined aliases.
4607 prints the table of currently defined aliases.
4608 \layout Standard
4608 \layout Standard
4609
4609
4610 The
4610 The
4611 \family typewriter
4611 \family typewriter
4612 %rehash/rehashx
4612 %rehash/rehashx
4613 \family default
4613 \family default
4614 magics allow you to load your entire
4614 magics allow you to load your entire
4615 \family typewriter
4615 \family typewriter
4616 $PATH
4616 $PATH
4617 \family default
4617 \family default
4618 as ipython aliases.
4618 as ipython aliases.
4619 See their respective docstrings (or sec.\SpecialChar ~
4619 See their respective docstrings (or sec.\SpecialChar ~
4620
4620
4621 \begin_inset LatexCommand \ref{sec:magic}
4621 \begin_inset LatexCommand \ref{sec:magic}
4622
4622
4623 \end_inset
4623 \end_inset
4624
4624
4625 for further details).
4625 for further details).
4626 \layout Subsection
4626 \layout Subsection
4627
4627
4628
4628
4629 \begin_inset LatexCommand \label{sec:dreload}
4629 \begin_inset LatexCommand \label{sec:dreload}
4630
4630
4631 \end_inset
4631 \end_inset
4632
4632
4633 Recursive reload
4633 Recursive reload
4634 \layout Standard
4634 \layout Standard
4635
4635
4636 The
4636 The
4637 \family typewriter
4637 \family typewriter
4638 %dreload
4638 %dreload
4639 \family default
4639 \family default
4640 command does a recursive reload of a module: changes made to the module
4640 command does a recursive reload of a module: changes made to the module
4641 since you imported will actually be available without having to exit.
4641 since you imported will actually be available without having to exit.
4642 \layout Subsection
4642 \layout Subsection
4643
4643
4644 Verbose and colored exception traceback printouts
4644 Verbose and colored exception traceback printouts
4645 \layout Standard
4645 \layout Standard
4646
4646
4647 IPython provides the option to see very detailed exception tracebacks, which
4647 IPython provides the option to see very detailed exception tracebacks, which
4648 can be especially useful when debugging large programs.
4648 can be especially useful when debugging large programs.
4649 You can run any Python file with the
4649 You can run any Python file with the
4650 \family typewriter
4650 \family typewriter
4651 %run
4651 %run
4652 \family default
4652 \family default
4653 function to benefit from these detailed tracebacks.
4653 function to benefit from these detailed tracebacks.
4654 Furthermore, both normal and verbose tracebacks can be colored (if your
4654 Furthermore, both normal and verbose tracebacks can be colored (if your
4655 terminal supports it) which makes them much easier to parse visually.
4655 terminal supports it) which makes them much easier to parse visually.
4656 \layout Standard
4656 \layout Standard
4657
4657
4658 See the magic
4658 See the magic
4659 \family typewriter
4659 \family typewriter
4660 xmode
4660 xmode
4661 \family default
4661 \family default
4662 and
4662 and
4663 \family typewriter
4663 \family typewriter
4664 colors
4664 colors
4665 \family default
4665 \family default
4666 functions for details (just type
4666 functions for details (just type
4667 \family typewriter
4667 \family typewriter
4668 %magic
4668 %magic
4669 \family default
4669 \family default
4670 ).
4670 ).
4671 \layout Standard
4671 \layout Standard
4672
4672
4673 These features are basically a terminal version of Ka-Ping Yee's
4673 These features are basically a terminal version of Ka-Ping Yee's
4674 \family typewriter
4674 \family typewriter
4675 cgitb
4675 cgitb
4676 \family default
4676 \family default
4677 module, now part of the standard Python library.
4677 module, now part of the standard Python library.
4678 \layout Subsection
4678 \layout Subsection
4679
4679
4680
4680
4681 \begin_inset LatexCommand \label{sec:cache_input}
4681 \begin_inset LatexCommand \label{sec:cache_input}
4682
4682
4683 \end_inset
4683 \end_inset
4684
4684
4685 Input caching system
4685 Input caching system
4686 \layout Standard
4686 \layout Standard
4687
4687
4688 IPython offers numbered prompts (In/Out) with input and output caching.
4688 IPython offers numbered prompts (In/Out) with input and output caching.
4689 All input is saved and can be retrieved as variables (besides the usual
4689 All input is saved and can be retrieved as variables (besides the usual
4690 arrow key recall).
4690 arrow key recall).
4691 \layout Standard
4691 \layout Standard
4692
4692
4693 The following GLOBAL variables always exist (so don't overwrite them!):
4693 The following GLOBAL variables always exist (so don't overwrite them!):
4694
4694
4695 \family typewriter
4695 \family typewriter
4696 _i
4696 _i
4697 \family default
4697 \family default
4698 : stores previous input.
4698 : stores previous input.
4699
4699
4700 \family typewriter
4700 \family typewriter
4701 _ii
4701 _ii
4702 \family default
4702 \family default
4703 : next previous.
4703 : next previous.
4704
4704
4705 \family typewriter
4705 \family typewriter
4706 _iii
4706 _iii
4707 \family default
4707 \family default
4708 : next-next previous.
4708 : next-next previous.
4709
4709
4710 \family typewriter
4710 \family typewriter
4711 _ih
4711 _ih
4712 \family default
4712 \family default
4713 : a list of all input
4713 : a list of all input
4714 \family typewriter
4714 \family typewriter
4715 _ih[n]
4715 _ih[n]
4716 \family default
4716 \family default
4717 is the input from line
4717 is the input from line
4718 \family typewriter
4718 \family typewriter
4719 n
4719 n
4720 \family default
4720 \family default
4721 and this list is aliased to the global variable
4721 and this list is aliased to the global variable
4722 \family typewriter
4722 \family typewriter
4723 In
4723 In
4724 \family default
4724 \family default
4725 .
4725 .
4726 If you overwrite
4726 If you overwrite
4727 \family typewriter
4727 \family typewriter
4728 In
4728 In
4729 \family default
4729 \family default
4730 with a variable of your own, you can remake the assignment to the internal
4730 with a variable of your own, you can remake the assignment to the internal
4731 list with a simple
4731 list with a simple
4732 \family typewriter
4732 \family typewriter
4733 'In=_ih'
4733 'In=_ih'
4734 \family default
4734 \family default
4735 .
4735 .
4736 \layout Standard
4736 \layout Standard
4737
4737
4738 Additionally, global variables named
4738 Additionally, global variables named
4739 \family typewriter
4739 \family typewriter
4740 _i<n>
4740 _i<n>
4741 \family default
4741 \family default
4742 are dynamically created (
4742 are dynamically created (
4743 \family typewriter
4743 \family typewriter
4744 <n>
4744 <n>
4745 \family default
4745 \family default
4746 being the prompt counter), such that
4746 being the prompt counter), such that
4747 \newline
4747 \newline
4748
4748
4749 \family typewriter
4749 \family typewriter
4750 _i<n> == _ih[<n>] == In[<n>].
4750 _i<n> == _ih[<n>] == In[<n>].
4751 \layout Standard
4751 \layout Standard
4752
4752
4753 For example, what you typed at prompt 14 is available as
4753 For example, what you typed at prompt 14 is available as
4754 \family typewriter
4754 \family typewriter
4755 _i14,
4755 _i14,
4756 \family default
4756 \family default
4757
4757
4758 \family typewriter
4758 \family typewriter
4759 _ih[14]
4759 _ih[14]
4760 \family default
4760 \family default
4761 and
4761 and
4762 \family typewriter
4762 \family typewriter
4763 In[14]
4763 In[14]
4764 \family default
4764 \family default
4765 .
4765 .
4766 \layout Standard
4766 \layout Standard
4767
4767
4768 This allows you to easily cut and paste multi line interactive prompts by
4768 This allows you to easily cut and paste multi line interactive prompts by
4769 printing them out: they print like a clean string, without prompt characters.
4769 printing them out: they print like a clean string, without prompt characters.
4770 You can also manipulate them like regular variables (they are strings),
4770 You can also manipulate them like regular variables (they are strings),
4771 modify or exec them (typing
4771 modify or exec them (typing
4772 \family typewriter
4772 \family typewriter
4773 'exec _i9'
4773 'exec _i9'
4774 \family default
4774 \family default
4775 will re-execute the contents of input prompt 9, '
4775 will re-execute the contents of input prompt 9, '
4776 \family typewriter
4776 \family typewriter
4777 exec In[9:14]+In[18]
4777 exec In[9:14]+In[18]
4778 \family default
4778 \family default
4779 ' will re-execute lines 9 through 13 and line 18).
4779 ' will re-execute lines 9 through 13 and line 18).
4780 \layout Standard
4780 \layout Standard
4781
4781
4782 You can also re-execute multiple lines of input easily by using the magic
4782 You can also re-execute multiple lines of input easily by using the magic
4783
4783
4784 \family typewriter
4784 \family typewriter
4785 %macro
4785 %macro
4786 \family default
4786 \family default
4787 function (which automates the process and allows re-execution without having
4787 function (which automates the process and allows re-execution without having
4788 to type '
4788 to type '
4789 \family typewriter
4789 \family typewriter
4790 exec
4790 exec
4791 \family default
4791 \family default
4792 ' every time).
4792 ' every time).
4793 The macro system also allows you to re-execute previous lines which include
4793 The macro system also allows you to re-execute previous lines which include
4794 magic function calls (which require special processing).
4794 magic function calls (which require special processing).
4795 Type
4795 Type
4796 \family typewriter
4796 \family typewriter
4797 %macro?
4797 %macro?
4798 \family default
4798 \family default
4799 or see sec.
4799 or see sec.
4800
4800
4801 \begin_inset LatexCommand \ref{sec:magic}
4801 \begin_inset LatexCommand \ref{sec:magic}
4802
4802
4803 \end_inset
4803 \end_inset
4804
4804
4805 for more details on the macro system.
4805 for more details on the macro system.
4806 \layout Standard
4806 \layout Standard
4807
4807
4808 A history function
4808 A history function
4809 \family typewriter
4809 \family typewriter
4810 %hist
4810 %hist
4811 \family default
4811 \family default
4812 allows you to see any part of your input history by printing a range of
4812 allows you to see any part of your input history by printing a range of
4813 the
4813 the
4814 \family typewriter
4814 \family typewriter
4815 _i
4815 _i
4816 \family default
4816 \family default
4817 variables.
4817 variables.
4818 \layout Subsection
4818 \layout Subsection
4819
4819
4820
4820
4821 \begin_inset LatexCommand \label{sec:cache_output}
4821 \begin_inset LatexCommand \label{sec:cache_output}
4822
4822
4823 \end_inset
4823 \end_inset
4824
4824
4825 Output caching system
4825 Output caching system
4826 \layout Standard
4826 \layout Standard
4827
4827
4828 For output that is returned from actions, a system similar to the input
4828 For output that is returned from actions, a system similar to the input
4829 cache exists but using
4829 cache exists but using
4830 \family typewriter
4830 \family typewriter
4831 _
4831 _
4832 \family default
4832 \family default
4833 instead of
4833 instead of
4834 \family typewriter
4834 \family typewriter
4835 _i
4835 _i
4836 \family default
4836 \family default
4837 .
4837 .
4838 Only actions that produce a result (NOT assignments, for example) are cached.
4838 Only actions that produce a result (NOT assignments, for example) are cached.
4839 If you are familiar with Mathematica, IPython's
4839 If you are familiar with Mathematica, IPython's
4840 \family typewriter
4840 \family typewriter
4841 _
4841 _
4842 \family default
4842 \family default
4843 variables behave exactly like Mathematica's
4843 variables behave exactly like Mathematica's
4844 \family typewriter
4844 \family typewriter
4845 %
4845 %
4846 \family default
4846 \family default
4847 variables.
4847 variables.
4848 \layout Standard
4848 \layout Standard
4849
4849
4850 The following GLOBAL variables always exist (so don't overwrite them!):
4850 The following GLOBAL variables always exist (so don't overwrite them!):
4851
4851
4852 \layout List
4852 \layout List
4853 \labelwidthstring 00.00.0000
4853 \labelwidthstring 00.00.0000
4854
4854
4855
4855
4856 \family typewriter
4856 \family typewriter
4857 \series bold
4857 \series bold
4858 _
4858 _
4859 \family default
4859 \family default
4860 \series default
4860 \series default
4861 (a
4861 (a
4862 \emph on
4862 \emph on
4863 single
4863 single
4864 \emph default
4864 \emph default
4865 underscore) : stores previous output, like Python's default interpreter.
4865 underscore) : stores previous output, like Python's default interpreter.
4866 \layout List
4866 \layout List
4867 \labelwidthstring 00.00.0000
4867 \labelwidthstring 00.00.0000
4868
4868
4869
4869
4870 \family typewriter
4870 \family typewriter
4871 \series bold
4871 \series bold
4872 __
4872 __
4873 \family default
4873 \family default
4874 \series default
4874 \series default
4875 (two underscores): next previous.
4875 (two underscores): next previous.
4876 \layout List
4876 \layout List
4877 \labelwidthstring 00.00.0000
4877 \labelwidthstring 00.00.0000
4878
4878
4879
4879
4880 \family typewriter
4880 \family typewriter
4881 \series bold
4881 \series bold
4882 ___
4882 ___
4883 \family default
4883 \family default
4884 \series default
4884 \series default
4885 (three underscores): next-next previous.
4885 (three underscores): next-next previous.
4886 \layout Standard
4886 \layout Standard
4887
4887
4888 Additionally, global variables named
4888 Additionally, global variables named
4889 \family typewriter
4889 \family typewriter
4890 _<n>
4890 _<n>
4891 \family default
4891 \family default
4892 are dynamically created (
4892 are dynamically created (
4893 \family typewriter
4893 \family typewriter
4894 <n>
4894 <n>
4895 \family default
4895 \family default
4896 being the prompt counter), such that the result of output
4896 being the prompt counter), such that the result of output
4897 \family typewriter
4897 \family typewriter
4898 <n>
4898 <n>
4899 \family default
4899 \family default
4900 is always available as
4900 is always available as
4901 \family typewriter
4901 \family typewriter
4902 _<n>
4902 _<n>
4903 \family default
4903 \family default
4904 (don't use the angle brackets, just the number, e.g.
4904 (don't use the angle brackets, just the number, e.g.
4905
4905
4906 \family typewriter
4906 \family typewriter
4907 _21
4907 _21
4908 \family default
4908 \family default
4909 ).
4909 ).
4910 \layout Standard
4910 \layout Standard
4911
4911
4912 These global variables are all stored in a global dictionary (not a list,
4912 These global variables are all stored in a global dictionary (not a list,
4913 since it only has entries for lines which returned a result) available
4913 since it only has entries for lines which returned a result) available
4914 under the names
4914 under the names
4915 \family typewriter
4915 \family typewriter
4916 _oh
4916 _oh
4917 \family default
4917 \family default
4918 and
4918 and
4919 \family typewriter
4919 \family typewriter
4920 Out
4920 Out
4921 \family default
4921 \family default
4922 (similar to
4922 (similar to
4923 \family typewriter
4923 \family typewriter
4924 _ih
4924 _ih
4925 \family default
4925 \family default
4926 and
4926 and
4927 \family typewriter
4927 \family typewriter
4928 In
4928 In
4929 \family default
4929 \family default
4930 ).
4930 ).
4931 So the output from line 12 can be obtained as
4931 So the output from line 12 can be obtained as
4932 \family typewriter
4932 \family typewriter
4933 _12
4933 _12
4934 \family default
4934 \family default
4935 ,
4935 ,
4936 \family typewriter
4936 \family typewriter
4937 Out[12]
4937 Out[12]
4938 \family default
4938 \family default
4939 or
4939 or
4940 \family typewriter
4940 \family typewriter
4941 _oh[12]
4941 _oh[12]
4942 \family default
4942 \family default
4943 .
4943 .
4944 If you accidentally overwrite the
4944 If you accidentally overwrite the
4945 \family typewriter
4945 \family typewriter
4946 Out
4946 Out
4947 \family default
4947 \family default
4948 variable you can recover it by typing
4948 variable you can recover it by typing
4949 \family typewriter
4949 \family typewriter
4950 'Out=_oh
4950 'Out=_oh
4951 \family default
4951 \family default
4952 ' at the prompt.
4952 ' at the prompt.
4953 \layout Standard
4953 \layout Standard
4954
4954
4955 This system obviously can potentially put heavy memory demands on your system,
4955 This system obviously can potentially put heavy memory demands on your system,
4956 since it prevents Python's garbage collector from removing any previously
4956 since it prevents Python's garbage collector from removing any previously
4957 computed results.
4957 computed results.
4958 You can control how many results are kept in memory with the option (at
4958 You can control how many results are kept in memory with the option (at
4959 the command line or in your
4959 the command line or in your
4960 \family typewriter
4960 \family typewriter
4961 ipythonrc
4961 ipythonrc
4962 \family default
4962 \family default
4963 file)
4963 file)
4964 \family typewriter
4964 \family typewriter
4965 cache_size
4965 cache_size
4966 \family default
4966 \family default
4967 .
4967 .
4968 If you set it to 0, the whole system is completely disabled and the prompts
4968 If you set it to 0, the whole system is completely disabled and the prompts
4969 revert to the classic
4969 revert to the classic
4970 \family typewriter
4970 \family typewriter
4971 '>>>'
4971 '>>>'
4972 \family default
4972 \family default
4973 of normal Python.
4973 of normal Python.
4974 \layout Subsection
4974 \layout Subsection
4975
4975
4976 Directory history
4976 Directory history
4977 \layout Standard
4977 \layout Standard
4978
4978
4979 Your history of visited directories is kept in the global list
4979 Your history of visited directories is kept in the global list
4980 \family typewriter
4980 \family typewriter
4981 _dh
4981 _dh
4982 \family default
4982 \family default
4983 , and the magic
4983 , and the magic
4984 \family typewriter
4984 \family typewriter
4985 %cd
4985 %cd
4986 \family default
4986 \family default
4987 command can be used to go to any entry in that list.
4987 command can be used to go to any entry in that list.
4988 The
4988 The
4989 \family typewriter
4989 \family typewriter
4990 %dhist
4990 %dhist
4991 \family default
4991 \family default
4992 command allows you to view this history.
4992 command allows you to view this history.
4993 \layout Subsection
4993 \layout Subsection
4994
4994
4995 Automatic parentheses and quotes
4995 Automatic parentheses and quotes
4996 \layout Standard
4996 \layout Standard
4997
4997
4998 These features were adapted from Nathan Gray's LazyPython.
4998 These features were adapted from Nathan Gray's LazyPython.
4999 They are meant to allow less typing for common situations.
4999 They are meant to allow less typing for common situations.
5000 \layout Subsubsection
5000 \layout Subsubsection
5001
5001
5002 Automatic parentheses
5002 Automatic parentheses
5003 \layout Standard
5003 \layout Standard
5004
5004
5005 Callable objects (i.e.
5005 Callable objects (i.e.
5006 functions, methods, etc) can be invoked like this (notice the commas between
5006 functions, methods, etc) can be invoked like this (notice the commas between
5007 the arguments):
5007 the arguments):
5008 \layout Standard
5008 \layout Standard
5009
5009
5010
5010
5011 \family typewriter
5011 \family typewriter
5012 >>> callable_ob arg1, arg2, arg3
5012 >>> callable_ob arg1, arg2, arg3
5013 \layout Standard
5013 \layout Standard
5014
5014
5015 and the input will be translated to this:
5015 and the input will be translated to this:
5016 \layout Standard
5016 \layout Standard
5017
5017
5018
5018
5019 \family typewriter
5019 \family typewriter
5020 --> callable_ob(arg1, arg2, arg3)
5020 --> callable_ob(arg1, arg2, arg3)
5021 \layout Standard
5021 \layout Standard
5022
5022
5023 You can force automatic parentheses by using '/' as the first character
5023 You can force automatic parentheses by using '/' as the first character
5024 of a line.
5024 of a line.
5025 For example:
5025 For example:
5026 \layout Standard
5026 \layout Standard
5027
5027
5028
5028
5029 \family typewriter
5029 \family typewriter
5030 >>> /globals # becomes 'globals()'
5030 >>> /globals # becomes 'globals()'
5031 \layout Standard
5031 \layout Standard
5032
5032
5033 Note that the '/' MUST be the first character on the line! This won't work:
5033 Note that the '/' MUST be the first character on the line! This won't work:
5034
5034
5035 \layout Standard
5035 \layout Standard
5036
5036
5037
5037
5038 \family typewriter
5038 \family typewriter
5039 >>> print /globals # syntax error
5039 >>> print /globals # syntax error
5040 \layout Standard
5040 \layout Standard
5041
5041
5042 In most cases the automatic algorithm should work, so you should rarely
5042 In most cases the automatic algorithm should work, so you should rarely
5043 need to explicitly invoke /.
5043 need to explicitly invoke /.
5044 One notable exception is if you are trying to call a function with a list
5044 One notable exception is if you are trying to call a function with a list
5045 of tuples as arguments (the parenthesis will confuse IPython):
5045 of tuples as arguments (the parenthesis will confuse IPython):
5046 \layout Standard
5046 \layout Standard
5047
5047
5048
5048
5049 \family typewriter
5049 \family typewriter
5050 In [1]: zip (1,2,3),(4,5,6) # won't work
5050 In [1]: zip (1,2,3),(4,5,6) # won't work
5051 \layout Standard
5051 \layout Standard
5052
5052
5053 but this will work:
5053 but this will work:
5054 \layout Standard
5054 \layout Standard
5055
5055
5056
5056
5057 \family typewriter
5057 \family typewriter
5058 In [2]: /zip (1,2,3),(4,5,6)
5058 In [2]: /zip (1,2,3),(4,5,6)
5059 \newline
5059 \newline
5060 ------> zip ((1,2,3),(4,5,6))
5060 ------> zip ((1,2,3),(4,5,6))
5061 \newline
5061 \newline
5062 Out[2]= [(1, 4), (2, 5), (3, 6)]
5062 Out[2]= [(1, 4), (2, 5), (3, 6)]
5063 \layout Standard
5063 \layout Standard
5064
5064
5065 IPython tells you that it has altered your command line by displaying the
5065 IPython tells you that it has altered your command line by displaying the
5066 new command line preceded by
5066 new command line preceded by
5067 \family typewriter
5067 \family typewriter
5068 -->
5068 -->
5069 \family default
5069 \family default
5070 .
5070 .
5071 e.g.:
5071 e.g.:
5072 \layout Standard
5072 \layout Standard
5073
5073
5074
5074
5075 \family typewriter
5075 \family typewriter
5076 In [18]: callable list
5076 In [18]: callable list
5077 \newline
5077 \newline
5078 -------> callable (list)
5078 -------> callable (list)
5079 \layout Subsubsection
5079 \layout Subsubsection
5080
5080
5081 Automatic quoting
5081 Automatic quoting
5082 \layout Standard
5082 \layout Standard
5083
5083
5084 You can force automatic quoting of a function's arguments by using
5084 You can force automatic quoting of a function's arguments by using
5085 \family typewriter
5085 \family typewriter
5086 `,'
5086 `,'
5087 \family default
5087 \family default
5088 or
5088 or
5089 \family typewriter
5089 \family typewriter
5090 `;'
5090 `;'
5091 \family default
5091 \family default
5092 as the first character of a line.
5092 as the first character of a line.
5093 For example:
5093 For example:
5094 \layout Standard
5094 \layout Standard
5095
5095
5096
5096
5097 \family typewriter
5097 \family typewriter
5098 >>> ,my_function /home/me # becomes my_function("/home/me")
5098 >>> ,my_function /home/me # becomes my_function("/home/me")
5099 \layout Standard
5099 \layout Standard
5100
5100
5101 If you use
5101 If you use
5102 \family typewriter
5102 \family typewriter
5103 `;'
5103 `;'
5104 \family default
5104 \family default
5105 instead, the whole argument is quoted as a single string (while
5105 instead, the whole argument is quoted as a single string (while
5106 \family typewriter
5106 \family typewriter
5107 `,'
5107 `,'
5108 \family default
5108 \family default
5109 splits on whitespace):
5109 splits on whitespace):
5110 \layout Standard
5110 \layout Standard
5111
5111
5112
5112
5113 \family typewriter
5113 \family typewriter
5114 >>> ,my_function a b c # becomes my_function("a","b","c")
5114 >>> ,my_function a b c # becomes my_function("a","b","c")
5115 \layout Standard
5115 \layout Standard
5116
5116
5117
5117
5118 \family typewriter
5118 \family typewriter
5119 >>> ;my_function a b c # becomes my_function("a b c")
5119 >>> ;my_function a b c # becomes my_function("a b c")
5120 \layout Standard
5120 \layout Standard
5121
5121
5122 Note that the `
5122 Note that the `
5123 \family typewriter
5123 \family typewriter
5124 ,
5124 ,
5125 \family default
5125 \family default
5126 ' or `
5126 ' or `
5127 \family typewriter
5127 \family typewriter
5128 ;
5128 ;
5129 \family default
5129 \family default
5130 ' MUST be the first character on the line! This won't work:
5130 ' MUST be the first character on the line! This won't work:
5131 \layout Standard
5131 \layout Standard
5132
5132
5133
5133
5134 \family typewriter
5134 \family typewriter
5135 >>> x = ,my_function /home/me # syntax error
5135 >>> x = ,my_function /home/me # syntax error
5136 \layout Section
5136 \layout Section
5137
5137
5138
5138
5139 \begin_inset LatexCommand \label{sec:customization}
5139 \begin_inset LatexCommand \label{sec:customization}
5140
5140
5141 \end_inset
5141 \end_inset
5142
5142
5143 Customization
5143 Customization
5144 \layout Standard
5144 \layout Standard
5145
5145
5146 As we've already mentioned, IPython reads a configuration file which can
5146 As we've already mentioned, IPython reads a configuration file which can
5147 be specified at the command line (
5147 be specified at the command line (
5148 \family typewriter
5148 \family typewriter
5149 -rcfile
5149 -rcfile
5150 \family default
5150 \family default
5151 ) or which by default is assumed to be called
5151 ) or which by default is assumed to be called
5152 \family typewriter
5152 \family typewriter
5153 ipythonrc
5153 ipythonrc
5154 \family default
5154 \family default
5155 .
5155 .
5156 Such a file is looked for in the current directory where IPython is started
5156 Such a file is looked for in the current directory where IPython is started
5157 and then in your
5157 and then in your
5158 \family typewriter
5158 \family typewriter
5159 IPYTHONDIR
5159 IPYTHONDIR
5160 \family default
5160 \family default
5161 , which allows you to have local configuration files for specific projects.
5161 , which allows you to have local configuration files for specific projects.
5162 In this section we will call these types of configuration files simply
5162 In this section we will call these types of configuration files simply
5163 rcfiles (short for resource configuration file).
5163 rcfiles (short for resource configuration file).
5164 \layout Standard
5164 \layout Standard
5165
5165
5166 The syntax of an rcfile is one of key-value pairs separated by whitespace,
5166 The syntax of an rcfile is one of key-value pairs separated by whitespace,
5167 one per line.
5167 one per line.
5168 Lines beginning with a
5168 Lines beginning with a
5169 \family typewriter
5169 \family typewriter
5170 #
5170 #
5171 \family default
5171 \family default
5172 are ignored as comments, but comments can
5172 are ignored as comments, but comments can
5173 \series bold
5173 \series bold
5174 not
5174 not
5175 \series default
5175 \series default
5176 be put on lines with data (the parser is fairly primitive).
5176 be put on lines with data (the parser is fairly primitive).
5177 Note that these are not python files, and this is deliberate, because it
5177 Note that these are not python files, and this is deliberate, because it
5178 allows us to do some things which would be quite tricky to implement if
5178 allows us to do some things which would be quite tricky to implement if
5179 they were normal python files.
5179 they were normal python files.
5180 \layout Standard
5180 \layout Standard
5181
5181
5182 First, an rcfile can contain permanent default values for almost all command
5182 First, an rcfile can contain permanent default values for almost all command
5183 line options (except things like
5183 line options (except things like
5184 \family typewriter
5184 \family typewriter
5185 -help
5185 -help
5186 \family default
5186 \family default
5187 or
5187 or
5188 \family typewriter
5188 \family typewriter
5189 -Version
5189 -Version
5190 \family default
5190 \family default
5191 ).
5191 ).
5192 Sec\SpecialChar ~
5192 Sec\SpecialChar ~
5193
5193
5194 \begin_inset LatexCommand \ref{sec:cmd-line-opts}
5194 \begin_inset LatexCommand \ref{sec:cmd-line-opts}
5195
5195
5196 \end_inset
5196 \end_inset
5197
5197
5198 contains a description of all command-line options.
5198 contains a description of all command-line options.
5199 However, values you explicitly specify at the command line override the
5199 However, values you explicitly specify at the command line override the
5200 values defined in the rcfile.
5200 values defined in the rcfile.
5201 \layout Standard
5201 \layout Standard
5202
5202
5203 Besides command line option values, the rcfile can specify values for certain
5203 Besides command line option values, the rcfile can specify values for certain
5204 extra special options which are not available at the command line.
5204 extra special options which are not available at the command line.
5205 These options are briefly described below.
5205 These options are briefly described below.
5206
5206
5207 \layout Standard
5207 \layout Standard
5208
5208
5209 Each of these options may appear as many times as you need it in the file.
5209 Each of these options may appear as many times as you need it in the file.
5210 \layout List
5210 \layout List
5211 \labelwidthstring 00.00.0000
5211 \labelwidthstring 00.00.0000
5212
5212
5213
5213
5214 \family typewriter
5214 \family typewriter
5215 \series bold
5215 \series bold
5216 include\SpecialChar ~
5216 include\SpecialChar ~
5217 <file1>\SpecialChar ~
5217 <file1>\SpecialChar ~
5218 <file2>\SpecialChar ~
5218 <file2>\SpecialChar ~
5219 ...
5219 ...
5220 \family default
5220 \family default
5221 \series default
5221 \series default
5222 : you can name
5222 : you can name
5223 \emph on
5223 \emph on
5224 other
5224 other
5225 \emph default
5225 \emph default
5226 rcfiles you want to recursively load up to 15 levels (don't use the
5226 rcfiles you want to recursively load up to 15 levels (don't use the
5227 \family typewriter
5227 \family typewriter
5228 <>
5228 <>
5229 \family default
5229 \family default
5230 brackets in your names!).
5230 brackets in your names!).
5231 This feature allows you to define a 'base' rcfile with general options
5231 This feature allows you to define a 'base' rcfile with general options
5232 and special-purpose files which can be loaded only when needed with particular
5232 and special-purpose files which can be loaded only when needed with particular
5233 configuration options.
5233 configuration options.
5234 To make this more convenient, IPython accepts the
5234 To make this more convenient, IPython accepts the
5235 \family typewriter
5235 \family typewriter
5236 -profile <name>
5236 -profile <name>
5237 \family default
5237 \family default
5238 option (abbreviates to
5238 option (abbreviates to
5239 \family typewriter
5239 \family typewriter
5240 -p <name
5240 -p <name
5241 \family default
5241 \family default
5242 >)
5242 >)
5243 \family typewriter
5243 \family typewriter
5244 which
5244 which
5245 \family default
5245 \family default
5246 tells it to look for an rcfile named
5246 tells it to look for an rcfile named
5247 \family typewriter
5247 \family typewriter
5248 ipythonrc-<name>
5248 ipythonrc-<name>
5249 \family default
5249 \family default
5250 .
5250 .
5251
5251
5252 \layout List
5252 \layout List
5253 \labelwidthstring 00.00.0000
5253 \labelwidthstring 00.00.0000
5254
5254
5255
5255
5256 \family typewriter
5256 \family typewriter
5257 \series bold
5257 \series bold
5258 import_mod\SpecialChar ~
5258 import_mod\SpecialChar ~
5259 <mod1>\SpecialChar ~
5259 <mod1>\SpecialChar ~
5260 <mod2>\SpecialChar ~
5260 <mod2>\SpecialChar ~
5261 ...
5261 ...
5262 \family default
5262 \family default
5263 \series default
5263 \series default
5264 : import modules with '
5264 : import modules with '
5265 \family typewriter
5265 \family typewriter
5266 import
5266 import
5267 \family default
5267 \family default
5268
5268
5269 \family typewriter
5269 \family typewriter
5270 <mod1>,<mod2>,...
5270 <mod1>,<mod2>,...
5271 \family default
5271 \family default
5272 '
5272 '
5273 \layout List
5273 \layout List
5274 \labelwidthstring 00.00.0000
5274 \labelwidthstring 00.00.0000
5275
5275
5276
5276
5277 \family typewriter
5277 \family typewriter
5278 \series bold
5278 \series bold
5279 import_some\SpecialChar ~
5279 import_some\SpecialChar ~
5280 <mod>\SpecialChar ~
5280 <mod>\SpecialChar ~
5281 <f1>\SpecialChar ~
5281 <f1>\SpecialChar ~
5282 <f2>\SpecialChar ~
5282 <f2>\SpecialChar ~
5283 ...
5283 ...
5284 \family default
5284 \family default
5285 \series default
5285 \series default
5286 : import functions with '
5286 : import functions with '
5287 \family typewriter
5287 \family typewriter
5288 from <mod> import
5288 from <mod> import
5289 \family default
5289 \family default
5290
5290
5291 \family typewriter
5291 \family typewriter
5292 <f1>,<f2>,...
5292 <f1>,<f2>,...
5293 \family default
5293 \family default
5294 '
5294 '
5295 \layout List
5295 \layout List
5296 \labelwidthstring 00.00.0000
5296 \labelwidthstring 00.00.0000
5297
5297
5298
5298
5299 \family typewriter
5299 \family typewriter
5300 \series bold
5300 \series bold
5301 import_all\SpecialChar ~
5301 import_all\SpecialChar ~
5302 <mod1>\SpecialChar ~
5302 <mod1>\SpecialChar ~
5303 <mod2>\SpecialChar ~
5303 <mod2>\SpecialChar ~
5304 ...
5304 ...
5305 \family default
5305 \family default
5306 \series default
5306 \series default
5307 : for each module listed import functions with '
5307 : for each module listed import functions with '
5308 \family typewriter
5308 \family typewriter
5309 from <mod> import *
5309 from <mod> import *
5310 \family default
5310 \family default
5311 '
5311 '
5312 \layout List
5312 \layout List
5313 \labelwidthstring 00.00.0000
5313 \labelwidthstring 00.00.0000
5314
5314
5315
5315
5316 \family typewriter
5316 \family typewriter
5317 \series bold
5317 \series bold
5318 execute\SpecialChar ~
5318 execute\SpecialChar ~
5319 <python\SpecialChar ~
5319 <python\SpecialChar ~
5320 code>
5320 code>
5321 \family default
5321 \family default
5322 \series default
5322 \series default
5323 : give any single-line python code to be executed.
5323 : give any single-line python code to be executed.
5324 \layout List
5324 \layout List
5325 \labelwidthstring 00.00.0000
5325 \labelwidthstring 00.00.0000
5326
5326
5327
5327
5328 \family typewriter
5328 \family typewriter
5329 \series bold
5329 \series bold
5330 execfile\SpecialChar ~
5330 execfile\SpecialChar ~
5331 <filename>
5331 <filename>
5332 \family default
5332 \family default
5333 \series default
5333 \series default
5334 : execute the python file given with an '
5334 : execute the python file given with an '
5335 \family typewriter
5335 \family typewriter
5336 execfile(filename)
5336 execfile(filename)
5337 \family default
5337 \family default
5338 ' command.
5338 ' command.
5339 Username expansion is performed on the given names.
5339 Username expansion is performed on the given names.
5340 So if you need any amount of extra fancy customization that won't fit in
5340 So if you need any amount of extra fancy customization that won't fit in
5341 any of the above 'canned' options, you can just put it in a separate python
5341 any of the above 'canned' options, you can just put it in a separate python
5342 file and execute it.
5342 file and execute it.
5343 \layout List
5343 \layout List
5344 \labelwidthstring 00.00.0000
5344 \labelwidthstring 00.00.0000
5345
5345
5346
5346
5347 \family typewriter
5347 \family typewriter
5348 \series bold
5348 \series bold
5349 alias\SpecialChar ~
5349 alias\SpecialChar ~
5350 <alias_def>
5350 <alias_def>
5351 \family default
5351 \family default
5352 \series default
5352 \series default
5353 : this is equivalent to calling '
5353 : this is equivalent to calling '
5354 \family typewriter
5354 \family typewriter
5355 %alias\SpecialChar ~
5355 %alias\SpecialChar ~
5356 <alias_def>
5356 <alias_def>
5357 \family default
5357 \family default
5358 ' at the IPython command line.
5358 ' at the IPython command line.
5359 This way, from within IPython you can do common system tasks without having
5359 This way, from within IPython you can do common system tasks without having
5360 to exit it or use the
5360 to exit it or use the
5361 \family typewriter
5361 \family typewriter
5362 !
5362 !
5363 \family default
5363 \family default
5364 escape.
5364 escape.
5365 IPython isn't meant to be a shell replacement, but it is often very useful
5365 IPython isn't meant to be a shell replacement, but it is often very useful
5366 to be able to do things with files while testing code.
5366 to be able to do things with files while testing code.
5367 This gives you the flexibility to have within IPython any aliases you may
5367 This gives you the flexibility to have within IPython any aliases you may
5368 be used to under your normal system shell.
5368 be used to under your normal system shell.
5369 \layout Subsection
5369 \layout Subsection
5370
5370
5371
5371
5372 \begin_inset LatexCommand \label{sec:ipytonrc-sample}
5372 \begin_inset LatexCommand \label{sec:ipytonrc-sample}
5373
5373
5374 \end_inset
5374 \end_inset
5375
5375
5376 Sample
5376 Sample
5377 \family typewriter
5377 \family typewriter
5378 ipythonrc
5378 ipythonrc
5379 \family default
5379 \family default
5380 file
5380 file
5381 \layout Standard
5381 \layout Standard
5382
5382
5383 The default rcfile, called
5383 The default rcfile, called
5384 \family typewriter
5384 \family typewriter
5385 ipythonrc
5385 ipythonrc
5386 \family default
5386 \family default
5387 and supplied in your
5387 and supplied in your
5388 \family typewriter
5388 \family typewriter
5389 IPYTHONDIR
5389 IPYTHONDIR
5390 \family default
5390 \family default
5391 directory contains lots of comments on all of these options.
5391 directory contains lots of comments on all of these options.
5392 We reproduce it here for reference:
5392 We reproduce it here for reference:
5393 \layout Standard
5393 \layout Standard
5394
5394
5395
5395
5396 \begin_inset ERT
5396 \begin_inset ERT
5397 status Open
5397 status Open
5398
5398
5399 \layout Standard
5399 \layout Standard
5400
5400
5401 \backslash
5401 \backslash
5402 codelist{../IPython/UserConfig/ipythonrc}
5402 codelist{../IPython/UserConfig/ipythonrc}
5403 \end_inset
5403 \end_inset
5404
5404
5405
5405
5406 \layout Subsection
5406 \layout Subsection
5407
5407
5408
5408
5409 \begin_inset LatexCommand \label{sec:prompts}
5409 \begin_inset LatexCommand \label{sec:prompts}
5410
5410
5411 \end_inset
5411 \end_inset
5412
5412
5413 Fine-tuning your prompt
5413 Fine-tuning your prompt
5414 \layout Standard
5414 \layout Standard
5415
5415
5416 IPython's prompts can be customized using a syntax similar to that of the
5416 IPython's prompts can be customized using a syntax similar to that of the
5417
5417
5418 \family typewriter
5418 \family typewriter
5419 bash
5419 bash
5420 \family default
5420 \family default
5421 shell.
5421 shell.
5422 Many of
5422 Many of
5423 \family typewriter
5423 \family typewriter
5424 bash
5424 bash
5425 \family default
5425 \family default
5426 's escapes are supported, as well as a few additional ones.
5426 's escapes are supported, as well as a few additional ones.
5427 We list them below:
5427 We list them below:
5428 \layout Description
5428 \layout Description
5429
5429
5430
5430
5431 \backslash
5431 \backslash
5432 # the prompt/history count number
5432 # the prompt/history count number
5433 \layout Description
5433 \layout Description
5434
5434
5435
5435
5436 \backslash
5436 \backslash
5437 D the prompt/history count, with the actual digits replaced by dots.
5437 D the prompt/history count, with the actual digits replaced by dots.
5438 Used mainly in continuation prompts (prompt_in2)
5438 Used mainly in continuation prompts (prompt_in2)
5439 \layout Description
5439 \layout Description
5440
5440
5441
5441
5442 \backslash
5442 \backslash
5443 w the current working directory
5443 w the current working directory
5444 \layout Description
5444 \layout Description
5445
5445
5446
5446
5447 \backslash
5447 \backslash
5448 W the basename of current working directory
5448 W the basename of current working directory
5449 \layout Description
5449 \layout Description
5450
5450
5451
5451
5452 \backslash
5452 \backslash
5453 X
5453 X
5454 \emph on
5454 \emph on
5455 n
5455 n
5456 \emph default
5456 \emph default
5457 where
5457 where
5458 \begin_inset Formula $n=0\ldots5.$
5458 \begin_inset Formula $n=0\ldots5.$
5459 \end_inset
5459 \end_inset
5460
5460
5461 The current working directory, with
5461 The current working directory, with
5462 \family typewriter
5462 \family typewriter
5463 $HOME
5463 $HOME
5464 \family default
5464 \family default
5465 replaced by
5465 replaced by
5466 \family typewriter
5466 \family typewriter
5467 ~
5467 ~
5468 \family default
5468 \family default
5469 , and filtered out to contain only
5469 , and filtered out to contain only
5470 \begin_inset Formula $n$
5470 \begin_inset Formula $n$
5471 \end_inset
5471 \end_inset
5472
5472
5473 path elements
5473 path elements
5474 \layout Description
5474 \layout Description
5475
5475
5476
5476
5477 \backslash
5477 \backslash
5478 Y
5478 Y
5479 \emph on
5479 \emph on
5480 n
5480 n
5481 \emph default
5481 \emph default
5482 Similar to
5482 Similar to
5483 \backslash
5483 \backslash
5484 X
5484 X
5485 \emph on
5485 \emph on
5486 n
5486 n
5487 \emph default
5487 \emph default
5488 , but with the
5488 , but with the
5489 \begin_inset Formula $n+1$
5489 \begin_inset Formula $n+1$
5490 \end_inset
5490 \end_inset
5491
5491
5492 element included if it is
5492 element included if it is
5493 \family typewriter
5493 \family typewriter
5494 ~
5494 ~
5495 \family default
5495 \family default
5496 (this is similar to the behavior of the %c
5496 (this is similar to the behavior of the %c
5497 \emph on
5497 \emph on
5498 n
5498 n
5499 \emph default
5499 \emph default
5500 escapes in
5500 escapes in
5501 \family typewriter
5501 \family typewriter
5502 tcsh
5502 tcsh
5503 \family default
5503 \family default
5504 )
5504 )
5505 \layout Description
5505 \layout Description
5506
5506
5507
5507
5508 \backslash
5508 \backslash
5509 u the username of the current user
5509 u the username of the current user
5510 \layout Description
5510 \layout Description
5511
5511
5512
5512
5513 \backslash
5513 \backslash
5514 $ if the effective UID is 0, a #, otherwise a $
5514 $ if the effective UID is 0, a #, otherwise a $
5515 \layout Description
5515 \layout Description
5516
5516
5517
5517
5518 \backslash
5518 \backslash
5519 h the hostname up to the first `.'
5519 h the hostname up to the first `.'
5520 \layout Description
5520 \layout Description
5521
5521
5522
5522
5523 \backslash
5523 \backslash
5524 H the hostname
5524 H the hostname
5525 \layout Description
5525 \layout Description
5526
5526
5527
5527
5528 \backslash
5528 \backslash
5529 n a newline
5529 n a newline
5530 \layout Description
5530 \layout Description
5531
5531
5532
5532
5533 \backslash
5533 \backslash
5534 r a carriage return
5534 r a carriage return
5535 \layout Description
5535 \layout Description
5536
5536
5537
5537
5538 \backslash
5538 \backslash
5539 v IPython version string
5539 v IPython version string
5540 \layout Standard
5540 \layout Standard
5541
5541
5542 In addition to these, ANSI color escapes can be insterted into the prompts,
5542 In addition to these, ANSI color escapes can be insterted into the prompts,
5543 as
5543 as
5544 \family typewriter
5544 \family typewriter
5545
5545
5546 \backslash
5546 \backslash
5547 C_
5547 C_
5548 \emph on
5548 \emph on
5549 ColorName
5549 ColorName
5550 \family default
5550 \family default
5551 \emph default
5551 \emph default
5552 .
5552 .
5553 The list of valid color names is: Black, Blue, Brown, Cyan, DarkGray, Green,
5553 The list of valid color names is: Black, Blue, Brown, Cyan, DarkGray, Green,
5554 LightBlue, LightCyan, LightGray, LightGreen, LightPurple, LightRed, NoColor,
5554 LightBlue, LightCyan, LightGray, LightGreen, LightPurple, LightRed, NoColor,
5555 Normal, Purple, Red, White, Yellow.
5555 Normal, Purple, Red, White, Yellow.
5556 \layout Standard
5556 \layout Standard
5557
5557
5558 Finally, IPython supports the evaluation of arbitrary expressions in your
5558 Finally, IPython supports the evaluation of arbitrary expressions in your
5559 prompt string.
5559 prompt string.
5560 The prompt strings are evaluated through the syntax of PEP 215, but basically
5560 The prompt strings are evaluated through the syntax of PEP 215, but basically
5561 you can use
5561 you can use
5562 \family typewriter
5562 \family typewriter
5563 $x.y
5563 $x.y
5564 \family default
5564 \family default
5565 to expand the value of
5565 to expand the value of
5566 \family typewriter
5566 \family typewriter
5567 x.y
5567 x.y
5568 \family default
5568 \family default
5569 , and for more complicated expressions you can use braces:
5569 , and for more complicated expressions you can use braces:
5570 \family typewriter
5570 \family typewriter
5571 ${foo()+x}
5571 ${foo()+x}
5572 \family default
5572 \family default
5573 will call function
5573 will call function
5574 \family typewriter
5574 \family typewriter
5575 foo
5575 foo
5576 \family default
5576 \family default
5577 and add to it the value of
5577 and add to it the value of
5578 \family typewriter
5578 \family typewriter
5579 x
5579 x
5580 \family default
5580 \family default
5581 , before putting the result into your prompt.
5581 , before putting the result into your prompt.
5582 For example, using
5582 For example, using
5583 \newline
5583 \newline
5584
5584
5585 \family typewriter
5585 \family typewriter
5586 prompt_in1 '${commands.getoutput("uptime")}
5586 prompt_in1 '${commands.getoutput("uptime")}
5587 \backslash
5587 \backslash
5588 nIn [
5588 nIn [
5589 \backslash
5589 \backslash
5590 #]: '
5590 #]: '
5591 \newline
5591 \newline
5592
5592
5593 \family default
5593 \family default
5594 will print the result of the uptime command on each prompt (assuming the
5594 will print the result of the uptime command on each prompt (assuming the
5595
5595
5596 \family typewriter
5596 \family typewriter
5597 commands
5597 commands
5598 \family default
5598 \family default
5599 module has been imported in your
5599 module has been imported in your
5600 \family typewriter
5600 \family typewriter
5601 ipythonrc
5601 ipythonrc
5602 \family default
5602 \family default
5603 file).
5603 file).
5604 \layout Subsubsection
5604 \layout Subsubsection
5605
5605
5606 Prompt examples
5606 Prompt examples
5607 \layout Standard
5607 \layout Standard
5608
5608
5609 The following options in an ipythonrc file will give you IPython's default
5609 The following options in an ipythonrc file will give you IPython's default
5610 prompts:
5610 prompts:
5611 \layout Standard
5611 \layout Standard
5612
5612
5613
5613
5614 \family typewriter
5614 \family typewriter
5615 prompt_in1 'In [
5615 prompt_in1 'In [
5616 \backslash
5616 \backslash
5617 #]:'
5617 #]:'
5618 \newline
5618 \newline
5619 prompt_in2 '\SpecialChar ~
5619 prompt_in2 '\SpecialChar ~
5620 \SpecialChar ~
5620 \SpecialChar ~
5621 \SpecialChar ~
5621 \SpecialChar ~
5622 .
5622 .
5623 \backslash
5623 \backslash
5624 D.:'
5624 D.:'
5625 \newline
5625 \newline
5626 prompt_out 'Out[
5626 prompt_out 'Out[
5627 \backslash
5627 \backslash
5628 #]:'
5628 #]:'
5629 \layout Standard
5629 \layout Standard
5630
5630
5631 which look like this:
5631 which look like this:
5632 \layout Standard
5632 \layout Standard
5633
5633
5634
5634
5635 \family typewriter
5635 \family typewriter
5636 In [1]: 1+2
5636 In [1]: 1+2
5637 \newline
5637 \newline
5638 Out[1]: 3
5638 Out[1]: 3
5639 \layout Standard
5639 \layout Standard
5640
5640
5641
5641
5642 \family typewriter
5642 \family typewriter
5643 In [2]: for i in (1,2,3):
5643 In [2]: for i in (1,2,3):
5644 \newline
5644 \newline
5645
5645
5646 \begin_inset ERT
5646 \begin_inset ERT
5647 status Collapsed
5647 status Collapsed
5648
5648
5649 \layout Standard
5649 \layout Standard
5650
5650
5651 \backslash
5651 \backslash
5652 hspace*{0mm}
5652 hspace*{0mm}
5653 \end_inset
5653 \end_inset
5654
5654
5655 \SpecialChar ~
5655 \SpecialChar ~
5656 \SpecialChar ~
5656 \SpecialChar ~
5657 \SpecialChar ~
5657 \SpecialChar ~
5658 ...: \SpecialChar ~
5658 ...: \SpecialChar ~
5659 \SpecialChar ~
5659 \SpecialChar ~
5660 \SpecialChar ~
5660 \SpecialChar ~
5661 \SpecialChar ~
5661 \SpecialChar ~
5662 print i,
5662 print i,
5663 \newline
5663 \newline
5664
5664
5665 \begin_inset ERT
5665 \begin_inset ERT
5666 status Collapsed
5666 status Collapsed
5667
5667
5668 \layout Standard
5668 \layout Standard
5669
5669
5670 \backslash
5670 \backslash
5671 hspace*{0mm}
5671 hspace*{0mm}
5672 \end_inset
5672 \end_inset
5673
5673
5674 \SpecialChar ~
5674 \SpecialChar ~
5675 \SpecialChar ~
5675 \SpecialChar ~
5676 \SpecialChar ~
5676 \SpecialChar ~
5677 ...:
5677 ...:
5678 \newline
5678 \newline
5679 1 2 3
5679 1 2 3
5680 \layout Standard
5680 \layout Standard
5681
5681
5682 These will give you a very colorful prompt with path information:
5682 These will give you a very colorful prompt with path information:
5683 \layout Standard
5683 \layout Standard
5684
5684
5685
5685
5686 \family typewriter
5686 \family typewriter
5687 #prompt_in1 '
5687 #prompt_in1 '
5688 \backslash
5688 \backslash
5689 C_Red
5689 C_Red
5690 \backslash
5690 \backslash
5691 u
5691 u
5692 \backslash
5692 \backslash
5693 C_Blue[
5693 C_Blue[
5694 \backslash
5694 \backslash
5695 C_Cyan
5695 C_Cyan
5696 \backslash
5696 \backslash
5697 Y1
5697 Y1
5698 \backslash
5698 \backslash
5699 C_Blue]
5699 C_Blue]
5700 \backslash
5700 \backslash
5701 C_LightGreen
5701 C_LightGreen
5702 \backslash
5702 \backslash
5703 #>'
5703 #>'
5704 \newline
5704 \newline
5705 prompt_in2 ' ..
5705 prompt_in2 ' ..
5706 \backslash
5706 \backslash
5707 D>'
5707 D>'
5708 \newline
5708 \newline
5709 prompt_out '<
5709 prompt_out '<
5710 \backslash
5710 \backslash
5711 #>'
5711 #>'
5712 \layout Standard
5712 \layout Standard
5713
5713
5714 which look like this:
5714 which look like this:
5715 \layout Standard
5715 \layout Standard
5716
5716
5717
5717
5718 \family typewriter
5718 \family typewriter
5719 \color red
5719 \color red
5720 fperez
5720 fperez
5721 \color blue
5721 \color blue
5722 [
5722 [
5723 \color cyan
5723 \color cyan
5724 ~/ipython
5724 ~/ipython
5725 \color blue
5725 \color blue
5726 ]
5726 ]
5727 \color green
5727 \color green
5728 1>
5728 1>
5729 \color default
5729 \color default
5730 1+2
5730 1+2
5731 \newline
5731 \newline
5732
5732
5733 \begin_inset ERT
5733 \begin_inset ERT
5734 status Collapsed
5734 status Collapsed
5735
5735
5736 \layout Standard
5736 \layout Standard
5737
5737
5738 \backslash
5738 \backslash
5739 hspace*{0mm}
5739 hspace*{0mm}
5740 \end_inset
5740 \end_inset
5741
5741
5742 \SpecialChar ~
5742 \SpecialChar ~
5743 \SpecialChar ~
5743 \SpecialChar ~
5744 \SpecialChar ~
5744 \SpecialChar ~
5745 \SpecialChar ~
5745 \SpecialChar ~
5746 \SpecialChar ~
5746 \SpecialChar ~
5747 \SpecialChar ~
5747 \SpecialChar ~
5748 \SpecialChar ~
5748 \SpecialChar ~
5749 \SpecialChar ~
5749 \SpecialChar ~
5750 \SpecialChar ~
5750 \SpecialChar ~
5751 \SpecialChar ~
5751 \SpecialChar ~
5752 \SpecialChar ~
5752 \SpecialChar ~
5753 \SpecialChar ~
5753 \SpecialChar ~
5754 \SpecialChar ~
5754 \SpecialChar ~
5755 \SpecialChar ~
5755 \SpecialChar ~
5756 \SpecialChar ~
5756 \SpecialChar ~
5757 \SpecialChar ~
5757 \SpecialChar ~
5758
5758
5759 \color red
5759 \color red
5760 <1>
5760 <1>
5761 \color default
5761 \color default
5762 3
5762 3
5763 \newline
5763 \newline
5764
5764
5765 \color red
5765 \color red
5766 fperez
5766 fperez
5767 \color blue
5767 \color blue
5768 [
5768 [
5769 \color cyan
5769 \color cyan
5770 ~/ipython
5770 ~/ipython
5771 \color blue
5771 \color blue
5772 ]
5772 ]
5773 \color green
5773 \color green
5774 2>
5774 2>
5775 \color default
5775 \color default
5776 for i in (1,2,3):
5776 for i in (1,2,3):
5777 \newline
5777 \newline
5778
5778
5779 \begin_inset ERT
5779 \begin_inset ERT
5780 status Collapsed
5780 status Collapsed
5781
5781
5782 \layout Standard
5782 \layout Standard
5783
5783
5784 \backslash
5784 \backslash
5785 hspace*{0mm}
5785 hspace*{0mm}
5786 \end_inset
5786 \end_inset
5787
5787
5788 \SpecialChar ~
5788 \SpecialChar ~
5789 \SpecialChar ~
5789 \SpecialChar ~
5790 \SpecialChar ~
5790 \SpecialChar ~
5791 \SpecialChar ~
5791 \SpecialChar ~
5792 \SpecialChar ~
5792 \SpecialChar ~
5793 \SpecialChar ~
5793 \SpecialChar ~
5794 \SpecialChar ~
5794 \SpecialChar ~
5795 \SpecialChar ~
5795 \SpecialChar ~
5796 \SpecialChar ~
5796 \SpecialChar ~
5797 \SpecialChar ~
5797 \SpecialChar ~
5798 \SpecialChar ~
5798 \SpecialChar ~
5799 \SpecialChar ~
5799 \SpecialChar ~
5800 \SpecialChar ~
5800 \SpecialChar ~
5801 \SpecialChar ~
5801 \SpecialChar ~
5802 \SpecialChar ~
5802 \SpecialChar ~
5803
5803
5804 \color green
5804 \color green
5805 ...>
5805 ...>
5806 \color default
5806 \color default
5807 \SpecialChar ~
5807 \SpecialChar ~
5808 \SpecialChar ~
5808 \SpecialChar ~
5809 \SpecialChar ~
5809 \SpecialChar ~
5810 \SpecialChar ~
5810 \SpecialChar ~
5811 print i,
5811 print i,
5812 \newline
5812 \newline
5813
5813
5814 \begin_inset ERT
5814 \begin_inset ERT
5815 status Collapsed
5815 status Collapsed
5816
5816
5817 \layout Standard
5817 \layout Standard
5818
5818
5819 \backslash
5819 \backslash
5820 hspace*{0mm}
5820 hspace*{0mm}
5821 \end_inset
5821 \end_inset
5822
5822
5823 \SpecialChar ~
5823 \SpecialChar ~
5824 \SpecialChar ~
5824 \SpecialChar ~
5825 \SpecialChar ~
5825 \SpecialChar ~
5826 \SpecialChar ~
5826 \SpecialChar ~
5827 \SpecialChar ~
5827 \SpecialChar ~
5828 \SpecialChar ~
5828 \SpecialChar ~
5829 \SpecialChar ~
5829 \SpecialChar ~
5830 \SpecialChar ~
5830 \SpecialChar ~
5831 \SpecialChar ~
5831 \SpecialChar ~
5832 \SpecialChar ~
5832 \SpecialChar ~
5833 \SpecialChar ~
5833 \SpecialChar ~
5834 \SpecialChar ~
5834 \SpecialChar ~
5835 \SpecialChar ~
5835 \SpecialChar ~
5836 \SpecialChar ~
5836 \SpecialChar ~
5837 \SpecialChar ~
5837 \SpecialChar ~
5838
5838
5839 \color green
5839 \color green
5840 ...>
5840 ...>
5841 \color default
5841 \color default
5842
5842
5843 \newline
5843 \newline
5844 1 2 3
5844 1 2 3
5845 \layout Standard
5845 \layout Standard
5846
5846
5847 The following shows the usage of dynamic expression evaluation:
5847 The following shows the usage of dynamic expression evaluation:
5848 \layout Subsection
5848 \layout Subsection
5849
5849
5850
5850
5851 \begin_inset LatexCommand \label{sec:profiles}
5851 \begin_inset LatexCommand \label{sec:profiles}
5852
5852
5853 \end_inset
5853 \end_inset
5854
5854
5855 IPython profiles
5855 IPython profiles
5856 \layout Standard
5856 \layout Standard
5857
5857
5858 As we already mentioned, IPython supports the
5858 As we already mentioned, IPython supports the
5859 \family typewriter
5859 \family typewriter
5860 -profile
5860 -profile
5861 \family default
5861 \family default
5862 command-line option (see sec.
5862 command-line option (see sec.
5863
5863
5864 \begin_inset LatexCommand \ref{sec:cmd-line-opts}
5864 \begin_inset LatexCommand \ref{sec:cmd-line-opts}
5865
5865
5866 \end_inset
5866 \end_inset
5867
5867
5868 ).
5868 ).
5869 A profile is nothing more than a particular configuration file like your
5869 A profile is nothing more than a particular configuration file like your
5870 basic
5870 basic
5871 \family typewriter
5871 \family typewriter
5872 ipythonrc
5872 ipythonrc
5873 \family default
5873 \family default
5874 one, but with particular customizations for a specific purpose.
5874 one, but with particular customizations for a specific purpose.
5875 When you start IPython with '
5875 When you start IPython with '
5876 \family typewriter
5876 \family typewriter
5877 ipython -profile <name>
5877 ipython -profile <name>
5878 \family default
5878 \family default
5879 ', it assumes that in your
5879 ', it assumes that in your
5880 \family typewriter
5880 \family typewriter
5881 IPYTHONDIR
5881 IPYTHONDIR
5882 \family default
5882 \family default
5883 there is a file called
5883 there is a file called
5884 \family typewriter
5884 \family typewriter
5885 ipythonrc-<name>
5885 ipythonrc-<name>
5886 \family default
5886 \family default
5887 , and loads it instead of the normal
5887 , and loads it instead of the normal
5888 \family typewriter
5888 \family typewriter
5889 ipythonrc
5889 ipythonrc
5890 \family default
5890 \family default
5891 .
5891 .
5892 \layout Standard
5892 \layout Standard
5893
5893
5894 This system allows you to maintain multiple configurations which load modules,
5894 This system allows you to maintain multiple configurations which load modules,
5895 set options, define functions, etc.
5895 set options, define functions, etc.
5896 suitable for different tasks and activate them in a very simple manner.
5896 suitable for different tasks and activate them in a very simple manner.
5897 In order to avoid having to repeat all of your basic options (common things
5897 In order to avoid having to repeat all of your basic options (common things
5898 that don't change such as your color preferences, for example), any profile
5898 that don't change such as your color preferences, for example), any profile
5899 can include another configuration file.
5899 can include another configuration file.
5900 The most common way to use profiles is then to have each one include your
5900 The most common way to use profiles is then to have each one include your
5901 basic
5901 basic
5902 \family typewriter
5902 \family typewriter
5903 ipythonrc
5903 ipythonrc
5904 \family default
5904 \family default
5905 file as a starting point, and then add further customizations.
5905 file as a starting point, and then add further customizations.
5906 \layout Standard
5906 \layout Standard
5907
5907
5908 In sections
5908 In sections
5909 \begin_inset LatexCommand \ref{sec:syntax-extensions}
5909 \begin_inset LatexCommand \ref{sec:syntax-extensions}
5910
5910
5911 \end_inset
5911 \end_inset
5912
5912
5913 and
5913 and
5914 \begin_inset LatexCommand \ref{sec:Gnuplot}
5914 \begin_inset LatexCommand \ref{sec:Gnuplot}
5915
5915
5916 \end_inset
5916 \end_inset
5917
5917
5918 we discuss some particular profiles which come as part of the standard
5918 we discuss some particular profiles which come as part of the standard
5919 IPython distribution.
5919 IPython distribution.
5920 You may also look in your
5920 You may also look in your
5921 \family typewriter
5921 \family typewriter
5922 IPYTHONDIR
5922 IPYTHONDIR
5923 \family default
5923 \family default
5924 directory, any file whose name begins with
5924 directory, any file whose name begins with
5925 \family typewriter
5925 \family typewriter
5926 ipythonrc-
5926 ipythonrc-
5927 \family default
5927 \family default
5928 is a profile.
5928 is a profile.
5929 You can use those as examples for further customizations to suit your own
5929 You can use those as examples for further customizations to suit your own
5930 needs.
5930 needs.
5931 \layout Section
5931 \layout Section
5932
5932
5933
5933
5934 \begin_inset OptArg
5934 \begin_inset OptArg
5935 collapsed false
5935 collapsed false
5936
5936
5937 \layout Standard
5937 \layout Standard
5938
5938
5939 IPython as default...
5939 IPython as default...
5940 \end_inset
5940 \end_inset
5941
5941
5942 IPython as your default Python environment
5942 IPython as your default Python environment
5943 \layout Standard
5943 \layout Standard
5944
5944
5945 Python honors the environment variable
5945 Python honors the environment variable
5946 \family typewriter
5946 \family typewriter
5947 PYTHONSTARTUP
5947 PYTHONSTARTUP
5948 \family default
5948 \family default
5949 and will execute at startup the file referenced by this variable.
5949 and will execute at startup the file referenced by this variable.
5950 If you put at the end of this file the following two lines of code:
5950 If you put at the end of this file the following two lines of code:
5951 \layout Standard
5951 \layout Standard
5952
5952
5953
5953
5954 \family typewriter
5954 \family typewriter
5955 import IPython
5955 import IPython
5956 \newline
5956 \newline
5957 IPython.Shell.IPShell().mainloop(sys_exit=1)
5957 IPython.Shell.IPShell().mainloop(sys_exit=1)
5958 \layout Standard
5958 \layout Standard
5959
5959
5960 then IPython will be your working environment anytime you start Python.
5960 then IPython will be your working environment anytime you start Python.
5961 The
5961 The
5962 \family typewriter
5962 \family typewriter
5963 sys_exit=1
5963 sys_exit=1
5964 \family default
5964 \family default
5965 is needed to have IPython issue a call to
5965 is needed to have IPython issue a call to
5966 \family typewriter
5966 \family typewriter
5967 sys.exit()
5967 sys.exit()
5968 \family default
5968 \family default
5969 when it finishes, otherwise you'll be back at the normal Python '
5969 when it finishes, otherwise you'll be back at the normal Python '
5970 \family typewriter
5970 \family typewriter
5971 >>>
5971 >>>
5972 \family default
5972 \family default
5973 ' prompt
5973 ' prompt
5974 \begin_inset Foot
5974 \begin_inset Foot
5975 collapsed true
5975 collapsed true
5976
5976
5977 \layout Standard
5977 \layout Standard
5978
5978
5979 Based on an idea by Holger Krekel.
5979 Based on an idea by Holger Krekel.
5980 \end_inset
5980 \end_inset
5981
5981
5982 .
5982 .
5983 \layout Standard
5983 \layout Standard
5984
5984
5985 This is probably useful to developers who manage multiple Python versions
5985 This is probably useful to developers who manage multiple Python versions
5986 and don't want to have correspondingly multiple IPython versions.
5986 and don't want to have correspondingly multiple IPython versions.
5987 Note that in this mode, there is no way to pass IPython any command-line
5987 Note that in this mode, there is no way to pass IPython any command-line
5988 options, as those are trapped first by Python itself.
5988 options, as those are trapped first by Python itself.
5989 \layout Section
5989 \layout Section
5990
5990
5991
5991
5992 \begin_inset LatexCommand \label{sec:embed}
5992 \begin_inset LatexCommand \label{sec:embed}
5993
5993
5994 \end_inset
5994 \end_inset
5995
5995
5996 Embedding IPython
5996 Embedding IPython
5997 \layout Standard
5997 \layout Standard
5998
5998
5999 It is possible to start an IPython instance
5999 It is possible to start an IPython instance
6000 \emph on
6000 \emph on
6001 inside
6001 inside
6002 \emph default
6002 \emph default
6003 your own Python programs.
6003 your own Python programs.
6004 This allows you to evaluate dynamically the state of your code, operate
6004 This allows you to evaluate dynamically the state of your code, operate
6005 with your variables, analyze them, etc.
6005 with your variables, analyze them, etc.
6006 Note however that any changes you make to values while in the shell do
6006 Note however that any changes you make to values while in the shell do
6007
6007
6008 \emph on
6008 \emph on
6009 not
6009 not
6010 \emph default
6010 \emph default
6011 propagate back to the running code, so it is safe to modify your values
6011 propagate back to the running code, so it is safe to modify your values
6012 because you won't break your code in bizarre ways by doing so.
6012 because you won't break your code in bizarre ways by doing so.
6013 \layout Standard
6013 \layout Standard
6014
6014
6015 This feature allows you to easily have a fully functional python environment
6015 This feature allows you to easily have a fully functional python environment
6016 for doing object introspection anywhere in your code with a simple function
6016 for doing object introspection anywhere in your code with a simple function
6017 call.
6017 call.
6018 In some cases a simple print statement is enough, but if you need to do
6018 In some cases a simple print statement is enough, but if you need to do
6019 more detailed analysis of a code fragment this feature can be very valuable.
6019 more detailed analysis of a code fragment this feature can be very valuable.
6020 \layout Standard
6020 \layout Standard
6021
6021
6022 It can also be useful in scientific computing situations where it is common
6022 It can also be useful in scientific computing situations where it is common
6023 to need to do some automatic, computationally intensive part and then stop
6023 to need to do some automatic, computationally intensive part and then stop
6024 to look at data, plots, etc
6024 to look at data, plots, etc
6025 \begin_inset Foot
6025 \begin_inset Foot
6026 collapsed true
6026 collapsed true
6027
6027
6028 \layout Standard
6028 \layout Standard
6029
6029
6030 This functionality was inspired by IDL's combination of the
6030 This functionality was inspired by IDL's combination of the
6031 \family typewriter
6031 \family typewriter
6032 stop
6032 stop
6033 \family default
6033 \family default
6034 keyword and the
6034 keyword and the
6035 \family typewriter
6035 \family typewriter
6036 .continue
6036 .continue
6037 \family default
6037 \family default
6038 executive command, which I have found very useful in the past, and by a
6038 executive command, which I have found very useful in the past, and by a
6039 posting on comp.lang.python by cmkl <cmkleffner-AT-gmx.de> on Dec.
6039 posting on comp.lang.python by cmkl <cmkleffner-AT-gmx.de> on Dec.
6040 06/01 concerning similar uses of pyrepl.
6040 06/01 concerning similar uses of pyrepl.
6041 \end_inset
6041 \end_inset
6042
6042
6043 .
6043 .
6044 Opening an IPython instance will give you full access to your data and
6044 Opening an IPython instance will give you full access to your data and
6045 functions, and you can resume program execution once you are done with
6045 functions, and you can resume program execution once you are done with
6046 the interactive part (perhaps to stop again later, as many times as needed).
6046 the interactive part (perhaps to stop again later, as many times as needed).
6047 \layout Standard
6047 \layout Standard
6048
6048
6049 The following code snippet is the bare minimum you need to include in your
6049 The following code snippet is the bare minimum you need to include in your
6050 Python programs for this to work (detailed examples follow later):
6050 Python programs for this to work (detailed examples follow later):
6051 \layout LyX-Code
6051 \layout LyX-Code
6052
6052
6053 from IPython.Shell import IPShellEmbed
6053 from IPython.Shell import IPShellEmbed
6054 \layout LyX-Code
6054 \layout LyX-Code
6055
6055
6056 ipshell = IPShellEmbed()
6056 ipshell = IPShellEmbed()
6057 \layout LyX-Code
6057 \layout LyX-Code
6058
6058
6059 ipshell() # this call anywhere in your program will start IPython
6059 ipshell() # this call anywhere in your program will start IPython
6060 \layout Standard
6060 \layout Standard
6061
6061
6062 You can run embedded instances even in code which is itself being run at
6062 You can run embedded instances even in code which is itself being run at
6063 the IPython interactive prompt with '
6063 the IPython interactive prompt with '
6064 \family typewriter
6064 \family typewriter
6065 %run\SpecialChar ~
6065 %run\SpecialChar ~
6066 <filename>
6066 <filename>
6067 \family default
6067 \family default
6068 '.
6068 '.
6069 Since it's easy to get lost as to where you are (in your top-level IPython
6069 Since it's easy to get lost as to where you are (in your top-level IPython
6070 or in your embedded one), it's a good idea in such cases to set the in/out
6070 or in your embedded one), it's a good idea in such cases to set the in/out
6071 prompts to something different for the embedded instances.
6071 prompts to something different for the embedded instances.
6072 The code examples below illustrate this.
6072 The code examples below illustrate this.
6073 \layout Standard
6073 \layout Standard
6074
6074
6075 You can also have multiple IPython instances in your program and open them
6075 You can also have multiple IPython instances in your program and open them
6076 separately, for example with different options for data presentation.
6076 separately, for example with different options for data presentation.
6077 If you close and open the same instance multiple times, its prompt counters
6077 If you close and open the same instance multiple times, its prompt counters
6078 simply continue from each execution to the next.
6078 simply continue from each execution to the next.
6079 \layout Standard
6079 \layout Standard
6080
6080
6081 Please look at the docstrings in the
6081 Please look at the docstrings in the
6082 \family typewriter
6082 \family typewriter
6083 Shell.py
6083 Shell.py
6084 \family default
6084 \family default
6085 module for more details on the use of this system.
6085 module for more details on the use of this system.
6086 \layout Standard
6086 \layout Standard
6087
6087
6088 The following sample file illustrating how to use the embedding functionality
6088 The following sample file illustrating how to use the embedding functionality
6089 is provided in the examples directory as
6089 is provided in the examples directory as
6090 \family typewriter
6090 \family typewriter
6091 example-embed.py
6091 example-embed.py
6092 \family default
6092 \family default
6093 .
6093 .
6094 It should be fairly self-explanatory:
6094 It should be fairly self-explanatory:
6095 \layout Standard
6095 \layout Standard
6096
6096
6097
6097
6098 \begin_inset ERT
6098 \begin_inset ERT
6099 status Open
6099 status Open
6100
6100
6101 \layout Standard
6101 \layout Standard
6102
6102
6103 \backslash
6103 \backslash
6104 codelist{examples/example-embed.py}
6104 codelist{examples/example-embed.py}
6105 \end_inset
6105 \end_inset
6106
6106
6107
6107
6108 \layout Standard
6108 \layout Standard
6109
6109
6110 Once you understand how the system functions, you can use the following
6110 Once you understand how the system functions, you can use the following
6111 code fragments in your programs which are ready for cut and paste:
6111 code fragments in your programs which are ready for cut and paste:
6112 \layout Standard
6112 \layout Standard
6113
6113
6114
6114
6115 \begin_inset ERT
6115 \begin_inset ERT
6116 status Open
6116 status Open
6117
6117
6118 \layout Standard
6118 \layout Standard
6119
6119
6120 \backslash
6120 \backslash
6121 codelist{examples/example-embed-short.py}
6121 codelist{examples/example-embed-short.py}
6122 \end_inset
6122 \end_inset
6123
6123
6124
6124
6125 \layout Section
6125 \layout Section
6126
6126
6127
6127
6128 \begin_inset LatexCommand \label{sec:using-pdb}
6128 \begin_inset LatexCommand \label{sec:using-pdb}
6129
6129
6130 \end_inset
6130 \end_inset
6131
6131
6132 Using the Python debugger (
6132 Using the Python debugger (
6133 \family typewriter
6133 \family typewriter
6134 pdb
6134 pdb
6135 \family default
6135 \family default
6136 )
6136 )
6137 \layout Subsection
6137 \layout Subsection
6138
6138
6139 Running entire programs via
6139 Running entire programs via
6140 \family typewriter
6140 \family typewriter
6141 pdb
6141 pdb
6142 \layout Standard
6142 \layout Standard
6143
6143
6144
6144
6145 \family typewriter
6145 \family typewriter
6146 pdb
6146 pdb
6147 \family default
6147 \family default
6148 , the Python debugger, is a powerful interactive debugger which allows you
6148 , the Python debugger, is a powerful interactive debugger which allows you
6149 to step through code, set breakpoints, watch variables, etc.
6149 to step through code, set breakpoints, watch variables, etc.
6150 IPython makes it very easy to start any script under the control of
6150 IPython makes it very easy to start any script under the control of
6151 \family typewriter
6151 \family typewriter
6152 pdb
6152 pdb
6153 \family default
6153 \family default
6154 , regardless of whether you have wrapped it into a
6154 , regardless of whether you have wrapped it into a
6155 \family typewriter
6155 \family typewriter
6156 `main()'
6156 `main()'
6157 \family default
6157 \family default
6158 function or not.
6158 function or not.
6159 For this, simply type
6159 For this, simply type
6160 \family typewriter
6160 \family typewriter
6161 `%run -d myscript'
6161 `%run -d myscript'
6162 \family default
6162 \family default
6163 at an IPython prompt.
6163 at an IPython prompt.
6164 See the
6164 See the
6165 \family typewriter
6165 \family typewriter
6166 %run
6166 %run
6167 \family default
6167 \family default
6168 command's documentation (via
6168 command's documentation (via
6169 \family typewriter
6169 \family typewriter
6170 `%run?'
6170 `%run?'
6171 \family default
6171 \family default
6172 or in Sec.\SpecialChar ~
6172 or in Sec.\SpecialChar ~
6173
6173
6174 \begin_inset LatexCommand \ref{sec:magic}
6174 \begin_inset LatexCommand \ref{sec:magic}
6175
6175
6176 \end_inset
6176 \end_inset
6177
6177
6178 ) for more details, including how to control where
6178 ) for more details, including how to control where
6179 \family typewriter
6179 \family typewriter
6180 pdb
6180 pdb
6181 \family default
6181 \family default
6182 will stop execution first.
6182 will stop execution first.
6183 \layout Standard
6183 \layout Standard
6184
6184
6185 For more information on the use of the
6185 For more information on the use of the
6186 \family typewriter
6186 \family typewriter
6187 pdb
6187 pdb
6188 \family default
6188 \family default
6189 debugger, read the included
6189 debugger, read the included
6190 \family typewriter
6190 \family typewriter
6191 pdb.doc
6191 pdb.doc
6192 \family default
6192 \family default
6193 file (part of the standard Python distribution).
6193 file (part of the standard Python distribution).
6194 On a stock Linux system it is located at
6194 On a stock Linux system it is located at
6195 \family typewriter
6195 \family typewriter
6196 /usr/lib/python2.3/pdb.doc
6196 /usr/lib/python2.3/pdb.doc
6197 \family default
6197 \family default
6198 , but the easiest way to read it is by using the
6198 , but the easiest way to read it is by using the
6199 \family typewriter
6199 \family typewriter
6200 help()
6200 help()
6201 \family default
6201 \family default
6202 function of the
6202 function of the
6203 \family typewriter
6203 \family typewriter
6204 pdb
6204 pdb
6205 \family default
6205 \family default
6206 module as follows (in an IPython prompt):
6206 module as follows (in an IPython prompt):
6207 \layout Standard
6207 \layout Standard
6208
6208
6209
6209
6210 \family typewriter
6210 \family typewriter
6211 In [1]: import pdb
6211 In [1]: import pdb
6212 \newline
6212 \newline
6213 In [2]: pdb.help()
6213 In [2]: pdb.help()
6214 \layout Standard
6214 \layout Standard
6215
6215
6216 This will load the
6216 This will load the
6217 \family typewriter
6217 \family typewriter
6218 pdb.doc
6218 pdb.doc
6219 \family default
6219 \family default
6220 document in a file viewer for you automatically.
6220 document in a file viewer for you automatically.
6221 \layout Subsection
6221 \layout Subsection
6222
6222
6223 Automatic invocation of
6223 Automatic invocation of
6224 \family typewriter
6224 \family typewriter
6225 pdb
6225 pdb
6226 \family default
6226 \family default
6227 on exceptions
6227 on exceptions
6228 \layout Standard
6228 \layout Standard
6229
6229
6230 IPython, if started with the
6230 IPython, if started with the
6231 \family typewriter
6231 \family typewriter
6232 -pdb
6232 -pdb
6233 \family default
6233 \family default
6234 option (or if the option is set in your rc file) can call the Python
6234 option (or if the option is set in your rc file) can call the Python
6235 \family typewriter
6235 \family typewriter
6236 pdb
6236 pdb
6237 \family default
6237 \family default
6238 debugger every time your code triggers an uncaught exception
6238 debugger every time your code triggers an uncaught exception
6239 \begin_inset Foot
6239 \begin_inset Foot
6240 collapsed true
6240 collapsed true
6241
6241
6242 \layout Standard
6242 \layout Standard
6243
6243
6244 Many thanks to Christopher Hart for the request which prompted adding this
6244 Many thanks to Christopher Hart for the request which prompted adding this
6245 feature to IPython.
6245 feature to IPython.
6246 \end_inset
6246 \end_inset
6247
6247
6248 .
6248 .
6249 This feature can also be toggled at any time with the
6249 This feature can also be toggled at any time with the
6250 \family typewriter
6250 \family typewriter
6251 %pdb
6251 %pdb
6252 \family default
6252 \family default
6253 magic command.
6253 magic command.
6254 This can be extremely useful in order to find the origin of subtle bugs,
6254 This can be extremely useful in order to find the origin of subtle bugs,
6255 because
6255 because
6256 \family typewriter
6256 \family typewriter
6257 pdb
6257 pdb
6258 \family default
6258 \family default
6259 opens up at the point in your code which triggered the exception, and while
6259 opens up at the point in your code which triggered the exception, and while
6260 your program is at this point `dead', all the data is still available and
6260 your program is at this point `dead', all the data is still available and
6261 you can walk up and down the stack frame and understand the origin of the
6261 you can walk up and down the stack frame and understand the origin of the
6262 problem.
6262 problem.
6263 \layout Standard
6263 \layout Standard
6264
6264
6265 Furthermore, you can use these debugging facilities both with the embedded
6265 Furthermore, you can use these debugging facilities both with the embedded
6266 IPython mode and without IPython at all.
6266 IPython mode and without IPython at all.
6267 For an embedded shell (see sec.
6267 For an embedded shell (see sec.
6268
6268
6269 \begin_inset LatexCommand \ref{sec:embed}
6269 \begin_inset LatexCommand \ref{sec:embed}
6270
6270
6271 \end_inset
6271 \end_inset
6272
6272
6273 ), simply call the constructor with
6273 ), simply call the constructor with
6274 \family typewriter
6274 \family typewriter
6275 `-pdb'
6275 `-pdb'
6276 \family default
6276 \family default
6277 in the argument string and automatically
6277 in the argument string and automatically
6278 \family typewriter
6278 \family typewriter
6279 pdb
6279 pdb
6280 \family default
6280 \family default
6281 will be called if an uncaught exception is triggered by your code.
6281 will be called if an uncaught exception is triggered by your code.
6282
6282
6283 \layout Standard
6283 \layout Standard
6284
6284
6285 For stand-alone use of the feature in your programs which do not use IPython
6285 For stand-alone use of the feature in your programs which do not use IPython
6286 at all, put the following lines toward the top of your `main' routine:
6286 at all, put the following lines toward the top of your `main' routine:
6287 \layout Standard
6287 \layout Standard
6288 \align left
6288 \align left
6289
6289
6290 \family typewriter
6290 \family typewriter
6291 import sys,IPython.ultraTB
6291 import sys,IPython.ultraTB
6292 \newline
6292 \newline
6293 sys.excepthook = IPython.ultraTB.FormattedTB(mode=`Verbose', color_scheme=`Linux',
6293 sys.excepthook = IPython.ultraTB.FormattedTB(mode=`Verbose', color_scheme=`Linux',
6294 call_pdb=1)
6294 call_pdb=1)
6295 \layout Standard
6295 \layout Standard
6296
6296
6297 The
6297 The
6298 \family typewriter
6298 \family typewriter
6299 mode
6299 mode
6300 \family default
6300 \family default
6301 keyword can be either
6301 keyword can be either
6302 \family typewriter
6302 \family typewriter
6303 `Verbose'
6303 `Verbose'
6304 \family default
6304 \family default
6305 or
6305 or
6306 \family typewriter
6306 \family typewriter
6307 `Plain'
6307 `Plain'
6308 \family default
6308 \family default
6309 , giving either very detailed or normal tracebacks respectively.
6309 , giving either very detailed or normal tracebacks respectively.
6310 The
6310 The
6311 \family typewriter
6311 \family typewriter
6312 color_scheme
6312 color_scheme
6313 \family default
6313 \family default
6314 keyword can be one of
6314 keyword can be one of
6315 \family typewriter
6315 \family typewriter
6316 `NoColor'
6316 `NoColor'
6317 \family default
6317 \family default
6318 ,
6318 ,
6319 \family typewriter
6319 \family typewriter
6320 `Linux'
6320 `Linux'
6321 \family default
6321 \family default
6322 (default) or
6322 (default) or
6323 \family typewriter
6323 \family typewriter
6324 `LightBG'
6324 `LightBG'
6325 \family default
6325 \family default
6326 .
6326 .
6327 These are the same options which can be set in IPython with
6327 These are the same options which can be set in IPython with
6328 \family typewriter
6328 \family typewriter
6329 -colors
6329 -colors
6330 \family default
6330 \family default
6331 and
6331 and
6332 \family typewriter
6332 \family typewriter
6333 -xmode
6333 -xmode
6334 \family default
6334 \family default
6335 .
6335 .
6336 \layout Standard
6336 \layout Standard
6337
6337
6338 This will give any of your programs detailed, colored tracebacks with automatic
6338 This will give any of your programs detailed, colored tracebacks with automatic
6339 invocation of
6339 invocation of
6340 \family typewriter
6340 \family typewriter
6341 pdb
6341 pdb
6342 \family default
6342 \family default
6343 .
6343 .
6344 \layout Section
6344 \layout Section
6345
6345
6346
6346
6347 \begin_inset LatexCommand \label{sec:syntax-extensions}
6347 \begin_inset LatexCommand \label{sec:syntax-extensions}
6348
6348
6349 \end_inset
6349 \end_inset
6350
6350
6351 Extensions for syntax processing
6351 Extensions for syntax processing
6352 \layout Standard
6352 \layout Standard
6353
6353
6354 This isn't for the faint of heart, because the potential for breaking things
6354 This isn't for the faint of heart, because the potential for breaking things
6355 is quite high.
6355 is quite high.
6356 But it can be a very powerful and useful feature.
6356 But it can be a very powerful and useful feature.
6357 In a nutshell, you can redefine the way IPython processes the user input
6357 In a nutshell, you can redefine the way IPython processes the user input
6358 line to accept new, special extensions to the syntax without needing to
6358 line to accept new, special extensions to the syntax without needing to
6359 change any of IPython's own code.
6359 change any of IPython's own code.
6360 \layout Standard
6360 \layout Standard
6361
6361
6362 In the
6362 In the
6363 \family typewriter
6363 \family typewriter
6364 IPython/Extensions
6364 IPython/Extensions
6365 \family default
6365 \family default
6366 directory you will find some examples supplied, which we will briefly describe
6366 directory you will find some examples supplied, which we will briefly describe
6367 now.
6367 now.
6368 These can be used `as is' (and both provide very useful functionality),
6368 These can be used `as is' (and both provide very useful functionality),
6369 or you can use them as a starting point for writing your own extensions.
6369 or you can use them as a starting point for writing your own extensions.
6370 \layout Subsection
6370 \layout Subsection
6371
6371
6372 Pasting of code starting with
6372 Pasting of code starting with
6373 \family typewriter
6373 \family typewriter
6374 `>>>
6374 `>>>
6375 \family default
6375 \family default
6376 ' or
6376 ' or
6377 \family typewriter
6377 \family typewriter
6378 `...
6378 `...
6379
6379
6380 \family default
6380 \family default
6381 '
6381 '
6382 \layout Standard
6382 \layout Standard
6383
6383
6384 In the python tutorial it is common to find code examples which have been
6384 In the python tutorial it is common to find code examples which have been
6385 taken from real python sessions.
6385 taken from real python sessions.
6386 The problem with those is that all the lines begin with either
6386 The problem with those is that all the lines begin with either
6387 \family typewriter
6387 \family typewriter
6388 `>>>
6388 `>>>
6389 \family default
6389 \family default
6390 ' or
6390 ' or
6391 \family typewriter
6391 \family typewriter
6392 `...
6392 `...
6393
6393
6394 \family default
6394 \family default
6395 ', which makes it impossible to paste them all at once.
6395 ', which makes it impossible to paste them all at once.
6396 One must instead do a line by line manual copying, carefully removing the
6396 One must instead do a line by line manual copying, carefully removing the
6397 leading extraneous characters.
6397 leading extraneous characters.
6398 \layout Standard
6398 \layout Standard
6399
6399
6400 This extension identifies those starting characters and removes them from
6400 This extension identifies those starting characters and removes them from
6401 the input automatically, so that one can paste multi-line examples directly
6401 the input automatically, so that one can paste multi-line examples directly
6402 into IPython, saving a lot of time.
6402 into IPython, saving a lot of time.
6403 Please look at the file
6403 Please look at the file
6404 \family typewriter
6404 \family typewriter
6405 InterpreterPasteInput.py
6405 InterpreterPasteInput.py
6406 \family default
6406 \family default
6407 in the
6407 in the
6408 \family typewriter
6408 \family typewriter
6409 IPython/Extensions
6409 IPython/Extensions
6410 \family default
6410 \family default
6411 directory for details on how this is done.
6411 directory for details on how this is done.
6412 \layout Standard
6412 \layout Standard
6413
6413
6414 IPython comes with a special profile enabling this feature, called
6414 IPython comes with a special profile enabling this feature, called
6415 \family typewriter
6415 \family typewriter
6416 tutorial
6416 tutorial
6417 \family default
6417 \family default
6418 \emph on
6418 \emph on
6419 .
6419 .
6420
6420
6421 \emph default
6421 \emph default
6422 Simply start IPython via
6422 Simply start IPython via
6423 \family typewriter
6423 \family typewriter
6424 `ipython\SpecialChar ~
6424 `ipython\SpecialChar ~
6425 -p\SpecialChar ~
6425 -p\SpecialChar ~
6426 tutorial'
6426 tutorial'
6427 \family default
6427 \family default
6428 and the feature will be available.
6428 and the feature will be available.
6429 In a normal IPython session you can activate the feature by importing the
6429 In a normal IPython session you can activate the feature by importing the
6430 corresponding module with:
6430 corresponding module with:
6431 \newline
6431 \newline
6432
6432
6433 \family typewriter
6433 \family typewriter
6434 In [1]: import IPython.Extensions.InterpreterPasteInput
6434 In [1]: import IPython.Extensions.InterpreterPasteInput
6435 \layout Standard
6435 \layout Standard
6436
6436
6437 The following is a 'screenshot' of how things work when this extension is
6437 The following is a 'screenshot' of how things work when this extension is
6438 on, copying an example from the standard tutorial:
6438 on, copying an example from the standard tutorial:
6439 \layout Standard
6439 \layout Standard
6440
6440
6441
6441
6442 \family typewriter
6442 \family typewriter
6443 IPython profile: tutorial
6443 IPython profile: tutorial
6444 \newline
6444 \newline
6445 \SpecialChar ~
6445 \SpecialChar ~
6446
6446
6447 \newline
6447 \newline
6448 *** Pasting of code with ">>>" or "..." has been enabled.
6448 *** Pasting of code with ">>>" or "..." has been enabled.
6449 \newline
6449 \newline
6450 \SpecialChar ~
6450 \SpecialChar ~
6451
6451
6452 \newline
6452 \newline
6453 In [1]: >>> def fib2(n): # return Fibonacci series up to n
6453 In [1]: >>> def fib2(n): # return Fibonacci series up to n
6454 \newline
6454 \newline
6455
6455
6456 \begin_inset ERT
6456 \begin_inset ERT
6457 status Collapsed
6457 status Collapsed
6458
6458
6459 \layout Standard
6459 \layout Standard
6460
6460
6461 \backslash
6461 \backslash
6462 hspace*{0mm}
6462 hspace*{0mm}
6463 \end_inset
6463 \end_inset
6464
6464
6465 \SpecialChar ~
6465 \SpecialChar ~
6466 \SpecialChar ~
6466 \SpecialChar ~
6467 ...: ...\SpecialChar ~
6467 ...: ...\SpecialChar ~
6468 \SpecialChar ~
6468 \SpecialChar ~
6469 \SpecialChar ~
6469 \SpecialChar ~
6470 \SpecialChar ~
6470 \SpecialChar ~
6471 """Return a list containing the Fibonacci series up to n."""
6471 """Return a list containing the Fibonacci series up to n."""
6472 \newline
6472 \newline
6473
6473
6474 \begin_inset ERT
6474 \begin_inset ERT
6475 status Collapsed
6475 status Collapsed
6476
6476
6477 \layout Standard
6477 \layout Standard
6478
6478
6479 \backslash
6479 \backslash
6480 hspace*{0mm}
6480 hspace*{0mm}
6481 \end_inset
6481 \end_inset
6482
6482
6483 \SpecialChar ~
6483 \SpecialChar ~
6484 \SpecialChar ~
6484 \SpecialChar ~
6485 ...: ...\SpecialChar ~
6485 ...: ...\SpecialChar ~
6486 \SpecialChar ~
6486 \SpecialChar ~
6487 \SpecialChar ~
6487 \SpecialChar ~
6488 \SpecialChar ~
6488 \SpecialChar ~
6489 result = []
6489 result = []
6490 \newline
6490 \newline
6491
6491
6492 \begin_inset ERT
6492 \begin_inset ERT
6493 status Collapsed
6493 status Collapsed
6494
6494
6495 \layout Standard
6495 \layout Standard
6496
6496
6497 \backslash
6497 \backslash
6498 hspace*{0mm}
6498 hspace*{0mm}
6499 \end_inset
6499 \end_inset
6500
6500
6501 \SpecialChar ~
6501 \SpecialChar ~
6502 \SpecialChar ~
6502 \SpecialChar ~
6503 ...: ...\SpecialChar ~
6503 ...: ...\SpecialChar ~
6504 \SpecialChar ~
6504 \SpecialChar ~
6505 \SpecialChar ~
6505 \SpecialChar ~
6506 \SpecialChar ~
6506 \SpecialChar ~
6507 a, b = 0, 1
6507 a, b = 0, 1
6508 \newline
6508 \newline
6509
6509
6510 \begin_inset ERT
6510 \begin_inset ERT
6511 status Collapsed
6511 status Collapsed
6512
6512
6513 \layout Standard
6513 \layout Standard
6514
6514
6515 \backslash
6515 \backslash
6516 hspace*{0mm}
6516 hspace*{0mm}
6517 \end_inset
6517 \end_inset
6518
6518
6519 \SpecialChar ~
6519 \SpecialChar ~
6520 \SpecialChar ~
6520 \SpecialChar ~
6521 ...: ...\SpecialChar ~
6521 ...: ...\SpecialChar ~
6522 \SpecialChar ~
6522 \SpecialChar ~
6523 \SpecialChar ~
6523 \SpecialChar ~
6524 \SpecialChar ~
6524 \SpecialChar ~
6525 while b < n:
6525 while b < n:
6526 \newline
6526 \newline
6527
6527
6528 \begin_inset ERT
6528 \begin_inset ERT
6529 status Collapsed
6529 status Collapsed
6530
6530
6531 \layout Standard
6531 \layout Standard
6532
6532
6533 \backslash
6533 \backslash
6534 hspace*{0mm}
6534 hspace*{0mm}
6535 \end_inset
6535 \end_inset
6536
6536
6537 \SpecialChar ~
6537 \SpecialChar ~
6538 \SpecialChar ~
6538 \SpecialChar ~
6539 ...: ...\SpecialChar ~
6539 ...: ...\SpecialChar ~
6540 \SpecialChar ~
6540 \SpecialChar ~
6541 \SpecialChar ~
6541 \SpecialChar ~
6542 \SpecialChar ~
6542 \SpecialChar ~
6543 \SpecialChar ~
6543 \SpecialChar ~
6544 \SpecialChar ~
6544 \SpecialChar ~
6545 \SpecialChar ~
6545 \SpecialChar ~
6546 \SpecialChar ~
6546 \SpecialChar ~
6547 result.append(b)\SpecialChar ~
6547 result.append(b)\SpecialChar ~
6548 \SpecialChar ~
6548 \SpecialChar ~
6549 \SpecialChar ~
6549 \SpecialChar ~
6550 # see below
6550 # see below
6551 \newline
6551 \newline
6552
6552
6553 \begin_inset ERT
6553 \begin_inset ERT
6554 status Collapsed
6554 status Collapsed
6555
6555
6556 \layout Standard
6556 \layout Standard
6557
6557
6558 \backslash
6558 \backslash
6559 hspace*{0mm}
6559 hspace*{0mm}
6560 \end_inset
6560 \end_inset
6561
6561
6562 \SpecialChar ~
6562 \SpecialChar ~
6563 \SpecialChar ~
6563 \SpecialChar ~
6564 ...: ...\SpecialChar ~
6564 ...: ...\SpecialChar ~
6565 \SpecialChar ~
6565 \SpecialChar ~
6566 \SpecialChar ~
6566 \SpecialChar ~
6567 \SpecialChar ~
6567 \SpecialChar ~
6568 \SpecialChar ~
6568 \SpecialChar ~
6569 \SpecialChar ~
6569 \SpecialChar ~
6570 \SpecialChar ~
6570 \SpecialChar ~
6571 \SpecialChar ~
6571 \SpecialChar ~
6572 a, b = b, a+b
6572 a, b = b, a+b
6573 \newline
6573 \newline
6574
6574
6575 \begin_inset ERT
6575 \begin_inset ERT
6576 status Collapsed
6576 status Collapsed
6577
6577
6578 \layout Standard
6578 \layout Standard
6579
6579
6580 \backslash
6580 \backslash
6581 hspace*{0mm}
6581 hspace*{0mm}
6582 \end_inset
6582 \end_inset
6583
6583
6584 \SpecialChar ~
6584 \SpecialChar ~
6585 \SpecialChar ~
6585 \SpecialChar ~
6586 ...: ...\SpecialChar ~
6586 ...: ...\SpecialChar ~
6587 \SpecialChar ~
6587 \SpecialChar ~
6588 \SpecialChar ~
6588 \SpecialChar ~
6589 \SpecialChar ~
6589 \SpecialChar ~
6590 return result
6590 return result
6591 \newline
6591 \newline
6592
6592
6593 \begin_inset ERT
6593 \begin_inset ERT
6594 status Collapsed
6594 status Collapsed
6595
6595
6596 \layout Standard
6596 \layout Standard
6597
6597
6598 \backslash
6598 \backslash
6599 hspace*{0mm}
6599 hspace*{0mm}
6600 \end_inset
6600 \end_inset
6601
6601
6602 \SpecialChar ~
6602 \SpecialChar ~
6603 \SpecialChar ~
6603 \SpecialChar ~
6604 ...:
6604 ...:
6605 \newline
6605 \newline
6606 \SpecialChar ~
6606 \SpecialChar ~
6607
6607
6608 \newline
6608 \newline
6609 In [2]: fib2(10)
6609 In [2]: fib2(10)
6610 \newline
6610 \newline
6611 Out[2]: [1, 1, 2, 3, 5, 8]
6611 Out[2]: [1, 1, 2, 3, 5, 8]
6612 \layout Standard
6612 \layout Standard
6613
6613
6614 Note that as currently written, this extension does
6614 Note that as currently written, this extension does
6615 \emph on
6615 \emph on
6616 not
6616 not
6617 \emph default
6617 \emph default
6618 recognize IPython's prompts for pasting.
6618 recognize IPython's prompts for pasting.
6619 Those are more complicated, since the user can change them very easily,
6619 Those are more complicated, since the user can change them very easily,
6620 they involve numbers and can vary in length.
6620 they involve numbers and can vary in length.
6621 One could however extract all the relevant information from the IPython
6621 One could however extract all the relevant information from the IPython
6622 instance and build an appropriate regular expression.
6622 instance and build an appropriate regular expression.
6623 This is left as an exercise for the reader.
6623 This is left as an exercise for the reader.
6624 \layout Subsection
6624 \layout Subsection
6625
6625
6626 Input of physical quantities with units
6626 Input of physical quantities with units
6627 \layout Standard
6627 \layout Standard
6628
6628
6629 The module
6629 The module
6630 \family typewriter
6630 \family typewriter
6631 PhysicalQInput
6631 PhysicalQInput
6632 \family default
6632 \family default
6633 allows a simplified form of input for physical quantities with units.
6633 allows a simplified form of input for physical quantities with units.
6634 This file is meant to be used in conjunction with the
6634 This file is meant to be used in conjunction with the
6635 \family typewriter
6635 \family typewriter
6636 PhysicalQInteractive
6636 PhysicalQInteractive
6637 \family default
6637 \family default
6638 module (in the same directory) and
6638 module (in the same directory) and
6639 \family typewriter
6639 \family typewriter
6640 Physics.PhysicalQuantities
6640 Physics.PhysicalQuantities
6641 \family default
6641 \family default
6642 from Konrad Hinsen's ScientificPython (
6642 from Konrad Hinsen's ScientificPython (
6643 \begin_inset LatexCommand \htmlurl{http://starship.python.net/crew/hinsen/scientific.html}
6643 \begin_inset LatexCommand \htmlurl{http://starship.python.net/crew/hinsen/scientific.html}
6644
6644
6645 \end_inset
6645 \end_inset
6646
6646
6647 ).
6647 ).
6648 \layout Standard
6648 \layout Standard
6649
6649
6650 The
6650 The
6651 \family typewriter
6651 \family typewriter
6652 Physics.PhysicalQuantities
6652 Physics.PhysicalQuantities
6653 \family default
6653 \family default
6654 module defines
6654 module defines
6655 \family typewriter
6655 \family typewriter
6656 PhysicalQuantity
6656 PhysicalQuantity
6657 \family default
6657 \family default
6658 objects, but these must be declared as instances of a class.
6658 objects, but these must be declared as instances of a class.
6659 For example, to define
6659 For example, to define
6660 \family typewriter
6660 \family typewriter
6661 v
6661 v
6662 \family default
6662 \family default
6663 as a velocity of 3\SpecialChar ~
6663 as a velocity of 3\SpecialChar ~
6664 m/s, normally you would write:
6664 m/s, normally you would write:
6665 \family typewriter
6665 \family typewriter
6666
6666
6667 \newline
6667 \newline
6668 In [1]: v = PhysicalQuantity(3,'m/s')
6668 In [1]: v = PhysicalQuantity(3,'m/s')
6669 \layout Standard
6669 \layout Standard
6670
6670
6671 Using the
6671 Using the
6672 \family typewriter
6672 \family typewriter
6673 PhysicalQ_Input
6673 PhysicalQ_Input
6674 \family default
6674 \family default
6675 extension this can be input instead as:
6675 extension this can be input instead as:
6676 \family typewriter
6676 \family typewriter
6677
6677
6678 \newline
6678 \newline
6679 In [1]: v = 3 m/s
6679 In [1]: v = 3 m/s
6680 \family default
6680 \family default
6681
6681
6682 \newline
6682 \newline
6683 which is much more convenient for interactive use (even though it is blatantly
6683 which is much more convenient for interactive use (even though it is blatantly
6684 invalid Python syntax).
6684 invalid Python syntax).
6685 \layout Standard
6685 \layout Standard
6686
6686
6687 The
6687 The
6688 \family typewriter
6688 \family typewriter
6689 physics
6689 physics
6690 \family default
6690 \family default
6691 profile supplied with IPython (enabled via
6691 profile supplied with IPython (enabled via
6692 \family typewriter
6692 \family typewriter
6693 'ipython -p physics'
6693 'ipython -p physics'
6694 \family default
6694 \family default
6695 ) uses these extensions, which you can also activate with:
6695 ) uses these extensions, which you can also activate with:
6696 \layout Standard
6696 \layout Standard
6697
6697
6698
6698
6699 \family typewriter
6699 \family typewriter
6700 from math import * # math MUST be imported BEFORE PhysicalQInteractive
6700 from math import * # math MUST be imported BEFORE PhysicalQInteractive
6701 \newline
6701 \newline
6702 from IPython.Extensions.PhysicalQInteractive import *
6702 from IPython.Extensions.PhysicalQInteractive import *
6703 \newline
6703 \newline
6704 import IPython.Extensions.PhysicalQInput
6704 import IPython.Extensions.PhysicalQInput
6705 \layout Section
6705 \layout Section
6706
6706
6707 IPython as a system shell
6707 IPython as a system shell
6708 \layout Standard
6708 \layout Standard
6709
6709
6710 IPython ships with a special profile called
6710 IPython ships with a special profile called
6711 \family typewriter
6711 \family typewriter
6712 pysh
6712 pysh
6713 \family default
6713 \family default
6714 , which you can activate at the command line as
6714 , which you can activate at the command line as
6715 \family typewriter
6715 \family typewriter
6716 `ipython -p pysh'
6716 `ipython -p pysh'
6717 \family default
6717 \family default
6718 .
6718 .
6719 This loads
6719 This loads
6720 \family typewriter
6720 \family typewriter
6721 InterpreterExec
6721 InterpreterExec
6722 \family default
6722 \family default
6723 , along with some additional facilities and a prompt customized for filesystem
6723 , along with some additional facilities and a prompt customized for filesystem
6724 navigation.
6724 navigation.
6725 \layout Standard
6725 \layout Standard
6726
6726
6727 Note that this does
6727 Note that this does
6728 \emph on
6728 \emph on
6729 not
6729 not
6730 \emph default
6730 \emph default
6731 make IPython a full-fledged system shell.
6731 make IPython a full-fledged system shell.
6732 In particular, it has no job control, so if you type Ctrl-Z (under Unix),
6732 In particular, it has no job control, so if you type Ctrl-Z (under Unix),
6733 you'll suspend pysh itself, not the process you just started.
6733 you'll suspend pysh itself, not the process you just started.
6734
6734
6735 \layout Standard
6735 \layout Standard
6736
6736
6737 What the shell profile allows you to do is to use the convenient and powerful
6737 What the shell profile allows you to do is to use the convenient and powerful
6738 syntax of Python to do quick scripting at the command line.
6738 syntax of Python to do quick scripting at the command line.
6739 Below we describe some of its features.
6739 Below we describe some of its features.
6740 \layout Subsection
6740 \layout Subsection
6741
6741
6742 Aliases
6742 Aliases
6743 \layout Standard
6743 \layout Standard
6744
6744
6745 All of your
6745 All of your
6746 \family typewriter
6746 \family typewriter
6747 $PATH
6747 $PATH
6748 \family default
6748 \family default
6749 has been loaded as IPython aliases, so you should be able to type any normal
6749 has been loaded as IPython aliases, so you should be able to type any normal
6750 system command and have it executed.
6750 system command and have it executed.
6751 See
6751 See
6752 \family typewriter
6752 \family typewriter
6753 %alias?
6753 %alias?
6754 \family default
6754 \family default
6755 and
6755 and
6756 \family typewriter
6756 \family typewriter
6757 %unalias?
6757 %unalias?
6758 \family default
6758 \family default
6759 for details on the alias facilities.
6759 for details on the alias facilities.
6760 See also
6760 See also
6761 \family typewriter
6761 \family typewriter
6762 %rehash?
6762 %rehash?
6763 \family default
6763 \family default
6764 and
6764 and
6765 \family typewriter
6765 \family typewriter
6766 %rehashx?
6766 %rehashx?
6767 \family default
6767 \family default
6768 for details on the mechanism used to load
6768 for details on the mechanism used to load
6769 \family typewriter
6769 \family typewriter
6770 $PATH
6770 $PATH
6771 \family default
6771 \family default
6772 .
6772 .
6773 \layout Subsection
6773 \layout Subsection
6774
6774
6775 Special syntax
6775 Special syntax
6776 \layout Standard
6776 \layout Standard
6777
6777
6778 Any lines which begin with
6778 Any lines which begin with
6779 \family typewriter
6779 \family typewriter
6780 `~'
6780 `~'
6781 \family default
6781 \family default
6782 ,
6782 ,
6783 \family typewriter
6783 \family typewriter
6784 `/'
6784 `/'
6785 \family default
6785 \family default
6786 and
6786 and
6787 \family typewriter
6787 \family typewriter
6788 `.'
6788 `.'
6789 \family default
6789 \family default
6790 will be executed as shell commands instead of as Python code.
6790 will be executed as shell commands instead of as Python code.
6791 The special escapes below are also recognized.
6791 The special escapes below are also recognized.
6792
6792
6793 \family typewriter
6793 \family typewriter
6794 !cmd
6794 !cmd
6795 \family default
6795 \family default
6796 is valid in single or multi-line input, all others are only valid in single-lin
6796 is valid in single or multi-line input, all others are only valid in single-lin
6797 e input:
6797 e input:
6798 \layout Description
6798 \layout Description
6799
6799
6800
6800
6801 \family typewriter
6801 \family typewriter
6802 !cmd
6802 !cmd
6803 \family default
6803 \family default
6804 pass `cmd' directly to the shell
6804 pass `cmd' directly to the shell
6805 \layout Description
6805 \layout Description
6806
6806
6807
6807
6808 \family typewriter
6808 \family typewriter
6809 !!cmd
6809 !!cmd
6810 \family default
6810 \family default
6811 execute `cmd' and return output as a list (split on `
6811 execute `cmd' and return output as a list (split on `
6812 \backslash
6812 \backslash
6813 n')
6813 n')
6814 \layout Description
6814 \layout Description
6815
6815
6816
6816
6817 \family typewriter
6817 \family typewriter
6818 $var=cmd
6818 $var=cmd
6819 \family default
6819 \family default
6820 capture output of cmd into var, as a string
6820 capture output of cmd into var, as a string
6821 \layout Description
6821 \layout Description
6822
6822
6823
6823
6824 \family typewriter
6824 \family typewriter
6825 $$var=cmd
6825 $$var=cmd
6826 \family default
6826 \family default
6827 capture output of cmd into var, as a list (split on `
6827 capture output of cmd into var, as a list (split on `
6828 \backslash
6828 \backslash
6829 n')
6829 n')
6830 \layout Standard
6830 \layout Standard
6831
6831
6832 The
6832 The
6833 \family typewriter
6833 \family typewriter
6834 $
6834 $
6835 \family default
6835 \family default
6836 /
6836 /
6837 \family typewriter
6837 \family typewriter
6838 $$
6838 $$
6839 \family default
6839 \family default
6840 syntaxes make Python variables from system output, which you can later
6840 syntaxes make Python variables from system output, which you can later
6841 use for further scripting.
6841 use for further scripting.
6842 The converse is also possible: when executing an alias or calling to the
6842 The converse is also possible: when executing an alias or calling to the
6843 system via
6843 system via
6844 \family typewriter
6844 \family typewriter
6845 !
6845 !
6846 \family default
6846 \family default
6847 /
6847 /
6848 \family typewriter
6848 \family typewriter
6849 !!
6849 !!
6850 \family default
6850 \family default
6851 , you can expand any python variable or expression by prepending it with
6851 , you can expand any python variable or expression by prepending it with
6852
6852
6853 \family typewriter
6853 \family typewriter
6854 $
6854 $
6855 \family default
6855 \family default
6856 .
6856 .
6857 Full details of the allowed syntax can be found in Python's PEP 215.
6857 Full details of the allowed syntax can be found in Python's PEP 215.
6858 \layout Standard
6858 \layout Standard
6859
6859
6860 A few brief examples will illustrate these (note that the indentation below
6860 A few brief examples will illustrate these (note that the indentation below
6861 may be incorrectly displayed):
6861 may be incorrectly displayed):
6862 \layout Standard
6862 \layout Standard
6863
6863
6864
6864
6865 \family typewriter
6865 \family typewriter
6866 fperez[~/test]|3> !ls *s.py
6866 fperez[~/test]|3> !ls *s.py
6867 \newline
6867 \newline
6868 scopes.py strings.py
6868 scopes.py strings.py
6869 \layout Standard
6869 \layout Standard
6870
6870
6871 ls is an internal alias, so there's no need to use
6871 ls is an internal alias, so there's no need to use
6872 \family typewriter
6872 \family typewriter
6873 !
6873 !
6874 \family default
6874 \family default
6875 :
6875 :
6876 \layout Standard
6876 \layout Standard
6877
6877
6878
6878
6879 \family typewriter
6879 \family typewriter
6880 fperez[~/test]|4> ls *s.py
6880 fperez[~/test]|4> ls *s.py
6881 \newline
6881 \newline
6882 scopes.py* strings.py
6882 scopes.py* strings.py
6883 \layout Standard
6883 \layout Standard
6884
6884
6885 !!ls will return the output into a Python variable:
6885 !!ls will return the output into a Python variable:
6886 \layout Standard
6886 \layout Standard
6887
6887
6888
6888
6889 \family typewriter
6889 \family typewriter
6890 fperez[~/test]|5> !!ls *s.py
6890 fperez[~/test]|5> !!ls *s.py
6891 \newline
6891 \newline
6892
6892
6893 \begin_inset ERT
6893 \begin_inset ERT
6894 status Collapsed
6894 status Collapsed
6895
6895
6896 \layout Standard
6896 \layout Standard
6897
6897
6898 \backslash
6898 \backslash
6899 hspace*{0mm}
6899 hspace*{0mm}
6900 \end_inset
6900 \end_inset
6901
6901
6902 \SpecialChar ~
6902 \SpecialChar ~
6903 \SpecialChar ~
6903 \SpecialChar ~
6904 \SpecialChar ~
6904 \SpecialChar ~
6905 \SpecialChar ~
6905 \SpecialChar ~
6906 \SpecialChar ~
6906 \SpecialChar ~
6907 \SpecialChar ~
6907 \SpecialChar ~
6908 \SpecialChar ~
6908 \SpecialChar ~
6909 \SpecialChar ~
6909 \SpecialChar ~
6910 \SpecialChar ~
6910 \SpecialChar ~
6911 \SpecialChar ~
6911 \SpecialChar ~
6912 \SpecialChar ~
6912 \SpecialChar ~
6913 \SpecialChar ~
6913 \SpecialChar ~
6914 \SpecialChar ~
6914 \SpecialChar ~
6915 \SpecialChar ~
6915 \SpecialChar ~
6916 <5> ['scopes.py', 'strings.py']
6916 <5> ['scopes.py', 'strings.py']
6917 \newline
6917 \newline
6918 fperez[~/test]|6> print _5
6918 fperez[~/test]|6> print _5
6919 \newline
6919 \newline
6920 ['scopes.py', 'strings.py']
6920 ['scopes.py', 'strings.py']
6921 \layout Standard
6921 \layout Standard
6922
6922
6923
6923
6924 \family typewriter
6924 \family typewriter
6925 $
6925 $
6926 \family default
6926 \family default
6927 and
6927 and
6928 \family typewriter
6928 \family typewriter
6929 $$
6929 $$
6930 \family default
6930 \family default
6931 allow direct capture to named variables:
6931 allow direct capture to named variables:
6932 \layout Standard
6932 \layout Standard
6933
6933
6934
6934
6935 \family typewriter
6935 \family typewriter
6936 fperez[~/test]|7> $astr = ls *s.py
6936 fperez[~/test]|7> $astr = ls *s.py
6937 \newline
6937 \newline
6938 fperez[~/test]|8> astr
6938 fperez[~/test]|8> astr
6939 \newline
6939 \newline
6940
6940
6941 \begin_inset ERT
6941 \begin_inset ERT
6942 status Collapsed
6942 status Collapsed
6943
6943
6944 \layout Standard
6944 \layout Standard
6945
6945
6946 \backslash
6946 \backslash
6947 hspace*{0mm}
6947 hspace*{0mm}
6948 \end_inset
6948 \end_inset
6949
6949
6950 \SpecialChar ~
6950 \SpecialChar ~
6951 \SpecialChar ~
6951 \SpecialChar ~
6952 \SpecialChar ~
6952 \SpecialChar ~
6953 \SpecialChar ~
6953 \SpecialChar ~
6954 \SpecialChar ~
6954 \SpecialChar ~
6955 \SpecialChar ~
6955 \SpecialChar ~
6956 \SpecialChar ~
6956 \SpecialChar ~
6957 \SpecialChar ~
6957 \SpecialChar ~
6958 \SpecialChar ~
6958 \SpecialChar ~
6959 \SpecialChar ~
6959 \SpecialChar ~
6960 \SpecialChar ~
6960 \SpecialChar ~
6961 \SpecialChar ~
6961 \SpecialChar ~
6962 \SpecialChar ~
6962 \SpecialChar ~
6963 \SpecialChar ~
6963 \SpecialChar ~
6964 <8> 'scopes.py
6964 <8> 'scopes.py
6965 \backslash
6965 \backslash
6966 nstrings.py'
6966 nstrings.py'
6967 \layout Standard
6967 \layout Standard
6968
6968
6969
6969
6970 \family typewriter
6970 \family typewriter
6971 fperez[~/test]|9> $$alist = ls *s.py
6971 fperez[~/test]|9> $$alist = ls *s.py
6972 \newline
6972 \newline
6973 fperez[~/test]|10> alist
6973 fperez[~/test]|10> alist
6974 \newline
6974 \newline
6975
6975
6976 \begin_inset ERT
6976 \begin_inset ERT
6977 status Collapsed
6977 status Collapsed
6978
6978
6979 \layout Standard
6979 \layout Standard
6980
6980
6981 \backslash
6981 \backslash
6982 hspace*{0mm}
6982 hspace*{0mm}
6983 \end_inset
6983 \end_inset
6984
6984
6985 \SpecialChar ~
6985 \SpecialChar ~
6986 \SpecialChar ~
6986 \SpecialChar ~
6987 \SpecialChar ~
6987 \SpecialChar ~
6988 \SpecialChar ~
6988 \SpecialChar ~
6989 \SpecialChar ~
6989 \SpecialChar ~
6990 \SpecialChar ~
6990 \SpecialChar ~
6991 \SpecialChar ~
6991 \SpecialChar ~
6992 \SpecialChar ~
6992 \SpecialChar ~
6993 \SpecialChar ~
6993 \SpecialChar ~
6994 \SpecialChar ~
6994 \SpecialChar ~
6995 \SpecialChar ~
6995 \SpecialChar ~
6996 \SpecialChar ~
6996 \SpecialChar ~
6997 \SpecialChar ~
6997 \SpecialChar ~
6998 \SpecialChar ~
6998 \SpecialChar ~
6999 <10> ['scopes.py', 'strings.py']
6999 <10> ['scopes.py', 'strings.py']
7000 \layout Standard
7000 \layout Standard
7001
7001
7002 alist is now a normal python list you can loop over.
7002 alist is now a normal python list you can loop over.
7003 Using
7003 Using
7004 \family typewriter
7004 \family typewriter
7005 $
7005 $
7006 \family default
7006 \family default
7007 will expand back the python values when alias calls are made:
7007 will expand back the python values when alias calls are made:
7008 \layout Standard
7008 \layout Standard
7009
7009
7010
7010
7011 \family typewriter
7011 \family typewriter
7012 fperez[~/test]|11> for f in alist:
7012 fperez[~/test]|11> for f in alist:
7013 \newline
7013 \newline
7014
7014
7015 \begin_inset ERT
7015 \begin_inset ERT
7016 status Collapsed
7016 status Collapsed
7017
7017
7018 \layout Standard
7018 \layout Standard
7019
7019
7020 \backslash
7020 \backslash
7021 hspace*{0mm}
7021 hspace*{0mm}
7022 \end_inset
7022 \end_inset
7023
7023
7024 \SpecialChar ~
7024 \SpecialChar ~
7025 \SpecialChar ~
7025 \SpecialChar ~
7026 \SpecialChar ~
7026 \SpecialChar ~
7027 \SpecialChar ~
7027 \SpecialChar ~
7028 \SpecialChar ~
7028 \SpecialChar ~
7029 \SpecialChar ~
7029 \SpecialChar ~
7030 \SpecialChar ~
7030 \SpecialChar ~
7031 \SpecialChar ~
7031 \SpecialChar ~
7032 \SpecialChar ~
7032 \SpecialChar ~
7033 \SpecialChar ~
7033 \SpecialChar ~
7034 \SpecialChar ~
7034 \SpecialChar ~
7035 \SpecialChar ~
7035 \SpecialChar ~
7036 \SpecialChar ~
7036 \SpecialChar ~
7037 \SpecialChar ~
7037 \SpecialChar ~
7038 |..> \SpecialChar ~
7038 |..> \SpecialChar ~
7039 \SpecialChar ~
7039 \SpecialChar ~
7040 \SpecialChar ~
7040 \SpecialChar ~
7041 \SpecialChar ~
7041 \SpecialChar ~
7042 print 'file',f,
7042 print 'file',f,
7043 \newline
7043 \newline
7044
7044
7045 \begin_inset ERT
7045 \begin_inset ERT
7046 status Collapsed
7046 status Collapsed
7047
7047
7048 \layout Standard
7048 \layout Standard
7049
7049
7050 \backslash
7050 \backslash
7051 hspace*{0mm}
7051 hspace*{0mm}
7052 \end_inset
7052 \end_inset
7053
7053
7054 \SpecialChar ~
7054 \SpecialChar ~
7055 \SpecialChar ~
7055 \SpecialChar ~
7056 \SpecialChar ~
7056 \SpecialChar ~
7057 \SpecialChar ~
7057 \SpecialChar ~
7058 \SpecialChar ~
7058 \SpecialChar ~
7059 \SpecialChar ~
7059 \SpecialChar ~
7060 \SpecialChar ~
7060 \SpecialChar ~
7061 \SpecialChar ~
7061 \SpecialChar ~
7062 \SpecialChar ~
7062 \SpecialChar ~
7063 \SpecialChar ~
7063 \SpecialChar ~
7064 \SpecialChar ~
7064 \SpecialChar ~
7065 \SpecialChar ~
7065 \SpecialChar ~
7066 \SpecialChar ~
7066 \SpecialChar ~
7067 \SpecialChar ~
7067 \SpecialChar ~
7068 |..> \SpecialChar ~
7068 |..> \SpecialChar ~
7069 \SpecialChar ~
7069 \SpecialChar ~
7070 \SpecialChar ~
7070 \SpecialChar ~
7071 \SpecialChar ~
7071 \SpecialChar ~
7072 wc -l $f
7072 wc -l $f
7073 \newline
7073 \newline
7074
7074
7075 \begin_inset ERT
7075 \begin_inset ERT
7076 status Collapsed
7076 status Collapsed
7077
7077
7078 \layout Standard
7078 \layout Standard
7079
7079
7080 \backslash
7080 \backslash
7081 hspace*{0mm}
7081 hspace*{0mm}
7082 \end_inset
7082 \end_inset
7083
7083
7084 \SpecialChar ~
7084 \SpecialChar ~
7085 \SpecialChar ~
7085 \SpecialChar ~
7086 \SpecialChar ~
7086 \SpecialChar ~
7087 \SpecialChar ~
7087 \SpecialChar ~
7088 \SpecialChar ~
7088 \SpecialChar ~
7089 \SpecialChar ~
7089 \SpecialChar ~
7090 \SpecialChar ~
7090 \SpecialChar ~
7091 \SpecialChar ~
7091 \SpecialChar ~
7092 \SpecialChar ~
7092 \SpecialChar ~
7093 \SpecialChar ~
7093 \SpecialChar ~
7094 \SpecialChar ~
7094 \SpecialChar ~
7095 \SpecialChar ~
7095 \SpecialChar ~
7096 \SpecialChar ~
7096 \SpecialChar ~
7097 \SpecialChar ~
7097 \SpecialChar ~
7098 |..>
7098 |..>
7099 \newline
7099 \newline
7100 file scopes.py 13 scopes.py
7100 file scopes.py 13 scopes.py
7101 \newline
7101 \newline
7102 file strings.py 4 strings.py
7102 file strings.py 4 strings.py
7103 \layout Standard
7103 \layout Standard
7104
7104
7105 Note that you may need to protect your variables with braces if you want
7105 Note that you may need to protect your variables with braces if you want
7106 to append strings to their names.
7106 to append strings to their names.
7107 To copy all files in alist to
7107 To copy all files in alist to
7108 \family typewriter
7108 \family typewriter
7109 .bak
7109 .bak
7110 \family default
7110 \family default
7111 extensions, you must use:
7111 extensions, you must use:
7112 \layout Standard
7112 \layout Standard
7113
7113
7114
7114
7115 \family typewriter
7115 \family typewriter
7116 fperez[~/test]|12> for f in alist:
7116 fperez[~/test]|12> for f in alist:
7117 \newline
7117 \newline
7118
7118
7119 \begin_inset ERT
7119 \begin_inset ERT
7120 status Collapsed
7120 status Collapsed
7121
7121
7122 \layout Standard
7122 \layout Standard
7123
7123
7124 \backslash
7124 \backslash
7125 hspace*{0mm}
7125 hspace*{0mm}
7126 \end_inset
7126 \end_inset
7127
7127
7128 \SpecialChar ~
7128 \SpecialChar ~
7129 \SpecialChar ~
7129 \SpecialChar ~
7130 \SpecialChar ~
7130 \SpecialChar ~
7131 \SpecialChar ~
7131 \SpecialChar ~
7132 \SpecialChar ~
7132 \SpecialChar ~
7133 \SpecialChar ~
7133 \SpecialChar ~
7134 \SpecialChar ~
7134 \SpecialChar ~
7135 \SpecialChar ~
7135 \SpecialChar ~
7136 \SpecialChar ~
7136 \SpecialChar ~
7137 \SpecialChar ~
7137 \SpecialChar ~
7138 \SpecialChar ~
7138 \SpecialChar ~
7139 \SpecialChar ~
7139 \SpecialChar ~
7140 \SpecialChar ~
7140 \SpecialChar ~
7141 \SpecialChar ~
7141 \SpecialChar ~
7142 |..> \SpecialChar ~
7142 |..> \SpecialChar ~
7143 \SpecialChar ~
7143 \SpecialChar ~
7144 \SpecialChar ~
7144 \SpecialChar ~
7145 \SpecialChar ~
7145 \SpecialChar ~
7146 cp $f ${f}.bak
7146 cp $f ${f}.bak
7147 \layout Standard
7147 \layout Standard
7148
7148
7149 If you try using
7149 If you try using
7150 \family typewriter
7150 \family typewriter
7151 $f.bak
7151 $f.bak
7152 \family default
7152 \family default
7153 , you'll get an AttributeError exception saying that your string object
7153 , you'll get an AttributeError exception saying that your string object
7154 doesn't have a
7154 doesn't have a
7155 \family typewriter
7155 \family typewriter
7156 .bak
7156 .bak
7157 \family default
7157 \family default
7158 attribute.
7158 attribute.
7159 This is because the
7159 This is because the
7160 \family typewriter
7160 \family typewriter
7161 $
7161 $
7162 \family default
7162 \family default
7163 expansion mechanism allows you to expand full Python expressions:
7163 expansion mechanism allows you to expand full Python expressions:
7164 \layout Standard
7164 \layout Standard
7165
7165
7166
7166
7167 \family typewriter
7167 \family typewriter
7168 fperez[~/test]|13> echo "sys.platform is: $sys.platform"
7168 fperez[~/test]|13> echo "sys.platform is: $sys.platform"
7169 \newline
7169 \newline
7170 sys.platform is: linux2
7170 sys.platform is: linux2
7171 \layout Standard
7171 \layout Standard
7172
7172
7173 IPython's input history handling is still active, which allows you to rerun
7173 IPython's input history handling is still active, which allows you to rerun
7174 a single block of multi-line input by simply using exec:
7174 a single block of multi-line input by simply using exec:
7175 \newline
7175 \newline
7176
7176
7177 \family typewriter
7177 \family typewriter
7178 fperez[~/test]|14> $$alist = ls *.eps
7178 fperez[~/test]|14> $$alist = ls *.eps
7179 \newline
7179 \newline
7180 fperez[~/test]|15> exec _i11
7180 fperez[~/test]|15> exec _i11
7181 \newline
7181 \newline
7182 file image2.eps 921 image2.eps
7182 file image2.eps 921 image2.eps
7183 \newline
7183 \newline
7184 file image.eps 921 image.eps
7184 file image.eps 921 image.eps
7185 \layout Standard
7185 \layout Standard
7186
7186
7187 While these are new special-case syntaxes, they are designed to allow very
7187 While these are new special-case syntaxes, they are designed to allow very
7188 efficient use of the shell with minimal typing.
7188 efficient use of the shell with minimal typing.
7189 At an interactive shell prompt, conciseness of expression wins over readability.
7189 At an interactive shell prompt, conciseness of expression wins over readability.
7190 \layout Subsection
7190 \layout Subsection
7191
7191
7192 Useful functions and modules
7192 Useful functions and modules
7193 \layout Standard
7193 \layout Standard
7194
7194
7195 The os, sys and shutil modules from the Python standard library are automaticall
7195 The os, sys and shutil modules from the Python standard library are automaticall
7196 y loaded.
7196 y loaded.
7197 Some additional functions, useful for shell usage, are listed below.
7197 Some additional functions, useful for shell usage, are listed below.
7198 You can request more help about them with `
7198 You can request more help about them with `
7199 \family typewriter
7199 \family typewriter
7200 ?
7200 ?
7201 \family default
7201 \family default
7202 '.
7202 '.
7203 \layout Description
7203 \layout Description
7204
7204
7205
7205
7206 \family typewriter
7206 \family typewriter
7207 shell
7207 shell
7208 \family default
7208 \family default
7209 - execute a command in the underlying system shell
7209 - execute a command in the underlying system shell
7210 \layout Description
7210 \layout Description
7211
7211
7212
7212
7213 \family typewriter
7213 \family typewriter
7214 system
7214 system
7215 \family default
7215 \family default
7216 - like
7216 - like
7217 \family typewriter
7217 \family typewriter
7218 shell()
7218 shell()
7219 \family default
7219 \family default
7220 , but return the exit status of the command
7220 , but return the exit status of the command
7221 \layout Description
7221 \layout Description
7222
7222
7223
7223
7224 \family typewriter
7224 \family typewriter
7225 sout
7225 sout
7226 \family default
7226 \family default
7227 - capture the output of a command as a string
7227 - capture the output of a command as a string
7228 \layout Description
7228 \layout Description
7229
7229
7230
7230
7231 \family typewriter
7231 \family typewriter
7232 lout
7232 lout
7233 \family default
7233 \family default
7234 - capture the output of a command as a list (split on `
7234 - capture the output of a command as a list (split on `
7235 \backslash
7235 \backslash
7236 n')
7236 n')
7237 \layout Description
7237 \layout Description
7238
7238
7239
7239
7240 \family typewriter
7240 \family typewriter
7241 getoutputerror
7241 getoutputerror
7242 \family default
7242 \family default
7243 - capture (output,error) of a shell commandss
7243 - capture (output,error) of a shell commandss
7244 \layout Standard
7244 \layout Standard
7245
7245
7246
7246
7247 \family typewriter
7247 \family typewriter
7248 sout
7248 sout
7249 \family default
7249 \family default
7250 /
7250 /
7251 \family typewriter
7251 \family typewriter
7252 lout
7252 lout
7253 \family default
7253 \family default
7254 are the functional equivalents of
7254 are the functional equivalents of
7255 \family typewriter
7255 \family typewriter
7256 $
7256 $
7257 \family default
7257 \family default
7258 /
7258 /
7259 \family typewriter
7259 \family typewriter
7260 $$
7260 $$
7261 \family default
7261 \family default
7262 .
7262 .
7263 They are provided to allow you to capture system output in the middle of
7263 They are provided to allow you to capture system output in the middle of
7264 true python code, function definitions, etc (where
7264 true python code, function definitions, etc (where
7265 \family typewriter
7265 \family typewriter
7266 $
7266 $
7267 \family default
7267 \family default
7268 and
7268 and
7269 \family typewriter
7269 \family typewriter
7270 $$
7270 $$
7271 \family default
7271 \family default
7272 are invalid).
7272 are invalid).
7273 \layout Subsection
7273 \layout Subsection
7274
7274
7275 Directory management
7275 Directory management
7276 \layout Standard
7276 \layout Standard
7277
7277
7278 Since each command passed by pysh to the underlying system is executed in
7278 Since each command passed by pysh to the underlying system is executed in
7279 a subshell which exits immediately, you can NOT use !cd to navigate the
7279 a subshell which exits immediately, you can NOT use !cd to navigate the
7280 filesystem.
7280 filesystem.
7281 \layout Standard
7281 \layout Standard
7282
7282
7283 Pysh provides its own builtin
7283 Pysh provides its own builtin
7284 \family typewriter
7284 \family typewriter
7285 `%cd
7285 `%cd
7286 \family default
7286 \family default
7287 ' magic command to move in the filesystem (the
7287 ' magic command to move in the filesystem (the
7288 \family typewriter
7288 \family typewriter
7289 %
7289 %
7290 \family default
7290 \family default
7291 is not required with automagic on).
7291 is not required with automagic on).
7292 It also maintains a list of visited directories (use
7292 It also maintains a list of visited directories (use
7293 \family typewriter
7293 \family typewriter
7294 %dhist
7294 %dhist
7295 \family default
7295 \family default
7296 to see it) and allows direct switching to any of them.
7296 to see it) and allows direct switching to any of them.
7297 Type
7297 Type
7298 \family typewriter
7298 \family typewriter
7299 `cd?
7299 `cd?
7300 \family default
7300 \family default
7301 ' for more details.
7301 ' for more details.
7302 \layout Standard
7302 \layout Standard
7303
7303
7304
7304
7305 \family typewriter
7305 \family typewriter
7306 %pushd
7306 %pushd
7307 \family default
7307 \family default
7308 ,
7308 ,
7309 \family typewriter
7309 \family typewriter
7310 %popd
7310 %popd
7311 \family default
7311 \family default
7312 and
7312 and
7313 \family typewriter
7313 \family typewriter
7314 %dirs
7314 %dirs
7315 \family default
7315 \family default
7316 are provided for directory stack handling.
7316 are provided for directory stack handling.
7317 \layout Subsection
7317 \layout Subsection
7318
7318
7319 Prompt customization
7319 Prompt customization
7320 \layout Standard
7320 \layout Standard
7321
7321
7322 The supplied
7322 The supplied
7323 \family typewriter
7323 \family typewriter
7324 ipythonrc-pysh
7324 ipythonrc-pysh
7325 \family default
7325 \family default
7326 profile comes with an example of a very colored and detailed prompt, mainly
7326 profile comes with an example of a very colored and detailed prompt, mainly
7327 to serve as an illustration.
7327 to serve as an illustration.
7328 The valid escape sequences, besides color names, are:
7328 The valid escape sequences, besides color names, are:
7329 \layout Description
7329 \layout Description
7330
7330
7331
7331
7332 \backslash
7332 \backslash
7333 # - Prompt number.
7333 # - Prompt number.
7334 \layout Description
7334 \layout Description
7335
7335
7336
7336
7337 \backslash
7337 \backslash
7338 D - Dots, as many as there are digits in
7338 D - Dots, as many as there are digits in
7339 \backslash
7339 \backslash
7340 # (so they align).
7340 # (so they align).
7341 \layout Description
7341 \layout Description
7342
7342
7343
7343
7344 \backslash
7344 \backslash
7345 w - Current working directory (cwd).
7345 w - Current working directory (cwd).
7346 \layout Description
7346 \layout Description
7347
7347
7348
7348
7349 \backslash
7349 \backslash
7350 W - Basename of current working directory.
7350 W - Basename of current working directory.
7351 \layout Description
7351 \layout Description
7352
7352
7353
7353
7354 \backslash
7354 \backslash
7355 X
7355 X
7356 \emph on
7356 \emph on
7357 N
7357 N
7358 \emph default
7358 \emph default
7359 - Where
7359 - Where
7360 \emph on
7360 \emph on
7361 N
7361 N
7362 \emph default
7362 \emph default
7363 =0..5.
7363 =0..5.
7364 N terms of the cwd, with $HOME written as ~.
7364 N terms of the cwd, with $HOME written as ~.
7365 \layout Description
7365 \layout Description
7366
7366
7367
7367
7368 \backslash
7368 \backslash
7369 Y
7369 Y
7370 \emph on
7370 \emph on
7371 N
7371 N
7372 \emph default
7372 \emph default
7373 - Where
7373 - Where
7374 \emph on
7374 \emph on
7375 N
7375 N
7376 \emph default
7376 \emph default
7377 =0..5.
7377 =0..5.
7378 Like X
7378 Like X
7379 \emph on
7379 \emph on
7380 N
7380 N
7381 \emph default
7381 \emph default
7382 , but if ~ is term
7382 , but if ~ is term
7383 \emph on
7383 \emph on
7384 N
7384 N
7385 \emph default
7385 \emph default
7386 +1 it's also shown.
7386 +1 it's also shown.
7387 \layout Description
7387 \layout Description
7388
7388
7389
7389
7390 \backslash
7390 \backslash
7391 u - Username.
7391 u - Username.
7392 \layout Description
7392 \layout Description
7393
7393
7394
7394
7395 \backslash
7395 \backslash
7396 H - Full hostname.
7396 H - Full hostname.
7397 \layout Description
7397 \layout Description
7398
7398
7399
7399
7400 \backslash
7400 \backslash
7401 h - Hostname up to first '.'
7401 h - Hostname up to first '.'
7402 \layout Description
7402 \layout Description
7403
7403
7404
7404
7405 \backslash
7405 \backslash
7406 $ - Root symbol ($ or #).
7406 $ - Root symbol ($ or #).
7407
7407
7408 \layout Description
7408 \layout Description
7409
7409
7410
7410
7411 \backslash
7411 \backslash
7412 t - Current time, in H:M:S format.
7412 t - Current time, in H:M:S format.
7413 \layout Description
7413 \layout Description
7414
7414
7415
7415
7416 \backslash
7416 \backslash
7417 v - IPython release version.
7417 v - IPython release version.
7418
7418
7419 \layout Description
7419 \layout Description
7420
7420
7421
7421
7422 \backslash
7422 \backslash
7423 n - Newline.
7423 n - Newline.
7424
7424
7425 \layout Description
7425 \layout Description
7426
7426
7427
7427
7428 \backslash
7428 \backslash
7429 r - Carriage return.
7429 r - Carriage return.
7430
7430
7431 \layout Description
7431 \layout Description
7432
7432
7433
7433
7434 \backslash
7434 \backslash
7435
7435
7436 \backslash
7436 \backslash
7437 - An explicitly escaped '
7437 - An explicitly escaped '
7438 \backslash
7438 \backslash
7439 '.
7439 '.
7440 \layout Standard
7440 \layout Standard
7441
7441
7442 You can configure your prompt colors using any ANSI color escape.
7442 You can configure your prompt colors using any ANSI color escape.
7443 Each color escape sets the color for any subsequent text, until another
7443 Each color escape sets the color for any subsequent text, until another
7444 escape comes in and changes things.
7444 escape comes in and changes things.
7445 The valid color escapes are:
7445 The valid color escapes are:
7446 \layout Description
7446 \layout Description
7447
7447
7448
7448
7449 \backslash
7449 \backslash
7450 C_Black
7450 C_Black
7451 \layout Description
7451 \layout Description
7452
7452
7453
7453
7454 \backslash
7454 \backslash
7455 C_Blue
7455 C_Blue
7456 \layout Description
7456 \layout Description
7457
7457
7458
7458
7459 \backslash
7459 \backslash
7460 C_Brown
7460 C_Brown
7461 \layout Description
7461 \layout Description
7462
7462
7463
7463
7464 \backslash
7464 \backslash
7465 C_Cyan
7465 C_Cyan
7466 \layout Description
7466 \layout Description
7467
7467
7468
7468
7469 \backslash
7469 \backslash
7470 C_DarkGray
7470 C_DarkGray
7471 \layout Description
7471 \layout Description
7472
7472
7473
7473
7474 \backslash
7474 \backslash
7475 C_Green
7475 C_Green
7476 \layout Description
7476 \layout Description
7477
7477
7478
7478
7479 \backslash
7479 \backslash
7480 C_LightBlue
7480 C_LightBlue
7481 \layout Description
7481 \layout Description
7482
7482
7483
7483
7484 \backslash
7484 \backslash
7485 C_LightCyan
7485 C_LightCyan
7486 \layout Description
7486 \layout Description
7487
7487
7488
7488
7489 \backslash
7489 \backslash
7490 C_LightGray
7490 C_LightGray
7491 \layout Description
7491 \layout Description
7492
7492
7493
7493
7494 \backslash
7494 \backslash
7495 C_LightGreen
7495 C_LightGreen
7496 \layout Description
7496 \layout Description
7497
7497
7498
7498
7499 \backslash
7499 \backslash
7500 C_LightPurple
7500 C_LightPurple
7501 \layout Description
7501 \layout Description
7502
7502
7503
7503
7504 \backslash
7504 \backslash
7505 C_LightRed
7505 C_LightRed
7506 \layout Description
7506 \layout Description
7507
7507
7508
7508
7509 \backslash
7509 \backslash
7510 C_Purple
7510 C_Purple
7511 \layout Description
7511 \layout Description
7512
7512
7513
7513
7514 \backslash
7514 \backslash
7515 C_Red
7515 C_Red
7516 \layout Description
7516 \layout Description
7517
7517
7518
7518
7519 \backslash
7519 \backslash
7520 C_White
7520 C_White
7521 \layout Description
7521 \layout Description
7522
7522
7523
7523
7524 \backslash
7524 \backslash
7525 C_Yellow
7525 C_Yellow
7526 \layout Description
7526 \layout Description
7527
7527
7528
7528
7529 \backslash
7529 \backslash
7530 C_Normal Stop coloring, defaults to your terminal settings.
7530 C_Normal Stop coloring, defaults to your terminal settings.
7531 \layout Section
7531 \layout Section
7532
7532
7533
7533
7534 \begin_inset LatexCommand \label{sec:Threading-support}
7534 \begin_inset LatexCommand \label{sec:Threading-support}
7535
7535
7536 \end_inset
7536 \end_inset
7537
7537
7538 Threading support
7538 Threading support
7539 \layout Standard
7539 \layout Standard
7540
7540
7541
7541
7542 \series bold
7542 \series bold
7543 WARNING:
7543 WARNING:
7544 \series default
7544 \series default
7545 The threading support is still somewhat experimental, and it has only seen
7545 The threading support is still somewhat experimental, and it has only seen
7546 reasonable testing under Linux.
7546 reasonable testing under Linux.
7547 Threaded code is particularly tricky to debug, and it tends to show extremely
7547 Threaded code is particularly tricky to debug, and it tends to show extremely
7548 platform-dependent behavior.
7548 platform-dependent behavior.
7549 Since I only have access to Linux machines, I will have to rely on user's
7549 Since I only have access to Linux machines, I will have to rely on user's
7550 experiences and assistance for this area of IPython to improve under other
7550 experiences and assistance for this area of IPython to improve under other
7551 platforms.
7551 platforms.
7552 \layout Standard
7552 \layout Standard
7553
7553
7554 IPython, via the
7554 IPython, via the
7555 \family typewriter
7555 \family typewriter
7556 -gthread
7556 -gthread
7557 \family default
7557 \family default
7558 ,
7558 ,
7559 \family typewriter
7559 \family typewriter
7560 -qthread
7560 -qthread
7561 \family default
7561 \family default
7562 and
7562 and
7563 \family typewriter
7563 \family typewriter
7564 -wthread
7564 -wthread
7565 \family default
7565 \family default
7566 options (described in Sec.\SpecialChar ~
7566 options (described in Sec.\SpecialChar ~
7567
7567
7568 \begin_inset LatexCommand \ref{sec:threading-opts}
7568 \begin_inset LatexCommand \ref{sec:threading-opts}
7569
7569
7570 \end_inset
7570 \end_inset
7571
7571
7572 ), can run in multithreaded mode to support pyGTK, Qt and WXPython applications
7572 ), can run in multithreaded mode to support pyGTK, Qt and WXPython applications
7573 respectively.
7573 respectively.
7574 These GUI toolkits need to control the python main loop of execution, so
7574 These GUI toolkits need to control the python main loop of execution, so
7575 under a normal Python interpreter, starting a pyGTK, Qt or WXPython application
7575 under a normal Python interpreter, starting a pyGTK, Qt or WXPython application
7576 will immediately freeze the shell.
7576 will immediately freeze the shell.
7577
7577
7578 \layout Standard
7578 \layout Standard
7579
7579
7580 IPython, with one of these options (you can only use one at a time), separates
7580 IPython, with one of these options (you can only use one at a time), separates
7581 the graphical loop and IPython's code execution run into different threads.
7581 the graphical loop and IPython's code execution run into different threads.
7582 This allows you to test interactively (with
7582 This allows you to test interactively (with
7583 \family typewriter
7583 \family typewriter
7584 %run
7584 %run
7585 \family default
7585 \family default
7586 , for example) your GUI code without blocking.
7586 , for example) your GUI code without blocking.
7587 \layout Standard
7587 \layout Standard
7588
7588
7589 A nice mini-tutorial on using IPython along with the Qt Designer application
7589 A nice mini-tutorial on using IPython along with the Qt Designer application
7590 is available at the SciPy wiki:
7590 is available at the SciPy wiki:
7591 \begin_inset LatexCommand \htmlurl{http://www.scipy.org/wikis/topical_software/QtWithIPythonAndDesigner}
7591 \begin_inset LatexCommand \htmlurl{http://www.scipy.org/wikis/topical_software/QtWithIPythonAndDesigner}
7592
7592
7593 \end_inset
7593 \end_inset
7594
7594
7595 .
7595 .
7596 \layout Subsection
7596 \layout Subsection
7597
7597
7598 Tk issues
7598 Tk issues
7599 \layout Standard
7599 \layout Standard
7600
7600
7601 As indicated in Sec.\SpecialChar ~
7601 As indicated in Sec.\SpecialChar ~
7602
7602
7603 \begin_inset LatexCommand \ref{sec:threading-opts}
7603 \begin_inset LatexCommand \ref{sec:threading-opts}
7604
7604
7605 \end_inset
7605 \end_inset
7606
7606
7607 , a special
7607 , a special
7608 \family typewriter
7608 \family typewriter
7609 -tk
7609 -tk
7610 \family default
7610 \family default
7611 option is provided to try and allow Tk graphical applications to coexist
7611 option is provided to try and allow Tk graphical applications to coexist
7612 interactively with WX, Qt or GTK ones.
7612 interactively with WX, Qt or GTK ones.
7613 Whether this works at all, however, is very platform and configuration
7613 Whether this works at all, however, is very platform and configuration
7614 dependent.
7614 dependent.
7615 Please experiment with simple test cases before committing to using this
7615 Please experiment with simple test cases before committing to using this
7616 combination of Tk and GTK/Qt/WX threading in a production environment.
7616 combination of Tk and GTK/Qt/WX threading in a production environment.
7617 \layout Subsection
7617 \layout Subsection
7618
7618
7619 Signals and Threads
7619 Signals and Threads
7620 \layout Standard
7620 \layout Standard
7621
7621
7622 When any of the thread systems (GTK, Qt or WX) are active, either directly
7622 When any of the thread systems (GTK, Qt or WX) are active, either directly
7623 or via
7623 or via
7624 \family typewriter
7624 \family typewriter
7625 -pylab
7625 -pylab
7626 \family default
7626 \family default
7627 with a threaded backend, it is impossible to interrupt long-running Python
7627 with a threaded backend, it is impossible to interrupt long-running Python
7628 code via
7628 code via
7629 \family typewriter
7629 \family typewriter
7630 Ctrl-C
7630 Ctrl-C
7631 \family default
7631 \family default
7632 .
7632 .
7633 IPython can not pass the KeyboardInterrupt exception (or the underlying
7633 IPython can not pass the KeyboardInterrupt exception (or the underlying
7634
7634
7635 \family typewriter
7635 \family typewriter
7636 SIGINT
7636 SIGINT
7637 \family default
7637 \family default
7638 ) across threads, so any long-running process started from IPython will
7638 ) across threads, so any long-running process started from IPython will
7639 run to completion, or will have to be killed via an external (OS-based)
7639 run to completion, or will have to be killed via an external (OS-based)
7640 mechanism.
7640 mechanism.
7641 \layout Standard
7641 \layout Standard
7642
7642
7643 To the best of my knowledge, this limitation is imposed by the Python interprete
7643 To the best of my knowledge, this limitation is imposed by the Python interprete
7644 r itself, and it comes from the difficulty of writing portable signal/threaded
7644 r itself, and it comes from the difficulty of writing portable signal/threaded
7645 code.
7645 code.
7646 If any user is an expert on this topic and can suggest a better solution,
7646 If any user is an expert on this topic and can suggest a better solution,
7647 I would love to hear about it.
7647 I would love to hear about it.
7648 In the IPython sources, look at the
7648 In the IPython sources, look at the
7649 \family typewriter
7649 \family typewriter
7650 Shell.py
7650 Shell.py
7651 \family default
7651 \family default
7652 module, and in particular at the
7652 module, and in particular at the
7653 \family typewriter
7653 \family typewriter
7654 runcode()
7654 runcode()
7655 \family default
7655 \family default
7656 method.
7656 method.
7657
7657
7658 \layout Subsection
7658 \layout Subsection
7659
7659
7660 I/O pitfalls
7660 I/O pitfalls
7661 \layout Standard
7661 \layout Standard
7662
7662
7663 Be mindful that the Python interpreter switches between threads every
7663 Be mindful that the Python interpreter switches between threads every
7664 \begin_inset Formula $N$
7664 \begin_inset Formula $N$
7665 \end_inset
7665 \end_inset
7666
7666
7667 bytecodes, where the default value as of Python\SpecialChar ~
7667 bytecodes, where the default value as of Python\SpecialChar ~
7668 2.3 is
7668 2.3 is
7669 \begin_inset Formula $N=100.$
7669 \begin_inset Formula $N=100.$
7670 \end_inset
7670 \end_inset
7671
7671
7672 This value can be read by using the
7672 This value can be read by using the
7673 \family typewriter
7673 \family typewriter
7674 sys.getcheckinterval()
7674 sys.getcheckinterval()
7675 \family default
7675 \family default
7676 function, and it can be reset via
7676 function, and it can be reset via
7677 \family typewriter
7677 \family typewriter
7678 sys.setcheckinterval(
7678 sys.setcheckinterval(
7679 \emph on
7679 \emph on
7680 N
7680 N
7681 \emph default
7681 \emph default
7682 )
7682 )
7683 \family default
7683 \family default
7684 .
7684 .
7685 This switching of threads can cause subtly confusing effects if one of
7685 This switching of threads can cause subtly confusing effects if one of
7686 your threads is doing file I/O.
7686 your threads is doing file I/O.
7687 In text mode, most systems only flush file buffers when they encounter
7687 In text mode, most systems only flush file buffers when they encounter
7688 a
7688 a
7689 \family typewriter
7689 \family typewriter
7690 `
7690 `
7691 \backslash
7691 \backslash
7692 n'
7692 n'
7693 \family default
7693 \family default
7694 .
7694 .
7695 An instruction as simple as
7695 An instruction as simple as
7696 \family typewriter
7696 \family typewriter
7697
7697
7698 \newline
7698 \newline
7699 \SpecialChar ~
7699 \SpecialChar ~
7700 \SpecialChar ~
7700 \SpecialChar ~
7701 print >> filehandle,
7701 print >> filehandle,
7702 \begin_inset Quotes eld
7702 \begin_inset Quotes eld
7703 \end_inset
7703 \end_inset
7704
7704
7705 hello world
7705 hello world
7706 \begin_inset Quotes erd
7706 \begin_inset Quotes erd
7707 \end_inset
7707 \end_inset
7708
7708
7709
7709
7710 \family default
7710 \family default
7711
7711
7712 \newline
7712 \newline
7713 actually consists of several bytecodes, so it is possible that the newline
7713 actually consists of several bytecodes, so it is possible that the newline
7714 does not reach your file before the next thread switch.
7714 does not reach your file before the next thread switch.
7715 Similarly, if you are writing to a file in binary mode, the file won't
7715 Similarly, if you are writing to a file in binary mode, the file won't
7716 be flushed until the buffer fills, and your other thread may see apparently
7716 be flushed until the buffer fills, and your other thread may see apparently
7717 truncated files.
7717 truncated files.
7718
7718
7719 \layout Standard
7719 \layout Standard
7720
7720
7721 For this reason, if you are using IPython's thread support and have (for
7721 For this reason, if you are using IPython's thread support and have (for
7722 example) a GUI application which will read data generated by files written
7722 example) a GUI application which will read data generated by files written
7723 to from the IPython thread, the safest approach is to open all of your
7723 to from the IPython thread, the safest approach is to open all of your
7724 files in unbuffered mode (the third argument to the
7724 files in unbuffered mode (the third argument to the
7725 \family typewriter
7725 \family typewriter
7726 file/open
7726 file/open
7727 \family default
7727 \family default
7728 function is the buffering value):
7728 function is the buffering value):
7729 \newline
7729 \newline
7730
7730
7731 \family typewriter
7731 \family typewriter
7732 \SpecialChar ~
7732 \SpecialChar ~
7733 \SpecialChar ~
7733 \SpecialChar ~
7734 filehandle = open(filename,mode,0)
7734 filehandle = open(filename,mode,0)
7735 \layout Standard
7735 \layout Standard
7736
7736
7737 This is obviously a brute force way of avoiding race conditions with the
7737 This is obviously a brute force way of avoiding race conditions with the
7738 file buffering.
7738 file buffering.
7739 If you want to do it cleanly, and you have a resource which is being shared
7739 If you want to do it cleanly, and you have a resource which is being shared
7740 by the interactive IPython loop and your GUI thread, you should really
7740 by the interactive IPython loop and your GUI thread, you should really
7741 handle it with thread locking and syncrhonization properties.
7741 handle it with thread locking and syncrhonization properties.
7742 The Python documentation discusses these.
7742 The Python documentation discusses these.
7743 \layout Section
7743 \layout Section
7744
7744
7745
7745
7746 \begin_inset LatexCommand \label{sec:interactive-demos}
7746 \begin_inset LatexCommand \label{sec:interactive-demos}
7747
7747
7748 \end_inset
7748 \end_inset
7749
7749
7750 Interactive demos with IPython
7750 Interactive demos with IPython
7751 \layout Standard
7751 \layout Standard
7752
7752
7753 IPython ships with XXX
7753 IPython ships with a basic system for running scripts interactively in sections,
7754 useful when presenting code to audiences.
7755 A few tags embedded in comments (so that the script remains valid Python
7756 code) divide a file into separate blocks, and the demo can be run one block
7757 at a time, with IPython printing (with syntax highlighting) the block before
7758 executing it, and returning to the interactive prompt after each block.
7759 The interactive namespace is updated after each block is run with the contents
7760 of the demo's namespace.
7761 \layout Standard
7762
7763 This allows you to show a piece of code, run it and then execute interactively
7764 commands based on the variables just created.
7765 Once you want to continue, you simply execute the next block of the demo.
7766 The following listing shows the markup necessary for dividing a script
7767 into sections for execution as a demo.
7754 \layout Standard
7768 \layout Standard
7755
7769
7756
7770
7757 \begin_inset ERT
7771 \begin_inset ERT
7758 status Open
7772 status Open
7759
7773
7760 \layout Standard
7774 \layout Standard
7761
7775
7762 \backslash
7776 \backslash
7763 codelist{examples/example-demo.py}
7777 codelist{examples/example-demo.py}
7764 \end_inset
7778 \end_inset
7765
7779
7766
7780
7781 \layout Standard
7782
7783 In order to run a file as a demo, you must first make a
7784 \family typewriter
7785 Demo
7786 \family default
7787 object out of it.
7788 If the file is named
7789 \family typewriter
7790 myscript.py
7791 \family default
7792 , the following code will make a demo:
7793 \layout LyX-Code
7794
7795 from IPython.demo import Demo
7796 \layout LyX-Code
7797
7798 mydemo = Demo('myscript.py')
7799 \layout Standard
7800
7801 This creates the
7802 \family typewriter
7803 mydemo
7804 \family default
7805 object, whose blocks you run one at a time by simply calling the object
7806 with no arguments.
7807 If you have autocall active in IPython (the default), all you need to do
7808 is type
7809 \layout LyX-Code
7810
7811 mydemo
7812 \layout Standard
7813
7814 and IPython will call it, executing each block.
7815 Demo objects can be restarted, you can move forward or back skipping blocks,
7816 re-execute the last block, etc.
7817 Simply use the Tab key on a demo object to see its methods, and call
7818 \family typewriter
7819 `?'
7820 \family default
7821 on them to see their docstrings for more usage details.
7822 In addition, the
7823 \family typewriter
7824 demo
7825 \family default
7826 module itself contains a comprehensive docstring, which you can access
7827 via
7828 \layout LyX-Code
7829
7830 from IPython import demo
7831 \layout LyX-Code
7832
7833 demo?
7834 \layout Standard
7835
7836
7837 \series bold
7838 Limitations:
7839 \series default
7840 It is important to note that these demos are limited to fairly simple uses.
7841 In particular, you can
7842 \emph on
7843 not
7844 \emph default
7845 put division marks in indented code (loops, if statements, function definitions
7846 , etc.) Supporting something like this would basically require tracking the
7847 internal execution state of the Python interpreter, so only top-level divisions
7848 are allowed.
7849 If you want to be able to open an IPython instance at an arbitrary point
7850 in a program, you can use IPython's embedding facilities, described in
7851 detail in Sec\SpecialChar \@.
7852 \SpecialChar ~
7853
7854 \begin_inset LatexCommand \ref{sec:embed}
7855
7856 \end_inset
7857
7858 .
7767 \layout Section
7859 \layout Section
7768
7860
7769
7861
7770 \begin_inset LatexCommand \label{sec:matplotlib-support}
7862 \begin_inset LatexCommand \label{sec:matplotlib-support}
7771
7863
7772 \end_inset
7864 \end_inset
7773
7865
7774 Plotting with
7866 Plotting with
7775 \family typewriter
7867 \family typewriter
7776 matplotlib
7868 matplotlib
7777 \family default
7869 \family default
7778
7870
7779 \layout Standard
7871 \layout Standard
7780
7872
7781 The matplotlib library (
7873 The matplotlib library (
7782 \begin_inset LatexCommand \htmlurl[http://matplotlib.sourceforge.net]{http://matplotlib.sourceforge.net}
7874 \begin_inset LatexCommand \htmlurl[http://matplotlib.sourceforge.net]{http://matplotlib.sourceforge.net}
7783
7875
7784 \end_inset
7876 \end_inset
7785
7877
7786 ) provides high quality 2D plotting for Python.
7878 ) provides high quality 2D plotting for Python.
7787 Matplotlib can produce plots on screen using a variety of GUI toolkits,
7879 Matplotlib can produce plots on screen using a variety of GUI toolkits,
7788 including Tk, GTK and WXPython.
7880 including Tk, GTK and WXPython.
7789 It also provides a number of commands useful for scientific computing,
7881 It also provides a number of commands useful for scientific computing,
7790 all with a syntax compatible with that of the popular Matlab program.
7882 all with a syntax compatible with that of the popular Matlab program.
7791 \layout Standard
7883 \layout Standard
7792
7884
7793 IPython accepts the special option
7885 IPython accepts the special option
7794 \family typewriter
7886 \family typewriter
7795 -pylab
7887 -pylab
7796 \family default
7888 \family default
7797 (Sec.\SpecialChar ~
7889 (Sec.\SpecialChar ~
7798
7890
7799 \begin_inset LatexCommand \ref{sec:cmd-line-opts}
7891 \begin_inset LatexCommand \ref{sec:cmd-line-opts}
7800
7892
7801 \end_inset
7893 \end_inset
7802
7894
7803 ).
7895 ).
7804 This configures it to support matplotlib, honoring the settings in the
7896 This configures it to support matplotlib, honoring the settings in the
7805
7897
7806 \family typewriter
7898 \family typewriter
7807 .matplotlibrc
7899 .matplotlibrc
7808 \family default
7900 \family default
7809 file.
7901 file.
7810 IPython will detect the user's choice of matplotlib GUI backend, and automatica
7902 IPython will detect the user's choice of matplotlib GUI backend, and automatica
7811 lly select the proper threading model to prevent blocking.
7903 lly select the proper threading model to prevent blocking.
7812 It also sets matplotlib in interactive mode and modifies
7904 It also sets matplotlib in interactive mode and modifies
7813 \family typewriter
7905 \family typewriter
7814 %run
7906 %run
7815 \family default
7907 \family default
7816 slightly, so that any matplotlib-based script can be executed using
7908 slightly, so that any matplotlib-based script can be executed using
7817 \family typewriter
7909 \family typewriter
7818 %run
7910 %run
7819 \family default
7911 \family default
7820 and the final
7912 and the final
7821 \family typewriter
7913 \family typewriter
7822 show()
7914 show()
7823 \family default
7915 \family default
7824 command does not block the interactive shell.
7916 command does not block the interactive shell.
7825 \layout Standard
7917 \layout Standard
7826
7918
7827 The
7919 The
7828 \family typewriter
7920 \family typewriter
7829 -pylab
7921 -pylab
7830 \family default
7922 \family default
7831 option must be given first in order for IPython to configure its threading
7923 option must be given first in order for IPython to configure its threading
7832 mode.
7924 mode.
7833 However, you can still issue other options afterwards.
7925 However, you can still issue other options afterwards.
7834 This allows you to have a matplotlib-based environment customized with
7926 This allows you to have a matplotlib-based environment customized with
7835 additional modules using the standard IPython profile mechanism (Sec.\SpecialChar ~
7927 additional modules using the standard IPython profile mechanism (Sec.\SpecialChar ~
7836
7928
7837 \begin_inset LatexCommand \ref{sec:profiles}
7929 \begin_inset LatexCommand \ref{sec:profiles}
7838
7930
7839 \end_inset
7931 \end_inset
7840
7932
7841 ): ``
7933 ): ``
7842 \family typewriter
7934 \family typewriter
7843 ipython -pylab -p myprofile
7935 ipython -pylab -p myprofile
7844 \family default
7936 \family default
7845 '' will load the profile defined in
7937 '' will load the profile defined in
7846 \family typewriter
7938 \family typewriter
7847 ipythonrc-myprofile
7939 ipythonrc-myprofile
7848 \family default
7940 \family default
7849 after configuring matplotlib.
7941 after configuring matplotlib.
7850 \layout Section
7942 \layout Section
7851
7943
7852
7944
7853 \begin_inset LatexCommand \label{sec:Gnuplot}
7945 \begin_inset LatexCommand \label{sec:Gnuplot}
7854
7946
7855 \end_inset
7947 \end_inset
7856
7948
7857 Plotting with
7949 Plotting with
7858 \family typewriter
7950 \family typewriter
7859 Gnuplot
7951 Gnuplot
7860 \layout Standard
7952 \layout Standard
7861
7953
7862 Through the magic extension system described in sec.
7954 Through the magic extension system described in sec.
7863
7955
7864 \begin_inset LatexCommand \ref{sec:magic}
7956 \begin_inset LatexCommand \ref{sec:magic}
7865
7957
7866 \end_inset
7958 \end_inset
7867
7959
7868 , IPython incorporates a mechanism for conveniently interfacing with the
7960 , IPython incorporates a mechanism for conveniently interfacing with the
7869 Gnuplot system (
7961 Gnuplot system (
7870 \begin_inset LatexCommand \htmlurl{http://www.gnuplot.info}
7962 \begin_inset LatexCommand \htmlurl{http://www.gnuplot.info}
7871
7963
7872 \end_inset
7964 \end_inset
7873
7965
7874 ).
7966 ).
7875 Gnuplot is a very complete 2D and 3D plotting package available for many
7967 Gnuplot is a very complete 2D and 3D plotting package available for many
7876 operating systems and commonly included in modern Linux distributions.
7968 operating systems and commonly included in modern Linux distributions.
7877
7969
7878 \layout Standard
7970 \layout Standard
7879
7971
7880 Besides having Gnuplot installed, this functionality requires the
7972 Besides having Gnuplot installed, this functionality requires the
7881 \family typewriter
7973 \family typewriter
7882 Gnuplot.py
7974 Gnuplot.py
7883 \family default
7975 \family default
7884 module for interfacing python with Gnuplot.
7976 module for interfacing python with Gnuplot.
7885 It can be downloaded from:
7977 It can be downloaded from:
7886 \begin_inset LatexCommand \htmlurl{http://gnuplot-py.sourceforge.net}
7978 \begin_inset LatexCommand \htmlurl{http://gnuplot-py.sourceforge.net}
7887
7979
7888 \end_inset
7980 \end_inset
7889
7981
7890 .
7982 .
7891 \layout Subsection
7983 \layout Subsection
7892
7984
7893 Proper Gnuplot configuration
7985 Proper Gnuplot configuration
7894 \layout Standard
7986 \layout Standard
7895
7987
7896 As of version 4.0, Gnuplot has excellent mouse and interactive keyboard support.
7988 As of version 4.0, Gnuplot has excellent mouse and interactive keyboard support.
7897 However, as of
7989 However, as of
7898 \family typewriter
7990 \family typewriter
7899 Gnuplot.py
7991 Gnuplot.py
7900 \family default
7992 \family default
7901 version 1.7, a new option was added to communicate between Python and Gnuplot
7993 version 1.7, a new option was added to communicate between Python and Gnuplot
7902 via FIFOs (pipes).
7994 via FIFOs (pipes).
7903 This mechanism, while fast, also breaks the mouse system.
7995 This mechanism, while fast, also breaks the mouse system.
7904 You must therefore set the variable
7996 You must therefore set the variable
7905 \family typewriter
7997 \family typewriter
7906 prefer_fifo_data
7998 prefer_fifo_data
7907 \family default
7999 \family default
7908 to
8000 to
7909 \family typewriter
8001 \family typewriter
7910 0
8002 0
7911 \family default
8003 \family default
7912 in file
8004 in file
7913 \family typewriter
8005 \family typewriter
7914 gp_unix.py
8006 gp_unix.py
7915 \family default
8007 \family default
7916 if you wish to keep the interactive mouse and keyboard features working
8008 if you wish to keep the interactive mouse and keyboard features working
7917 properly (
8009 properly (
7918 \family typewriter
8010 \family typewriter
7919 prefer_inline_data
8011 prefer_inline_data
7920 \family default
8012 \family default
7921 also must be
8013 also must be
7922 \family typewriter
8014 \family typewriter
7923 0
8015 0
7924 \family default
8016 \family default
7925 , but this is the default so unless you've changed it manually you should
8017 , but this is the default so unless you've changed it manually you should
7926 be fine).
8018 be fine).
7927 \layout Standard
8019 \layout Standard
7928
8020
7929 'Out of the box', Gnuplot is configured with a rather poor set of size,
8021 'Out of the box', Gnuplot is configured with a rather poor set of size,
7930 color and linewidth choices which make the graphs fairly hard to read on
8022 color and linewidth choices which make the graphs fairly hard to read on
7931 modern high-resolution displays (although they work fine on old 640x480
8023 modern high-resolution displays (although they work fine on old 640x480
7932 ones).
8024 ones).
7933 Below is a section of my
8025 Below is a section of my
7934 \family typewriter
8026 \family typewriter
7935 .Xdefaults
8027 .Xdefaults
7936 \family default
8028 \family default
7937 file which I use for having a more convenient Gnuplot setup.
8029 file which I use for having a more convenient Gnuplot setup.
7938 Remember to load it by running
8030 Remember to load it by running
7939 \family typewriter
8031 \family typewriter
7940 `xrdb .Xdefaults`
8032 `xrdb .Xdefaults`
7941 \family default
8033 \family default
7942 :
8034 :
7943 \layout Standard
8035 \layout Standard
7944
8036
7945
8037
7946 \family typewriter
8038 \family typewriter
7947 !******************************************************************
8039 !******************************************************************
7948 \newline
8040 \newline
7949 ! gnuplot options
8041 ! gnuplot options
7950 \newline
8042 \newline
7951 ! modify this for a convenient window size
8043 ! modify this for a convenient window size
7952 \newline
8044 \newline
7953 gnuplot*geometry: 780x580
8045 gnuplot*geometry: 780x580
7954 \layout Standard
8046 \layout Standard
7955
8047
7956
8048
7957 \family typewriter
8049 \family typewriter
7958 ! on-screen font (not for PostScript)
8050 ! on-screen font (not for PostScript)
7959 \newline
8051 \newline
7960 gnuplot*font: -misc-fixed-bold-r-normal--15-120-100-100-c-90-iso8859-1
8052 gnuplot*font: -misc-fixed-bold-r-normal--15-120-100-100-c-90-iso8859-1
7961 \layout Standard
8053 \layout Standard
7962
8054
7963
8055
7964 \family typewriter
8056 \family typewriter
7965 ! color options
8057 ! color options
7966 \newline
8058 \newline
7967 gnuplot*background: black
8059 gnuplot*background: black
7968 \newline
8060 \newline
7969 gnuplot*textColor: white
8061 gnuplot*textColor: white
7970 \newline
8062 \newline
7971 gnuplot*borderColor: white
8063 gnuplot*borderColor: white
7972 \newline
8064 \newline
7973 gnuplot*axisColor: white
8065 gnuplot*axisColor: white
7974 \newline
8066 \newline
7975 gnuplot*line1Color: red
8067 gnuplot*line1Color: red
7976 \newline
8068 \newline
7977 gnuplot*line2Color: green
8069 gnuplot*line2Color: green
7978 \newline
8070 \newline
7979 gnuplot*line3Color: blue
8071 gnuplot*line3Color: blue
7980 \newline
8072 \newline
7981 gnuplot*line4Color: magenta
8073 gnuplot*line4Color: magenta
7982 \newline
8074 \newline
7983 gnuplot*line5Color: cyan
8075 gnuplot*line5Color: cyan
7984 \newline
8076 \newline
7985 gnuplot*line6Color: sienna
8077 gnuplot*line6Color: sienna
7986 \newline
8078 \newline
7987 gnuplot*line7Color: orange
8079 gnuplot*line7Color: orange
7988 \newline
8080 \newline
7989 gnuplot*line8Color: coral
8081 gnuplot*line8Color: coral
7990 \layout Standard
8082 \layout Standard
7991
8083
7992
8084
7993 \family typewriter
8085 \family typewriter
7994 ! multiplicative factor for point styles
8086 ! multiplicative factor for point styles
7995 \newline
8087 \newline
7996 gnuplot*pointsize: 2
8088 gnuplot*pointsize: 2
7997 \layout Standard
8089 \layout Standard
7998
8090
7999
8091
8000 \family typewriter
8092 \family typewriter
8001 ! line width options (in pixels)
8093 ! line width options (in pixels)
8002 \newline
8094 \newline
8003 gnuplot*borderWidth: 2
8095 gnuplot*borderWidth: 2
8004 \newline
8096 \newline
8005 gnuplot*axisWidth: 2
8097 gnuplot*axisWidth: 2
8006 \newline
8098 \newline
8007 gnuplot*line1Width: 2
8099 gnuplot*line1Width: 2
8008 \newline
8100 \newline
8009 gnuplot*line2Width: 2
8101 gnuplot*line2Width: 2
8010 \newline
8102 \newline
8011 gnuplot*line3Width: 2
8103 gnuplot*line3Width: 2
8012 \newline
8104 \newline
8013 gnuplot*line4Width: 2
8105 gnuplot*line4Width: 2
8014 \newline
8106 \newline
8015 gnuplot*line5Width: 2
8107 gnuplot*line5Width: 2
8016 \newline
8108 \newline
8017 gnuplot*line6Width: 2
8109 gnuplot*line6Width: 2
8018 \newline
8110 \newline
8019 gnuplot*line7Width: 2
8111 gnuplot*line7Width: 2
8020 \newline
8112 \newline
8021 gnuplot*line8Width: 2
8113 gnuplot*line8Width: 2
8022 \layout Subsection
8114 \layout Subsection
8023
8115
8024 The
8116 The
8025 \family typewriter
8117 \family typewriter
8026 IPython.GnuplotRuntime
8118 IPython.GnuplotRuntime
8027 \family default
8119 \family default
8028 module
8120 module
8029 \layout Standard
8121 \layout Standard
8030
8122
8031 IPython includes a module called
8123 IPython includes a module called
8032 \family typewriter
8124 \family typewriter
8033 Gnuplot2.py
8125 Gnuplot2.py
8034 \family default
8126 \family default
8035 which extends and improves the default
8127 which extends and improves the default
8036 \family typewriter
8128 \family typewriter
8037 Gnuplot
8129 Gnuplot
8038 \family default
8130 \family default
8039 .
8131 .
8040 \family typewriter
8132 \family typewriter
8041 py
8133 py
8042 \family default
8134 \family default
8043 (which it still relies upon).
8135 (which it still relies upon).
8044 For example, the new
8136 For example, the new
8045 \family typewriter
8137 \family typewriter
8046 plot
8138 plot
8047 \family default
8139 \family default
8048 function adds several improvements to the original making it more convenient
8140 function adds several improvements to the original making it more convenient
8049 for interactive use, and
8141 for interactive use, and
8050 \family typewriter
8142 \family typewriter
8051 hardcopy
8143 hardcopy
8052 \family default
8144 \family default
8053 fixes a bug in the original which under some circumstances blocks the creation
8145 fixes a bug in the original which under some circumstances blocks the creation
8054 of PostScript output.
8146 of PostScript output.
8055 \layout Standard
8147 \layout Standard
8056
8148
8057 For scripting use,
8149 For scripting use,
8058 \family typewriter
8150 \family typewriter
8059 GnuplotRuntime.py
8151 GnuplotRuntime.py
8060 \family default
8152 \family default
8061 is provided, which wraps
8153 is provided, which wraps
8062 \family typewriter
8154 \family typewriter
8063 Gnuplot2.py
8155 Gnuplot2.py
8064 \family default
8156 \family default
8065 and creates a series of global aliases.
8157 and creates a series of global aliases.
8066 These make it easy to control Gnuplot plotting jobs through the Python
8158 These make it easy to control Gnuplot plotting jobs through the Python
8067 language.
8159 language.
8068 \layout Standard
8160 \layout Standard
8069
8161
8070 Below is some example code which illustrates how to configure Gnuplot inside
8162 Below is some example code which illustrates how to configure Gnuplot inside
8071 your own programs but have it available for further interactive use through
8163 your own programs but have it available for further interactive use through
8072 an embedded IPython instance.
8164 an embedded IPython instance.
8073 Simply run this file at a system prompt.
8165 Simply run this file at a system prompt.
8074 This file is provided as
8166 This file is provided as
8075 \family typewriter
8167 \family typewriter
8076 example-gnuplot.py
8168 example-gnuplot.py
8077 \family default
8169 \family default
8078 in the examples directory:
8170 in the examples directory:
8079 \layout Standard
8171 \layout Standard
8080
8172
8081
8173
8082 \begin_inset ERT
8174 \begin_inset ERT
8083 status Open
8175 status Open
8084
8176
8085 \layout Standard
8177 \layout Standard
8086
8178
8087 \backslash
8179 \backslash
8088 codelist{examples/example-gnuplot.py}
8180 codelist{examples/example-gnuplot.py}
8089 \end_inset
8181 \end_inset
8090
8182
8091
8183
8092 \layout Subsection
8184 \layout Subsection
8093
8185
8094 The
8186 The
8095 \family typewriter
8187 \family typewriter
8096 numeric
8188 numeric
8097 \family default
8189 \family default
8098 profile: a scientific computing environment
8190 profile: a scientific computing environment
8099 \layout Standard
8191 \layout Standard
8100
8192
8101 The
8193 The
8102 \family typewriter
8194 \family typewriter
8103 numeric
8195 numeric
8104 \family default
8196 \family default
8105 IPython profile, which you can activate with
8197 IPython profile, which you can activate with
8106 \family typewriter
8198 \family typewriter
8107 `ipython -p numeric
8199 `ipython -p numeric
8108 \family default
8200 \family default
8109 ' will automatically load the IPython Gnuplot extensions (plus Numeric and
8201 ' will automatically load the IPython Gnuplot extensions (plus Numeric and
8110 other useful things for numerical computing), contained in the
8202 other useful things for numerical computing), contained in the
8111 \family typewriter
8203 \family typewriter
8112 IPython.GnuplotInteractive
8204 IPython.GnuplotInteractive
8113 \family default
8205 \family default
8114 module.
8206 module.
8115 This will create the globals
8207 This will create the globals
8116 \family typewriter
8208 \family typewriter
8117 Gnuplot
8209 Gnuplot
8118 \family default
8210 \family default
8119 (an alias to the improved Gnuplot2 module),
8211 (an alias to the improved Gnuplot2 module),
8120 \family typewriter
8212 \family typewriter
8121 gp
8213 gp
8122 \family default
8214 \family default
8123 (a Gnuplot active instance), the new magic commands
8215 (a Gnuplot active instance), the new magic commands
8124 \family typewriter
8216 \family typewriter
8125 %gpc
8217 %gpc
8126 \family default
8218 \family default
8127 and
8219 and
8128 \family typewriter
8220 \family typewriter
8129 %gp_set_instance
8221 %gp_set_instance
8130 \family default
8222 \family default
8131 and several other convenient globals.
8223 and several other convenient globals.
8132 Type
8224 Type
8133 \family typewriter
8225 \family typewriter
8134 gphelp()
8226 gphelp()
8135 \family default
8227 \family default
8136 for further details.
8228 for further details.
8137 \layout Standard
8229 \layout Standard
8138
8230
8139 This should turn IPython into a convenient environment for numerical computing,
8231 This should turn IPython into a convenient environment for numerical computing,
8140 with all the functions in the NumPy library and the Gnuplot facilities
8232 with all the functions in the NumPy library and the Gnuplot facilities
8141 for plotting.
8233 for plotting.
8142 Further improvements can be obtained by loading the SciPy libraries for
8234 Further improvements can be obtained by loading the SciPy libraries for
8143 scientific computing, available at
8235 scientific computing, available at
8144 \begin_inset LatexCommand \htmlurl{http://scipy.org}
8236 \begin_inset LatexCommand \htmlurl{http://scipy.org}
8145
8237
8146 \end_inset
8238 \end_inset
8147
8239
8148 .
8240 .
8149 \layout Standard
8241 \layout Standard
8150
8242
8151 If you are in the middle of a working session with numerical objects and
8243 If you are in the middle of a working session with numerical objects and
8152 need to plot them but you didn't start the
8244 need to plot them but you didn't start the
8153 \family typewriter
8245 \family typewriter
8154 numeric
8246 numeric
8155 \family default
8247 \family default
8156 profile, you can load these extensions at any time by typing
8248 profile, you can load these extensions at any time by typing
8157 \newline
8249 \newline
8158
8250
8159 \family typewriter
8251 \family typewriter
8160 from IPython.GnuplotInteractive import *
8252 from IPython.GnuplotInteractive import *
8161 \newline
8253 \newline
8162
8254
8163 \family default
8255 \family default
8164 at the IPython prompt.
8256 at the IPython prompt.
8165 This will allow you to keep your objects intact and start using Gnuplot
8257 This will allow you to keep your objects intact and start using Gnuplot
8166 to view them.
8258 to view them.
8167 \layout Section
8259 \layout Section
8168
8260
8169 Reporting bugs
8261 Reporting bugs
8170 \layout Subsection*
8262 \layout Subsection*
8171
8263
8172 Automatic crash reports
8264 Automatic crash reports
8173 \layout Standard
8265 \layout Standard
8174
8266
8175 Ideally, IPython itself shouldn't crash.
8267 Ideally, IPython itself shouldn't crash.
8176 It will catch exceptions produced by you, but bugs in its internals will
8268 It will catch exceptions produced by you, but bugs in its internals will
8177 still crash it.
8269 still crash it.
8178 \layout Standard
8270 \layout Standard
8179
8271
8180 In such a situation, IPython will leave a file named
8272 In such a situation, IPython will leave a file named
8181 \family typewriter
8273 \family typewriter
8182 IPython_crash_report.txt
8274 IPython_crash_report.txt
8183 \family default
8275 \family default
8184 in your IPYTHONDIR directory (that way if crashes happen several times
8276 in your IPYTHONDIR directory (that way if crashes happen several times
8185 it won't litter many directories, the post-mortem file is always located
8277 it won't litter many directories, the post-mortem file is always located
8186 in the same place and new occurrences just overwrite the previous one).
8278 in the same place and new occurrences just overwrite the previous one).
8187 If you can mail this file to the developers (see sec.
8279 If you can mail this file to the developers (see sec.
8188
8280
8189 \begin_inset LatexCommand \ref{sec:credits}
8281 \begin_inset LatexCommand \ref{sec:credits}
8190
8282
8191 \end_inset
8283 \end_inset
8192
8284
8193 for names and addresses), it will help us
8285 for names and addresses), it will help us
8194 \emph on
8286 \emph on
8195 a lot
8287 a lot
8196 \emph default
8288 \emph default
8197 in understanding the cause of the problem and fixing it sooner.
8289 in understanding the cause of the problem and fixing it sooner.
8198 \layout Subsection*
8290 \layout Subsection*
8199
8291
8200 The bug tracker
8292 The bug tracker
8201 \layout Standard
8293 \layout Standard
8202
8294
8203 IPython also has an online bug-tracker, located at
8295 IPython also has an online bug-tracker, located at
8204 \begin_inset LatexCommand \htmlurl{http://www.scipy.net/roundup/ipython}
8296 \begin_inset LatexCommand \htmlurl{http://www.scipy.net/roundup/ipython}
8205
8297
8206 \end_inset
8298 \end_inset
8207
8299
8208 .
8300 .
8209 In addition to mailing the developers, it would be a good idea to file
8301 In addition to mailing the developers, it would be a good idea to file
8210 a bug report here.
8302 a bug report here.
8211 This will ensure that the issue is properly followed to conclusion.
8303 This will ensure that the issue is properly followed to conclusion.
8212 \layout Standard
8304 \layout Standard
8213
8305
8214 You can also use this bug tracker to file feature requests.
8306 You can also use this bug tracker to file feature requests.
8215 \layout Section
8307 \layout Section
8216
8308
8217 Brief history
8309 Brief history
8218 \layout Subsection
8310 \layout Subsection
8219
8311
8220 Origins
8312 Origins
8221 \layout Standard
8313 \layout Standard
8222
8314
8223 The current IPython system grew out of the following three projects:
8315 The current IPython system grew out of the following three projects:
8224 \layout List
8316 \layout List
8225 \labelwidthstring 00.00.0000
8317 \labelwidthstring 00.00.0000
8226
8318
8227 ipython by Fernando PΓ©rez.
8319 ipython by Fernando PΓ©rez.
8228 I was working on adding Mathematica-type prompts and a flexible configuration
8320 I was working on adding Mathematica-type prompts and a flexible configuration
8229 system (something better than
8321 system (something better than
8230 \family typewriter
8322 \family typewriter
8231 $PYTHONSTARTUP
8323 $PYTHONSTARTUP
8232 \family default
8324 \family default
8233 ) to the standard Python interactive interpreter.
8325 ) to the standard Python interactive interpreter.
8234 \layout List
8326 \layout List
8235 \labelwidthstring 00.00.0000
8327 \labelwidthstring 00.00.0000
8236
8328
8237 IPP by Janko Hauser.
8329 IPP by Janko Hauser.
8238 Very well organized, great usability.
8330 Very well organized, great usability.
8239 Had an old help system.
8331 Had an old help system.
8240 IPP was used as the `container' code into which I added the functionality
8332 IPP was used as the `container' code into which I added the functionality
8241 from ipython and LazyPython.
8333 from ipython and LazyPython.
8242 \layout List
8334 \layout List
8243 \labelwidthstring 00.00.0000
8335 \labelwidthstring 00.00.0000
8244
8336
8245 LazyPython by Nathan Gray.
8337 LazyPython by Nathan Gray.
8246 Simple but
8338 Simple but
8247 \emph on
8339 \emph on
8248 very
8340 very
8249 \emph default
8341 \emph default
8250 powerful.
8342 powerful.
8251 The quick syntax (auto parens, auto quotes) and verbose/colored tracebacks
8343 The quick syntax (auto parens, auto quotes) and verbose/colored tracebacks
8252 were all taken from here.
8344 were all taken from here.
8253 \layout Standard
8345 \layout Standard
8254
8346
8255 When I found out (see sec.
8347 When I found out (see sec.
8256
8348
8257 \begin_inset LatexCommand \ref{figgins}
8349 \begin_inset LatexCommand \ref{figgins}
8258
8350
8259 \end_inset
8351 \end_inset
8260
8352
8261 ) about IPP and LazyPython I tried to join all three into a unified system.
8353 ) about IPP and LazyPython I tried to join all three into a unified system.
8262 I thought this could provide a very nice working environment, both for
8354 I thought this could provide a very nice working environment, both for
8263 regular programming and scientific computing: shell-like features, IDL/Matlab
8355 regular programming and scientific computing: shell-like features, IDL/Matlab
8264 numerics, Mathematica-type prompt history and great object introspection
8356 numerics, Mathematica-type prompt history and great object introspection
8265 and help facilities.
8357 and help facilities.
8266 I think it worked reasonably well, though it was a lot more work than I
8358 I think it worked reasonably well, though it was a lot more work than I
8267 had initially planned.
8359 had initially planned.
8268 \layout Subsection
8360 \layout Subsection
8269
8361
8270 Current status
8362 Current status
8271 \layout Standard
8363 \layout Standard
8272
8364
8273 The above listed features work, and quite well for the most part.
8365 The above listed features work, and quite well for the most part.
8274 But until a major internal restructuring is done (see below), only bug
8366 But until a major internal restructuring is done (see below), only bug
8275 fixing will be done, no other features will be added (unless very minor
8367 fixing will be done, no other features will be added (unless very minor
8276 and well localized in the cleaner parts of the code).
8368 and well localized in the cleaner parts of the code).
8277 \layout Standard
8369 \layout Standard
8278
8370
8279 IPython consists of some 12000 lines of pure python code, of which roughly
8371 IPython consists of some 12000 lines of pure python code, of which roughly
8280 50% are fairly clean.
8372 50% are fairly clean.
8281 The other 50% are fragile, messy code which needs a massive restructuring
8373 The other 50% are fragile, messy code which needs a massive restructuring
8282 before any further major work is done.
8374 before any further major work is done.
8283 Even the messy code is fairly well documented though, and most of the problems
8375 Even the messy code is fairly well documented though, and most of the problems
8284 in the (non-existent) class design are well pointed to by a PyChecker run.
8376 in the (non-existent) class design are well pointed to by a PyChecker run.
8285 So the rewriting work isn't that bad, it will just be time-consuming.
8377 So the rewriting work isn't that bad, it will just be time-consuming.
8286 \layout Subsection
8378 \layout Subsection
8287
8379
8288 Future
8380 Future
8289 \layout Standard
8381 \layout Standard
8290
8382
8291 See the separate
8383 See the separate
8292 \family typewriter
8384 \family typewriter
8293 new_design
8385 new_design
8294 \family default
8386 \family default
8295 document for details.
8387 document for details.
8296 Ultimately, I would like to see IPython become part of the standard Python
8388 Ultimately, I would like to see IPython become part of the standard Python
8297 distribution as a `big brother with batteries' to the standard Python interacti
8389 distribution as a `big brother with batteries' to the standard Python interacti
8298 ve interpreter.
8390 ve interpreter.
8299 But that will never happen with the current state of the code, so all contribut
8391 But that will never happen with the current state of the code, so all contribut
8300 ions are welcome.
8392 ions are welcome.
8301 \layout Section
8393 \layout Section
8302
8394
8303 License
8395 License
8304 \layout Standard
8396 \layout Standard
8305
8397
8306 IPython is released under the terms of the BSD license, whose general form
8398 IPython is released under the terms of the BSD license, whose general form
8307 can be found at:
8399 can be found at:
8308 \begin_inset LatexCommand \htmlurl{http://www.opensource.org/licenses/bsd-license.php}
8400 \begin_inset LatexCommand \htmlurl{http://www.opensource.org/licenses/bsd-license.php}
8309
8401
8310 \end_inset
8402 \end_inset
8311
8403
8312 .
8404 .
8313 The full text of the IPython license is reproduced below:
8405 The full text of the IPython license is reproduced below:
8314 \layout Quote
8406 \layout Quote
8315
8407
8316
8408
8317 \family typewriter
8409 \family typewriter
8318 \size small
8410 \size small
8319 IPython is released under a BSD-type license.
8411 IPython is released under a BSD-type license.
8320 \layout Quote
8412 \layout Quote
8321
8413
8322
8414
8323 \family typewriter
8415 \family typewriter
8324 \size small
8416 \size small
8325 Copyright (c) 2001, 2002, 2003, 2004 Fernando Perez <fperez@colorado.edu>.
8417 Copyright (c) 2001, 2002, 2003, 2004 Fernando Perez <fperez@colorado.edu>.
8326 \layout Quote
8418 \layout Quote
8327
8419
8328
8420
8329 \family typewriter
8421 \family typewriter
8330 \size small
8422 \size small
8331 Copyright (c) 2001 Janko Hauser <jhauser@zscout.de> and
8423 Copyright (c) 2001 Janko Hauser <jhauser@zscout.de> and
8332 \newline
8424 \newline
8333 Nathaniel Gray <n8gray@caltech.edu>.
8425 Nathaniel Gray <n8gray@caltech.edu>.
8334 \layout Quote
8426 \layout Quote
8335
8427
8336
8428
8337 \family typewriter
8429 \family typewriter
8338 \size small
8430 \size small
8339 All rights reserved.
8431 All rights reserved.
8340 \layout Quote
8432 \layout Quote
8341
8433
8342
8434
8343 \family typewriter
8435 \family typewriter
8344 \size small
8436 \size small
8345 Redistribution and use in source and binary forms, with or without modification,
8437 Redistribution and use in source and binary forms, with or without modification,
8346 are permitted provided that the following conditions are met:
8438 are permitted provided that the following conditions are met:
8347 \layout Quote
8439 \layout Quote
8348
8440
8349
8441
8350 \family typewriter
8442 \family typewriter
8351 \size small
8443 \size small
8352 a.
8444 a.
8353 Redistributions of source code must retain the above copyright notice,
8445 Redistributions of source code must retain the above copyright notice,
8354 this list of conditions and the following disclaimer.
8446 this list of conditions and the following disclaimer.
8355 \layout Quote
8447 \layout Quote
8356
8448
8357
8449
8358 \family typewriter
8450 \family typewriter
8359 \size small
8451 \size small
8360 b.
8452 b.
8361 Redistributions in binary form must reproduce the above copyright notice,
8453 Redistributions in binary form must reproduce the above copyright notice,
8362 this list of conditions and the following disclaimer in the documentation
8454 this list of conditions and the following disclaimer in the documentation
8363 and/or other materials provided with the distribution.
8455 and/or other materials provided with the distribution.
8364 \layout Quote
8456 \layout Quote
8365
8457
8366
8458
8367 \family typewriter
8459 \family typewriter
8368 \size small
8460 \size small
8369 c.
8461 c.
8370 Neither the name of the copyright holders nor the names of any contributors
8462 Neither the name of the copyright holders nor the names of any contributors
8371 to this software may be used to endorse or promote products derived from
8463 to this software may be used to endorse or promote products derived from
8372 this software without specific prior written permission.
8464 this software without specific prior written permission.
8373 \layout Quote
8465 \layout Quote
8374
8466
8375
8467
8376 \family typewriter
8468 \family typewriter
8377 \size small
8469 \size small
8378 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
8470 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
8379 IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
8471 IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
8380 THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
8472 THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
8381 PURPOSE ARE DISCLAIMED.
8473 PURPOSE ARE DISCLAIMED.
8382 IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
8474 IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
8383 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
8475 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
8384 BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
8476 BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
8385 USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
8477 USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
8386 ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
8478 ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
8387 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
8479 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
8388 THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
8480 THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
8389
8481
8390 \layout Standard
8482 \layout Standard
8391
8483
8392 Individual authors are the holders of the copyright for their code and are
8484 Individual authors are the holders of the copyright for their code and are
8393 listed in each file.
8485 listed in each file.
8394 \layout Standard
8486 \layout Standard
8395
8487
8396 Some files (
8488 Some files (
8397 \family typewriter
8489 \family typewriter
8398 DPyGetOpt.py
8490 DPyGetOpt.py
8399 \family default
8491 \family default
8400 , for example) may be licensed under different conditions.
8492 , for example) may be licensed under different conditions.
8401 Ultimately each file indicates clearly the conditions under which its author/au
8493 Ultimately each file indicates clearly the conditions under which its author/au
8402 thors have decided to publish the code.
8494 thors have decided to publish the code.
8403 \layout Standard
8495 \layout Standard
8404
8496
8405 Versions of IPython up to and including 0.6.3 were released under the GNU
8497 Versions of IPython up to and including 0.6.3 were released under the GNU
8406 Lesser General Public License (LGPL), available at
8498 Lesser General Public License (LGPL), available at
8407 \begin_inset LatexCommand \htmlurl{http://www.gnu.org/copyleft/lesser.html}
8499 \begin_inset LatexCommand \htmlurl{http://www.gnu.org/copyleft/lesser.html}
8408
8500
8409 \end_inset
8501 \end_inset
8410
8502
8411 .
8503 .
8412 \layout Section
8504 \layout Section
8413
8505
8414
8506
8415 \begin_inset LatexCommand \label{sec:credits}
8507 \begin_inset LatexCommand \label{sec:credits}
8416
8508
8417 \end_inset
8509 \end_inset
8418
8510
8419 Credits
8511 Credits
8420 \layout Standard
8512 \layout Standard
8421
8513
8422 IPython is mainly developed by Fernando PΓ©rez
8514 IPython is mainly developed by Fernando PΓ©rez
8423 \family typewriter
8515 \family typewriter
8424 <fperez@colorado.edu>
8516 <fperez@colorado.edu>
8425 \family default
8517 \family default
8426 , but the project was born from mixing in Fernando's code with the IPP project
8518 , but the project was born from mixing in Fernando's code with the IPP project
8427 by Janko Hauser
8519 by Janko Hauser
8428 \family typewriter
8520 \family typewriter
8429 <jhauser-AT-zscout.de>
8521 <jhauser-AT-zscout.de>
8430 \family default
8522 \family default
8431 and LazyPython by Nathan Gray
8523 and LazyPython by Nathan Gray
8432 \family typewriter
8524 \family typewriter
8433 <n8gray-AT-caltech.edu>
8525 <n8gray-AT-caltech.edu>
8434 \family default
8526 \family default
8435 .
8527 .
8436 For all IPython-related requests, please contact Fernando.
8528 For all IPython-related requests, please contact Fernando.
8437
8529
8438 \layout Standard
8530 \layout Standard
8439
8531
8440 As of late 2005, the following developers have joined the core team:
8532 As of late 2005, the following developers have joined the core team:
8441 \layout List
8533 \layout List
8442 \labelwidthstring 00.00.0000
8534 \labelwidthstring 00.00.0000
8443
8535
8444 Robert\SpecialChar ~
8536 Robert\SpecialChar ~
8445 Kern
8537 Kern
8446 \family typewriter
8538 \family typewriter
8447 <rkern-AT-enthought.com>
8539 <rkern-AT-enthought.com>
8448 \family default
8540 \family default
8449 : co-mentored the 2005 Google Summer of Code project to develop python interacti
8541 : co-mentored the 2005 Google Summer of Code project to develop python interacti
8450 ve notebooks (XML documents) and graphical interface.
8542 ve notebooks (XML documents) and graphical interface.
8451 This project was awarded to the students Tzanko Matev
8543 This project was awarded to the students Tzanko Matev
8452 \family typewriter
8544 \family typewriter
8453 <tsanko-AT-gmail.com>
8545 <tsanko-AT-gmail.com>
8454 \family default
8546 \family default
8455 and Toni Alatalo
8547 and Toni Alatalo
8456 \family typewriter
8548 \family typewriter
8457 <antont-AT-an.org>
8549 <antont-AT-an.org>
8458 \layout List
8550 \layout List
8459 \labelwidthstring 00.00.0000
8551 \labelwidthstring 00.00.0000
8460
8552
8461 Brian\SpecialChar ~
8553 Brian\SpecialChar ~
8462 Granger
8554 Granger
8463 \family typewriter
8555 \family typewriter
8464 <bgranger-AT-scu.edu>
8556 <bgranger-AT-scu.edu>
8465 \family default
8557 \family default
8466 : extending IPython to allow support for interactive parallel computing.
8558 : extending IPython to allow support for interactive parallel computing.
8467 \layout Standard
8559 \layout Standard
8468
8560
8469 User or development help should be requested via the IPython mailing lists:
8561 User or development help should be requested via the IPython mailing lists:
8470 \layout Description
8562 \layout Description
8471
8563
8472 User\SpecialChar ~
8564 User\SpecialChar ~
8473 list:
8565 list:
8474 \begin_inset LatexCommand \htmlurl{http://scipy.net/mailman/listinfo/ipython-user}
8566 \begin_inset LatexCommand \htmlurl{http://scipy.net/mailman/listinfo/ipython-user}
8475
8567
8476 \end_inset
8568 \end_inset
8477
8569
8478
8570
8479 \layout Description
8571 \layout Description
8480
8572
8481 Developer's\SpecialChar ~
8573 Developer's\SpecialChar ~
8482 list:
8574 list:
8483 \begin_inset LatexCommand \htmlurl{http://scipy.net/mailman/listinfo/ipython-dev}
8575 \begin_inset LatexCommand \htmlurl{http://scipy.net/mailman/listinfo/ipython-dev}
8484
8576
8485 \end_inset
8577 \end_inset
8486
8578
8487
8579
8488 \layout Standard
8580 \layout Standard
8489
8581
8490 The IPython project is also very grateful to
8582 The IPython project is also very grateful to
8491 \begin_inset Foot
8583 \begin_inset Foot
8492 collapsed true
8584 collapsed true
8493
8585
8494 \layout Standard
8586 \layout Standard
8495
8587
8496 I've mangled email addresses to reduce spam, since the IPython manuals can
8588 I've mangled email addresses to reduce spam, since the IPython manuals can
8497 be accessed online.
8589 be accessed online.
8498 \end_inset
8590 \end_inset
8499
8591
8500 :
8592 :
8501 \layout Standard
8593 \layout Standard
8502
8594
8503 Bill Bumgarner
8595 Bill Bumgarner
8504 \family typewriter
8596 \family typewriter
8505 <bbum-AT-friday.com>
8597 <bbum-AT-friday.com>
8506 \family default
8598 \family default
8507 : for providing the DPyGetOpt module which gives very powerful and convenient
8599 : for providing the DPyGetOpt module which gives very powerful and convenient
8508 handling of command-line options (light years ahead of what Python 2.1.1's
8600 handling of command-line options (light years ahead of what Python 2.1.1's
8509 getopt module does).
8601 getopt module does).
8510 \layout Standard
8602 \layout Standard
8511
8603
8512 Ka-Ping Yee
8604 Ka-Ping Yee
8513 \family typewriter
8605 \family typewriter
8514 <ping-AT-lfw.org>
8606 <ping-AT-lfw.org>
8515 \family default
8607 \family default
8516 : for providing the Itpl module for convenient and powerful string interpolation
8608 : for providing the Itpl module for convenient and powerful string interpolation
8517 with a much nicer syntax than formatting through the '%' operator.
8609 with a much nicer syntax than formatting through the '%' operator.
8518 \layout Standard
8610 \layout Standard
8519
8611
8520 Arnd BΓ€cker
8612 Arnd BΓ€cker
8521 \family typewriter
8613 \family typewriter
8522 <baecker-AT-physik.tu-dresden.de>
8614 <baecker-AT-physik.tu-dresden.de>
8523 \family default
8615 \family default
8524 : for his many very useful suggestions and comments, and lots of help with
8616 : for his many very useful suggestions and comments, and lots of help with
8525 testing and documentation checking.
8617 testing and documentation checking.
8526 Many of IPython's newer features are a result of discussions with him (bugs
8618 Many of IPython's newer features are a result of discussions with him (bugs
8527 are still my fault, not his).
8619 are still my fault, not his).
8528 \layout Standard
8620 \layout Standard
8529
8621
8530 Obviously Guido van\SpecialChar ~
8622 Obviously Guido van\SpecialChar ~
8531 Rossum and the whole Python development team, that goes
8623 Rossum and the whole Python development team, that goes
8532 without saying.
8624 without saying.
8533 \layout Standard
8625 \layout Standard
8534
8626
8535 IPython's website is generously hosted at
8627 IPython's website is generously hosted at
8536 \begin_inset LatexCommand \htmlurl{http://ipython.scipy.org}
8628 \begin_inset LatexCommand \htmlurl{http://ipython.scipy.org}
8537
8629
8538 \end_inset
8630 \end_inset
8539
8631
8540 by Enthought (
8632 by Enthought (
8541 \begin_inset LatexCommand \htmlurl{http://www.enthought.com}
8633 \begin_inset LatexCommand \htmlurl{http://www.enthought.com}
8542
8634
8543 \end_inset
8635 \end_inset
8544
8636
8545 ).
8637 ).
8546 I am very grateful to them and all of the SciPy team for their contribution.
8638 I am very grateful to them and all of the SciPy team for their contribution.
8547 \layout Standard
8639 \layout Standard
8548
8640
8549
8641
8550 \begin_inset LatexCommand \label{figgins}
8642 \begin_inset LatexCommand \label{figgins}
8551
8643
8552 \end_inset
8644 \end_inset
8553
8645
8554 Fernando would also like to thank Stephen Figgins
8646 Fernando would also like to thank Stephen Figgins
8555 \family typewriter
8647 \family typewriter
8556 <fig-AT-monitor.net>
8648 <fig-AT-monitor.net>
8557 \family default
8649 \family default
8558 , an O'Reilly Python editor.
8650 , an O'Reilly Python editor.
8559 His Oct/11/2001 article about IPP and LazyPython, was what got this project
8651 His Oct/11/2001 article about IPP and LazyPython, was what got this project
8560 started.
8652 started.
8561 You can read it at:
8653 You can read it at:
8562 \begin_inset LatexCommand \htmlurl{http://www.onlamp.com/pub/a/python/2001/10/11/pythonnews.html}
8654 \begin_inset LatexCommand \htmlurl{http://www.onlamp.com/pub/a/python/2001/10/11/pythonnews.html}
8563
8655
8564 \end_inset
8656 \end_inset
8565
8657
8566 .
8658 .
8567 \layout Standard
8659 \layout Standard
8568
8660
8569 And last but not least, all the kind IPython users who have emailed new
8661 And last but not least, all the kind IPython users who have emailed new
8570 code, bug reports, fixes, comments and ideas.
8662 code, bug reports, fixes, comments and ideas.
8571 A brief list follows, please let me know if I have ommitted your name by
8663 A brief list follows, please let me know if I have ommitted your name by
8572 accident:
8664 accident:
8573 \layout List
8665 \layout List
8574 \labelwidthstring 00.00.0000
8666 \labelwidthstring 00.00.0000
8575
8667
8576 Jack\SpecialChar ~
8668 Jack\SpecialChar ~
8577 Moffit
8669 Moffit
8578 \family typewriter
8670 \family typewriter
8579 <jack-AT-xiph.org>
8671 <jack-AT-xiph.org>
8580 \family default
8672 \family default
8581 Bug fixes, including the infamous color problem.
8673 Bug fixes, including the infamous color problem.
8582 This bug alone caused many lost hours and frustration, many thanks to him
8674 This bug alone caused many lost hours and frustration, many thanks to him
8583 for the fix.
8675 for the fix.
8584 I've always been a fan of Ogg & friends, now I have one more reason to
8676 I've always been a fan of Ogg & friends, now I have one more reason to
8585 like these folks.
8677 like these folks.
8586 \newline
8678 \newline
8587 Jack is also contributing with Debian packaging and many other things.
8679 Jack is also contributing with Debian packaging and many other things.
8588 \layout List
8680 \layout List
8589 \labelwidthstring 00.00.0000
8681 \labelwidthstring 00.00.0000
8590
8682
8591 Alexander\SpecialChar ~
8683 Alexander\SpecialChar ~
8592 Schmolck
8684 Schmolck
8593 \family typewriter
8685 \family typewriter
8594 <a.schmolck-AT-gmx.net>
8686 <a.schmolck-AT-gmx.net>
8595 \family default
8687 \family default
8596 Emacs work, bug reports, bug fixes, ideas, lots more.
8688 Emacs work, bug reports, bug fixes, ideas, lots more.
8597 The ipython.el mode for (X)Emacs is Alex's code, providing full support
8689 The ipython.el mode for (X)Emacs is Alex's code, providing full support
8598 for IPython under (X)Emacs.
8690 for IPython under (X)Emacs.
8599 \layout List
8691 \layout List
8600 \labelwidthstring 00.00.0000
8692 \labelwidthstring 00.00.0000
8601
8693
8602 Andrea\SpecialChar ~
8694 Andrea\SpecialChar ~
8603 Riciputi
8695 Riciputi
8604 \family typewriter
8696 \family typewriter
8605 <andrea.riciputi-AT-libero.it>
8697 <andrea.riciputi-AT-libero.it>
8606 \family default
8698 \family default
8607 Mac OSX information, Fink package management.
8699 Mac OSX information, Fink package management.
8608 \layout List
8700 \layout List
8609 \labelwidthstring 00.00.0000
8701 \labelwidthstring 00.00.0000
8610
8702
8611 Gary\SpecialChar ~
8703 Gary\SpecialChar ~
8612 Bishop
8704 Bishop
8613 \family typewriter
8705 \family typewriter
8614 <gb-AT-cs.unc.edu>
8706 <gb-AT-cs.unc.edu>
8615 \family default
8707 \family default
8616 Bug reports, and patches to work around the exception handling idiosyncracies
8708 Bug reports, and patches to work around the exception handling idiosyncracies
8617 of WxPython.
8709 of WxPython.
8618 Readline and color support for Windows.
8710 Readline and color support for Windows.
8619 \layout List
8711 \layout List
8620 \labelwidthstring 00.00.0000
8712 \labelwidthstring 00.00.0000
8621
8713
8622 Jeffrey\SpecialChar ~
8714 Jeffrey\SpecialChar ~
8623 Collins
8715 Collins
8624 \family typewriter
8716 \family typewriter
8625 <Jeff.Collins-AT-vexcel.com>
8717 <Jeff.Collins-AT-vexcel.com>
8626 \family default
8718 \family default
8627 Bug reports.
8719 Bug reports.
8628 Much improved readline support, including fixes for Python 2.3.
8720 Much improved readline support, including fixes for Python 2.3.
8629 \layout List
8721 \layout List
8630 \labelwidthstring 00.00.0000
8722 \labelwidthstring 00.00.0000
8631
8723
8632 Dryice\SpecialChar ~
8724 Dryice\SpecialChar ~
8633 Liu
8725 Liu
8634 \family typewriter
8726 \family typewriter
8635 <dryice-AT-liu.com.cn>
8727 <dryice-AT-liu.com.cn>
8636 \family default
8728 \family default
8637 FreeBSD port.
8729 FreeBSD port.
8638 \layout List
8730 \layout List
8639 \labelwidthstring 00.00.0000
8731 \labelwidthstring 00.00.0000
8640
8732
8641 Mike\SpecialChar ~
8733 Mike\SpecialChar ~
8642 Heeter
8734 Heeter
8643 \family typewriter
8735 \family typewriter
8644 <korora-AT-SDF.LONESTAR.ORG>
8736 <korora-AT-SDF.LONESTAR.ORG>
8645 \layout List
8737 \layout List
8646 \labelwidthstring 00.00.0000
8738 \labelwidthstring 00.00.0000
8647
8739
8648 Christopher\SpecialChar ~
8740 Christopher\SpecialChar ~
8649 Hart
8741 Hart
8650 \family typewriter
8742 \family typewriter
8651 <hart-AT-caltech.edu>
8743 <hart-AT-caltech.edu>
8652 \family default
8744 \family default
8653 PDB integration.
8745 PDB integration.
8654 \layout List
8746 \layout List
8655 \labelwidthstring 00.00.0000
8747 \labelwidthstring 00.00.0000
8656
8748
8657 Milan\SpecialChar ~
8749 Milan\SpecialChar ~
8658 Zamazal
8750 Zamazal
8659 \family typewriter
8751 \family typewriter
8660 <pdm-AT-zamazal.org>
8752 <pdm-AT-zamazal.org>
8661 \family default
8753 \family default
8662 Emacs info.
8754 Emacs info.
8663 \layout List
8755 \layout List
8664 \labelwidthstring 00.00.0000
8756 \labelwidthstring 00.00.0000
8665
8757
8666 Philip\SpecialChar ~
8758 Philip\SpecialChar ~
8667 Hisley
8759 Hisley
8668 \family typewriter
8760 \family typewriter
8669 <compsys-AT-starpower.net>
8761 <compsys-AT-starpower.net>
8670 \layout List
8762 \layout List
8671 \labelwidthstring 00.00.0000
8763 \labelwidthstring 00.00.0000
8672
8764
8673 Holger\SpecialChar ~
8765 Holger\SpecialChar ~
8674 Krekel
8766 Krekel
8675 \family typewriter
8767 \family typewriter
8676 <pyth-AT-devel.trillke.net>
8768 <pyth-AT-devel.trillke.net>
8677 \family default
8769 \family default
8678 Tab completion, lots more.
8770 Tab completion, lots more.
8679 \layout List
8771 \layout List
8680 \labelwidthstring 00.00.0000
8772 \labelwidthstring 00.00.0000
8681
8773
8682 Robin\SpecialChar ~
8774 Robin\SpecialChar ~
8683 Siebler
8775 Siebler
8684 \family typewriter
8776 \family typewriter
8685 <robinsiebler-AT-starband.net>
8777 <robinsiebler-AT-starband.net>
8686 \layout List
8778 \layout List
8687 \labelwidthstring 00.00.0000
8779 \labelwidthstring 00.00.0000
8688
8780
8689 Ralf\SpecialChar ~
8781 Ralf\SpecialChar ~
8690 Ahlbrink
8782 Ahlbrink
8691 \family typewriter
8783 \family typewriter
8692 <ralf_ahlbrink-AT-web.de>
8784 <ralf_ahlbrink-AT-web.de>
8693 \layout List
8785 \layout List
8694 \labelwidthstring 00.00.0000
8786 \labelwidthstring 00.00.0000
8695
8787
8696 Thorsten\SpecialChar ~
8788 Thorsten\SpecialChar ~
8697 Kampe
8789 Kampe
8698 \family typewriter
8790 \family typewriter
8699 <thorsten-AT-thorstenkampe.de>
8791 <thorsten-AT-thorstenkampe.de>
8700 \layout List
8792 \layout List
8701 \labelwidthstring 00.00.0000
8793 \labelwidthstring 00.00.0000
8702
8794
8703 Fredrik\SpecialChar ~
8795 Fredrik\SpecialChar ~
8704 Kant
8796 Kant
8705 \family typewriter
8797 \family typewriter
8706 <fredrik.kant-AT-front.com>
8798 <fredrik.kant-AT-front.com>
8707 \family default
8799 \family default
8708 Windows setup.
8800 Windows setup.
8709 \layout List
8801 \layout List
8710 \labelwidthstring 00.00.0000
8802 \labelwidthstring 00.00.0000
8711
8803
8712 Syver\SpecialChar ~
8804 Syver\SpecialChar ~
8713 Enstad
8805 Enstad
8714 \family typewriter
8806 \family typewriter
8715 <syver-en-AT-online.no>
8807 <syver-en-AT-online.no>
8716 \family default
8808 \family default
8717 Windows setup.
8809 Windows setup.
8718 \layout List
8810 \layout List
8719 \labelwidthstring 00.00.0000
8811 \labelwidthstring 00.00.0000
8720
8812
8721 Richard
8813 Richard
8722 \family typewriter
8814 \family typewriter
8723 <rxe-AT-renre-europe.com>
8815 <rxe-AT-renre-europe.com>
8724 \family default
8816 \family default
8725 Global embedding.
8817 Global embedding.
8726 \layout List
8818 \layout List
8727 \labelwidthstring 00.00.0000
8819 \labelwidthstring 00.00.0000
8728
8820
8729 Hayden\SpecialChar ~
8821 Hayden\SpecialChar ~
8730 Callow
8822 Callow
8731 \family typewriter
8823 \family typewriter
8732 <h.callow-AT-elec.canterbury.ac.nz>
8824 <h.callow-AT-elec.canterbury.ac.nz>
8733 \family default
8825 \family default
8734 Gnuplot.py 1.6 compatibility.
8826 Gnuplot.py 1.6 compatibility.
8735 \layout List
8827 \layout List
8736 \labelwidthstring 00.00.0000
8828 \labelwidthstring 00.00.0000
8737
8829
8738 Leonardo\SpecialChar ~
8830 Leonardo\SpecialChar ~
8739 Santagada
8831 Santagada
8740 \family typewriter
8832 \family typewriter
8741 <retype-AT-terra.com.br>
8833 <retype-AT-terra.com.br>
8742 \family default
8834 \family default
8743 Fixes for Windows installation.
8835 Fixes for Windows installation.
8744 \layout List
8836 \layout List
8745 \labelwidthstring 00.00.0000
8837 \labelwidthstring 00.00.0000
8746
8838
8747 Christopher\SpecialChar ~
8839 Christopher\SpecialChar ~
8748 Armstrong
8840 Armstrong
8749 \family typewriter
8841 \family typewriter
8750 <radix-AT-twistedmatrix.com>
8842 <radix-AT-twistedmatrix.com>
8751 \family default
8843 \family default
8752 Bugfixes.
8844 Bugfixes.
8753 \layout List
8845 \layout List
8754 \labelwidthstring 00.00.0000
8846 \labelwidthstring 00.00.0000
8755
8847
8756 Francois\SpecialChar ~
8848 Francois\SpecialChar ~
8757 Pinard
8849 Pinard
8758 \family typewriter
8850 \family typewriter
8759 <pinard-AT-iro.umontreal.ca>
8851 <pinard-AT-iro.umontreal.ca>
8760 \family default
8852 \family default
8761 Code and documentation fixes.
8853 Code and documentation fixes.
8762 \layout List
8854 \layout List
8763 \labelwidthstring 00.00.0000
8855 \labelwidthstring 00.00.0000
8764
8856
8765 Cory\SpecialChar ~
8857 Cory\SpecialChar ~
8766 Dodt
8858 Dodt
8767 \family typewriter
8859 \family typewriter
8768 <cdodt-AT-fcoe.k12.ca.us>
8860 <cdodt-AT-fcoe.k12.ca.us>
8769 \family default
8861 \family default
8770 Bug reports and Windows ideas.
8862 Bug reports and Windows ideas.
8771 Patches for Windows installer.
8863 Patches for Windows installer.
8772 \layout List
8864 \layout List
8773 \labelwidthstring 00.00.0000
8865 \labelwidthstring 00.00.0000
8774
8866
8775 Olivier\SpecialChar ~
8867 Olivier\SpecialChar ~
8776 Aubert
8868 Aubert
8777 \family typewriter
8869 \family typewriter
8778 <oaubert-AT-bat710.univ-lyon1.fr>
8870 <oaubert-AT-bat710.univ-lyon1.fr>
8779 \family default
8871 \family default
8780 New magics.
8872 New magics.
8781 \layout List
8873 \layout List
8782 \labelwidthstring 00.00.0000
8874 \labelwidthstring 00.00.0000
8783
8875
8784 King\SpecialChar ~
8876 King\SpecialChar ~
8785 C.\SpecialChar ~
8877 C.\SpecialChar ~
8786 Shu
8878 Shu
8787 \family typewriter
8879 \family typewriter
8788 <kingshu-AT-myrealbox.com>
8880 <kingshu-AT-myrealbox.com>
8789 \family default
8881 \family default
8790 Autoindent patch.
8882 Autoindent patch.
8791 \layout List
8883 \layout List
8792 \labelwidthstring 00.00.0000
8884 \labelwidthstring 00.00.0000
8793
8885
8794 Chris\SpecialChar ~
8886 Chris\SpecialChar ~
8795 Drexler
8887 Drexler
8796 \family typewriter
8888 \family typewriter
8797 <chris-AT-ac-drexler.de>
8889 <chris-AT-ac-drexler.de>
8798 \family default
8890 \family default
8799 Readline packages for Win32/CygWin.
8891 Readline packages for Win32/CygWin.
8800 \layout List
8892 \layout List
8801 \labelwidthstring 00.00.0000
8893 \labelwidthstring 00.00.0000
8802
8894
8803 Gustavo\SpecialChar ~
8895 Gustavo\SpecialChar ~
8804 CΓ³rdova\SpecialChar ~
8896 CΓ³rdova\SpecialChar ~
8805 Avila
8897 Avila
8806 \family typewriter
8898 \family typewriter
8807 <gcordova-AT-sismex.com>
8899 <gcordova-AT-sismex.com>
8808 \family default
8900 \family default
8809 EvalDict code for nice, lightweight string interpolation.
8901 EvalDict code for nice, lightweight string interpolation.
8810 \layout List
8902 \layout List
8811 \labelwidthstring 00.00.0000
8903 \labelwidthstring 00.00.0000
8812
8904
8813 Kasper\SpecialChar ~
8905 Kasper\SpecialChar ~
8814 Souren
8906 Souren
8815 \family typewriter
8907 \family typewriter
8816 <Kasper.Souren-AT-ircam.fr>
8908 <Kasper.Souren-AT-ircam.fr>
8817 \family default
8909 \family default
8818 Bug reports, ideas.
8910 Bug reports, ideas.
8819 \layout List
8911 \layout List
8820 \labelwidthstring 00.00.0000
8912 \labelwidthstring 00.00.0000
8821
8913
8822 Gever\SpecialChar ~
8914 Gever\SpecialChar ~
8823 Tulley
8915 Tulley
8824 \family typewriter
8916 \family typewriter
8825 <gever-AT-helium.com>
8917 <gever-AT-helium.com>
8826 \family default
8918 \family default
8827 Code contributions.
8919 Code contributions.
8828 \layout List
8920 \layout List
8829 \labelwidthstring 00.00.0000
8921 \labelwidthstring 00.00.0000
8830
8922
8831 Ralf\SpecialChar ~
8923 Ralf\SpecialChar ~
8832 Schmitt
8924 Schmitt
8833 \family typewriter
8925 \family typewriter
8834 <ralf-AT-brainbot.com>
8926 <ralf-AT-brainbot.com>
8835 \family default
8927 \family default
8836 Bug reports & fixes.
8928 Bug reports & fixes.
8837 \layout List
8929 \layout List
8838 \labelwidthstring 00.00.0000
8930 \labelwidthstring 00.00.0000
8839
8931
8840 Oliver\SpecialChar ~
8932 Oliver\SpecialChar ~
8841 Sander
8933 Sander
8842 \family typewriter
8934 \family typewriter
8843 <osander-AT-gmx.de>
8935 <osander-AT-gmx.de>
8844 \family default
8936 \family default
8845 Bug reports.
8937 Bug reports.
8846 \layout List
8938 \layout List
8847 \labelwidthstring 00.00.0000
8939 \labelwidthstring 00.00.0000
8848
8940
8849 Rod\SpecialChar ~
8941 Rod\SpecialChar ~
8850 Holland
8942 Holland
8851 \family typewriter
8943 \family typewriter
8852 <rhh-AT-structurelabs.com>
8944 <rhh-AT-structurelabs.com>
8853 \family default
8945 \family default
8854 Bug reports and fixes to logging module.
8946 Bug reports and fixes to logging module.
8855 \layout List
8947 \layout List
8856 \labelwidthstring 00.00.0000
8948 \labelwidthstring 00.00.0000
8857
8949
8858 Daniel\SpecialChar ~
8950 Daniel\SpecialChar ~
8859 'Dang'\SpecialChar ~
8951 'Dang'\SpecialChar ~
8860 Griffith
8952 Griffith
8861 \family typewriter
8953 \family typewriter
8862 <pythondev-dang-AT-lazytwinacres.net>
8954 <pythondev-dang-AT-lazytwinacres.net>
8863 \family default
8955 \family default
8864 Fixes, enhancement suggestions for system shell use.
8956 Fixes, enhancement suggestions for system shell use.
8865 \layout List
8957 \layout List
8866 \labelwidthstring 00.00.0000
8958 \labelwidthstring 00.00.0000
8867
8959
8868 Viktor\SpecialChar ~
8960 Viktor\SpecialChar ~
8869 Ransmayr
8961 Ransmayr
8870 \family typewriter
8962 \family typewriter
8871 <viktor.ransmayr-AT-t-online.de>
8963 <viktor.ransmayr-AT-t-online.de>
8872 \family default
8964 \family default
8873 Tests and reports on Windows installation issues.
8965 Tests and reports on Windows installation issues.
8874 Contributed a true Windows binary installer.
8966 Contributed a true Windows binary installer.
8875 \layout List
8967 \layout List
8876 \labelwidthstring 00.00.0000
8968 \labelwidthstring 00.00.0000
8877
8969
8878 Mike\SpecialChar ~
8970 Mike\SpecialChar ~
8879 Salib
8971 Salib
8880 \family typewriter
8972 \family typewriter
8881 <msalib-AT-mit.edu>
8973 <msalib-AT-mit.edu>
8882 \family default
8974 \family default
8883 Help fixing a subtle bug related to traceback printing.
8975 Help fixing a subtle bug related to traceback printing.
8884 \layout List
8976 \layout List
8885 \labelwidthstring 00.00.0000
8977 \labelwidthstring 00.00.0000
8886
8978
8887 W.J.\SpecialChar ~
8979 W.J.\SpecialChar ~
8888 van\SpecialChar ~
8980 van\SpecialChar ~
8889 der\SpecialChar ~
8981 der\SpecialChar ~
8890 Laan
8982 Laan
8891 \family typewriter
8983 \family typewriter
8892 <gnufnork-AT-hetdigitalegat.nl>
8984 <gnufnork-AT-hetdigitalegat.nl>
8893 \family default
8985 \family default
8894 Bash-like prompt specials.
8986 Bash-like prompt specials.
8895 \layout List
8987 \layout List
8896 \labelwidthstring 00.00.0000
8988 \labelwidthstring 00.00.0000
8897
8989
8898 Ville\SpecialChar ~
8990 Ville\SpecialChar ~
8899 Vainio
8991 Vainio
8900 \family typewriter
8992 \family typewriter
8901 <vivainio-AT-kolumbus.fi>
8993 <vivainio-AT-kolumbus.fi>
8902 \family default
8994 \family default
8903 Bugfixes and suggestions.
8995 Bugfixes and suggestions.
8904 Excellent patches for many new features.
8996 Excellent patches for many new features.
8905 \layout List
8997 \layout List
8906 \labelwidthstring 00.00.0000
8998 \labelwidthstring 00.00.0000
8907
8999
8908 Antoon\SpecialChar ~
9000 Antoon\SpecialChar ~
8909 Pardon
9001 Pardon
8910 \family typewriter
9002 \family typewriter
8911 <Antoon.Pardon-AT-rece.vub.ac.be>
9003 <Antoon.Pardon-AT-rece.vub.ac.be>
8912 \family default
9004 \family default
8913 Critical fix for the multithreaded IPython.
9005 Critical fix for the multithreaded IPython.
8914 \layout List
9006 \layout List
8915 \labelwidthstring 00.00.0000
9007 \labelwidthstring 00.00.0000
8916
9008
8917 John\SpecialChar ~
9009 John\SpecialChar ~
8918 Hunter
9010 Hunter
8919 \family typewriter
9011 \family typewriter
8920 <jdhunter-AT-nitace.bsd.uchicago.edu>
9012 <jdhunter-AT-nitace.bsd.uchicago.edu>
8921 \family default
9013 \family default
8922 Matplotlib author, helped with all the development of support for matplotlib
9014 Matplotlib author, helped with all the development of support for matplotlib
8923 in IPyhton, including making necessary changes to matplotlib itself.
9015 in IPyhton, including making necessary changes to matplotlib itself.
8924 \layout List
9016 \layout List
8925 \labelwidthstring 00.00.0000
9017 \labelwidthstring 00.00.0000
8926
9018
8927 Matthew\SpecialChar ~
9019 Matthew\SpecialChar ~
8928 Arnison
9020 Arnison
8929 \family typewriter
9021 \family typewriter
8930 <maffew-AT-cat.org.au>
9022 <maffew-AT-cat.org.au>
8931 \family default
9023 \family default
8932 Bug reports, `
9024 Bug reports, `
8933 \family typewriter
9025 \family typewriter
8934 %run -d
9026 %run -d
8935 \family default
9027 \family default
8936 ' idea.
9028 ' idea.
8937 \layout List
9029 \layout List
8938 \labelwidthstring 00.00.0000
9030 \labelwidthstring 00.00.0000
8939
9031
8940 Prabhu\SpecialChar ~
9032 Prabhu\SpecialChar ~
8941 Ramachandran
9033 Ramachandran
8942 \family typewriter
9034 \family typewriter
8943 <prabhu_r-AT-users.sourceforge.net>
9035 <prabhu_r-AT-users.sourceforge.net>
8944 \family default
9036 \family default
8945 Help with (X)Emacs support, threading patches, ideas...
9037 Help with (X)Emacs support, threading patches, ideas...
8946 \layout List
9038 \layout List
8947 \labelwidthstring 00.00.0000
9039 \labelwidthstring 00.00.0000
8948
9040
8949 Norbert\SpecialChar ~
9041 Norbert\SpecialChar ~
8950 Tretkowski
9042 Tretkowski
8951 \family typewriter
9043 \family typewriter
8952 <tretkowski-AT-inittab.de>
9044 <tretkowski-AT-inittab.de>
8953 \family default
9045 \family default
8954 help with Debian packaging and distribution.
9046 help with Debian packaging and distribution.
8955 \layout List
9047 \layout List
8956 \labelwidthstring 00.00.0000
9048 \labelwidthstring 00.00.0000
8957
9049
8958 George\SpecialChar ~
9050 George\SpecialChar ~
8959 Sakkis <
9051 Sakkis <
8960 \family typewriter
9052 \family typewriter
8961 gsakkis-AT-eden.rutgers.edu>
9053 gsakkis-AT-eden.rutgers.edu>
8962 \family default
9054 \family default
8963 New matcher for tab-completing named arguments of user-defined functions.
9055 New matcher for tab-completing named arguments of user-defined functions.
8964 \the_end
9056 \the_end
General Comments 0
You need to be logged in to leave comments. Login now