##// END OF EJS Templates
work around problems with 2to3 and doctests
Jens H. Nielsen -
Show More
@@ -1,529 +1,529 b''
1 1 # -*- coding: utf-8 -*-
2 2 """Usage information for the main IPython applications.
3 3 """
4 4 #-----------------------------------------------------------------------------
5 5 # Copyright (C) 2008-2010 The IPython Development Team
6 6 # Copyright (C) 2001-2007 Fernando Perez. <fperez@colorado.edu>
7 7 #
8 8 # Distributed under the terms of the BSD License. The full license is in
9 9 # the file COPYING, distributed as part of this software.
10 10 #-----------------------------------------------------------------------------
11 11
12 12 import sys
13 13 from IPython.core import release
14 14
15 15 cl_usage = """\
16 16 =========
17 17 IPython
18 18 =========
19 19
20 20 Tools for Interactive Computing in Python
21 21 =========================================
22 22
23 23 A Python shell with automatic history (input and output), dynamic object
24 24 introspection, easier configuration, command completion, access to the
25 25 system shell and more. IPython can also be embedded in running programs.
26 26
27 27
28 28 Usage
29 29
30 30 ipython [subcommand] [options] [files]
31 31
32 32 If invoked with no options, it executes all the files listed in sequence
33 33 and exits, use -i to enter interactive mode after running the files. Files
34 34 ending in .py will be treated as normal Python, but files ending in .ipy
35 35 can contain special IPython syntax (magic commands, shell expansions, etc.)
36 36
37 37 Almost all configuration in IPython is available via the command-line. Do
38 38 `ipython --help-all` to see all available options. For persistent
39 39 configuration, look into your `ipython_config.py` configuration file for
40 40 details.
41 41
42 42 This file is typically installed in the `IPYTHON_DIR` directory, and there
43 43 is a separate configuration directory for each profile. The default profile
44 44 directory will be located in $IPYTHON_DIR/profile_default. For Linux users,
45 45 IPYTHON_DIR defaults to `$HOME/.config/ipython`, and for other Unix systems
46 46 to `$HOME/.ipython`. For Windows users, $HOME resolves to C:\\Documents
47 47 and Settings\\YourUserName in most instances.
48 48
49 49 To initialize a profile with the default configuration file, do::
50 50
51 51 $> ipython profile create
52 52
53 53 and start editing `IPYTHON_DIR/profile_default/ipython_config.py`
54 54
55 55 In IPython's documentation, we will refer to this directory as
56 56 `IPYTHON_DIR`, you can change its default location by creating an
57 57 environment variable with this name and setting it to the desired path.
58 58
59 59 For more information, see the manual available in HTML and PDF in your
60 60 installation, or online at http://ipython.org/documentation.html.
61 61 """
62 62
63 63 interactive_usage = """
64 64 IPython -- An enhanced Interactive Python
65 65 =========================================
66 66
67 67 IPython offers a combination of convenient shell features, special commands
68 68 and a history mechanism for both input (command history) and output (results
69 69 caching, similar to Mathematica). It is intended to be a fully compatible
70 70 replacement for the standard Python interpreter, while offering vastly
71 71 improved functionality and flexibility.
72 72
73 73 At your system command line, type 'ipython -h' to see the command line
74 74 options available. This document only describes interactive features.
75 75
76 76 MAIN FEATURES
77 77
78 78 * Access to the standard Python help. As of Python 2.1, a help system is
79 79 available with access to object docstrings and the Python manuals. Simply
80 80 type 'help' (no quotes) to access it.
81 81
82 82 * Magic commands: type %magic for information on the magic subsystem.
83 83
84 84 * System command aliases, via the %alias command or the configuration file(s).
85 85
86 86 * Dynamic object information:
87 87
88 88 Typing ?word or word? prints detailed information about an object. If
89 89 certain strings in the object are too long (docstrings, code, etc.) they get
90 90 snipped in the center for brevity.
91 91
92 92 Typing ??word or word?? gives access to the full information without
93 93 snipping long strings. Long strings are sent to the screen through the less
94 94 pager if longer than the screen, printed otherwise.
95 95
96 96 The ?/?? system gives access to the full source code for any object (if
97 97 available), shows function prototypes and other useful information.
98 98
99 99 If you just want to see an object's docstring, type '%pdoc object' (without
100 100 quotes, and without % if you have automagic on).
101 101
102 102 Both %pdoc and ?/?? give you access to documentation even on things which are
103 103 not explicitely defined. Try for example typing {}.get? or after import os,
104 104 type os.path.abspath??. The magic functions %pdef, %source and %file operate
105 105 similarly.
106 106
107 107 * Completion in the local namespace, by typing TAB at the prompt.
108 108
109 109 At any time, hitting tab will complete any available python commands or
110 110 variable names, and show you a list of the possible completions if there's
111 111 no unambiguous one. It will also complete filenames in the current directory.
112 112
113 113 This feature requires the readline and rlcomplete modules, so it won't work
114 114 if your Python lacks readline support (such as under Windows).
115 115
116 116 * Search previous command history in two ways (also requires readline):
117 117
118 118 - Start typing, and then use Ctrl-p (previous,up) and Ctrl-n (next,down) to
119 119 search through only the history items that match what you've typed so
120 120 far. If you use Ctrl-p/Ctrl-n at a blank prompt, they just behave like
121 121 normal arrow keys.
122 122
123 123 - Hit Ctrl-r: opens a search prompt. Begin typing and the system searches
124 124 your history for lines that match what you've typed so far, completing as
125 125 much as it can.
126 126
127 127 - %hist: search history by index (this does *not* require readline).
128 128
129 129 * Persistent command history across sessions.
130 130
131 131 * Logging of input with the ability to save and restore a working session.
132 132
133 133 * System escape with !. Typing !ls will run 'ls' in the current directory.
134 134
135 135 * The reload command does a 'deep' reload of a module: changes made to the
136 136 module since you imported will actually be available without having to exit.
137 137
138 138 * Verbose and colored exception traceback printouts. See the magic xmode and
139 139 xcolor functions for details (just type %magic).
140 140
141 141 * Input caching system:
142 142
143 143 IPython offers numbered prompts (In/Out) with input and output caching. All
144 144 input is saved and can be retrieved as variables (besides the usual arrow
145 145 key recall).
146 146
147 147 The following GLOBAL variables always exist (so don't overwrite them!):
148 148 _i: stores previous input.
149 149 _ii: next previous.
150 150 _iii: next-next previous.
151 151 _ih : a list of all input _ih[n] is the input from line n.
152 152
153 153 Additionally, global variables named _i<n> are dynamically created (<n>
154 154 being the prompt counter), such that _i<n> == _ih[<n>]
155 155
156 156 For example, what you typed at prompt 14 is available as _i14 and _ih[14].
157 157
158 158 You can create macros which contain multiple input lines from this history,
159 159 for later re-execution, with the %macro function.
160 160
161 161 The history function %hist allows you to see any part of your input history
162 162 by printing a range of the _i variables. Note that inputs which contain
163 163 magic functions (%) appear in the history with a prepended comment. This is
164 164 because they aren't really valid Python code, so you can't exec them.
165 165
166 166 * Output caching system:
167 167
168 168 For output that is returned from actions, a system similar to the input
169 169 cache exists but using _ instead of _i. Only actions that produce a result
170 170 (NOT assignments, for example) are cached. If you are familiar with
171 171 Mathematica, IPython's _ variables behave exactly like Mathematica's %
172 172 variables.
173 173
174 174 The following GLOBAL variables always exist (so don't overwrite them!):
175 175 _ (one underscore): previous output.
176 176 __ (two underscores): next previous.
177 177 ___ (three underscores): next-next previous.
178 178
179 179 Global variables named _<n> are dynamically created (<n> being the prompt
180 180 counter), such that the result of output <n> is always available as _<n>.
181 181
182 182 Finally, a global dictionary named _oh exists with entries for all lines
183 183 which generated output.
184 184
185 185 * Directory history:
186 186
187 187 Your history of visited directories is kept in the global list _dh, and the
188 188 magic %cd command can be used to go to any entry in that list.
189 189
190 190 * Auto-parentheses and auto-quotes (adapted from Nathan Gray's LazyPython)
191 191
192 192 1. Auto-parentheses
193 193 Callable objects (i.e. functions, methods, etc) can be invoked like
194 194 this (notice the commas between the arguments):
195 >>> callable_ob arg1, arg2, arg3
195 In [1]: callable_ob arg1, arg2, arg3
196 196 and the input will be translated to this:
197 --> callable_ob(arg1, arg2, arg3)
197 ------> callable_ob(arg1, arg2, arg3)
198 198 You can force auto-parentheses by using '/' as the first character
199 199 of a line. For example:
200 >>> /globals # becomes 'globals()'
200 In [1]: /globals # becomes 'globals()'
201 201 Note that the '/' MUST be the first character on the line! This
202 202 won't work:
203 >>> print /globals # syntax error
203 In [2]: print /globals # syntax error
204 204
205 205 In most cases the automatic algorithm should work, so you should
206 206 rarely need to explicitly invoke /. One notable exception is if you
207 207 are trying to call a function with a list of tuples as arguments (the
208 208 parenthesis will confuse IPython):
209 209 In [1]: zip (1,2,3),(4,5,6) # won't work
210 210 but this will work:
211 211 In [2]: /zip (1,2,3),(4,5,6)
212 212 ------> zip ((1,2,3),(4,5,6))
213 213 Out[2]= [(1, 4), (2, 5), (3, 6)]
214 214
215 215 IPython tells you that it has altered your command line by
216 216 displaying the new command line preceded by -->. e.g.:
217 217 In [18]: callable list
218 218 -------> callable (list)
219 219
220 220 2. Auto-Quoting
221 221 You can force auto-quoting of a function's arguments by using ',' as
222 222 the first character of a line. For example:
223 >>> ,my_function /home/me # becomes my_function("/home/me")
223 In [1]: ,my_function /home/me # becomes my_function("/home/me")
224 224
225 225 If you use ';' instead, the whole argument is quoted as a single
226 226 string (while ',' splits on whitespace):
227 >>> ,my_function a b c # becomes my_function("a","b","c")
228 >>> ;my_function a b c # becomes my_function("a b c")
227 In [2]: ,my_function a b c # becomes my_function("a","b","c")
228 In [3]: ;my_function a b c # becomes my_function("a b c")
229 229
230 230 Note that the ',' MUST be the first character on the line! This
231 231 won't work:
232 >>> x = ,my_function /home/me # syntax error
232 In [4]: x = ,my_function /home/me # syntax error
233 233 """
234 234
235 235 interactive_usage_min = """\
236 236 An enhanced console for Python.
237 237 Some of its features are:
238 238 - Readline support if the readline library is present.
239 239 - Tab completion in the local namespace.
240 240 - Logging of input, see command-line options.
241 241 - System shell escape via ! , eg !ls.
242 242 - Magic commands, starting with a % (like %ls, %pwd, %cd, etc.)
243 243 - Keeps track of locally defined variables via %who, %whos.
244 244 - Show object information with a ? eg ?x or x? (use ?? for more info).
245 245 """
246 246
247 247 quick_reference = r"""
248 248 IPython -- An enhanced Interactive Python - Quick Reference Card
249 249 ================================================================
250 250
251 251 obj?, obj?? : Get help, or more help for object (also works as
252 252 ?obj, ??obj).
253 253 ?foo.*abc* : List names in 'foo' containing 'abc' in them.
254 254 %magic : Information about IPython's 'magic' % functions.
255 255
256 256 Magic functions are prefixed by %, and typically take their arguments without
257 257 parentheses, quotes or even commas for convenience.
258 258
259 259 Example magic function calls:
260 260
261 261 %alias d ls -F : 'd' is now an alias for 'ls -F'
262 262 alias d ls -F : Works if 'alias' not a python name
263 263 alist = %alias : Get list of aliases to 'alist'
264 264 cd /usr/share : Obvious. cd -<tab> to choose from visited dirs.
265 265 %cd?? : See help AND source for magic %cd
266 266
267 267 System commands:
268 268
269 269 !cp a.txt b/ : System command escape, calls os.system()
270 270 cp a.txt b/ : after %rehashx, most system commands work without !
271 271 cp ${f}.txt $bar : Variable expansion in magics and system commands
272 272 files = !ls /usr : Capture sytem command output
273 273 files.s, files.l, files.n: "a b c", ['a','b','c'], 'a\nb\nc'
274 274
275 275 History:
276 276
277 277 _i, _ii, _iii : Previous, next previous, next next previous input
278 278 _i4, _ih[2:5] : Input history line 4, lines 2-4
279 279 exec _i81 : Execute input history line #81 again
280 280 %rep 81 : Edit input history line #81
281 281 _, __, ___ : previous, next previous, next next previous output
282 282 _dh : Directory history
283 283 _oh : Output history
284 284 %hist : Command history. '%hist -g foo' search history for 'foo'
285 285
286 286 Autocall:
287 287
288 288 f 1,2 : f(1,2)
289 289 /f 1,2 : f(1,2) (forced autoparen)
290 290 ,f 1 2 : f("1","2")
291 291 ;f 1 2 : f("1 2")
292 292
293 293 Remember: TAB completion works in many contexts, not just file names
294 294 or python names.
295 295
296 296 The following magic functions are currently available:
297 297
298 298 """
299 299
300 300 gui_reference = """\
301 301 ===============================
302 302 The graphical IPython console
303 303 ===============================
304 304
305 305 This console is designed to emulate the look, feel and workflow of a terminal
306 306 environment, while adding a number of enhancements that are simply not possible
307 307 in a real terminal, such as inline syntax highlighting, true multiline editing,
308 308 inline graphics and much more.
309 309
310 310 This quick reference document contains the basic information you'll need to
311 311 know to make the most efficient use of it. For the various command line
312 312 options available at startup, type ``ipython qtconsole --help`` at the command line.
313 313
314 314
315 315 Multiline editing
316 316 =================
317 317
318 318 The graphical console is capable of true multiline editing, but it also tries
319 319 to behave intuitively like a terminal when possible. If you are used to
320 320 IPyhton's old terminal behavior, you should find the transition painless, and
321 321 once you learn a few basic keybindings it will be a much more efficient
322 322 environment.
323 323
324 324 For single expressions or indented blocks, the console behaves almost like the
325 325 terminal IPython: single expressions are immediately evaluated, and indented
326 326 blocks are evaluated once a single blank line is entered::
327 327
328 328 In [1]: print "Hello IPython!" # Enter was pressed at the end of the line
329 329 Hello IPython!
330 330
331 331 In [2]: for i in range(10):
332 332 ...: print i,
333 333 ...:
334 334 0 1 2 3 4 5 6 7 8 9
335 335
336 336 If you want to enter more than one expression in a single input block
337 337 (something not possible in the terminal), you can use ``Control-Enter`` at the
338 338 end of your first line instead of ``Enter``. At that point the console goes
339 339 into 'cell mode' and even if your inputs are not indented, it will continue
340 340 accepting arbitrarily many lines until either you enter an extra blank line or
341 341 you hit ``Shift-Enter`` (the key binding that forces execution). When a
342 342 multiline cell is entered, IPython analyzes it and executes its code producing
343 343 an ``Out[n]`` prompt only for the last expression in it, while the rest of the
344 344 cell is executed as if it was a script. An example should clarify this::
345 345
346 346 In [3]: x=1 # Hit C-Enter here
347 347 ...: y=2 # from now on, regular Enter is sufficient
348 348 ...: z=3
349 349 ...: x**2 # This does *not* produce an Out[] value
350 350 ...: x+y+z # Only the last expression does
351 351 ...:
352 352 Out[3]: 6
353 353
354 354 The behavior where an extra blank line forces execution is only active if you
355 355 are actually typing at the keyboard each line, and is meant to make it mimic
356 356 the IPython terminal behavior. If you paste a long chunk of input (for example
357 357 a long script copied form an editor or web browser), it can contain arbitrarily
358 358 many intermediate blank lines and they won't cause any problems. As always,
359 359 you can then make it execute by appending a blank line *at the end* or hitting
360 360 ``Shift-Enter`` anywhere within the cell.
361 361
362 362 With the up arrow key, you can retrieve previous blocks of input that contain
363 363 multiple lines. You can move inside of a multiline cell like you would in any
364 364 text editor. When you want it executed, the simplest thing to do is to hit the
365 365 force execution key, ``Shift-Enter`` (though you can also navigate to the end
366 366 and append a blank line by using ``Enter`` twice).
367 367
368 368 If you've edited a multiline cell and accidentally navigate out of it with the
369 369 up or down arrow keys, IPython will clear the cell and replace it with the
370 370 contents of the one above or below that you navigated to. If this was an
371 371 accident and you want to retrieve the cell you were editing, use the Undo
372 372 keybinding, ``Control-z``.
373 373
374 374
375 375 Key bindings
376 376 ============
377 377
378 378 The IPython console supports most of the basic Emacs line-oriented keybindings,
379 379 in addition to some of its own.
380 380
381 381 The keybinding prefixes mean:
382 382
383 383 - ``C``: Control
384 384 - ``S``: Shift
385 385 - ``M``: Meta (typically the Alt key)
386 386
387 387 The keybindings themselves are:
388 388
389 389 - ``Enter``: insert new line (may cause execution, see above).
390 390 - ``C-Enter``: *force* new line, *never* causes execution.
391 391 - ``S-Enter``: *force* execution regardless of where cursor is, no newline added.
392 392 - ``Up``: step backwards through the history.
393 393 - ``Down``: step forwards through the history.
394 394 - ``S-Up``: search backwards through the history (like ``C-r`` in bash).
395 395 - ``S-Down``: search forwards through the history.
396 396 - ``C-c``: copy highlighted text to clipboard (prompts are automatically stripped).
397 397 - ``C-S-c``: copy highlighted text to clipboard (prompts are not stripped).
398 398 - ``C-v``: paste text from clipboard.
399 399 - ``C-z``: undo (retrieves lost text if you move out of a cell with the arrows).
400 400 - ``C-S-z``: redo.
401 401 - ``C-o``: move to 'other' area, between pager and terminal.
402 402 - ``C-l``: clear terminal.
403 403 - ``C-a``: go to beginning of line.
404 404 - ``C-e``: go to end of line.
405 405 - ``C-k``: kill from cursor to the end of the line.
406 406 - ``C-y``: yank (paste)
407 407 - ``C-p``: previous line (like up arrow)
408 408 - ``C-n``: next line (like down arrow)
409 409 - ``C-f``: forward (like right arrow)
410 410 - ``C-b``: back (like left arrow)
411 411 - ``C-d``: delete next character.
412 412 - ``M-<``: move to the beginning of the input region.
413 413 - ``M->``: move to the end of the input region.
414 414 - ``M-d``: delete next word.
415 415 - ``M-Backspace``: delete previous word.
416 416 - ``C-.``: force a kernel restart (a confirmation dialog appears).
417 417 - ``C-+``: increase font size.
418 418 - ``C--``: decrease font size.
419 419 - ``C-M-Space``: toggle full screen. (Command-Control-Space on Mac OS X)
420 420
421 421 The IPython pager
422 422 =================
423 423
424 424 IPython will show long blocks of text from many sources using a builtin pager.
425 425 You can control where this pager appears with the ``--paging`` command-line
426 426 flag:
427 427
428 428 - ``inside`` [default]: the pager is overlaid on top of the main terminal. You
429 429 must quit the pager to get back to the terminal (similar to how a pager such
430 430 as ``less`` or ``more`` works).
431 431
432 432 - ``vsplit``: the console is made double-tall, and the pager appears on the
433 433 bottom area when needed. You can view its contents while using the terminal.
434 434
435 435 - ``hsplit``: the console is made double-wide, and the pager appears on the
436 436 right area when needed. You can view its contents while using the terminal.
437 437
438 438 - ``none``: the console never pages output.
439 439
440 440 If you use the vertical or horizontal paging modes, you can navigate between
441 441 terminal and pager as follows:
442 442
443 443 - Tab key: goes from pager to terminal (but not the other way around).
444 444 - Control-o: goes from one to another always.
445 445 - Mouse: click on either.
446 446
447 447 In all cases, the ``q`` or ``Escape`` keys quit the pager (when used with the
448 448 focus on the pager area).
449 449
450 450 Running subprocesses
451 451 ====================
452 452
453 453 The graphical IPython console uses the ``pexpect`` module to run subprocesses
454 454 when you type ``!command``. This has a number of advantages (true asynchronous
455 455 output from subprocesses as well as very robust termination of rogue
456 456 subprocesses with ``Control-C``), as well as some limitations. The main
457 457 limitation is that you can *not* interact back with the subprocess, so anything
458 458 that invokes a pager or expects you to type input into it will block and hang
459 459 (you can kill it with ``Control-C``).
460 460
461 461 We have provided as magics ``%less`` to page files (aliased to ``%more``),
462 462 ``%clear`` to clear the terminal, and ``%man`` on Linux/OSX. These cover the
463 463 most common commands you'd want to call in your subshell and that would cause
464 464 problems if invoked via ``!cmd``, but you need to be aware of this limitation.
465 465
466 466 Display
467 467 =======
468 468
469 469 The IPython console can now display objects in a variety of formats, including
470 470 HTML, PNG and SVG. This is accomplished using the display functions in
471 471 ``IPython.core.display``::
472 472
473 473 In [4]: from IPython.core.display import display, display_html
474 474
475 475 In [5]: from IPython.core.display import display_png, display_svg
476 476
477 477 Python objects can simply be passed to these functions and the appropriate
478 478 representations will be displayed in the console as long as the objects know
479 479 how to compute those representations. The easiest way of teaching objects how
480 480 to format themselves in various representations is to define special methods
481 481 such as: ``_repr_html_``, ``_repr_svg_`` and ``_repr_png_``. IPython's display formatters
482 482 can also be given custom formatter functions for various types::
483 483
484 484 In [6]: ip = get_ipython()
485 485
486 486 In [7]: html_formatter = ip.display_formatter.formatters['text/html']
487 487
488 488 In [8]: html_formatter.for_type(Foo, foo_to_html)
489 489
490 490 For further details, see ``IPython.core.formatters``.
491 491
492 492 Inline matplotlib graphics
493 493 ==========================
494 494
495 495 The IPython console is capable of displaying matplotlib figures inline, in SVG
496 496 or PNG format. If started with the ``pylab=inline``, then all figures are
497 497 rendered inline automatically (PNG by default). If started with ``--pylab``
498 498 or ``pylab=<your backend>``, then a GUI backend will be used, but IPython's
499 499 ``display()`` and ``getfigs()`` functions can be used to view plots inline::
500 500
501 501 In [9]: display(*getfigs()) # display all figures inline
502 502
503 503 In[10]: display(*getfigs(1,2)) # display figures 1 and 2 inline
504 504 """
505 505
506 506
507 507 quick_guide = """\
508 508 ? -> Introduction and overview of IPython's features.
509 509 %quickref -> Quick reference.
510 510 help -> Python's own help system.
511 511 object? -> Details about 'object', use 'object??' for extra details.
512 512 """
513 513
514 514 gui_note = """\
515 515 %guiref -> A brief reference about the graphical user interface.
516 516 """
517 517
518 518 default_banner_parts = [
519 519 'Python %s\n' % (sys.version.split('\n')[0],),
520 520 'Type "copyright", "credits" or "license" for more information.\n\n',
521 521 'IPython %s -- An enhanced Interactive Python.\n' % (release.version,),
522 522 quick_guide
523 523 ]
524 524
525 525 default_gui_banner_parts = default_banner_parts + [gui_note]
526 526
527 527 default_banner = ''.join(default_banner_parts)
528 528
529 529 default_gui_banner = ''.join(default_gui_banner_parts)
General Comments 0
You need to be logged in to leave comments. Login now