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