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