##// END OF EJS Templates
Backport PR #10074: Simplify interactive usage help...
Thomas Kluyver -
Show More
@@ -1,351 +1,345
1 1 # -*- coding: utf-8 -*-
2 2 """Usage information for the main IPython applications.
3 3 """
4 4 #-----------------------------------------------------------------------------
5 5 # Copyright (C) 2008-2011 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] [-c cmd | -m mod | file] [--] [arg] ...
31 31
32 32 If invoked with no options, it executes the file and exits, passing the
33 33 remaining arguments to the script, just as if you had specified the same
34 34 command with python. You may need to specify `--` before args to be passed
35 35 to the script, to prevent IPython from attempting to parse them. If you
36 36 specify the option `-i` before the filename, it will enter an interactive
37 37 IPython session after running the script, rather than exiting. Files ending
38 38 in .py will be treated as normal Python, but files ending in .ipy can
39 39 contain special IPython syntax (magic commands, shell expansions, etc.).
40 40
41 41 Almost all configuration in IPython is available via the command-line. Do
42 42 `ipython --help-all` to see all available options. For persistent
43 43 configuration, look into your `ipython_config.py` configuration file for
44 44 details.
45 45
46 46 This file is typically installed in the `IPYTHONDIR` directory, and there
47 47 is a separate configuration directory for each profile. The default profile
48 48 directory will be located in $IPYTHONDIR/profile_default. IPYTHONDIR
49 49 defaults to to `$HOME/.ipython`. For Windows users, $HOME resolves to
50 50 C:\\Users\\YourUserName in most instances.
51 51
52 52 To initialize a profile with the default configuration file, do::
53 53
54 54 $> ipython profile create
55 55
56 56 and start editing `IPYTHONDIR/profile_default/ipython_config.py`
57 57
58 58 In IPython's documentation, we will refer to this directory as
59 59 `IPYTHONDIR`, you can change its default location by creating an
60 60 environment variable with this name and setting it to the desired path.
61 61
62 62 For more information, see the manual available in HTML and PDF in your
63 63 installation, or online at http://ipython.org/documentation.html.
64 64 """
65 65
66 66 interactive_usage = """
67 67 IPython -- An enhanced Interactive Python
68 68 =========================================
69 69
70 IPython offers a combination of convenient shell features, special commands
71 and a history mechanism for both input (command history) and output (results
72 caching, similar to Mathematica). It is intended to be a fully compatible
73 replacement for the standard Python interpreter, while offering vastly
74 improved functionality and flexibility.
70 IPython offers a fully compatible replacement for the standard Python
71 interpreter, with convenient shell features, special commands, command
72 history mechanism and output results caching.
75 73
76 74 At your system command line, type 'ipython -h' to see the command line
77 75 options available. This document only describes interactive features.
78 76
79 77 MAIN FEATURES
80 78 -------------
81 79
82 * Access to the standard Python help. As of Python 2.1, a help system is
83 available with access to object docstrings and the Python manuals. Simply
84 type 'help' (no quotes) to access it.
80 * Access to the standard Python help with object docstrings and the Python
81 manuals. Simply type 'help' (no quotes) to invoke it.
85 82
86 83 * Magic commands: type %magic for information on the magic subsystem.
87 84
88 85 * System command aliases, via the %alias command or the configuration file(s).
89 86
90 87 * Dynamic object information:
91 88
92 Typing ?word or word? prints detailed information about an object. If
93 certain strings in the object are too long (docstrings, code, etc.) they get
94 snipped in the center for brevity.
89 Typing ?word or word? prints detailed information about an object. Certain
90 long strings (code, etc.) get snipped in the center for brevity.
95 91
96 92 Typing ??word or word?? gives access to the full information without
97 snipping long strings. Long strings are sent to the screen through the less
98 pager if longer than the screen, printed otherwise.
93 snipping long strings. Strings that are longer than the screen are printed
94 through the less pager.
99 95
100 96 The ?/?? system gives access to the full source code for any object (if
101 97 available), shows function prototypes and other useful information.
102 98
103 99 If you just want to see an object's docstring, type '%pdoc object' (without
104 100 quotes, and without % if you have automagic on).
105 101
106 * Completion in the local namespace, by typing TAB at the prompt.
102 * Tab completion in the local namespace:
107 103
108 104 At any time, hitting tab will complete any available python commands or
109 105 variable names, and show you a list of the possible completions if there's
110 106 no unambiguous one. It will also complete filenames in the current directory.
111 107
112 * Search previous command history in two ways:
108 * Search previous command history in multiple ways:
113 109
114 - Start typing, and then use Ctrl-p (previous, up) and Ctrl-n (next,down) to
115 search through only the history items that match what you've typed so
116 far. If you use Ctrl-p/Ctrl-n at a blank prompt, they just behave like
117 normal arrow keys.
110 - Start typing, and then use arrow keys up/down or (Ctrl-p/Ctrl-n) to search
111 through the history items that match what you've typed so far.
118 112
119 113 - Hit Ctrl-r: opens a search prompt. Begin typing and the system searches
120 114 your history for lines that match what you've typed so far, completing as
121 115 much as it can.
122 116
123 117 - %hist: search history by index.
124 118
125 119 * Persistent command history across sessions.
126 120
127 121 * Logging of input with the ability to save and restore a working session.
128 122
129 * System escape with !. Typing !ls will run 'ls' in the current directory.
123 * System shell with !. Typing !ls will run 'ls' in the current directory.
130 124
131 125 * The reload command does a 'deep' reload of a module: changes made to the
132 126 module since you imported will actually be available without having to exit.
133 127
134 128 * Verbose and colored exception traceback printouts. See the magic xmode and
135 129 xcolor functions for details (just type %magic).
136 130
137 131 * Input caching system:
138 132
139 133 IPython offers numbered prompts (In/Out) with input and output caching. All
140 134 input is saved and can be retrieved as variables (besides the usual arrow
141 135 key recall).
142 136
143 137 The following GLOBAL variables always exist (so don't overwrite them!):
144 138 _i: stores previous input.
145 139 _ii: next previous.
146 140 _iii: next-next previous.
147 141 _ih : a list of all input _ih[n] is the input from line n.
148 142
149 143 Additionally, global variables named _i<n> are dynamically created (<n>
150 144 being the prompt counter), such that _i<n> == _ih[<n>]
151 145
152 146 For example, what you typed at prompt 14 is available as _i14 and _ih[14].
153 147
154 148 You can create macros which contain multiple input lines from this history,
155 149 for later re-execution, with the %macro function.
156 150
157 151 The history function %hist allows you to see any part of your input history
158 152 by printing a range of the _i variables. Note that inputs which contain
159 153 magic functions (%) appear in the history with a prepended comment. This is
160 154 because they aren't really valid Python code, so you can't exec them.
161 155
162 156 * Output caching system:
163 157
164 158 For output that is returned from actions, a system similar to the input
165 159 cache exists but using _ instead of _i. Only actions that produce a result
166 160 (NOT assignments, for example) are cached. If you are familiar with
167 161 Mathematica, IPython's _ variables behave exactly like Mathematica's %
168 162 variables.
169 163
170 164 The following GLOBAL variables always exist (so don't overwrite them!):
171 165 _ (one underscore): previous output.
172 166 __ (two underscores): next previous.
173 167 ___ (three underscores): next-next previous.
174 168
175 169 Global variables named _<n> are dynamically created (<n> being the prompt
176 170 counter), such that the result of output <n> is always available as _<n>.
177 171
178 172 Finally, a global dictionary named _oh exists with entries for all lines
179 173 which generated output.
180 174
181 175 * Directory history:
182 176
183 177 Your history of visited directories is kept in the global list _dh, and the
184 178 magic %cd command can be used to go to any entry in that list.
185 179
186 180 * Auto-parentheses and auto-quotes (adapted from Nathan Gray's LazyPython)
187 181
188 182 1. Auto-parentheses
189 183
190 184 Callable objects (i.e. functions, methods, etc) can be invoked like
191 185 this (notice the commas between the arguments)::
192 186
193 187 In [1]: callable_ob arg1, arg2, arg3
194 188
195 189 and the input will be translated to this::
196 190
197 191 callable_ob(arg1, arg2, arg3)
198 192
199 193 This feature is off by default (in rare cases it can produce
200 194 undesirable side-effects), but you can activate it at the command-line
201 195 by starting IPython with `--autocall 1`, set it permanently in your
202 196 configuration file, or turn on at runtime with `%autocall 1`.
203 197
204 198 You can force auto-parentheses by using '/' as the first character
205 199 of a line. For example::
206 200
207 201 In [1]: /globals # becomes 'globals()'
208 202
209 203 Note that the '/' MUST be the first character on the line! This
210 204 won't work::
211 205
212 206 In [2]: print /globals # syntax error
213 207
214 208 In most cases the automatic algorithm should work, so you should
215 209 rarely need to explicitly invoke /. One notable exception is if you
216 210 are trying to call a function with a list of tuples as arguments (the
217 211 parenthesis will confuse IPython)::
218 212
219 213 In [1]: zip (1,2,3),(4,5,6) # won't work
220 214
221 215 but this will work::
222 216
223 217 In [2]: /zip (1,2,3),(4,5,6)
224 218 ------> zip ((1,2,3),(4,5,6))
225 219 Out[2]= [(1, 4), (2, 5), (3, 6)]
226 220
227 221 IPython tells you that it has altered your command line by
228 222 displaying the new command line preceded by -->. e.g.::
229 223
230 224 In [18]: callable list
231 225 -------> callable (list)
232 226
233 227 2. Auto-Quoting
234 228
235 229 You can force auto-quoting of a function's arguments by using ',' as
236 230 the first character of a line. For example::
237 231
238 232 In [1]: ,my_function /home/me # becomes my_function("/home/me")
239 233
240 234 If you use ';' instead, the whole argument is quoted as a single
241 235 string (while ',' splits on whitespace)::
242 236
243 237 In [2]: ,my_function a b c # becomes my_function("a","b","c")
244 238 In [3]: ;my_function a b c # becomes my_function("a b c")
245 239
246 240 Note that the ',' MUST be the first character on the line! This
247 241 won't work::
248 242
249 243 In [4]: x = ,my_function /home/me # syntax error
250 244 """
251 245
252 246 interactive_usage_min = """\
253 247 An enhanced console for Python.
254 248 Some of its features are:
255 249 - Tab completion in the local namespace.
256 250 - Logging of input, see command-line options.
257 251 - System shell escape via ! , eg !ls.
258 252 - Magic commands, starting with a % (like %ls, %pwd, %cd, etc.)
259 253 - Keeps track of locally defined variables via %who, %whos.
260 254 - Show object information with a ? eg ?x or x? (use ?? for more info).
261 255 """
262 256
263 257 quick_reference = r"""
264 258 IPython -- An enhanced Interactive Python - Quick Reference Card
265 259 ================================================================
266 260
267 261 obj?, obj?? : Get help, or more help for object (also works as
268 262 ?obj, ??obj).
269 263 ?foo.*abc* : List names in 'foo' containing 'abc' in them.
270 264 %magic : Information about IPython's 'magic' % functions.
271 265
272 266 Magic functions are prefixed by % or %%, and typically take their arguments
273 267 without parentheses, quotes or even commas for convenience. Line magics take a
274 268 single % and cell magics are prefixed with two %%.
275 269
276 270 Example magic function calls:
277 271
278 272 %alias d ls -F : 'd' is now an alias for 'ls -F'
279 273 alias d ls -F : Works if 'alias' not a python name
280 274 alist = %alias : Get list of aliases to 'alist'
281 275 cd /usr/share : Obvious. cd -<tab> to choose from visited dirs.
282 276 %cd?? : See help AND source for magic %cd
283 277 %timeit x=10 : time the 'x=10' statement with high precision.
284 278 %%timeit x=2**100
285 279 x**100 : time 'x**100' with a setup of 'x=2**100'; setup code is not
286 280 counted. This is an example of a cell magic.
287 281
288 282 System commands:
289 283
290 284 !cp a.txt b/ : System command escape, calls os.system()
291 285 cp a.txt b/ : after %rehashx, most system commands work without !
292 286 cp ${f}.txt $bar : Variable expansion in magics and system commands
293 287 files = !ls /usr : Capture sytem command output
294 288 files.s, files.l, files.n: "a b c", ['a','b','c'], 'a\nb\nc'
295 289
296 290 History:
297 291
298 292 _i, _ii, _iii : Previous, next previous, next next previous input
299 293 _i4, _ih[2:5] : Input history line 4, lines 2-4
300 294 exec _i81 : Execute input history line #81 again
301 295 %rep 81 : Edit input history line #81
302 296 _, __, ___ : previous, next previous, next next previous output
303 297 _dh : Directory history
304 298 _oh : Output history
305 299 %hist : Command history of current session.
306 300 %hist -g foo : Search command history of (almost) all sessions for 'foo'.
307 301 %hist -g : Command history of (almost) all sessions.
308 302 %hist 1/2-8 : Command history containing lines 2-8 of session 1.
309 303 %hist 1/ ~2/ : Command history of session 1 and 2 sessions before current.
310 304 %hist ~8/1-~6/5 : Command history from line 1 of 8 sessions ago to
311 305 line 5 of 6 sessions ago.
312 306 %edit 0/ : Open editor to execute code with history of current session.
313 307
314 308 Autocall:
315 309
316 310 f 1,2 : f(1,2) # Off by default, enable with %autocall magic.
317 311 /f 1,2 : f(1,2) (forced autoparen)
318 312 ,f 1 2 : f("1","2")
319 313 ;f 1 2 : f("1 2")
320 314
321 315 Remember: TAB completion works in many contexts, not just file names
322 316 or python names.
323 317
324 318 The following magic functions are currently available:
325 319
326 320 """
327 321
328 322 quick_guide = """\
329 323 ? -> Introduction and overview of IPython's features.
330 324 %quickref -> Quick reference.
331 325 help -> Python's own help system.
332 326 object? -> Details about 'object', use 'object??' for extra details.
333 327 """
334 328
335 329 default_banner_parts = [
336 330 'Python %s\n' % (sys.version.split('\n')[0],),
337 331 'Type "copyright", "credits" or "license" for more information.\n\n',
338 332 'IPython {version} -- An enhanced Interactive Python.\n'.format(
339 333 version=release.version,
340 334 ),
341 335 quick_guide
342 336 ]
343 337
344 338 default_banner = ''.join(default_banner_parts)
345 339
346 340 # deprecated GUI banner
347 341
348 342 default_gui_banner = '\n'.join([
349 343 'DEPRECATED: IPython.core.usage.default_gui_banner is deprecated and will be removed',
350 344 default_banner,
351 345 ])
General Comments 0
You need to be logged in to leave comments. Login now