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