##// END OF EJS Templates
Fix comments in default rc file (@ -> %)
fperez -
Show More
@@ -1,597 +1,597 b''
1 1 # -*- Mode: Shell-Script -*- Not really, but shows comments correctly
2 # $Id: ipythonrc 998 2006-01-09 06:57:40Z fperez $
2 # $Id: ipythonrc 1155 2006-02-12 01:21:00Z fperez $
3 3
4 4 #***************************************************************************
5 5 #
6 6 # Configuration file for IPython -- ipythonrc format
7 7 #
8 8 # The format of this file is simply one of 'key value' lines.
9 9 # Lines containing only whitespace at the beginning and then a # are ignored
10 10 # as comments. But comments can NOT be put on lines with data.
11 11
12 12 # The meaning and use of each key are explained below.
13 13
14 14 #---------------------------------------------------------------------------
15 15 # Section: included files
16 16
17 17 # Put one or more *config* files (with the syntax of this file) you want to
18 18 # include. For keys with a unique value the outermost file has precedence. For
19 19 # keys with multiple values, they all get assembled into a list which then
20 20 # gets loaded by IPython.
21 21
22 22 # In this file, all lists of things should simply be space-separated.
23 23
24 24 # This allows you to build hierarchies of files which recursively load
25 25 # lower-level services. If this is your main ~/.ipython/ipythonrc file, you
26 26 # should only keep here basic things you always want available. Then you can
27 27 # include it in every other special-purpose config file you create.
28 28 include
29 29
30 30 #---------------------------------------------------------------------------
31 31 # Section: startup setup
32 32
33 33 # These are mostly things which parallel a command line option of the same
34 34 # name.
35 35
36 36 # Keys in this section should only appear once. If any key from this section
37 37 # is encountered more than once, the last value remains, all earlier ones get
38 38 # discarded.
39 39
40 40
41 41 # Automatic calling of callable objects. If set to 1 or 2, callable objects
42 42 # are automatically called when invoked at the command line, even if you don't
43 43 # type parentheses. IPython adds the parentheses for you. For example:
44 44
45 45 #In [1]: str 45
46 46 #------> str(45)
47 47 #Out[1]: '45'
48 48
49 49 # IPython reprints your line with '---->' indicating that it added
50 50 # parentheses. While this option is very convenient for interactive use, it
51 51 # may occasionally cause problems with objects which have side-effects if
52 52 # called unexpectedly.
53 53
54 54 # The valid values for autocall are:
55 55
56 56 # autocall 0 -> disabled (you can toggle it at runtime with the %autocall magic)
57 57
58 58 # autocall 1 -> active, but do not apply if there are no arguments on the line.
59 59
60 60 # In this mode, you get:
61 61
62 62 #In [1]: callable
63 63 #Out[1]: <built-in function callable>
64 64
65 65 #In [2]: callable 'hello'
66 66 #------> callable('hello')
67 67 #Out[2]: False
68 68
69 69 # 2 -> Active always. Even if no arguments are present, the callable object
70 70 # is called:
71 71
72 72 #In [4]: callable
73 73 #------> callable()
74 74
75 75 # Note that even with autocall off, you can still use '/' at the start of a
76 76 # line to treat the first argument on the command line as a function and add
77 77 # parentheses to it:
78 78
79 79 #In [8]: /str 43
80 80 #------> str(43)
81 81 #Out[8]: '43'
82 82
83 83 autocall 1
84 84
85 85 # Auto-edit syntax errors. When you use the %edit magic in ipython to edit
86 86 # source code (see the 'editor' variable below), it is possible that you save
87 87 # a file with syntax errors in it. If this variable is true, IPython will ask
88 88 # you whether to re-open the editor immediately to correct such an error.
89 89
90 90 autoedit_syntax 1
91 91
92 92 # Auto-indent. IPython can recognize lines ending in ':' and indent the next
93 93 # line, while also un-indenting automatically after 'raise' or 'return'.
94 94
95 95 # This feature uses the readline library, so it will honor your ~/.inputrc
96 96 # configuration (or whatever file your INPUTRC variable points to). Adding
97 97 # the following lines to your .inputrc file can make indent/unindenting more
98 98 # convenient (M-i indents, M-u unindents):
99 99
100 100 # $if Python
101 101 # "\M-i": " "
102 102 # "\M-u": "\d\d\d\d"
103 103 # $endif
104 104
105 105 # The feature is potentially a bit dangerous, because it can cause problems
106 106 # with pasting of indented code (the pasted code gets re-indented on each
107 107 # line). But it's a huge time-saver when working interactively. The magic
108 # function @autoindent allows you to toggle it on/off at runtime.
108 # function %autoindent allows you to toggle it on/off at runtime.
109 109
110 110 autoindent 1
111 111
112 112 # Auto-magic. This gives you access to all the magic functions without having
113 # to prepend them with an @ sign. If you define a variable with the same name
113 # to prepend them with an % sign. If you define a variable with the same name
114 114 # as a magic function (say who=1), you will need to access the magic function
115 # with @ (@who in this example). However, if later you delete your variable
115 # with % (%who in this example). However, if later you delete your variable
116 116 # (del who), you'll recover the automagic calling form.
117 117
118 118 # Considering that many magic functions provide a lot of shell-like
119 119 # functionality, automagic gives you something close to a full Python+system
120 120 # shell environment (and you can extend it further if you want).
121 121
122 122 automagic 1
123 123
124 124 # Size of the output cache. After this many entries are stored, the cache will
125 125 # get flushed. Depending on the size of your intermediate calculations, you
126 126 # may have memory problems if you make it too big, since keeping things in the
127 127 # cache prevents Python from reclaiming the memory for old results. Experiment
128 128 # with a value that works well for you.
129 129
130 130 # If you choose cache_size 0 IPython will revert to python's regular >>>
131 131 # unnumbered prompt. You will still have _, __ and ___ for your last three
132 132 # results, but that will be it. No dynamic _1, _2, etc. will be created. If
133 133 # you are running on a slow machine or with very limited memory, this may
134 134 # help.
135 135
136 136 cache_size 1000
137 137
138 138 # Classic mode: Setting 'classic 1' you lose many of IPython niceties,
139 139 # but that's your choice! Classic 1 -> same as IPython -classic.
140 140 # Note that this is _not_ the normal python interpreter, it's simply
141 141 # IPython emulating most of the classic interpreter's behavior.
142 142 classic 0
143 143
144 144 # colors - Coloring option for prompts and traceback printouts.
145 145
146 146 # Currently available schemes: NoColor, Linux, LightBG.
147 147
148 148 # This option allows coloring the prompts and traceback printouts. This
149 149 # requires a terminal which can properly handle color escape sequences. If you
150 150 # are having problems with this, use the NoColor scheme (uses no color escapes
151 151 # at all).
152 152
153 153 # The Linux option works well in linux console type environments: dark
154 154 # background with light fonts.
155 155
156 156 # LightBG is similar to Linux but swaps dark/light colors to be more readable
157 157 # in light background terminals.
158 158
159 159 # keep uncommented only the one you want:
160 160 colors Linux
161 161 #colors LightBG
162 162 #colors NoColor
163 163
164 164 ########################
165 165 # Note to Windows users
166 166 #
167 167 # Color and readline support is avaialble to Windows users via Gary Bishop's
168 168 # readline library. You can find Gary's tools at
169 169 # http://sourceforge.net/projects/uncpythontools.
170 170 # Note that his readline module requires in turn the ctypes library, available
171 171 # at http://starship.python.net/crew/theller/ctypes.
172 172 ########################
173 173
174 174 # color_info: IPython can display information about objects via a set of
175 175 # functions, and optionally can use colors for this, syntax highlighting
176 176 # source code and various other elements. This information is passed through a
177 177 # pager (it defaults to 'less' if $PAGER is not set).
178 178
179 179 # If your pager has problems, try to setting it to properly handle escapes
180 180 # (see the less manpage for detail), or disable this option. The magic
181 # function @color_info allows you to toggle this interactively for testing.
181 # function %color_info allows you to toggle this interactively for testing.
182 182
183 183 color_info 1
184 184
185 185 # confirm_exit: set to 1 if you want IPython to confirm when you try to exit
186 186 # with an EOF (Control-d in Unix, Control-Z/Enter in Windows). Note that using
187 # the magic functions @Exit or @Quit you can force a direct exit, bypassing
187 # the magic functions %Exit or %Quit you can force a direct exit, bypassing
188 188 # any confirmation.
189 189
190 190 confirm_exit 1
191 191
192 192 # Use deep_reload() as a substitute for reload() by default. deep_reload() is
193 193 # still available as dreload() and appears as a builtin.
194 194
195 195 deep_reload 0
196 196
197 # Which editor to use with the @edit command. If you leave this at 0, IPython
197 # Which editor to use with the %edit command. If you leave this at 0, IPython
198 198 # will honor your EDITOR environment variable. Since this editor is invoked on
199 199 # the fly by ipython and is meant for editing small code snippets, you may
200 200 # want to use a small, lightweight editor here.
201 201
202 202 # For Emacs users, setting up your Emacs server properly as described in the
203 203 # manual is a good idea. An alternative is to use jed, a very light editor
204 204 # with much of the feel of Emacs (though not as powerful for heavy-duty work).
205 205
206 206 editor 0
207 207
208 208 # log 1 -> same as ipython -log. This automatically logs to ./ipython.log
209 209 log 0
210 210
211 211 # Same as ipython -Logfile YourLogfileName.
212 212 # Don't use with log 1 (use one or the other)
213 213 logfile ''
214 214
215 215 # banner 0 -> same as ipython -nobanner
216 216 banner 1
217 217
218 218 # messages 0 -> same as ipython -nomessages
219 219 messages 1
220 220
221 221 # Automatically call the pdb debugger after every uncaught exception. If you
222 222 # are used to debugging using pdb, this puts you automatically inside of it
223 223 # after any call (either in IPython or in code called by it) which triggers an
224 224 # exception which goes uncaught.
225 225 pdb 0
226 226
227 227 # Enable the pprint module for printing. pprint tends to give a more readable
228 228 # display (than print) for complex nested data structures.
229 229 pprint 1
230 230
231 231 # Prompt strings
232 232
233 233 # Most bash-like escapes can be used to customize IPython's prompts, as well as
234 234 # a few additional ones which are IPython-specific. All valid prompt escapes
235 235 # are described in detail in the Customization section of the IPython HTML/PDF
236 236 # manual.
237 237
238 238 # Use \# to represent the current prompt number, and quote them to protect
239 239 # spaces.
240 240 prompt_in1 'In [\#]: '
241 241
242 242 # \D is replaced by as many dots as there are digits in the
243 243 # current value of \#.
244 244 prompt_in2 ' .\D.: '
245 245
246 246 prompt_out 'Out[\#]: '
247 247
248 248 # Select whether to left-pad the output prompts to match the length of the
249 249 # input ones. This allows you for example to use a simple '>' as an output
250 250 # prompt, and yet have the output line up with the input. If set to false,
251 251 # the output prompts will be unpadded (flush left).
252 252 prompts_pad_left 1
253 253
254 254 # quick 1 -> same as ipython -quick
255 255 quick 0
256 256
257 257 # Use the readline library (1) or not (0). Most users will want this on, but
258 258 # if you experience strange problems with line management (mainly when using
259 259 # IPython inside Emacs buffers) you may try disabling it. Not having it on
260 260 # prevents you from getting command history with the arrow keys, searching and
261 261 # name completion using TAB.
262 262
263 263 readline 1
264 264
265 265 # Screen Length: number of lines of your screen. This is used to control
266 266 # printing of very long strings. Strings longer than this number of lines will
267 267 # be paged with the less command instead of directly printed.
268 268
269 269 # The default value for this is 0, which means IPython will auto-detect your
270 270 # screen size every time it needs to print. If for some reason this isn't
271 271 # working well (it needs curses support), specify it yourself. Otherwise don't
272 272 # change the default.
273 273
274 274 screen_length 0
275 275
276 276 # Prompt separators for input and output.
277 277 # Use \n for newline explicitly, without quotes.
278 278 # Use 0 (like at the cmd line) to turn off a given separator.
279 279
280 280 # The structure of prompt printing is:
281 281 # (SeparateIn)Input....
282 282 # (SeparateOut)Output...
283 283 # (SeparateOut2), # that is, no newline is printed after Out2
284 284 # By choosing these you can organize your output any way you want.
285 285
286 286 separate_in \n
287 287 separate_out 0
288 288 separate_out2 0
289 289
290 290 # 'nosep 1' is a shorthand for '-SeparateIn 0 -SeparateOut 0 -SeparateOut2 0'.
291 291 # Simply removes all input/output separators, overriding the choices above.
292 292 nosep 0
293 293
294 294 # Wildcard searches - IPython has a system for searching names using
295 295 # shell-like wildcards; type %psearch? for details. This variables sets
296 296 # whether by default such searches should be case sensitive or not. You can
297 297 # always override the default at the system command line or the IPython
298 298 # prompt.
299 299
300 300 wildcards_case_sensitive 1
301 301
302 302 # xmode - Exception reporting mode.
303 303
304 304 # Valid modes: Plain, Context and Verbose.
305 305
306 306 # Plain: similar to python's normal traceback printing.
307 307
308 308 # Context: prints 5 lines of context source code around each line in the
309 309 # traceback.
310 310
311 311 # Verbose: similar to Context, but additionally prints the variables currently
312 312 # visible where the exception happened (shortening their strings if too
313 313 # long). This can potentially be very slow, if you happen to have a huge data
314 314 # structure whose string representation is complex to compute. Your computer
315 315 # may appear to freeze for a while with cpu usage at 100%. If this occurs, you
316 316 # can cancel the traceback with Ctrl-C (maybe hitting it more than once).
317 317
318 318 #xmode Plain
319 319 xmode Context
320 320 #xmode Verbose
321 321
322 322 # multi_line_specials: if true, allow magics, aliases and shell escapes (via
323 323 # !cmd) to be used in multi-line input (like for loops). For example, if you
324 324 # have this active, the following is valid in IPython:
325 325 #
326 326 #In [17]: for i in range(3):
327 327 # ....: mkdir $i
328 328 # ....: !touch $i/hello
329 329 # ....: ls -l $i
330 330
331 331 multi_line_specials 1
332 332
333 333 # wxversion: request a specific wxPython version (used for -wthread)
334 334
335 335 # Set this to the value of wxPython you want to use, but note that this
336 336 # feature requires you to have the wxversion Python module to work. If you
337 337 # don't have the wxversion module (try 'import wxversion' at the prompt to
338 338 # check) or simply want to leave the system to pick up the default, leave this
339 339 # variable at 0.
340 340
341 341 wxversion 0
342 342
343 343 #---------------------------------------------------------------------------
344 344 # Section: Readline configuration (readline is not available for MS-Windows)
345 345
346 346 # This is done via the following options:
347 347
348 348 # (i) readline_parse_and_bind: this option can appear as many times as you
349 349 # want, each time defining a string to be executed via a
350 350 # readline.parse_and_bind() command. The syntax for valid commands of this
351 351 # kind can be found by reading the documentation for the GNU readline library,
352 352 # as these commands are of the kind which readline accepts in its
353 353 # configuration file.
354 354
355 355 # The TAB key can be used to complete names at the command line in one of two
356 356 # ways: 'complete' and 'menu-complete'. The difference is that 'complete' only
357 357 # completes as much as possible while 'menu-complete' cycles through all
358 358 # possible completions. Leave the one you prefer uncommented.
359 359
360 360 readline_parse_and_bind tab: complete
361 361 #readline_parse_and_bind tab: menu-complete
362 362
363 363 # This binds Control-l to printing the list of all possible completions when
364 364 # there is more than one (what 'complete' does when hitting TAB twice, or at
365 365 # the first TAB if show-all-if-ambiguous is on)
366 366 readline_parse_and_bind "\C-l": possible-completions
367 367
368 368 # This forces readline to automatically print the above list when tab
369 369 # completion is set to 'complete'. You can still get this list manually by
370 370 # using the key bound to 'possible-completions' (Control-l by default) or by
371 371 # hitting TAB twice. Turning this on makes the printing happen at the first
372 372 # TAB.
373 373 readline_parse_and_bind set show-all-if-ambiguous on
374 374
375 375 # If you have TAB set to complete names, you can rebind any key (Control-o by
376 376 # default) to insert a true TAB character.
377 377 readline_parse_and_bind "\C-o": tab-insert
378 378
379 379 # These commands allow you to indent/unindent easily, with the 4-space
380 380 # convention of the Python coding standards. Since IPython's internal
381 381 # auto-indent system also uses 4 spaces, you should not change the number of
382 382 # spaces in the code below.
383 383 readline_parse_and_bind "\M-i": " "
384 384 readline_parse_and_bind "\M-o": "\d\d\d\d"
385 385 readline_parse_and_bind "\M-I": "\d\d\d\d"
386 386
387 387 # Bindings for incremental searches in the history. These searches use the
388 388 # string typed so far on the command line and search anything in the previous
389 389 # input history containing them.
390 390 readline_parse_and_bind "\C-r": reverse-search-history
391 391 readline_parse_and_bind "\C-s": forward-search-history
392 392
393 393 # Bindings for completing the current line in the history of previous
394 394 # commands. This allows you to recall any previous command by typing its first
395 395 # few letters and hitting Control-p, bypassing all intermediate commands which
396 396 # may be in the history (much faster than hitting up-arrow 50 times!)
397 397 readline_parse_and_bind "\C-p": history-search-backward
398 398 readline_parse_and_bind "\C-n": history-search-forward
399 399
400 400 # I also like to have the same functionality on the plain arrow keys. If you'd
401 401 # rather have the arrows use all the history (and not just match what you've
402 402 # typed so far), comment out or delete the next two lines.
403 403 readline_parse_and_bind "\e[A": history-search-backward
404 404 readline_parse_and_bind "\e[B": history-search-forward
405 405
406 406 # These are typically on by default under *nix, but not win32.
407 407 readline_parse_and_bind "\C-k": kill-line
408 408 readline_parse_and_bind "\C-u": unix-line-discard
409 409
410 410 # (ii) readline_remove_delims: a string of characters to be removed from the
411 411 # default word-delimiters list used by readline, so that completions may be
412 412 # performed on strings which contain them.
413 413
414 414 readline_remove_delims -/~
415 415
416 416 # (iii) readline_merge_completions: whether to merge the result of all
417 417 # possible completions or not. If true, IPython will complete filenames,
418 418 # python names and aliases and return all possible completions. If you set it
419 419 # to false, each completer is used at a time, and only if it doesn't return
420 420 # any completions is the next one used.
421 421
422 422 # The default order is: [python_matches, file_matches, alias_matches]
423 423
424 424 readline_merge_completions 1
425 425
426 426 # (iv) readline_omit__names: normally hitting <tab> after a '.' in a name
427 427 # will complete all attributes of an object, including all the special methods
428 428 # whose names start with single or double underscores (like __getitem__ or
429 429 # __class__).
430 430
431 431 # This variable allows you to control this completion behavior:
432 432
433 433 # readline_omit__names 1 -> completion will omit showing any names starting
434 434 # with two __, but it will still show names starting with one _.
435 435
436 436 # readline_omit__names 2 -> completion will omit all names beginning with one
437 437 # _ (which obviously means filtering out the double __ ones).
438 438
439 439 # Even when this option is set, you can still see those names by explicitly
440 440 # typing a _ after the period and hitting <tab>: 'name._<tab>' will always
441 441 # complete attribute names starting with '_'.
442 442
443 443 # This option is off by default so that new users see all attributes of any
444 444 # objects they are dealing with.
445 445
446 446 readline_omit__names 0
447 447
448 448 #---------------------------------------------------------------------------
449 449 # Section: modules to be loaded with 'import ...'
450 450
451 451 # List, separated by spaces, the names of the modules you want to import
452 452
453 453 # Example:
454 454 # import_mod sys os
455 455 # will produce internally the statements
456 456 # import sys
457 457 # import os
458 458
459 459 # Each import is executed in its own try/except block, so if one module
460 460 # fails to load the others will still be ok.
461 461
462 462 import_mod
463 463
464 464 #---------------------------------------------------------------------------
465 465 # Section: modules to import some functions from: 'from ... import ...'
466 466
467 467 # List, one per line, the modules for which you want only to import some
468 468 # functions. Give the module name first and then the name of functions to be
469 469 # imported from that module.
470 470
471 471 # Example:
472 472
473 473 # import_some IPython.genutils timing timings
474 474 # will produce internally the statement
475 475 # from IPython.genutils import timing, timings
476 476
477 477 # timing() and timings() are two IPython utilities for timing the execution of
478 478 # your own functions, which you may find useful. Just commment out the above
479 479 # line if you want to test them.
480 480
481 481 # If you have more than one modules_some line, each gets its own try/except
482 482 # block (like modules, see above).
483 483
484 484 import_some
485 485
486 486 #---------------------------------------------------------------------------
487 487 # Section: modules to import all from : 'from ... import *'
488 488
489 489 # List (same syntax as import_mod above) those modules for which you want to
490 490 # import all functions. Remember, this is a potentially dangerous thing to do,
491 491 # since it is very easy to overwrite names of things you need. Use with
492 492 # caution.
493 493
494 494 # Example:
495 495 # import_all sys os
496 496 # will produce internally the statements
497 497 # from sys import *
498 498 # from os import *
499 499
500 500 # As before, each will be called in a separate try/except block.
501 501
502 502 import_all
503 503
504 504 #---------------------------------------------------------------------------
505 505 # Section: Python code to execute.
506 506
507 507 # Put here code to be explicitly executed (keep it simple!)
508 508 # Put one line of python code per line. All whitespace is removed (this is a
509 509 # feature, not a bug), so don't get fancy building loops here.
510 510 # This is just for quick convenient creation of things you want available.
511 511
512 512 # Example:
513 513 # execute x = 1
514 514 # execute print 'hello world'; y = z = 'a'
515 515 # will produce internally
516 516 # x = 1
517 517 # print 'hello world'; y = z = 'a'
518 518 # and each *line* (not each statement, we don't do python syntax parsing) is
519 519 # executed in its own try/except block.
520 520
521 521 execute
522 522
523 523 # Note for the adventurous: you can use this to define your own names for the
524 524 # magic functions, by playing some namespace tricks:
525 525
526 526 # execute __IPYTHON__.magic_pf = __IPYTHON__.magic_profile
527 527
528 # defines @pf as a new name for @profile.
528 # defines %pf as a new name for %profile.
529 529
530 530 #---------------------------------------------------------------------------
531 531 # Section: Pyhton files to load and execute.
532 532
533 533 # Put here the full names of files you want executed with execfile(file). If
534 534 # you want complicated initialization, just write whatever you want in a
535 535 # regular python file and load it from here.
536 536
537 537 # Filenames defined here (which *must* include the extension) are searched for
538 538 # through all of sys.path. Since IPython adds your .ipython directory to
539 539 # sys.path, they can also be placed in your .ipython dir and will be
540 540 # found. Otherwise (if you want to execute things not in .ipyton nor in
541 541 # sys.path) give a full path (you can use ~, it gets expanded)
542 542
543 543 # Example:
544 544 # execfile file1.py ~/file2.py
545 545 # will generate
546 546 # execfile('file1.py')
547 547 # execfile('_path_to_your_home/file2.py')
548 548
549 549 # As before, each file gets its own try/except block.
550 550
551 551 execfile
552 552
553 553 # If you are feeling adventurous, you can even add functionality to IPython
554 554 # through here. IPython works through a global variable called __ip which
555 555 # exists at the time when these files are read. If you know what you are doing
556 556 # (read the source) you can add functions to __ip in files loaded here.
557 557
558 558 # The file example-magic.py contains a simple but correct example. Try it:
559 559
560 560 # execfile example-magic.py
561 561
562 562 # Look at the examples in IPython/iplib.py for more details on how these magic
563 563 # functions need to process their arguments.
564 564
565 565 #---------------------------------------------------------------------------
566 566 # Section: aliases for system shell commands
567 567
568 568 # Here you can define your own names for system commands. The syntax is
569 # similar to that of the builtin @alias function:
569 # similar to that of the builtin %alias function:
570 570
571 571 # alias alias_name command_string
572 572
573 573 # The resulting aliases are auto-generated magic functions (hence usable as
574 # @alias_name)
574 # %alias_name)
575 575
576 576 # For example:
577 577
578 578 # alias myls ls -la
579 579
580 580 # will define 'myls' as an alias for executing the system command 'ls -la'.
581 581 # This allows you to customize IPython's environment to have the same aliases
582 582 # you are accustomed to from your own shell.
583 583
584 584 # You can also define aliases with parameters using %s specifiers (one per
585 585 # parameter):
586 586
587 587 # alias parts echo first %s second %s
588 588
589 589 # will give you in IPython:
590 # >>> @parts A B
590 # >>> %parts A B
591 591 # first A second B
592 592
593 593 # Use one 'alias' statement per alias you wish to define.
594 594
595 595 # alias
596 596
597 597 #************************* end of file <ipythonrc> ************************
@@ -1,5204 +1,5207 b''
1 1 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
2 2
3 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
4 describing magics (we haven't used @ for a loong time).
5
3 6 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
4 7 contributed by marienz to close
5 8 http://www.scipy.net/roundup/ipython/issue53.
6 9
7 10 2006-02-10 Ville Vainio <vivainio@gmail.com>
8 11
9 12 * genutils.py: getoutput now works in win32 too
10 13
11 14 * completer.py: alias and magic completion only invoked
12 15 at the first "item" in the line, to avoid "cd %store"
13 16 nonsense.
14 17
15 18 2006-02-09 Ville Vainio <vivainio@gmail.com>
16 19
17 20 * test/*: Added a unit testing framework (finally).
18 21 '%run runtests.py' to run test_*.
19 22
20 23 * ipapi.py: Exposed runlines and set_custom_exc
21 24
22 25 2006-02-07 Ville Vainio <vivainio@gmail.com>
23 26
24 27 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
25 28 instead use "f(1 2)" as before.
26 29
27 30 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
28 31
29 32 * IPython/demo.py (IPythonDemo): Add new classes to the demo
30 33 facilities, for demos processed by the IPython input filter
31 34 (IPythonDemo), and for running a script one-line-at-a-time as a
32 35 demo, both for pure Python (LineDemo) and for IPython-processed
33 36 input (IPythonLineDemo). After a request by Dave Kohel, from the
34 37 SAGE team.
35 38 (Demo.edit): added and edit() method to the demo objects, to edit
36 39 the in-memory copy of the last executed block.
37 40
38 41 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
39 42 processing to %edit, %macro and %save. These commands can now be
40 43 invoked on the unprocessed input as it was typed by the user
41 44 (without any prefilters applied). After requests by the SAGE team
42 45 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
43 46
44 47 2006-02-01 Ville Vainio <vivainio@gmail.com>
45 48
46 49 * setup.py, eggsetup.py: easy_install ipython==dev works
47 50 correctly now (on Linux)
48 51
49 52 * ipy_user_conf,ipmaker: user config changes, removed spurious
50 53 warnings
51 54
52 55 * iplib: if rc.banner is string, use it as is.
53 56
54 57 * Magic: %pycat accepts a string argument and pages it's contents.
55 58
56 59
57 60 2006-01-30 Ville Vainio <vivainio@gmail.com>
58 61
59 62 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
60 63 Now %store and bookmarks work through PickleShare, meaning that
61 64 concurrent access is possible and all ipython sessions see the
62 65 same database situation all the time, instead of snapshot of
63 66 the situation when the session was started. Hence, %bookmark
64 67 results are immediately accessible from othes sessions. The database
65 68 is also available for use by user extensions. See:
66 69 http://www.python.org/pypi/pickleshare
67 70
68 71 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
69 72
70 73 * aliases can now be %store'd
71 74
72 75 * path.py move to Extensions so that pickleshare does not need
73 76 IPython-specific import. Extensions added to pythonpath right
74 77 at __init__.
75 78
76 79 * iplib.py: ipalias deprecated/redundant; aliases are converted and
77 80 called with _ip.system and the pre-transformed command string.
78 81
79 82 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
80 83
81 84 * IPython/iplib.py (interact): Fix that we were not catching
82 85 KeyboardInterrupt exceptions properly. I'm not quite sure why the
83 86 logic here had to change, but it's fixed now.
84 87
85 88 2006-01-29 Ville Vainio <vivainio@gmail.com>
86 89
87 90 * iplib.py: Try to import pyreadline on Windows.
88 91
89 92 2006-01-27 Ville Vainio <vivainio@gmail.com>
90 93
91 94 * iplib.py: Expose ipapi as _ip in builtin namespace.
92 95 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
93 96 and ip_set_hook (-> _ip.set_hook) redundant. % and !
94 97 syntax now produce _ip.* variant of the commands.
95 98
96 99 * "_ip.options().autoedit_syntax = 2" automatically throws
97 100 user to editor for syntax error correction without prompting.
98 101
99 102 2006-01-27 Ville Vainio <vivainio@gmail.com>
100 103
101 104 * ipmaker.py: Give "realistic" sys.argv for scripts (without
102 105 'ipython' at argv[0]) executed through command line.
103 106 NOTE: this DEPRECATES calling ipython with multiple scripts
104 107 ("ipython a.py b.py c.py")
105 108
106 109 * iplib.py, hooks.py: Added configurable input prefilter,
107 110 named 'input_prefilter'. See ext_rescapture.py for example
108 111 usage.
109 112
110 113 * ext_rescapture.py, Magic.py: Better system command output capture
111 114 through 'var = !ls' (deprecates user-visible %sc). Same notation
112 115 applies for magics, 'var = %alias' assigns alias list to var.
113 116
114 117 * ipapi.py: added meta() for accessing extension-usable data store.
115 118
116 119 * iplib.py: added InteractiveShell.getapi(). New magics should be
117 120 written doing self.getapi() instead of using the shell directly.
118 121
119 122 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
120 123 %store foo >> ~/myfoo.txt to store variables to files (in clean
121 124 textual form, not a restorable pickle).
122 125
123 126 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
124 127
125 128 * usage.py, Magic.py: added %quickref
126 129
127 130 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
128 131
129 132 * GetoptErrors when invoking magics etc. with wrong args
130 133 are now more helpful:
131 134 GetoptError: option -l not recognized (allowed: "qb" )
132 135
133 136 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
134 137
135 138 * IPython/demo.py (Demo.show): Flush stdout after each block, so
136 139 computationally intensive blocks don't appear to stall the demo.
137 140
138 141 2006-01-24 Ville Vainio <vivainio@gmail.com>
139 142
140 143 * iplib.py, hooks.py: 'result_display' hook can return a non-None
141 144 value to manipulate resulting history entry.
142 145
143 146 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
144 147 to instance methods of IPApi class, to make extending an embedded
145 148 IPython feasible. See ext_rehashdir.py for example usage.
146 149
147 150 * Merged 1071-1076 from banches/0.7.1
148 151
149 152
150 153 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
151 154
152 155 * tools/release (daystamp): Fix build tools to use the new
153 156 eggsetup.py script to build lightweight eggs.
154 157
155 158 * Applied changesets 1062 and 1064 before 0.7.1 release.
156 159
157 160 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
158 161 see the raw input history (without conversions like %ls ->
159 162 ipmagic("ls")). After a request from W. Stein, SAGE
160 163 (http://modular.ucsd.edu/sage) developer. This information is
161 164 stored in the input_hist_raw attribute of the IPython instance, so
162 165 developers can access it if needed (it's an InputList instance).
163 166
164 167 * Versionstring = 0.7.2.svn
165 168
166 169 * eggsetup.py: A separate script for constructing eggs, creates
167 170 proper launch scripts even on Windows (an .exe file in
168 171 \python24\scripts).
169 172
170 173 * ipapi.py: launch_new_instance, launch entry point needed for the
171 174 egg.
172 175
173 176 2006-01-23 Ville Vainio <vivainio@gmail.com>
174 177
175 178 * Added %cpaste magic for pasting python code
176 179
177 180 2006-01-22 Ville Vainio <vivainio@gmail.com>
178 181
179 182 * Merge from branches/0.7.1 into trunk, revs 1052-1057
180 183
181 184 * Versionstring = 0.7.2.svn
182 185
183 186 * eggsetup.py: A separate script for constructing eggs, creates
184 187 proper launch scripts even on Windows (an .exe file in
185 188 \python24\scripts).
186 189
187 190 * ipapi.py: launch_new_instance, launch entry point needed for the
188 191 egg.
189 192
190 193 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
191 194
192 195 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
193 196 %pfile foo would print the file for foo even if it was a binary.
194 197 Now, extensions '.so' and '.dll' are skipped.
195 198
196 199 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
197 200 bug, where macros would fail in all threaded modes. I'm not 100%
198 201 sure, so I'm going to put out an rc instead of making a release
199 202 today, and wait for feedback for at least a few days.
200 203
201 204 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
202 205 it...) the handling of pasting external code with autoindent on.
203 206 To get out of a multiline input, the rule will appear for most
204 207 users unchanged: two blank lines or change the indent level
205 208 proposed by IPython. But there is a twist now: you can
206 209 add/subtract only *one or two spaces*. If you add/subtract three
207 210 or more (unless you completely delete the line), IPython will
208 211 accept that line, and you'll need to enter a second one of pure
209 212 whitespace. I know it sounds complicated, but I can't find a
210 213 different solution that covers all the cases, with the right
211 214 heuristics. Hopefully in actual use, nobody will really notice
212 215 all these strange rules and things will 'just work'.
213 216
214 217 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
215 218
216 219 * IPython/iplib.py (interact): catch exceptions which can be
217 220 triggered asynchronously by signal handlers. Thanks to an
218 221 automatic crash report, submitted by Colin Kingsley
219 222 <tercel-AT-gentoo.org>.
220 223
221 224 2006-01-20 Ville Vainio <vivainio@gmail.com>
222 225
223 226 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
224 227 (%rehashdir, very useful, try it out) of how to extend ipython
225 228 with new magics. Also added Extensions dir to pythonpath to make
226 229 importing extensions easy.
227 230
228 231 * %store now complains when trying to store interactively declared
229 232 classes / instances of those classes.
230 233
231 234 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
232 235 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
233 236 if they exist, and ipy_user_conf.py with some defaults is created for
234 237 the user.
235 238
236 239 * Startup rehashing done by the config file, not InterpreterExec.
237 240 This means system commands are available even without selecting the
238 241 pysh profile. It's the sensible default after all.
239 242
240 243 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
241 244
242 245 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
243 246 multiline code with autoindent on working. But I am really not
244 247 sure, so this needs more testing. Will commit a debug-enabled
245 248 version for now, while I test it some more, so that Ville and
246 249 others may also catch any problems. Also made
247 250 self.indent_current_str() a method, to ensure that there's no
248 251 chance of the indent space count and the corresponding string
249 252 falling out of sync. All code needing the string should just call
250 253 the method.
251 254
252 255 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
253 256
254 257 * IPython/Magic.py (magic_edit): fix check for when users don't
255 258 save their output files, the try/except was in the wrong section.
256 259
257 260 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
258 261
259 262 * IPython/Magic.py (magic_run): fix __file__ global missing from
260 263 script's namespace when executed via %run. After a report by
261 264 Vivian.
262 265
263 266 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
264 267 when using python 2.4. The parent constructor changed in 2.4, and
265 268 we need to track it directly (we can't call it, as it messes up
266 269 readline and tab-completion inside our pdb would stop working).
267 270 After a bug report by R. Bernstein <rocky-AT-panix.com>.
268 271
269 272 2006-01-16 Ville Vainio <vivainio@gmail.com>
270 273
271 274 * Ipython/magic.py:Reverted back to old %edit functionality
272 275 that returns file contents on exit.
273 276
274 277 * IPython/path.py: Added Jason Orendorff's "path" module to
275 278 IPython tree, http://www.jorendorff.com/articles/python/path/.
276 279 You can get path objects conveniently through %sc, and !!, e.g.:
277 280 sc files=ls
278 281 for p in files.paths: # or files.p
279 282 print p,p.mtime
280 283
281 284 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
282 285 now work again without considering the exclusion regexp -
283 286 hence, things like ',foo my/path' turn to 'foo("my/path")'
284 287 instead of syntax error.
285 288
286 289
287 290 2006-01-14 Ville Vainio <vivainio@gmail.com>
288 291
289 292 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
290 293 ipapi decorators for python 2.4 users, options() provides access to rc
291 294 data.
292 295
293 296 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
294 297 as path separators (even on Linux ;-). Space character after
295 298 backslash (as yielded by tab completer) is still space;
296 299 "%cd long\ name" works as expected.
297 300
298 301 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
299 302 as "chain of command", with priority. API stays the same,
300 303 TryNext exception raised by a hook function signals that
301 304 current hook failed and next hook should try handling it, as
302 305 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
303 306 requested configurable display hook, which is now implemented.
304 307
305 308 2006-01-13 Ville Vainio <vivainio@gmail.com>
306 309
307 310 * IPython/platutils*.py: platform specific utility functions,
308 311 so far only set_term_title is implemented (change terminal
309 312 label in windowing systems). %cd now changes the title to
310 313 current dir.
311 314
312 315 * IPython/Release.py: Added myself to "authors" list,
313 316 had to create new files.
314 317
315 318 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
316 319 shell escape; not a known bug but had potential to be one in the
317 320 future.
318 321
319 322 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
320 323 extension API for IPython! See the module for usage example. Fix
321 324 OInspect for docstring-less magic functions.
322 325
323 326
324 327 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
325 328
326 329 * IPython/iplib.py (raw_input): temporarily deactivate all
327 330 attempts at allowing pasting of code with autoindent on. It
328 331 introduced bugs (reported by Prabhu) and I can't seem to find a
329 332 robust combination which works in all cases. Will have to revisit
330 333 later.
331 334
332 335 * IPython/genutils.py: remove isspace() function. We've dropped
333 336 2.2 compatibility, so it's OK to use the string method.
334 337
335 338 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
336 339
337 340 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
338 341 matching what NOT to autocall on, to include all python binary
339 342 operators (including things like 'and', 'or', 'is' and 'in').
340 343 Prompted by a bug report on 'foo & bar', but I realized we had
341 344 many more potential bug cases with other operators. The regexp is
342 345 self.re_exclude_auto, it's fairly commented.
343 346
344 347 2006-01-12 Ville Vainio <vivainio@gmail.com>
345 348
346 349 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
347 350 Prettified and hardened string/backslash quoting with ipsystem(),
348 351 ipalias() and ipmagic(). Now even \ characters are passed to
349 352 %magics, !shell escapes and aliases exactly as they are in the
350 353 ipython command line. Should improve backslash experience,
351 354 particularly in Windows (path delimiter for some commands that
352 355 won't understand '/'), but Unix benefits as well (regexps). %cd
353 356 magic still doesn't support backslash path delimiters, though. Also
354 357 deleted all pretense of supporting multiline command strings in
355 358 !system or %magic commands. Thanks to Jerry McRae for suggestions.
356 359
357 360 * doc/build_doc_instructions.txt added. Documentation on how to
358 361 use doc/update_manual.py, added yesterday. Both files contributed
359 362 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
360 363 doc/*.sh for deprecation at a later date.
361 364
362 365 * /ipython.py Added ipython.py to root directory for
363 366 zero-installation (tar xzvf ipython.tgz; cd ipython; python
364 367 ipython.py) and development convenience (no need to kee doing
365 368 "setup.py install" between changes).
366 369
367 370 * Made ! and !! shell escapes work (again) in multiline expressions:
368 371 if 1:
369 372 !ls
370 373 !!ls
371 374
372 375 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
373 376
374 377 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
375 378 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
376 379 module in case-insensitive installation. Was causing crashes
377 380 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
378 381
379 382 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
380 383 <marienz-AT-gentoo.org>, closes
381 384 http://www.scipy.net/roundup/ipython/issue51.
382 385
383 386 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
384 387
385 388 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
386 389 problem of excessive CPU usage under *nix and keyboard lag under
387 390 win32.
388 391
389 392 2006-01-10 *** Released version 0.7.0
390 393
391 394 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
392 395
393 396 * IPython/Release.py (revision): tag version number to 0.7.0,
394 397 ready for release.
395 398
396 399 * IPython/Magic.py (magic_edit): Add print statement to %edit so
397 400 it informs the user of the name of the temp. file used. This can
398 401 help if you decide later to reuse that same file, so you know
399 402 where to copy the info from.
400 403
401 404 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
402 405
403 406 * setup_bdist_egg.py: little script to build an egg. Added
404 407 support in the release tools as well.
405 408
406 409 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
407 410
408 411 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
409 412 version selection (new -wxversion command line and ipythonrc
410 413 parameter). Patch contributed by Arnd Baecker
411 414 <arnd.baecker-AT-web.de>.
412 415
413 416 * IPython/iplib.py (embed_mainloop): fix tab-completion in
414 417 embedded instances, for variables defined at the interactive
415 418 prompt of the embedded ipython. Reported by Arnd.
416 419
417 420 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
418 421 it can be used as a (stateful) toggle, or with a direct parameter.
419 422
420 423 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
421 424 could be triggered in certain cases and cause the traceback
422 425 printer not to work.
423 426
424 427 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
425 428
426 429 * IPython/iplib.py (_should_recompile): Small fix, closes
427 430 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
428 431
429 432 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
430 433
431 434 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
432 435 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
433 436 Moad for help with tracking it down.
434 437
435 438 * IPython/iplib.py (handle_auto): fix autocall handling for
436 439 objects which support BOTH __getitem__ and __call__ (so that f [x]
437 440 is left alone, instead of becoming f([x]) automatically).
438 441
439 442 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
440 443 Ville's patch.
441 444
442 445 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
443 446
444 447 * IPython/iplib.py (handle_auto): changed autocall semantics to
445 448 include 'smart' mode, where the autocall transformation is NOT
446 449 applied if there are no arguments on the line. This allows you to
447 450 just type 'foo' if foo is a callable to see its internal form,
448 451 instead of having it called with no arguments (typically a
449 452 mistake). The old 'full' autocall still exists: for that, you
450 453 need to set the 'autocall' parameter to 2 in your ipythonrc file.
451 454
452 455 * IPython/completer.py (Completer.attr_matches): add
453 456 tab-completion support for Enthoughts' traits. After a report by
454 457 Arnd and a patch by Prabhu.
455 458
456 459 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
457 460
458 461 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
459 462 Schmolck's patch to fix inspect.getinnerframes().
460 463
461 464 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
462 465 for embedded instances, regarding handling of namespaces and items
463 466 added to the __builtin__ one. Multiple embedded instances and
464 467 recursive embeddings should work better now (though I'm not sure
465 468 I've got all the corner cases fixed, that code is a bit of a brain
466 469 twister).
467 470
468 471 * IPython/Magic.py (magic_edit): added support to edit in-memory
469 472 macros (automatically creates the necessary temp files). %edit
470 473 also doesn't return the file contents anymore, it's just noise.
471 474
472 475 * IPython/completer.py (Completer.attr_matches): revert change to
473 476 complete only on attributes listed in __all__. I realized it
474 477 cripples the tab-completion system as a tool for exploring the
475 478 internals of unknown libraries (it renders any non-__all__
476 479 attribute off-limits). I got bit by this when trying to see
477 480 something inside the dis module.
478 481
479 482 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
480 483
481 484 * IPython/iplib.py (InteractiveShell.__init__): add .meta
482 485 namespace for users and extension writers to hold data in. This
483 486 follows the discussion in
484 487 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
485 488
486 489 * IPython/completer.py (IPCompleter.complete): small patch to help
487 490 tab-completion under Emacs, after a suggestion by John Barnard
488 491 <barnarj-AT-ccf.org>.
489 492
490 493 * IPython/Magic.py (Magic.extract_input_slices): added support for
491 494 the slice notation in magics to use N-M to represent numbers N...M
492 495 (closed endpoints). This is used by %macro and %save.
493 496
494 497 * IPython/completer.py (Completer.attr_matches): for modules which
495 498 define __all__, complete only on those. After a patch by Jeffrey
496 499 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
497 500 speed up this routine.
498 501
499 502 * IPython/Logger.py (Logger.log): fix a history handling bug. I
500 503 don't know if this is the end of it, but the behavior now is
501 504 certainly much more correct. Note that coupled with macros,
502 505 slightly surprising (at first) behavior may occur: a macro will in
503 506 general expand to multiple lines of input, so upon exiting, the
504 507 in/out counters will both be bumped by the corresponding amount
505 508 (as if the macro's contents had been typed interactively). Typing
506 509 %hist will reveal the intermediate (silently processed) lines.
507 510
508 511 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
509 512 pickle to fail (%run was overwriting __main__ and not restoring
510 513 it, but pickle relies on __main__ to operate).
511 514
512 515 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
513 516 using properties, but forgot to make the main InteractiveShell
514 517 class a new-style class. Properties fail silently, and
515 518 misteriously, with old-style class (getters work, but
516 519 setters don't do anything).
517 520
518 521 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
519 522
520 523 * IPython/Magic.py (magic_history): fix history reporting bug (I
521 524 know some nasties are still there, I just can't seem to find a
522 525 reproducible test case to track them down; the input history is
523 526 falling out of sync...)
524 527
525 528 * IPython/iplib.py (handle_shell_escape): fix bug where both
526 529 aliases and system accesses where broken for indented code (such
527 530 as loops).
528 531
529 532 * IPython/genutils.py (shell): fix small but critical bug for
530 533 win32 system access.
531 534
532 535 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
533 536
534 537 * IPython/iplib.py (showtraceback): remove use of the
535 538 sys.last_{type/value/traceback} structures, which are non
536 539 thread-safe.
537 540 (_prefilter): change control flow to ensure that we NEVER
538 541 introspect objects when autocall is off. This will guarantee that
539 542 having an input line of the form 'x.y', where access to attribute
540 543 'y' has side effects, doesn't trigger the side effect TWICE. It
541 544 is important to note that, with autocall on, these side effects
542 545 can still happen.
543 546 (ipsystem): new builtin, to complete the ip{magic/alias/system}
544 547 trio. IPython offers these three kinds of special calls which are
545 548 not python code, and it's a good thing to have their call method
546 549 be accessible as pure python functions (not just special syntax at
547 550 the command line). It gives us a better internal implementation
548 551 structure, as well as exposing these for user scripting more
549 552 cleanly.
550 553
551 554 * IPython/macro.py (Macro.__init__): moved macros to a standalone
552 555 file. Now that they'll be more likely to be used with the
553 556 persistance system (%store), I want to make sure their module path
554 557 doesn't change in the future, so that we don't break things for
555 558 users' persisted data.
556 559
557 560 * IPython/iplib.py (autoindent_update): move indentation
558 561 management into the _text_ processing loop, not the keyboard
559 562 interactive one. This is necessary to correctly process non-typed
560 563 multiline input (such as macros).
561 564
562 565 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
563 566 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
564 567 which was producing problems in the resulting manual.
565 568 (magic_whos): improve reporting of instances (show their class,
566 569 instead of simply printing 'instance' which isn't terribly
567 570 informative).
568 571
569 572 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
570 573 (minor mods) to support network shares under win32.
571 574
572 575 * IPython/winconsole.py (get_console_size): add new winconsole
573 576 module and fixes to page_dumb() to improve its behavior under
574 577 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
575 578
576 579 * IPython/Magic.py (Macro): simplified Macro class to just
577 580 subclass list. We've had only 2.2 compatibility for a very long
578 581 time, yet I was still avoiding subclassing the builtin types. No
579 582 more (I'm also starting to use properties, though I won't shift to
580 583 2.3-specific features quite yet).
581 584 (magic_store): added Ville's patch for lightweight variable
582 585 persistence, after a request on the user list by Matt Wilkie
583 586 <maphew-AT-gmail.com>. The new %store magic's docstring has full
584 587 details.
585 588
586 589 * IPython/iplib.py (InteractiveShell.post_config_initialization):
587 590 changed the default logfile name from 'ipython.log' to
588 591 'ipython_log.py'. These logs are real python files, and now that
589 592 we have much better multiline support, people are more likely to
590 593 want to use them as such. Might as well name them correctly.
591 594
592 595 * IPython/Magic.py: substantial cleanup. While we can't stop
593 596 using magics as mixins, due to the existing customizations 'out
594 597 there' which rely on the mixin naming conventions, at least I
595 598 cleaned out all cross-class name usage. So once we are OK with
596 599 breaking compatibility, the two systems can be separated.
597 600
598 601 * IPython/Logger.py: major cleanup. This one is NOT a mixin
599 602 anymore, and the class is a fair bit less hideous as well. New
600 603 features were also introduced: timestamping of input, and logging
601 604 of output results. These are user-visible with the -t and -o
602 605 options to %logstart. Closes
603 606 http://www.scipy.net/roundup/ipython/issue11 and a request by
604 607 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
605 608
606 609 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
607 610
608 611 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
609 612 better hadnle backslashes in paths. See the thread 'More Windows
610 613 questions part 2 - \/ characters revisited' on the iypthon user
611 614 list:
612 615 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
613 616
614 617 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
615 618
616 619 (InteractiveShell.__init__): change threaded shells to not use the
617 620 ipython crash handler. This was causing more problems than not,
618 621 as exceptions in the main thread (GUI code, typically) would
619 622 always show up as a 'crash', when they really weren't.
620 623
621 624 The colors and exception mode commands (%colors/%xmode) have been
622 625 synchronized to also take this into account, so users can get
623 626 verbose exceptions for their threaded code as well. I also added
624 627 support for activating pdb inside this exception handler as well,
625 628 so now GUI authors can use IPython's enhanced pdb at runtime.
626 629
627 630 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
628 631 true by default, and add it to the shipped ipythonrc file. Since
629 632 this asks the user before proceeding, I think it's OK to make it
630 633 true by default.
631 634
632 635 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
633 636 of the previous special-casing of input in the eval loop. I think
634 637 this is cleaner, as they really are commands and shouldn't have
635 638 a special role in the middle of the core code.
636 639
637 640 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
638 641
639 642 * IPython/iplib.py (edit_syntax_error): added support for
640 643 automatically reopening the editor if the file had a syntax error
641 644 in it. Thanks to scottt who provided the patch at:
642 645 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
643 646 version committed).
644 647
645 648 * IPython/iplib.py (handle_normal): add suport for multi-line
646 649 input with emtpy lines. This fixes
647 650 http://www.scipy.net/roundup/ipython/issue43 and a similar
648 651 discussion on the user list.
649 652
650 653 WARNING: a behavior change is necessarily introduced to support
651 654 blank lines: now a single blank line with whitespace does NOT
652 655 break the input loop, which means that when autoindent is on, by
653 656 default hitting return on the next (indented) line does NOT exit.
654 657
655 658 Instead, to exit a multiline input you can either have:
656 659
657 660 - TWO whitespace lines (just hit return again), or
658 661 - a single whitespace line of a different length than provided
659 662 by the autoindent (add or remove a space).
660 663
661 664 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
662 665 module to better organize all readline-related functionality.
663 666 I've deleted FlexCompleter and put all completion clases here.
664 667
665 668 * IPython/iplib.py (raw_input): improve indentation management.
666 669 It is now possible to paste indented code with autoindent on, and
667 670 the code is interpreted correctly (though it still looks bad on
668 671 screen, due to the line-oriented nature of ipython).
669 672 (MagicCompleter.complete): change behavior so that a TAB key on an
670 673 otherwise empty line actually inserts a tab, instead of completing
671 674 on the entire global namespace. This makes it easier to use the
672 675 TAB key for indentation. After a request by Hans Meine
673 676 <hans_meine-AT-gmx.net>
674 677 (_prefilter): add support so that typing plain 'exit' or 'quit'
675 678 does a sensible thing. Originally I tried to deviate as little as
676 679 possible from the default python behavior, but even that one may
677 680 change in this direction (thread on python-dev to that effect).
678 681 Regardless, ipython should do the right thing even if CPython's
679 682 '>>>' prompt doesn't.
680 683 (InteractiveShell): removed subclassing code.InteractiveConsole
681 684 class. By now we'd overridden just about all of its methods: I've
682 685 copied the remaining two over, and now ipython is a standalone
683 686 class. This will provide a clearer picture for the chainsaw
684 687 branch refactoring.
685 688
686 689 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
687 690
688 691 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
689 692 failures for objects which break when dir() is called on them.
690 693
691 694 * IPython/FlexCompleter.py (Completer.__init__): Added support for
692 695 distinct local and global namespaces in the completer API. This
693 696 change allows us top properly handle completion with distinct
694 697 scopes, including in embedded instances (this had never really
695 698 worked correctly).
696 699
697 700 Note: this introduces a change in the constructor for
698 701 MagicCompleter, as a new global_namespace parameter is now the
699 702 second argument (the others were bumped one position).
700 703
701 704 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
702 705
703 706 * IPython/iplib.py (embed_mainloop): fix tab-completion in
704 707 embedded instances (which can be done now thanks to Vivian's
705 708 frame-handling fixes for pdb).
706 709 (InteractiveShell.__init__): Fix namespace handling problem in
707 710 embedded instances. We were overwriting __main__ unconditionally,
708 711 and this should only be done for 'full' (non-embedded) IPython;
709 712 embedded instances must respect the caller's __main__. Thanks to
710 713 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
711 714
712 715 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
713 716
714 717 * setup.py: added download_url to setup(). This registers the
715 718 download address at PyPI, which is not only useful to humans
716 719 browsing the site, but is also picked up by setuptools (the Eggs
717 720 machinery). Thanks to Ville and R. Kern for the info/discussion
718 721 on this.
719 722
720 723 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
721 724
722 725 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
723 726 This brings a lot of nice functionality to the pdb mode, which now
724 727 has tab-completion, syntax highlighting, and better stack handling
725 728 than before. Many thanks to Vivian De Smedt
726 729 <vivian-AT-vdesmedt.com> for the original patches.
727 730
728 731 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
729 732
730 733 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
731 734 sequence to consistently accept the banner argument. The
732 735 inconsistency was tripping SAGE, thanks to Gary Zablackis
733 736 <gzabl-AT-yahoo.com> for the report.
734 737
735 738 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
736 739
737 740 * IPython/iplib.py (InteractiveShell.post_config_initialization):
738 741 Fix bug where a naked 'alias' call in the ipythonrc file would
739 742 cause a crash. Bug reported by Jorgen Stenarson.
740 743
741 744 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
742 745
743 746 * IPython/ipmaker.py (make_IPython): cleanups which should improve
744 747 startup time.
745 748
746 749 * IPython/iplib.py (runcode): my globals 'fix' for embedded
747 750 instances had introduced a bug with globals in normal code. Now
748 751 it's working in all cases.
749 752
750 753 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
751 754 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
752 755 has been introduced to set the default case sensitivity of the
753 756 searches. Users can still select either mode at runtime on a
754 757 per-search basis.
755 758
756 759 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
757 760
758 761 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
759 762 attributes in wildcard searches for subclasses. Modified version
760 763 of a patch by Jorgen.
761 764
762 765 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
763 766
764 767 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
765 768 embedded instances. I added a user_global_ns attribute to the
766 769 InteractiveShell class to handle this.
767 770
768 771 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
769 772
770 773 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
771 774 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
772 775 (reported under win32, but may happen also in other platforms).
773 776 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
774 777
775 778 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
776 779
777 780 * IPython/Magic.py (magic_psearch): new support for wildcard
778 781 patterns. Now, typing ?a*b will list all names which begin with a
779 782 and end in b, for example. The %psearch magic has full
780 783 docstrings. Many thanks to JΓΆrgen Stenarson
781 784 <jorgen.stenarson-AT-bostream.nu>, author of the patches
782 785 implementing this functionality.
783 786
784 787 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
785 788
786 789 * Manual: fixed long-standing annoyance of double-dashes (as in
787 790 --prefix=~, for example) being stripped in the HTML version. This
788 791 is a latex2html bug, but a workaround was provided. Many thanks
789 792 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
790 793 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
791 794 rolling. This seemingly small issue had tripped a number of users
792 795 when first installing, so I'm glad to see it gone.
793 796
794 797 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
795 798
796 799 * IPython/Extensions/numeric_formats.py: fix missing import,
797 800 reported by Stephen Walton.
798 801
799 802 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
800 803
801 804 * IPython/demo.py: finish demo module, fully documented now.
802 805
803 806 * IPython/genutils.py (file_read): simple little utility to read a
804 807 file and ensure it's closed afterwards.
805 808
806 809 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
807 810
808 811 * IPython/demo.py (Demo.__init__): added support for individually
809 812 tagging blocks for automatic execution.
810 813
811 814 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
812 815 syntax-highlighted python sources, requested by John.
813 816
814 817 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
815 818
816 819 * IPython/demo.py (Demo.again): fix bug where again() blocks after
817 820 finishing.
818 821
819 822 * IPython/genutils.py (shlex_split): moved from Magic to here,
820 823 where all 2.2 compatibility stuff lives. I needed it for demo.py.
821 824
822 825 * IPython/demo.py (Demo.__init__): added support for silent
823 826 blocks, improved marks as regexps, docstrings written.
824 827 (Demo.__init__): better docstring, added support for sys.argv.
825 828
826 829 * IPython/genutils.py (marquee): little utility used by the demo
827 830 code, handy in general.
828 831
829 832 * IPython/demo.py (Demo.__init__): new class for interactive
830 833 demos. Not documented yet, I just wrote it in a hurry for
831 834 scipy'05. Will docstring later.
832 835
833 836 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
834 837
835 838 * IPython/Shell.py (sigint_handler): Drastic simplification which
836 839 also seems to make Ctrl-C work correctly across threads! This is
837 840 so simple, that I can't beleive I'd missed it before. Needs more
838 841 testing, though.
839 842 (KBINT): Never mind, revert changes. I'm sure I'd tried something
840 843 like this before...
841 844
842 845 * IPython/genutils.py (get_home_dir): add protection against
843 846 non-dirs in win32 registry.
844 847
845 848 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
846 849 bug where dict was mutated while iterating (pysh crash).
847 850
848 851 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
849 852
850 853 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
851 854 spurious newlines added by this routine. After a report by
852 855 F. Mantegazza.
853 856
854 857 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
855 858
856 859 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
857 860 calls. These were a leftover from the GTK 1.x days, and can cause
858 861 problems in certain cases (after a report by John Hunter).
859 862
860 863 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
861 864 os.getcwd() fails at init time. Thanks to patch from David Remahl
862 865 <chmod007-AT-mac.com>.
863 866 (InteractiveShell.__init__): prevent certain special magics from
864 867 being shadowed by aliases. Closes
865 868 http://www.scipy.net/roundup/ipython/issue41.
866 869
867 870 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
868 871
869 872 * IPython/iplib.py (InteractiveShell.complete): Added new
870 873 top-level completion method to expose the completion mechanism
871 874 beyond readline-based environments.
872 875
873 876 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
874 877
875 878 * tools/ipsvnc (svnversion): fix svnversion capture.
876 879
877 880 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
878 881 attribute to self, which was missing. Before, it was set by a
879 882 routine which in certain cases wasn't being called, so the
880 883 instance could end up missing the attribute. This caused a crash.
881 884 Closes http://www.scipy.net/roundup/ipython/issue40.
882 885
883 886 2005-08-16 Fernando Perez <fperez@colorado.edu>
884 887
885 888 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
886 889 contains non-string attribute. Closes
887 890 http://www.scipy.net/roundup/ipython/issue38.
888 891
889 892 2005-08-14 Fernando Perez <fperez@colorado.edu>
890 893
891 894 * tools/ipsvnc: Minor improvements, to add changeset info.
892 895
893 896 2005-08-12 Fernando Perez <fperez@colorado.edu>
894 897
895 898 * IPython/iplib.py (runsource): remove self.code_to_run_src
896 899 attribute. I realized this is nothing more than
897 900 '\n'.join(self.buffer), and having the same data in two different
898 901 places is just asking for synchronization bugs. This may impact
899 902 people who have custom exception handlers, so I need to warn
900 903 ipython-dev about it (F. Mantegazza may use them).
901 904
902 905 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
903 906
904 907 * IPython/genutils.py: fix 2.2 compatibility (generators)
905 908
906 909 2005-07-18 Fernando Perez <fperez@colorado.edu>
907 910
908 911 * IPython/genutils.py (get_home_dir): fix to help users with
909 912 invalid $HOME under win32.
910 913
911 914 2005-07-17 Fernando Perez <fperez@colorado.edu>
912 915
913 916 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
914 917 some old hacks and clean up a bit other routines; code should be
915 918 simpler and a bit faster.
916 919
917 920 * IPython/iplib.py (interact): removed some last-resort attempts
918 921 to survive broken stdout/stderr. That code was only making it
919 922 harder to abstract out the i/o (necessary for gui integration),
920 923 and the crashes it could prevent were extremely rare in practice
921 924 (besides being fully user-induced in a pretty violent manner).
922 925
923 926 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
924 927 Nothing major yet, but the code is simpler to read; this should
925 928 make it easier to do more serious modifications in the future.
926 929
927 930 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
928 931 which broke in .15 (thanks to a report by Ville).
929 932
930 933 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
931 934 be quite correct, I know next to nothing about unicode). This
932 935 will allow unicode strings to be used in prompts, amongst other
933 936 cases. It also will prevent ipython from crashing when unicode
934 937 shows up unexpectedly in many places. If ascii encoding fails, we
935 938 assume utf_8. Currently the encoding is not a user-visible
936 939 setting, though it could be made so if there is demand for it.
937 940
938 941 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
939 942
940 943 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
941 944
942 945 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
943 946
944 947 * IPython/genutils.py: Add 2.2 compatibility here, so all other
945 948 code can work transparently for 2.2/2.3.
946 949
947 950 2005-07-16 Fernando Perez <fperez@colorado.edu>
948 951
949 952 * IPython/ultraTB.py (ExceptionColors): Make a global variable
950 953 out of the color scheme table used for coloring exception
951 954 tracebacks. This allows user code to add new schemes at runtime.
952 955 This is a minimally modified version of the patch at
953 956 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
954 957 for the contribution.
955 958
956 959 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
957 960 slightly modified version of the patch in
958 961 http://www.scipy.net/roundup/ipython/issue34, which also allows me
959 962 to remove the previous try/except solution (which was costlier).
960 963 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
961 964
962 965 2005-06-08 Fernando Perez <fperez@colorado.edu>
963 966
964 967 * IPython/iplib.py (write/write_err): Add methods to abstract all
965 968 I/O a bit more.
966 969
967 970 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
968 971 warning, reported by Aric Hagberg, fix by JD Hunter.
969 972
970 973 2005-06-02 *** Released version 0.6.15
971 974
972 975 2005-06-01 Fernando Perez <fperez@colorado.edu>
973 976
974 977 * IPython/iplib.py (MagicCompleter.file_matches): Fix
975 978 tab-completion of filenames within open-quoted strings. Note that
976 979 this requires that in ~/.ipython/ipythonrc, users change the
977 980 readline delimiters configuration to read:
978 981
979 982 readline_remove_delims -/~
980 983
981 984
982 985 2005-05-31 *** Released version 0.6.14
983 986
984 987 2005-05-29 Fernando Perez <fperez@colorado.edu>
985 988
986 989 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
987 990 with files not on the filesystem. Reported by Eliyahu Sandler
988 991 <eli@gondolin.net>
989 992
990 993 2005-05-22 Fernando Perez <fperez@colorado.edu>
991 994
992 995 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
993 996 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
994 997
995 998 2005-05-19 Fernando Perez <fperez@colorado.edu>
996 999
997 1000 * IPython/iplib.py (safe_execfile): close a file which could be
998 1001 left open (causing problems in win32, which locks open files).
999 1002 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1000 1003
1001 1004 2005-05-18 Fernando Perez <fperez@colorado.edu>
1002 1005
1003 1006 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1004 1007 keyword arguments correctly to safe_execfile().
1005 1008
1006 1009 2005-05-13 Fernando Perez <fperez@colorado.edu>
1007 1010
1008 1011 * ipython.1: Added info about Qt to manpage, and threads warning
1009 1012 to usage page (invoked with --help).
1010 1013
1011 1014 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1012 1015 new matcher (it goes at the end of the priority list) to do
1013 1016 tab-completion on named function arguments. Submitted by George
1014 1017 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1015 1018 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1016 1019 for more details.
1017 1020
1018 1021 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1019 1022 SystemExit exceptions in the script being run. Thanks to a report
1020 1023 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1021 1024 producing very annoying behavior when running unit tests.
1022 1025
1023 1026 2005-05-12 Fernando Perez <fperez@colorado.edu>
1024 1027
1025 1028 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1026 1029 which I'd broken (again) due to a changed regexp. In the process,
1027 1030 added ';' as an escape to auto-quote the whole line without
1028 1031 splitting its arguments. Thanks to a report by Jerry McRae
1029 1032 <qrs0xyc02-AT-sneakemail.com>.
1030 1033
1031 1034 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1032 1035 possible crashes caused by a TokenError. Reported by Ed Schofield
1033 1036 <schofield-AT-ftw.at>.
1034 1037
1035 1038 2005-05-06 Fernando Perez <fperez@colorado.edu>
1036 1039
1037 1040 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1038 1041
1039 1042 2005-04-29 Fernando Perez <fperez@colorado.edu>
1040 1043
1041 1044 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1042 1045 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1043 1046 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1044 1047 which provides support for Qt interactive usage (similar to the
1045 1048 existing one for WX and GTK). This had been often requested.
1046 1049
1047 1050 2005-04-14 *** Released version 0.6.13
1048 1051
1049 1052 2005-04-08 Fernando Perez <fperez@colorado.edu>
1050 1053
1051 1054 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1052 1055 from _ofind, which gets called on almost every input line. Now,
1053 1056 we only try to get docstrings if they are actually going to be
1054 1057 used (the overhead of fetching unnecessary docstrings can be
1055 1058 noticeable for certain objects, such as Pyro proxies).
1056 1059
1057 1060 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1058 1061 for completers. For some reason I had been passing them the state
1059 1062 variable, which completers never actually need, and was in
1060 1063 conflict with the rlcompleter API. Custom completers ONLY need to
1061 1064 take the text parameter.
1062 1065
1063 1066 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1064 1067 work correctly in pysh. I've also moved all the logic which used
1065 1068 to be in pysh.py here, which will prevent problems with future
1066 1069 upgrades. However, this time I must warn users to update their
1067 1070 pysh profile to include the line
1068 1071
1069 1072 import_all IPython.Extensions.InterpreterExec
1070 1073
1071 1074 because otherwise things won't work for them. They MUST also
1072 1075 delete pysh.py and the line
1073 1076
1074 1077 execfile pysh.py
1075 1078
1076 1079 from their ipythonrc-pysh.
1077 1080
1078 1081 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1079 1082 robust in the face of objects whose dir() returns non-strings
1080 1083 (which it shouldn't, but some broken libs like ITK do). Thanks to
1081 1084 a patch by John Hunter (implemented differently, though). Also
1082 1085 minor improvements by using .extend instead of + on lists.
1083 1086
1084 1087 * pysh.py:
1085 1088
1086 1089 2005-04-06 Fernando Perez <fperez@colorado.edu>
1087 1090
1088 1091 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1089 1092 by default, so that all users benefit from it. Those who don't
1090 1093 want it can still turn it off.
1091 1094
1092 1095 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1093 1096 config file, I'd forgotten about this, so users were getting it
1094 1097 off by default.
1095 1098
1096 1099 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1097 1100 consistency. Now magics can be called in multiline statements,
1098 1101 and python variables can be expanded in magic calls via $var.
1099 1102 This makes the magic system behave just like aliases or !system
1100 1103 calls.
1101 1104
1102 1105 2005-03-28 Fernando Perez <fperez@colorado.edu>
1103 1106
1104 1107 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1105 1108 expensive string additions for building command. Add support for
1106 1109 trailing ';' when autocall is used.
1107 1110
1108 1111 2005-03-26 Fernando Perez <fperez@colorado.edu>
1109 1112
1110 1113 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1111 1114 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1112 1115 ipython.el robust against prompts with any number of spaces
1113 1116 (including 0) after the ':' character.
1114 1117
1115 1118 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1116 1119 continuation prompt, which misled users to think the line was
1117 1120 already indented. Closes debian Bug#300847, reported to me by
1118 1121 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1119 1122
1120 1123 2005-03-23 Fernando Perez <fperez@colorado.edu>
1121 1124
1122 1125 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1123 1126 properly aligned if they have embedded newlines.
1124 1127
1125 1128 * IPython/iplib.py (runlines): Add a public method to expose
1126 1129 IPython's code execution machinery, so that users can run strings
1127 1130 as if they had been typed at the prompt interactively.
1128 1131 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1129 1132 methods which can call the system shell, but with python variable
1130 1133 expansion. The three such methods are: __IPYTHON__.system,
1131 1134 .getoutput and .getoutputerror. These need to be documented in a
1132 1135 'public API' section (to be written) of the manual.
1133 1136
1134 1137 2005-03-20 Fernando Perez <fperez@colorado.edu>
1135 1138
1136 1139 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1137 1140 for custom exception handling. This is quite powerful, and it
1138 1141 allows for user-installable exception handlers which can trap
1139 1142 custom exceptions at runtime and treat them separately from
1140 1143 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1141 1144 Mantegazza <mantegazza-AT-ill.fr>.
1142 1145 (InteractiveShell.set_custom_completer): public API function to
1143 1146 add new completers at runtime.
1144 1147
1145 1148 2005-03-19 Fernando Perez <fperez@colorado.edu>
1146 1149
1147 1150 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1148 1151 allow objects which provide their docstrings via non-standard
1149 1152 mechanisms (like Pyro proxies) to still be inspected by ipython's
1150 1153 ? system.
1151 1154
1152 1155 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1153 1156 automatic capture system. I tried quite hard to make it work
1154 1157 reliably, and simply failed. I tried many combinations with the
1155 1158 subprocess module, but eventually nothing worked in all needed
1156 1159 cases (not blocking stdin for the child, duplicating stdout
1157 1160 without blocking, etc). The new %sc/%sx still do capture to these
1158 1161 magical list/string objects which make shell use much more
1159 1162 conveninent, so not all is lost.
1160 1163
1161 1164 XXX - FIX MANUAL for the change above!
1162 1165
1163 1166 (runsource): I copied code.py's runsource() into ipython to modify
1164 1167 it a bit. Now the code object and source to be executed are
1165 1168 stored in ipython. This makes this info accessible to third-party
1166 1169 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1167 1170 Mantegazza <mantegazza-AT-ill.fr>.
1168 1171
1169 1172 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1170 1173 history-search via readline (like C-p/C-n). I'd wanted this for a
1171 1174 long time, but only recently found out how to do it. For users
1172 1175 who already have their ipythonrc files made and want this, just
1173 1176 add:
1174 1177
1175 1178 readline_parse_and_bind "\e[A": history-search-backward
1176 1179 readline_parse_and_bind "\e[B": history-search-forward
1177 1180
1178 1181 2005-03-18 Fernando Perez <fperez@colorado.edu>
1179 1182
1180 1183 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1181 1184 LSString and SList classes which allow transparent conversions
1182 1185 between list mode and whitespace-separated string.
1183 1186 (magic_r): Fix recursion problem in %r.
1184 1187
1185 1188 * IPython/genutils.py (LSString): New class to be used for
1186 1189 automatic storage of the results of all alias/system calls in _o
1187 1190 and _e (stdout/err). These provide a .l/.list attribute which
1188 1191 does automatic splitting on newlines. This means that for most
1189 1192 uses, you'll never need to do capturing of output with %sc/%sx
1190 1193 anymore, since ipython keeps this always done for you. Note that
1191 1194 only the LAST results are stored, the _o/e variables are
1192 1195 overwritten on each call. If you need to save their contents
1193 1196 further, simply bind them to any other name.
1194 1197
1195 1198 2005-03-17 Fernando Perez <fperez@colorado.edu>
1196 1199
1197 1200 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1198 1201 prompt namespace handling.
1199 1202
1200 1203 2005-03-16 Fernando Perez <fperez@colorado.edu>
1201 1204
1202 1205 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1203 1206 classic prompts to be '>>> ' (final space was missing, and it
1204 1207 trips the emacs python mode).
1205 1208 (BasePrompt.__str__): Added safe support for dynamic prompt
1206 1209 strings. Now you can set your prompt string to be '$x', and the
1207 1210 value of x will be printed from your interactive namespace. The
1208 1211 interpolation syntax includes the full Itpl support, so
1209 1212 ${foo()+x+bar()} is a valid prompt string now, and the function
1210 1213 calls will be made at runtime.
1211 1214
1212 1215 2005-03-15 Fernando Perez <fperez@colorado.edu>
1213 1216
1214 1217 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1215 1218 avoid name clashes in pylab. %hist still works, it just forwards
1216 1219 the call to %history.
1217 1220
1218 1221 2005-03-02 *** Released version 0.6.12
1219 1222
1220 1223 2005-03-02 Fernando Perez <fperez@colorado.edu>
1221 1224
1222 1225 * IPython/iplib.py (handle_magic): log magic calls properly as
1223 1226 ipmagic() function calls.
1224 1227
1225 1228 * IPython/Magic.py (magic_time): Improved %time to support
1226 1229 statements and provide wall-clock as well as CPU time.
1227 1230
1228 1231 2005-02-27 Fernando Perez <fperez@colorado.edu>
1229 1232
1230 1233 * IPython/hooks.py: New hooks module, to expose user-modifiable
1231 1234 IPython functionality in a clean manner. For now only the editor
1232 1235 hook is actually written, and other thigns which I intend to turn
1233 1236 into proper hooks aren't yet there. The display and prefilter
1234 1237 stuff, for example, should be hooks. But at least now the
1235 1238 framework is in place, and the rest can be moved here with more
1236 1239 time later. IPython had had a .hooks variable for a long time for
1237 1240 this purpose, but I'd never actually used it for anything.
1238 1241
1239 1242 2005-02-26 Fernando Perez <fperez@colorado.edu>
1240 1243
1241 1244 * IPython/ipmaker.py (make_IPython): make the default ipython
1242 1245 directory be called _ipython under win32, to follow more the
1243 1246 naming peculiarities of that platform (where buggy software like
1244 1247 Visual Sourcesafe breaks with .named directories). Reported by
1245 1248 Ville Vainio.
1246 1249
1247 1250 2005-02-23 Fernando Perez <fperez@colorado.edu>
1248 1251
1249 1252 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1250 1253 auto_aliases for win32 which were causing problems. Users can
1251 1254 define the ones they personally like.
1252 1255
1253 1256 2005-02-21 Fernando Perez <fperez@colorado.edu>
1254 1257
1255 1258 * IPython/Magic.py (magic_time): new magic to time execution of
1256 1259 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1257 1260
1258 1261 2005-02-19 Fernando Perez <fperez@colorado.edu>
1259 1262
1260 1263 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1261 1264 into keys (for prompts, for example).
1262 1265
1263 1266 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1264 1267 prompts in case users want them. This introduces a small behavior
1265 1268 change: ipython does not automatically add a space to all prompts
1266 1269 anymore. To get the old prompts with a space, users should add it
1267 1270 manually to their ipythonrc file, so for example prompt_in1 should
1268 1271 now read 'In [\#]: ' instead of 'In [\#]:'.
1269 1272 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1270 1273 file) to control left-padding of secondary prompts.
1271 1274
1272 1275 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1273 1276 the profiler can't be imported. Fix for Debian, which removed
1274 1277 profile.py because of License issues. I applied a slightly
1275 1278 modified version of the original Debian patch at
1276 1279 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1277 1280
1278 1281 2005-02-17 Fernando Perez <fperez@colorado.edu>
1279 1282
1280 1283 * IPython/genutils.py (native_line_ends): Fix bug which would
1281 1284 cause improper line-ends under win32 b/c I was not opening files
1282 1285 in binary mode. Bug report and fix thanks to Ville.
1283 1286
1284 1287 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1285 1288 trying to catch spurious foo[1] autocalls. My fix actually broke
1286 1289 ',/' autoquote/call with explicit escape (bad regexp).
1287 1290
1288 1291 2005-02-15 *** Released version 0.6.11
1289 1292
1290 1293 2005-02-14 Fernando Perez <fperez@colorado.edu>
1291 1294
1292 1295 * IPython/background_jobs.py: New background job management
1293 1296 subsystem. This is implemented via a new set of classes, and
1294 1297 IPython now provides a builtin 'jobs' object for background job
1295 1298 execution. A convenience %bg magic serves as a lightweight
1296 1299 frontend for starting the more common type of calls. This was
1297 1300 inspired by discussions with B. Granger and the BackgroundCommand
1298 1301 class described in the book Python Scripting for Computational
1299 1302 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1300 1303 (although ultimately no code from this text was used, as IPython's
1301 1304 system is a separate implementation).
1302 1305
1303 1306 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1304 1307 to control the completion of single/double underscore names
1305 1308 separately. As documented in the example ipytonrc file, the
1306 1309 readline_omit__names variable can now be set to 2, to omit even
1307 1310 single underscore names. Thanks to a patch by Brian Wong
1308 1311 <BrianWong-AT-AirgoNetworks.Com>.
1309 1312 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1310 1313 be autocalled as foo([1]) if foo were callable. A problem for
1311 1314 things which are both callable and implement __getitem__.
1312 1315 (init_readline): Fix autoindentation for win32. Thanks to a patch
1313 1316 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1314 1317
1315 1318 2005-02-12 Fernando Perez <fperez@colorado.edu>
1316 1319
1317 1320 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1318 1321 which I had written long ago to sort out user error messages which
1319 1322 may occur during startup. This seemed like a good idea initially,
1320 1323 but it has proven a disaster in retrospect. I don't want to
1321 1324 change much code for now, so my fix is to set the internal 'debug'
1322 1325 flag to true everywhere, whose only job was precisely to control
1323 1326 this subsystem. This closes issue 28 (as well as avoiding all
1324 1327 sorts of strange hangups which occur from time to time).
1325 1328
1326 1329 2005-02-07 Fernando Perez <fperez@colorado.edu>
1327 1330
1328 1331 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1329 1332 previous call produced a syntax error.
1330 1333
1331 1334 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1332 1335 classes without constructor.
1333 1336
1334 1337 2005-02-06 Fernando Perez <fperez@colorado.edu>
1335 1338
1336 1339 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1337 1340 completions with the results of each matcher, so we return results
1338 1341 to the user from all namespaces. This breaks with ipython
1339 1342 tradition, but I think it's a nicer behavior. Now you get all
1340 1343 possible completions listed, from all possible namespaces (python,
1341 1344 filesystem, magics...) After a request by John Hunter
1342 1345 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1343 1346
1344 1347 2005-02-05 Fernando Perez <fperez@colorado.edu>
1345 1348
1346 1349 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1347 1350 the call had quote characters in it (the quotes were stripped).
1348 1351
1349 1352 2005-01-31 Fernando Perez <fperez@colorado.edu>
1350 1353
1351 1354 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1352 1355 Itpl.itpl() to make the code more robust against psyco
1353 1356 optimizations.
1354 1357
1355 1358 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1356 1359 of causing an exception. Quicker, cleaner.
1357 1360
1358 1361 2005-01-28 Fernando Perez <fperez@colorado.edu>
1359 1362
1360 1363 * scripts/ipython_win_post_install.py (install): hardcode
1361 1364 sys.prefix+'python.exe' as the executable path. It turns out that
1362 1365 during the post-installation run, sys.executable resolves to the
1363 1366 name of the binary installer! I should report this as a distutils
1364 1367 bug, I think. I updated the .10 release with this tiny fix, to
1365 1368 avoid annoying the lists further.
1366 1369
1367 1370 2005-01-27 *** Released version 0.6.10
1368 1371
1369 1372 2005-01-27 Fernando Perez <fperez@colorado.edu>
1370 1373
1371 1374 * IPython/numutils.py (norm): Added 'inf' as optional name for
1372 1375 L-infinity norm, included references to mathworld.com for vector
1373 1376 norm definitions.
1374 1377 (amin/amax): added amin/amax for array min/max. Similar to what
1375 1378 pylab ships with after the recent reorganization of names.
1376 1379 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1377 1380
1378 1381 * ipython.el: committed Alex's recent fixes and improvements.
1379 1382 Tested with python-mode from CVS, and it looks excellent. Since
1380 1383 python-mode hasn't released anything in a while, I'm temporarily
1381 1384 putting a copy of today's CVS (v 4.70) of python-mode in:
1382 1385 http://ipython.scipy.org/tmp/python-mode.el
1383 1386
1384 1387 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1385 1388 sys.executable for the executable name, instead of assuming it's
1386 1389 called 'python.exe' (the post-installer would have produced broken
1387 1390 setups on systems with a differently named python binary).
1388 1391
1389 1392 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1390 1393 references to os.linesep, to make the code more
1391 1394 platform-independent. This is also part of the win32 coloring
1392 1395 fixes.
1393 1396
1394 1397 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1395 1398 lines, which actually cause coloring bugs because the length of
1396 1399 the line is very difficult to correctly compute with embedded
1397 1400 escapes. This was the source of all the coloring problems under
1398 1401 Win32. I think that _finally_, Win32 users have a properly
1399 1402 working ipython in all respects. This would never have happened
1400 1403 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1401 1404
1402 1405 2005-01-26 *** Released version 0.6.9
1403 1406
1404 1407 2005-01-25 Fernando Perez <fperez@colorado.edu>
1405 1408
1406 1409 * setup.py: finally, we have a true Windows installer, thanks to
1407 1410 the excellent work of Viktor Ransmayr
1408 1411 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1409 1412 Windows users. The setup routine is quite a bit cleaner thanks to
1410 1413 this, and the post-install script uses the proper functions to
1411 1414 allow a clean de-installation using the standard Windows Control
1412 1415 Panel.
1413 1416
1414 1417 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1415 1418 environment variable under all OSes (including win32) if
1416 1419 available. This will give consistency to win32 users who have set
1417 1420 this variable for any reason. If os.environ['HOME'] fails, the
1418 1421 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1419 1422
1420 1423 2005-01-24 Fernando Perez <fperez@colorado.edu>
1421 1424
1422 1425 * IPython/numutils.py (empty_like): add empty_like(), similar to
1423 1426 zeros_like() but taking advantage of the new empty() Numeric routine.
1424 1427
1425 1428 2005-01-23 *** Released version 0.6.8
1426 1429
1427 1430 2005-01-22 Fernando Perez <fperez@colorado.edu>
1428 1431
1429 1432 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1430 1433 automatic show() calls. After discussing things with JDH, it
1431 1434 turns out there are too many corner cases where this can go wrong.
1432 1435 It's best not to try to be 'too smart', and simply have ipython
1433 1436 reproduce as much as possible the default behavior of a normal
1434 1437 python shell.
1435 1438
1436 1439 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1437 1440 line-splitting regexp and _prefilter() to avoid calling getattr()
1438 1441 on assignments. This closes
1439 1442 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1440 1443 readline uses getattr(), so a simple <TAB> keypress is still
1441 1444 enough to trigger getattr() calls on an object.
1442 1445
1443 1446 2005-01-21 Fernando Perez <fperez@colorado.edu>
1444 1447
1445 1448 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1446 1449 docstring under pylab so it doesn't mask the original.
1447 1450
1448 1451 2005-01-21 *** Released version 0.6.7
1449 1452
1450 1453 2005-01-21 Fernando Perez <fperez@colorado.edu>
1451 1454
1452 1455 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1453 1456 signal handling for win32 users in multithreaded mode.
1454 1457
1455 1458 2005-01-17 Fernando Perez <fperez@colorado.edu>
1456 1459
1457 1460 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1458 1461 instances with no __init__. After a crash report by Norbert Nemec
1459 1462 <Norbert-AT-nemec-online.de>.
1460 1463
1461 1464 2005-01-14 Fernando Perez <fperez@colorado.edu>
1462 1465
1463 1466 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1464 1467 names for verbose exceptions, when multiple dotted names and the
1465 1468 'parent' object were present on the same line.
1466 1469
1467 1470 2005-01-11 Fernando Perez <fperez@colorado.edu>
1468 1471
1469 1472 * IPython/genutils.py (flag_calls): new utility to trap and flag
1470 1473 calls in functions. I need it to clean up matplotlib support.
1471 1474 Also removed some deprecated code in genutils.
1472 1475
1473 1476 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1474 1477 that matplotlib scripts called with %run, which don't call show()
1475 1478 themselves, still have their plotting windows open.
1476 1479
1477 1480 2005-01-05 Fernando Perez <fperez@colorado.edu>
1478 1481
1479 1482 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1480 1483 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1481 1484
1482 1485 2004-12-19 Fernando Perez <fperez@colorado.edu>
1483 1486
1484 1487 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1485 1488 parent_runcode, which was an eyesore. The same result can be
1486 1489 obtained with Python's regular superclass mechanisms.
1487 1490
1488 1491 2004-12-17 Fernando Perez <fperez@colorado.edu>
1489 1492
1490 1493 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1491 1494 reported by Prabhu.
1492 1495 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1493 1496 sys.stderr) instead of explicitly calling sys.stderr. This helps
1494 1497 maintain our I/O abstractions clean, for future GUI embeddings.
1495 1498
1496 1499 * IPython/genutils.py (info): added new utility for sys.stderr
1497 1500 unified info message handling (thin wrapper around warn()).
1498 1501
1499 1502 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1500 1503 composite (dotted) names on verbose exceptions.
1501 1504 (VerboseTB.nullrepr): harden against another kind of errors which
1502 1505 Python's inspect module can trigger, and which were crashing
1503 1506 IPython. Thanks to a report by Marco Lombardi
1504 1507 <mlombard-AT-ma010192.hq.eso.org>.
1505 1508
1506 1509 2004-12-13 *** Released version 0.6.6
1507 1510
1508 1511 2004-12-12 Fernando Perez <fperez@colorado.edu>
1509 1512
1510 1513 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1511 1514 generated by pygtk upon initialization if it was built without
1512 1515 threads (for matplotlib users). After a crash reported by
1513 1516 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1514 1517
1515 1518 * IPython/ipmaker.py (make_IPython): fix small bug in the
1516 1519 import_some parameter for multiple imports.
1517 1520
1518 1521 * IPython/iplib.py (ipmagic): simplified the interface of
1519 1522 ipmagic() to take a single string argument, just as it would be
1520 1523 typed at the IPython cmd line.
1521 1524 (ipalias): Added new ipalias() with an interface identical to
1522 1525 ipmagic(). This completes exposing a pure python interface to the
1523 1526 alias and magic system, which can be used in loops or more complex
1524 1527 code where IPython's automatic line mangling is not active.
1525 1528
1526 1529 * IPython/genutils.py (timing): changed interface of timing to
1527 1530 simply run code once, which is the most common case. timings()
1528 1531 remains unchanged, for the cases where you want multiple runs.
1529 1532
1530 1533 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1531 1534 bug where Python2.2 crashes with exec'ing code which does not end
1532 1535 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1533 1536 before.
1534 1537
1535 1538 2004-12-10 Fernando Perez <fperez@colorado.edu>
1536 1539
1537 1540 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1538 1541 -t to -T, to accomodate the new -t flag in %run (the %run and
1539 1542 %prun options are kind of intermixed, and it's not easy to change
1540 1543 this with the limitations of python's getopt).
1541 1544
1542 1545 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1543 1546 the execution of scripts. It's not as fine-tuned as timeit.py,
1544 1547 but it works from inside ipython (and under 2.2, which lacks
1545 1548 timeit.py). Optionally a number of runs > 1 can be given for
1546 1549 timing very short-running code.
1547 1550
1548 1551 * IPython/genutils.py (uniq_stable): new routine which returns a
1549 1552 list of unique elements in any iterable, but in stable order of
1550 1553 appearance. I needed this for the ultraTB fixes, and it's a handy
1551 1554 utility.
1552 1555
1553 1556 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1554 1557 dotted names in Verbose exceptions. This had been broken since
1555 1558 the very start, now x.y will properly be printed in a Verbose
1556 1559 traceback, instead of x being shown and y appearing always as an
1557 1560 'undefined global'. Getting this to work was a bit tricky,
1558 1561 because by default python tokenizers are stateless. Saved by
1559 1562 python's ability to easily add a bit of state to an arbitrary
1560 1563 function (without needing to build a full-blown callable object).
1561 1564
1562 1565 Also big cleanup of this code, which had horrendous runtime
1563 1566 lookups of zillions of attributes for colorization. Moved all
1564 1567 this code into a few templates, which make it cleaner and quicker.
1565 1568
1566 1569 Printout quality was also improved for Verbose exceptions: one
1567 1570 variable per line, and memory addresses are printed (this can be
1568 1571 quite handy in nasty debugging situations, which is what Verbose
1569 1572 is for).
1570 1573
1571 1574 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1572 1575 the command line as scripts to be loaded by embedded instances.
1573 1576 Doing so has the potential for an infinite recursion if there are
1574 1577 exceptions thrown in the process. This fixes a strange crash
1575 1578 reported by Philippe MULLER <muller-AT-irit.fr>.
1576 1579
1577 1580 2004-12-09 Fernando Perez <fperez@colorado.edu>
1578 1581
1579 1582 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1580 1583 to reflect new names in matplotlib, which now expose the
1581 1584 matlab-compatible interface via a pylab module instead of the
1582 1585 'matlab' name. The new code is backwards compatible, so users of
1583 1586 all matplotlib versions are OK. Patch by J. Hunter.
1584 1587
1585 1588 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1586 1589 of __init__ docstrings for instances (class docstrings are already
1587 1590 automatically printed). Instances with customized docstrings
1588 1591 (indep. of the class) are also recognized and all 3 separate
1589 1592 docstrings are printed (instance, class, constructor). After some
1590 1593 comments/suggestions by J. Hunter.
1591 1594
1592 1595 2004-12-05 Fernando Perez <fperez@colorado.edu>
1593 1596
1594 1597 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1595 1598 warnings when tab-completion fails and triggers an exception.
1596 1599
1597 1600 2004-12-03 Fernando Perez <fperez@colorado.edu>
1598 1601
1599 1602 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1600 1603 be triggered when using 'run -p'. An incorrect option flag was
1601 1604 being set ('d' instead of 'D').
1602 1605 (manpage): fix missing escaped \- sign.
1603 1606
1604 1607 2004-11-30 *** Released version 0.6.5
1605 1608
1606 1609 2004-11-30 Fernando Perez <fperez@colorado.edu>
1607 1610
1608 1611 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1609 1612 setting with -d option.
1610 1613
1611 1614 * setup.py (docfiles): Fix problem where the doc glob I was using
1612 1615 was COMPLETELY BROKEN. It was giving the right files by pure
1613 1616 accident, but failed once I tried to include ipython.el. Note:
1614 1617 glob() does NOT allow you to do exclusion on multiple endings!
1615 1618
1616 1619 2004-11-29 Fernando Perez <fperez@colorado.edu>
1617 1620
1618 1621 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
1619 1622 the manpage as the source. Better formatting & consistency.
1620 1623
1621 1624 * IPython/Magic.py (magic_run): Added new -d option, to run
1622 1625 scripts under the control of the python pdb debugger. Note that
1623 1626 this required changing the %prun option -d to -D, to avoid a clash
1624 1627 (since %run must pass options to %prun, and getopt is too dumb to
1625 1628 handle options with string values with embedded spaces). Thanks
1626 1629 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
1627 1630 (magic_who_ls): added type matching to %who and %whos, so that one
1628 1631 can filter their output to only include variables of certain
1629 1632 types. Another suggestion by Matthew.
1630 1633 (magic_whos): Added memory summaries in kb and Mb for arrays.
1631 1634 (magic_who): Improve formatting (break lines every 9 vars).
1632 1635
1633 1636 2004-11-28 Fernando Perez <fperez@colorado.edu>
1634 1637
1635 1638 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
1636 1639 cache when empty lines were present.
1637 1640
1638 1641 2004-11-24 Fernando Perez <fperez@colorado.edu>
1639 1642
1640 1643 * IPython/usage.py (__doc__): document the re-activated threading
1641 1644 options for WX and GTK.
1642 1645
1643 1646 2004-11-23 Fernando Perez <fperez@colorado.edu>
1644 1647
1645 1648 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1646 1649 the -wthread and -gthread options, along with a new -tk one to try
1647 1650 and coordinate Tk threading with wx/gtk. The tk support is very
1648 1651 platform dependent, since it seems to require Tcl and Tk to be
1649 1652 built with threads (Fedora1/2 appears NOT to have it, but in
1650 1653 Prabhu's Debian boxes it works OK). But even with some Tk
1651 1654 limitations, this is a great improvement.
1652 1655
1653 1656 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1654 1657 info in user prompts. Patch by Prabhu.
1655 1658
1656 1659 2004-11-18 Fernando Perez <fperez@colorado.edu>
1657 1660
1658 1661 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1659 1662 EOFErrors and bail, to avoid infinite loops if a non-terminating
1660 1663 file is fed into ipython. Patch submitted in issue 19 by user,
1661 1664 many thanks.
1662 1665
1663 1666 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1664 1667 autoquote/parens in continuation prompts, which can cause lots of
1665 1668 problems. Closes roundup issue 20.
1666 1669
1667 1670 2004-11-17 Fernando Perez <fperez@colorado.edu>
1668 1671
1669 1672 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1670 1673 reported as debian bug #280505. I'm not sure my local changelog
1671 1674 entry has the proper debian format (Jack?).
1672 1675
1673 1676 2004-11-08 *** Released version 0.6.4
1674 1677
1675 1678 2004-11-08 Fernando Perez <fperez@colorado.edu>
1676 1679
1677 1680 * IPython/iplib.py (init_readline): Fix exit message for Windows
1678 1681 when readline is active. Thanks to a report by Eric Jones
1679 1682 <eric-AT-enthought.com>.
1680 1683
1681 1684 2004-11-07 Fernando Perez <fperez@colorado.edu>
1682 1685
1683 1686 * IPython/genutils.py (page): Add a trap for OSError exceptions,
1684 1687 sometimes seen by win2k/cygwin users.
1685 1688
1686 1689 2004-11-06 Fernando Perez <fperez@colorado.edu>
1687 1690
1688 1691 * IPython/iplib.py (interact): Change the handling of %Exit from
1689 1692 trying to propagate a SystemExit to an internal ipython flag.
1690 1693 This is less elegant than using Python's exception mechanism, but
1691 1694 I can't get that to work reliably with threads, so under -pylab
1692 1695 %Exit was hanging IPython. Cross-thread exception handling is
1693 1696 really a bitch. Thaks to a bug report by Stephen Walton
1694 1697 <stephen.walton-AT-csun.edu>.
1695 1698
1696 1699 2004-11-04 Fernando Perez <fperez@colorado.edu>
1697 1700
1698 1701 * IPython/iplib.py (raw_input_original): store a pointer to the
1699 1702 true raw_input to harden against code which can modify it
1700 1703 (wx.py.PyShell does this and would otherwise crash ipython).
1701 1704 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
1702 1705
1703 1706 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
1704 1707 Ctrl-C problem, which does not mess up the input line.
1705 1708
1706 1709 2004-11-03 Fernando Perez <fperez@colorado.edu>
1707 1710
1708 1711 * IPython/Release.py: Changed licensing to BSD, in all files.
1709 1712 (name): lowercase name for tarball/RPM release.
1710 1713
1711 1714 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
1712 1715 use throughout ipython.
1713 1716
1714 1717 * IPython/Magic.py (Magic._ofind): Switch to using the new
1715 1718 OInspect.getdoc() function.
1716 1719
1717 1720 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
1718 1721 of the line currently being canceled via Ctrl-C. It's extremely
1719 1722 ugly, but I don't know how to do it better (the problem is one of
1720 1723 handling cross-thread exceptions).
1721 1724
1722 1725 2004-10-28 Fernando Perez <fperez@colorado.edu>
1723 1726
1724 1727 * IPython/Shell.py (signal_handler): add signal handlers to trap
1725 1728 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
1726 1729 report by Francesc Alted.
1727 1730
1728 1731 2004-10-21 Fernando Perez <fperez@colorado.edu>
1729 1732
1730 1733 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
1731 1734 to % for pysh syntax extensions.
1732 1735
1733 1736 2004-10-09 Fernando Perez <fperez@colorado.edu>
1734 1737
1735 1738 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
1736 1739 arrays to print a more useful summary, without calling str(arr).
1737 1740 This avoids the problem of extremely lengthy computations which
1738 1741 occur if arr is large, and appear to the user as a system lockup
1739 1742 with 100% cpu activity. After a suggestion by Kristian Sandberg
1740 1743 <Kristian.Sandberg@colorado.edu>.
1741 1744 (Magic.__init__): fix bug in global magic escapes not being
1742 1745 correctly set.
1743 1746
1744 1747 2004-10-08 Fernando Perez <fperez@colorado.edu>
1745 1748
1746 1749 * IPython/Magic.py (__license__): change to absolute imports of
1747 1750 ipython's own internal packages, to start adapting to the absolute
1748 1751 import requirement of PEP-328.
1749 1752
1750 1753 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
1751 1754 files, and standardize author/license marks through the Release
1752 1755 module instead of having per/file stuff (except for files with
1753 1756 particular licenses, like the MIT/PSF-licensed codes).
1754 1757
1755 1758 * IPython/Debugger.py: remove dead code for python 2.1
1756 1759
1757 1760 2004-10-04 Fernando Perez <fperez@colorado.edu>
1758 1761
1759 1762 * IPython/iplib.py (ipmagic): New function for accessing magics
1760 1763 via a normal python function call.
1761 1764
1762 1765 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
1763 1766 from '@' to '%', to accomodate the new @decorator syntax of python
1764 1767 2.4.
1765 1768
1766 1769 2004-09-29 Fernando Perez <fperez@colorado.edu>
1767 1770
1768 1771 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
1769 1772 matplotlib.use to prevent running scripts which try to switch
1770 1773 interactive backends from within ipython. This will just crash
1771 1774 the python interpreter, so we can't allow it (but a detailed error
1772 1775 is given to the user).
1773 1776
1774 1777 2004-09-28 Fernando Perez <fperez@colorado.edu>
1775 1778
1776 1779 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
1777 1780 matplotlib-related fixes so that using @run with non-matplotlib
1778 1781 scripts doesn't pop up spurious plot windows. This requires
1779 1782 matplotlib >= 0.63, where I had to make some changes as well.
1780 1783
1781 1784 * IPython/ipmaker.py (make_IPython): update version requirement to
1782 1785 python 2.2.
1783 1786
1784 1787 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
1785 1788 banner arg for embedded customization.
1786 1789
1787 1790 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
1788 1791 explicit uses of __IP as the IPython's instance name. Now things
1789 1792 are properly handled via the shell.name value. The actual code
1790 1793 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
1791 1794 is much better than before. I'll clean things completely when the
1792 1795 magic stuff gets a real overhaul.
1793 1796
1794 1797 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
1795 1798 minor changes to debian dir.
1796 1799
1797 1800 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
1798 1801 pointer to the shell itself in the interactive namespace even when
1799 1802 a user-supplied dict is provided. This is needed for embedding
1800 1803 purposes (found by tests with Michel Sanner).
1801 1804
1802 1805 2004-09-27 Fernando Perez <fperez@colorado.edu>
1803 1806
1804 1807 * IPython/UserConfig/ipythonrc: remove []{} from
1805 1808 readline_remove_delims, so that things like [modname.<TAB> do
1806 1809 proper completion. This disables [].TAB, but that's a less common
1807 1810 case than module names in list comprehensions, for example.
1808 1811 Thanks to a report by Andrea Riciputi.
1809 1812
1810 1813 2004-09-09 Fernando Perez <fperez@colorado.edu>
1811 1814
1812 1815 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
1813 1816 blocking problems in win32 and osx. Fix by John.
1814 1817
1815 1818 2004-09-08 Fernando Perez <fperez@colorado.edu>
1816 1819
1817 1820 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
1818 1821 for Win32 and OSX. Fix by John Hunter.
1819 1822
1820 1823 2004-08-30 *** Released version 0.6.3
1821 1824
1822 1825 2004-08-30 Fernando Perez <fperez@colorado.edu>
1823 1826
1824 1827 * setup.py (isfile): Add manpages to list of dependent files to be
1825 1828 updated.
1826 1829
1827 1830 2004-08-27 Fernando Perez <fperez@colorado.edu>
1828 1831
1829 1832 * IPython/Shell.py (start): I've disabled -wthread and -gthread
1830 1833 for now. They don't really work with standalone WX/GTK code
1831 1834 (though matplotlib IS working fine with both of those backends).
1832 1835 This will neeed much more testing. I disabled most things with
1833 1836 comments, so turning it back on later should be pretty easy.
1834 1837
1835 1838 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
1836 1839 autocalling of expressions like r'foo', by modifying the line
1837 1840 split regexp. Closes
1838 1841 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
1839 1842 Riley <ipythonbugs-AT-sabi.net>.
1840 1843 (InteractiveShell.mainloop): honor --nobanner with banner
1841 1844 extensions.
1842 1845
1843 1846 * IPython/Shell.py: Significant refactoring of all classes, so
1844 1847 that we can really support ALL matplotlib backends and threading
1845 1848 models (John spotted a bug with Tk which required this). Now we
1846 1849 should support single-threaded, WX-threads and GTK-threads, both
1847 1850 for generic code and for matplotlib.
1848 1851
1849 1852 * IPython/ipmaker.py (__call__): Changed -mpthread option to
1850 1853 -pylab, to simplify things for users. Will also remove the pylab
1851 1854 profile, since now all of matplotlib configuration is directly
1852 1855 handled here. This also reduces startup time.
1853 1856
1854 1857 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
1855 1858 shell wasn't being correctly called. Also in IPShellWX.
1856 1859
1857 1860 * IPython/iplib.py (InteractiveShell.__init__): Added option to
1858 1861 fine-tune banner.
1859 1862
1860 1863 * IPython/numutils.py (spike): Deprecate these spike functions,
1861 1864 delete (long deprecated) gnuplot_exec handler.
1862 1865
1863 1866 2004-08-26 Fernando Perez <fperez@colorado.edu>
1864 1867
1865 1868 * ipython.1: Update for threading options, plus some others which
1866 1869 were missing.
1867 1870
1868 1871 * IPython/ipmaker.py (__call__): Added -wthread option for
1869 1872 wxpython thread handling. Make sure threading options are only
1870 1873 valid at the command line.
1871 1874
1872 1875 * scripts/ipython: moved shell selection into a factory function
1873 1876 in Shell.py, to keep the starter script to a minimum.
1874 1877
1875 1878 2004-08-25 Fernando Perez <fperez@colorado.edu>
1876 1879
1877 1880 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
1878 1881 John. Along with some recent changes he made to matplotlib, the
1879 1882 next versions of both systems should work very well together.
1880 1883
1881 1884 2004-08-24 Fernando Perez <fperez@colorado.edu>
1882 1885
1883 1886 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
1884 1887 tried to switch the profiling to using hotshot, but I'm getting
1885 1888 strange errors from prof.runctx() there. I may be misreading the
1886 1889 docs, but it looks weird. For now the profiling code will
1887 1890 continue to use the standard profiler.
1888 1891
1889 1892 2004-08-23 Fernando Perez <fperez@colorado.edu>
1890 1893
1891 1894 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
1892 1895 threaded shell, by John Hunter. It's not quite ready yet, but
1893 1896 close.
1894 1897
1895 1898 2004-08-22 Fernando Perez <fperez@colorado.edu>
1896 1899
1897 1900 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
1898 1901 in Magic and ultraTB.
1899 1902
1900 1903 * ipython.1: document threading options in manpage.
1901 1904
1902 1905 * scripts/ipython: Changed name of -thread option to -gthread,
1903 1906 since this is GTK specific. I want to leave the door open for a
1904 1907 -wthread option for WX, which will most likely be necessary. This
1905 1908 change affects usage and ipmaker as well.
1906 1909
1907 1910 * IPython/Shell.py (matplotlib_shell): Add a factory function to
1908 1911 handle the matplotlib shell issues. Code by John Hunter
1909 1912 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1910 1913 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
1911 1914 broken (and disabled for end users) for now, but it puts the
1912 1915 infrastructure in place.
1913 1916
1914 1917 2004-08-21 Fernando Perez <fperez@colorado.edu>
1915 1918
1916 1919 * ipythonrc-pylab: Add matplotlib support.
1917 1920
1918 1921 * matplotlib_config.py: new files for matplotlib support, part of
1919 1922 the pylab profile.
1920 1923
1921 1924 * IPython/usage.py (__doc__): documented the threading options.
1922 1925
1923 1926 2004-08-20 Fernando Perez <fperez@colorado.edu>
1924 1927
1925 1928 * ipython: Modified the main calling routine to handle the -thread
1926 1929 and -mpthread options. This needs to be done as a top-level hack,
1927 1930 because it determines which class to instantiate for IPython
1928 1931 itself.
1929 1932
1930 1933 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
1931 1934 classes to support multithreaded GTK operation without blocking,
1932 1935 and matplotlib with all backends. This is a lot of still very
1933 1936 experimental code, and threads are tricky. So it may still have a
1934 1937 few rough edges... This code owes a lot to
1935 1938 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
1936 1939 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
1937 1940 to John Hunter for all the matplotlib work.
1938 1941
1939 1942 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
1940 1943 options for gtk thread and matplotlib support.
1941 1944
1942 1945 2004-08-16 Fernando Perez <fperez@colorado.edu>
1943 1946
1944 1947 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
1945 1948 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
1946 1949 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
1947 1950
1948 1951 2004-08-11 Fernando Perez <fperez@colorado.edu>
1949 1952
1950 1953 * setup.py (isfile): Fix build so documentation gets updated for
1951 1954 rpms (it was only done for .tgz builds).
1952 1955
1953 1956 2004-08-10 Fernando Perez <fperez@colorado.edu>
1954 1957
1955 1958 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
1956 1959
1957 1960 * iplib.py : Silence syntax error exceptions in tab-completion.
1958 1961
1959 1962 2004-08-05 Fernando Perez <fperez@colorado.edu>
1960 1963
1961 1964 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
1962 1965 'color off' mark for continuation prompts. This was causing long
1963 1966 continuation lines to mis-wrap.
1964 1967
1965 1968 2004-08-01 Fernando Perez <fperez@colorado.edu>
1966 1969
1967 1970 * IPython/ipmaker.py (make_IPython): Allow the shell class used
1968 1971 for building ipython to be a parameter. All this is necessary
1969 1972 right now to have a multithreaded version, but this insane
1970 1973 non-design will be cleaned up soon. For now, it's a hack that
1971 1974 works.
1972 1975
1973 1976 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
1974 1977 args in various places. No bugs so far, but it's a dangerous
1975 1978 practice.
1976 1979
1977 1980 2004-07-31 Fernando Perez <fperez@colorado.edu>
1978 1981
1979 1982 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
1980 1983 fix completion of files with dots in their names under most
1981 1984 profiles (pysh was OK because the completion order is different).
1982 1985
1983 1986 2004-07-27 Fernando Perez <fperez@colorado.edu>
1984 1987
1985 1988 * IPython/iplib.py (InteractiveShell.__init__): build dict of
1986 1989 keywords manually, b/c the one in keyword.py was removed in python
1987 1990 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
1988 1991 This is NOT a bug under python 2.3 and earlier.
1989 1992
1990 1993 2004-07-26 Fernando Perez <fperez@colorado.edu>
1991 1994
1992 1995 * IPython/ultraTB.py (VerboseTB.text): Add another
1993 1996 linecache.checkcache() call to try to prevent inspect.py from
1994 1997 crashing under python 2.3. I think this fixes
1995 1998 http://www.scipy.net/roundup/ipython/issue17.
1996 1999
1997 2000 2004-07-26 *** Released version 0.6.2
1998 2001
1999 2002 2004-07-26 Fernando Perez <fperez@colorado.edu>
2000 2003
2001 2004 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2002 2005 fail for any number.
2003 2006 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2004 2007 empty bookmarks.
2005 2008
2006 2009 2004-07-26 *** Released version 0.6.1
2007 2010
2008 2011 2004-07-26 Fernando Perez <fperez@colorado.edu>
2009 2012
2010 2013 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2011 2014
2012 2015 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2013 2016 escaping '()[]{}' in filenames.
2014 2017
2015 2018 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2016 2019 Python 2.2 users who lack a proper shlex.split.
2017 2020
2018 2021 2004-07-19 Fernando Perez <fperez@colorado.edu>
2019 2022
2020 2023 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2021 2024 for reading readline's init file. I follow the normal chain:
2022 2025 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2023 2026 report by Mike Heeter. This closes
2024 2027 http://www.scipy.net/roundup/ipython/issue16.
2025 2028
2026 2029 2004-07-18 Fernando Perez <fperez@colorado.edu>
2027 2030
2028 2031 * IPython/iplib.py (__init__): Add better handling of '\' under
2029 2032 Win32 for filenames. After a patch by Ville.
2030 2033
2031 2034 2004-07-17 Fernando Perez <fperez@colorado.edu>
2032 2035
2033 2036 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2034 2037 autocalling would be triggered for 'foo is bar' if foo is
2035 2038 callable. I also cleaned up the autocall detection code to use a
2036 2039 regexp, which is faster. Bug reported by Alexander Schmolck.
2037 2040
2038 2041 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2039 2042 '?' in them would confuse the help system. Reported by Alex
2040 2043 Schmolck.
2041 2044
2042 2045 2004-07-16 Fernando Perez <fperez@colorado.edu>
2043 2046
2044 2047 * IPython/GnuplotInteractive.py (__all__): added plot2.
2045 2048
2046 2049 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2047 2050 plotting dictionaries, lists or tuples of 1d arrays.
2048 2051
2049 2052 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2050 2053 optimizations.
2051 2054
2052 2055 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2053 2056 the information which was there from Janko's original IPP code:
2054 2057
2055 2058 03.05.99 20:53 porto.ifm.uni-kiel.de
2056 2059 --Started changelog.
2057 2060 --make clear do what it say it does
2058 2061 --added pretty output of lines from inputcache
2059 2062 --Made Logger a mixin class, simplifies handling of switches
2060 2063 --Added own completer class. .string<TAB> expands to last history
2061 2064 line which starts with string. The new expansion is also present
2062 2065 with Ctrl-r from the readline library. But this shows, who this
2063 2066 can be done for other cases.
2064 2067 --Added convention that all shell functions should accept a
2065 2068 parameter_string This opens the door for different behaviour for
2066 2069 each function. @cd is a good example of this.
2067 2070
2068 2071 04.05.99 12:12 porto.ifm.uni-kiel.de
2069 2072 --added logfile rotation
2070 2073 --added new mainloop method which freezes first the namespace
2071 2074
2072 2075 07.05.99 21:24 porto.ifm.uni-kiel.de
2073 2076 --added the docreader classes. Now there is a help system.
2074 2077 -This is only a first try. Currently it's not easy to put new
2075 2078 stuff in the indices. But this is the way to go. Info would be
2076 2079 better, but HTML is every where and not everybody has an info
2077 2080 system installed and it's not so easy to change html-docs to info.
2078 2081 --added global logfile option
2079 2082 --there is now a hook for object inspection method pinfo needs to
2080 2083 be provided for this. Can be reached by two '??'.
2081 2084
2082 2085 08.05.99 20:51 porto.ifm.uni-kiel.de
2083 2086 --added a README
2084 2087 --bug in rc file. Something has changed so functions in the rc
2085 2088 file need to reference the shell and not self. Not clear if it's a
2086 2089 bug or feature.
2087 2090 --changed rc file for new behavior
2088 2091
2089 2092 2004-07-15 Fernando Perez <fperez@colorado.edu>
2090 2093
2091 2094 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2092 2095 cache was falling out of sync in bizarre manners when multi-line
2093 2096 input was present. Minor optimizations and cleanup.
2094 2097
2095 2098 (Logger): Remove old Changelog info for cleanup. This is the
2096 2099 information which was there from Janko's original code:
2097 2100
2098 2101 Changes to Logger: - made the default log filename a parameter
2099 2102
2100 2103 - put a check for lines beginning with !@? in log(). Needed
2101 2104 (even if the handlers properly log their lines) for mid-session
2102 2105 logging activation to work properly. Without this, lines logged
2103 2106 in mid session, which get read from the cache, would end up
2104 2107 'bare' (with !@? in the open) in the log. Now they are caught
2105 2108 and prepended with a #.
2106 2109
2107 2110 * IPython/iplib.py (InteractiveShell.init_readline): added check
2108 2111 in case MagicCompleter fails to be defined, so we don't crash.
2109 2112
2110 2113 2004-07-13 Fernando Perez <fperez@colorado.edu>
2111 2114
2112 2115 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2113 2116 of EPS if the requested filename ends in '.eps'.
2114 2117
2115 2118 2004-07-04 Fernando Perez <fperez@colorado.edu>
2116 2119
2117 2120 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2118 2121 escaping of quotes when calling the shell.
2119 2122
2120 2123 2004-07-02 Fernando Perez <fperez@colorado.edu>
2121 2124
2122 2125 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2123 2126 gettext not working because we were clobbering '_'. Fixes
2124 2127 http://www.scipy.net/roundup/ipython/issue6.
2125 2128
2126 2129 2004-07-01 Fernando Perez <fperez@colorado.edu>
2127 2130
2128 2131 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2129 2132 into @cd. Patch by Ville.
2130 2133
2131 2134 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2132 2135 new function to store things after ipmaker runs. Patch by Ville.
2133 2136 Eventually this will go away once ipmaker is removed and the class
2134 2137 gets cleaned up, but for now it's ok. Key functionality here is
2135 2138 the addition of the persistent storage mechanism, a dict for
2136 2139 keeping data across sessions (for now just bookmarks, but more can
2137 2140 be implemented later).
2138 2141
2139 2142 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2140 2143 persistent across sections. Patch by Ville, I modified it
2141 2144 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2142 2145 added a '-l' option to list all bookmarks.
2143 2146
2144 2147 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2145 2148 center for cleanup. Registered with atexit.register(). I moved
2146 2149 here the old exit_cleanup(). After a patch by Ville.
2147 2150
2148 2151 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2149 2152 characters in the hacked shlex_split for python 2.2.
2150 2153
2151 2154 * IPython/iplib.py (file_matches): more fixes to filenames with
2152 2155 whitespace in them. It's not perfect, but limitations in python's
2153 2156 readline make it impossible to go further.
2154 2157
2155 2158 2004-06-29 Fernando Perez <fperez@colorado.edu>
2156 2159
2157 2160 * IPython/iplib.py (file_matches): escape whitespace correctly in
2158 2161 filename completions. Bug reported by Ville.
2159 2162
2160 2163 2004-06-28 Fernando Perez <fperez@colorado.edu>
2161 2164
2162 2165 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2163 2166 the history file will be called 'history-PROFNAME' (or just
2164 2167 'history' if no profile is loaded). I was getting annoyed at
2165 2168 getting my Numerical work history clobbered by pysh sessions.
2166 2169
2167 2170 * IPython/iplib.py (InteractiveShell.__init__): Internal
2168 2171 getoutputerror() function so that we can honor the system_verbose
2169 2172 flag for _all_ system calls. I also added escaping of #
2170 2173 characters here to avoid confusing Itpl.
2171 2174
2172 2175 * IPython/Magic.py (shlex_split): removed call to shell in
2173 2176 parse_options and replaced it with shlex.split(). The annoying
2174 2177 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2175 2178 to backport it from 2.3, with several frail hacks (the shlex
2176 2179 module is rather limited in 2.2). Thanks to a suggestion by Ville
2177 2180 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2178 2181 problem.
2179 2182
2180 2183 (Magic.magic_system_verbose): new toggle to print the actual
2181 2184 system calls made by ipython. Mainly for debugging purposes.
2182 2185
2183 2186 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2184 2187 doesn't support persistence. Reported (and fix suggested) by
2185 2188 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2186 2189
2187 2190 2004-06-26 Fernando Perez <fperez@colorado.edu>
2188 2191
2189 2192 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2190 2193 continue prompts.
2191 2194
2192 2195 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2193 2196 function (basically a big docstring) and a few more things here to
2194 2197 speedup startup. pysh.py is now very lightweight. We want because
2195 2198 it gets execfile'd, while InterpreterExec gets imported, so
2196 2199 byte-compilation saves time.
2197 2200
2198 2201 2004-06-25 Fernando Perez <fperez@colorado.edu>
2199 2202
2200 2203 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2201 2204 -NUM', which was recently broken.
2202 2205
2203 2206 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2204 2207 in multi-line input (but not !!, which doesn't make sense there).
2205 2208
2206 2209 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2207 2210 It's just too useful, and people can turn it off in the less
2208 2211 common cases where it's a problem.
2209 2212
2210 2213 2004-06-24 Fernando Perez <fperez@colorado.edu>
2211 2214
2212 2215 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2213 2216 special syntaxes (like alias calling) is now allied in multi-line
2214 2217 input. This is still _very_ experimental, but it's necessary for
2215 2218 efficient shell usage combining python looping syntax with system
2216 2219 calls. For now it's restricted to aliases, I don't think it
2217 2220 really even makes sense to have this for magics.
2218 2221
2219 2222 2004-06-23 Fernando Perez <fperez@colorado.edu>
2220 2223
2221 2224 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2222 2225 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2223 2226
2224 2227 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2225 2228 extensions under Windows (after code sent by Gary Bishop). The
2226 2229 extensions considered 'executable' are stored in IPython's rc
2227 2230 structure as win_exec_ext.
2228 2231
2229 2232 * IPython/genutils.py (shell): new function, like system() but
2230 2233 without return value. Very useful for interactive shell work.
2231 2234
2232 2235 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2233 2236 delete aliases.
2234 2237
2235 2238 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2236 2239 sure that the alias table doesn't contain python keywords.
2237 2240
2238 2241 2004-06-21 Fernando Perez <fperez@colorado.edu>
2239 2242
2240 2243 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2241 2244 non-existent items are found in $PATH. Reported by Thorsten.
2242 2245
2243 2246 2004-06-20 Fernando Perez <fperez@colorado.edu>
2244 2247
2245 2248 * IPython/iplib.py (complete): modified the completer so that the
2246 2249 order of priorities can be easily changed at runtime.
2247 2250
2248 2251 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2249 2252 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2250 2253
2251 2254 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2252 2255 expand Python variables prepended with $ in all system calls. The
2253 2256 same was done to InteractiveShell.handle_shell_escape. Now all
2254 2257 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2255 2258 expansion of python variables and expressions according to the
2256 2259 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2257 2260
2258 2261 Though PEP-215 has been rejected, a similar (but simpler) one
2259 2262 seems like it will go into Python 2.4, PEP-292 -
2260 2263 http://www.python.org/peps/pep-0292.html.
2261 2264
2262 2265 I'll keep the full syntax of PEP-215, since IPython has since the
2263 2266 start used Ka-Ping Yee's reference implementation discussed there
2264 2267 (Itpl), and I actually like the powerful semantics it offers.
2265 2268
2266 2269 In order to access normal shell variables, the $ has to be escaped
2267 2270 via an extra $. For example:
2268 2271
2269 2272 In [7]: PATH='a python variable'
2270 2273
2271 2274 In [8]: !echo $PATH
2272 2275 a python variable
2273 2276
2274 2277 In [9]: !echo $$PATH
2275 2278 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2276 2279
2277 2280 (Magic.parse_options): escape $ so the shell doesn't evaluate
2278 2281 things prematurely.
2279 2282
2280 2283 * IPython/iplib.py (InteractiveShell.call_alias): added the
2281 2284 ability for aliases to expand python variables via $.
2282 2285
2283 2286 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2284 2287 system, now there's a @rehash/@rehashx pair of magics. These work
2285 2288 like the csh rehash command, and can be invoked at any time. They
2286 2289 build a table of aliases to everything in the user's $PATH
2287 2290 (@rehash uses everything, @rehashx is slower but only adds
2288 2291 executable files). With this, the pysh.py-based shell profile can
2289 2292 now simply call rehash upon startup, and full access to all
2290 2293 programs in the user's path is obtained.
2291 2294
2292 2295 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2293 2296 functionality is now fully in place. I removed the old dynamic
2294 2297 code generation based approach, in favor of a much lighter one
2295 2298 based on a simple dict. The advantage is that this allows me to
2296 2299 now have thousands of aliases with negligible cost (unthinkable
2297 2300 with the old system).
2298 2301
2299 2302 2004-06-19 Fernando Perez <fperez@colorado.edu>
2300 2303
2301 2304 * IPython/iplib.py (__init__): extended MagicCompleter class to
2302 2305 also complete (last in priority) on user aliases.
2303 2306
2304 2307 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2305 2308 call to eval.
2306 2309 (ItplNS.__init__): Added a new class which functions like Itpl,
2307 2310 but allows configuring the namespace for the evaluation to occur
2308 2311 in.
2309 2312
2310 2313 2004-06-18 Fernando Perez <fperez@colorado.edu>
2311 2314
2312 2315 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2313 2316 better message when 'exit' or 'quit' are typed (a common newbie
2314 2317 confusion).
2315 2318
2316 2319 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2317 2320 check for Windows users.
2318 2321
2319 2322 * IPython/iplib.py (InteractiveShell.user_setup): removed
2320 2323 disabling of colors for Windows. I'll test at runtime and issue a
2321 2324 warning if Gary's readline isn't found, as to nudge users to
2322 2325 download it.
2323 2326
2324 2327 2004-06-16 Fernando Perez <fperez@colorado.edu>
2325 2328
2326 2329 * IPython/genutils.py (Stream.__init__): changed to print errors
2327 2330 to sys.stderr. I had a circular dependency here. Now it's
2328 2331 possible to run ipython as IDLE's shell (consider this pre-alpha,
2329 2332 since true stdout things end up in the starting terminal instead
2330 2333 of IDLE's out).
2331 2334
2332 2335 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2333 2336 users who haven't # updated their prompt_in2 definitions. Remove
2334 2337 eventually.
2335 2338 (multiple_replace): added credit to original ASPN recipe.
2336 2339
2337 2340 2004-06-15 Fernando Perez <fperez@colorado.edu>
2338 2341
2339 2342 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2340 2343 list of auto-defined aliases.
2341 2344
2342 2345 2004-06-13 Fernando Perez <fperez@colorado.edu>
2343 2346
2344 2347 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2345 2348 install was really requested (so setup.py can be used for other
2346 2349 things under Windows).
2347 2350
2348 2351 2004-06-10 Fernando Perez <fperez@colorado.edu>
2349 2352
2350 2353 * IPython/Logger.py (Logger.create_log): Manually remove any old
2351 2354 backup, since os.remove may fail under Windows. Fixes bug
2352 2355 reported by Thorsten.
2353 2356
2354 2357 2004-06-09 Fernando Perez <fperez@colorado.edu>
2355 2358
2356 2359 * examples/example-embed.py: fixed all references to %n (replaced
2357 2360 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2358 2361 for all examples and the manual as well.
2359 2362
2360 2363 2004-06-08 Fernando Perez <fperez@colorado.edu>
2361 2364
2362 2365 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2363 2366 alignment and color management. All 3 prompt subsystems now
2364 2367 inherit from BasePrompt.
2365 2368
2366 2369 * tools/release: updates for windows installer build and tag rpms
2367 2370 with python version (since paths are fixed).
2368 2371
2369 2372 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2370 2373 which will become eventually obsolete. Also fixed the default
2371 2374 prompt_in2 to use \D, so at least new users start with the correct
2372 2375 defaults.
2373 2376 WARNING: Users with existing ipythonrc files will need to apply
2374 2377 this fix manually!
2375 2378
2376 2379 * setup.py: make windows installer (.exe). This is finally the
2377 2380 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2378 2381 which I hadn't included because it required Python 2.3 (or recent
2379 2382 distutils).
2380 2383
2381 2384 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2382 2385 usage of new '\D' escape.
2383 2386
2384 2387 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2385 2388 lacks os.getuid())
2386 2389 (CachedOutput.set_colors): Added the ability to turn coloring
2387 2390 on/off with @colors even for manually defined prompt colors. It
2388 2391 uses a nasty global, but it works safely and via the generic color
2389 2392 handling mechanism.
2390 2393 (Prompt2.__init__): Introduced new escape '\D' for continuation
2391 2394 prompts. It represents the counter ('\#') as dots.
2392 2395 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2393 2396 need to update their ipythonrc files and replace '%n' with '\D' in
2394 2397 their prompt_in2 settings everywhere. Sorry, but there's
2395 2398 otherwise no clean way to get all prompts to properly align. The
2396 2399 ipythonrc shipped with IPython has been updated.
2397 2400
2398 2401 2004-06-07 Fernando Perez <fperez@colorado.edu>
2399 2402
2400 2403 * setup.py (isfile): Pass local_icons option to latex2html, so the
2401 2404 resulting HTML file is self-contained. Thanks to
2402 2405 dryice-AT-liu.com.cn for the tip.
2403 2406
2404 2407 * pysh.py: I created a new profile 'shell', which implements a
2405 2408 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2406 2409 system shell, nor will it become one anytime soon. It's mainly
2407 2410 meant to illustrate the use of the new flexible bash-like prompts.
2408 2411 I guess it could be used by hardy souls for true shell management,
2409 2412 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2410 2413 profile. This uses the InterpreterExec extension provided by
2411 2414 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2412 2415
2413 2416 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2414 2417 auto-align itself with the length of the previous input prompt
2415 2418 (taking into account the invisible color escapes).
2416 2419 (CachedOutput.__init__): Large restructuring of this class. Now
2417 2420 all three prompts (primary1, primary2, output) are proper objects,
2418 2421 managed by the 'parent' CachedOutput class. The code is still a
2419 2422 bit hackish (all prompts share state via a pointer to the cache),
2420 2423 but it's overall far cleaner than before.
2421 2424
2422 2425 * IPython/genutils.py (getoutputerror): modified to add verbose,
2423 2426 debug and header options. This makes the interface of all getout*
2424 2427 functions uniform.
2425 2428 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2426 2429
2427 2430 * IPython/Magic.py (Magic.default_option): added a function to
2428 2431 allow registering default options for any magic command. This
2429 2432 makes it easy to have profiles which customize the magics globally
2430 2433 for a certain use. The values set through this function are
2431 2434 picked up by the parse_options() method, which all magics should
2432 2435 use to parse their options.
2433 2436
2434 2437 * IPython/genutils.py (warn): modified the warnings framework to
2435 2438 use the Term I/O class. I'm trying to slowly unify all of
2436 2439 IPython's I/O operations to pass through Term.
2437 2440
2438 2441 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2439 2442 the secondary prompt to correctly match the length of the primary
2440 2443 one for any prompt. Now multi-line code will properly line up
2441 2444 even for path dependent prompts, such as the new ones available
2442 2445 via the prompt_specials.
2443 2446
2444 2447 2004-06-06 Fernando Perez <fperez@colorado.edu>
2445 2448
2446 2449 * IPython/Prompts.py (prompt_specials): Added the ability to have
2447 2450 bash-like special sequences in the prompts, which get
2448 2451 automatically expanded. Things like hostname, current working
2449 2452 directory and username are implemented already, but it's easy to
2450 2453 add more in the future. Thanks to a patch by W.J. van der Laan
2451 2454 <gnufnork-AT-hetdigitalegat.nl>
2452 2455 (prompt_specials): Added color support for prompt strings, so
2453 2456 users can define arbitrary color setups for their prompts.
2454 2457
2455 2458 2004-06-05 Fernando Perez <fperez@colorado.edu>
2456 2459
2457 2460 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2458 2461 code to load Gary Bishop's readline and configure it
2459 2462 automatically. Thanks to Gary for help on this.
2460 2463
2461 2464 2004-06-01 Fernando Perez <fperez@colorado.edu>
2462 2465
2463 2466 * IPython/Logger.py (Logger.create_log): fix bug for logging
2464 2467 with no filename (previous fix was incomplete).
2465 2468
2466 2469 2004-05-25 Fernando Perez <fperez@colorado.edu>
2467 2470
2468 2471 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2469 2472 parens would get passed to the shell.
2470 2473
2471 2474 2004-05-20 Fernando Perez <fperez@colorado.edu>
2472 2475
2473 2476 * IPython/Magic.py (Magic.magic_prun): changed default profile
2474 2477 sort order to 'time' (the more common profiling need).
2475 2478
2476 2479 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2477 2480 so that source code shown is guaranteed in sync with the file on
2478 2481 disk (also changed in psource). Similar fix to the one for
2479 2482 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2480 2483 <yann.ledu-AT-noos.fr>.
2481 2484
2482 2485 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2483 2486 with a single option would not be correctly parsed. Closes
2484 2487 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2485 2488 introduced in 0.6.0 (on 2004-05-06).
2486 2489
2487 2490 2004-05-13 *** Released version 0.6.0
2488 2491
2489 2492 2004-05-13 Fernando Perez <fperez@colorado.edu>
2490 2493
2491 2494 * debian/: Added debian/ directory to CVS, so that debian support
2492 2495 is publicly accessible. The debian package is maintained by Jack
2493 2496 Moffit <jack-AT-xiph.org>.
2494 2497
2495 2498 * Documentation: included the notes about an ipython-based system
2496 2499 shell (the hypothetical 'pysh') into the new_design.pdf document,
2497 2500 so that these ideas get distributed to users along with the
2498 2501 official documentation.
2499 2502
2500 2503 2004-05-10 Fernando Perez <fperez@colorado.edu>
2501 2504
2502 2505 * IPython/Logger.py (Logger.create_log): fix recently introduced
2503 2506 bug (misindented line) where logstart would fail when not given an
2504 2507 explicit filename.
2505 2508
2506 2509 2004-05-09 Fernando Perez <fperez@colorado.edu>
2507 2510
2508 2511 * IPython/Magic.py (Magic.parse_options): skip system call when
2509 2512 there are no options to look for. Faster, cleaner for the common
2510 2513 case.
2511 2514
2512 2515 * Documentation: many updates to the manual: describing Windows
2513 2516 support better, Gnuplot updates, credits, misc small stuff. Also
2514 2517 updated the new_design doc a bit.
2515 2518
2516 2519 2004-05-06 *** Released version 0.6.0.rc1
2517 2520
2518 2521 2004-05-06 Fernando Perez <fperez@colorado.edu>
2519 2522
2520 2523 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2521 2524 operations to use the vastly more efficient list/''.join() method.
2522 2525 (FormattedTB.text): Fix
2523 2526 http://www.scipy.net/roundup/ipython/issue12 - exception source
2524 2527 extract not updated after reload. Thanks to Mike Salib
2525 2528 <msalib-AT-mit.edu> for pinning the source of the problem.
2526 2529 Fortunately, the solution works inside ipython and doesn't require
2527 2530 any changes to python proper.
2528 2531
2529 2532 * IPython/Magic.py (Magic.parse_options): Improved to process the
2530 2533 argument list as a true shell would (by actually using the
2531 2534 underlying system shell). This way, all @magics automatically get
2532 2535 shell expansion for variables. Thanks to a comment by Alex
2533 2536 Schmolck.
2534 2537
2535 2538 2004-04-04 Fernando Perez <fperez@colorado.edu>
2536 2539
2537 2540 * IPython/iplib.py (InteractiveShell.interact): Added a special
2538 2541 trap for a debugger quit exception, which is basically impossible
2539 2542 to handle by normal mechanisms, given what pdb does to the stack.
2540 2543 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2541 2544
2542 2545 2004-04-03 Fernando Perez <fperez@colorado.edu>
2543 2546
2544 2547 * IPython/genutils.py (Term): Standardized the names of the Term
2545 2548 class streams to cin/cout/cerr, following C++ naming conventions
2546 2549 (I can't use in/out/err because 'in' is not a valid attribute
2547 2550 name).
2548 2551
2549 2552 * IPython/iplib.py (InteractiveShell.interact): don't increment
2550 2553 the prompt if there's no user input. By Daniel 'Dang' Griffith
2551 2554 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2552 2555 Francois Pinard.
2553 2556
2554 2557 2004-04-02 Fernando Perez <fperez@colorado.edu>
2555 2558
2556 2559 * IPython/genutils.py (Stream.__init__): Modified to survive at
2557 2560 least importing in contexts where stdin/out/err aren't true file
2558 2561 objects, such as PyCrust (they lack fileno() and mode). However,
2559 2562 the recovery facilities which rely on these things existing will
2560 2563 not work.
2561 2564
2562 2565 2004-04-01 Fernando Perez <fperez@colorado.edu>
2563 2566
2564 2567 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2565 2568 use the new getoutputerror() function, so it properly
2566 2569 distinguishes stdout/err.
2567 2570
2568 2571 * IPython/genutils.py (getoutputerror): added a function to
2569 2572 capture separately the standard output and error of a command.
2570 2573 After a comment from dang on the mailing lists. This code is
2571 2574 basically a modified version of commands.getstatusoutput(), from
2572 2575 the standard library.
2573 2576
2574 2577 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2575 2578 '!!' as a special syntax (shorthand) to access @sx.
2576 2579
2577 2580 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2578 2581 command and return its output as a list split on '\n'.
2579 2582
2580 2583 2004-03-31 Fernando Perez <fperez@colorado.edu>
2581 2584
2582 2585 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2583 2586 method to dictionaries used as FakeModule instances if they lack
2584 2587 it. At least pydoc in python2.3 breaks for runtime-defined
2585 2588 functions without this hack. At some point I need to _really_
2586 2589 understand what FakeModule is doing, because it's a gross hack.
2587 2590 But it solves Arnd's problem for now...
2588 2591
2589 2592 2004-02-27 Fernando Perez <fperez@colorado.edu>
2590 2593
2591 2594 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2592 2595 mode would behave erratically. Also increased the number of
2593 2596 possible logs in rotate mod to 999. Thanks to Rod Holland
2594 2597 <rhh@StructureLABS.com> for the report and fixes.
2595 2598
2596 2599 2004-02-26 Fernando Perez <fperez@colorado.edu>
2597 2600
2598 2601 * IPython/genutils.py (page): Check that the curses module really
2599 2602 has the initscr attribute before trying to use it. For some
2600 2603 reason, the Solaris curses module is missing this. I think this
2601 2604 should be considered a Solaris python bug, but I'm not sure.
2602 2605
2603 2606 2004-01-17 Fernando Perez <fperez@colorado.edu>
2604 2607
2605 2608 * IPython/genutils.py (Stream.__init__): Changes to try to make
2606 2609 ipython robust against stdin/out/err being closed by the user.
2607 2610 This is 'user error' (and blocks a normal python session, at least
2608 2611 the stdout case). However, Ipython should be able to survive such
2609 2612 instances of abuse as gracefully as possible. To simplify the
2610 2613 coding and maintain compatibility with Gary Bishop's Term
2611 2614 contributions, I've made use of classmethods for this. I think
2612 2615 this introduces a dependency on python 2.2.
2613 2616
2614 2617 2004-01-13 Fernando Perez <fperez@colorado.edu>
2615 2618
2616 2619 * IPython/numutils.py (exp_safe): simplified the code a bit and
2617 2620 removed the need for importing the kinds module altogether.
2618 2621
2619 2622 2004-01-06 Fernando Perez <fperez@colorado.edu>
2620 2623
2621 2624 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
2622 2625 a magic function instead, after some community feedback. No
2623 2626 special syntax will exist for it, but its name is deliberately
2624 2627 very short.
2625 2628
2626 2629 2003-12-20 Fernando Perez <fperez@colorado.edu>
2627 2630
2628 2631 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
2629 2632 new functionality, to automagically assign the result of a shell
2630 2633 command to a variable. I'll solicit some community feedback on
2631 2634 this before making it permanent.
2632 2635
2633 2636 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
2634 2637 requested about callables for which inspect couldn't obtain a
2635 2638 proper argspec. Thanks to a crash report sent by Etienne
2636 2639 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2637 2640
2638 2641 2003-12-09 Fernando Perez <fperez@colorado.edu>
2639 2642
2640 2643 * IPython/genutils.py (page): patch for the pager to work across
2641 2644 various versions of Windows. By Gary Bishop.
2642 2645
2643 2646 2003-12-04 Fernando Perez <fperez@colorado.edu>
2644 2647
2645 2648 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2646 2649 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2647 2650 While I tested this and it looks ok, there may still be corner
2648 2651 cases I've missed.
2649 2652
2650 2653 2003-12-01 Fernando Perez <fperez@colorado.edu>
2651 2654
2652 2655 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2653 2656 where a line like 'p,q=1,2' would fail because the automagic
2654 2657 system would be triggered for @p.
2655 2658
2656 2659 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2657 2660 cleanups, code unmodified.
2658 2661
2659 2662 * IPython/genutils.py (Term): added a class for IPython to handle
2660 2663 output. In most cases it will just be a proxy for stdout/err, but
2661 2664 having this allows modifications to be made for some platforms,
2662 2665 such as handling color escapes under Windows. All of this code
2663 2666 was contributed by Gary Bishop, with minor modifications by me.
2664 2667 The actual changes affect many files.
2665 2668
2666 2669 2003-11-30 Fernando Perez <fperez@colorado.edu>
2667 2670
2668 2671 * IPython/iplib.py (file_matches): new completion code, courtesy
2669 2672 of Jeff Collins. This enables filename completion again under
2670 2673 python 2.3, which disabled it at the C level.
2671 2674
2672 2675 2003-11-11 Fernando Perez <fperez@colorado.edu>
2673 2676
2674 2677 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2675 2678 for Numeric.array(map(...)), but often convenient.
2676 2679
2677 2680 2003-11-05 Fernando Perez <fperez@colorado.edu>
2678 2681
2679 2682 * IPython/numutils.py (frange): Changed a call from int() to
2680 2683 int(round()) to prevent a problem reported with arange() in the
2681 2684 numpy list.
2682 2685
2683 2686 2003-10-06 Fernando Perez <fperez@colorado.edu>
2684 2687
2685 2688 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
2686 2689 prevent crashes if sys lacks an argv attribute (it happens with
2687 2690 embedded interpreters which build a bare-bones sys module).
2688 2691 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
2689 2692
2690 2693 2003-09-24 Fernando Perez <fperez@colorado.edu>
2691 2694
2692 2695 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
2693 2696 to protect against poorly written user objects where __getattr__
2694 2697 raises exceptions other than AttributeError. Thanks to a bug
2695 2698 report by Oliver Sander <osander-AT-gmx.de>.
2696 2699
2697 2700 * IPython/FakeModule.py (FakeModule.__repr__): this method was
2698 2701 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
2699 2702
2700 2703 2003-09-09 Fernando Perez <fperez@colorado.edu>
2701 2704
2702 2705 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2703 2706 unpacking a list whith a callable as first element would
2704 2707 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
2705 2708 Collins.
2706 2709
2707 2710 2003-08-25 *** Released version 0.5.0
2708 2711
2709 2712 2003-08-22 Fernando Perez <fperez@colorado.edu>
2710 2713
2711 2714 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
2712 2715 improperly defined user exceptions. Thanks to feedback from Mark
2713 2716 Russell <mrussell-AT-verio.net>.
2714 2717
2715 2718 2003-08-20 Fernando Perez <fperez@colorado.edu>
2716 2719
2717 2720 * IPython/OInspect.py (Inspector.pinfo): changed String Form
2718 2721 printing so that it would print multi-line string forms starting
2719 2722 with a new line. This way the formatting is better respected for
2720 2723 objects which work hard to make nice string forms.
2721 2724
2722 2725 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
2723 2726 autocall would overtake data access for objects with both
2724 2727 __getitem__ and __call__.
2725 2728
2726 2729 2003-08-19 *** Released version 0.5.0-rc1
2727 2730
2728 2731 2003-08-19 Fernando Perez <fperez@colorado.edu>
2729 2732
2730 2733 * IPython/deep_reload.py (load_tail): single tiny change here
2731 2734 seems to fix the long-standing bug of dreload() failing to work
2732 2735 for dotted names. But this module is pretty tricky, so I may have
2733 2736 missed some subtlety. Needs more testing!.
2734 2737
2735 2738 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
2736 2739 exceptions which have badly implemented __str__ methods.
2737 2740 (VerboseTB.text): harden against inspect.getinnerframes crashing,
2738 2741 which I've been getting reports about from Python 2.3 users. I
2739 2742 wish I had a simple test case to reproduce the problem, so I could
2740 2743 either write a cleaner workaround or file a bug report if
2741 2744 necessary.
2742 2745
2743 2746 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
2744 2747 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
2745 2748 a bug report by Tjabo Kloppenburg.
2746 2749
2747 2750 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
2748 2751 crashes. Wrapped the pdb call in a blanket try/except, since pdb
2749 2752 seems rather unstable. Thanks to a bug report by Tjabo
2750 2753 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
2751 2754
2752 2755 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
2753 2756 this out soon because of the critical fixes in the inner loop for
2754 2757 generators.
2755 2758
2756 2759 * IPython/Magic.py (Magic.getargspec): removed. This (and
2757 2760 _get_def) have been obsoleted by OInspect for a long time, I
2758 2761 hadn't noticed that they were dead code.
2759 2762 (Magic._ofind): restored _ofind functionality for a few literals
2760 2763 (those in ["''",'""','[]','{}','()']). But it won't work anymore
2761 2764 for things like "hello".capitalize?, since that would require a
2762 2765 potentially dangerous eval() again.
2763 2766
2764 2767 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
2765 2768 logic a bit more to clean up the escapes handling and minimize the
2766 2769 use of _ofind to only necessary cases. The interactive 'feel' of
2767 2770 IPython should have improved quite a bit with the changes in
2768 2771 _prefilter and _ofind (besides being far safer than before).
2769 2772
2770 2773 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
2771 2774 obscure, never reported). Edit would fail to find the object to
2772 2775 edit under some circumstances.
2773 2776 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
2774 2777 which were causing double-calling of generators. Those eval calls
2775 2778 were _very_ dangerous, since code with side effects could be
2776 2779 triggered. As they say, 'eval is evil'... These were the
2777 2780 nastiest evals in IPython. Besides, _ofind is now far simpler,
2778 2781 and it should also be quite a bit faster. Its use of inspect is
2779 2782 also safer, so perhaps some of the inspect-related crashes I've
2780 2783 seen lately with Python 2.3 might be taken care of. That will
2781 2784 need more testing.
2782 2785
2783 2786 2003-08-17 Fernando Perez <fperez@colorado.edu>
2784 2787
2785 2788 * IPython/iplib.py (InteractiveShell._prefilter): significant
2786 2789 simplifications to the logic for handling user escapes. Faster
2787 2790 and simpler code.
2788 2791
2789 2792 2003-08-14 Fernando Perez <fperez@colorado.edu>
2790 2793
2791 2794 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
2792 2795 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
2793 2796 but it should be quite a bit faster. And the recursive version
2794 2797 generated O(log N) intermediate storage for all rank>1 arrays,
2795 2798 even if they were contiguous.
2796 2799 (l1norm): Added this function.
2797 2800 (norm): Added this function for arbitrary norms (including
2798 2801 l-infinity). l1 and l2 are still special cases for convenience
2799 2802 and speed.
2800 2803
2801 2804 2003-08-03 Fernando Perez <fperez@colorado.edu>
2802 2805
2803 2806 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
2804 2807 exceptions, which now raise PendingDeprecationWarnings in Python
2805 2808 2.3. There were some in Magic and some in Gnuplot2.
2806 2809
2807 2810 2003-06-30 Fernando Perez <fperez@colorado.edu>
2808 2811
2809 2812 * IPython/genutils.py (page): modified to call curses only for
2810 2813 terminals where TERM=='xterm'. After problems under many other
2811 2814 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
2812 2815
2813 2816 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
2814 2817 would be triggered when readline was absent. This was just an old
2815 2818 debugging statement I'd forgotten to take out.
2816 2819
2817 2820 2003-06-20 Fernando Perez <fperez@colorado.edu>
2818 2821
2819 2822 * IPython/genutils.py (clock): modified to return only user time
2820 2823 (not counting system time), after a discussion on scipy. While
2821 2824 system time may be a useful quantity occasionally, it may much
2822 2825 more easily be skewed by occasional swapping or other similar
2823 2826 activity.
2824 2827
2825 2828 2003-06-05 Fernando Perez <fperez@colorado.edu>
2826 2829
2827 2830 * IPython/numutils.py (identity): new function, for building
2828 2831 arbitrary rank Kronecker deltas (mostly backwards compatible with
2829 2832 Numeric.identity)
2830 2833
2831 2834 2003-06-03 Fernando Perez <fperez@colorado.edu>
2832 2835
2833 2836 * IPython/iplib.py (InteractiveShell.handle_magic): protect
2834 2837 arguments passed to magics with spaces, to allow trailing '\' to
2835 2838 work normally (mainly for Windows users).
2836 2839
2837 2840 2003-05-29 Fernando Perez <fperez@colorado.edu>
2838 2841
2839 2842 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
2840 2843 instead of pydoc.help. This fixes a bizarre behavior where
2841 2844 printing '%s' % locals() would trigger the help system. Now
2842 2845 ipython behaves like normal python does.
2843 2846
2844 2847 Note that if one does 'from pydoc import help', the bizarre
2845 2848 behavior returns, but this will also happen in normal python, so
2846 2849 it's not an ipython bug anymore (it has to do with how pydoc.help
2847 2850 is implemented).
2848 2851
2849 2852 2003-05-22 Fernando Perez <fperez@colorado.edu>
2850 2853
2851 2854 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
2852 2855 return [] instead of None when nothing matches, also match to end
2853 2856 of line. Patch by Gary Bishop.
2854 2857
2855 2858 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
2856 2859 protection as before, for files passed on the command line. This
2857 2860 prevents the CrashHandler from kicking in if user files call into
2858 2861 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
2859 2862 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
2860 2863
2861 2864 2003-05-20 *** Released version 0.4.0
2862 2865
2863 2866 2003-05-20 Fernando Perez <fperez@colorado.edu>
2864 2867
2865 2868 * setup.py: added support for manpages. It's a bit hackish b/c of
2866 2869 a bug in the way the bdist_rpm distutils target handles gzipped
2867 2870 manpages, but it works. After a patch by Jack.
2868 2871
2869 2872 2003-05-19 Fernando Perez <fperez@colorado.edu>
2870 2873
2871 2874 * IPython/numutils.py: added a mockup of the kinds module, since
2872 2875 it was recently removed from Numeric. This way, numutils will
2873 2876 work for all users even if they are missing kinds.
2874 2877
2875 2878 * IPython/Magic.py (Magic._ofind): Harden against an inspect
2876 2879 failure, which can occur with SWIG-wrapped extensions. After a
2877 2880 crash report from Prabhu.
2878 2881
2879 2882 2003-05-16 Fernando Perez <fperez@colorado.edu>
2880 2883
2881 2884 * IPython/iplib.py (InteractiveShell.excepthook): New method to
2882 2885 protect ipython from user code which may call directly
2883 2886 sys.excepthook (this looks like an ipython crash to the user, even
2884 2887 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2885 2888 This is especially important to help users of WxWindows, but may
2886 2889 also be useful in other cases.
2887 2890
2888 2891 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
2889 2892 an optional tb_offset to be specified, and to preserve exception
2890 2893 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2891 2894
2892 2895 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
2893 2896
2894 2897 2003-05-15 Fernando Perez <fperez@colorado.edu>
2895 2898
2896 2899 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
2897 2900 installing for a new user under Windows.
2898 2901
2899 2902 2003-05-12 Fernando Perez <fperez@colorado.edu>
2900 2903
2901 2904 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
2902 2905 handler for Emacs comint-based lines. Currently it doesn't do
2903 2906 much (but importantly, it doesn't update the history cache). In
2904 2907 the future it may be expanded if Alex needs more functionality
2905 2908 there.
2906 2909
2907 2910 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
2908 2911 info to crash reports.
2909 2912
2910 2913 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
2911 2914 just like Python's -c. Also fixed crash with invalid -color
2912 2915 option value at startup. Thanks to Will French
2913 2916 <wfrench-AT-bestweb.net> for the bug report.
2914 2917
2915 2918 2003-05-09 Fernando Perez <fperez@colorado.edu>
2916 2919
2917 2920 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
2918 2921 to EvalDict (it's a mapping, after all) and simplified its code
2919 2922 quite a bit, after a nice discussion on c.l.py where Gustavo
2920 2923 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
2921 2924
2922 2925 2003-04-30 Fernando Perez <fperez@colorado.edu>
2923 2926
2924 2927 * IPython/genutils.py (timings_out): modified it to reduce its
2925 2928 overhead in the common reps==1 case.
2926 2929
2927 2930 2003-04-29 Fernando Perez <fperez@colorado.edu>
2928 2931
2929 2932 * IPython/genutils.py (timings_out): Modified to use the resource
2930 2933 module, which avoids the wraparound problems of time.clock().
2931 2934
2932 2935 2003-04-17 *** Released version 0.2.15pre4
2933 2936
2934 2937 2003-04-17 Fernando Perez <fperez@colorado.edu>
2935 2938
2936 2939 * setup.py (scriptfiles): Split windows-specific stuff over to a
2937 2940 separate file, in an attempt to have a Windows GUI installer.
2938 2941 That didn't work, but part of the groundwork is done.
2939 2942
2940 2943 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
2941 2944 indent/unindent with 4 spaces. Particularly useful in combination
2942 2945 with the new auto-indent option.
2943 2946
2944 2947 2003-04-16 Fernando Perez <fperez@colorado.edu>
2945 2948
2946 2949 * IPython/Magic.py: various replacements of self.rc for
2947 2950 self.shell.rc. A lot more remains to be done to fully disentangle
2948 2951 this class from the main Shell class.
2949 2952
2950 2953 * IPython/GnuplotRuntime.py: added checks for mouse support so
2951 2954 that we don't try to enable it if the current gnuplot doesn't
2952 2955 really support it. Also added checks so that we don't try to
2953 2956 enable persist under Windows (where Gnuplot doesn't recognize the
2954 2957 option).
2955 2958
2956 2959 * IPython/iplib.py (InteractiveShell.interact): Added optional
2957 2960 auto-indenting code, after a patch by King C. Shu
2958 2961 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
2959 2962 get along well with pasting indented code. If I ever figure out
2960 2963 how to make that part go well, it will become on by default.
2961 2964
2962 2965 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
2963 2966 crash ipython if there was an unmatched '%' in the user's prompt
2964 2967 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
2965 2968
2966 2969 * IPython/iplib.py (InteractiveShell.interact): removed the
2967 2970 ability to ask the user whether he wants to crash or not at the
2968 2971 'last line' exception handler. Calling functions at that point
2969 2972 changes the stack, and the error reports would have incorrect
2970 2973 tracebacks.
2971 2974
2972 2975 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
2973 2976 pass through a peger a pretty-printed form of any object. After a
2974 2977 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
2975 2978
2976 2979 2003-04-14 Fernando Perez <fperez@colorado.edu>
2977 2980
2978 2981 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
2979 2982 all files in ~ would be modified at first install (instead of
2980 2983 ~/.ipython). This could be potentially disastrous, as the
2981 2984 modification (make line-endings native) could damage binary files.
2982 2985
2983 2986 2003-04-10 Fernando Perez <fperez@colorado.edu>
2984 2987
2985 2988 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
2986 2989 handle only lines which are invalid python. This now means that
2987 2990 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
2988 2991 for the bug report.
2989 2992
2990 2993 2003-04-01 Fernando Perez <fperez@colorado.edu>
2991 2994
2992 2995 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
2993 2996 where failing to set sys.last_traceback would crash pdb.pm().
2994 2997 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
2995 2998 report.
2996 2999
2997 3000 2003-03-25 Fernando Perez <fperez@colorado.edu>
2998 3001
2999 3002 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3000 3003 before printing it (it had a lot of spurious blank lines at the
3001 3004 end).
3002 3005
3003 3006 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3004 3007 output would be sent 21 times! Obviously people don't use this
3005 3008 too often, or I would have heard about it.
3006 3009
3007 3010 2003-03-24 Fernando Perez <fperez@colorado.edu>
3008 3011
3009 3012 * setup.py (scriptfiles): renamed the data_files parameter from
3010 3013 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3011 3014 for the patch.
3012 3015
3013 3016 2003-03-20 Fernando Perez <fperez@colorado.edu>
3014 3017
3015 3018 * IPython/genutils.py (error): added error() and fatal()
3016 3019 functions.
3017 3020
3018 3021 2003-03-18 *** Released version 0.2.15pre3
3019 3022
3020 3023 2003-03-18 Fernando Perez <fperez@colorado.edu>
3021 3024
3022 3025 * setupext/install_data_ext.py
3023 3026 (install_data_ext.initialize_options): Class contributed by Jack
3024 3027 Moffit for fixing the old distutils hack. He is sending this to
3025 3028 the distutils folks so in the future we may not need it as a
3026 3029 private fix.
3027 3030
3028 3031 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3029 3032 changes for Debian packaging. See his patch for full details.
3030 3033 The old distutils hack of making the ipythonrc* files carry a
3031 3034 bogus .py extension is gone, at last. Examples were moved to a
3032 3035 separate subdir under doc/, and the separate executable scripts
3033 3036 now live in their own directory. Overall a great cleanup. The
3034 3037 manual was updated to use the new files, and setup.py has been
3035 3038 fixed for this setup.
3036 3039
3037 3040 * IPython/PyColorize.py (Parser.usage): made non-executable and
3038 3041 created a pycolor wrapper around it to be included as a script.
3039 3042
3040 3043 2003-03-12 *** Released version 0.2.15pre2
3041 3044
3042 3045 2003-03-12 Fernando Perez <fperez@colorado.edu>
3043 3046
3044 3047 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3045 3048 long-standing problem with garbage characters in some terminals.
3046 3049 The issue was really that the \001 and \002 escapes must _only_ be
3047 3050 passed to input prompts (which call readline), but _never_ to
3048 3051 normal text to be printed on screen. I changed ColorANSI to have
3049 3052 two classes: TermColors and InputTermColors, each with the
3050 3053 appropriate escapes for input prompts or normal text. The code in
3051 3054 Prompts.py got slightly more complicated, but this very old and
3052 3055 annoying bug is finally fixed.
3053 3056
3054 3057 All the credit for nailing down the real origin of this problem
3055 3058 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3056 3059 *Many* thanks to him for spending quite a bit of effort on this.
3057 3060
3058 3061 2003-03-05 *** Released version 0.2.15pre1
3059 3062
3060 3063 2003-03-03 Fernando Perez <fperez@colorado.edu>
3061 3064
3062 3065 * IPython/FakeModule.py: Moved the former _FakeModule to a
3063 3066 separate file, because it's also needed by Magic (to fix a similar
3064 3067 pickle-related issue in @run).
3065 3068
3066 3069 2003-03-02 Fernando Perez <fperez@colorado.edu>
3067 3070
3068 3071 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3069 3072 the autocall option at runtime.
3070 3073 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3071 3074 across Magic.py to start separating Magic from InteractiveShell.
3072 3075 (Magic._ofind): Fixed to return proper namespace for dotted
3073 3076 names. Before, a dotted name would always return 'not currently
3074 3077 defined', because it would find the 'parent'. s.x would be found,
3075 3078 but since 'x' isn't defined by itself, it would get confused.
3076 3079 (Magic.magic_run): Fixed pickling problems reported by Ralf
3077 3080 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3078 3081 that I'd used when Mike Heeter reported similar issues at the
3079 3082 top-level, but now for @run. It boils down to injecting the
3080 3083 namespace where code is being executed with something that looks
3081 3084 enough like a module to fool pickle.dump(). Since a pickle stores
3082 3085 a named reference to the importing module, we need this for
3083 3086 pickles to save something sensible.
3084 3087
3085 3088 * IPython/ipmaker.py (make_IPython): added an autocall option.
3086 3089
3087 3090 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3088 3091 the auto-eval code. Now autocalling is an option, and the code is
3089 3092 also vastly safer. There is no more eval() involved at all.
3090 3093
3091 3094 2003-03-01 Fernando Perez <fperez@colorado.edu>
3092 3095
3093 3096 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3094 3097 dict with named keys instead of a tuple.
3095 3098
3096 3099 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3097 3100
3098 3101 * setup.py (make_shortcut): Fixed message about directories
3099 3102 created during Windows installation (the directories were ok, just
3100 3103 the printed message was misleading). Thanks to Chris Liechti
3101 3104 <cliechti-AT-gmx.net> for the heads up.
3102 3105
3103 3106 2003-02-21 Fernando Perez <fperez@colorado.edu>
3104 3107
3105 3108 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3106 3109 of ValueError exception when checking for auto-execution. This
3107 3110 one is raised by things like Numeric arrays arr.flat when the
3108 3111 array is non-contiguous.
3109 3112
3110 3113 2003-01-31 Fernando Perez <fperez@colorado.edu>
3111 3114
3112 3115 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3113 3116 not return any value at all (even though the command would get
3114 3117 executed).
3115 3118 (xsys): Flush stdout right after printing the command to ensure
3116 3119 proper ordering of commands and command output in the total
3117 3120 output.
3118 3121 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3119 3122 system/getoutput as defaults. The old ones are kept for
3120 3123 compatibility reasons, so no code which uses this library needs
3121 3124 changing.
3122 3125
3123 3126 2003-01-27 *** Released version 0.2.14
3124 3127
3125 3128 2003-01-25 Fernando Perez <fperez@colorado.edu>
3126 3129
3127 3130 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3128 3131 functions defined in previous edit sessions could not be re-edited
3129 3132 (because the temp files were immediately removed). Now temp files
3130 3133 are removed only at IPython's exit.
3131 3134 (Magic.magic_run): Improved @run to perform shell-like expansions
3132 3135 on its arguments (~users and $VARS). With this, @run becomes more
3133 3136 like a normal command-line.
3134 3137
3135 3138 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3136 3139 bugs related to embedding and cleaned up that code. A fairly
3137 3140 important one was the impossibility to access the global namespace
3138 3141 through the embedded IPython (only local variables were visible).
3139 3142
3140 3143 2003-01-14 Fernando Perez <fperez@colorado.edu>
3141 3144
3142 3145 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3143 3146 auto-calling to be a bit more conservative. Now it doesn't get
3144 3147 triggered if any of '!=()<>' are in the rest of the input line, to
3145 3148 allow comparing callables. Thanks to Alex for the heads up.
3146 3149
3147 3150 2003-01-07 Fernando Perez <fperez@colorado.edu>
3148 3151
3149 3152 * IPython/genutils.py (page): fixed estimation of the number of
3150 3153 lines in a string to be paged to simply count newlines. This
3151 3154 prevents over-guessing due to embedded escape sequences. A better
3152 3155 long-term solution would involve stripping out the control chars
3153 3156 for the count, but it's potentially so expensive I just don't
3154 3157 think it's worth doing.
3155 3158
3156 3159 2002-12-19 *** Released version 0.2.14pre50
3157 3160
3158 3161 2002-12-19 Fernando Perez <fperez@colorado.edu>
3159 3162
3160 3163 * tools/release (version): Changed release scripts to inform
3161 3164 Andrea and build a NEWS file with a list of recent changes.
3162 3165
3163 3166 * IPython/ColorANSI.py (__all__): changed terminal detection
3164 3167 code. Seems to work better for xterms without breaking
3165 3168 konsole. Will need more testing to determine if WinXP and Mac OSX
3166 3169 also work ok.
3167 3170
3168 3171 2002-12-18 *** Released version 0.2.14pre49
3169 3172
3170 3173 2002-12-18 Fernando Perez <fperez@colorado.edu>
3171 3174
3172 3175 * Docs: added new info about Mac OSX, from Andrea.
3173 3176
3174 3177 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3175 3178 allow direct plotting of python strings whose format is the same
3176 3179 of gnuplot data files.
3177 3180
3178 3181 2002-12-16 Fernando Perez <fperez@colorado.edu>
3179 3182
3180 3183 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3181 3184 value of exit question to be acknowledged.
3182 3185
3183 3186 2002-12-03 Fernando Perez <fperez@colorado.edu>
3184 3187
3185 3188 * IPython/ipmaker.py: removed generators, which had been added
3186 3189 by mistake in an earlier debugging run. This was causing trouble
3187 3190 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3188 3191 for pointing this out.
3189 3192
3190 3193 2002-11-17 Fernando Perez <fperez@colorado.edu>
3191 3194
3192 3195 * Manual: updated the Gnuplot section.
3193 3196
3194 3197 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3195 3198 a much better split of what goes in Runtime and what goes in
3196 3199 Interactive.
3197 3200
3198 3201 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3199 3202 being imported from iplib.
3200 3203
3201 3204 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3202 3205 for command-passing. Now the global Gnuplot instance is called
3203 3206 'gp' instead of 'g', which was really a far too fragile and
3204 3207 common name.
3205 3208
3206 3209 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3207 3210 bounding boxes generated by Gnuplot for square plots.
3208 3211
3209 3212 * IPython/genutils.py (popkey): new function added. I should
3210 3213 suggest this on c.l.py as a dict method, it seems useful.
3211 3214
3212 3215 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3213 3216 to transparently handle PostScript generation. MUCH better than
3214 3217 the previous plot_eps/replot_eps (which I removed now). The code
3215 3218 is also fairly clean and well documented now (including
3216 3219 docstrings).
3217 3220
3218 3221 2002-11-13 Fernando Perez <fperez@colorado.edu>
3219 3222
3220 3223 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3221 3224 (inconsistent with options).
3222 3225
3223 3226 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3224 3227 manually disabled, I don't know why. Fixed it.
3225 3228 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3226 3229 eps output.
3227 3230
3228 3231 2002-11-12 Fernando Perez <fperez@colorado.edu>
3229 3232
3230 3233 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3231 3234 don't propagate up to caller. Fixes crash reported by François
3232 3235 Pinard.
3233 3236
3234 3237 2002-11-09 Fernando Perez <fperez@colorado.edu>
3235 3238
3236 3239 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3237 3240 history file for new users.
3238 3241 (make_IPython): fixed bug where initial install would leave the
3239 3242 user running in the .ipython dir.
3240 3243 (make_IPython): fixed bug where config dir .ipython would be
3241 3244 created regardless of the given -ipythondir option. Thanks to Cory
3242 3245 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3243 3246
3244 3247 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3245 3248 type confirmations. Will need to use it in all of IPython's code
3246 3249 consistently.
3247 3250
3248 3251 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3249 3252 context to print 31 lines instead of the default 5. This will make
3250 3253 the crash reports extremely detailed in case the problem is in
3251 3254 libraries I don't have access to.
3252 3255
3253 3256 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3254 3257 line of defense' code to still crash, but giving users fair
3255 3258 warning. I don't want internal errors to go unreported: if there's
3256 3259 an internal problem, IPython should crash and generate a full
3257 3260 report.
3258 3261
3259 3262 2002-11-08 Fernando Perez <fperez@colorado.edu>
3260 3263
3261 3264 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3262 3265 otherwise uncaught exceptions which can appear if people set
3263 3266 sys.stdout to something badly broken. Thanks to a crash report
3264 3267 from henni-AT-mail.brainbot.com.
3265 3268
3266 3269 2002-11-04 Fernando Perez <fperez@colorado.edu>
3267 3270
3268 3271 * IPython/iplib.py (InteractiveShell.interact): added
3269 3272 __IPYTHON__active to the builtins. It's a flag which goes on when
3270 3273 the interaction starts and goes off again when it stops. This
3271 3274 allows embedding code to detect being inside IPython. Before this
3272 3275 was done via __IPYTHON__, but that only shows that an IPython
3273 3276 instance has been created.
3274 3277
3275 3278 * IPython/Magic.py (Magic.magic_env): I realized that in a
3276 3279 UserDict, instance.data holds the data as a normal dict. So I
3277 3280 modified @env to return os.environ.data instead of rebuilding a
3278 3281 dict by hand.
3279 3282
3280 3283 2002-11-02 Fernando Perez <fperez@colorado.edu>
3281 3284
3282 3285 * IPython/genutils.py (warn): changed so that level 1 prints no
3283 3286 header. Level 2 is now the default (with 'WARNING' header, as
3284 3287 before). I think I tracked all places where changes were needed in
3285 3288 IPython, but outside code using the old level numbering may have
3286 3289 broken.
3287 3290
3288 3291 * IPython/iplib.py (InteractiveShell.runcode): added this to
3289 3292 handle the tracebacks in SystemExit traps correctly. The previous
3290 3293 code (through interact) was printing more of the stack than
3291 3294 necessary, showing IPython internal code to the user.
3292 3295
3293 3296 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3294 3297 default. Now that the default at the confirmation prompt is yes,
3295 3298 it's not so intrusive. François' argument that ipython sessions
3296 3299 tend to be complex enough not to lose them from an accidental C-d,
3297 3300 is a valid one.
3298 3301
3299 3302 * IPython/iplib.py (InteractiveShell.interact): added a
3300 3303 showtraceback() call to the SystemExit trap, and modified the exit
3301 3304 confirmation to have yes as the default.
3302 3305
3303 3306 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3304 3307 this file. It's been gone from the code for a long time, this was
3305 3308 simply leftover junk.
3306 3309
3307 3310 2002-11-01 Fernando Perez <fperez@colorado.edu>
3308 3311
3309 3312 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3310 3313 added. If set, IPython now traps EOF and asks for
3311 3314 confirmation. After a request by François Pinard.
3312 3315
3313 3316 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3314 3317 of @abort, and with a new (better) mechanism for handling the
3315 3318 exceptions.
3316 3319
3317 3320 2002-10-27 Fernando Perez <fperez@colorado.edu>
3318 3321
3319 3322 * IPython/usage.py (__doc__): updated the --help information and
3320 3323 the ipythonrc file to indicate that -log generates
3321 3324 ./ipython.log. Also fixed the corresponding info in @logstart.
3322 3325 This and several other fixes in the manuals thanks to reports by
3323 3326 François Pinard <pinard-AT-iro.umontreal.ca>.
3324 3327
3325 3328 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3326 3329 refer to @logstart (instead of @log, which doesn't exist).
3327 3330
3328 3331 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3329 3332 AttributeError crash. Thanks to Christopher Armstrong
3330 3333 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3331 3334 introduced recently (in 0.2.14pre37) with the fix to the eval
3332 3335 problem mentioned below.
3333 3336
3334 3337 2002-10-17 Fernando Perez <fperez@colorado.edu>
3335 3338
3336 3339 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3337 3340 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3338 3341
3339 3342 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3340 3343 this function to fix a problem reported by Alex Schmolck. He saw
3341 3344 it with list comprehensions and generators, which were getting
3342 3345 called twice. The real problem was an 'eval' call in testing for
3343 3346 automagic which was evaluating the input line silently.
3344 3347
3345 3348 This is a potentially very nasty bug, if the input has side
3346 3349 effects which must not be repeated. The code is much cleaner now,
3347 3350 without any blanket 'except' left and with a regexp test for
3348 3351 actual function names.
3349 3352
3350 3353 But an eval remains, which I'm not fully comfortable with. I just
3351 3354 don't know how to find out if an expression could be a callable in
3352 3355 the user's namespace without doing an eval on the string. However
3353 3356 that string is now much more strictly checked so that no code
3354 3357 slips by, so the eval should only happen for things that can
3355 3358 really be only function/method names.
3356 3359
3357 3360 2002-10-15 Fernando Perez <fperez@colorado.edu>
3358 3361
3359 3362 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3360 3363 OSX information to main manual, removed README_Mac_OSX file from
3361 3364 distribution. Also updated credits for recent additions.
3362 3365
3363 3366 2002-10-10 Fernando Perez <fperez@colorado.edu>
3364 3367
3365 3368 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3366 3369 terminal-related issues. Many thanks to Andrea Riciputi
3367 3370 <andrea.riciputi-AT-libero.it> for writing it.
3368 3371
3369 3372 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3370 3373 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3371 3374
3372 3375 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3373 3376 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3374 3377 <syver-en-AT-online.no> who both submitted patches for this problem.
3375 3378
3376 3379 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3377 3380 global embedding to make sure that things don't overwrite user
3378 3381 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3379 3382
3380 3383 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3381 3384 compatibility. Thanks to Hayden Callow
3382 3385 <h.callow-AT-elec.canterbury.ac.nz>
3383 3386
3384 3387 2002-10-04 Fernando Perez <fperez@colorado.edu>
3385 3388
3386 3389 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3387 3390 Gnuplot.File objects.
3388 3391
3389 3392 2002-07-23 Fernando Perez <fperez@colorado.edu>
3390 3393
3391 3394 * IPython/genutils.py (timing): Added timings() and timing() for
3392 3395 quick access to the most commonly needed data, the execution
3393 3396 times. Old timing() renamed to timings_out().
3394 3397
3395 3398 2002-07-18 Fernando Perez <fperez@colorado.edu>
3396 3399
3397 3400 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3398 3401 bug with nested instances disrupting the parent's tab completion.
3399 3402
3400 3403 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3401 3404 all_completions code to begin the emacs integration.
3402 3405
3403 3406 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3404 3407 argument to allow titling individual arrays when plotting.
3405 3408
3406 3409 2002-07-15 Fernando Perez <fperez@colorado.edu>
3407 3410
3408 3411 * setup.py (make_shortcut): changed to retrieve the value of
3409 3412 'Program Files' directory from the registry (this value changes in
3410 3413 non-english versions of Windows). Thanks to Thomas Fanslau
3411 3414 <tfanslau-AT-gmx.de> for the report.
3412 3415
3413 3416 2002-07-10 Fernando Perez <fperez@colorado.edu>
3414 3417
3415 3418 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3416 3419 a bug in pdb, which crashes if a line with only whitespace is
3417 3420 entered. Bug report submitted to sourceforge.
3418 3421
3419 3422 2002-07-09 Fernando Perez <fperez@colorado.edu>
3420 3423
3421 3424 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3422 3425 reporting exceptions (it's a bug in inspect.py, I just set a
3423 3426 workaround).
3424 3427
3425 3428 2002-07-08 Fernando Perez <fperez@colorado.edu>
3426 3429
3427 3430 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3428 3431 __IPYTHON__ in __builtins__ to show up in user_ns.
3429 3432
3430 3433 2002-07-03 Fernando Perez <fperez@colorado.edu>
3431 3434
3432 3435 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3433 3436 name from @gp_set_instance to @gp_set_default.
3434 3437
3435 3438 * IPython/ipmaker.py (make_IPython): default editor value set to
3436 3439 '0' (a string), to match the rc file. Otherwise will crash when
3437 3440 .strip() is called on it.
3438 3441
3439 3442
3440 3443 2002-06-28 Fernando Perez <fperez@colorado.edu>
3441 3444
3442 3445 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3443 3446 of files in current directory when a file is executed via
3444 3447 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3445 3448
3446 3449 * setup.py (manfiles): fix for rpm builds, submitted by RA
3447 3450 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3448 3451
3449 3452 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3450 3453 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3451 3454 string!). A. Schmolck caught this one.
3452 3455
3453 3456 2002-06-27 Fernando Perez <fperez@colorado.edu>
3454 3457
3455 3458 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3456 3459 defined files at the cmd line. __name__ wasn't being set to
3457 3460 __main__.
3458 3461
3459 3462 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3460 3463 regular lists and tuples besides Numeric arrays.
3461 3464
3462 3465 * IPython/Prompts.py (CachedOutput.__call__): Added output
3463 3466 supression for input ending with ';'. Similar to Mathematica and
3464 3467 Matlab. The _* vars and Out[] list are still updated, just like
3465 3468 Mathematica behaves.
3466 3469
3467 3470 2002-06-25 Fernando Perez <fperez@colorado.edu>
3468 3471
3469 3472 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3470 3473 .ini extensions for profiels under Windows.
3471 3474
3472 3475 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3473 3476 string form. Fix contributed by Alexander Schmolck
3474 3477 <a.schmolck-AT-gmx.net>
3475 3478
3476 3479 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3477 3480 pre-configured Gnuplot instance.
3478 3481
3479 3482 2002-06-21 Fernando Perez <fperez@colorado.edu>
3480 3483
3481 3484 * IPython/numutils.py (exp_safe): new function, works around the
3482 3485 underflow problems in Numeric.
3483 3486 (log2): New fn. Safe log in base 2: returns exact integer answer
3484 3487 for exact integer powers of 2.
3485 3488
3486 3489 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3487 3490 properly.
3488 3491
3489 3492 2002-06-20 Fernando Perez <fperez@colorado.edu>
3490 3493
3491 3494 * IPython/genutils.py (timing): new function like
3492 3495 Mathematica's. Similar to time_test, but returns more info.
3493 3496
3494 3497 2002-06-18 Fernando Perez <fperez@colorado.edu>
3495 3498
3496 3499 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3497 3500 according to Mike Heeter's suggestions.
3498 3501
3499 3502 2002-06-16 Fernando Perez <fperez@colorado.edu>
3500 3503
3501 3504 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3502 3505 system. GnuplotMagic is gone as a user-directory option. New files
3503 3506 make it easier to use all the gnuplot stuff both from external
3504 3507 programs as well as from IPython. Had to rewrite part of
3505 3508 hardcopy() b/c of a strange bug: often the ps files simply don't
3506 3509 get created, and require a repeat of the command (often several
3507 3510 times).
3508 3511
3509 3512 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3510 3513 resolve output channel at call time, so that if sys.stderr has
3511 3514 been redirected by user this gets honored.
3512 3515
3513 3516 2002-06-13 Fernando Perez <fperez@colorado.edu>
3514 3517
3515 3518 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3516 3519 IPShell. Kept a copy with the old names to avoid breaking people's
3517 3520 embedded code.
3518 3521
3519 3522 * IPython/ipython: simplified it to the bare minimum after
3520 3523 Holger's suggestions. Added info about how to use it in
3521 3524 PYTHONSTARTUP.
3522 3525
3523 3526 * IPython/Shell.py (IPythonShell): changed the options passing
3524 3527 from a string with funky %s replacements to a straight list. Maybe
3525 3528 a bit more typing, but it follows sys.argv conventions, so there's
3526 3529 less special-casing to remember.
3527 3530
3528 3531 2002-06-12 Fernando Perez <fperez@colorado.edu>
3529 3532
3530 3533 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3531 3534 command. Thanks to a suggestion by Mike Heeter.
3532 3535 (Magic.magic_pfile): added behavior to look at filenames if given
3533 3536 arg is not a defined object.
3534 3537 (Magic.magic_save): New @save function to save code snippets. Also
3535 3538 a Mike Heeter idea.
3536 3539
3537 3540 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3538 3541 plot() and replot(). Much more convenient now, especially for
3539 3542 interactive use.
3540 3543
3541 3544 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3542 3545 filenames.
3543 3546
3544 3547 2002-06-02 Fernando Perez <fperez@colorado.edu>
3545 3548
3546 3549 * IPython/Struct.py (Struct.__init__): modified to admit
3547 3550 initialization via another struct.
3548 3551
3549 3552 * IPython/genutils.py (SystemExec.__init__): New stateful
3550 3553 interface to xsys and bq. Useful for writing system scripts.
3551 3554
3552 3555 2002-05-30 Fernando Perez <fperez@colorado.edu>
3553 3556
3554 3557 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3555 3558 documents. This will make the user download smaller (it's getting
3556 3559 too big).
3557 3560
3558 3561 2002-05-29 Fernando Perez <fperez@colorado.edu>
3559 3562
3560 3563 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3561 3564 fix problems with shelve and pickle. Seems to work, but I don't
3562 3565 know if corner cases break it. Thanks to Mike Heeter
3563 3566 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3564 3567
3565 3568 2002-05-24 Fernando Perez <fperez@colorado.edu>
3566 3569
3567 3570 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3568 3571 macros having broken.
3569 3572
3570 3573 2002-05-21 Fernando Perez <fperez@colorado.edu>
3571 3574
3572 3575 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3573 3576 introduced logging bug: all history before logging started was
3574 3577 being written one character per line! This came from the redesign
3575 3578 of the input history as a special list which slices to strings,
3576 3579 not to lists.
3577 3580
3578 3581 2002-05-20 Fernando Perez <fperez@colorado.edu>
3579 3582
3580 3583 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3581 3584 be an attribute of all classes in this module. The design of these
3582 3585 classes needs some serious overhauling.
3583 3586
3584 3587 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3585 3588 which was ignoring '_' in option names.
3586 3589
3587 3590 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3588 3591 'Verbose_novars' to 'Context' and made it the new default. It's a
3589 3592 bit more readable and also safer than verbose.
3590 3593
3591 3594 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3592 3595 triple-quoted strings.
3593 3596
3594 3597 * IPython/OInspect.py (__all__): new module exposing the object
3595 3598 introspection facilities. Now the corresponding magics are dummy
3596 3599 wrappers around this. Having this module will make it much easier
3597 3600 to put these functions into our modified pdb.
3598 3601 This new object inspector system uses the new colorizing module,
3599 3602 so source code and other things are nicely syntax highlighted.
3600 3603
3601 3604 2002-05-18 Fernando Perez <fperez@colorado.edu>
3602 3605
3603 3606 * IPython/ColorANSI.py: Split the coloring tools into a separate
3604 3607 module so I can use them in other code easier (they were part of
3605 3608 ultraTB).
3606 3609
3607 3610 2002-05-17 Fernando Perez <fperez@colorado.edu>
3608 3611
3609 3612 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3610 3613 fixed it to set the global 'g' also to the called instance, as
3611 3614 long as 'g' was still a gnuplot instance (so it doesn't overwrite
3612 3615 user's 'g' variables).
3613 3616
3614 3617 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
3615 3618 global variables (aliases to _ih,_oh) so that users which expect
3616 3619 In[5] or Out[7] to work aren't unpleasantly surprised.
3617 3620 (InputList.__getslice__): new class to allow executing slices of
3618 3621 input history directly. Very simple class, complements the use of
3619 3622 macros.
3620 3623
3621 3624 2002-05-16 Fernando Perez <fperez@colorado.edu>
3622 3625
3623 3626 * setup.py (docdirbase): make doc directory be just doc/IPython
3624 3627 without version numbers, it will reduce clutter for users.
3625 3628
3626 3629 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
3627 3630 execfile call to prevent possible memory leak. See for details:
3628 3631 http://mail.python.org/pipermail/python-list/2002-February/088476.html
3629 3632
3630 3633 2002-05-15 Fernando Perez <fperez@colorado.edu>
3631 3634
3632 3635 * IPython/Magic.py (Magic.magic_psource): made the object
3633 3636 introspection names be more standard: pdoc, pdef, pfile and
3634 3637 psource. They all print/page their output, and it makes
3635 3638 remembering them easier. Kept old names for compatibility as
3636 3639 aliases.
3637 3640
3638 3641 2002-05-14 Fernando Perez <fperez@colorado.edu>
3639 3642
3640 3643 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3641 3644 what the mouse problem was. The trick is to use gnuplot with temp
3642 3645 files and NOT with pipes (for data communication), because having
3643 3646 both pipes and the mouse on is bad news.
3644 3647
3645 3648 2002-05-13 Fernando Perez <fperez@colorado.edu>
3646 3649
3647 3650 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3648 3651 bug. Information would be reported about builtins even when
3649 3652 user-defined functions overrode them.
3650 3653
3651 3654 2002-05-11 Fernando Perez <fperez@colorado.edu>
3652 3655
3653 3656 * IPython/__init__.py (__all__): removed FlexCompleter from
3654 3657 __all__ so that things don't fail in platforms without readline.
3655 3658
3656 3659 2002-05-10 Fernando Perez <fperez@colorado.edu>
3657 3660
3658 3661 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3659 3662 it requires Numeric, effectively making Numeric a dependency for
3660 3663 IPython.
3661 3664
3662 3665 * Released 0.2.13
3663 3666
3664 3667 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3665 3668 profiler interface. Now all the major options from the profiler
3666 3669 module are directly supported in IPython, both for single
3667 3670 expressions (@prun) and for full programs (@run -p).
3668 3671
3669 3672 2002-05-09 Fernando Perez <fperez@colorado.edu>
3670 3673
3671 3674 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3672 3675 magic properly formatted for screen.
3673 3676
3674 3677 * setup.py (make_shortcut): Changed things to put pdf version in
3675 3678 doc/ instead of doc/manual (had to change lyxport a bit).
3676 3679
3677 3680 * IPython/Magic.py (Profile.string_stats): made profile runs go
3678 3681 through pager (they are long and a pager allows searching, saving,
3679 3682 etc.)
3680 3683
3681 3684 2002-05-08 Fernando Perez <fperez@colorado.edu>
3682 3685
3683 3686 * Released 0.2.12
3684 3687
3685 3688 2002-05-06 Fernando Perez <fperez@colorado.edu>
3686 3689
3687 3690 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
3688 3691 introduced); 'hist n1 n2' was broken.
3689 3692 (Magic.magic_pdb): added optional on/off arguments to @pdb
3690 3693 (Magic.magic_run): added option -i to @run, which executes code in
3691 3694 the IPython namespace instead of a clean one. Also added @irun as
3692 3695 an alias to @run -i.
3693 3696
3694 3697 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3695 3698 fixed (it didn't really do anything, the namespaces were wrong).
3696 3699
3697 3700 * IPython/Debugger.py (__init__): Added workaround for python 2.1
3698 3701
3699 3702 * IPython/__init__.py (__all__): Fixed package namespace, now
3700 3703 'import IPython' does give access to IPython.<all> as
3701 3704 expected. Also renamed __release__ to Release.
3702 3705
3703 3706 * IPython/Debugger.py (__license__): created new Pdb class which
3704 3707 functions like a drop-in for the normal pdb.Pdb but does NOT
3705 3708 import readline by default. This way it doesn't muck up IPython's
3706 3709 readline handling, and now tab-completion finally works in the
3707 3710 debugger -- sort of. It completes things globally visible, but the
3708 3711 completer doesn't track the stack as pdb walks it. That's a bit
3709 3712 tricky, and I'll have to implement it later.
3710 3713
3711 3714 2002-05-05 Fernando Perez <fperez@colorado.edu>
3712 3715
3713 3716 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
3714 3717 magic docstrings when printed via ? (explicit \'s were being
3715 3718 printed).
3716 3719
3717 3720 * IPython/ipmaker.py (make_IPython): fixed namespace
3718 3721 identification bug. Now variables loaded via logs or command-line
3719 3722 files are recognized in the interactive namespace by @who.
3720 3723
3721 3724 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
3722 3725 log replay system stemming from the string form of Structs.
3723 3726
3724 3727 * IPython/Magic.py (Macro.__init__): improved macros to properly
3725 3728 handle magic commands in them.
3726 3729 (Magic.magic_logstart): usernames are now expanded so 'logstart
3727 3730 ~/mylog' now works.
3728 3731
3729 3732 * IPython/iplib.py (complete): fixed bug where paths starting with
3730 3733 '/' would be completed as magic names.
3731 3734
3732 3735 2002-05-04 Fernando Perez <fperez@colorado.edu>
3733 3736
3734 3737 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
3735 3738 allow running full programs under the profiler's control.
3736 3739
3737 3740 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
3738 3741 mode to report exceptions verbosely but without formatting
3739 3742 variables. This addresses the issue of ipython 'freezing' (it's
3740 3743 not frozen, but caught in an expensive formatting loop) when huge
3741 3744 variables are in the context of an exception.
3742 3745 (VerboseTB.text): Added '--->' markers at line where exception was
3743 3746 triggered. Much clearer to read, especially in NoColor modes.
3744 3747
3745 3748 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
3746 3749 implemented in reverse when changing to the new parse_options().
3747 3750
3748 3751 2002-05-03 Fernando Perez <fperez@colorado.edu>
3749 3752
3750 3753 * IPython/Magic.py (Magic.parse_options): new function so that
3751 3754 magics can parse options easier.
3752 3755 (Magic.magic_prun): new function similar to profile.run(),
3753 3756 suggested by Chris Hart.
3754 3757 (Magic.magic_cd): fixed behavior so that it only changes if
3755 3758 directory actually is in history.
3756 3759
3757 3760 * IPython/usage.py (__doc__): added information about potential
3758 3761 slowness of Verbose exception mode when there are huge data
3759 3762 structures to be formatted (thanks to Archie Paulson).
3760 3763
3761 3764 * IPython/ipmaker.py (make_IPython): Changed default logging
3762 3765 (when simply called with -log) to use curr_dir/ipython.log in
3763 3766 rotate mode. Fixed crash which was occuring with -log before
3764 3767 (thanks to Jim Boyle).
3765 3768
3766 3769 2002-05-01 Fernando Perez <fperez@colorado.edu>
3767 3770
3768 3771 * Released 0.2.11 for these fixes (mainly the ultraTB one which
3769 3772 was nasty -- though somewhat of a corner case).
3770 3773
3771 3774 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
3772 3775 text (was a bug).
3773 3776
3774 3777 2002-04-30 Fernando Perez <fperez@colorado.edu>
3775 3778
3776 3779 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
3777 3780 a print after ^D or ^C from the user so that the In[] prompt
3778 3781 doesn't over-run the gnuplot one.
3779 3782
3780 3783 2002-04-29 Fernando Perez <fperez@colorado.edu>
3781 3784
3782 3785 * Released 0.2.10
3783 3786
3784 3787 * IPython/__release__.py (version): get date dynamically.
3785 3788
3786 3789 * Misc. documentation updates thanks to Arnd's comments. Also ran
3787 3790 a full spellcheck on the manual (hadn't been done in a while).
3788 3791
3789 3792 2002-04-27 Fernando Perez <fperez@colorado.edu>
3790 3793
3791 3794 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
3792 3795 starting a log in mid-session would reset the input history list.
3793 3796
3794 3797 2002-04-26 Fernando Perez <fperez@colorado.edu>
3795 3798
3796 3799 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
3797 3800 all files were being included in an update. Now anything in
3798 3801 UserConfig that matches [A-Za-z]*.py will go (this excludes
3799 3802 __init__.py)
3800 3803
3801 3804 2002-04-25 Fernando Perez <fperez@colorado.edu>
3802 3805
3803 3806 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
3804 3807 to __builtins__ so that any form of embedded or imported code can
3805 3808 test for being inside IPython.
3806 3809
3807 3810 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
3808 3811 changed to GnuplotMagic because it's now an importable module,
3809 3812 this makes the name follow that of the standard Gnuplot module.
3810 3813 GnuplotMagic can now be loaded at any time in mid-session.
3811 3814
3812 3815 2002-04-24 Fernando Perez <fperez@colorado.edu>
3813 3816
3814 3817 * IPython/numutils.py: removed SIUnits. It doesn't properly set
3815 3818 the globals (IPython has its own namespace) and the
3816 3819 PhysicalQuantity stuff is much better anyway.
3817 3820
3818 3821 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
3819 3822 embedding example to standard user directory for
3820 3823 distribution. Also put it in the manual.
3821 3824
3822 3825 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
3823 3826 instance as first argument (so it doesn't rely on some obscure
3824 3827 hidden global).
3825 3828
3826 3829 * IPython/UserConfig/ipythonrc.py: put () back in accepted
3827 3830 delimiters. While it prevents ().TAB from working, it allows
3828 3831 completions in open (... expressions. This is by far a more common
3829 3832 case.
3830 3833
3831 3834 2002-04-23 Fernando Perez <fperez@colorado.edu>
3832 3835
3833 3836 * IPython/Extensions/InterpreterPasteInput.py: new
3834 3837 syntax-processing module for pasting lines with >>> or ... at the
3835 3838 start.
3836 3839
3837 3840 * IPython/Extensions/PhysicalQ_Interactive.py
3838 3841 (PhysicalQuantityInteractive.__int__): fixed to work with either
3839 3842 Numeric or math.
3840 3843
3841 3844 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
3842 3845 provided profiles. Now we have:
3843 3846 -math -> math module as * and cmath with its own namespace.
3844 3847 -numeric -> Numeric as *, plus gnuplot & grace
3845 3848 -physics -> same as before
3846 3849
3847 3850 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
3848 3851 user-defined magics wouldn't be found by @magic if they were
3849 3852 defined as class methods. Also cleaned up the namespace search
3850 3853 logic and the string building (to use %s instead of many repeated
3851 3854 string adds).
3852 3855
3853 3856 * IPython/UserConfig/example-magic.py (magic_foo): updated example
3854 3857 of user-defined magics to operate with class methods (cleaner, in
3855 3858 line with the gnuplot code).
3856 3859
3857 3860 2002-04-22 Fernando Perez <fperez@colorado.edu>
3858 3861
3859 3862 * setup.py: updated dependency list so that manual is updated when
3860 3863 all included files change.
3861 3864
3862 3865 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
3863 3866 the delimiter removal option (the fix is ugly right now).
3864 3867
3865 3868 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
3866 3869 all of the math profile (quicker loading, no conflict between
3867 3870 g-9.8 and g-gnuplot).
3868 3871
3869 3872 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
3870 3873 name of post-mortem files to IPython_crash_report.txt.
3871 3874
3872 3875 * Cleanup/update of the docs. Added all the new readline info and
3873 3876 formatted all lists as 'real lists'.
3874 3877
3875 3878 * IPython/ipmaker.py (make_IPython): removed now-obsolete
3876 3879 tab-completion options, since the full readline parse_and_bind is
3877 3880 now accessible.
3878 3881
3879 3882 * IPython/iplib.py (InteractiveShell.init_readline): Changed
3880 3883 handling of readline options. Now users can specify any string to
3881 3884 be passed to parse_and_bind(), as well as the delimiters to be
3882 3885 removed.
3883 3886 (InteractiveShell.__init__): Added __name__ to the global
3884 3887 namespace so that things like Itpl which rely on its existence
3885 3888 don't crash.
3886 3889 (InteractiveShell._prefilter): Defined the default with a _ so
3887 3890 that prefilter() is easier to override, while the default one
3888 3891 remains available.
3889 3892
3890 3893 2002-04-18 Fernando Perez <fperez@colorado.edu>
3891 3894
3892 3895 * Added information about pdb in the docs.
3893 3896
3894 3897 2002-04-17 Fernando Perez <fperez@colorado.edu>
3895 3898
3896 3899 * IPython/ipmaker.py (make_IPython): added rc_override option to
3897 3900 allow passing config options at creation time which may override
3898 3901 anything set in the config files or command line. This is
3899 3902 particularly useful for configuring embedded instances.
3900 3903
3901 3904 2002-04-15 Fernando Perez <fperez@colorado.edu>
3902 3905
3903 3906 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
3904 3907 crash embedded instances because of the input cache falling out of
3905 3908 sync with the output counter.
3906 3909
3907 3910 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
3908 3911 mode which calls pdb after an uncaught exception in IPython itself.
3909 3912
3910 3913 2002-04-14 Fernando Perez <fperez@colorado.edu>
3911 3914
3912 3915 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
3913 3916 readline, fix it back after each call.
3914 3917
3915 3918 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
3916 3919 method to force all access via __call__(), which guarantees that
3917 3920 traceback references are properly deleted.
3918 3921
3919 3922 * IPython/Prompts.py (CachedOutput._display): minor fixes to
3920 3923 improve printing when pprint is in use.
3921 3924
3922 3925 2002-04-13 Fernando Perez <fperez@colorado.edu>
3923 3926
3924 3927 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
3925 3928 exceptions aren't caught anymore. If the user triggers one, he
3926 3929 should know why he's doing it and it should go all the way up,
3927 3930 just like any other exception. So now @abort will fully kill the
3928 3931 embedded interpreter and the embedding code (unless that happens
3929 3932 to catch SystemExit).
3930 3933
3931 3934 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
3932 3935 and a debugger() method to invoke the interactive pdb debugger
3933 3936 after printing exception information. Also added the corresponding
3934 3937 -pdb option and @pdb magic to control this feature, and updated
3935 3938 the docs. After a suggestion from Christopher Hart
3936 3939 (hart-AT-caltech.edu).
3937 3940
3938 3941 2002-04-12 Fernando Perez <fperez@colorado.edu>
3939 3942
3940 3943 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
3941 3944 the exception handlers defined by the user (not the CrashHandler)
3942 3945 so that user exceptions don't trigger an ipython bug report.
3943 3946
3944 3947 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
3945 3948 configurable (it should have always been so).
3946 3949
3947 3950 2002-03-26 Fernando Perez <fperez@colorado.edu>
3948 3951
3949 3952 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
3950 3953 and there to fix embedding namespace issues. This should all be
3951 3954 done in a more elegant way.
3952 3955
3953 3956 2002-03-25 Fernando Perez <fperez@colorado.edu>
3954 3957
3955 3958 * IPython/genutils.py (get_home_dir): Try to make it work under
3956 3959 win9x also.
3957 3960
3958 3961 2002-03-20 Fernando Perez <fperez@colorado.edu>
3959 3962
3960 3963 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
3961 3964 sys.displayhook untouched upon __init__.
3962 3965
3963 3966 2002-03-19 Fernando Perez <fperez@colorado.edu>
3964 3967
3965 3968 * Released 0.2.9 (for embedding bug, basically).
3966 3969
3967 3970 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
3968 3971 exceptions so that enclosing shell's state can be restored.
3969 3972
3970 3973 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
3971 3974 naming conventions in the .ipython/ dir.
3972 3975
3973 3976 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
3974 3977 from delimiters list so filenames with - in them get expanded.
3975 3978
3976 3979 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
3977 3980 sys.displayhook not being properly restored after an embedded call.
3978 3981
3979 3982 2002-03-18 Fernando Perez <fperez@colorado.edu>
3980 3983
3981 3984 * Released 0.2.8
3982 3985
3983 3986 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
3984 3987 some files weren't being included in a -upgrade.
3985 3988 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
3986 3989 on' so that the first tab completes.
3987 3990 (InteractiveShell.handle_magic): fixed bug with spaces around
3988 3991 quotes breaking many magic commands.
3989 3992
3990 3993 * setup.py: added note about ignoring the syntax error messages at
3991 3994 installation.
3992 3995
3993 3996 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
3994 3997 streamlining the gnuplot interface, now there's only one magic @gp.
3995 3998
3996 3999 2002-03-17 Fernando Perez <fperez@colorado.edu>
3997 4000
3998 4001 * IPython/UserConfig/magic_gnuplot.py: new name for the
3999 4002 example-magic_pm.py file. Much enhanced system, now with a shell
4000 4003 for communicating directly with gnuplot, one command at a time.
4001 4004
4002 4005 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4003 4006 setting __name__=='__main__'.
4004 4007
4005 4008 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4006 4009 mini-shell for accessing gnuplot from inside ipython. Should
4007 4010 extend it later for grace access too. Inspired by Arnd's
4008 4011 suggestion.
4009 4012
4010 4013 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4011 4014 calling magic functions with () in their arguments. Thanks to Arnd
4012 4015 Baecker for pointing this to me.
4013 4016
4014 4017 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4015 4018 infinitely for integer or complex arrays (only worked with floats).
4016 4019
4017 4020 2002-03-16 Fernando Perez <fperez@colorado.edu>
4018 4021
4019 4022 * setup.py: Merged setup and setup_windows into a single script
4020 4023 which properly handles things for windows users.
4021 4024
4022 4025 2002-03-15 Fernando Perez <fperez@colorado.edu>
4023 4026
4024 4027 * Big change to the manual: now the magics are all automatically
4025 4028 documented. This information is generated from their docstrings
4026 4029 and put in a latex file included by the manual lyx file. This way
4027 4030 we get always up to date information for the magics. The manual
4028 4031 now also has proper version information, also auto-synced.
4029 4032
4030 4033 For this to work, an undocumented --magic_docstrings option was added.
4031 4034
4032 4035 2002-03-13 Fernando Perez <fperez@colorado.edu>
4033 4036
4034 4037 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4035 4038 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4036 4039
4037 4040 2002-03-12 Fernando Perez <fperez@colorado.edu>
4038 4041
4039 4042 * IPython/ultraTB.py (TermColors): changed color escapes again to
4040 4043 fix the (old, reintroduced) line-wrapping bug. Basically, if
4041 4044 \001..\002 aren't given in the color escapes, lines get wrapped
4042 4045 weirdly. But giving those screws up old xterms and emacs terms. So
4043 4046 I added some logic for emacs terms to be ok, but I can't identify old
4044 4047 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4045 4048
4046 4049 2002-03-10 Fernando Perez <fperez@colorado.edu>
4047 4050
4048 4051 * IPython/usage.py (__doc__): Various documentation cleanups and
4049 4052 updates, both in usage docstrings and in the manual.
4050 4053
4051 4054 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4052 4055 handling of caching. Set minimum acceptabe value for having a
4053 4056 cache at 20 values.
4054 4057
4055 4058 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4056 4059 install_first_time function to a method, renamed it and added an
4057 4060 'upgrade' mode. Now people can update their config directory with
4058 4061 a simple command line switch (-upgrade, also new).
4059 4062
4060 4063 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4061 4064 @file (convenient for automagic users under Python >= 2.2).
4062 4065 Removed @files (it seemed more like a plural than an abbrev. of
4063 4066 'file show').
4064 4067
4065 4068 * IPython/iplib.py (install_first_time): Fixed crash if there were
4066 4069 backup files ('~') in .ipython/ install directory.
4067 4070
4068 4071 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4069 4072 system. Things look fine, but these changes are fairly
4070 4073 intrusive. Test them for a few days.
4071 4074
4072 4075 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4073 4076 the prompts system. Now all in/out prompt strings are user
4074 4077 controllable. This is particularly useful for embedding, as one
4075 4078 can tag embedded instances with particular prompts.
4076 4079
4077 4080 Also removed global use of sys.ps1/2, which now allows nested
4078 4081 embeddings without any problems. Added command-line options for
4079 4082 the prompt strings.
4080 4083
4081 4084 2002-03-08 Fernando Perez <fperez@colorado.edu>
4082 4085
4083 4086 * IPython/UserConfig/example-embed-short.py (ipshell): added
4084 4087 example file with the bare minimum code for embedding.
4085 4088
4086 4089 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4087 4090 functionality for the embeddable shell to be activated/deactivated
4088 4091 either globally or at each call.
4089 4092
4090 4093 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4091 4094 rewriting the prompt with '--->' for auto-inputs with proper
4092 4095 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4093 4096 this is handled by the prompts class itself, as it should.
4094 4097
4095 4098 2002-03-05 Fernando Perez <fperez@colorado.edu>
4096 4099
4097 4100 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4098 4101 @logstart to avoid name clashes with the math log function.
4099 4102
4100 4103 * Big updates to X/Emacs section of the manual.
4101 4104
4102 4105 * Removed ipython_emacs. Milan explained to me how to pass
4103 4106 arguments to ipython through Emacs. Some day I'm going to end up
4104 4107 learning some lisp...
4105 4108
4106 4109 2002-03-04 Fernando Perez <fperez@colorado.edu>
4107 4110
4108 4111 * IPython/ipython_emacs: Created script to be used as the
4109 4112 py-python-command Emacs variable so we can pass IPython
4110 4113 parameters. I can't figure out how to tell Emacs directly to pass
4111 4114 parameters to IPython, so a dummy shell script will do it.
4112 4115
4113 4116 Other enhancements made for things to work better under Emacs'
4114 4117 various types of terminals. Many thanks to Milan Zamazal
4115 4118 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4116 4119
4117 4120 2002-03-01 Fernando Perez <fperez@colorado.edu>
4118 4121
4119 4122 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4120 4123 that loading of readline is now optional. This gives better
4121 4124 control to emacs users.
4122 4125
4123 4126 * IPython/ultraTB.py (__date__): Modified color escape sequences
4124 4127 and now things work fine under xterm and in Emacs' term buffers
4125 4128 (though not shell ones). Well, in emacs you get colors, but all
4126 4129 seem to be 'light' colors (no difference between dark and light
4127 4130 ones). But the garbage chars are gone, and also in xterms. It
4128 4131 seems that now I'm using 'cleaner' ansi sequences.
4129 4132
4130 4133 2002-02-21 Fernando Perez <fperez@colorado.edu>
4131 4134
4132 4135 * Released 0.2.7 (mainly to publish the scoping fix).
4133 4136
4134 4137 * IPython/Logger.py (Logger.logstate): added. A corresponding
4135 4138 @logstate magic was created.
4136 4139
4137 4140 * IPython/Magic.py: fixed nested scoping problem under Python
4138 4141 2.1.x (automagic wasn't working).
4139 4142
4140 4143 2002-02-20 Fernando Perez <fperez@colorado.edu>
4141 4144
4142 4145 * Released 0.2.6.
4143 4146
4144 4147 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4145 4148 option so that logs can come out without any headers at all.
4146 4149
4147 4150 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4148 4151 SciPy.
4149 4152
4150 4153 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4151 4154 that embedded IPython calls don't require vars() to be explicitly
4152 4155 passed. Now they are extracted from the caller's frame (code
4153 4156 snatched from Eric Jones' weave). Added better documentation to
4154 4157 the section on embedding and the example file.
4155 4158
4156 4159 * IPython/genutils.py (page): Changed so that under emacs, it just
4157 4160 prints the string. You can then page up and down in the emacs
4158 4161 buffer itself. This is how the builtin help() works.
4159 4162
4160 4163 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4161 4164 macro scoping: macros need to be executed in the user's namespace
4162 4165 to work as if they had been typed by the user.
4163 4166
4164 4167 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4165 4168 execute automatically (no need to type 'exec...'). They then
4166 4169 behave like 'true macros'. The printing system was also modified
4167 4170 for this to work.
4168 4171
4169 4172 2002-02-19 Fernando Perez <fperez@colorado.edu>
4170 4173
4171 4174 * IPython/genutils.py (page_file): new function for paging files
4172 4175 in an OS-independent way. Also necessary for file viewing to work
4173 4176 well inside Emacs buffers.
4174 4177 (page): Added checks for being in an emacs buffer.
4175 4178 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4176 4179 same bug in iplib.
4177 4180
4178 4181 2002-02-18 Fernando Perez <fperez@colorado.edu>
4179 4182
4180 4183 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4181 4184 of readline so that IPython can work inside an Emacs buffer.
4182 4185
4183 4186 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4184 4187 method signatures (they weren't really bugs, but it looks cleaner
4185 4188 and keeps PyChecker happy).
4186 4189
4187 4190 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4188 4191 for implementing various user-defined hooks. Currently only
4189 4192 display is done.
4190 4193
4191 4194 * IPython/Prompts.py (CachedOutput._display): changed display
4192 4195 functions so that they can be dynamically changed by users easily.
4193 4196
4194 4197 * IPython/Extensions/numeric_formats.py (num_display): added an
4195 4198 extension for printing NumPy arrays in flexible manners. It
4196 4199 doesn't do anything yet, but all the structure is in
4197 4200 place. Ultimately the plan is to implement output format control
4198 4201 like in Octave.
4199 4202
4200 4203 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4201 4204 methods are found at run-time by all the automatic machinery.
4202 4205
4203 4206 2002-02-17 Fernando Perez <fperez@colorado.edu>
4204 4207
4205 4208 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4206 4209 whole file a little.
4207 4210
4208 4211 * ToDo: closed this document. Now there's a new_design.lyx
4209 4212 document for all new ideas. Added making a pdf of it for the
4210 4213 end-user distro.
4211 4214
4212 4215 * IPython/Logger.py (Logger.switch_log): Created this to replace
4213 4216 logon() and logoff(). It also fixes a nasty crash reported by
4214 4217 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4215 4218
4216 4219 * IPython/iplib.py (complete): got auto-completion to work with
4217 4220 automagic (I had wanted this for a long time).
4218 4221
4219 4222 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4220 4223 to @file, since file() is now a builtin and clashes with automagic
4221 4224 for @file.
4222 4225
4223 4226 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4224 4227 of this was previously in iplib, which had grown to more than 2000
4225 4228 lines, way too long. No new functionality, but it makes managing
4226 4229 the code a bit easier.
4227 4230
4228 4231 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4229 4232 information to crash reports.
4230 4233
4231 4234 2002-02-12 Fernando Perez <fperez@colorado.edu>
4232 4235
4233 4236 * Released 0.2.5.
4234 4237
4235 4238 2002-02-11 Fernando Perez <fperez@colorado.edu>
4236 4239
4237 4240 * Wrote a relatively complete Windows installer. It puts
4238 4241 everything in place, creates Start Menu entries and fixes the
4239 4242 color issues. Nothing fancy, but it works.
4240 4243
4241 4244 2002-02-10 Fernando Perez <fperez@colorado.edu>
4242 4245
4243 4246 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4244 4247 os.path.expanduser() call so that we can type @run ~/myfile.py and
4245 4248 have thigs work as expected.
4246 4249
4247 4250 * IPython/genutils.py (page): fixed exception handling so things
4248 4251 work both in Unix and Windows correctly. Quitting a pager triggers
4249 4252 an IOError/broken pipe in Unix, and in windows not finding a pager
4250 4253 is also an IOError, so I had to actually look at the return value
4251 4254 of the exception, not just the exception itself. Should be ok now.
4252 4255
4253 4256 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4254 4257 modified to allow case-insensitive color scheme changes.
4255 4258
4256 4259 2002-02-09 Fernando Perez <fperez@colorado.edu>
4257 4260
4258 4261 * IPython/genutils.py (native_line_ends): new function to leave
4259 4262 user config files with os-native line-endings.
4260 4263
4261 4264 * README and manual updates.
4262 4265
4263 4266 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4264 4267 instead of StringType to catch Unicode strings.
4265 4268
4266 4269 * IPython/genutils.py (filefind): fixed bug for paths with
4267 4270 embedded spaces (very common in Windows).
4268 4271
4269 4272 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4270 4273 files under Windows, so that they get automatically associated
4271 4274 with a text editor. Windows makes it a pain to handle
4272 4275 extension-less files.
4273 4276
4274 4277 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4275 4278 warning about readline only occur for Posix. In Windows there's no
4276 4279 way to get readline, so why bother with the warning.
4277 4280
4278 4281 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4279 4282 for __str__ instead of dir(self), since dir() changed in 2.2.
4280 4283
4281 4284 * Ported to Windows! Tested on XP, I suspect it should work fine
4282 4285 on NT/2000, but I don't think it will work on 98 et al. That
4283 4286 series of Windows is such a piece of junk anyway that I won't try
4284 4287 porting it there. The XP port was straightforward, showed a few
4285 4288 bugs here and there (fixed all), in particular some string
4286 4289 handling stuff which required considering Unicode strings (which
4287 4290 Windows uses). This is good, but hasn't been too tested :) No
4288 4291 fancy installer yet, I'll put a note in the manual so people at
4289 4292 least make manually a shortcut.
4290 4293
4291 4294 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4292 4295 into a single one, "colors". This now controls both prompt and
4293 4296 exception color schemes, and can be changed both at startup
4294 4297 (either via command-line switches or via ipythonrc files) and at
4295 4298 runtime, with @colors.
4296 4299 (Magic.magic_run): renamed @prun to @run and removed the old
4297 4300 @run. The two were too similar to warrant keeping both.
4298 4301
4299 4302 2002-02-03 Fernando Perez <fperez@colorado.edu>
4300 4303
4301 4304 * IPython/iplib.py (install_first_time): Added comment on how to
4302 4305 configure the color options for first-time users. Put a <return>
4303 4306 request at the end so that small-terminal users get a chance to
4304 4307 read the startup info.
4305 4308
4306 4309 2002-01-23 Fernando Perez <fperez@colorado.edu>
4307 4310
4308 4311 * IPython/iplib.py (CachedOutput.update): Changed output memory
4309 4312 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4310 4313 input history we still use _i. Did this b/c these variable are
4311 4314 very commonly used in interactive work, so the less we need to
4312 4315 type the better off we are.
4313 4316 (Magic.magic_prun): updated @prun to better handle the namespaces
4314 4317 the file will run in, including a fix for __name__ not being set
4315 4318 before.
4316 4319
4317 4320 2002-01-20 Fernando Perez <fperez@colorado.edu>
4318 4321
4319 4322 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4320 4323 extra garbage for Python 2.2. Need to look more carefully into
4321 4324 this later.
4322 4325
4323 4326 2002-01-19 Fernando Perez <fperez@colorado.edu>
4324 4327
4325 4328 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4326 4329 display SyntaxError exceptions properly formatted when they occur
4327 4330 (they can be triggered by imported code).
4328 4331
4329 4332 2002-01-18 Fernando Perez <fperez@colorado.edu>
4330 4333
4331 4334 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4332 4335 SyntaxError exceptions are reported nicely formatted, instead of
4333 4336 spitting out only offset information as before.
4334 4337 (Magic.magic_prun): Added the @prun function for executing
4335 4338 programs with command line args inside IPython.
4336 4339
4337 4340 2002-01-16 Fernando Perez <fperez@colorado.edu>
4338 4341
4339 4342 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4340 4343 to *not* include the last item given in a range. This brings their
4341 4344 behavior in line with Python's slicing:
4342 4345 a[n1:n2] -> a[n1]...a[n2-1]
4343 4346 It may be a bit less convenient, but I prefer to stick to Python's
4344 4347 conventions *everywhere*, so users never have to wonder.
4345 4348 (Magic.magic_macro): Added @macro function to ease the creation of
4346 4349 macros.
4347 4350
4348 4351 2002-01-05 Fernando Perez <fperez@colorado.edu>
4349 4352
4350 4353 * Released 0.2.4.
4351 4354
4352 4355 * IPython/iplib.py (Magic.magic_pdef):
4353 4356 (InteractiveShell.safe_execfile): report magic lines and error
4354 4357 lines without line numbers so one can easily copy/paste them for
4355 4358 re-execution.
4356 4359
4357 4360 * Updated manual with recent changes.
4358 4361
4359 4362 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4360 4363 docstring printing when class? is called. Very handy for knowing
4361 4364 how to create class instances (as long as __init__ is well
4362 4365 documented, of course :)
4363 4366 (Magic.magic_doc): print both class and constructor docstrings.
4364 4367 (Magic.magic_pdef): give constructor info if passed a class and
4365 4368 __call__ info for callable object instances.
4366 4369
4367 4370 2002-01-04 Fernando Perez <fperez@colorado.edu>
4368 4371
4369 4372 * Made deep_reload() off by default. It doesn't always work
4370 4373 exactly as intended, so it's probably safer to have it off. It's
4371 4374 still available as dreload() anyway, so nothing is lost.
4372 4375
4373 4376 2002-01-02 Fernando Perez <fperez@colorado.edu>
4374 4377
4375 4378 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4376 4379 so I wanted an updated release).
4377 4380
4378 4381 2001-12-27 Fernando Perez <fperez@colorado.edu>
4379 4382
4380 4383 * IPython/iplib.py (InteractiveShell.interact): Added the original
4381 4384 code from 'code.py' for this module in order to change the
4382 4385 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4383 4386 the history cache would break when the user hit Ctrl-C, and
4384 4387 interact() offers no way to add any hooks to it.
4385 4388
4386 4389 2001-12-23 Fernando Perez <fperez@colorado.edu>
4387 4390
4388 4391 * setup.py: added check for 'MANIFEST' before trying to remove
4389 4392 it. Thanks to Sean Reifschneider.
4390 4393
4391 4394 2001-12-22 Fernando Perez <fperez@colorado.edu>
4392 4395
4393 4396 * Released 0.2.2.
4394 4397
4395 4398 * Finished (reasonably) writing the manual. Later will add the
4396 4399 python-standard navigation stylesheets, but for the time being
4397 4400 it's fairly complete. Distribution will include html and pdf
4398 4401 versions.
4399 4402
4400 4403 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4401 4404 (MayaVi author).
4402 4405
4403 4406 2001-12-21 Fernando Perez <fperez@colorado.edu>
4404 4407
4405 4408 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4406 4409 good public release, I think (with the manual and the distutils
4407 4410 installer). The manual can use some work, but that can go
4408 4411 slowly. Otherwise I think it's quite nice for end users. Next
4409 4412 summer, rewrite the guts of it...
4410 4413
4411 4414 * Changed format of ipythonrc files to use whitespace as the
4412 4415 separator instead of an explicit '='. Cleaner.
4413 4416
4414 4417 2001-12-20 Fernando Perez <fperez@colorado.edu>
4415 4418
4416 4419 * Started a manual in LyX. For now it's just a quick merge of the
4417 4420 various internal docstrings and READMEs. Later it may grow into a
4418 4421 nice, full-blown manual.
4419 4422
4420 4423 * Set up a distutils based installer. Installation should now be
4421 4424 trivially simple for end-users.
4422 4425
4423 4426 2001-12-11 Fernando Perez <fperez@colorado.edu>
4424 4427
4425 4428 * Released 0.2.0. First public release, announced it at
4426 4429 comp.lang.python. From now on, just bugfixes...
4427 4430
4428 4431 * Went through all the files, set copyright/license notices and
4429 4432 cleaned up things. Ready for release.
4430 4433
4431 4434 2001-12-10 Fernando Perez <fperez@colorado.edu>
4432 4435
4433 4436 * Changed the first-time installer not to use tarfiles. It's more
4434 4437 robust now and less unix-dependent. Also makes it easier for
4435 4438 people to later upgrade versions.
4436 4439
4437 4440 * Changed @exit to @abort to reflect the fact that it's pretty
4438 4441 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4439 4442 becomes significant only when IPyhton is embedded: in that case,
4440 4443 C-D closes IPython only, but @abort kills the enclosing program
4441 4444 too (unless it had called IPython inside a try catching
4442 4445 SystemExit).
4443 4446
4444 4447 * Created Shell module which exposes the actuall IPython Shell
4445 4448 classes, currently the normal and the embeddable one. This at
4446 4449 least offers a stable interface we won't need to change when
4447 4450 (later) the internals are rewritten. That rewrite will be confined
4448 4451 to iplib and ipmaker, but the Shell interface should remain as is.
4449 4452
4450 4453 * Added embed module which offers an embeddable IPShell object,
4451 4454 useful to fire up IPython *inside* a running program. Great for
4452 4455 debugging or dynamical data analysis.
4453 4456
4454 4457 2001-12-08 Fernando Perez <fperez@colorado.edu>
4455 4458
4456 4459 * Fixed small bug preventing seeing info from methods of defined
4457 4460 objects (incorrect namespace in _ofind()).
4458 4461
4459 4462 * Documentation cleanup. Moved the main usage docstrings to a
4460 4463 separate file, usage.py (cleaner to maintain, and hopefully in the
4461 4464 future some perlpod-like way of producing interactive, man and
4462 4465 html docs out of it will be found).
4463 4466
4464 4467 * Added @profile to see your profile at any time.
4465 4468
4466 4469 * Added @p as an alias for 'print'. It's especially convenient if
4467 4470 using automagic ('p x' prints x).
4468 4471
4469 4472 * Small cleanups and fixes after a pychecker run.
4470 4473
4471 4474 * Changed the @cd command to handle @cd - and @cd -<n> for
4472 4475 visiting any directory in _dh.
4473 4476
4474 4477 * Introduced _dh, a history of visited directories. @dhist prints
4475 4478 it out with numbers.
4476 4479
4477 4480 2001-12-07 Fernando Perez <fperez@colorado.edu>
4478 4481
4479 4482 * Released 0.1.22
4480 4483
4481 4484 * Made initialization a bit more robust against invalid color
4482 4485 options in user input (exit, not traceback-crash).
4483 4486
4484 4487 * Changed the bug crash reporter to write the report only in the
4485 4488 user's .ipython directory. That way IPython won't litter people's
4486 4489 hard disks with crash files all over the place. Also print on
4487 4490 screen the necessary mail command.
4488 4491
4489 4492 * With the new ultraTB, implemented LightBG color scheme for light
4490 4493 background terminals. A lot of people like white backgrounds, so I
4491 4494 guess we should at least give them something readable.
4492 4495
4493 4496 2001-12-06 Fernando Perez <fperez@colorado.edu>
4494 4497
4495 4498 * Modified the structure of ultraTB. Now there's a proper class
4496 4499 for tables of color schemes which allow adding schemes easily and
4497 4500 switching the active scheme without creating a new instance every
4498 4501 time (which was ridiculous). The syntax for creating new schemes
4499 4502 is also cleaner. I think ultraTB is finally done, with a clean
4500 4503 class structure. Names are also much cleaner (now there's proper
4501 4504 color tables, no need for every variable to also have 'color' in
4502 4505 its name).
4503 4506
4504 4507 * Broke down genutils into separate files. Now genutils only
4505 4508 contains utility functions, and classes have been moved to their
4506 4509 own files (they had enough independent functionality to warrant
4507 4510 it): ConfigLoader, OutputTrap, Struct.
4508 4511
4509 4512 2001-12-05 Fernando Perez <fperez@colorado.edu>
4510 4513
4511 4514 * IPython turns 21! Released version 0.1.21, as a candidate for
4512 4515 public consumption. If all goes well, release in a few days.
4513 4516
4514 4517 * Fixed path bug (files in Extensions/ directory wouldn't be found
4515 4518 unless IPython/ was explicitly in sys.path).
4516 4519
4517 4520 * Extended the FlexCompleter class as MagicCompleter to allow
4518 4521 completion of @-starting lines.
4519 4522
4520 4523 * Created __release__.py file as a central repository for release
4521 4524 info that other files can read from.
4522 4525
4523 4526 * Fixed small bug in logging: when logging was turned on in
4524 4527 mid-session, old lines with special meanings (!@?) were being
4525 4528 logged without the prepended comment, which is necessary since
4526 4529 they are not truly valid python syntax. This should make session
4527 4530 restores produce less errors.
4528 4531
4529 4532 * The namespace cleanup forced me to make a FlexCompleter class
4530 4533 which is nothing but a ripoff of rlcompleter, but with selectable
4531 4534 namespace (rlcompleter only works in __main__.__dict__). I'll try
4532 4535 to submit a note to the authors to see if this change can be
4533 4536 incorporated in future rlcompleter releases (Dec.6: done)
4534 4537
4535 4538 * More fixes to namespace handling. It was a mess! Now all
4536 4539 explicit references to __main__.__dict__ are gone (except when
4537 4540 really needed) and everything is handled through the namespace
4538 4541 dicts in the IPython instance. We seem to be getting somewhere
4539 4542 with this, finally...
4540 4543
4541 4544 * Small documentation updates.
4542 4545
4543 4546 * Created the Extensions directory under IPython (with an
4544 4547 __init__.py). Put the PhysicalQ stuff there. This directory should
4545 4548 be used for all special-purpose extensions.
4546 4549
4547 4550 * File renaming:
4548 4551 ipythonlib --> ipmaker
4549 4552 ipplib --> iplib
4550 4553 This makes a bit more sense in terms of what these files actually do.
4551 4554
4552 4555 * Moved all the classes and functions in ipythonlib to ipplib, so
4553 4556 now ipythonlib only has make_IPython(). This will ease up its
4554 4557 splitting in smaller functional chunks later.
4555 4558
4556 4559 * Cleaned up (done, I think) output of @whos. Better column
4557 4560 formatting, and now shows str(var) for as much as it can, which is
4558 4561 typically what one gets with a 'print var'.
4559 4562
4560 4563 2001-12-04 Fernando Perez <fperez@colorado.edu>
4561 4564
4562 4565 * Fixed namespace problems. Now builtin/IPyhton/user names get
4563 4566 properly reported in their namespace. Internal namespace handling
4564 4567 is finally getting decent (not perfect yet, but much better than
4565 4568 the ad-hoc mess we had).
4566 4569
4567 4570 * Removed -exit option. If people just want to run a python
4568 4571 script, that's what the normal interpreter is for. Less
4569 4572 unnecessary options, less chances for bugs.
4570 4573
4571 4574 * Added a crash handler which generates a complete post-mortem if
4572 4575 IPython crashes. This will help a lot in tracking bugs down the
4573 4576 road.
4574 4577
4575 4578 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4576 4579 which were boud to functions being reassigned would bypass the
4577 4580 logger, breaking the sync of _il with the prompt counter. This
4578 4581 would then crash IPython later when a new line was logged.
4579 4582
4580 4583 2001-12-02 Fernando Perez <fperez@colorado.edu>
4581 4584
4582 4585 * Made IPython a package. This means people don't have to clutter
4583 4586 their sys.path with yet another directory. Changed the INSTALL
4584 4587 file accordingly.
4585 4588
4586 4589 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4587 4590 sorts its output (so @who shows it sorted) and @whos formats the
4588 4591 table according to the width of the first column. Nicer, easier to
4589 4592 read. Todo: write a generic table_format() which takes a list of
4590 4593 lists and prints it nicely formatted, with optional row/column
4591 4594 separators and proper padding and justification.
4592 4595
4593 4596 * Released 0.1.20
4594 4597
4595 4598 * Fixed bug in @log which would reverse the inputcache list (a
4596 4599 copy operation was missing).
4597 4600
4598 4601 * Code cleanup. @config was changed to use page(). Better, since
4599 4602 its output is always quite long.
4600 4603
4601 4604 * Itpl is back as a dependency. I was having too many problems
4602 4605 getting the parametric aliases to work reliably, and it's just
4603 4606 easier to code weird string operations with it than playing %()s
4604 4607 games. It's only ~6k, so I don't think it's too big a deal.
4605 4608
4606 4609 * Found (and fixed) a very nasty bug with history. !lines weren't
4607 4610 getting cached, and the out of sync caches would crash
4608 4611 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4609 4612 division of labor a bit better. Bug fixed, cleaner structure.
4610 4613
4611 4614 2001-12-01 Fernando Perez <fperez@colorado.edu>
4612 4615
4613 4616 * Released 0.1.19
4614 4617
4615 4618 * Added option -n to @hist to prevent line number printing. Much
4616 4619 easier to copy/paste code this way.
4617 4620
4618 4621 * Created global _il to hold the input list. Allows easy
4619 4622 re-execution of blocks of code by slicing it (inspired by Janko's
4620 4623 comment on 'macros').
4621 4624
4622 4625 * Small fixes and doc updates.
4623 4626
4624 4627 * Rewrote @history function (was @h). Renamed it to @hist, @h is
4625 4628 much too fragile with automagic. Handles properly multi-line
4626 4629 statements and takes parameters.
4627 4630
4628 4631 2001-11-30 Fernando Perez <fperez@colorado.edu>
4629 4632
4630 4633 * Version 0.1.18 released.
4631 4634
4632 4635 * Fixed nasty namespace bug in initial module imports.
4633 4636
4634 4637 * Added copyright/license notes to all code files (except
4635 4638 DPyGetOpt). For the time being, LGPL. That could change.
4636 4639
4637 4640 * Rewrote a much nicer README, updated INSTALL, cleaned up
4638 4641 ipythonrc-* samples.
4639 4642
4640 4643 * Overall code/documentation cleanup. Basically ready for
4641 4644 release. Only remaining thing: licence decision (LGPL?).
4642 4645
4643 4646 * Converted load_config to a class, ConfigLoader. Now recursion
4644 4647 control is better organized. Doesn't include the same file twice.
4645 4648
4646 4649 2001-11-29 Fernando Perez <fperez@colorado.edu>
4647 4650
4648 4651 * Got input history working. Changed output history variables from
4649 4652 _p to _o so that _i is for input and _o for output. Just cleaner
4650 4653 convention.
4651 4654
4652 4655 * Implemented parametric aliases. This pretty much allows the
4653 4656 alias system to offer full-blown shell convenience, I think.
4654 4657
4655 4658 * Version 0.1.17 released, 0.1.18 opened.
4656 4659
4657 4660 * dot_ipython/ipythonrc (alias): added documentation.
4658 4661 (xcolor): Fixed small bug (xcolors -> xcolor)
4659 4662
4660 4663 * Changed the alias system. Now alias is a magic command to define
4661 4664 aliases just like the shell. Rationale: the builtin magics should
4662 4665 be there for things deeply connected to IPython's
4663 4666 architecture. And this is a much lighter system for what I think
4664 4667 is the really important feature: allowing users to define quickly
4665 4668 magics that will do shell things for them, so they can customize
4666 4669 IPython easily to match their work habits. If someone is really
4667 4670 desperate to have another name for a builtin alias, they can
4668 4671 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4669 4672 works.
4670 4673
4671 4674 2001-11-28 Fernando Perez <fperez@colorado.edu>
4672 4675
4673 4676 * Changed @file so that it opens the source file at the proper
4674 4677 line. Since it uses less, if your EDITOR environment is
4675 4678 configured, typing v will immediately open your editor of choice
4676 4679 right at the line where the object is defined. Not as quick as
4677 4680 having a direct @edit command, but for all intents and purposes it
4678 4681 works. And I don't have to worry about writing @edit to deal with
4679 4682 all the editors, less does that.
4680 4683
4681 4684 * Version 0.1.16 released, 0.1.17 opened.
4682 4685
4683 4686 * Fixed some nasty bugs in the page/page_dumb combo that could
4684 4687 crash IPython.
4685 4688
4686 4689 2001-11-27 Fernando Perez <fperez@colorado.edu>
4687 4690
4688 4691 * Version 0.1.15 released, 0.1.16 opened.
4689 4692
4690 4693 * Finally got ? and ?? to work for undefined things: now it's
4691 4694 possible to type {}.get? and get information about the get method
4692 4695 of dicts, or os.path? even if only os is defined (so technically
4693 4696 os.path isn't). Works at any level. For example, after import os,
4694 4697 os?, os.path?, os.path.abspath? all work. This is great, took some
4695 4698 work in _ofind.
4696 4699
4697 4700 * Fixed more bugs with logging. The sanest way to do it was to add
4698 4701 to @log a 'mode' parameter. Killed two in one shot (this mode
4699 4702 option was a request of Janko's). I think it's finally clean
4700 4703 (famous last words).
4701 4704
4702 4705 * Added a page_dumb() pager which does a decent job of paging on
4703 4706 screen, if better things (like less) aren't available. One less
4704 4707 unix dependency (someday maybe somebody will port this to
4705 4708 windows).
4706 4709
4707 4710 * Fixed problem in magic_log: would lock of logging out if log
4708 4711 creation failed (because it would still think it had succeeded).
4709 4712
4710 4713 * Improved the page() function using curses to auto-detect screen
4711 4714 size. Now it can make a much better decision on whether to print
4712 4715 or page a string. Option screen_length was modified: a value 0
4713 4716 means auto-detect, and that's the default now.
4714 4717
4715 4718 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
4716 4719 go out. I'll test it for a few days, then talk to Janko about
4717 4720 licences and announce it.
4718 4721
4719 4722 * Fixed the length of the auto-generated ---> prompt which appears
4720 4723 for auto-parens and auto-quotes. Getting this right isn't trivial,
4721 4724 with all the color escapes, different prompt types and optional
4722 4725 separators. But it seems to be working in all the combinations.
4723 4726
4724 4727 2001-11-26 Fernando Perez <fperez@colorado.edu>
4725 4728
4726 4729 * Wrote a regexp filter to get option types from the option names
4727 4730 string. This eliminates the need to manually keep two duplicate
4728 4731 lists.
4729 4732
4730 4733 * Removed the unneeded check_option_names. Now options are handled
4731 4734 in a much saner manner and it's easy to visually check that things
4732 4735 are ok.
4733 4736
4734 4737 * Updated version numbers on all files I modified to carry a
4735 4738 notice so Janko and Nathan have clear version markers.
4736 4739
4737 4740 * Updated docstring for ultraTB with my changes. I should send
4738 4741 this to Nathan.
4739 4742
4740 4743 * Lots of small fixes. Ran everything through pychecker again.
4741 4744
4742 4745 * Made loading of deep_reload an cmd line option. If it's not too
4743 4746 kosher, now people can just disable it. With -nodeep_reload it's
4744 4747 still available as dreload(), it just won't overwrite reload().
4745 4748
4746 4749 * Moved many options to the no| form (-opt and -noopt
4747 4750 accepted). Cleaner.
4748 4751
4749 4752 * Changed magic_log so that if called with no parameters, it uses
4750 4753 'rotate' mode. That way auto-generated logs aren't automatically
4751 4754 over-written. For normal logs, now a backup is made if it exists
4752 4755 (only 1 level of backups). A new 'backup' mode was added to the
4753 4756 Logger class to support this. This was a request by Janko.
4754 4757
4755 4758 * Added @logoff/@logon to stop/restart an active log.
4756 4759
4757 4760 * Fixed a lot of bugs in log saving/replay. It was pretty
4758 4761 broken. Now special lines (!@,/) appear properly in the command
4759 4762 history after a log replay.
4760 4763
4761 4764 * Tried and failed to implement full session saving via pickle. My
4762 4765 idea was to pickle __main__.__dict__, but modules can't be
4763 4766 pickled. This would be a better alternative to replaying logs, but
4764 4767 seems quite tricky to get to work. Changed -session to be called
4765 4768 -logplay, which more accurately reflects what it does. And if we
4766 4769 ever get real session saving working, -session is now available.
4767 4770
4768 4771 * Implemented color schemes for prompts also. As for tracebacks,
4769 4772 currently only NoColor and Linux are supported. But now the
4770 4773 infrastructure is in place, based on a generic ColorScheme
4771 4774 class. So writing and activating new schemes both for the prompts
4772 4775 and the tracebacks should be straightforward.
4773 4776
4774 4777 * Version 0.1.13 released, 0.1.14 opened.
4775 4778
4776 4779 * Changed handling of options for output cache. Now counter is
4777 4780 hardwired starting at 1 and one specifies the maximum number of
4778 4781 entries *in the outcache* (not the max prompt counter). This is
4779 4782 much better, since many statements won't increase the cache
4780 4783 count. It also eliminated some confusing options, now there's only
4781 4784 one: cache_size.
4782 4785
4783 4786 * Added 'alias' magic function and magic_alias option in the
4784 4787 ipythonrc file. Now the user can easily define whatever names he
4785 4788 wants for the magic functions without having to play weird
4786 4789 namespace games. This gives IPython a real shell-like feel.
4787 4790
4788 4791 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
4789 4792 @ or not).
4790 4793
4791 4794 This was one of the last remaining 'visible' bugs (that I know
4792 4795 of). I think if I can clean up the session loading so it works
4793 4796 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
4794 4797 about licensing).
4795 4798
4796 4799 2001-11-25 Fernando Perez <fperez@colorado.edu>
4797 4800
4798 4801 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
4799 4802 there's a cleaner distinction between what ? and ?? show.
4800 4803
4801 4804 * Added screen_length option. Now the user can define his own
4802 4805 screen size for page() operations.
4803 4806
4804 4807 * Implemented magic shell-like functions with automatic code
4805 4808 generation. Now adding another function is just a matter of adding
4806 4809 an entry to a dict, and the function is dynamically generated at
4807 4810 run-time. Python has some really cool features!
4808 4811
4809 4812 * Renamed many options to cleanup conventions a little. Now all
4810 4813 are lowercase, and only underscores where needed. Also in the code
4811 4814 option name tables are clearer.
4812 4815
4813 4816 * Changed prompts a little. Now input is 'In [n]:' instead of
4814 4817 'In[n]:='. This allows it the numbers to be aligned with the
4815 4818 Out[n] numbers, and removes usage of ':=' which doesn't exist in
4816 4819 Python (it was a Mathematica thing). The '...' continuation prompt
4817 4820 was also changed a little to align better.
4818 4821
4819 4822 * Fixed bug when flushing output cache. Not all _p<n> variables
4820 4823 exist, so their deletion needs to be wrapped in a try:
4821 4824
4822 4825 * Figured out how to properly use inspect.formatargspec() (it
4823 4826 requires the args preceded by *). So I removed all the code from
4824 4827 _get_pdef in Magic, which was just replicating that.
4825 4828
4826 4829 * Added test to prefilter to allow redefining magic function names
4827 4830 as variables. This is ok, since the @ form is always available,
4828 4831 but whe should allow the user to define a variable called 'ls' if
4829 4832 he needs it.
4830 4833
4831 4834 * Moved the ToDo information from README into a separate ToDo.
4832 4835
4833 4836 * General code cleanup and small bugfixes. I think it's close to a
4834 4837 state where it can be released, obviously with a big 'beta'
4835 4838 warning on it.
4836 4839
4837 4840 * Got the magic function split to work. Now all magics are defined
4838 4841 in a separate class. It just organizes things a bit, and now
4839 4842 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
4840 4843 was too long).
4841 4844
4842 4845 * Changed @clear to @reset to avoid potential confusions with
4843 4846 the shell command clear. Also renamed @cl to @clear, which does
4844 4847 exactly what people expect it to from their shell experience.
4845 4848
4846 4849 Added a check to the @reset command (since it's so
4847 4850 destructive, it's probably a good idea to ask for confirmation).
4848 4851 But now reset only works for full namespace resetting. Since the
4849 4852 del keyword is already there for deleting a few specific
4850 4853 variables, I don't see the point of having a redundant magic
4851 4854 function for the same task.
4852 4855
4853 4856 2001-11-24 Fernando Perez <fperez@colorado.edu>
4854 4857
4855 4858 * Updated the builtin docs (esp. the ? ones).
4856 4859
4857 4860 * Ran all the code through pychecker. Not terribly impressed with
4858 4861 it: lots of spurious warnings and didn't really find anything of
4859 4862 substance (just a few modules being imported and not used).
4860 4863
4861 4864 * Implemented the new ultraTB functionality into IPython. New
4862 4865 option: xcolors. This chooses color scheme. xmode now only selects
4863 4866 between Plain and Verbose. Better orthogonality.
4864 4867
4865 4868 * Large rewrite of ultraTB. Much cleaner now, with a separation of
4866 4869 mode and color scheme for the exception handlers. Now it's
4867 4870 possible to have the verbose traceback with no coloring.
4868 4871
4869 4872 2001-11-23 Fernando Perez <fperez@colorado.edu>
4870 4873
4871 4874 * Version 0.1.12 released, 0.1.13 opened.
4872 4875
4873 4876 * Removed option to set auto-quote and auto-paren escapes by
4874 4877 user. The chances of breaking valid syntax are just too high. If
4875 4878 someone *really* wants, they can always dig into the code.
4876 4879
4877 4880 * Made prompt separators configurable.
4878 4881
4879 4882 2001-11-22 Fernando Perez <fperez@colorado.edu>
4880 4883
4881 4884 * Small bugfixes in many places.
4882 4885
4883 4886 * Removed the MyCompleter class from ipplib. It seemed redundant
4884 4887 with the C-p,C-n history search functionality. Less code to
4885 4888 maintain.
4886 4889
4887 4890 * Moved all the original ipython.py code into ipythonlib.py. Right
4888 4891 now it's just one big dump into a function called make_IPython, so
4889 4892 no real modularity has been gained. But at least it makes the
4890 4893 wrapper script tiny, and since ipythonlib is a module, it gets
4891 4894 compiled and startup is much faster.
4892 4895
4893 4896 This is a reasobably 'deep' change, so we should test it for a
4894 4897 while without messing too much more with the code.
4895 4898
4896 4899 2001-11-21 Fernando Perez <fperez@colorado.edu>
4897 4900
4898 4901 * Version 0.1.11 released, 0.1.12 opened for further work.
4899 4902
4900 4903 * Removed dependency on Itpl. It was only needed in one place. It
4901 4904 would be nice if this became part of python, though. It makes life
4902 4905 *a lot* easier in some cases.
4903 4906
4904 4907 * Simplified the prefilter code a bit. Now all handlers are
4905 4908 expected to explicitly return a value (at least a blank string).
4906 4909
4907 4910 * Heavy edits in ipplib. Removed the help system altogether. Now
4908 4911 obj?/?? is used for inspecting objects, a magic @doc prints
4909 4912 docstrings, and full-blown Python help is accessed via the 'help'
4910 4913 keyword. This cleans up a lot of code (less to maintain) and does
4911 4914 the job. Since 'help' is now a standard Python component, might as
4912 4915 well use it and remove duplicate functionality.
4913 4916
4914 4917 Also removed the option to use ipplib as a standalone program. By
4915 4918 now it's too dependent on other parts of IPython to function alone.
4916 4919
4917 4920 * Fixed bug in genutils.pager. It would crash if the pager was
4918 4921 exited immediately after opening (broken pipe).
4919 4922
4920 4923 * Trimmed down the VerboseTB reporting a little. The header is
4921 4924 much shorter now and the repeated exception arguments at the end
4922 4925 have been removed. For interactive use the old header seemed a bit
4923 4926 excessive.
4924 4927
4925 4928 * Fixed small bug in output of @whos for variables with multi-word
4926 4929 types (only first word was displayed).
4927 4930
4928 4931 2001-11-17 Fernando Perez <fperez@colorado.edu>
4929 4932
4930 4933 * Version 0.1.10 released, 0.1.11 opened for further work.
4931 4934
4932 4935 * Modified dirs and friends. dirs now *returns* the stack (not
4933 4936 prints), so one can manipulate it as a variable. Convenient to
4934 4937 travel along many directories.
4935 4938
4936 4939 * Fixed bug in magic_pdef: would only work with functions with
4937 4940 arguments with default values.
4938 4941
4939 4942 2001-11-14 Fernando Perez <fperez@colorado.edu>
4940 4943
4941 4944 * Added the PhysicsInput stuff to dot_ipython so it ships as an
4942 4945 example with IPython. Various other minor fixes and cleanups.
4943 4946
4944 4947 * Version 0.1.9 released, 0.1.10 opened for further work.
4945 4948
4946 4949 * Added sys.path to the list of directories searched in the
4947 4950 execfile= option. It used to be the current directory and the
4948 4951 user's IPYTHONDIR only.
4949 4952
4950 4953 2001-11-13 Fernando Perez <fperez@colorado.edu>
4951 4954
4952 4955 * Reinstated the raw_input/prefilter separation that Janko had
4953 4956 initially. This gives a more convenient setup for extending the
4954 4957 pre-processor from the outside: raw_input always gets a string,
4955 4958 and prefilter has to process it. We can then redefine prefilter
4956 4959 from the outside and implement extensions for special
4957 4960 purposes.
4958 4961
4959 4962 Today I got one for inputting PhysicalQuantity objects
4960 4963 (from Scientific) without needing any function calls at
4961 4964 all. Extremely convenient, and it's all done as a user-level
4962 4965 extension (no IPython code was touched). Now instead of:
4963 4966 a = PhysicalQuantity(4.2,'m/s**2')
4964 4967 one can simply say
4965 4968 a = 4.2 m/s**2
4966 4969 or even
4967 4970 a = 4.2 m/s^2
4968 4971
4969 4972 I use this, but it's also a proof of concept: IPython really is
4970 4973 fully user-extensible, even at the level of the parsing of the
4971 4974 command line. It's not trivial, but it's perfectly doable.
4972 4975
4973 4976 * Added 'add_flip' method to inclusion conflict resolver. Fixes
4974 4977 the problem of modules being loaded in the inverse order in which
4975 4978 they were defined in
4976 4979
4977 4980 * Version 0.1.8 released, 0.1.9 opened for further work.
4978 4981
4979 4982 * Added magics pdef, source and file. They respectively show the
4980 4983 definition line ('prototype' in C), source code and full python
4981 4984 file for any callable object. The object inspector oinfo uses
4982 4985 these to show the same information.
4983 4986
4984 4987 * Version 0.1.7 released, 0.1.8 opened for further work.
4985 4988
4986 4989 * Separated all the magic functions into a class called Magic. The
4987 4990 InteractiveShell class was becoming too big for Xemacs to handle
4988 4991 (de-indenting a line would lock it up for 10 seconds while it
4989 4992 backtracked on the whole class!)
4990 4993
4991 4994 FIXME: didn't work. It can be done, but right now namespaces are
4992 4995 all messed up. Do it later (reverted it for now, so at least
4993 4996 everything works as before).
4994 4997
4995 4998 * Got the object introspection system (magic_oinfo) working! I
4996 4999 think this is pretty much ready for release to Janko, so he can
4997 5000 test it for a while and then announce it. Pretty much 100% of what
4998 5001 I wanted for the 'phase 1' release is ready. Happy, tired.
4999 5002
5000 5003 2001-11-12 Fernando Perez <fperez@colorado.edu>
5001 5004
5002 5005 * Version 0.1.6 released, 0.1.7 opened for further work.
5003 5006
5004 5007 * Fixed bug in printing: it used to test for truth before
5005 5008 printing, so 0 wouldn't print. Now checks for None.
5006 5009
5007 5010 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5008 5011 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5009 5012 reaches by hand into the outputcache. Think of a better way to do
5010 5013 this later.
5011 5014
5012 5015 * Various small fixes thanks to Nathan's comments.
5013 5016
5014 5017 * Changed magic_pprint to magic_Pprint. This way it doesn't
5015 5018 collide with pprint() and the name is consistent with the command
5016 5019 line option.
5017 5020
5018 5021 * Changed prompt counter behavior to be fully like
5019 5022 Mathematica's. That is, even input that doesn't return a result
5020 5023 raises the prompt counter. The old behavior was kind of confusing
5021 5024 (getting the same prompt number several times if the operation
5022 5025 didn't return a result).
5023 5026
5024 5027 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5025 5028
5026 5029 * Fixed -Classic mode (wasn't working anymore).
5027 5030
5028 5031 * Added colored prompts using Nathan's new code. Colors are
5029 5032 currently hardwired, they can be user-configurable. For
5030 5033 developers, they can be chosen in file ipythonlib.py, at the
5031 5034 beginning of the CachedOutput class def.
5032 5035
5033 5036 2001-11-11 Fernando Perez <fperez@colorado.edu>
5034 5037
5035 5038 * Version 0.1.5 released, 0.1.6 opened for further work.
5036 5039
5037 5040 * Changed magic_env to *return* the environment as a dict (not to
5038 5041 print it). This way it prints, but it can also be processed.
5039 5042
5040 5043 * Added Verbose exception reporting to interactive
5041 5044 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5042 5045 traceback. Had to make some changes to the ultraTB file. This is
5043 5046 probably the last 'big' thing in my mental todo list. This ties
5044 5047 in with the next entry:
5045 5048
5046 5049 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5047 5050 has to specify is Plain, Color or Verbose for all exception
5048 5051 handling.
5049 5052
5050 5053 * Removed ShellServices option. All this can really be done via
5051 5054 the magic system. It's easier to extend, cleaner and has automatic
5052 5055 namespace protection and documentation.
5053 5056
5054 5057 2001-11-09 Fernando Perez <fperez@colorado.edu>
5055 5058
5056 5059 * Fixed bug in output cache flushing (missing parameter to
5057 5060 __init__). Other small bugs fixed (found using pychecker).
5058 5061
5059 5062 * Version 0.1.4 opened for bugfixing.
5060 5063
5061 5064 2001-11-07 Fernando Perez <fperez@colorado.edu>
5062 5065
5063 5066 * Version 0.1.3 released, mainly because of the raw_input bug.
5064 5067
5065 5068 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5066 5069 and when testing for whether things were callable, a call could
5067 5070 actually be made to certain functions. They would get called again
5068 5071 once 'really' executed, with a resulting double call. A disaster
5069 5072 in many cases (list.reverse() would never work!).
5070 5073
5071 5074 * Removed prefilter() function, moved its code to raw_input (which
5072 5075 after all was just a near-empty caller for prefilter). This saves
5073 5076 a function call on every prompt, and simplifies the class a tiny bit.
5074 5077
5075 5078 * Fix _ip to __ip name in magic example file.
5076 5079
5077 5080 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5078 5081 work with non-gnu versions of tar.
5079 5082
5080 5083 2001-11-06 Fernando Perez <fperez@colorado.edu>
5081 5084
5082 5085 * Version 0.1.2. Just to keep track of the recent changes.
5083 5086
5084 5087 * Fixed nasty bug in output prompt routine. It used to check 'if
5085 5088 arg != None...'. Problem is, this fails if arg implements a
5086 5089 special comparison (__cmp__) which disallows comparing to
5087 5090 None. Found it when trying to use the PhysicalQuantity module from
5088 5091 ScientificPython.
5089 5092
5090 5093 2001-11-05 Fernando Perez <fperez@colorado.edu>
5091 5094
5092 5095 * Also added dirs. Now the pushd/popd/dirs family functions
5093 5096 basically like the shell, with the added convenience of going home
5094 5097 when called with no args.
5095 5098
5096 5099 * pushd/popd slightly modified to mimic shell behavior more
5097 5100 closely.
5098 5101
5099 5102 * Added env,pushd,popd from ShellServices as magic functions. I
5100 5103 think the cleanest will be to port all desired functions from
5101 5104 ShellServices as magics and remove ShellServices altogether. This
5102 5105 will provide a single, clean way of adding functionality
5103 5106 (shell-type or otherwise) to IP.
5104 5107
5105 5108 2001-11-04 Fernando Perez <fperez@colorado.edu>
5106 5109
5107 5110 * Added .ipython/ directory to sys.path. This way users can keep
5108 5111 customizations there and access them via import.
5109 5112
5110 5113 2001-11-03 Fernando Perez <fperez@colorado.edu>
5111 5114
5112 5115 * Opened version 0.1.1 for new changes.
5113 5116
5114 5117 * Changed version number to 0.1.0: first 'public' release, sent to
5115 5118 Nathan and Janko.
5116 5119
5117 5120 * Lots of small fixes and tweaks.
5118 5121
5119 5122 * Minor changes to whos format. Now strings are shown, snipped if
5120 5123 too long.
5121 5124
5122 5125 * Changed ShellServices to work on __main__ so they show up in @who
5123 5126
5124 5127 * Help also works with ? at the end of a line:
5125 5128 ?sin and sin?
5126 5129 both produce the same effect. This is nice, as often I use the
5127 5130 tab-complete to find the name of a method, but I used to then have
5128 5131 to go to the beginning of the line to put a ? if I wanted more
5129 5132 info. Now I can just add the ? and hit return. Convenient.
5130 5133
5131 5134 2001-11-02 Fernando Perez <fperez@colorado.edu>
5132 5135
5133 5136 * Python version check (>=2.1) added.
5134 5137
5135 5138 * Added LazyPython documentation. At this point the docs are quite
5136 5139 a mess. A cleanup is in order.
5137 5140
5138 5141 * Auto-installer created. For some bizarre reason, the zipfiles
5139 5142 module isn't working on my system. So I made a tar version
5140 5143 (hopefully the command line options in various systems won't kill
5141 5144 me).
5142 5145
5143 5146 * Fixes to Struct in genutils. Now all dictionary-like methods are
5144 5147 protected (reasonably).
5145 5148
5146 5149 * Added pager function to genutils and changed ? to print usage
5147 5150 note through it (it was too long).
5148 5151
5149 5152 * Added the LazyPython functionality. Works great! I changed the
5150 5153 auto-quote escape to ';', it's on home row and next to '. But
5151 5154 both auto-quote and auto-paren (still /) escapes are command-line
5152 5155 parameters.
5153 5156
5154 5157
5155 5158 2001-11-01 Fernando Perez <fperez@colorado.edu>
5156 5159
5157 5160 * Version changed to 0.0.7. Fairly large change: configuration now
5158 5161 is all stored in a directory, by default .ipython. There, all
5159 5162 config files have normal looking names (not .names)
5160 5163
5161 5164 * Version 0.0.6 Released first to Lucas and Archie as a test
5162 5165 run. Since it's the first 'semi-public' release, change version to
5163 5166 > 0.0.6 for any changes now.
5164 5167
5165 5168 * Stuff I had put in the ipplib.py changelog:
5166 5169
5167 5170 Changes to InteractiveShell:
5168 5171
5169 5172 - Made the usage message a parameter.
5170 5173
5171 5174 - Require the name of the shell variable to be given. It's a bit
5172 5175 of a hack, but allows the name 'shell' not to be hardwire in the
5173 5176 magic (@) handler, which is problematic b/c it requires
5174 5177 polluting the global namespace with 'shell'. This in turn is
5175 5178 fragile: if a user redefines a variable called shell, things
5176 5179 break.
5177 5180
5178 5181 - magic @: all functions available through @ need to be defined
5179 5182 as magic_<name>, even though they can be called simply as
5180 5183 @<name>. This allows the special command @magic to gather
5181 5184 information automatically about all existing magic functions,
5182 5185 even if they are run-time user extensions, by parsing the shell
5183 5186 instance __dict__ looking for special magic_ names.
5184 5187
5185 5188 - mainloop: added *two* local namespace parameters. This allows
5186 5189 the class to differentiate between parameters which were there
5187 5190 before and after command line initialization was processed. This
5188 5191 way, later @who can show things loaded at startup by the
5189 5192 user. This trick was necessary to make session saving/reloading
5190 5193 really work: ideally after saving/exiting/reloading a session,
5191 5194 *everythin* should look the same, including the output of @who. I
5192 5195 was only able to make this work with this double namespace
5193 5196 trick.
5194 5197
5195 5198 - added a header to the logfile which allows (almost) full
5196 5199 session restoring.
5197 5200
5198 5201 - prepend lines beginning with @ or !, with a and log
5199 5202 them. Why? !lines: may be useful to know what you did @lines:
5200 5203 they may affect session state. So when restoring a session, at
5201 5204 least inform the user of their presence. I couldn't quite get
5202 5205 them to properly re-execute, but at least the user is warned.
5203 5206
5204 5207 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now