##// END OF EJS Templates
up changelog
vivainio -
Show More
@@ -1,6797 +1,6806 b''
1 2007-06-11 Ville Vainio <vivainio@gmail.com>
2
3 * pspersistence.py, Magic.py, iplib.py: directory history now saved
4 to db
5
6 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
7 Also, it exits IPython immediately after evaluating the command (just like
8 std python)
9
1 10 2007-06-05 Walter Doerwald <walter@livinglogic.de>
2 11
3 12 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
4 13 Python string and captures the output. (Idea and original patch by
5 14 StοΏ½fan van der Walt)
6 15
7 16 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
8 17
9 18 * IPython/ultraTB.py (VerboseTB.text): update printing of
10 19 exception types for Python 2.5 (now all exceptions in the stdlib
11 20 are new-style classes).
12 21
13 22 2007-05-31 Walter Doerwald <walter@livinglogic.de>
14 23
15 24 * IPython/Extensions/igrid.py: Add new commands refresh and
16 25 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
17 26 the iterator once (refresh) or after every x seconds (refresh_timer).
18 27 Add a working implementation of "searchexpression", where the text
19 28 entered is not the text to search for, but an expression that must
20 29 be true. Added display of shortcuts to the menu. Added commands "pickinput"
21 30 and "pickinputattr" that put the object or attribute under the cursor
22 31 in the input line. Split the statusbar to be able to display the currently
23 32 active refresh interval. (Patch by Nik Tautenhahn)
24 33
25 34 2007-05-29 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
26 35
27 36 * fixing set_term_title to use ctypes as default
28 37
29 38 * fixing set_term_title fallback to work when curent dir
30 39 is on a windows network share
31 40
32 41 2007-05-28 Ville Vainio <vivainio@gmail.com>
33 42
34 43 * %cpaste: strip + with > from left (diffs).
35 44
36 45 * iplib.py: Fix crash when readline not installed
37 46
38 47 2007-05-26 Ville Vainio <vivainio@gmail.com>
39 48
40 49 * generics.py: intruduce easy to extend result_display generic
41 50 function (using simplegeneric.py).
42 51
43 52 * Fixed the append functionality of %set.
44 53
45 54 2007-05-25 Ville Vainio <vivainio@gmail.com>
46 55
47 56 * New magic: %rep (fetch / run old commands from history)
48 57
49 58 * New extension: mglob (%mglob magic), for powerful glob / find /filter
50 59 like functionality
51 60
52 61 % maghistory.py: %hist -g PATTERM greps the history for pattern
53 62
54 63 2007-05-24 Walter Doerwald <walter@livinglogic.de>
55 64
56 65 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
57 66 browse the IPython input history
58 67
59 68 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
60 69 (mapped to "i") can be used to put the object under the curser in the input
61 70 line. pickinputattr (mapped to "I") does the same for the attribute under
62 71 the cursor.
63 72
64 73 2007-05-24 Ville Vainio <vivainio@gmail.com>
65 74
66 75 * Grand magic cleansing (changeset [2380]):
67 76
68 77 * Introduce ipy_legacy.py where the following magics were
69 78 moved:
70 79
71 80 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
72 81
73 82 If you need them, either use default profile or "import ipy_legacy"
74 83 in your ipy_user_conf.py
75 84
76 85 * Move sh and scipy profile to Extensions from UserConfig. this implies
77 86 you should not edit them, but you don't need to run %upgrade when
78 87 upgrading IPython anymore.
79 88
80 89 * %hist/%history now operates in "raw" mode by default. To get the old
81 90 behaviour, run '%hist -n' (native mode).
82 91
83 92 * split ipy_stock_completers.py to ipy_stock_completers.py and
84 93 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
85 94 installed as default.
86 95
87 96 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
88 97 handling.
89 98
90 99 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
91 100 input if readline is available.
92 101
93 102 2007-05-23 Ville Vainio <vivainio@gmail.com>
94 103
95 104 * macro.py: %store uses __getstate__ properly
96 105
97 106 * exesetup.py: added new setup script for creating
98 107 standalone IPython executables with py2exe (i.e.
99 108 no python installation required).
100 109
101 110 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
102 111 its place.
103 112
104 113 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
105 114
106 115 2007-05-21 Ville Vainio <vivainio@gmail.com>
107 116
108 117 * platutil_win32.py (set_term_title): handle
109 118 failure of 'title' system call properly.
110 119
111 120 2007-05-17 Walter Doerwald <walter@livinglogic.de>
112 121
113 122 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
114 123 (Bug detected by Paul Mueller).
115 124
116 125 2007-05-16 Ville Vainio <vivainio@gmail.com>
117 126
118 127 * ipy_profile_sci.py, ipython_win_post_install.py: Create
119 128 new "sci" profile, effectively a modern version of the old
120 129 "scipy" profile (which is now slated for deprecation).
121 130
122 131 2007-05-15 Ville Vainio <vivainio@gmail.com>
123 132
124 133 * pycolorize.py, pycolor.1: Paul Mueller's patches that
125 134 make pycolorize read input from stdin when run without arguments.
126 135
127 136 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
128 137
129 138 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
130 139 it in sh profile (instead of ipy_system_conf.py).
131 140
132 141 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
133 142 aliases are now lower case on windows (MyCommand.exe => mycommand).
134 143
135 144 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
136 145 Macros are now callable objects that inherit from ipapi.IPyAutocall,
137 146 i.e. get autocalled regardless of system autocall setting.
138 147
139 148 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
140 149
141 150 * IPython/rlineimpl.py: check for clear_history in readline and
142 151 make it a dummy no-op if not available. This function isn't
143 152 guaranteed to be in the API and appeared in Python 2.4, so we need
144 153 to check it ourselves. Also, clean up this file quite a bit.
145 154
146 155 * ipython.1: update man page and full manual with information
147 156 about threads (remove outdated warning). Closes #151.
148 157
149 158 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
150 159
151 160 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
152 161 in trunk (note that this made it into the 0.8.1 release already,
153 162 but the changelogs didn't get coordinated). Many thanks to Gael
154 163 Varoquaux <gael.varoquaux-AT-normalesup.org>
155 164
156 165 2007-05-09 *** Released version 0.8.1
157 166
158 167 2007-05-10 Walter Doerwald <walter@livinglogic.de>
159 168
160 169 * IPython/Extensions/igrid.py: Incorporate html help into
161 170 the module, so we don't have to search for the file.
162 171
163 172 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
164 173
165 174 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
166 175
167 176 2007-04-30 Ville Vainio <vivainio@gmail.com>
168 177
169 178 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
170 179 user has illegal (non-ascii) home directory name
171 180
172 181 2007-04-27 Ville Vainio <vivainio@gmail.com>
173 182
174 183 * platutils_win32.py: implement set_term_title for windows
175 184
176 185 * Update version number
177 186
178 187 * ipy_profile_sh.py: more informative prompt (2 dir levels)
179 188
180 189 2007-04-26 Walter Doerwald <walter@livinglogic.de>
181 190
182 191 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
183 192 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
184 193 bug discovered by Ville).
185 194
186 195 2007-04-26 Ville Vainio <vivainio@gmail.com>
187 196
188 197 * Extensions/ipy_completers.py: Olivier's module completer now
189 198 saves the list of root modules if it takes > 4 secs on the first run.
190 199
191 200 * Magic.py (%rehashx): %rehashx now clears the completer cache
192 201
193 202
194 203 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
195 204
196 205 * ipython.el: fix incorrect color scheme, reported by Stefan.
197 206 Closes #149.
198 207
199 208 * IPython/PyColorize.py (Parser.format2): fix state-handling
200 209 logic. I still don't like how that code handles state, but at
201 210 least now it should be correct, if inelegant. Closes #146.
202 211
203 212 2007-04-25 Ville Vainio <vivainio@gmail.com>
204 213
205 214 * Extensions/ipy_which.py: added extension for %which magic, works
206 215 a lot like unix 'which' but also finds and expands aliases, and
207 216 allows wildcards.
208 217
209 218 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
210 219 as opposed to returning nothing.
211 220
212 221 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
213 222 ipy_stock_completers on default profile, do import on sh profile.
214 223
215 224 2007-04-22 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
216 225
217 226 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
218 227 like ipython.py foo.py which raised a IndexError.
219 228
220 229 2007-04-21 Ville Vainio <vivainio@gmail.com>
221 230
222 231 * Extensions/ipy_extutil.py: added extension to manage other ipython
223 232 extensions. Now only supports 'ls' == list extensions.
224 233
225 234 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
226 235
227 236 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
228 237 would prevent use of the exception system outside of a running
229 238 IPython instance.
230 239
231 240 2007-04-20 Ville Vainio <vivainio@gmail.com>
232 241
233 242 * Extensions/ipy_render.py: added extension for easy
234 243 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
235 244 'Iptl' template notation,
236 245
237 246 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
238 247 safer & faster 'import' completer.
239 248
240 249 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
241 250 and _ip.defalias(name, command).
242 251
243 252 * Extensions/ipy_exportdb.py: New extension for exporting all the
244 253 %store'd data in a portable format (normal ipapi calls like
245 254 defmacro() etc.)
246 255
247 256 2007-04-19 Ville Vainio <vivainio@gmail.com>
248 257
249 258 * upgrade_dir.py: skip junk files like *.pyc
250 259
251 260 * Release.py: version number to 0.8.1
252 261
253 262 2007-04-18 Ville Vainio <vivainio@gmail.com>
254 263
255 264 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
256 265 and later on win32.
257 266
258 267 2007-04-16 Ville Vainio <vivainio@gmail.com>
259 268
260 269 * iplib.py (showtraceback): Do not crash when running w/o readline.
261 270
262 271 2007-04-12 Walter Doerwald <walter@livinglogic.de>
263 272
264 273 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
265 274 sorted (case sensitive with files and dirs mixed).
266 275
267 276 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
268 277
269 278 * IPython/Release.py (version): Open trunk for 0.8.1 development.
270 279
271 280 2007-04-10 *** Released version 0.8.0
272 281
273 282 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
274 283
275 284 * Tag 0.8.0 for release.
276 285
277 286 * IPython/iplib.py (reloadhist): add API function to cleanly
278 287 reload the readline history, which was growing inappropriately on
279 288 every %run call.
280 289
281 290 * win32_manual_post_install.py (run): apply last part of Nicolas
282 291 Pernetty's patch (I'd accidentally applied it in a different
283 292 directory and this particular file didn't get patched).
284 293
285 294 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
286 295
287 296 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
288 297 find the main thread id and use the proper API call. Thanks to
289 298 Stefan for the fix.
290 299
291 300 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
292 301 unit tests to reflect fixed ticket #52, and add more tests sent by
293 302 him.
294 303
295 304 * IPython/iplib.py (raw_input): restore the readline completer
296 305 state on every input, in case third-party code messed it up.
297 306 (_prefilter): revert recent addition of early-escape checks which
298 307 prevent many valid alias calls from working.
299 308
300 309 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
301 310 flag for sigint handler so we don't run a full signal() call on
302 311 each runcode access.
303 312
304 313 * IPython/Magic.py (magic_whos): small improvement to diagnostic
305 314 message.
306 315
307 316 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
308 317
309 318 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
310 319 asynchronous exceptions working, i.e., Ctrl-C can actually
311 320 interrupt long-running code in the multithreaded shells.
312 321
313 322 This is using Tomer Filiba's great ctypes-based trick:
314 323 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
315 324 this in the past, but hadn't been able to make it work before. So
316 325 far it looks like it's actually running, but this needs more
317 326 testing. If it really works, I'll be *very* happy, and we'll owe
318 327 a huge thank you to Tomer. My current implementation is ugly,
319 328 hackish and uses nasty globals, but I don't want to try and clean
320 329 anything up until we know if it actually works.
321 330
322 331 NOTE: this feature needs ctypes to work. ctypes is included in
323 332 Python2.5, but 2.4 users will need to manually install it. This
324 333 feature makes multi-threaded shells so much more usable that it's
325 334 a minor price to pay (ctypes is very easy to install, already a
326 335 requirement for win32 and available in major linux distros).
327 336
328 337 2007-04-04 Ville Vainio <vivainio@gmail.com>
329 338
330 339 * Extensions/ipy_completers.py, ipy_stock_completers.py:
331 340 Moved implementations of 'bundled' completers to ipy_completers.py,
332 341 they are only enabled in ipy_stock_completers.py.
333 342
334 343 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
335 344
336 345 * IPython/PyColorize.py (Parser.format2): Fix identation of
337 346 colorzied output and return early if color scheme is NoColor, to
338 347 avoid unnecessary and expensive tokenization. Closes #131.
339 348
340 349 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
341 350
342 351 * IPython/Debugger.py: disable the use of pydb version 1.17. It
343 352 has a critical bug (a missing import that makes post-mortem not
344 353 work at all). Unfortunately as of this time, this is the version
345 354 shipped with Ubuntu Edgy, so quite a few people have this one. I
346 355 hope Edgy will update to a more recent package.
347 356
348 357 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
349 358
350 359 * IPython/iplib.py (_prefilter): close #52, second part of a patch
351 360 set by Stefan (only the first part had been applied before).
352 361
353 362 * IPython/Extensions/ipy_stock_completers.py (module_completer):
354 363 remove usage of the dangerous pkgutil.walk_packages(). See
355 364 details in comments left in the code.
356 365
357 366 * IPython/Magic.py (magic_whos): add support for numpy arrays
358 367 similar to what we had for Numeric.
359 368
360 369 * IPython/completer.py (IPCompleter.complete): extend the
361 370 complete() call API to support completions by other mechanisms
362 371 than readline. Closes #109.
363 372
364 373 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
365 374 protect against a bug in Python's execfile(). Closes #123.
366 375
367 376 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
368 377
369 378 * IPython/iplib.py (split_user_input): ensure that when splitting
370 379 user input, the part that can be treated as a python name is pure
371 380 ascii (Python identifiers MUST be pure ascii). Part of the
372 381 ongoing Unicode support work.
373 382
374 383 * IPython/Prompts.py (prompt_specials_color): Add \N for the
375 384 actual prompt number, without any coloring. This allows users to
376 385 produce numbered prompts with their own colors. Added after a
377 386 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
378 387
379 388 2007-03-31 Walter Doerwald <walter@livinglogic.de>
380 389
381 390 * IPython/Extensions/igrid.py: Map the return key
382 391 to enter() and shift-return to enterattr().
383 392
384 393 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
385 394
386 395 * IPython/Magic.py (magic_psearch): add unicode support by
387 396 encoding to ascii the input, since this routine also only deals
388 397 with valid Python names. Fixes a bug reported by Stefan.
389 398
390 399 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
391 400
392 401 * IPython/Magic.py (_inspect): convert unicode input into ascii
393 402 before trying to evaluate it as a Python identifier. This fixes a
394 403 problem that the new unicode support had introduced when analyzing
395 404 long definition lines for functions.
396 405
397 406 2007-03-24 Walter Doerwald <walter@livinglogic.de>
398 407
399 408 * IPython/Extensions/igrid.py: Fix picking. Using
400 409 igrid with wxPython 2.6 and -wthread should work now.
401 410 igrid.display() simply tries to create a frame without
402 411 an application. Only if this fails an application is created.
403 412
404 413 2007-03-23 Walter Doerwald <walter@livinglogic.de>
405 414
406 415 * IPython/Extensions/path.py: Updated to version 2.2.
407 416
408 417 2007-03-23 Ville Vainio <vivainio@gmail.com>
409 418
410 419 * iplib.py: recursive alias expansion now works better, so that
411 420 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
412 421 doesn't trip up the process, if 'd' has been aliased to 'ls'.
413 422
414 423 * Extensions/ipy_gnuglobal.py added, provides %global magic
415 424 for users of http://www.gnu.org/software/global
416 425
417 426 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
418 427 Closes #52. Patch by Stefan van der Walt.
419 428
420 429 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
421 430
422 431 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
423 432 respect the __file__ attribute when using %run. Thanks to a bug
424 433 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
425 434
426 435 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
427 436
428 437 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
429 438 input. Patch sent by Stefan.
430 439
431 440 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
432 441 * IPython/Extensions/ipy_stock_completer.py
433 442 shlex_split, fix bug in shlex_split. len function
434 443 call was missing an if statement. Caused shlex_split to
435 444 sometimes return "" as last element.
436 445
437 446 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
438 447
439 448 * IPython/completer.py
440 449 (IPCompleter.file_matches.single_dir_expand): fix a problem
441 450 reported by Stefan, where directories containign a single subdir
442 451 would be completed too early.
443 452
444 453 * IPython/Shell.py (_load_pylab): Make the execution of 'from
445 454 pylab import *' when -pylab is given be optional. A new flag,
446 455 pylab_import_all controls this behavior, the default is True for
447 456 backwards compatibility.
448 457
449 458 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
450 459 modified) R. Bernstein's patch for fully syntax highlighted
451 460 tracebacks. The functionality is also available under ultraTB for
452 461 non-ipython users (someone using ultraTB but outside an ipython
453 462 session). They can select the color scheme by setting the
454 463 module-level global DEFAULT_SCHEME. The highlight functionality
455 464 also works when debugging.
456 465
457 466 * IPython/genutils.py (IOStream.close): small patch by
458 467 R. Bernstein for improved pydb support.
459 468
460 469 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
461 470 DaveS <davls@telus.net> to improve support of debugging under
462 471 NTEmacs, including improved pydb behavior.
463 472
464 473 * IPython/Magic.py (magic_prun): Fix saving of profile info for
465 474 Python 2.5, where the stats object API changed a little. Thanks
466 475 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
467 476
468 477 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
469 478 Pernetty's patch to improve support for (X)Emacs under Win32.
470 479
471 480 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
472 481
473 482 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
474 483 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
475 484 a report by Nik Tautenhahn.
476 485
477 486 2007-03-16 Walter Doerwald <walter@livinglogic.de>
478 487
479 488 * setup.py: Add the igrid help files to the list of data files
480 489 to be installed alongside igrid.
481 490 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
482 491 Show the input object of the igrid browser as the window tile.
483 492 Show the object the cursor is on in the statusbar.
484 493
485 494 2007-03-15 Ville Vainio <vivainio@gmail.com>
486 495
487 496 * Extensions/ipy_stock_completers.py: Fixed exception
488 497 on mismatching quotes in %run completer. Patch by
489 498 JοΏ½rgen Stenarson. Closes #127.
490 499
491 500 2007-03-14 Ville Vainio <vivainio@gmail.com>
492 501
493 502 * Extensions/ext_rehashdir.py: Do not do auto_alias
494 503 in %rehashdir, it clobbers %store'd aliases.
495 504
496 505 * UserConfig/ipy_profile_sh.py: envpersist.py extension
497 506 (beefed up %env) imported for sh profile.
498 507
499 508 2007-03-10 Walter Doerwald <walter@livinglogic.de>
500 509
501 510 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
502 511 as the default browser.
503 512 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
504 513 As igrid displays all attributes it ever encounters, fetch() (which has
505 514 been renamed to _fetch()) doesn't have to recalculate the display attributes
506 515 every time a new item is fetched. This should speed up scrolling.
507 516
508 517 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
509 518
510 519 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
511 520 Schmolck's recently reported tab-completion bug (my previous one
512 521 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
513 522
514 523 2007-03-09 Walter Doerwald <walter@livinglogic.de>
515 524
516 525 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
517 526 Close help window if exiting igrid.
518 527
519 528 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
520 529
521 530 * IPython/Extensions/ipy_defaults.py: Check if readline is available
522 531 before calling functions from readline.
523 532
524 533 2007-03-02 Walter Doerwald <walter@livinglogic.de>
525 534
526 535 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
527 536 igrid is a wxPython-based display object for ipipe. If your system has
528 537 wx installed igrid will be the default display. Without wx ipipe falls
529 538 back to ibrowse (which needs curses). If no curses is installed ipipe
530 539 falls back to idump.
531 540
532 541 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
533 542
534 543 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
535 544 my changes from yesterday, they introduced bugs. Will reactivate
536 545 once I get a correct solution, which will be much easier thanks to
537 546 Dan Milstein's new prefilter test suite.
538 547
539 548 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
540 549
541 550 * IPython/iplib.py (split_user_input): fix input splitting so we
542 551 don't attempt attribute accesses on things that can't possibly be
543 552 valid Python attributes. After a bug report by Alex Schmolck.
544 553 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
545 554 %magic with explicit % prefix.
546 555
547 556 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
548 557
549 558 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
550 559 avoid a DeprecationWarning from GTK.
551 560
552 561 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
553 562
554 563 * IPython/genutils.py (clock): I modified clock() to return total
555 564 time, user+system. This is a more commonly needed metric. I also
556 565 introduced the new clocku/clocks to get only user/system time if
557 566 one wants those instead.
558 567
559 568 ***WARNING: API CHANGE*** clock() used to return only user time,
560 569 so if you want exactly the same results as before, use clocku
561 570 instead.
562 571
563 572 2007-02-22 Ville Vainio <vivainio@gmail.com>
564 573
565 574 * IPython/Extensions/ipy_p4.py: Extension for improved
566 575 p4 (perforce version control system) experience.
567 576 Adds %p4 magic with p4 command completion and
568 577 automatic -G argument (marshall output as python dict)
569 578
570 579 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
571 580
572 581 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
573 582 stop marks.
574 583 (ClearingMixin): a simple mixin to easily make a Demo class clear
575 584 the screen in between blocks and have empty marquees. The
576 585 ClearDemo and ClearIPDemo classes that use it are included.
577 586
578 587 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
579 588
580 589 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
581 590 protect against exceptions at Python shutdown time. Patch
582 591 sumbmitted to upstream.
583 592
584 593 2007-02-14 Walter Doerwald <walter@livinglogic.de>
585 594
586 595 * IPython/Extensions/ibrowse.py: If entering the first object level
587 596 (i.e. the object for which the browser has been started) fails,
588 597 now the error is raised directly (aborting the browser) instead of
589 598 running into an empty levels list later.
590 599
591 600 2007-02-03 Walter Doerwald <walter@livinglogic.de>
592 601
593 602 * IPython/Extensions/ipipe.py: Add an xrepr implementation
594 603 for the noitem object.
595 604
596 605 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
597 606
598 607 * IPython/completer.py (Completer.attr_matches): Fix small
599 608 tab-completion bug with Enthought Traits objects with units.
600 609 Thanks to a bug report by Tom Denniston
601 610 <tom.denniston-AT-alum.dartmouth.org>.
602 611
603 612 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
604 613
605 614 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
606 615 bug where only .ipy or .py would be completed. Once the first
607 616 argument to %run has been given, all completions are valid because
608 617 they are the arguments to the script, which may well be non-python
609 618 filenames.
610 619
611 620 * IPython/irunner.py (InteractiveRunner.run_source): major updates
612 621 to irunner to allow it to correctly support real doctesting of
613 622 out-of-process ipython code.
614 623
615 624 * IPython/Magic.py (magic_cd): Make the setting of the terminal
616 625 title an option (-noterm_title) because it completely breaks
617 626 doctesting.
618 627
619 628 * IPython/demo.py: fix IPythonDemo class that was not actually working.
620 629
621 630 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
622 631
623 632 * IPython/irunner.py (main): fix small bug where extensions were
624 633 not being correctly recognized.
625 634
626 635 2007-01-23 Walter Doerwald <walter@livinglogic.de>
627 636
628 637 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
629 638 a string containing a single line yields the string itself as the
630 639 only item.
631 640
632 641 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
633 642 object if it's the same as the one on the last level (This avoids
634 643 infinite recursion for one line strings).
635 644
636 645 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
637 646
638 647 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
639 648 all output streams before printing tracebacks. This ensures that
640 649 user output doesn't end up interleaved with traceback output.
641 650
642 651 2007-01-10 Ville Vainio <vivainio@gmail.com>
643 652
644 653 * Extensions/envpersist.py: Turbocharged %env that remembers
645 654 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
646 655 "%env VISUAL=jed".
647 656
648 657 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
649 658
650 659 * IPython/iplib.py (showtraceback): ensure that we correctly call
651 660 custom handlers in all cases (some with pdb were slipping through,
652 661 but I'm not exactly sure why).
653 662
654 663 * IPython/Debugger.py (Tracer.__init__): added new class to
655 664 support set_trace-like usage of IPython's enhanced debugger.
656 665
657 666 2006-12-24 Ville Vainio <vivainio@gmail.com>
658 667
659 668 * ipmaker.py: more informative message when ipy_user_conf
660 669 import fails (suggest running %upgrade).
661 670
662 671 * tools/run_ipy_in_profiler.py: Utility to see where
663 672 the time during IPython startup is spent.
664 673
665 674 2006-12-20 Ville Vainio <vivainio@gmail.com>
666 675
667 676 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
668 677
669 678 * ipapi.py: Add new ipapi method, expand_alias.
670 679
671 680 * Release.py: Bump up version to 0.7.4.svn
672 681
673 682 2006-12-17 Ville Vainio <vivainio@gmail.com>
674 683
675 684 * Extensions/jobctrl.py: Fixed &cmd arg arg...
676 685 to work properly on posix too
677 686
678 687 * Release.py: Update revnum (version is still just 0.7.3).
679 688
680 689 2006-12-15 Ville Vainio <vivainio@gmail.com>
681 690
682 691 * scripts/ipython_win_post_install: create ipython.py in
683 692 prefix + "/scripts".
684 693
685 694 * Release.py: Update version to 0.7.3.
686 695
687 696 2006-12-14 Ville Vainio <vivainio@gmail.com>
688 697
689 698 * scripts/ipython_win_post_install: Overwrite old shortcuts
690 699 if they already exist
691 700
692 701 * Release.py: release 0.7.3rc2
693 702
694 703 2006-12-13 Ville Vainio <vivainio@gmail.com>
695 704
696 705 * Branch and update Release.py for 0.7.3rc1
697 706
698 707 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
699 708
700 709 * IPython/Shell.py (IPShellWX): update for current WX naming
701 710 conventions, to avoid a deprecation warning with current WX
702 711 versions. Thanks to a report by Danny Shevitz.
703 712
704 713 2006-12-12 Ville Vainio <vivainio@gmail.com>
705 714
706 715 * ipmaker.py: apply david cournapeau's patch to make
707 716 import_some work properly even when ipythonrc does
708 717 import_some on empty list (it was an old bug!).
709 718
710 719 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
711 720 Add deprecation note to ipythonrc and a url to wiki
712 721 in ipy_user_conf.py
713 722
714 723
715 724 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
716 725 as if it was typed on IPython command prompt, i.e.
717 726 as IPython script.
718 727
719 728 * example-magic.py, magic_grepl.py: remove outdated examples
720 729
721 730 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
722 731
723 732 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
724 733 is called before any exception has occurred.
725 734
726 735 2006-12-08 Ville Vainio <vivainio@gmail.com>
727 736
728 737 * Extensions/ipy_stock_completers.py: fix cd completer
729 738 to translate /'s to \'s again.
730 739
731 740 * completer.py: prevent traceback on file completions w/
732 741 backslash.
733 742
734 743 * Release.py: Update release number to 0.7.3b3 for release
735 744
736 745 2006-12-07 Ville Vainio <vivainio@gmail.com>
737 746
738 747 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
739 748 while executing external code. Provides more shell-like behaviour
740 749 and overall better response to ctrl + C / ctrl + break.
741 750
742 751 * tools/make_tarball.py: new script to create tarball straight from svn
743 752 (setup.py sdist doesn't work on win32).
744 753
745 754 * Extensions/ipy_stock_completers.py: fix cd completer to give up
746 755 on dirnames with spaces and use the default completer instead.
747 756
748 757 * Revision.py: Change version to 0.7.3b2 for release.
749 758
750 759 2006-12-05 Ville Vainio <vivainio@gmail.com>
751 760
752 761 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
753 762 pydb patch 4 (rm debug printing, py 2.5 checking)
754 763
755 764 2006-11-30 Walter Doerwald <walter@livinglogic.de>
756 765 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
757 766 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
758 767 "refreshfind" (mapped to "R") does the same but tries to go back to the same
759 768 object the cursor was on before the refresh. The command "markrange" is
760 769 mapped to "%" now.
761 770 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
762 771
763 772 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
764 773
765 774 * IPython/Magic.py (magic_debug): new %debug magic to activate the
766 775 interactive debugger on the last traceback, without having to call
767 776 %pdb and rerun your code. Made minor changes in various modules,
768 777 should automatically recognize pydb if available.
769 778
770 779 2006-11-28 Ville Vainio <vivainio@gmail.com>
771 780
772 781 * completer.py: If the text start with !, show file completions
773 782 properly. This helps when trying to complete command name
774 783 for shell escapes.
775 784
776 785 2006-11-27 Ville Vainio <vivainio@gmail.com>
777 786
778 787 * ipy_stock_completers.py: bzr completer submitted by Stefan van
779 788 der Walt. Clean up svn and hg completers by using a common
780 789 vcs_completer.
781 790
782 791 2006-11-26 Ville Vainio <vivainio@gmail.com>
783 792
784 793 * Remove ipconfig and %config; you should use _ip.options structure
785 794 directly instead!
786 795
787 796 * genutils.py: add wrap_deprecated function for deprecating callables
788 797
789 798 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
790 799 _ip.system instead. ipalias is redundant.
791 800
792 801 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
793 802 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
794 803 explicit.
795 804
796 805 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
797 806 completer. Try it by entering 'hg ' and pressing tab.
798 807
799 808 * macro.py: Give Macro a useful __repr__ method
800 809
801 810 * Magic.py: %whos abbreviates the typename of Macro for brevity.
802 811
803 812 2006-11-24 Walter Doerwald <walter@livinglogic.de>
804 813 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
805 814 we don't get a duplicate ipipe module, where registration of the xrepr
806 815 implementation for Text is useless.
807 816
808 817 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
809 818
810 819 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
811 820
812 821 2006-11-24 Ville Vainio <vivainio@gmail.com>
813 822
814 823 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
815 824 try to use "cProfile" instead of the slower pure python
816 825 "profile"
817 826
818 827 2006-11-23 Ville Vainio <vivainio@gmail.com>
819 828
820 829 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
821 830 Qt+IPython+Designer link in documentation.
822 831
823 832 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
824 833 correct Pdb object to %pydb.
825 834
826 835
827 836 2006-11-22 Walter Doerwald <walter@livinglogic.de>
828 837 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
829 838 generic xrepr(), otherwise the list implementation would kick in.
830 839
831 840 2006-11-21 Ville Vainio <vivainio@gmail.com>
832 841
833 842 * upgrade_dir.py: Now actually overwrites a nonmodified user file
834 843 with one from UserConfig.
835 844
836 845 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
837 846 it was missing which broke the sh profile.
838 847
839 848 * completer.py: file completer now uses explicit '/' instead
840 849 of os.path.join, expansion of 'foo' was broken on win32
841 850 if there was one directory with name 'foobar'.
842 851
843 852 * A bunch of patches from Kirill Smelkov:
844 853
845 854 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
846 855
847 856 * [patch 7/9] Implement %page -r (page in raw mode) -
848 857
849 858 * [patch 5/9] ScientificPython webpage has moved
850 859
851 860 * [patch 4/9] The manual mentions %ds, should be %dhist
852 861
853 862 * [patch 3/9] Kill old bits from %prun doc.
854 863
855 864 * [patch 1/9] Fix typos here and there.
856 865
857 866 2006-11-08 Ville Vainio <vivainio@gmail.com>
858 867
859 868 * completer.py (attr_matches): catch all exceptions raised
860 869 by eval of expr with dots.
861 870
862 871 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
863 872
864 873 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
865 874 input if it starts with whitespace. This allows you to paste
866 875 indented input from any editor without manually having to type in
867 876 the 'if 1:', which is convenient when working interactively.
868 877 Slightly modifed version of a patch by Bo Peng
869 878 <bpeng-AT-rice.edu>.
870 879
871 880 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
872 881
873 882 * IPython/irunner.py (main): modified irunner so it automatically
874 883 recognizes the right runner to use based on the extension (.py for
875 884 python, .ipy for ipython and .sage for sage).
876 885
877 886 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
878 887 visible in ipapi as ip.config(), to programatically control the
879 888 internal rc object. There's an accompanying %config magic for
880 889 interactive use, which has been enhanced to match the
881 890 funtionality in ipconfig.
882 891
883 892 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
884 893 so it's not just a toggle, it now takes an argument. Add support
885 894 for a customizable header when making system calls, as the new
886 895 system_header variable in the ipythonrc file.
887 896
888 897 2006-11-03 Walter Doerwald <walter@livinglogic.de>
889 898
890 899 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
891 900 generic functions (using Philip J. Eby's simplegeneric package).
892 901 This makes it possible to customize the display of third-party classes
893 902 without having to monkeypatch them. xiter() no longer supports a mode
894 903 argument and the XMode class has been removed. The same functionality can
895 904 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
896 905 One consequence of the switch to generic functions is that xrepr() and
897 906 xattrs() implementation must define the default value for the mode
898 907 argument themselves and xattrs() implementations must return real
899 908 descriptors.
900 909
901 910 * IPython/external: This new subpackage will contain all third-party
902 911 packages that are bundled with IPython. (The first one is simplegeneric).
903 912
904 913 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
905 914 directory which as been dropped in r1703.
906 915
907 916 * IPython/Extensions/ipipe.py (iless): Fixed.
908 917
909 918 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
910 919
911 920 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
912 921
913 922 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
914 923 handling in variable expansion so that shells and magics recognize
915 924 function local scopes correctly. Bug reported by Brian.
916 925
917 926 * scripts/ipython: remove the very first entry in sys.path which
918 927 Python auto-inserts for scripts, so that sys.path under IPython is
919 928 as similar as possible to that under plain Python.
920 929
921 930 * IPython/completer.py (IPCompleter.file_matches): Fix
922 931 tab-completion so that quotes are not closed unless the completion
923 932 is unambiguous. After a request by Stefan. Minor cleanups in
924 933 ipy_stock_completers.
925 934
926 935 2006-11-02 Ville Vainio <vivainio@gmail.com>
927 936
928 937 * ipy_stock_completers.py: Add %run and %cd completers.
929 938
930 939 * completer.py: Try running custom completer for both
931 940 "foo" and "%foo" if the command is just "foo". Ignore case
932 941 when filtering possible completions.
933 942
934 943 * UserConfig/ipy_user_conf.py: install stock completers as default
935 944
936 945 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
937 946 simplified readline history save / restore through a wrapper
938 947 function
939 948
940 949
941 950 2006-10-31 Ville Vainio <vivainio@gmail.com>
942 951
943 952 * strdispatch.py, completer.py, ipy_stock_completers.py:
944 953 Allow str_key ("command") in completer hooks. Implement
945 954 trivial completer for 'import' (stdlib modules only). Rename
946 955 ipy_linux_package_managers.py to ipy_stock_completers.py.
947 956 SVN completer.
948 957
949 958 * Extensions/ledit.py: %magic line editor for easily and
950 959 incrementally manipulating lists of strings. The magic command
951 960 name is %led.
952 961
953 962 2006-10-30 Ville Vainio <vivainio@gmail.com>
954 963
955 964 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
956 965 Bernsteins's patches for pydb integration.
957 966 http://bashdb.sourceforge.net/pydb/
958 967
959 968 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
960 969 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
961 970 custom completer hook to allow the users to implement their own
962 971 completers. See ipy_linux_package_managers.py for example. The
963 972 hook name is 'complete_command'.
964 973
965 974 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
966 975
967 976 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
968 977 Numeric leftovers.
969 978
970 979 * ipython.el (py-execute-region): apply Stefan's patch to fix
971 980 garbled results if the python shell hasn't been previously started.
972 981
973 982 * IPython/genutils.py (arg_split): moved to genutils, since it's a
974 983 pretty generic function and useful for other things.
975 984
976 985 * IPython/OInspect.py (getsource): Add customizable source
977 986 extractor. After a request/patch form W. Stein (SAGE).
978 987
979 988 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
980 989 window size to a more reasonable value from what pexpect does,
981 990 since their choice causes wrapping bugs with long input lines.
982 991
983 992 2006-10-28 Ville Vainio <vivainio@gmail.com>
984 993
985 994 * Magic.py (%run): Save and restore the readline history from
986 995 file around %run commands to prevent side effects from
987 996 %runned programs that might use readline (e.g. pydb).
988 997
989 998 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
990 999 invoking the pydb enhanced debugger.
991 1000
992 1001 2006-10-23 Walter Doerwald <walter@livinglogic.de>
993 1002
994 1003 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
995 1004 call the base class method and propagate the return value to
996 1005 ifile. This is now done by path itself.
997 1006
998 1007 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
999 1008
1000 1009 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1001 1010 api: set_crash_handler(), to expose the ability to change the
1002 1011 internal crash handler.
1003 1012
1004 1013 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1005 1014 the various parameters of the crash handler so that apps using
1006 1015 IPython as their engine can customize crash handling. Ipmlemented
1007 1016 at the request of SAGE.
1008 1017
1009 1018 2006-10-14 Ville Vainio <vivainio@gmail.com>
1010 1019
1011 1020 * Magic.py, ipython.el: applied first "safe" part of Rocky
1012 1021 Bernstein's patch set for pydb integration.
1013 1022
1014 1023 * Magic.py (%unalias, %alias): %store'd aliases can now be
1015 1024 removed with '%unalias'. %alias w/o args now shows most
1016 1025 interesting (stored / manually defined) aliases last
1017 1026 where they catch the eye w/o scrolling.
1018 1027
1019 1028 * Magic.py (%rehashx), ext_rehashdir.py: files with
1020 1029 'py' extension are always considered executable, even
1021 1030 when not in PATHEXT environment variable.
1022 1031
1023 1032 2006-10-12 Ville Vainio <vivainio@gmail.com>
1024 1033
1025 1034 * jobctrl.py: Add new "jobctrl" extension for spawning background
1026 1035 processes with "&find /". 'import jobctrl' to try it out. Requires
1027 1036 'subprocess' module, standard in python 2.4+.
1028 1037
1029 1038 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1030 1039 so if foo -> bar and bar -> baz, then foo -> baz.
1031 1040
1032 1041 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1033 1042
1034 1043 * IPython/Magic.py (Magic.parse_options): add a new posix option
1035 1044 to allow parsing of input args in magics that doesn't strip quotes
1036 1045 (if posix=False). This also closes %timeit bug reported by
1037 1046 Stefan.
1038 1047
1039 1048 2006-10-03 Ville Vainio <vivainio@gmail.com>
1040 1049
1041 1050 * iplib.py (raw_input, interact): Return ValueError catching for
1042 1051 raw_input. Fixes infinite loop for sys.stdin.close() or
1043 1052 sys.stdout.close().
1044 1053
1045 1054 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1046 1055
1047 1056 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1048 1057 to help in handling doctests. irunner is now pretty useful for
1049 1058 running standalone scripts and simulate a full interactive session
1050 1059 in a format that can be then pasted as a doctest.
1051 1060
1052 1061 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1053 1062 on top of the default (useless) ones. This also fixes the nasty
1054 1063 way in which 2.5's Quitter() exits (reverted [1785]).
1055 1064
1056 1065 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1057 1066 2.5.
1058 1067
1059 1068 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1060 1069 color scheme is updated as well when color scheme is changed
1061 1070 interactively.
1062 1071
1063 1072 2006-09-27 Ville Vainio <vivainio@gmail.com>
1064 1073
1065 1074 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1066 1075 infinite loop and just exit. It's a hack, but will do for a while.
1067 1076
1068 1077 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1069 1078
1070 1079 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1071 1080 the constructor, this makes it possible to get a list of only directories
1072 1081 or only files.
1073 1082
1074 1083 2006-08-12 Ville Vainio <vivainio@gmail.com>
1075 1084
1076 1085 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1077 1086 they broke unittest
1078 1087
1079 1088 2006-08-11 Ville Vainio <vivainio@gmail.com>
1080 1089
1081 1090 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1082 1091 by resolving issue properly, i.e. by inheriting FakeModule
1083 1092 from types.ModuleType. Pickling ipython interactive data
1084 1093 should still work as usual (testing appreciated).
1085 1094
1086 1095 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1087 1096
1088 1097 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1089 1098 running under python 2.3 with code from 2.4 to fix a bug with
1090 1099 help(). Reported by the Debian maintainers, Norbert Tretkowski
1091 1100 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1092 1101 <afayolle-AT-debian.org>.
1093 1102
1094 1103 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1095 1104
1096 1105 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1097 1106 (which was displaying "quit" twice).
1098 1107
1099 1108 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1100 1109
1101 1110 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1102 1111 the mode argument).
1103 1112
1104 1113 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1105 1114
1106 1115 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1107 1116 not running under IPython.
1108 1117
1109 1118 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1110 1119 and make it iterable (iterating over the attribute itself). Add two new
1111 1120 magic strings for __xattrs__(): If the string starts with "-", the attribute
1112 1121 will not be displayed in ibrowse's detail view (but it can still be
1113 1122 iterated over). This makes it possible to add attributes that are large
1114 1123 lists or generator methods to the detail view. Replace magic attribute names
1115 1124 and _attrname() and _getattr() with "descriptors": For each type of magic
1116 1125 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1117 1126 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1118 1127 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1119 1128 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1120 1129 are still supported.
1121 1130
1122 1131 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1123 1132 fails in ibrowse.fetch(), the exception object is added as the last item
1124 1133 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1125 1134 a generator throws an exception midway through execution.
1126 1135
1127 1136 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1128 1137 encoding into methods.
1129 1138
1130 1139 2006-07-26 Ville Vainio <vivainio@gmail.com>
1131 1140
1132 1141 * iplib.py: history now stores multiline input as single
1133 1142 history entries. Patch by Jorgen Cederlof.
1134 1143
1135 1144 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1136 1145
1137 1146 * IPython/Extensions/ibrowse.py: Make cursor visible over
1138 1147 non existing attributes.
1139 1148
1140 1149 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1141 1150
1142 1151 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1143 1152 error output of the running command doesn't mess up the screen.
1144 1153
1145 1154 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1146 1155
1147 1156 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1148 1157 argument. This sorts the items themselves.
1149 1158
1150 1159 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1151 1160
1152 1161 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1153 1162 Compile expression strings into code objects. This should speed
1154 1163 up ifilter and friends somewhat.
1155 1164
1156 1165 2006-07-08 Ville Vainio <vivainio@gmail.com>
1157 1166
1158 1167 * Magic.py: %cpaste now strips > from the beginning of lines
1159 1168 to ease pasting quoted code from emails. Contributed by
1160 1169 Stefan van der Walt.
1161 1170
1162 1171 2006-06-29 Ville Vainio <vivainio@gmail.com>
1163 1172
1164 1173 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1165 1174 mode, patch contributed by Darren Dale. NEEDS TESTING!
1166 1175
1167 1176 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1168 1177
1169 1178 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1170 1179 a blue background. Fix fetching new display rows when the browser
1171 1180 scrolls more than a screenful (e.g. by using the goto command).
1172 1181
1173 1182 2006-06-27 Ville Vainio <vivainio@gmail.com>
1174 1183
1175 1184 * Magic.py (_inspect, _ofind) Apply David Huard's
1176 1185 patch for displaying the correct docstring for 'property'
1177 1186 attributes.
1178 1187
1179 1188 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1180 1189
1181 1190 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1182 1191 commands into the methods implementing them.
1183 1192
1184 1193 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1185 1194
1186 1195 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1187 1196 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1188 1197 autoindent support was authored by Jin Liu.
1189 1198
1190 1199 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1191 1200
1192 1201 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1193 1202 for keymaps with a custom class that simplifies handling.
1194 1203
1195 1204 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1196 1205
1197 1206 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1198 1207 resizing. This requires Python 2.5 to work.
1199 1208
1200 1209 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1201 1210
1202 1211 * IPython/Extensions/ibrowse.py: Add two new commands to
1203 1212 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1204 1213 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1205 1214 attributes again. Remapped the help command to "?". Display
1206 1215 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1207 1216 as keys for the "home" and "end" commands. Add three new commands
1208 1217 to the input mode for "find" and friends: "delend" (CTRL-K)
1209 1218 deletes to the end of line. "incsearchup" searches upwards in the
1210 1219 command history for an input that starts with the text before the cursor.
1211 1220 "incsearchdown" does the same downwards. Removed a bogus mapping of
1212 1221 the x key to "delete".
1213 1222
1214 1223 2006-06-15 Ville Vainio <vivainio@gmail.com>
1215 1224
1216 1225 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1217 1226 used to create prompts dynamically, instead of the "old" way of
1218 1227 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1219 1228 way still works (it's invoked by the default hook), of course.
1220 1229
1221 1230 * Prompts.py: added generate_output_prompt hook for altering output
1222 1231 prompt
1223 1232
1224 1233 * Release.py: Changed version string to 0.7.3.svn.
1225 1234
1226 1235 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1227 1236
1228 1237 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1229 1238 the call to fetch() always tries to fetch enough data for at least one
1230 1239 full screen. This makes it possible to simply call moveto(0,0,True) in
1231 1240 the constructor. Fix typos and removed the obsolete goto attribute.
1232 1241
1233 1242 2006-06-12 Ville Vainio <vivainio@gmail.com>
1234 1243
1235 1244 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1236 1245 allowing $variable interpolation within multiline statements,
1237 1246 though so far only with "sh" profile for a testing period.
1238 1247 The patch also enables splitting long commands with \ but it
1239 1248 doesn't work properly yet.
1240 1249
1241 1250 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1242 1251
1243 1252 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1244 1253 input history and the position of the cursor in the input history for
1245 1254 the find, findbackwards and goto command.
1246 1255
1247 1256 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1248 1257
1249 1258 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1250 1259 implements the basic functionality of browser commands that require
1251 1260 input. Reimplement the goto, find and findbackwards commands as
1252 1261 subclasses of _CommandInput. Add an input history and keymaps to those
1253 1262 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1254 1263 execute commands.
1255 1264
1256 1265 2006-06-07 Ville Vainio <vivainio@gmail.com>
1257 1266
1258 1267 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1259 1268 running the batch files instead of leaving the session open.
1260 1269
1261 1270 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1262 1271
1263 1272 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1264 1273 the original fix was incomplete. Patch submitted by W. Maier.
1265 1274
1266 1275 2006-06-07 Ville Vainio <vivainio@gmail.com>
1267 1276
1268 1277 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1269 1278 Confirmation prompts can be supressed by 'quiet' option.
1270 1279 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1271 1280
1272 1281 2006-06-06 *** Released version 0.7.2
1273 1282
1274 1283 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1275 1284
1276 1285 * IPython/Release.py (version): Made 0.7.2 final for release.
1277 1286 Repo tagged and release cut.
1278 1287
1279 1288 2006-06-05 Ville Vainio <vivainio@gmail.com>
1280 1289
1281 1290 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1282 1291 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1283 1292
1284 1293 * upgrade_dir.py: try import 'path' module a bit harder
1285 1294 (for %upgrade)
1286 1295
1287 1296 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1288 1297
1289 1298 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1290 1299 instead of looping 20 times.
1291 1300
1292 1301 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1293 1302 correctly at initialization time. Bug reported by Krishna Mohan
1294 1303 Gundu <gkmohan-AT-gmail.com> on the user list.
1295 1304
1296 1305 * IPython/Release.py (version): Mark 0.7.2 version to start
1297 1306 testing for release on 06/06.
1298 1307
1299 1308 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1300 1309
1301 1310 * scripts/irunner: thin script interface so users don't have to
1302 1311 find the module and call it as an executable, since modules rarely
1303 1312 live in people's PATH.
1304 1313
1305 1314 * IPython/irunner.py (InteractiveRunner.__init__): added
1306 1315 delaybeforesend attribute to control delays with newer versions of
1307 1316 pexpect. Thanks to detailed help from pexpect's author, Noah
1308 1317 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1309 1318 correctly (it works in NoColor mode).
1310 1319
1311 1320 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1312 1321 SAGE list, from improper log() calls.
1313 1322
1314 1323 2006-05-31 Ville Vainio <vivainio@gmail.com>
1315 1324
1316 1325 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1317 1326 with args in parens to work correctly with dirs that have spaces.
1318 1327
1319 1328 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1320 1329
1321 1330 * IPython/Logger.py (Logger.logstart): add option to log raw input
1322 1331 instead of the processed one. A -r flag was added to the
1323 1332 %logstart magic used for controlling logging.
1324 1333
1325 1334 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1326 1335
1327 1336 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1328 1337 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1329 1338 recognize the option. After a bug report by Will Maier. This
1330 1339 closes #64 (will do it after confirmation from W. Maier).
1331 1340
1332 1341 * IPython/irunner.py: New module to run scripts as if manually
1333 1342 typed into an interactive environment, based on pexpect. After a
1334 1343 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1335 1344 ipython-user list. Simple unittests in the tests/ directory.
1336 1345
1337 1346 * tools/release: add Will Maier, OpenBSD port maintainer, to
1338 1347 recepients list. We are now officially part of the OpenBSD ports:
1339 1348 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1340 1349 work.
1341 1350
1342 1351 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1343 1352
1344 1353 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1345 1354 so that it doesn't break tkinter apps.
1346 1355
1347 1356 * IPython/iplib.py (_prefilter): fix bug where aliases would
1348 1357 shadow variables when autocall was fully off. Reported by SAGE
1349 1358 author William Stein.
1350 1359
1351 1360 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1352 1361 at what detail level strings are computed when foo? is requested.
1353 1362 This allows users to ask for example that the string form of an
1354 1363 object is only computed when foo?? is called, or even never, by
1355 1364 setting the object_info_string_level >= 2 in the configuration
1356 1365 file. This new option has been added and documented. After a
1357 1366 request by SAGE to be able to control the printing of very large
1358 1367 objects more easily.
1359 1368
1360 1369 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1361 1370
1362 1371 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1363 1372 from sys.argv, to be 100% consistent with how Python itself works
1364 1373 (as seen for example with python -i file.py). After a bug report
1365 1374 by Jeffrey Collins.
1366 1375
1367 1376 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1368 1377 nasty bug which was preventing custom namespaces with -pylab,
1369 1378 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1370 1379 compatibility (long gone from mpl).
1371 1380
1372 1381 * IPython/ipapi.py (make_session): name change: create->make. We
1373 1382 use make in other places (ipmaker,...), it's shorter and easier to
1374 1383 type and say, etc. I'm trying to clean things before 0.7.2 so
1375 1384 that I can keep things stable wrt to ipapi in the chainsaw branch.
1376 1385
1377 1386 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1378 1387 python-mode recognizes our debugger mode. Add support for
1379 1388 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1380 1389 <m.liu.jin-AT-gmail.com> originally written by
1381 1390 doxgen-AT-newsmth.net (with minor modifications for xemacs
1382 1391 compatibility)
1383 1392
1384 1393 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1385 1394 tracebacks when walking the stack so that the stack tracking system
1386 1395 in emacs' python-mode can identify the frames correctly.
1387 1396
1388 1397 * IPython/ipmaker.py (make_IPython): make the internal (and
1389 1398 default config) autoedit_syntax value false by default. Too many
1390 1399 users have complained to me (both on and off-list) about problems
1391 1400 with this option being on by default, so I'm making it default to
1392 1401 off. It can still be enabled by anyone via the usual mechanisms.
1393 1402
1394 1403 * IPython/completer.py (Completer.attr_matches): add support for
1395 1404 PyCrust-style _getAttributeNames magic method. Patch contributed
1396 1405 by <mscott-AT-goldenspud.com>. Closes #50.
1397 1406
1398 1407 * IPython/iplib.py (InteractiveShell.__init__): remove the
1399 1408 deletion of exit/quit from __builtin__, which can break
1400 1409 third-party tools like the Zope debugging console. The
1401 1410 %exit/%quit magics remain. In general, it's probably a good idea
1402 1411 not to delete anything from __builtin__, since we never know what
1403 1412 that will break. In any case, python now (for 2.5) will support
1404 1413 'real' exit/quit, so this issue is moot. Closes #55.
1405 1414
1406 1415 * IPython/genutils.py (with_obj): rename the 'with' function to
1407 1416 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1408 1417 becomes a language keyword. Closes #53.
1409 1418
1410 1419 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1411 1420 __file__ attribute to this so it fools more things into thinking
1412 1421 it is a real module. Closes #59.
1413 1422
1414 1423 * IPython/Magic.py (magic_edit): add -n option to open the editor
1415 1424 at a specific line number. After a patch by Stefan van der Walt.
1416 1425
1417 1426 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1418 1427
1419 1428 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1420 1429 reason the file could not be opened. After automatic crash
1421 1430 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1422 1431 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1423 1432 (_should_recompile): Don't fire editor if using %bg, since there
1424 1433 is no file in the first place. From the same report as above.
1425 1434 (raw_input): protect against faulty third-party prefilters. After
1426 1435 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1427 1436 while running under SAGE.
1428 1437
1429 1438 2006-05-23 Ville Vainio <vivainio@gmail.com>
1430 1439
1431 1440 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1432 1441 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1433 1442 now returns None (again), unless dummy is specifically allowed by
1434 1443 ipapi.get(allow_dummy=True).
1435 1444
1436 1445 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1437 1446
1438 1447 * IPython: remove all 2.2-compatibility objects and hacks from
1439 1448 everywhere, since we only support 2.3 at this point. Docs
1440 1449 updated.
1441 1450
1442 1451 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1443 1452 Anything requiring extra validation can be turned into a Python
1444 1453 property in the future. I used a property for the db one b/c
1445 1454 there was a nasty circularity problem with the initialization
1446 1455 order, which right now I don't have time to clean up.
1447 1456
1448 1457 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1449 1458 another locking bug reported by Jorgen. I'm not 100% sure though,
1450 1459 so more testing is needed...
1451 1460
1452 1461 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1453 1462
1454 1463 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1455 1464 local variables from any routine in user code (typically executed
1456 1465 with %run) directly into the interactive namespace. Very useful
1457 1466 when doing complex debugging.
1458 1467 (IPythonNotRunning): Changed the default None object to a dummy
1459 1468 whose attributes can be queried as well as called without
1460 1469 exploding, to ease writing code which works transparently both in
1461 1470 and out of ipython and uses some of this API.
1462 1471
1463 1472 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1464 1473
1465 1474 * IPython/hooks.py (result_display): Fix the fact that our display
1466 1475 hook was using str() instead of repr(), as the default python
1467 1476 console does. This had gone unnoticed b/c it only happened if
1468 1477 %Pprint was off, but the inconsistency was there.
1469 1478
1470 1479 2006-05-15 Ville Vainio <vivainio@gmail.com>
1471 1480
1472 1481 * Oinspect.py: Only show docstring for nonexisting/binary files
1473 1482 when doing object??, closing ticket #62
1474 1483
1475 1484 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1476 1485
1477 1486 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1478 1487 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1479 1488 was being released in a routine which hadn't checked if it had
1480 1489 been the one to acquire it.
1481 1490
1482 1491 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1483 1492
1484 1493 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1485 1494
1486 1495 2006-04-11 Ville Vainio <vivainio@gmail.com>
1487 1496
1488 1497 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1489 1498 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1490 1499 prefilters, allowing stuff like magics and aliases in the file.
1491 1500
1492 1501 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1493 1502 added. Supported now are "%clear in" and "%clear out" (clear input and
1494 1503 output history, respectively). Also fixed CachedOutput.flush to
1495 1504 properly flush the output cache.
1496 1505
1497 1506 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1498 1507 half-success (and fail explicitly).
1499 1508
1500 1509 2006-03-28 Ville Vainio <vivainio@gmail.com>
1501 1510
1502 1511 * iplib.py: Fix quoting of aliases so that only argless ones
1503 1512 are quoted
1504 1513
1505 1514 2006-03-28 Ville Vainio <vivainio@gmail.com>
1506 1515
1507 1516 * iplib.py: Quote aliases with spaces in the name.
1508 1517 "c:\program files\blah\bin" is now legal alias target.
1509 1518
1510 1519 * ext_rehashdir.py: Space no longer allowed as arg
1511 1520 separator, since space is legal in path names.
1512 1521
1513 1522 2006-03-16 Ville Vainio <vivainio@gmail.com>
1514 1523
1515 1524 * upgrade_dir.py: Take path.py from Extensions, correcting
1516 1525 %upgrade magic
1517 1526
1518 1527 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1519 1528
1520 1529 * hooks.py: Only enclose editor binary in quotes if legal and
1521 1530 necessary (space in the name, and is an existing file). Fixes a bug
1522 1531 reported by Zachary Pincus.
1523 1532
1524 1533 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1525 1534
1526 1535 * Manual: thanks to a tip on proper color handling for Emacs, by
1527 1536 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1528 1537
1529 1538 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1530 1539 by applying the provided patch. Thanks to Liu Jin
1531 1540 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1532 1541 XEmacs/Linux, I'm trusting the submitter that it actually helps
1533 1542 under win32/GNU Emacs. Will revisit if any problems are reported.
1534 1543
1535 1544 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1536 1545
1537 1546 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1538 1547 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1539 1548
1540 1549 2006-03-12 Ville Vainio <vivainio@gmail.com>
1541 1550
1542 1551 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1543 1552 Torsten Marek.
1544 1553
1545 1554 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1546 1555
1547 1556 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1548 1557 line ranges works again.
1549 1558
1550 1559 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1551 1560
1552 1561 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1553 1562 and friends, after a discussion with Zach Pincus on ipython-user.
1554 1563 I'm not 100% sure, but after thinking about it quite a bit, it may
1555 1564 be OK. Testing with the multithreaded shells didn't reveal any
1556 1565 problems, but let's keep an eye out.
1557 1566
1558 1567 In the process, I fixed a few things which were calling
1559 1568 self.InteractiveTB() directly (like safe_execfile), which is a
1560 1569 mistake: ALL exception reporting should be done by calling
1561 1570 self.showtraceback(), which handles state and tab-completion and
1562 1571 more.
1563 1572
1564 1573 2006-03-01 Ville Vainio <vivainio@gmail.com>
1565 1574
1566 1575 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1567 1576 To use, do "from ipipe import *".
1568 1577
1569 1578 2006-02-24 Ville Vainio <vivainio@gmail.com>
1570 1579
1571 1580 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1572 1581 "cleanly" and safely than the older upgrade mechanism.
1573 1582
1574 1583 2006-02-21 Ville Vainio <vivainio@gmail.com>
1575 1584
1576 1585 * Magic.py: %save works again.
1577 1586
1578 1587 2006-02-15 Ville Vainio <vivainio@gmail.com>
1579 1588
1580 1589 * Magic.py: %Pprint works again
1581 1590
1582 1591 * Extensions/ipy_sane_defaults.py: Provide everything provided
1583 1592 in default ipythonrc, to make it possible to have a completely empty
1584 1593 ipythonrc (and thus completely rc-file free configuration)
1585 1594
1586 1595 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1587 1596
1588 1597 * IPython/hooks.py (editor): quote the call to the editor command,
1589 1598 to allow commands with spaces in them. Problem noted by watching
1590 1599 Ian Oswald's video about textpad under win32 at
1591 1600 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1592 1601
1593 1602 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1594 1603 describing magics (we haven't used @ for a loong time).
1595 1604
1596 1605 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1597 1606 contributed by marienz to close
1598 1607 http://www.scipy.net/roundup/ipython/issue53.
1599 1608
1600 1609 2006-02-10 Ville Vainio <vivainio@gmail.com>
1601 1610
1602 1611 * genutils.py: getoutput now works in win32 too
1603 1612
1604 1613 * completer.py: alias and magic completion only invoked
1605 1614 at the first "item" in the line, to avoid "cd %store"
1606 1615 nonsense.
1607 1616
1608 1617 2006-02-09 Ville Vainio <vivainio@gmail.com>
1609 1618
1610 1619 * test/*: Added a unit testing framework (finally).
1611 1620 '%run runtests.py' to run test_*.
1612 1621
1613 1622 * ipapi.py: Exposed runlines and set_custom_exc
1614 1623
1615 1624 2006-02-07 Ville Vainio <vivainio@gmail.com>
1616 1625
1617 1626 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1618 1627 instead use "f(1 2)" as before.
1619 1628
1620 1629 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1621 1630
1622 1631 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1623 1632 facilities, for demos processed by the IPython input filter
1624 1633 (IPythonDemo), and for running a script one-line-at-a-time as a
1625 1634 demo, both for pure Python (LineDemo) and for IPython-processed
1626 1635 input (IPythonLineDemo). After a request by Dave Kohel, from the
1627 1636 SAGE team.
1628 1637 (Demo.edit): added an edit() method to the demo objects, to edit
1629 1638 the in-memory copy of the last executed block.
1630 1639
1631 1640 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1632 1641 processing to %edit, %macro and %save. These commands can now be
1633 1642 invoked on the unprocessed input as it was typed by the user
1634 1643 (without any prefilters applied). After requests by the SAGE team
1635 1644 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1636 1645
1637 1646 2006-02-01 Ville Vainio <vivainio@gmail.com>
1638 1647
1639 1648 * setup.py, eggsetup.py: easy_install ipython==dev works
1640 1649 correctly now (on Linux)
1641 1650
1642 1651 * ipy_user_conf,ipmaker: user config changes, removed spurious
1643 1652 warnings
1644 1653
1645 1654 * iplib: if rc.banner is string, use it as is.
1646 1655
1647 1656 * Magic: %pycat accepts a string argument and pages it's contents.
1648 1657
1649 1658
1650 1659 2006-01-30 Ville Vainio <vivainio@gmail.com>
1651 1660
1652 1661 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1653 1662 Now %store and bookmarks work through PickleShare, meaning that
1654 1663 concurrent access is possible and all ipython sessions see the
1655 1664 same database situation all the time, instead of snapshot of
1656 1665 the situation when the session was started. Hence, %bookmark
1657 1666 results are immediately accessible from othes sessions. The database
1658 1667 is also available for use by user extensions. See:
1659 1668 http://www.python.org/pypi/pickleshare
1660 1669
1661 1670 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1662 1671
1663 1672 * aliases can now be %store'd
1664 1673
1665 1674 * path.py moved to Extensions so that pickleshare does not need
1666 1675 IPython-specific import. Extensions added to pythonpath right
1667 1676 at __init__.
1668 1677
1669 1678 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1670 1679 called with _ip.system and the pre-transformed command string.
1671 1680
1672 1681 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1673 1682
1674 1683 * IPython/iplib.py (interact): Fix that we were not catching
1675 1684 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1676 1685 logic here had to change, but it's fixed now.
1677 1686
1678 1687 2006-01-29 Ville Vainio <vivainio@gmail.com>
1679 1688
1680 1689 * iplib.py: Try to import pyreadline on Windows.
1681 1690
1682 1691 2006-01-27 Ville Vainio <vivainio@gmail.com>
1683 1692
1684 1693 * iplib.py: Expose ipapi as _ip in builtin namespace.
1685 1694 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1686 1695 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1687 1696 syntax now produce _ip.* variant of the commands.
1688 1697
1689 1698 * "_ip.options().autoedit_syntax = 2" automatically throws
1690 1699 user to editor for syntax error correction without prompting.
1691 1700
1692 1701 2006-01-27 Ville Vainio <vivainio@gmail.com>
1693 1702
1694 1703 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1695 1704 'ipython' at argv[0]) executed through command line.
1696 1705 NOTE: this DEPRECATES calling ipython with multiple scripts
1697 1706 ("ipython a.py b.py c.py")
1698 1707
1699 1708 * iplib.py, hooks.py: Added configurable input prefilter,
1700 1709 named 'input_prefilter'. See ext_rescapture.py for example
1701 1710 usage.
1702 1711
1703 1712 * ext_rescapture.py, Magic.py: Better system command output capture
1704 1713 through 'var = !ls' (deprecates user-visible %sc). Same notation
1705 1714 applies for magics, 'var = %alias' assigns alias list to var.
1706 1715
1707 1716 * ipapi.py: added meta() for accessing extension-usable data store.
1708 1717
1709 1718 * iplib.py: added InteractiveShell.getapi(). New magics should be
1710 1719 written doing self.getapi() instead of using the shell directly.
1711 1720
1712 1721 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1713 1722 %store foo >> ~/myfoo.txt to store variables to files (in clean
1714 1723 textual form, not a restorable pickle).
1715 1724
1716 1725 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1717 1726
1718 1727 * usage.py, Magic.py: added %quickref
1719 1728
1720 1729 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1721 1730
1722 1731 * GetoptErrors when invoking magics etc. with wrong args
1723 1732 are now more helpful:
1724 1733 GetoptError: option -l not recognized (allowed: "qb" )
1725 1734
1726 1735 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1727 1736
1728 1737 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1729 1738 computationally intensive blocks don't appear to stall the demo.
1730 1739
1731 1740 2006-01-24 Ville Vainio <vivainio@gmail.com>
1732 1741
1733 1742 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1734 1743 value to manipulate resulting history entry.
1735 1744
1736 1745 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1737 1746 to instance methods of IPApi class, to make extending an embedded
1738 1747 IPython feasible. See ext_rehashdir.py for example usage.
1739 1748
1740 1749 * Merged 1071-1076 from branches/0.7.1
1741 1750
1742 1751
1743 1752 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1744 1753
1745 1754 * tools/release (daystamp): Fix build tools to use the new
1746 1755 eggsetup.py script to build lightweight eggs.
1747 1756
1748 1757 * Applied changesets 1062 and 1064 before 0.7.1 release.
1749 1758
1750 1759 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1751 1760 see the raw input history (without conversions like %ls ->
1752 1761 ipmagic("ls")). After a request from W. Stein, SAGE
1753 1762 (http://modular.ucsd.edu/sage) developer. This information is
1754 1763 stored in the input_hist_raw attribute of the IPython instance, so
1755 1764 developers can access it if needed (it's an InputList instance).
1756 1765
1757 1766 * Versionstring = 0.7.2.svn
1758 1767
1759 1768 * eggsetup.py: A separate script for constructing eggs, creates
1760 1769 proper launch scripts even on Windows (an .exe file in
1761 1770 \python24\scripts).
1762 1771
1763 1772 * ipapi.py: launch_new_instance, launch entry point needed for the
1764 1773 egg.
1765 1774
1766 1775 2006-01-23 Ville Vainio <vivainio@gmail.com>
1767 1776
1768 1777 * Added %cpaste magic for pasting python code
1769 1778
1770 1779 2006-01-22 Ville Vainio <vivainio@gmail.com>
1771 1780
1772 1781 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1773 1782
1774 1783 * Versionstring = 0.7.2.svn
1775 1784
1776 1785 * eggsetup.py: A separate script for constructing eggs, creates
1777 1786 proper launch scripts even on Windows (an .exe file in
1778 1787 \python24\scripts).
1779 1788
1780 1789 * ipapi.py: launch_new_instance, launch entry point needed for the
1781 1790 egg.
1782 1791
1783 1792 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1784 1793
1785 1794 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1786 1795 %pfile foo would print the file for foo even if it was a binary.
1787 1796 Now, extensions '.so' and '.dll' are skipped.
1788 1797
1789 1798 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1790 1799 bug, where macros would fail in all threaded modes. I'm not 100%
1791 1800 sure, so I'm going to put out an rc instead of making a release
1792 1801 today, and wait for feedback for at least a few days.
1793 1802
1794 1803 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1795 1804 it...) the handling of pasting external code with autoindent on.
1796 1805 To get out of a multiline input, the rule will appear for most
1797 1806 users unchanged: two blank lines or change the indent level
1798 1807 proposed by IPython. But there is a twist now: you can
1799 1808 add/subtract only *one or two spaces*. If you add/subtract three
1800 1809 or more (unless you completely delete the line), IPython will
1801 1810 accept that line, and you'll need to enter a second one of pure
1802 1811 whitespace. I know it sounds complicated, but I can't find a
1803 1812 different solution that covers all the cases, with the right
1804 1813 heuristics. Hopefully in actual use, nobody will really notice
1805 1814 all these strange rules and things will 'just work'.
1806 1815
1807 1816 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1808 1817
1809 1818 * IPython/iplib.py (interact): catch exceptions which can be
1810 1819 triggered asynchronously by signal handlers. Thanks to an
1811 1820 automatic crash report, submitted by Colin Kingsley
1812 1821 <tercel-AT-gentoo.org>.
1813 1822
1814 1823 2006-01-20 Ville Vainio <vivainio@gmail.com>
1815 1824
1816 1825 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1817 1826 (%rehashdir, very useful, try it out) of how to extend ipython
1818 1827 with new magics. Also added Extensions dir to pythonpath to make
1819 1828 importing extensions easy.
1820 1829
1821 1830 * %store now complains when trying to store interactively declared
1822 1831 classes / instances of those classes.
1823 1832
1824 1833 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1825 1834 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1826 1835 if they exist, and ipy_user_conf.py with some defaults is created for
1827 1836 the user.
1828 1837
1829 1838 * Startup rehashing done by the config file, not InterpreterExec.
1830 1839 This means system commands are available even without selecting the
1831 1840 pysh profile. It's the sensible default after all.
1832 1841
1833 1842 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1834 1843
1835 1844 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1836 1845 multiline code with autoindent on working. But I am really not
1837 1846 sure, so this needs more testing. Will commit a debug-enabled
1838 1847 version for now, while I test it some more, so that Ville and
1839 1848 others may also catch any problems. Also made
1840 1849 self.indent_current_str() a method, to ensure that there's no
1841 1850 chance of the indent space count and the corresponding string
1842 1851 falling out of sync. All code needing the string should just call
1843 1852 the method.
1844 1853
1845 1854 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1846 1855
1847 1856 * IPython/Magic.py (magic_edit): fix check for when users don't
1848 1857 save their output files, the try/except was in the wrong section.
1849 1858
1850 1859 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1851 1860
1852 1861 * IPython/Magic.py (magic_run): fix __file__ global missing from
1853 1862 script's namespace when executed via %run. After a report by
1854 1863 Vivian.
1855 1864
1856 1865 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1857 1866 when using python 2.4. The parent constructor changed in 2.4, and
1858 1867 we need to track it directly (we can't call it, as it messes up
1859 1868 readline and tab-completion inside our pdb would stop working).
1860 1869 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1861 1870
1862 1871 2006-01-16 Ville Vainio <vivainio@gmail.com>
1863 1872
1864 1873 * Ipython/magic.py: Reverted back to old %edit functionality
1865 1874 that returns file contents on exit.
1866 1875
1867 1876 * IPython/path.py: Added Jason Orendorff's "path" module to
1868 1877 IPython tree, http://www.jorendorff.com/articles/python/path/.
1869 1878 You can get path objects conveniently through %sc, and !!, e.g.:
1870 1879 sc files=ls
1871 1880 for p in files.paths: # or files.p
1872 1881 print p,p.mtime
1873 1882
1874 1883 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1875 1884 now work again without considering the exclusion regexp -
1876 1885 hence, things like ',foo my/path' turn to 'foo("my/path")'
1877 1886 instead of syntax error.
1878 1887
1879 1888
1880 1889 2006-01-14 Ville Vainio <vivainio@gmail.com>
1881 1890
1882 1891 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1883 1892 ipapi decorators for python 2.4 users, options() provides access to rc
1884 1893 data.
1885 1894
1886 1895 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1887 1896 as path separators (even on Linux ;-). Space character after
1888 1897 backslash (as yielded by tab completer) is still space;
1889 1898 "%cd long\ name" works as expected.
1890 1899
1891 1900 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1892 1901 as "chain of command", with priority. API stays the same,
1893 1902 TryNext exception raised by a hook function signals that
1894 1903 current hook failed and next hook should try handling it, as
1895 1904 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1896 1905 requested configurable display hook, which is now implemented.
1897 1906
1898 1907 2006-01-13 Ville Vainio <vivainio@gmail.com>
1899 1908
1900 1909 * IPython/platutils*.py: platform specific utility functions,
1901 1910 so far only set_term_title is implemented (change terminal
1902 1911 label in windowing systems). %cd now changes the title to
1903 1912 current dir.
1904 1913
1905 1914 * IPython/Release.py: Added myself to "authors" list,
1906 1915 had to create new files.
1907 1916
1908 1917 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1909 1918 shell escape; not a known bug but had potential to be one in the
1910 1919 future.
1911 1920
1912 1921 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1913 1922 extension API for IPython! See the module for usage example. Fix
1914 1923 OInspect for docstring-less magic functions.
1915 1924
1916 1925
1917 1926 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1918 1927
1919 1928 * IPython/iplib.py (raw_input): temporarily deactivate all
1920 1929 attempts at allowing pasting of code with autoindent on. It
1921 1930 introduced bugs (reported by Prabhu) and I can't seem to find a
1922 1931 robust combination which works in all cases. Will have to revisit
1923 1932 later.
1924 1933
1925 1934 * IPython/genutils.py: remove isspace() function. We've dropped
1926 1935 2.2 compatibility, so it's OK to use the string method.
1927 1936
1928 1937 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1929 1938
1930 1939 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1931 1940 matching what NOT to autocall on, to include all python binary
1932 1941 operators (including things like 'and', 'or', 'is' and 'in').
1933 1942 Prompted by a bug report on 'foo & bar', but I realized we had
1934 1943 many more potential bug cases with other operators. The regexp is
1935 1944 self.re_exclude_auto, it's fairly commented.
1936 1945
1937 1946 2006-01-12 Ville Vainio <vivainio@gmail.com>
1938 1947
1939 1948 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1940 1949 Prettified and hardened string/backslash quoting with ipsystem(),
1941 1950 ipalias() and ipmagic(). Now even \ characters are passed to
1942 1951 %magics, !shell escapes and aliases exactly as they are in the
1943 1952 ipython command line. Should improve backslash experience,
1944 1953 particularly in Windows (path delimiter for some commands that
1945 1954 won't understand '/'), but Unix benefits as well (regexps). %cd
1946 1955 magic still doesn't support backslash path delimiters, though. Also
1947 1956 deleted all pretense of supporting multiline command strings in
1948 1957 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1949 1958
1950 1959 * doc/build_doc_instructions.txt added. Documentation on how to
1951 1960 use doc/update_manual.py, added yesterday. Both files contributed
1952 1961 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1953 1962 doc/*.sh for deprecation at a later date.
1954 1963
1955 1964 * /ipython.py Added ipython.py to root directory for
1956 1965 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1957 1966 ipython.py) and development convenience (no need to keep doing
1958 1967 "setup.py install" between changes).
1959 1968
1960 1969 * Made ! and !! shell escapes work (again) in multiline expressions:
1961 1970 if 1:
1962 1971 !ls
1963 1972 !!ls
1964 1973
1965 1974 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1966 1975
1967 1976 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1968 1977 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1969 1978 module in case-insensitive installation. Was causing crashes
1970 1979 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1971 1980
1972 1981 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1973 1982 <marienz-AT-gentoo.org>, closes
1974 1983 http://www.scipy.net/roundup/ipython/issue51.
1975 1984
1976 1985 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1977 1986
1978 1987 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1979 1988 problem of excessive CPU usage under *nix and keyboard lag under
1980 1989 win32.
1981 1990
1982 1991 2006-01-10 *** Released version 0.7.0
1983 1992
1984 1993 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1985 1994
1986 1995 * IPython/Release.py (revision): tag version number to 0.7.0,
1987 1996 ready for release.
1988 1997
1989 1998 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1990 1999 it informs the user of the name of the temp. file used. This can
1991 2000 help if you decide later to reuse that same file, so you know
1992 2001 where to copy the info from.
1993 2002
1994 2003 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1995 2004
1996 2005 * setup_bdist_egg.py: little script to build an egg. Added
1997 2006 support in the release tools as well.
1998 2007
1999 2008 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2000 2009
2001 2010 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2002 2011 version selection (new -wxversion command line and ipythonrc
2003 2012 parameter). Patch contributed by Arnd Baecker
2004 2013 <arnd.baecker-AT-web.de>.
2005 2014
2006 2015 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2007 2016 embedded instances, for variables defined at the interactive
2008 2017 prompt of the embedded ipython. Reported by Arnd.
2009 2018
2010 2019 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2011 2020 it can be used as a (stateful) toggle, or with a direct parameter.
2012 2021
2013 2022 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2014 2023 could be triggered in certain cases and cause the traceback
2015 2024 printer not to work.
2016 2025
2017 2026 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2018 2027
2019 2028 * IPython/iplib.py (_should_recompile): Small fix, closes
2020 2029 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2021 2030
2022 2031 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2023 2032
2024 2033 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2025 2034 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2026 2035 Moad for help with tracking it down.
2027 2036
2028 2037 * IPython/iplib.py (handle_auto): fix autocall handling for
2029 2038 objects which support BOTH __getitem__ and __call__ (so that f [x]
2030 2039 is left alone, instead of becoming f([x]) automatically).
2031 2040
2032 2041 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2033 2042 Ville's patch.
2034 2043
2035 2044 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2036 2045
2037 2046 * IPython/iplib.py (handle_auto): changed autocall semantics to
2038 2047 include 'smart' mode, where the autocall transformation is NOT
2039 2048 applied if there are no arguments on the line. This allows you to
2040 2049 just type 'foo' if foo is a callable to see its internal form,
2041 2050 instead of having it called with no arguments (typically a
2042 2051 mistake). The old 'full' autocall still exists: for that, you
2043 2052 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2044 2053
2045 2054 * IPython/completer.py (Completer.attr_matches): add
2046 2055 tab-completion support for Enthoughts' traits. After a report by
2047 2056 Arnd and a patch by Prabhu.
2048 2057
2049 2058 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2050 2059
2051 2060 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2052 2061 Schmolck's patch to fix inspect.getinnerframes().
2053 2062
2054 2063 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2055 2064 for embedded instances, regarding handling of namespaces and items
2056 2065 added to the __builtin__ one. Multiple embedded instances and
2057 2066 recursive embeddings should work better now (though I'm not sure
2058 2067 I've got all the corner cases fixed, that code is a bit of a brain
2059 2068 twister).
2060 2069
2061 2070 * IPython/Magic.py (magic_edit): added support to edit in-memory
2062 2071 macros (automatically creates the necessary temp files). %edit
2063 2072 also doesn't return the file contents anymore, it's just noise.
2064 2073
2065 2074 * IPython/completer.py (Completer.attr_matches): revert change to
2066 2075 complete only on attributes listed in __all__. I realized it
2067 2076 cripples the tab-completion system as a tool for exploring the
2068 2077 internals of unknown libraries (it renders any non-__all__
2069 2078 attribute off-limits). I got bit by this when trying to see
2070 2079 something inside the dis module.
2071 2080
2072 2081 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2073 2082
2074 2083 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2075 2084 namespace for users and extension writers to hold data in. This
2076 2085 follows the discussion in
2077 2086 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2078 2087
2079 2088 * IPython/completer.py (IPCompleter.complete): small patch to help
2080 2089 tab-completion under Emacs, after a suggestion by John Barnard
2081 2090 <barnarj-AT-ccf.org>.
2082 2091
2083 2092 * IPython/Magic.py (Magic.extract_input_slices): added support for
2084 2093 the slice notation in magics to use N-M to represent numbers N...M
2085 2094 (closed endpoints). This is used by %macro and %save.
2086 2095
2087 2096 * IPython/completer.py (Completer.attr_matches): for modules which
2088 2097 define __all__, complete only on those. After a patch by Jeffrey
2089 2098 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2090 2099 speed up this routine.
2091 2100
2092 2101 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2093 2102 don't know if this is the end of it, but the behavior now is
2094 2103 certainly much more correct. Note that coupled with macros,
2095 2104 slightly surprising (at first) behavior may occur: a macro will in
2096 2105 general expand to multiple lines of input, so upon exiting, the
2097 2106 in/out counters will both be bumped by the corresponding amount
2098 2107 (as if the macro's contents had been typed interactively). Typing
2099 2108 %hist will reveal the intermediate (silently processed) lines.
2100 2109
2101 2110 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2102 2111 pickle to fail (%run was overwriting __main__ and not restoring
2103 2112 it, but pickle relies on __main__ to operate).
2104 2113
2105 2114 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2106 2115 using properties, but forgot to make the main InteractiveShell
2107 2116 class a new-style class. Properties fail silently, and
2108 2117 mysteriously, with old-style class (getters work, but
2109 2118 setters don't do anything).
2110 2119
2111 2120 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2112 2121
2113 2122 * IPython/Magic.py (magic_history): fix history reporting bug (I
2114 2123 know some nasties are still there, I just can't seem to find a
2115 2124 reproducible test case to track them down; the input history is
2116 2125 falling out of sync...)
2117 2126
2118 2127 * IPython/iplib.py (handle_shell_escape): fix bug where both
2119 2128 aliases and system accesses where broken for indented code (such
2120 2129 as loops).
2121 2130
2122 2131 * IPython/genutils.py (shell): fix small but critical bug for
2123 2132 win32 system access.
2124 2133
2125 2134 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2126 2135
2127 2136 * IPython/iplib.py (showtraceback): remove use of the
2128 2137 sys.last_{type/value/traceback} structures, which are non
2129 2138 thread-safe.
2130 2139 (_prefilter): change control flow to ensure that we NEVER
2131 2140 introspect objects when autocall is off. This will guarantee that
2132 2141 having an input line of the form 'x.y', where access to attribute
2133 2142 'y' has side effects, doesn't trigger the side effect TWICE. It
2134 2143 is important to note that, with autocall on, these side effects
2135 2144 can still happen.
2136 2145 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2137 2146 trio. IPython offers these three kinds of special calls which are
2138 2147 not python code, and it's a good thing to have their call method
2139 2148 be accessible as pure python functions (not just special syntax at
2140 2149 the command line). It gives us a better internal implementation
2141 2150 structure, as well as exposing these for user scripting more
2142 2151 cleanly.
2143 2152
2144 2153 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2145 2154 file. Now that they'll be more likely to be used with the
2146 2155 persistance system (%store), I want to make sure their module path
2147 2156 doesn't change in the future, so that we don't break things for
2148 2157 users' persisted data.
2149 2158
2150 2159 * IPython/iplib.py (autoindent_update): move indentation
2151 2160 management into the _text_ processing loop, not the keyboard
2152 2161 interactive one. This is necessary to correctly process non-typed
2153 2162 multiline input (such as macros).
2154 2163
2155 2164 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2156 2165 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2157 2166 which was producing problems in the resulting manual.
2158 2167 (magic_whos): improve reporting of instances (show their class,
2159 2168 instead of simply printing 'instance' which isn't terribly
2160 2169 informative).
2161 2170
2162 2171 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2163 2172 (minor mods) to support network shares under win32.
2164 2173
2165 2174 * IPython/winconsole.py (get_console_size): add new winconsole
2166 2175 module and fixes to page_dumb() to improve its behavior under
2167 2176 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2168 2177
2169 2178 * IPython/Magic.py (Macro): simplified Macro class to just
2170 2179 subclass list. We've had only 2.2 compatibility for a very long
2171 2180 time, yet I was still avoiding subclassing the builtin types. No
2172 2181 more (I'm also starting to use properties, though I won't shift to
2173 2182 2.3-specific features quite yet).
2174 2183 (magic_store): added Ville's patch for lightweight variable
2175 2184 persistence, after a request on the user list by Matt Wilkie
2176 2185 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2177 2186 details.
2178 2187
2179 2188 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2180 2189 changed the default logfile name from 'ipython.log' to
2181 2190 'ipython_log.py'. These logs are real python files, and now that
2182 2191 we have much better multiline support, people are more likely to
2183 2192 want to use them as such. Might as well name them correctly.
2184 2193
2185 2194 * IPython/Magic.py: substantial cleanup. While we can't stop
2186 2195 using magics as mixins, due to the existing customizations 'out
2187 2196 there' which rely on the mixin naming conventions, at least I
2188 2197 cleaned out all cross-class name usage. So once we are OK with
2189 2198 breaking compatibility, the two systems can be separated.
2190 2199
2191 2200 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2192 2201 anymore, and the class is a fair bit less hideous as well. New
2193 2202 features were also introduced: timestamping of input, and logging
2194 2203 of output results. These are user-visible with the -t and -o
2195 2204 options to %logstart. Closes
2196 2205 http://www.scipy.net/roundup/ipython/issue11 and a request by
2197 2206 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2198 2207
2199 2208 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2200 2209
2201 2210 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2202 2211 better handle backslashes in paths. See the thread 'More Windows
2203 2212 questions part 2 - \/ characters revisited' on the iypthon user
2204 2213 list:
2205 2214 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2206 2215
2207 2216 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2208 2217
2209 2218 (InteractiveShell.__init__): change threaded shells to not use the
2210 2219 ipython crash handler. This was causing more problems than not,
2211 2220 as exceptions in the main thread (GUI code, typically) would
2212 2221 always show up as a 'crash', when they really weren't.
2213 2222
2214 2223 The colors and exception mode commands (%colors/%xmode) have been
2215 2224 synchronized to also take this into account, so users can get
2216 2225 verbose exceptions for their threaded code as well. I also added
2217 2226 support for activating pdb inside this exception handler as well,
2218 2227 so now GUI authors can use IPython's enhanced pdb at runtime.
2219 2228
2220 2229 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2221 2230 true by default, and add it to the shipped ipythonrc file. Since
2222 2231 this asks the user before proceeding, I think it's OK to make it
2223 2232 true by default.
2224 2233
2225 2234 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2226 2235 of the previous special-casing of input in the eval loop. I think
2227 2236 this is cleaner, as they really are commands and shouldn't have
2228 2237 a special role in the middle of the core code.
2229 2238
2230 2239 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2231 2240
2232 2241 * IPython/iplib.py (edit_syntax_error): added support for
2233 2242 automatically reopening the editor if the file had a syntax error
2234 2243 in it. Thanks to scottt who provided the patch at:
2235 2244 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2236 2245 version committed).
2237 2246
2238 2247 * IPython/iplib.py (handle_normal): add suport for multi-line
2239 2248 input with emtpy lines. This fixes
2240 2249 http://www.scipy.net/roundup/ipython/issue43 and a similar
2241 2250 discussion on the user list.
2242 2251
2243 2252 WARNING: a behavior change is necessarily introduced to support
2244 2253 blank lines: now a single blank line with whitespace does NOT
2245 2254 break the input loop, which means that when autoindent is on, by
2246 2255 default hitting return on the next (indented) line does NOT exit.
2247 2256
2248 2257 Instead, to exit a multiline input you can either have:
2249 2258
2250 2259 - TWO whitespace lines (just hit return again), or
2251 2260 - a single whitespace line of a different length than provided
2252 2261 by the autoindent (add or remove a space).
2253 2262
2254 2263 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2255 2264 module to better organize all readline-related functionality.
2256 2265 I've deleted FlexCompleter and put all completion clases here.
2257 2266
2258 2267 * IPython/iplib.py (raw_input): improve indentation management.
2259 2268 It is now possible to paste indented code with autoindent on, and
2260 2269 the code is interpreted correctly (though it still looks bad on
2261 2270 screen, due to the line-oriented nature of ipython).
2262 2271 (MagicCompleter.complete): change behavior so that a TAB key on an
2263 2272 otherwise empty line actually inserts a tab, instead of completing
2264 2273 on the entire global namespace. This makes it easier to use the
2265 2274 TAB key for indentation. After a request by Hans Meine
2266 2275 <hans_meine-AT-gmx.net>
2267 2276 (_prefilter): add support so that typing plain 'exit' or 'quit'
2268 2277 does a sensible thing. Originally I tried to deviate as little as
2269 2278 possible from the default python behavior, but even that one may
2270 2279 change in this direction (thread on python-dev to that effect).
2271 2280 Regardless, ipython should do the right thing even if CPython's
2272 2281 '>>>' prompt doesn't.
2273 2282 (InteractiveShell): removed subclassing code.InteractiveConsole
2274 2283 class. By now we'd overridden just about all of its methods: I've
2275 2284 copied the remaining two over, and now ipython is a standalone
2276 2285 class. This will provide a clearer picture for the chainsaw
2277 2286 branch refactoring.
2278 2287
2279 2288 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2280 2289
2281 2290 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2282 2291 failures for objects which break when dir() is called on them.
2283 2292
2284 2293 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2285 2294 distinct local and global namespaces in the completer API. This
2286 2295 change allows us to properly handle completion with distinct
2287 2296 scopes, including in embedded instances (this had never really
2288 2297 worked correctly).
2289 2298
2290 2299 Note: this introduces a change in the constructor for
2291 2300 MagicCompleter, as a new global_namespace parameter is now the
2292 2301 second argument (the others were bumped one position).
2293 2302
2294 2303 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2295 2304
2296 2305 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2297 2306 embedded instances (which can be done now thanks to Vivian's
2298 2307 frame-handling fixes for pdb).
2299 2308 (InteractiveShell.__init__): Fix namespace handling problem in
2300 2309 embedded instances. We were overwriting __main__ unconditionally,
2301 2310 and this should only be done for 'full' (non-embedded) IPython;
2302 2311 embedded instances must respect the caller's __main__. Thanks to
2303 2312 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2304 2313
2305 2314 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2306 2315
2307 2316 * setup.py: added download_url to setup(). This registers the
2308 2317 download address at PyPI, which is not only useful to humans
2309 2318 browsing the site, but is also picked up by setuptools (the Eggs
2310 2319 machinery). Thanks to Ville and R. Kern for the info/discussion
2311 2320 on this.
2312 2321
2313 2322 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2314 2323
2315 2324 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2316 2325 This brings a lot of nice functionality to the pdb mode, which now
2317 2326 has tab-completion, syntax highlighting, and better stack handling
2318 2327 than before. Many thanks to Vivian De Smedt
2319 2328 <vivian-AT-vdesmedt.com> for the original patches.
2320 2329
2321 2330 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2322 2331
2323 2332 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2324 2333 sequence to consistently accept the banner argument. The
2325 2334 inconsistency was tripping SAGE, thanks to Gary Zablackis
2326 2335 <gzabl-AT-yahoo.com> for the report.
2327 2336
2328 2337 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2329 2338
2330 2339 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2331 2340 Fix bug where a naked 'alias' call in the ipythonrc file would
2332 2341 cause a crash. Bug reported by Jorgen Stenarson.
2333 2342
2334 2343 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2335 2344
2336 2345 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2337 2346 startup time.
2338 2347
2339 2348 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2340 2349 instances had introduced a bug with globals in normal code. Now
2341 2350 it's working in all cases.
2342 2351
2343 2352 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2344 2353 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2345 2354 has been introduced to set the default case sensitivity of the
2346 2355 searches. Users can still select either mode at runtime on a
2347 2356 per-search basis.
2348 2357
2349 2358 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2350 2359
2351 2360 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2352 2361 attributes in wildcard searches for subclasses. Modified version
2353 2362 of a patch by Jorgen.
2354 2363
2355 2364 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2356 2365
2357 2366 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2358 2367 embedded instances. I added a user_global_ns attribute to the
2359 2368 InteractiveShell class to handle this.
2360 2369
2361 2370 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2362 2371
2363 2372 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2364 2373 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2365 2374 (reported under win32, but may happen also in other platforms).
2366 2375 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2367 2376
2368 2377 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2369 2378
2370 2379 * IPython/Magic.py (magic_psearch): new support for wildcard
2371 2380 patterns. Now, typing ?a*b will list all names which begin with a
2372 2381 and end in b, for example. The %psearch magic has full
2373 2382 docstrings. Many thanks to JΓΆrgen Stenarson
2374 2383 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2375 2384 implementing this functionality.
2376 2385
2377 2386 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2378 2387
2379 2388 * Manual: fixed long-standing annoyance of double-dashes (as in
2380 2389 --prefix=~, for example) being stripped in the HTML version. This
2381 2390 is a latex2html bug, but a workaround was provided. Many thanks
2382 2391 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2383 2392 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2384 2393 rolling. This seemingly small issue had tripped a number of users
2385 2394 when first installing, so I'm glad to see it gone.
2386 2395
2387 2396 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2388 2397
2389 2398 * IPython/Extensions/numeric_formats.py: fix missing import,
2390 2399 reported by Stephen Walton.
2391 2400
2392 2401 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2393 2402
2394 2403 * IPython/demo.py: finish demo module, fully documented now.
2395 2404
2396 2405 * IPython/genutils.py (file_read): simple little utility to read a
2397 2406 file and ensure it's closed afterwards.
2398 2407
2399 2408 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2400 2409
2401 2410 * IPython/demo.py (Demo.__init__): added support for individually
2402 2411 tagging blocks for automatic execution.
2403 2412
2404 2413 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2405 2414 syntax-highlighted python sources, requested by John.
2406 2415
2407 2416 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2408 2417
2409 2418 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2410 2419 finishing.
2411 2420
2412 2421 * IPython/genutils.py (shlex_split): moved from Magic to here,
2413 2422 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2414 2423
2415 2424 * IPython/demo.py (Demo.__init__): added support for silent
2416 2425 blocks, improved marks as regexps, docstrings written.
2417 2426 (Demo.__init__): better docstring, added support for sys.argv.
2418 2427
2419 2428 * IPython/genutils.py (marquee): little utility used by the demo
2420 2429 code, handy in general.
2421 2430
2422 2431 * IPython/demo.py (Demo.__init__): new class for interactive
2423 2432 demos. Not documented yet, I just wrote it in a hurry for
2424 2433 scipy'05. Will docstring later.
2425 2434
2426 2435 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2427 2436
2428 2437 * IPython/Shell.py (sigint_handler): Drastic simplification which
2429 2438 also seems to make Ctrl-C work correctly across threads! This is
2430 2439 so simple, that I can't beleive I'd missed it before. Needs more
2431 2440 testing, though.
2432 2441 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2433 2442 like this before...
2434 2443
2435 2444 * IPython/genutils.py (get_home_dir): add protection against
2436 2445 non-dirs in win32 registry.
2437 2446
2438 2447 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2439 2448 bug where dict was mutated while iterating (pysh crash).
2440 2449
2441 2450 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2442 2451
2443 2452 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2444 2453 spurious newlines added by this routine. After a report by
2445 2454 F. Mantegazza.
2446 2455
2447 2456 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2448 2457
2449 2458 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2450 2459 calls. These were a leftover from the GTK 1.x days, and can cause
2451 2460 problems in certain cases (after a report by John Hunter).
2452 2461
2453 2462 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2454 2463 os.getcwd() fails at init time. Thanks to patch from David Remahl
2455 2464 <chmod007-AT-mac.com>.
2456 2465 (InteractiveShell.__init__): prevent certain special magics from
2457 2466 being shadowed by aliases. Closes
2458 2467 http://www.scipy.net/roundup/ipython/issue41.
2459 2468
2460 2469 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2461 2470
2462 2471 * IPython/iplib.py (InteractiveShell.complete): Added new
2463 2472 top-level completion method to expose the completion mechanism
2464 2473 beyond readline-based environments.
2465 2474
2466 2475 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2467 2476
2468 2477 * tools/ipsvnc (svnversion): fix svnversion capture.
2469 2478
2470 2479 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2471 2480 attribute to self, which was missing. Before, it was set by a
2472 2481 routine which in certain cases wasn't being called, so the
2473 2482 instance could end up missing the attribute. This caused a crash.
2474 2483 Closes http://www.scipy.net/roundup/ipython/issue40.
2475 2484
2476 2485 2005-08-16 Fernando Perez <fperez@colorado.edu>
2477 2486
2478 2487 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2479 2488 contains non-string attribute. Closes
2480 2489 http://www.scipy.net/roundup/ipython/issue38.
2481 2490
2482 2491 2005-08-14 Fernando Perez <fperez@colorado.edu>
2483 2492
2484 2493 * tools/ipsvnc: Minor improvements, to add changeset info.
2485 2494
2486 2495 2005-08-12 Fernando Perez <fperez@colorado.edu>
2487 2496
2488 2497 * IPython/iplib.py (runsource): remove self.code_to_run_src
2489 2498 attribute. I realized this is nothing more than
2490 2499 '\n'.join(self.buffer), and having the same data in two different
2491 2500 places is just asking for synchronization bugs. This may impact
2492 2501 people who have custom exception handlers, so I need to warn
2493 2502 ipython-dev about it (F. Mantegazza may use them).
2494 2503
2495 2504 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2496 2505
2497 2506 * IPython/genutils.py: fix 2.2 compatibility (generators)
2498 2507
2499 2508 2005-07-18 Fernando Perez <fperez@colorado.edu>
2500 2509
2501 2510 * IPython/genutils.py (get_home_dir): fix to help users with
2502 2511 invalid $HOME under win32.
2503 2512
2504 2513 2005-07-17 Fernando Perez <fperez@colorado.edu>
2505 2514
2506 2515 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2507 2516 some old hacks and clean up a bit other routines; code should be
2508 2517 simpler and a bit faster.
2509 2518
2510 2519 * IPython/iplib.py (interact): removed some last-resort attempts
2511 2520 to survive broken stdout/stderr. That code was only making it
2512 2521 harder to abstract out the i/o (necessary for gui integration),
2513 2522 and the crashes it could prevent were extremely rare in practice
2514 2523 (besides being fully user-induced in a pretty violent manner).
2515 2524
2516 2525 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2517 2526 Nothing major yet, but the code is simpler to read; this should
2518 2527 make it easier to do more serious modifications in the future.
2519 2528
2520 2529 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2521 2530 which broke in .15 (thanks to a report by Ville).
2522 2531
2523 2532 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2524 2533 be quite correct, I know next to nothing about unicode). This
2525 2534 will allow unicode strings to be used in prompts, amongst other
2526 2535 cases. It also will prevent ipython from crashing when unicode
2527 2536 shows up unexpectedly in many places. If ascii encoding fails, we
2528 2537 assume utf_8. Currently the encoding is not a user-visible
2529 2538 setting, though it could be made so if there is demand for it.
2530 2539
2531 2540 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2532 2541
2533 2542 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2534 2543
2535 2544 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2536 2545
2537 2546 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2538 2547 code can work transparently for 2.2/2.3.
2539 2548
2540 2549 2005-07-16 Fernando Perez <fperez@colorado.edu>
2541 2550
2542 2551 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2543 2552 out of the color scheme table used for coloring exception
2544 2553 tracebacks. This allows user code to add new schemes at runtime.
2545 2554 This is a minimally modified version of the patch at
2546 2555 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2547 2556 for the contribution.
2548 2557
2549 2558 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2550 2559 slightly modified version of the patch in
2551 2560 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2552 2561 to remove the previous try/except solution (which was costlier).
2553 2562 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2554 2563
2555 2564 2005-06-08 Fernando Perez <fperez@colorado.edu>
2556 2565
2557 2566 * IPython/iplib.py (write/write_err): Add methods to abstract all
2558 2567 I/O a bit more.
2559 2568
2560 2569 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2561 2570 warning, reported by Aric Hagberg, fix by JD Hunter.
2562 2571
2563 2572 2005-06-02 *** Released version 0.6.15
2564 2573
2565 2574 2005-06-01 Fernando Perez <fperez@colorado.edu>
2566 2575
2567 2576 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2568 2577 tab-completion of filenames within open-quoted strings. Note that
2569 2578 this requires that in ~/.ipython/ipythonrc, users change the
2570 2579 readline delimiters configuration to read:
2571 2580
2572 2581 readline_remove_delims -/~
2573 2582
2574 2583
2575 2584 2005-05-31 *** Released version 0.6.14
2576 2585
2577 2586 2005-05-29 Fernando Perez <fperez@colorado.edu>
2578 2587
2579 2588 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2580 2589 with files not on the filesystem. Reported by Eliyahu Sandler
2581 2590 <eli@gondolin.net>
2582 2591
2583 2592 2005-05-22 Fernando Perez <fperez@colorado.edu>
2584 2593
2585 2594 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2586 2595 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2587 2596
2588 2597 2005-05-19 Fernando Perez <fperez@colorado.edu>
2589 2598
2590 2599 * IPython/iplib.py (safe_execfile): close a file which could be
2591 2600 left open (causing problems in win32, which locks open files).
2592 2601 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2593 2602
2594 2603 2005-05-18 Fernando Perez <fperez@colorado.edu>
2595 2604
2596 2605 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2597 2606 keyword arguments correctly to safe_execfile().
2598 2607
2599 2608 2005-05-13 Fernando Perez <fperez@colorado.edu>
2600 2609
2601 2610 * ipython.1: Added info about Qt to manpage, and threads warning
2602 2611 to usage page (invoked with --help).
2603 2612
2604 2613 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2605 2614 new matcher (it goes at the end of the priority list) to do
2606 2615 tab-completion on named function arguments. Submitted by George
2607 2616 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2608 2617 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2609 2618 for more details.
2610 2619
2611 2620 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2612 2621 SystemExit exceptions in the script being run. Thanks to a report
2613 2622 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2614 2623 producing very annoying behavior when running unit tests.
2615 2624
2616 2625 2005-05-12 Fernando Perez <fperez@colorado.edu>
2617 2626
2618 2627 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2619 2628 which I'd broken (again) due to a changed regexp. In the process,
2620 2629 added ';' as an escape to auto-quote the whole line without
2621 2630 splitting its arguments. Thanks to a report by Jerry McRae
2622 2631 <qrs0xyc02-AT-sneakemail.com>.
2623 2632
2624 2633 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2625 2634 possible crashes caused by a TokenError. Reported by Ed Schofield
2626 2635 <schofield-AT-ftw.at>.
2627 2636
2628 2637 2005-05-06 Fernando Perez <fperez@colorado.edu>
2629 2638
2630 2639 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2631 2640
2632 2641 2005-04-29 Fernando Perez <fperez@colorado.edu>
2633 2642
2634 2643 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2635 2644 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2636 2645 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2637 2646 which provides support for Qt interactive usage (similar to the
2638 2647 existing one for WX and GTK). This had been often requested.
2639 2648
2640 2649 2005-04-14 *** Released version 0.6.13
2641 2650
2642 2651 2005-04-08 Fernando Perez <fperez@colorado.edu>
2643 2652
2644 2653 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2645 2654 from _ofind, which gets called on almost every input line. Now,
2646 2655 we only try to get docstrings if they are actually going to be
2647 2656 used (the overhead of fetching unnecessary docstrings can be
2648 2657 noticeable for certain objects, such as Pyro proxies).
2649 2658
2650 2659 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2651 2660 for completers. For some reason I had been passing them the state
2652 2661 variable, which completers never actually need, and was in
2653 2662 conflict with the rlcompleter API. Custom completers ONLY need to
2654 2663 take the text parameter.
2655 2664
2656 2665 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2657 2666 work correctly in pysh. I've also moved all the logic which used
2658 2667 to be in pysh.py here, which will prevent problems with future
2659 2668 upgrades. However, this time I must warn users to update their
2660 2669 pysh profile to include the line
2661 2670
2662 2671 import_all IPython.Extensions.InterpreterExec
2663 2672
2664 2673 because otherwise things won't work for them. They MUST also
2665 2674 delete pysh.py and the line
2666 2675
2667 2676 execfile pysh.py
2668 2677
2669 2678 from their ipythonrc-pysh.
2670 2679
2671 2680 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2672 2681 robust in the face of objects whose dir() returns non-strings
2673 2682 (which it shouldn't, but some broken libs like ITK do). Thanks to
2674 2683 a patch by John Hunter (implemented differently, though). Also
2675 2684 minor improvements by using .extend instead of + on lists.
2676 2685
2677 2686 * pysh.py:
2678 2687
2679 2688 2005-04-06 Fernando Perez <fperez@colorado.edu>
2680 2689
2681 2690 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2682 2691 by default, so that all users benefit from it. Those who don't
2683 2692 want it can still turn it off.
2684 2693
2685 2694 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2686 2695 config file, I'd forgotten about this, so users were getting it
2687 2696 off by default.
2688 2697
2689 2698 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2690 2699 consistency. Now magics can be called in multiline statements,
2691 2700 and python variables can be expanded in magic calls via $var.
2692 2701 This makes the magic system behave just like aliases or !system
2693 2702 calls.
2694 2703
2695 2704 2005-03-28 Fernando Perez <fperez@colorado.edu>
2696 2705
2697 2706 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2698 2707 expensive string additions for building command. Add support for
2699 2708 trailing ';' when autocall is used.
2700 2709
2701 2710 2005-03-26 Fernando Perez <fperez@colorado.edu>
2702 2711
2703 2712 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2704 2713 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2705 2714 ipython.el robust against prompts with any number of spaces
2706 2715 (including 0) after the ':' character.
2707 2716
2708 2717 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2709 2718 continuation prompt, which misled users to think the line was
2710 2719 already indented. Closes debian Bug#300847, reported to me by
2711 2720 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2712 2721
2713 2722 2005-03-23 Fernando Perez <fperez@colorado.edu>
2714 2723
2715 2724 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2716 2725 properly aligned if they have embedded newlines.
2717 2726
2718 2727 * IPython/iplib.py (runlines): Add a public method to expose
2719 2728 IPython's code execution machinery, so that users can run strings
2720 2729 as if they had been typed at the prompt interactively.
2721 2730 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2722 2731 methods which can call the system shell, but with python variable
2723 2732 expansion. The three such methods are: __IPYTHON__.system,
2724 2733 .getoutput and .getoutputerror. These need to be documented in a
2725 2734 'public API' section (to be written) of the manual.
2726 2735
2727 2736 2005-03-20 Fernando Perez <fperez@colorado.edu>
2728 2737
2729 2738 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2730 2739 for custom exception handling. This is quite powerful, and it
2731 2740 allows for user-installable exception handlers which can trap
2732 2741 custom exceptions at runtime and treat them separately from
2733 2742 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2734 2743 Mantegazza <mantegazza-AT-ill.fr>.
2735 2744 (InteractiveShell.set_custom_completer): public API function to
2736 2745 add new completers at runtime.
2737 2746
2738 2747 2005-03-19 Fernando Perez <fperez@colorado.edu>
2739 2748
2740 2749 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2741 2750 allow objects which provide their docstrings via non-standard
2742 2751 mechanisms (like Pyro proxies) to still be inspected by ipython's
2743 2752 ? system.
2744 2753
2745 2754 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2746 2755 automatic capture system. I tried quite hard to make it work
2747 2756 reliably, and simply failed. I tried many combinations with the
2748 2757 subprocess module, but eventually nothing worked in all needed
2749 2758 cases (not blocking stdin for the child, duplicating stdout
2750 2759 without blocking, etc). The new %sc/%sx still do capture to these
2751 2760 magical list/string objects which make shell use much more
2752 2761 conveninent, so not all is lost.
2753 2762
2754 2763 XXX - FIX MANUAL for the change above!
2755 2764
2756 2765 (runsource): I copied code.py's runsource() into ipython to modify
2757 2766 it a bit. Now the code object and source to be executed are
2758 2767 stored in ipython. This makes this info accessible to third-party
2759 2768 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2760 2769 Mantegazza <mantegazza-AT-ill.fr>.
2761 2770
2762 2771 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2763 2772 history-search via readline (like C-p/C-n). I'd wanted this for a
2764 2773 long time, but only recently found out how to do it. For users
2765 2774 who already have their ipythonrc files made and want this, just
2766 2775 add:
2767 2776
2768 2777 readline_parse_and_bind "\e[A": history-search-backward
2769 2778 readline_parse_and_bind "\e[B": history-search-forward
2770 2779
2771 2780 2005-03-18 Fernando Perez <fperez@colorado.edu>
2772 2781
2773 2782 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2774 2783 LSString and SList classes which allow transparent conversions
2775 2784 between list mode and whitespace-separated string.
2776 2785 (magic_r): Fix recursion problem in %r.
2777 2786
2778 2787 * IPython/genutils.py (LSString): New class to be used for
2779 2788 automatic storage of the results of all alias/system calls in _o
2780 2789 and _e (stdout/err). These provide a .l/.list attribute which
2781 2790 does automatic splitting on newlines. This means that for most
2782 2791 uses, you'll never need to do capturing of output with %sc/%sx
2783 2792 anymore, since ipython keeps this always done for you. Note that
2784 2793 only the LAST results are stored, the _o/e variables are
2785 2794 overwritten on each call. If you need to save their contents
2786 2795 further, simply bind them to any other name.
2787 2796
2788 2797 2005-03-17 Fernando Perez <fperez@colorado.edu>
2789 2798
2790 2799 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2791 2800 prompt namespace handling.
2792 2801
2793 2802 2005-03-16 Fernando Perez <fperez@colorado.edu>
2794 2803
2795 2804 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2796 2805 classic prompts to be '>>> ' (final space was missing, and it
2797 2806 trips the emacs python mode).
2798 2807 (BasePrompt.__str__): Added safe support for dynamic prompt
2799 2808 strings. Now you can set your prompt string to be '$x', and the
2800 2809 value of x will be printed from your interactive namespace. The
2801 2810 interpolation syntax includes the full Itpl support, so
2802 2811 ${foo()+x+bar()} is a valid prompt string now, and the function
2803 2812 calls will be made at runtime.
2804 2813
2805 2814 2005-03-15 Fernando Perez <fperez@colorado.edu>
2806 2815
2807 2816 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2808 2817 avoid name clashes in pylab. %hist still works, it just forwards
2809 2818 the call to %history.
2810 2819
2811 2820 2005-03-02 *** Released version 0.6.12
2812 2821
2813 2822 2005-03-02 Fernando Perez <fperez@colorado.edu>
2814 2823
2815 2824 * IPython/iplib.py (handle_magic): log magic calls properly as
2816 2825 ipmagic() function calls.
2817 2826
2818 2827 * IPython/Magic.py (magic_time): Improved %time to support
2819 2828 statements and provide wall-clock as well as CPU time.
2820 2829
2821 2830 2005-02-27 Fernando Perez <fperez@colorado.edu>
2822 2831
2823 2832 * IPython/hooks.py: New hooks module, to expose user-modifiable
2824 2833 IPython functionality in a clean manner. For now only the editor
2825 2834 hook is actually written, and other thigns which I intend to turn
2826 2835 into proper hooks aren't yet there. The display and prefilter
2827 2836 stuff, for example, should be hooks. But at least now the
2828 2837 framework is in place, and the rest can be moved here with more
2829 2838 time later. IPython had had a .hooks variable for a long time for
2830 2839 this purpose, but I'd never actually used it for anything.
2831 2840
2832 2841 2005-02-26 Fernando Perez <fperez@colorado.edu>
2833 2842
2834 2843 * IPython/ipmaker.py (make_IPython): make the default ipython
2835 2844 directory be called _ipython under win32, to follow more the
2836 2845 naming peculiarities of that platform (where buggy software like
2837 2846 Visual Sourcesafe breaks with .named directories). Reported by
2838 2847 Ville Vainio.
2839 2848
2840 2849 2005-02-23 Fernando Perez <fperez@colorado.edu>
2841 2850
2842 2851 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2843 2852 auto_aliases for win32 which were causing problems. Users can
2844 2853 define the ones they personally like.
2845 2854
2846 2855 2005-02-21 Fernando Perez <fperez@colorado.edu>
2847 2856
2848 2857 * IPython/Magic.py (magic_time): new magic to time execution of
2849 2858 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2850 2859
2851 2860 2005-02-19 Fernando Perez <fperez@colorado.edu>
2852 2861
2853 2862 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2854 2863 into keys (for prompts, for example).
2855 2864
2856 2865 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2857 2866 prompts in case users want them. This introduces a small behavior
2858 2867 change: ipython does not automatically add a space to all prompts
2859 2868 anymore. To get the old prompts with a space, users should add it
2860 2869 manually to their ipythonrc file, so for example prompt_in1 should
2861 2870 now read 'In [\#]: ' instead of 'In [\#]:'.
2862 2871 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2863 2872 file) to control left-padding of secondary prompts.
2864 2873
2865 2874 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2866 2875 the profiler can't be imported. Fix for Debian, which removed
2867 2876 profile.py because of License issues. I applied a slightly
2868 2877 modified version of the original Debian patch at
2869 2878 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2870 2879
2871 2880 2005-02-17 Fernando Perez <fperez@colorado.edu>
2872 2881
2873 2882 * IPython/genutils.py (native_line_ends): Fix bug which would
2874 2883 cause improper line-ends under win32 b/c I was not opening files
2875 2884 in binary mode. Bug report and fix thanks to Ville.
2876 2885
2877 2886 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2878 2887 trying to catch spurious foo[1] autocalls. My fix actually broke
2879 2888 ',/' autoquote/call with explicit escape (bad regexp).
2880 2889
2881 2890 2005-02-15 *** Released version 0.6.11
2882 2891
2883 2892 2005-02-14 Fernando Perez <fperez@colorado.edu>
2884 2893
2885 2894 * IPython/background_jobs.py: New background job management
2886 2895 subsystem. This is implemented via a new set of classes, and
2887 2896 IPython now provides a builtin 'jobs' object for background job
2888 2897 execution. A convenience %bg magic serves as a lightweight
2889 2898 frontend for starting the more common type of calls. This was
2890 2899 inspired by discussions with B. Granger and the BackgroundCommand
2891 2900 class described in the book Python Scripting for Computational
2892 2901 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2893 2902 (although ultimately no code from this text was used, as IPython's
2894 2903 system is a separate implementation).
2895 2904
2896 2905 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2897 2906 to control the completion of single/double underscore names
2898 2907 separately. As documented in the example ipytonrc file, the
2899 2908 readline_omit__names variable can now be set to 2, to omit even
2900 2909 single underscore names. Thanks to a patch by Brian Wong
2901 2910 <BrianWong-AT-AirgoNetworks.Com>.
2902 2911 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2903 2912 be autocalled as foo([1]) if foo were callable. A problem for
2904 2913 things which are both callable and implement __getitem__.
2905 2914 (init_readline): Fix autoindentation for win32. Thanks to a patch
2906 2915 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2907 2916
2908 2917 2005-02-12 Fernando Perez <fperez@colorado.edu>
2909 2918
2910 2919 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2911 2920 which I had written long ago to sort out user error messages which
2912 2921 may occur during startup. This seemed like a good idea initially,
2913 2922 but it has proven a disaster in retrospect. I don't want to
2914 2923 change much code for now, so my fix is to set the internal 'debug'
2915 2924 flag to true everywhere, whose only job was precisely to control
2916 2925 this subsystem. This closes issue 28 (as well as avoiding all
2917 2926 sorts of strange hangups which occur from time to time).
2918 2927
2919 2928 2005-02-07 Fernando Perez <fperez@colorado.edu>
2920 2929
2921 2930 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2922 2931 previous call produced a syntax error.
2923 2932
2924 2933 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2925 2934 classes without constructor.
2926 2935
2927 2936 2005-02-06 Fernando Perez <fperez@colorado.edu>
2928 2937
2929 2938 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2930 2939 completions with the results of each matcher, so we return results
2931 2940 to the user from all namespaces. This breaks with ipython
2932 2941 tradition, but I think it's a nicer behavior. Now you get all
2933 2942 possible completions listed, from all possible namespaces (python,
2934 2943 filesystem, magics...) After a request by John Hunter
2935 2944 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2936 2945
2937 2946 2005-02-05 Fernando Perez <fperez@colorado.edu>
2938 2947
2939 2948 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2940 2949 the call had quote characters in it (the quotes were stripped).
2941 2950
2942 2951 2005-01-31 Fernando Perez <fperez@colorado.edu>
2943 2952
2944 2953 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2945 2954 Itpl.itpl() to make the code more robust against psyco
2946 2955 optimizations.
2947 2956
2948 2957 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2949 2958 of causing an exception. Quicker, cleaner.
2950 2959
2951 2960 2005-01-28 Fernando Perez <fperez@colorado.edu>
2952 2961
2953 2962 * scripts/ipython_win_post_install.py (install): hardcode
2954 2963 sys.prefix+'python.exe' as the executable path. It turns out that
2955 2964 during the post-installation run, sys.executable resolves to the
2956 2965 name of the binary installer! I should report this as a distutils
2957 2966 bug, I think. I updated the .10 release with this tiny fix, to
2958 2967 avoid annoying the lists further.
2959 2968
2960 2969 2005-01-27 *** Released version 0.6.10
2961 2970
2962 2971 2005-01-27 Fernando Perez <fperez@colorado.edu>
2963 2972
2964 2973 * IPython/numutils.py (norm): Added 'inf' as optional name for
2965 2974 L-infinity norm, included references to mathworld.com for vector
2966 2975 norm definitions.
2967 2976 (amin/amax): added amin/amax for array min/max. Similar to what
2968 2977 pylab ships with after the recent reorganization of names.
2969 2978 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2970 2979
2971 2980 * ipython.el: committed Alex's recent fixes and improvements.
2972 2981 Tested with python-mode from CVS, and it looks excellent. Since
2973 2982 python-mode hasn't released anything in a while, I'm temporarily
2974 2983 putting a copy of today's CVS (v 4.70) of python-mode in:
2975 2984 http://ipython.scipy.org/tmp/python-mode.el
2976 2985
2977 2986 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2978 2987 sys.executable for the executable name, instead of assuming it's
2979 2988 called 'python.exe' (the post-installer would have produced broken
2980 2989 setups on systems with a differently named python binary).
2981 2990
2982 2991 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2983 2992 references to os.linesep, to make the code more
2984 2993 platform-independent. This is also part of the win32 coloring
2985 2994 fixes.
2986 2995
2987 2996 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2988 2997 lines, which actually cause coloring bugs because the length of
2989 2998 the line is very difficult to correctly compute with embedded
2990 2999 escapes. This was the source of all the coloring problems under
2991 3000 Win32. I think that _finally_, Win32 users have a properly
2992 3001 working ipython in all respects. This would never have happened
2993 3002 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2994 3003
2995 3004 2005-01-26 *** Released version 0.6.9
2996 3005
2997 3006 2005-01-25 Fernando Perez <fperez@colorado.edu>
2998 3007
2999 3008 * setup.py: finally, we have a true Windows installer, thanks to
3000 3009 the excellent work of Viktor Ransmayr
3001 3010 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3002 3011 Windows users. The setup routine is quite a bit cleaner thanks to
3003 3012 this, and the post-install script uses the proper functions to
3004 3013 allow a clean de-installation using the standard Windows Control
3005 3014 Panel.
3006 3015
3007 3016 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3008 3017 environment variable under all OSes (including win32) if
3009 3018 available. This will give consistency to win32 users who have set
3010 3019 this variable for any reason. If os.environ['HOME'] fails, the
3011 3020 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3012 3021
3013 3022 2005-01-24 Fernando Perez <fperez@colorado.edu>
3014 3023
3015 3024 * IPython/numutils.py (empty_like): add empty_like(), similar to
3016 3025 zeros_like() but taking advantage of the new empty() Numeric routine.
3017 3026
3018 3027 2005-01-23 *** Released version 0.6.8
3019 3028
3020 3029 2005-01-22 Fernando Perez <fperez@colorado.edu>
3021 3030
3022 3031 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3023 3032 automatic show() calls. After discussing things with JDH, it
3024 3033 turns out there are too many corner cases where this can go wrong.
3025 3034 It's best not to try to be 'too smart', and simply have ipython
3026 3035 reproduce as much as possible the default behavior of a normal
3027 3036 python shell.
3028 3037
3029 3038 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3030 3039 line-splitting regexp and _prefilter() to avoid calling getattr()
3031 3040 on assignments. This closes
3032 3041 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3033 3042 readline uses getattr(), so a simple <TAB> keypress is still
3034 3043 enough to trigger getattr() calls on an object.
3035 3044
3036 3045 2005-01-21 Fernando Perez <fperez@colorado.edu>
3037 3046
3038 3047 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3039 3048 docstring under pylab so it doesn't mask the original.
3040 3049
3041 3050 2005-01-21 *** Released version 0.6.7
3042 3051
3043 3052 2005-01-21 Fernando Perez <fperez@colorado.edu>
3044 3053
3045 3054 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3046 3055 signal handling for win32 users in multithreaded mode.
3047 3056
3048 3057 2005-01-17 Fernando Perez <fperez@colorado.edu>
3049 3058
3050 3059 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3051 3060 instances with no __init__. After a crash report by Norbert Nemec
3052 3061 <Norbert-AT-nemec-online.de>.
3053 3062
3054 3063 2005-01-14 Fernando Perez <fperez@colorado.edu>
3055 3064
3056 3065 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3057 3066 names for verbose exceptions, when multiple dotted names and the
3058 3067 'parent' object were present on the same line.
3059 3068
3060 3069 2005-01-11 Fernando Perez <fperez@colorado.edu>
3061 3070
3062 3071 * IPython/genutils.py (flag_calls): new utility to trap and flag
3063 3072 calls in functions. I need it to clean up matplotlib support.
3064 3073 Also removed some deprecated code in genutils.
3065 3074
3066 3075 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3067 3076 that matplotlib scripts called with %run, which don't call show()
3068 3077 themselves, still have their plotting windows open.
3069 3078
3070 3079 2005-01-05 Fernando Perez <fperez@colorado.edu>
3071 3080
3072 3081 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3073 3082 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3074 3083
3075 3084 2004-12-19 Fernando Perez <fperez@colorado.edu>
3076 3085
3077 3086 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3078 3087 parent_runcode, which was an eyesore. The same result can be
3079 3088 obtained with Python's regular superclass mechanisms.
3080 3089
3081 3090 2004-12-17 Fernando Perez <fperez@colorado.edu>
3082 3091
3083 3092 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3084 3093 reported by Prabhu.
3085 3094 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3086 3095 sys.stderr) instead of explicitly calling sys.stderr. This helps
3087 3096 maintain our I/O abstractions clean, for future GUI embeddings.
3088 3097
3089 3098 * IPython/genutils.py (info): added new utility for sys.stderr
3090 3099 unified info message handling (thin wrapper around warn()).
3091 3100
3092 3101 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3093 3102 composite (dotted) names on verbose exceptions.
3094 3103 (VerboseTB.nullrepr): harden against another kind of errors which
3095 3104 Python's inspect module can trigger, and which were crashing
3096 3105 IPython. Thanks to a report by Marco Lombardi
3097 3106 <mlombard-AT-ma010192.hq.eso.org>.
3098 3107
3099 3108 2004-12-13 *** Released version 0.6.6
3100 3109
3101 3110 2004-12-12 Fernando Perez <fperez@colorado.edu>
3102 3111
3103 3112 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3104 3113 generated by pygtk upon initialization if it was built without
3105 3114 threads (for matplotlib users). After a crash reported by
3106 3115 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3107 3116
3108 3117 * IPython/ipmaker.py (make_IPython): fix small bug in the
3109 3118 import_some parameter for multiple imports.
3110 3119
3111 3120 * IPython/iplib.py (ipmagic): simplified the interface of
3112 3121 ipmagic() to take a single string argument, just as it would be
3113 3122 typed at the IPython cmd line.
3114 3123 (ipalias): Added new ipalias() with an interface identical to
3115 3124 ipmagic(). This completes exposing a pure python interface to the
3116 3125 alias and magic system, which can be used in loops or more complex
3117 3126 code where IPython's automatic line mangling is not active.
3118 3127
3119 3128 * IPython/genutils.py (timing): changed interface of timing to
3120 3129 simply run code once, which is the most common case. timings()
3121 3130 remains unchanged, for the cases where you want multiple runs.
3122 3131
3123 3132 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3124 3133 bug where Python2.2 crashes with exec'ing code which does not end
3125 3134 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3126 3135 before.
3127 3136
3128 3137 2004-12-10 Fernando Perez <fperez@colorado.edu>
3129 3138
3130 3139 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3131 3140 -t to -T, to accomodate the new -t flag in %run (the %run and
3132 3141 %prun options are kind of intermixed, and it's not easy to change
3133 3142 this with the limitations of python's getopt).
3134 3143
3135 3144 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3136 3145 the execution of scripts. It's not as fine-tuned as timeit.py,
3137 3146 but it works from inside ipython (and under 2.2, which lacks
3138 3147 timeit.py). Optionally a number of runs > 1 can be given for
3139 3148 timing very short-running code.
3140 3149
3141 3150 * IPython/genutils.py (uniq_stable): new routine which returns a
3142 3151 list of unique elements in any iterable, but in stable order of
3143 3152 appearance. I needed this for the ultraTB fixes, and it's a handy
3144 3153 utility.
3145 3154
3146 3155 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3147 3156 dotted names in Verbose exceptions. This had been broken since
3148 3157 the very start, now x.y will properly be printed in a Verbose
3149 3158 traceback, instead of x being shown and y appearing always as an
3150 3159 'undefined global'. Getting this to work was a bit tricky,
3151 3160 because by default python tokenizers are stateless. Saved by
3152 3161 python's ability to easily add a bit of state to an arbitrary
3153 3162 function (without needing to build a full-blown callable object).
3154 3163
3155 3164 Also big cleanup of this code, which had horrendous runtime
3156 3165 lookups of zillions of attributes for colorization. Moved all
3157 3166 this code into a few templates, which make it cleaner and quicker.
3158 3167
3159 3168 Printout quality was also improved for Verbose exceptions: one
3160 3169 variable per line, and memory addresses are printed (this can be
3161 3170 quite handy in nasty debugging situations, which is what Verbose
3162 3171 is for).
3163 3172
3164 3173 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3165 3174 the command line as scripts to be loaded by embedded instances.
3166 3175 Doing so has the potential for an infinite recursion if there are
3167 3176 exceptions thrown in the process. This fixes a strange crash
3168 3177 reported by Philippe MULLER <muller-AT-irit.fr>.
3169 3178
3170 3179 2004-12-09 Fernando Perez <fperez@colorado.edu>
3171 3180
3172 3181 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3173 3182 to reflect new names in matplotlib, which now expose the
3174 3183 matlab-compatible interface via a pylab module instead of the
3175 3184 'matlab' name. The new code is backwards compatible, so users of
3176 3185 all matplotlib versions are OK. Patch by J. Hunter.
3177 3186
3178 3187 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3179 3188 of __init__ docstrings for instances (class docstrings are already
3180 3189 automatically printed). Instances with customized docstrings
3181 3190 (indep. of the class) are also recognized and all 3 separate
3182 3191 docstrings are printed (instance, class, constructor). After some
3183 3192 comments/suggestions by J. Hunter.
3184 3193
3185 3194 2004-12-05 Fernando Perez <fperez@colorado.edu>
3186 3195
3187 3196 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3188 3197 warnings when tab-completion fails and triggers an exception.
3189 3198
3190 3199 2004-12-03 Fernando Perez <fperez@colorado.edu>
3191 3200
3192 3201 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3193 3202 be triggered when using 'run -p'. An incorrect option flag was
3194 3203 being set ('d' instead of 'D').
3195 3204 (manpage): fix missing escaped \- sign.
3196 3205
3197 3206 2004-11-30 *** Released version 0.6.5
3198 3207
3199 3208 2004-11-30 Fernando Perez <fperez@colorado.edu>
3200 3209
3201 3210 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3202 3211 setting with -d option.
3203 3212
3204 3213 * setup.py (docfiles): Fix problem where the doc glob I was using
3205 3214 was COMPLETELY BROKEN. It was giving the right files by pure
3206 3215 accident, but failed once I tried to include ipython.el. Note:
3207 3216 glob() does NOT allow you to do exclusion on multiple endings!
3208 3217
3209 3218 2004-11-29 Fernando Perez <fperez@colorado.edu>
3210 3219
3211 3220 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3212 3221 the manpage as the source. Better formatting & consistency.
3213 3222
3214 3223 * IPython/Magic.py (magic_run): Added new -d option, to run
3215 3224 scripts under the control of the python pdb debugger. Note that
3216 3225 this required changing the %prun option -d to -D, to avoid a clash
3217 3226 (since %run must pass options to %prun, and getopt is too dumb to
3218 3227 handle options with string values with embedded spaces). Thanks
3219 3228 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3220 3229 (magic_who_ls): added type matching to %who and %whos, so that one
3221 3230 can filter their output to only include variables of certain
3222 3231 types. Another suggestion by Matthew.
3223 3232 (magic_whos): Added memory summaries in kb and Mb for arrays.
3224 3233 (magic_who): Improve formatting (break lines every 9 vars).
3225 3234
3226 3235 2004-11-28 Fernando Perez <fperez@colorado.edu>
3227 3236
3228 3237 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3229 3238 cache when empty lines were present.
3230 3239
3231 3240 2004-11-24 Fernando Perez <fperez@colorado.edu>
3232 3241
3233 3242 * IPython/usage.py (__doc__): document the re-activated threading
3234 3243 options for WX and GTK.
3235 3244
3236 3245 2004-11-23 Fernando Perez <fperez@colorado.edu>
3237 3246
3238 3247 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3239 3248 the -wthread and -gthread options, along with a new -tk one to try
3240 3249 and coordinate Tk threading with wx/gtk. The tk support is very
3241 3250 platform dependent, since it seems to require Tcl and Tk to be
3242 3251 built with threads (Fedora1/2 appears NOT to have it, but in
3243 3252 Prabhu's Debian boxes it works OK). But even with some Tk
3244 3253 limitations, this is a great improvement.
3245 3254
3246 3255 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3247 3256 info in user prompts. Patch by Prabhu.
3248 3257
3249 3258 2004-11-18 Fernando Perez <fperez@colorado.edu>
3250 3259
3251 3260 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3252 3261 EOFErrors and bail, to avoid infinite loops if a non-terminating
3253 3262 file is fed into ipython. Patch submitted in issue 19 by user,
3254 3263 many thanks.
3255 3264
3256 3265 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3257 3266 autoquote/parens in continuation prompts, which can cause lots of
3258 3267 problems. Closes roundup issue 20.
3259 3268
3260 3269 2004-11-17 Fernando Perez <fperez@colorado.edu>
3261 3270
3262 3271 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3263 3272 reported as debian bug #280505. I'm not sure my local changelog
3264 3273 entry has the proper debian format (Jack?).
3265 3274
3266 3275 2004-11-08 *** Released version 0.6.4
3267 3276
3268 3277 2004-11-08 Fernando Perez <fperez@colorado.edu>
3269 3278
3270 3279 * IPython/iplib.py (init_readline): Fix exit message for Windows
3271 3280 when readline is active. Thanks to a report by Eric Jones
3272 3281 <eric-AT-enthought.com>.
3273 3282
3274 3283 2004-11-07 Fernando Perez <fperez@colorado.edu>
3275 3284
3276 3285 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3277 3286 sometimes seen by win2k/cygwin users.
3278 3287
3279 3288 2004-11-06 Fernando Perez <fperez@colorado.edu>
3280 3289
3281 3290 * IPython/iplib.py (interact): Change the handling of %Exit from
3282 3291 trying to propagate a SystemExit to an internal ipython flag.
3283 3292 This is less elegant than using Python's exception mechanism, but
3284 3293 I can't get that to work reliably with threads, so under -pylab
3285 3294 %Exit was hanging IPython. Cross-thread exception handling is
3286 3295 really a bitch. Thaks to a bug report by Stephen Walton
3287 3296 <stephen.walton-AT-csun.edu>.
3288 3297
3289 3298 2004-11-04 Fernando Perez <fperez@colorado.edu>
3290 3299
3291 3300 * IPython/iplib.py (raw_input_original): store a pointer to the
3292 3301 true raw_input to harden against code which can modify it
3293 3302 (wx.py.PyShell does this and would otherwise crash ipython).
3294 3303 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3295 3304
3296 3305 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3297 3306 Ctrl-C problem, which does not mess up the input line.
3298 3307
3299 3308 2004-11-03 Fernando Perez <fperez@colorado.edu>
3300 3309
3301 3310 * IPython/Release.py: Changed licensing to BSD, in all files.
3302 3311 (name): lowercase name for tarball/RPM release.
3303 3312
3304 3313 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3305 3314 use throughout ipython.
3306 3315
3307 3316 * IPython/Magic.py (Magic._ofind): Switch to using the new
3308 3317 OInspect.getdoc() function.
3309 3318
3310 3319 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3311 3320 of the line currently being canceled via Ctrl-C. It's extremely
3312 3321 ugly, but I don't know how to do it better (the problem is one of
3313 3322 handling cross-thread exceptions).
3314 3323
3315 3324 2004-10-28 Fernando Perez <fperez@colorado.edu>
3316 3325
3317 3326 * IPython/Shell.py (signal_handler): add signal handlers to trap
3318 3327 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3319 3328 report by Francesc Alted.
3320 3329
3321 3330 2004-10-21 Fernando Perez <fperez@colorado.edu>
3322 3331
3323 3332 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3324 3333 to % for pysh syntax extensions.
3325 3334
3326 3335 2004-10-09 Fernando Perez <fperez@colorado.edu>
3327 3336
3328 3337 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3329 3338 arrays to print a more useful summary, without calling str(arr).
3330 3339 This avoids the problem of extremely lengthy computations which
3331 3340 occur if arr is large, and appear to the user as a system lockup
3332 3341 with 100% cpu activity. After a suggestion by Kristian Sandberg
3333 3342 <Kristian.Sandberg@colorado.edu>.
3334 3343 (Magic.__init__): fix bug in global magic escapes not being
3335 3344 correctly set.
3336 3345
3337 3346 2004-10-08 Fernando Perez <fperez@colorado.edu>
3338 3347
3339 3348 * IPython/Magic.py (__license__): change to absolute imports of
3340 3349 ipython's own internal packages, to start adapting to the absolute
3341 3350 import requirement of PEP-328.
3342 3351
3343 3352 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3344 3353 files, and standardize author/license marks through the Release
3345 3354 module instead of having per/file stuff (except for files with
3346 3355 particular licenses, like the MIT/PSF-licensed codes).
3347 3356
3348 3357 * IPython/Debugger.py: remove dead code for python 2.1
3349 3358
3350 3359 2004-10-04 Fernando Perez <fperez@colorado.edu>
3351 3360
3352 3361 * IPython/iplib.py (ipmagic): New function for accessing magics
3353 3362 via a normal python function call.
3354 3363
3355 3364 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3356 3365 from '@' to '%', to accomodate the new @decorator syntax of python
3357 3366 2.4.
3358 3367
3359 3368 2004-09-29 Fernando Perez <fperez@colorado.edu>
3360 3369
3361 3370 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3362 3371 matplotlib.use to prevent running scripts which try to switch
3363 3372 interactive backends from within ipython. This will just crash
3364 3373 the python interpreter, so we can't allow it (but a detailed error
3365 3374 is given to the user).
3366 3375
3367 3376 2004-09-28 Fernando Perez <fperez@colorado.edu>
3368 3377
3369 3378 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3370 3379 matplotlib-related fixes so that using @run with non-matplotlib
3371 3380 scripts doesn't pop up spurious plot windows. This requires
3372 3381 matplotlib >= 0.63, where I had to make some changes as well.
3373 3382
3374 3383 * IPython/ipmaker.py (make_IPython): update version requirement to
3375 3384 python 2.2.
3376 3385
3377 3386 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3378 3387 banner arg for embedded customization.
3379 3388
3380 3389 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3381 3390 explicit uses of __IP as the IPython's instance name. Now things
3382 3391 are properly handled via the shell.name value. The actual code
3383 3392 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3384 3393 is much better than before. I'll clean things completely when the
3385 3394 magic stuff gets a real overhaul.
3386 3395
3387 3396 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3388 3397 minor changes to debian dir.
3389 3398
3390 3399 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3391 3400 pointer to the shell itself in the interactive namespace even when
3392 3401 a user-supplied dict is provided. This is needed for embedding
3393 3402 purposes (found by tests with Michel Sanner).
3394 3403
3395 3404 2004-09-27 Fernando Perez <fperez@colorado.edu>
3396 3405
3397 3406 * IPython/UserConfig/ipythonrc: remove []{} from
3398 3407 readline_remove_delims, so that things like [modname.<TAB> do
3399 3408 proper completion. This disables [].TAB, but that's a less common
3400 3409 case than module names in list comprehensions, for example.
3401 3410 Thanks to a report by Andrea Riciputi.
3402 3411
3403 3412 2004-09-09 Fernando Perez <fperez@colorado.edu>
3404 3413
3405 3414 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3406 3415 blocking problems in win32 and osx. Fix by John.
3407 3416
3408 3417 2004-09-08 Fernando Perez <fperez@colorado.edu>
3409 3418
3410 3419 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3411 3420 for Win32 and OSX. Fix by John Hunter.
3412 3421
3413 3422 2004-08-30 *** Released version 0.6.3
3414 3423
3415 3424 2004-08-30 Fernando Perez <fperez@colorado.edu>
3416 3425
3417 3426 * setup.py (isfile): Add manpages to list of dependent files to be
3418 3427 updated.
3419 3428
3420 3429 2004-08-27 Fernando Perez <fperez@colorado.edu>
3421 3430
3422 3431 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3423 3432 for now. They don't really work with standalone WX/GTK code
3424 3433 (though matplotlib IS working fine with both of those backends).
3425 3434 This will neeed much more testing. I disabled most things with
3426 3435 comments, so turning it back on later should be pretty easy.
3427 3436
3428 3437 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3429 3438 autocalling of expressions like r'foo', by modifying the line
3430 3439 split regexp. Closes
3431 3440 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3432 3441 Riley <ipythonbugs-AT-sabi.net>.
3433 3442 (InteractiveShell.mainloop): honor --nobanner with banner
3434 3443 extensions.
3435 3444
3436 3445 * IPython/Shell.py: Significant refactoring of all classes, so
3437 3446 that we can really support ALL matplotlib backends and threading
3438 3447 models (John spotted a bug with Tk which required this). Now we
3439 3448 should support single-threaded, WX-threads and GTK-threads, both
3440 3449 for generic code and for matplotlib.
3441 3450
3442 3451 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3443 3452 -pylab, to simplify things for users. Will also remove the pylab
3444 3453 profile, since now all of matplotlib configuration is directly
3445 3454 handled here. This also reduces startup time.
3446 3455
3447 3456 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3448 3457 shell wasn't being correctly called. Also in IPShellWX.
3449 3458
3450 3459 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3451 3460 fine-tune banner.
3452 3461
3453 3462 * IPython/numutils.py (spike): Deprecate these spike functions,
3454 3463 delete (long deprecated) gnuplot_exec handler.
3455 3464
3456 3465 2004-08-26 Fernando Perez <fperez@colorado.edu>
3457 3466
3458 3467 * ipython.1: Update for threading options, plus some others which
3459 3468 were missing.
3460 3469
3461 3470 * IPython/ipmaker.py (__call__): Added -wthread option for
3462 3471 wxpython thread handling. Make sure threading options are only
3463 3472 valid at the command line.
3464 3473
3465 3474 * scripts/ipython: moved shell selection into a factory function
3466 3475 in Shell.py, to keep the starter script to a minimum.
3467 3476
3468 3477 2004-08-25 Fernando Perez <fperez@colorado.edu>
3469 3478
3470 3479 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3471 3480 John. Along with some recent changes he made to matplotlib, the
3472 3481 next versions of both systems should work very well together.
3473 3482
3474 3483 2004-08-24 Fernando Perez <fperez@colorado.edu>
3475 3484
3476 3485 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3477 3486 tried to switch the profiling to using hotshot, but I'm getting
3478 3487 strange errors from prof.runctx() there. I may be misreading the
3479 3488 docs, but it looks weird. For now the profiling code will
3480 3489 continue to use the standard profiler.
3481 3490
3482 3491 2004-08-23 Fernando Perez <fperez@colorado.edu>
3483 3492
3484 3493 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3485 3494 threaded shell, by John Hunter. It's not quite ready yet, but
3486 3495 close.
3487 3496
3488 3497 2004-08-22 Fernando Perez <fperez@colorado.edu>
3489 3498
3490 3499 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3491 3500 in Magic and ultraTB.
3492 3501
3493 3502 * ipython.1: document threading options in manpage.
3494 3503
3495 3504 * scripts/ipython: Changed name of -thread option to -gthread,
3496 3505 since this is GTK specific. I want to leave the door open for a
3497 3506 -wthread option for WX, which will most likely be necessary. This
3498 3507 change affects usage and ipmaker as well.
3499 3508
3500 3509 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3501 3510 handle the matplotlib shell issues. Code by John Hunter
3502 3511 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3503 3512 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3504 3513 broken (and disabled for end users) for now, but it puts the
3505 3514 infrastructure in place.
3506 3515
3507 3516 2004-08-21 Fernando Perez <fperez@colorado.edu>
3508 3517
3509 3518 * ipythonrc-pylab: Add matplotlib support.
3510 3519
3511 3520 * matplotlib_config.py: new files for matplotlib support, part of
3512 3521 the pylab profile.
3513 3522
3514 3523 * IPython/usage.py (__doc__): documented the threading options.
3515 3524
3516 3525 2004-08-20 Fernando Perez <fperez@colorado.edu>
3517 3526
3518 3527 * ipython: Modified the main calling routine to handle the -thread
3519 3528 and -mpthread options. This needs to be done as a top-level hack,
3520 3529 because it determines which class to instantiate for IPython
3521 3530 itself.
3522 3531
3523 3532 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3524 3533 classes to support multithreaded GTK operation without blocking,
3525 3534 and matplotlib with all backends. This is a lot of still very
3526 3535 experimental code, and threads are tricky. So it may still have a
3527 3536 few rough edges... This code owes a lot to
3528 3537 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3529 3538 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3530 3539 to John Hunter for all the matplotlib work.
3531 3540
3532 3541 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3533 3542 options for gtk thread and matplotlib support.
3534 3543
3535 3544 2004-08-16 Fernando Perez <fperez@colorado.edu>
3536 3545
3537 3546 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3538 3547 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3539 3548 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3540 3549
3541 3550 2004-08-11 Fernando Perez <fperez@colorado.edu>
3542 3551
3543 3552 * setup.py (isfile): Fix build so documentation gets updated for
3544 3553 rpms (it was only done for .tgz builds).
3545 3554
3546 3555 2004-08-10 Fernando Perez <fperez@colorado.edu>
3547 3556
3548 3557 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3549 3558
3550 3559 * iplib.py : Silence syntax error exceptions in tab-completion.
3551 3560
3552 3561 2004-08-05 Fernando Perez <fperez@colorado.edu>
3553 3562
3554 3563 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3555 3564 'color off' mark for continuation prompts. This was causing long
3556 3565 continuation lines to mis-wrap.
3557 3566
3558 3567 2004-08-01 Fernando Perez <fperez@colorado.edu>
3559 3568
3560 3569 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3561 3570 for building ipython to be a parameter. All this is necessary
3562 3571 right now to have a multithreaded version, but this insane
3563 3572 non-design will be cleaned up soon. For now, it's a hack that
3564 3573 works.
3565 3574
3566 3575 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3567 3576 args in various places. No bugs so far, but it's a dangerous
3568 3577 practice.
3569 3578
3570 3579 2004-07-31 Fernando Perez <fperez@colorado.edu>
3571 3580
3572 3581 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3573 3582 fix completion of files with dots in their names under most
3574 3583 profiles (pysh was OK because the completion order is different).
3575 3584
3576 3585 2004-07-27 Fernando Perez <fperez@colorado.edu>
3577 3586
3578 3587 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3579 3588 keywords manually, b/c the one in keyword.py was removed in python
3580 3589 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3581 3590 This is NOT a bug under python 2.3 and earlier.
3582 3591
3583 3592 2004-07-26 Fernando Perez <fperez@colorado.edu>
3584 3593
3585 3594 * IPython/ultraTB.py (VerboseTB.text): Add another
3586 3595 linecache.checkcache() call to try to prevent inspect.py from
3587 3596 crashing under python 2.3. I think this fixes
3588 3597 http://www.scipy.net/roundup/ipython/issue17.
3589 3598
3590 3599 2004-07-26 *** Released version 0.6.2
3591 3600
3592 3601 2004-07-26 Fernando Perez <fperez@colorado.edu>
3593 3602
3594 3603 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3595 3604 fail for any number.
3596 3605 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3597 3606 empty bookmarks.
3598 3607
3599 3608 2004-07-26 *** Released version 0.6.1
3600 3609
3601 3610 2004-07-26 Fernando Perez <fperez@colorado.edu>
3602 3611
3603 3612 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3604 3613
3605 3614 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3606 3615 escaping '()[]{}' in filenames.
3607 3616
3608 3617 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3609 3618 Python 2.2 users who lack a proper shlex.split.
3610 3619
3611 3620 2004-07-19 Fernando Perez <fperez@colorado.edu>
3612 3621
3613 3622 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3614 3623 for reading readline's init file. I follow the normal chain:
3615 3624 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3616 3625 report by Mike Heeter. This closes
3617 3626 http://www.scipy.net/roundup/ipython/issue16.
3618 3627
3619 3628 2004-07-18 Fernando Perez <fperez@colorado.edu>
3620 3629
3621 3630 * IPython/iplib.py (__init__): Add better handling of '\' under
3622 3631 Win32 for filenames. After a patch by Ville.
3623 3632
3624 3633 2004-07-17 Fernando Perez <fperez@colorado.edu>
3625 3634
3626 3635 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3627 3636 autocalling would be triggered for 'foo is bar' if foo is
3628 3637 callable. I also cleaned up the autocall detection code to use a
3629 3638 regexp, which is faster. Bug reported by Alexander Schmolck.
3630 3639
3631 3640 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3632 3641 '?' in them would confuse the help system. Reported by Alex
3633 3642 Schmolck.
3634 3643
3635 3644 2004-07-16 Fernando Perez <fperez@colorado.edu>
3636 3645
3637 3646 * IPython/GnuplotInteractive.py (__all__): added plot2.
3638 3647
3639 3648 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3640 3649 plotting dictionaries, lists or tuples of 1d arrays.
3641 3650
3642 3651 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3643 3652 optimizations.
3644 3653
3645 3654 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3646 3655 the information which was there from Janko's original IPP code:
3647 3656
3648 3657 03.05.99 20:53 porto.ifm.uni-kiel.de
3649 3658 --Started changelog.
3650 3659 --make clear do what it say it does
3651 3660 --added pretty output of lines from inputcache
3652 3661 --Made Logger a mixin class, simplifies handling of switches
3653 3662 --Added own completer class. .string<TAB> expands to last history
3654 3663 line which starts with string. The new expansion is also present
3655 3664 with Ctrl-r from the readline library. But this shows, who this
3656 3665 can be done for other cases.
3657 3666 --Added convention that all shell functions should accept a
3658 3667 parameter_string This opens the door for different behaviour for
3659 3668 each function. @cd is a good example of this.
3660 3669
3661 3670 04.05.99 12:12 porto.ifm.uni-kiel.de
3662 3671 --added logfile rotation
3663 3672 --added new mainloop method which freezes first the namespace
3664 3673
3665 3674 07.05.99 21:24 porto.ifm.uni-kiel.de
3666 3675 --added the docreader classes. Now there is a help system.
3667 3676 -This is only a first try. Currently it's not easy to put new
3668 3677 stuff in the indices. But this is the way to go. Info would be
3669 3678 better, but HTML is every where and not everybody has an info
3670 3679 system installed and it's not so easy to change html-docs to info.
3671 3680 --added global logfile option
3672 3681 --there is now a hook for object inspection method pinfo needs to
3673 3682 be provided for this. Can be reached by two '??'.
3674 3683
3675 3684 08.05.99 20:51 porto.ifm.uni-kiel.de
3676 3685 --added a README
3677 3686 --bug in rc file. Something has changed so functions in the rc
3678 3687 file need to reference the shell and not self. Not clear if it's a
3679 3688 bug or feature.
3680 3689 --changed rc file for new behavior
3681 3690
3682 3691 2004-07-15 Fernando Perez <fperez@colorado.edu>
3683 3692
3684 3693 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3685 3694 cache was falling out of sync in bizarre manners when multi-line
3686 3695 input was present. Minor optimizations and cleanup.
3687 3696
3688 3697 (Logger): Remove old Changelog info for cleanup. This is the
3689 3698 information which was there from Janko's original code:
3690 3699
3691 3700 Changes to Logger: - made the default log filename a parameter
3692 3701
3693 3702 - put a check for lines beginning with !@? in log(). Needed
3694 3703 (even if the handlers properly log their lines) for mid-session
3695 3704 logging activation to work properly. Without this, lines logged
3696 3705 in mid session, which get read from the cache, would end up
3697 3706 'bare' (with !@? in the open) in the log. Now they are caught
3698 3707 and prepended with a #.
3699 3708
3700 3709 * IPython/iplib.py (InteractiveShell.init_readline): added check
3701 3710 in case MagicCompleter fails to be defined, so we don't crash.
3702 3711
3703 3712 2004-07-13 Fernando Perez <fperez@colorado.edu>
3704 3713
3705 3714 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3706 3715 of EPS if the requested filename ends in '.eps'.
3707 3716
3708 3717 2004-07-04 Fernando Perez <fperez@colorado.edu>
3709 3718
3710 3719 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3711 3720 escaping of quotes when calling the shell.
3712 3721
3713 3722 2004-07-02 Fernando Perez <fperez@colorado.edu>
3714 3723
3715 3724 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3716 3725 gettext not working because we were clobbering '_'. Fixes
3717 3726 http://www.scipy.net/roundup/ipython/issue6.
3718 3727
3719 3728 2004-07-01 Fernando Perez <fperez@colorado.edu>
3720 3729
3721 3730 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3722 3731 into @cd. Patch by Ville.
3723 3732
3724 3733 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3725 3734 new function to store things after ipmaker runs. Patch by Ville.
3726 3735 Eventually this will go away once ipmaker is removed and the class
3727 3736 gets cleaned up, but for now it's ok. Key functionality here is
3728 3737 the addition of the persistent storage mechanism, a dict for
3729 3738 keeping data across sessions (for now just bookmarks, but more can
3730 3739 be implemented later).
3731 3740
3732 3741 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3733 3742 persistent across sections. Patch by Ville, I modified it
3734 3743 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3735 3744 added a '-l' option to list all bookmarks.
3736 3745
3737 3746 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3738 3747 center for cleanup. Registered with atexit.register(). I moved
3739 3748 here the old exit_cleanup(). After a patch by Ville.
3740 3749
3741 3750 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3742 3751 characters in the hacked shlex_split for python 2.2.
3743 3752
3744 3753 * IPython/iplib.py (file_matches): more fixes to filenames with
3745 3754 whitespace in them. It's not perfect, but limitations in python's
3746 3755 readline make it impossible to go further.
3747 3756
3748 3757 2004-06-29 Fernando Perez <fperez@colorado.edu>
3749 3758
3750 3759 * IPython/iplib.py (file_matches): escape whitespace correctly in
3751 3760 filename completions. Bug reported by Ville.
3752 3761
3753 3762 2004-06-28 Fernando Perez <fperez@colorado.edu>
3754 3763
3755 3764 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3756 3765 the history file will be called 'history-PROFNAME' (or just
3757 3766 'history' if no profile is loaded). I was getting annoyed at
3758 3767 getting my Numerical work history clobbered by pysh sessions.
3759 3768
3760 3769 * IPython/iplib.py (InteractiveShell.__init__): Internal
3761 3770 getoutputerror() function so that we can honor the system_verbose
3762 3771 flag for _all_ system calls. I also added escaping of #
3763 3772 characters here to avoid confusing Itpl.
3764 3773
3765 3774 * IPython/Magic.py (shlex_split): removed call to shell in
3766 3775 parse_options and replaced it with shlex.split(). The annoying
3767 3776 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3768 3777 to backport it from 2.3, with several frail hacks (the shlex
3769 3778 module is rather limited in 2.2). Thanks to a suggestion by Ville
3770 3779 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3771 3780 problem.
3772 3781
3773 3782 (Magic.magic_system_verbose): new toggle to print the actual
3774 3783 system calls made by ipython. Mainly for debugging purposes.
3775 3784
3776 3785 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3777 3786 doesn't support persistence. Reported (and fix suggested) by
3778 3787 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3779 3788
3780 3789 2004-06-26 Fernando Perez <fperez@colorado.edu>
3781 3790
3782 3791 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3783 3792 continue prompts.
3784 3793
3785 3794 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3786 3795 function (basically a big docstring) and a few more things here to
3787 3796 speedup startup. pysh.py is now very lightweight. We want because
3788 3797 it gets execfile'd, while InterpreterExec gets imported, so
3789 3798 byte-compilation saves time.
3790 3799
3791 3800 2004-06-25 Fernando Perez <fperez@colorado.edu>
3792 3801
3793 3802 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3794 3803 -NUM', which was recently broken.
3795 3804
3796 3805 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3797 3806 in multi-line input (but not !!, which doesn't make sense there).
3798 3807
3799 3808 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3800 3809 It's just too useful, and people can turn it off in the less
3801 3810 common cases where it's a problem.
3802 3811
3803 3812 2004-06-24 Fernando Perez <fperez@colorado.edu>
3804 3813
3805 3814 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3806 3815 special syntaxes (like alias calling) is now allied in multi-line
3807 3816 input. This is still _very_ experimental, but it's necessary for
3808 3817 efficient shell usage combining python looping syntax with system
3809 3818 calls. For now it's restricted to aliases, I don't think it
3810 3819 really even makes sense to have this for magics.
3811 3820
3812 3821 2004-06-23 Fernando Perez <fperez@colorado.edu>
3813 3822
3814 3823 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3815 3824 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3816 3825
3817 3826 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3818 3827 extensions under Windows (after code sent by Gary Bishop). The
3819 3828 extensions considered 'executable' are stored in IPython's rc
3820 3829 structure as win_exec_ext.
3821 3830
3822 3831 * IPython/genutils.py (shell): new function, like system() but
3823 3832 without return value. Very useful for interactive shell work.
3824 3833
3825 3834 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3826 3835 delete aliases.
3827 3836
3828 3837 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3829 3838 sure that the alias table doesn't contain python keywords.
3830 3839
3831 3840 2004-06-21 Fernando Perez <fperez@colorado.edu>
3832 3841
3833 3842 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3834 3843 non-existent items are found in $PATH. Reported by Thorsten.
3835 3844
3836 3845 2004-06-20 Fernando Perez <fperez@colorado.edu>
3837 3846
3838 3847 * IPython/iplib.py (complete): modified the completer so that the
3839 3848 order of priorities can be easily changed at runtime.
3840 3849
3841 3850 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3842 3851 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3843 3852
3844 3853 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3845 3854 expand Python variables prepended with $ in all system calls. The
3846 3855 same was done to InteractiveShell.handle_shell_escape. Now all
3847 3856 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3848 3857 expansion of python variables and expressions according to the
3849 3858 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3850 3859
3851 3860 Though PEP-215 has been rejected, a similar (but simpler) one
3852 3861 seems like it will go into Python 2.4, PEP-292 -
3853 3862 http://www.python.org/peps/pep-0292.html.
3854 3863
3855 3864 I'll keep the full syntax of PEP-215, since IPython has since the
3856 3865 start used Ka-Ping Yee's reference implementation discussed there
3857 3866 (Itpl), and I actually like the powerful semantics it offers.
3858 3867
3859 3868 In order to access normal shell variables, the $ has to be escaped
3860 3869 via an extra $. For example:
3861 3870
3862 3871 In [7]: PATH='a python variable'
3863 3872
3864 3873 In [8]: !echo $PATH
3865 3874 a python variable
3866 3875
3867 3876 In [9]: !echo $$PATH
3868 3877 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3869 3878
3870 3879 (Magic.parse_options): escape $ so the shell doesn't evaluate
3871 3880 things prematurely.
3872 3881
3873 3882 * IPython/iplib.py (InteractiveShell.call_alias): added the
3874 3883 ability for aliases to expand python variables via $.
3875 3884
3876 3885 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3877 3886 system, now there's a @rehash/@rehashx pair of magics. These work
3878 3887 like the csh rehash command, and can be invoked at any time. They
3879 3888 build a table of aliases to everything in the user's $PATH
3880 3889 (@rehash uses everything, @rehashx is slower but only adds
3881 3890 executable files). With this, the pysh.py-based shell profile can
3882 3891 now simply call rehash upon startup, and full access to all
3883 3892 programs in the user's path is obtained.
3884 3893
3885 3894 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3886 3895 functionality is now fully in place. I removed the old dynamic
3887 3896 code generation based approach, in favor of a much lighter one
3888 3897 based on a simple dict. The advantage is that this allows me to
3889 3898 now have thousands of aliases with negligible cost (unthinkable
3890 3899 with the old system).
3891 3900
3892 3901 2004-06-19 Fernando Perez <fperez@colorado.edu>
3893 3902
3894 3903 * IPython/iplib.py (__init__): extended MagicCompleter class to
3895 3904 also complete (last in priority) on user aliases.
3896 3905
3897 3906 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3898 3907 call to eval.
3899 3908 (ItplNS.__init__): Added a new class which functions like Itpl,
3900 3909 but allows configuring the namespace for the evaluation to occur
3901 3910 in.
3902 3911
3903 3912 2004-06-18 Fernando Perez <fperez@colorado.edu>
3904 3913
3905 3914 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3906 3915 better message when 'exit' or 'quit' are typed (a common newbie
3907 3916 confusion).
3908 3917
3909 3918 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3910 3919 check for Windows users.
3911 3920
3912 3921 * IPython/iplib.py (InteractiveShell.user_setup): removed
3913 3922 disabling of colors for Windows. I'll test at runtime and issue a
3914 3923 warning if Gary's readline isn't found, as to nudge users to
3915 3924 download it.
3916 3925
3917 3926 2004-06-16 Fernando Perez <fperez@colorado.edu>
3918 3927
3919 3928 * IPython/genutils.py (Stream.__init__): changed to print errors
3920 3929 to sys.stderr. I had a circular dependency here. Now it's
3921 3930 possible to run ipython as IDLE's shell (consider this pre-alpha,
3922 3931 since true stdout things end up in the starting terminal instead
3923 3932 of IDLE's out).
3924 3933
3925 3934 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3926 3935 users who haven't # updated their prompt_in2 definitions. Remove
3927 3936 eventually.
3928 3937 (multiple_replace): added credit to original ASPN recipe.
3929 3938
3930 3939 2004-06-15 Fernando Perez <fperez@colorado.edu>
3931 3940
3932 3941 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3933 3942 list of auto-defined aliases.
3934 3943
3935 3944 2004-06-13 Fernando Perez <fperez@colorado.edu>
3936 3945
3937 3946 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3938 3947 install was really requested (so setup.py can be used for other
3939 3948 things under Windows).
3940 3949
3941 3950 2004-06-10 Fernando Perez <fperez@colorado.edu>
3942 3951
3943 3952 * IPython/Logger.py (Logger.create_log): Manually remove any old
3944 3953 backup, since os.remove may fail under Windows. Fixes bug
3945 3954 reported by Thorsten.
3946 3955
3947 3956 2004-06-09 Fernando Perez <fperez@colorado.edu>
3948 3957
3949 3958 * examples/example-embed.py: fixed all references to %n (replaced
3950 3959 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3951 3960 for all examples and the manual as well.
3952 3961
3953 3962 2004-06-08 Fernando Perez <fperez@colorado.edu>
3954 3963
3955 3964 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3956 3965 alignment and color management. All 3 prompt subsystems now
3957 3966 inherit from BasePrompt.
3958 3967
3959 3968 * tools/release: updates for windows installer build and tag rpms
3960 3969 with python version (since paths are fixed).
3961 3970
3962 3971 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3963 3972 which will become eventually obsolete. Also fixed the default
3964 3973 prompt_in2 to use \D, so at least new users start with the correct
3965 3974 defaults.
3966 3975 WARNING: Users with existing ipythonrc files will need to apply
3967 3976 this fix manually!
3968 3977
3969 3978 * setup.py: make windows installer (.exe). This is finally the
3970 3979 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3971 3980 which I hadn't included because it required Python 2.3 (or recent
3972 3981 distutils).
3973 3982
3974 3983 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3975 3984 usage of new '\D' escape.
3976 3985
3977 3986 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3978 3987 lacks os.getuid())
3979 3988 (CachedOutput.set_colors): Added the ability to turn coloring
3980 3989 on/off with @colors even for manually defined prompt colors. It
3981 3990 uses a nasty global, but it works safely and via the generic color
3982 3991 handling mechanism.
3983 3992 (Prompt2.__init__): Introduced new escape '\D' for continuation
3984 3993 prompts. It represents the counter ('\#') as dots.
3985 3994 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3986 3995 need to update their ipythonrc files and replace '%n' with '\D' in
3987 3996 their prompt_in2 settings everywhere. Sorry, but there's
3988 3997 otherwise no clean way to get all prompts to properly align. The
3989 3998 ipythonrc shipped with IPython has been updated.
3990 3999
3991 4000 2004-06-07 Fernando Perez <fperez@colorado.edu>
3992 4001
3993 4002 * setup.py (isfile): Pass local_icons option to latex2html, so the
3994 4003 resulting HTML file is self-contained. Thanks to
3995 4004 dryice-AT-liu.com.cn for the tip.
3996 4005
3997 4006 * pysh.py: I created a new profile 'shell', which implements a
3998 4007 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3999 4008 system shell, nor will it become one anytime soon. It's mainly
4000 4009 meant to illustrate the use of the new flexible bash-like prompts.
4001 4010 I guess it could be used by hardy souls for true shell management,
4002 4011 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4003 4012 profile. This uses the InterpreterExec extension provided by
4004 4013 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4005 4014
4006 4015 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4007 4016 auto-align itself with the length of the previous input prompt
4008 4017 (taking into account the invisible color escapes).
4009 4018 (CachedOutput.__init__): Large restructuring of this class. Now
4010 4019 all three prompts (primary1, primary2, output) are proper objects,
4011 4020 managed by the 'parent' CachedOutput class. The code is still a
4012 4021 bit hackish (all prompts share state via a pointer to the cache),
4013 4022 but it's overall far cleaner than before.
4014 4023
4015 4024 * IPython/genutils.py (getoutputerror): modified to add verbose,
4016 4025 debug and header options. This makes the interface of all getout*
4017 4026 functions uniform.
4018 4027 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4019 4028
4020 4029 * IPython/Magic.py (Magic.default_option): added a function to
4021 4030 allow registering default options for any magic command. This
4022 4031 makes it easy to have profiles which customize the magics globally
4023 4032 for a certain use. The values set through this function are
4024 4033 picked up by the parse_options() method, which all magics should
4025 4034 use to parse their options.
4026 4035
4027 4036 * IPython/genutils.py (warn): modified the warnings framework to
4028 4037 use the Term I/O class. I'm trying to slowly unify all of
4029 4038 IPython's I/O operations to pass through Term.
4030 4039
4031 4040 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4032 4041 the secondary prompt to correctly match the length of the primary
4033 4042 one for any prompt. Now multi-line code will properly line up
4034 4043 even for path dependent prompts, such as the new ones available
4035 4044 via the prompt_specials.
4036 4045
4037 4046 2004-06-06 Fernando Perez <fperez@colorado.edu>
4038 4047
4039 4048 * IPython/Prompts.py (prompt_specials): Added the ability to have
4040 4049 bash-like special sequences in the prompts, which get
4041 4050 automatically expanded. Things like hostname, current working
4042 4051 directory and username are implemented already, but it's easy to
4043 4052 add more in the future. Thanks to a patch by W.J. van der Laan
4044 4053 <gnufnork-AT-hetdigitalegat.nl>
4045 4054 (prompt_specials): Added color support for prompt strings, so
4046 4055 users can define arbitrary color setups for their prompts.
4047 4056
4048 4057 2004-06-05 Fernando Perez <fperez@colorado.edu>
4049 4058
4050 4059 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4051 4060 code to load Gary Bishop's readline and configure it
4052 4061 automatically. Thanks to Gary for help on this.
4053 4062
4054 4063 2004-06-01 Fernando Perez <fperez@colorado.edu>
4055 4064
4056 4065 * IPython/Logger.py (Logger.create_log): fix bug for logging
4057 4066 with no filename (previous fix was incomplete).
4058 4067
4059 4068 2004-05-25 Fernando Perez <fperez@colorado.edu>
4060 4069
4061 4070 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4062 4071 parens would get passed to the shell.
4063 4072
4064 4073 2004-05-20 Fernando Perez <fperez@colorado.edu>
4065 4074
4066 4075 * IPython/Magic.py (Magic.magic_prun): changed default profile
4067 4076 sort order to 'time' (the more common profiling need).
4068 4077
4069 4078 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4070 4079 so that source code shown is guaranteed in sync with the file on
4071 4080 disk (also changed in psource). Similar fix to the one for
4072 4081 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4073 4082 <yann.ledu-AT-noos.fr>.
4074 4083
4075 4084 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4076 4085 with a single option would not be correctly parsed. Closes
4077 4086 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4078 4087 introduced in 0.6.0 (on 2004-05-06).
4079 4088
4080 4089 2004-05-13 *** Released version 0.6.0
4081 4090
4082 4091 2004-05-13 Fernando Perez <fperez@colorado.edu>
4083 4092
4084 4093 * debian/: Added debian/ directory to CVS, so that debian support
4085 4094 is publicly accessible. The debian package is maintained by Jack
4086 4095 Moffit <jack-AT-xiph.org>.
4087 4096
4088 4097 * Documentation: included the notes about an ipython-based system
4089 4098 shell (the hypothetical 'pysh') into the new_design.pdf document,
4090 4099 so that these ideas get distributed to users along with the
4091 4100 official documentation.
4092 4101
4093 4102 2004-05-10 Fernando Perez <fperez@colorado.edu>
4094 4103
4095 4104 * IPython/Logger.py (Logger.create_log): fix recently introduced
4096 4105 bug (misindented line) where logstart would fail when not given an
4097 4106 explicit filename.
4098 4107
4099 4108 2004-05-09 Fernando Perez <fperez@colorado.edu>
4100 4109
4101 4110 * IPython/Magic.py (Magic.parse_options): skip system call when
4102 4111 there are no options to look for. Faster, cleaner for the common
4103 4112 case.
4104 4113
4105 4114 * Documentation: many updates to the manual: describing Windows
4106 4115 support better, Gnuplot updates, credits, misc small stuff. Also
4107 4116 updated the new_design doc a bit.
4108 4117
4109 4118 2004-05-06 *** Released version 0.6.0.rc1
4110 4119
4111 4120 2004-05-06 Fernando Perez <fperez@colorado.edu>
4112 4121
4113 4122 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4114 4123 operations to use the vastly more efficient list/''.join() method.
4115 4124 (FormattedTB.text): Fix
4116 4125 http://www.scipy.net/roundup/ipython/issue12 - exception source
4117 4126 extract not updated after reload. Thanks to Mike Salib
4118 4127 <msalib-AT-mit.edu> for pinning the source of the problem.
4119 4128 Fortunately, the solution works inside ipython and doesn't require
4120 4129 any changes to python proper.
4121 4130
4122 4131 * IPython/Magic.py (Magic.parse_options): Improved to process the
4123 4132 argument list as a true shell would (by actually using the
4124 4133 underlying system shell). This way, all @magics automatically get
4125 4134 shell expansion for variables. Thanks to a comment by Alex
4126 4135 Schmolck.
4127 4136
4128 4137 2004-04-04 Fernando Perez <fperez@colorado.edu>
4129 4138
4130 4139 * IPython/iplib.py (InteractiveShell.interact): Added a special
4131 4140 trap for a debugger quit exception, which is basically impossible
4132 4141 to handle by normal mechanisms, given what pdb does to the stack.
4133 4142 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4134 4143
4135 4144 2004-04-03 Fernando Perez <fperez@colorado.edu>
4136 4145
4137 4146 * IPython/genutils.py (Term): Standardized the names of the Term
4138 4147 class streams to cin/cout/cerr, following C++ naming conventions
4139 4148 (I can't use in/out/err because 'in' is not a valid attribute
4140 4149 name).
4141 4150
4142 4151 * IPython/iplib.py (InteractiveShell.interact): don't increment
4143 4152 the prompt if there's no user input. By Daniel 'Dang' Griffith
4144 4153 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4145 4154 Francois Pinard.
4146 4155
4147 4156 2004-04-02 Fernando Perez <fperez@colorado.edu>
4148 4157
4149 4158 * IPython/genutils.py (Stream.__init__): Modified to survive at
4150 4159 least importing in contexts where stdin/out/err aren't true file
4151 4160 objects, such as PyCrust (they lack fileno() and mode). However,
4152 4161 the recovery facilities which rely on these things existing will
4153 4162 not work.
4154 4163
4155 4164 2004-04-01 Fernando Perez <fperez@colorado.edu>
4156 4165
4157 4166 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4158 4167 use the new getoutputerror() function, so it properly
4159 4168 distinguishes stdout/err.
4160 4169
4161 4170 * IPython/genutils.py (getoutputerror): added a function to
4162 4171 capture separately the standard output and error of a command.
4163 4172 After a comment from dang on the mailing lists. This code is
4164 4173 basically a modified version of commands.getstatusoutput(), from
4165 4174 the standard library.
4166 4175
4167 4176 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4168 4177 '!!' as a special syntax (shorthand) to access @sx.
4169 4178
4170 4179 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4171 4180 command and return its output as a list split on '\n'.
4172 4181
4173 4182 2004-03-31 Fernando Perez <fperez@colorado.edu>
4174 4183
4175 4184 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4176 4185 method to dictionaries used as FakeModule instances if they lack
4177 4186 it. At least pydoc in python2.3 breaks for runtime-defined
4178 4187 functions without this hack. At some point I need to _really_
4179 4188 understand what FakeModule is doing, because it's a gross hack.
4180 4189 But it solves Arnd's problem for now...
4181 4190
4182 4191 2004-02-27 Fernando Perez <fperez@colorado.edu>
4183 4192
4184 4193 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4185 4194 mode would behave erratically. Also increased the number of
4186 4195 possible logs in rotate mod to 999. Thanks to Rod Holland
4187 4196 <rhh@StructureLABS.com> for the report and fixes.
4188 4197
4189 4198 2004-02-26 Fernando Perez <fperez@colorado.edu>
4190 4199
4191 4200 * IPython/genutils.py (page): Check that the curses module really
4192 4201 has the initscr attribute before trying to use it. For some
4193 4202 reason, the Solaris curses module is missing this. I think this
4194 4203 should be considered a Solaris python bug, but I'm not sure.
4195 4204
4196 4205 2004-01-17 Fernando Perez <fperez@colorado.edu>
4197 4206
4198 4207 * IPython/genutils.py (Stream.__init__): Changes to try to make
4199 4208 ipython robust against stdin/out/err being closed by the user.
4200 4209 This is 'user error' (and blocks a normal python session, at least
4201 4210 the stdout case). However, Ipython should be able to survive such
4202 4211 instances of abuse as gracefully as possible. To simplify the
4203 4212 coding and maintain compatibility with Gary Bishop's Term
4204 4213 contributions, I've made use of classmethods for this. I think
4205 4214 this introduces a dependency on python 2.2.
4206 4215
4207 4216 2004-01-13 Fernando Perez <fperez@colorado.edu>
4208 4217
4209 4218 * IPython/numutils.py (exp_safe): simplified the code a bit and
4210 4219 removed the need for importing the kinds module altogether.
4211 4220
4212 4221 2004-01-06 Fernando Perez <fperez@colorado.edu>
4213 4222
4214 4223 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4215 4224 a magic function instead, after some community feedback. No
4216 4225 special syntax will exist for it, but its name is deliberately
4217 4226 very short.
4218 4227
4219 4228 2003-12-20 Fernando Perez <fperez@colorado.edu>
4220 4229
4221 4230 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4222 4231 new functionality, to automagically assign the result of a shell
4223 4232 command to a variable. I'll solicit some community feedback on
4224 4233 this before making it permanent.
4225 4234
4226 4235 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4227 4236 requested about callables for which inspect couldn't obtain a
4228 4237 proper argspec. Thanks to a crash report sent by Etienne
4229 4238 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4230 4239
4231 4240 2003-12-09 Fernando Perez <fperez@colorado.edu>
4232 4241
4233 4242 * IPython/genutils.py (page): patch for the pager to work across
4234 4243 various versions of Windows. By Gary Bishop.
4235 4244
4236 4245 2003-12-04 Fernando Perez <fperez@colorado.edu>
4237 4246
4238 4247 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4239 4248 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4240 4249 While I tested this and it looks ok, there may still be corner
4241 4250 cases I've missed.
4242 4251
4243 4252 2003-12-01 Fernando Perez <fperez@colorado.edu>
4244 4253
4245 4254 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4246 4255 where a line like 'p,q=1,2' would fail because the automagic
4247 4256 system would be triggered for @p.
4248 4257
4249 4258 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4250 4259 cleanups, code unmodified.
4251 4260
4252 4261 * IPython/genutils.py (Term): added a class for IPython to handle
4253 4262 output. In most cases it will just be a proxy for stdout/err, but
4254 4263 having this allows modifications to be made for some platforms,
4255 4264 such as handling color escapes under Windows. All of this code
4256 4265 was contributed by Gary Bishop, with minor modifications by me.
4257 4266 The actual changes affect many files.
4258 4267
4259 4268 2003-11-30 Fernando Perez <fperez@colorado.edu>
4260 4269
4261 4270 * IPython/iplib.py (file_matches): new completion code, courtesy
4262 4271 of Jeff Collins. This enables filename completion again under
4263 4272 python 2.3, which disabled it at the C level.
4264 4273
4265 4274 2003-11-11 Fernando Perez <fperez@colorado.edu>
4266 4275
4267 4276 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4268 4277 for Numeric.array(map(...)), but often convenient.
4269 4278
4270 4279 2003-11-05 Fernando Perez <fperez@colorado.edu>
4271 4280
4272 4281 * IPython/numutils.py (frange): Changed a call from int() to
4273 4282 int(round()) to prevent a problem reported with arange() in the
4274 4283 numpy list.
4275 4284
4276 4285 2003-10-06 Fernando Perez <fperez@colorado.edu>
4277 4286
4278 4287 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4279 4288 prevent crashes if sys lacks an argv attribute (it happens with
4280 4289 embedded interpreters which build a bare-bones sys module).
4281 4290 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4282 4291
4283 4292 2003-09-24 Fernando Perez <fperez@colorado.edu>
4284 4293
4285 4294 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4286 4295 to protect against poorly written user objects where __getattr__
4287 4296 raises exceptions other than AttributeError. Thanks to a bug
4288 4297 report by Oliver Sander <osander-AT-gmx.de>.
4289 4298
4290 4299 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4291 4300 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4292 4301
4293 4302 2003-09-09 Fernando Perez <fperez@colorado.edu>
4294 4303
4295 4304 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4296 4305 unpacking a list whith a callable as first element would
4297 4306 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4298 4307 Collins.
4299 4308
4300 4309 2003-08-25 *** Released version 0.5.0
4301 4310
4302 4311 2003-08-22 Fernando Perez <fperez@colorado.edu>
4303 4312
4304 4313 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4305 4314 improperly defined user exceptions. Thanks to feedback from Mark
4306 4315 Russell <mrussell-AT-verio.net>.
4307 4316
4308 4317 2003-08-20 Fernando Perez <fperez@colorado.edu>
4309 4318
4310 4319 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4311 4320 printing so that it would print multi-line string forms starting
4312 4321 with a new line. This way the formatting is better respected for
4313 4322 objects which work hard to make nice string forms.
4314 4323
4315 4324 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4316 4325 autocall would overtake data access for objects with both
4317 4326 __getitem__ and __call__.
4318 4327
4319 4328 2003-08-19 *** Released version 0.5.0-rc1
4320 4329
4321 4330 2003-08-19 Fernando Perez <fperez@colorado.edu>
4322 4331
4323 4332 * IPython/deep_reload.py (load_tail): single tiny change here
4324 4333 seems to fix the long-standing bug of dreload() failing to work
4325 4334 for dotted names. But this module is pretty tricky, so I may have
4326 4335 missed some subtlety. Needs more testing!.
4327 4336
4328 4337 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4329 4338 exceptions which have badly implemented __str__ methods.
4330 4339 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4331 4340 which I've been getting reports about from Python 2.3 users. I
4332 4341 wish I had a simple test case to reproduce the problem, so I could
4333 4342 either write a cleaner workaround or file a bug report if
4334 4343 necessary.
4335 4344
4336 4345 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4337 4346 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4338 4347 a bug report by Tjabo Kloppenburg.
4339 4348
4340 4349 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4341 4350 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4342 4351 seems rather unstable. Thanks to a bug report by Tjabo
4343 4352 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4344 4353
4345 4354 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4346 4355 this out soon because of the critical fixes in the inner loop for
4347 4356 generators.
4348 4357
4349 4358 * IPython/Magic.py (Magic.getargspec): removed. This (and
4350 4359 _get_def) have been obsoleted by OInspect for a long time, I
4351 4360 hadn't noticed that they were dead code.
4352 4361 (Magic._ofind): restored _ofind functionality for a few literals
4353 4362 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4354 4363 for things like "hello".capitalize?, since that would require a
4355 4364 potentially dangerous eval() again.
4356 4365
4357 4366 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4358 4367 logic a bit more to clean up the escapes handling and minimize the
4359 4368 use of _ofind to only necessary cases. The interactive 'feel' of
4360 4369 IPython should have improved quite a bit with the changes in
4361 4370 _prefilter and _ofind (besides being far safer than before).
4362 4371
4363 4372 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4364 4373 obscure, never reported). Edit would fail to find the object to
4365 4374 edit under some circumstances.
4366 4375 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4367 4376 which were causing double-calling of generators. Those eval calls
4368 4377 were _very_ dangerous, since code with side effects could be
4369 4378 triggered. As they say, 'eval is evil'... These were the
4370 4379 nastiest evals in IPython. Besides, _ofind is now far simpler,
4371 4380 and it should also be quite a bit faster. Its use of inspect is
4372 4381 also safer, so perhaps some of the inspect-related crashes I've
4373 4382 seen lately with Python 2.3 might be taken care of. That will
4374 4383 need more testing.
4375 4384
4376 4385 2003-08-17 Fernando Perez <fperez@colorado.edu>
4377 4386
4378 4387 * IPython/iplib.py (InteractiveShell._prefilter): significant
4379 4388 simplifications to the logic for handling user escapes. Faster
4380 4389 and simpler code.
4381 4390
4382 4391 2003-08-14 Fernando Perez <fperez@colorado.edu>
4383 4392
4384 4393 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4385 4394 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4386 4395 but it should be quite a bit faster. And the recursive version
4387 4396 generated O(log N) intermediate storage for all rank>1 arrays,
4388 4397 even if they were contiguous.
4389 4398 (l1norm): Added this function.
4390 4399 (norm): Added this function for arbitrary norms (including
4391 4400 l-infinity). l1 and l2 are still special cases for convenience
4392 4401 and speed.
4393 4402
4394 4403 2003-08-03 Fernando Perez <fperez@colorado.edu>
4395 4404
4396 4405 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4397 4406 exceptions, which now raise PendingDeprecationWarnings in Python
4398 4407 2.3. There were some in Magic and some in Gnuplot2.
4399 4408
4400 4409 2003-06-30 Fernando Perez <fperez@colorado.edu>
4401 4410
4402 4411 * IPython/genutils.py (page): modified to call curses only for
4403 4412 terminals where TERM=='xterm'. After problems under many other
4404 4413 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4405 4414
4406 4415 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4407 4416 would be triggered when readline was absent. This was just an old
4408 4417 debugging statement I'd forgotten to take out.
4409 4418
4410 4419 2003-06-20 Fernando Perez <fperez@colorado.edu>
4411 4420
4412 4421 * IPython/genutils.py (clock): modified to return only user time
4413 4422 (not counting system time), after a discussion on scipy. While
4414 4423 system time may be a useful quantity occasionally, it may much
4415 4424 more easily be skewed by occasional swapping or other similar
4416 4425 activity.
4417 4426
4418 4427 2003-06-05 Fernando Perez <fperez@colorado.edu>
4419 4428
4420 4429 * IPython/numutils.py (identity): new function, for building
4421 4430 arbitrary rank Kronecker deltas (mostly backwards compatible with
4422 4431 Numeric.identity)
4423 4432
4424 4433 2003-06-03 Fernando Perez <fperez@colorado.edu>
4425 4434
4426 4435 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4427 4436 arguments passed to magics with spaces, to allow trailing '\' to
4428 4437 work normally (mainly for Windows users).
4429 4438
4430 4439 2003-05-29 Fernando Perez <fperez@colorado.edu>
4431 4440
4432 4441 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4433 4442 instead of pydoc.help. This fixes a bizarre behavior where
4434 4443 printing '%s' % locals() would trigger the help system. Now
4435 4444 ipython behaves like normal python does.
4436 4445
4437 4446 Note that if one does 'from pydoc import help', the bizarre
4438 4447 behavior returns, but this will also happen in normal python, so
4439 4448 it's not an ipython bug anymore (it has to do with how pydoc.help
4440 4449 is implemented).
4441 4450
4442 4451 2003-05-22 Fernando Perez <fperez@colorado.edu>
4443 4452
4444 4453 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4445 4454 return [] instead of None when nothing matches, also match to end
4446 4455 of line. Patch by Gary Bishop.
4447 4456
4448 4457 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4449 4458 protection as before, for files passed on the command line. This
4450 4459 prevents the CrashHandler from kicking in if user files call into
4451 4460 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4452 4461 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4453 4462
4454 4463 2003-05-20 *** Released version 0.4.0
4455 4464
4456 4465 2003-05-20 Fernando Perez <fperez@colorado.edu>
4457 4466
4458 4467 * setup.py: added support for manpages. It's a bit hackish b/c of
4459 4468 a bug in the way the bdist_rpm distutils target handles gzipped
4460 4469 manpages, but it works. After a patch by Jack.
4461 4470
4462 4471 2003-05-19 Fernando Perez <fperez@colorado.edu>
4463 4472
4464 4473 * IPython/numutils.py: added a mockup of the kinds module, since
4465 4474 it was recently removed from Numeric. This way, numutils will
4466 4475 work for all users even if they are missing kinds.
4467 4476
4468 4477 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4469 4478 failure, which can occur with SWIG-wrapped extensions. After a
4470 4479 crash report from Prabhu.
4471 4480
4472 4481 2003-05-16 Fernando Perez <fperez@colorado.edu>
4473 4482
4474 4483 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4475 4484 protect ipython from user code which may call directly
4476 4485 sys.excepthook (this looks like an ipython crash to the user, even
4477 4486 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4478 4487 This is especially important to help users of WxWindows, but may
4479 4488 also be useful in other cases.
4480 4489
4481 4490 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4482 4491 an optional tb_offset to be specified, and to preserve exception
4483 4492 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4484 4493
4485 4494 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4486 4495
4487 4496 2003-05-15 Fernando Perez <fperez@colorado.edu>
4488 4497
4489 4498 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4490 4499 installing for a new user under Windows.
4491 4500
4492 4501 2003-05-12 Fernando Perez <fperez@colorado.edu>
4493 4502
4494 4503 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4495 4504 handler for Emacs comint-based lines. Currently it doesn't do
4496 4505 much (but importantly, it doesn't update the history cache). In
4497 4506 the future it may be expanded if Alex needs more functionality
4498 4507 there.
4499 4508
4500 4509 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4501 4510 info to crash reports.
4502 4511
4503 4512 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4504 4513 just like Python's -c. Also fixed crash with invalid -color
4505 4514 option value at startup. Thanks to Will French
4506 4515 <wfrench-AT-bestweb.net> for the bug report.
4507 4516
4508 4517 2003-05-09 Fernando Perez <fperez@colorado.edu>
4509 4518
4510 4519 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4511 4520 to EvalDict (it's a mapping, after all) and simplified its code
4512 4521 quite a bit, after a nice discussion on c.l.py where Gustavo
4513 4522 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4514 4523
4515 4524 2003-04-30 Fernando Perez <fperez@colorado.edu>
4516 4525
4517 4526 * IPython/genutils.py (timings_out): modified it to reduce its
4518 4527 overhead in the common reps==1 case.
4519 4528
4520 4529 2003-04-29 Fernando Perez <fperez@colorado.edu>
4521 4530
4522 4531 * IPython/genutils.py (timings_out): Modified to use the resource
4523 4532 module, which avoids the wraparound problems of time.clock().
4524 4533
4525 4534 2003-04-17 *** Released version 0.2.15pre4
4526 4535
4527 4536 2003-04-17 Fernando Perez <fperez@colorado.edu>
4528 4537
4529 4538 * setup.py (scriptfiles): Split windows-specific stuff over to a
4530 4539 separate file, in an attempt to have a Windows GUI installer.
4531 4540 That didn't work, but part of the groundwork is done.
4532 4541
4533 4542 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4534 4543 indent/unindent with 4 spaces. Particularly useful in combination
4535 4544 with the new auto-indent option.
4536 4545
4537 4546 2003-04-16 Fernando Perez <fperez@colorado.edu>
4538 4547
4539 4548 * IPython/Magic.py: various replacements of self.rc for
4540 4549 self.shell.rc. A lot more remains to be done to fully disentangle
4541 4550 this class from the main Shell class.
4542 4551
4543 4552 * IPython/GnuplotRuntime.py: added checks for mouse support so
4544 4553 that we don't try to enable it if the current gnuplot doesn't
4545 4554 really support it. Also added checks so that we don't try to
4546 4555 enable persist under Windows (where Gnuplot doesn't recognize the
4547 4556 option).
4548 4557
4549 4558 * IPython/iplib.py (InteractiveShell.interact): Added optional
4550 4559 auto-indenting code, after a patch by King C. Shu
4551 4560 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4552 4561 get along well with pasting indented code. If I ever figure out
4553 4562 how to make that part go well, it will become on by default.
4554 4563
4555 4564 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4556 4565 crash ipython if there was an unmatched '%' in the user's prompt
4557 4566 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4558 4567
4559 4568 * IPython/iplib.py (InteractiveShell.interact): removed the
4560 4569 ability to ask the user whether he wants to crash or not at the
4561 4570 'last line' exception handler. Calling functions at that point
4562 4571 changes the stack, and the error reports would have incorrect
4563 4572 tracebacks.
4564 4573
4565 4574 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4566 4575 pass through a peger a pretty-printed form of any object. After a
4567 4576 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4568 4577
4569 4578 2003-04-14 Fernando Perez <fperez@colorado.edu>
4570 4579
4571 4580 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4572 4581 all files in ~ would be modified at first install (instead of
4573 4582 ~/.ipython). This could be potentially disastrous, as the
4574 4583 modification (make line-endings native) could damage binary files.
4575 4584
4576 4585 2003-04-10 Fernando Perez <fperez@colorado.edu>
4577 4586
4578 4587 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4579 4588 handle only lines which are invalid python. This now means that
4580 4589 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4581 4590 for the bug report.
4582 4591
4583 4592 2003-04-01 Fernando Perez <fperez@colorado.edu>
4584 4593
4585 4594 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4586 4595 where failing to set sys.last_traceback would crash pdb.pm().
4587 4596 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4588 4597 report.
4589 4598
4590 4599 2003-03-25 Fernando Perez <fperez@colorado.edu>
4591 4600
4592 4601 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4593 4602 before printing it (it had a lot of spurious blank lines at the
4594 4603 end).
4595 4604
4596 4605 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4597 4606 output would be sent 21 times! Obviously people don't use this
4598 4607 too often, or I would have heard about it.
4599 4608
4600 4609 2003-03-24 Fernando Perez <fperez@colorado.edu>
4601 4610
4602 4611 * setup.py (scriptfiles): renamed the data_files parameter from
4603 4612 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4604 4613 for the patch.
4605 4614
4606 4615 2003-03-20 Fernando Perez <fperez@colorado.edu>
4607 4616
4608 4617 * IPython/genutils.py (error): added error() and fatal()
4609 4618 functions.
4610 4619
4611 4620 2003-03-18 *** Released version 0.2.15pre3
4612 4621
4613 4622 2003-03-18 Fernando Perez <fperez@colorado.edu>
4614 4623
4615 4624 * setupext/install_data_ext.py
4616 4625 (install_data_ext.initialize_options): Class contributed by Jack
4617 4626 Moffit for fixing the old distutils hack. He is sending this to
4618 4627 the distutils folks so in the future we may not need it as a
4619 4628 private fix.
4620 4629
4621 4630 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4622 4631 changes for Debian packaging. See his patch for full details.
4623 4632 The old distutils hack of making the ipythonrc* files carry a
4624 4633 bogus .py extension is gone, at last. Examples were moved to a
4625 4634 separate subdir under doc/, and the separate executable scripts
4626 4635 now live in their own directory. Overall a great cleanup. The
4627 4636 manual was updated to use the new files, and setup.py has been
4628 4637 fixed for this setup.
4629 4638
4630 4639 * IPython/PyColorize.py (Parser.usage): made non-executable and
4631 4640 created a pycolor wrapper around it to be included as a script.
4632 4641
4633 4642 2003-03-12 *** Released version 0.2.15pre2
4634 4643
4635 4644 2003-03-12 Fernando Perez <fperez@colorado.edu>
4636 4645
4637 4646 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4638 4647 long-standing problem with garbage characters in some terminals.
4639 4648 The issue was really that the \001 and \002 escapes must _only_ be
4640 4649 passed to input prompts (which call readline), but _never_ to
4641 4650 normal text to be printed on screen. I changed ColorANSI to have
4642 4651 two classes: TermColors and InputTermColors, each with the
4643 4652 appropriate escapes for input prompts or normal text. The code in
4644 4653 Prompts.py got slightly more complicated, but this very old and
4645 4654 annoying bug is finally fixed.
4646 4655
4647 4656 All the credit for nailing down the real origin of this problem
4648 4657 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4649 4658 *Many* thanks to him for spending quite a bit of effort on this.
4650 4659
4651 4660 2003-03-05 *** Released version 0.2.15pre1
4652 4661
4653 4662 2003-03-03 Fernando Perez <fperez@colorado.edu>
4654 4663
4655 4664 * IPython/FakeModule.py: Moved the former _FakeModule to a
4656 4665 separate file, because it's also needed by Magic (to fix a similar
4657 4666 pickle-related issue in @run).
4658 4667
4659 4668 2003-03-02 Fernando Perez <fperez@colorado.edu>
4660 4669
4661 4670 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4662 4671 the autocall option at runtime.
4663 4672 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4664 4673 across Magic.py to start separating Magic from InteractiveShell.
4665 4674 (Magic._ofind): Fixed to return proper namespace for dotted
4666 4675 names. Before, a dotted name would always return 'not currently
4667 4676 defined', because it would find the 'parent'. s.x would be found,
4668 4677 but since 'x' isn't defined by itself, it would get confused.
4669 4678 (Magic.magic_run): Fixed pickling problems reported by Ralf
4670 4679 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4671 4680 that I'd used when Mike Heeter reported similar issues at the
4672 4681 top-level, but now for @run. It boils down to injecting the
4673 4682 namespace where code is being executed with something that looks
4674 4683 enough like a module to fool pickle.dump(). Since a pickle stores
4675 4684 a named reference to the importing module, we need this for
4676 4685 pickles to save something sensible.
4677 4686
4678 4687 * IPython/ipmaker.py (make_IPython): added an autocall option.
4679 4688
4680 4689 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4681 4690 the auto-eval code. Now autocalling is an option, and the code is
4682 4691 also vastly safer. There is no more eval() involved at all.
4683 4692
4684 4693 2003-03-01 Fernando Perez <fperez@colorado.edu>
4685 4694
4686 4695 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4687 4696 dict with named keys instead of a tuple.
4688 4697
4689 4698 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4690 4699
4691 4700 * setup.py (make_shortcut): Fixed message about directories
4692 4701 created during Windows installation (the directories were ok, just
4693 4702 the printed message was misleading). Thanks to Chris Liechti
4694 4703 <cliechti-AT-gmx.net> for the heads up.
4695 4704
4696 4705 2003-02-21 Fernando Perez <fperez@colorado.edu>
4697 4706
4698 4707 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4699 4708 of ValueError exception when checking for auto-execution. This
4700 4709 one is raised by things like Numeric arrays arr.flat when the
4701 4710 array is non-contiguous.
4702 4711
4703 4712 2003-01-31 Fernando Perez <fperez@colorado.edu>
4704 4713
4705 4714 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4706 4715 not return any value at all (even though the command would get
4707 4716 executed).
4708 4717 (xsys): Flush stdout right after printing the command to ensure
4709 4718 proper ordering of commands and command output in the total
4710 4719 output.
4711 4720 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4712 4721 system/getoutput as defaults. The old ones are kept for
4713 4722 compatibility reasons, so no code which uses this library needs
4714 4723 changing.
4715 4724
4716 4725 2003-01-27 *** Released version 0.2.14
4717 4726
4718 4727 2003-01-25 Fernando Perez <fperez@colorado.edu>
4719 4728
4720 4729 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4721 4730 functions defined in previous edit sessions could not be re-edited
4722 4731 (because the temp files were immediately removed). Now temp files
4723 4732 are removed only at IPython's exit.
4724 4733 (Magic.magic_run): Improved @run to perform shell-like expansions
4725 4734 on its arguments (~users and $VARS). With this, @run becomes more
4726 4735 like a normal command-line.
4727 4736
4728 4737 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4729 4738 bugs related to embedding and cleaned up that code. A fairly
4730 4739 important one was the impossibility to access the global namespace
4731 4740 through the embedded IPython (only local variables were visible).
4732 4741
4733 4742 2003-01-14 Fernando Perez <fperez@colorado.edu>
4734 4743
4735 4744 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4736 4745 auto-calling to be a bit more conservative. Now it doesn't get
4737 4746 triggered if any of '!=()<>' are in the rest of the input line, to
4738 4747 allow comparing callables. Thanks to Alex for the heads up.
4739 4748
4740 4749 2003-01-07 Fernando Perez <fperez@colorado.edu>
4741 4750
4742 4751 * IPython/genutils.py (page): fixed estimation of the number of
4743 4752 lines in a string to be paged to simply count newlines. This
4744 4753 prevents over-guessing due to embedded escape sequences. A better
4745 4754 long-term solution would involve stripping out the control chars
4746 4755 for the count, but it's potentially so expensive I just don't
4747 4756 think it's worth doing.
4748 4757
4749 4758 2002-12-19 *** Released version 0.2.14pre50
4750 4759
4751 4760 2002-12-19 Fernando Perez <fperez@colorado.edu>
4752 4761
4753 4762 * tools/release (version): Changed release scripts to inform
4754 4763 Andrea and build a NEWS file with a list of recent changes.
4755 4764
4756 4765 * IPython/ColorANSI.py (__all__): changed terminal detection
4757 4766 code. Seems to work better for xterms without breaking
4758 4767 konsole. Will need more testing to determine if WinXP and Mac OSX
4759 4768 also work ok.
4760 4769
4761 4770 2002-12-18 *** Released version 0.2.14pre49
4762 4771
4763 4772 2002-12-18 Fernando Perez <fperez@colorado.edu>
4764 4773
4765 4774 * Docs: added new info about Mac OSX, from Andrea.
4766 4775
4767 4776 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4768 4777 allow direct plotting of python strings whose format is the same
4769 4778 of gnuplot data files.
4770 4779
4771 4780 2002-12-16 Fernando Perez <fperez@colorado.edu>
4772 4781
4773 4782 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4774 4783 value of exit question to be acknowledged.
4775 4784
4776 4785 2002-12-03 Fernando Perez <fperez@colorado.edu>
4777 4786
4778 4787 * IPython/ipmaker.py: removed generators, which had been added
4779 4788 by mistake in an earlier debugging run. This was causing trouble
4780 4789 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4781 4790 for pointing this out.
4782 4791
4783 4792 2002-11-17 Fernando Perez <fperez@colorado.edu>
4784 4793
4785 4794 * Manual: updated the Gnuplot section.
4786 4795
4787 4796 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4788 4797 a much better split of what goes in Runtime and what goes in
4789 4798 Interactive.
4790 4799
4791 4800 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4792 4801 being imported from iplib.
4793 4802
4794 4803 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4795 4804 for command-passing. Now the global Gnuplot instance is called
4796 4805 'gp' instead of 'g', which was really a far too fragile and
4797 4806 common name.
4798 4807
4799 4808 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4800 4809 bounding boxes generated by Gnuplot for square plots.
4801 4810
4802 4811 * IPython/genutils.py (popkey): new function added. I should
4803 4812 suggest this on c.l.py as a dict method, it seems useful.
4804 4813
4805 4814 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4806 4815 to transparently handle PostScript generation. MUCH better than
4807 4816 the previous plot_eps/replot_eps (which I removed now). The code
4808 4817 is also fairly clean and well documented now (including
4809 4818 docstrings).
4810 4819
4811 4820 2002-11-13 Fernando Perez <fperez@colorado.edu>
4812 4821
4813 4822 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4814 4823 (inconsistent with options).
4815 4824
4816 4825 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4817 4826 manually disabled, I don't know why. Fixed it.
4818 4827 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4819 4828 eps output.
4820 4829
4821 4830 2002-11-12 Fernando Perez <fperez@colorado.edu>
4822 4831
4823 4832 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4824 4833 don't propagate up to caller. Fixes crash reported by François
4825 4834 Pinard.
4826 4835
4827 4836 2002-11-09 Fernando Perez <fperez@colorado.edu>
4828 4837
4829 4838 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4830 4839 history file for new users.
4831 4840 (make_IPython): fixed bug where initial install would leave the
4832 4841 user running in the .ipython dir.
4833 4842 (make_IPython): fixed bug where config dir .ipython would be
4834 4843 created regardless of the given -ipythondir option. Thanks to Cory
4835 4844 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4836 4845
4837 4846 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4838 4847 type confirmations. Will need to use it in all of IPython's code
4839 4848 consistently.
4840 4849
4841 4850 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4842 4851 context to print 31 lines instead of the default 5. This will make
4843 4852 the crash reports extremely detailed in case the problem is in
4844 4853 libraries I don't have access to.
4845 4854
4846 4855 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4847 4856 line of defense' code to still crash, but giving users fair
4848 4857 warning. I don't want internal errors to go unreported: if there's
4849 4858 an internal problem, IPython should crash and generate a full
4850 4859 report.
4851 4860
4852 4861 2002-11-08 Fernando Perez <fperez@colorado.edu>
4853 4862
4854 4863 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4855 4864 otherwise uncaught exceptions which can appear if people set
4856 4865 sys.stdout to something badly broken. Thanks to a crash report
4857 4866 from henni-AT-mail.brainbot.com.
4858 4867
4859 4868 2002-11-04 Fernando Perez <fperez@colorado.edu>
4860 4869
4861 4870 * IPython/iplib.py (InteractiveShell.interact): added
4862 4871 __IPYTHON__active to the builtins. It's a flag which goes on when
4863 4872 the interaction starts and goes off again when it stops. This
4864 4873 allows embedding code to detect being inside IPython. Before this
4865 4874 was done via __IPYTHON__, but that only shows that an IPython
4866 4875 instance has been created.
4867 4876
4868 4877 * IPython/Magic.py (Magic.magic_env): I realized that in a
4869 4878 UserDict, instance.data holds the data as a normal dict. So I
4870 4879 modified @env to return os.environ.data instead of rebuilding a
4871 4880 dict by hand.
4872 4881
4873 4882 2002-11-02 Fernando Perez <fperez@colorado.edu>
4874 4883
4875 4884 * IPython/genutils.py (warn): changed so that level 1 prints no
4876 4885 header. Level 2 is now the default (with 'WARNING' header, as
4877 4886 before). I think I tracked all places where changes were needed in
4878 4887 IPython, but outside code using the old level numbering may have
4879 4888 broken.
4880 4889
4881 4890 * IPython/iplib.py (InteractiveShell.runcode): added this to
4882 4891 handle the tracebacks in SystemExit traps correctly. The previous
4883 4892 code (through interact) was printing more of the stack than
4884 4893 necessary, showing IPython internal code to the user.
4885 4894
4886 4895 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4887 4896 default. Now that the default at the confirmation prompt is yes,
4888 4897 it's not so intrusive. François' argument that ipython sessions
4889 4898 tend to be complex enough not to lose them from an accidental C-d,
4890 4899 is a valid one.
4891 4900
4892 4901 * IPython/iplib.py (InteractiveShell.interact): added a
4893 4902 showtraceback() call to the SystemExit trap, and modified the exit
4894 4903 confirmation to have yes as the default.
4895 4904
4896 4905 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4897 4906 this file. It's been gone from the code for a long time, this was
4898 4907 simply leftover junk.
4899 4908
4900 4909 2002-11-01 Fernando Perez <fperez@colorado.edu>
4901 4910
4902 4911 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4903 4912 added. If set, IPython now traps EOF and asks for
4904 4913 confirmation. After a request by François Pinard.
4905 4914
4906 4915 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4907 4916 of @abort, and with a new (better) mechanism for handling the
4908 4917 exceptions.
4909 4918
4910 4919 2002-10-27 Fernando Perez <fperez@colorado.edu>
4911 4920
4912 4921 * IPython/usage.py (__doc__): updated the --help information and
4913 4922 the ipythonrc file to indicate that -log generates
4914 4923 ./ipython.log. Also fixed the corresponding info in @logstart.
4915 4924 This and several other fixes in the manuals thanks to reports by
4916 4925 François Pinard <pinard-AT-iro.umontreal.ca>.
4917 4926
4918 4927 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4919 4928 refer to @logstart (instead of @log, which doesn't exist).
4920 4929
4921 4930 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4922 4931 AttributeError crash. Thanks to Christopher Armstrong
4923 4932 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4924 4933 introduced recently (in 0.2.14pre37) with the fix to the eval
4925 4934 problem mentioned below.
4926 4935
4927 4936 2002-10-17 Fernando Perez <fperez@colorado.edu>
4928 4937
4929 4938 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4930 4939 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4931 4940
4932 4941 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4933 4942 this function to fix a problem reported by Alex Schmolck. He saw
4934 4943 it with list comprehensions and generators, which were getting
4935 4944 called twice. The real problem was an 'eval' call in testing for
4936 4945 automagic which was evaluating the input line silently.
4937 4946
4938 4947 This is a potentially very nasty bug, if the input has side
4939 4948 effects which must not be repeated. The code is much cleaner now,
4940 4949 without any blanket 'except' left and with a regexp test for
4941 4950 actual function names.
4942 4951
4943 4952 But an eval remains, which I'm not fully comfortable with. I just
4944 4953 don't know how to find out if an expression could be a callable in
4945 4954 the user's namespace without doing an eval on the string. However
4946 4955 that string is now much more strictly checked so that no code
4947 4956 slips by, so the eval should only happen for things that can
4948 4957 really be only function/method names.
4949 4958
4950 4959 2002-10-15 Fernando Perez <fperez@colorado.edu>
4951 4960
4952 4961 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4953 4962 OSX information to main manual, removed README_Mac_OSX file from
4954 4963 distribution. Also updated credits for recent additions.
4955 4964
4956 4965 2002-10-10 Fernando Perez <fperez@colorado.edu>
4957 4966
4958 4967 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4959 4968 terminal-related issues. Many thanks to Andrea Riciputi
4960 4969 <andrea.riciputi-AT-libero.it> for writing it.
4961 4970
4962 4971 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4963 4972 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4964 4973
4965 4974 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4966 4975 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4967 4976 <syver-en-AT-online.no> who both submitted patches for this problem.
4968 4977
4969 4978 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4970 4979 global embedding to make sure that things don't overwrite user
4971 4980 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4972 4981
4973 4982 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4974 4983 compatibility. Thanks to Hayden Callow
4975 4984 <h.callow-AT-elec.canterbury.ac.nz>
4976 4985
4977 4986 2002-10-04 Fernando Perez <fperez@colorado.edu>
4978 4987
4979 4988 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4980 4989 Gnuplot.File objects.
4981 4990
4982 4991 2002-07-23 Fernando Perez <fperez@colorado.edu>
4983 4992
4984 4993 * IPython/genutils.py (timing): Added timings() and timing() for
4985 4994 quick access to the most commonly needed data, the execution
4986 4995 times. Old timing() renamed to timings_out().
4987 4996
4988 4997 2002-07-18 Fernando Perez <fperez@colorado.edu>
4989 4998
4990 4999 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4991 5000 bug with nested instances disrupting the parent's tab completion.
4992 5001
4993 5002 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4994 5003 all_completions code to begin the emacs integration.
4995 5004
4996 5005 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4997 5006 argument to allow titling individual arrays when plotting.
4998 5007
4999 5008 2002-07-15 Fernando Perez <fperez@colorado.edu>
5000 5009
5001 5010 * setup.py (make_shortcut): changed to retrieve the value of
5002 5011 'Program Files' directory from the registry (this value changes in
5003 5012 non-english versions of Windows). Thanks to Thomas Fanslau
5004 5013 <tfanslau-AT-gmx.de> for the report.
5005 5014
5006 5015 2002-07-10 Fernando Perez <fperez@colorado.edu>
5007 5016
5008 5017 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5009 5018 a bug in pdb, which crashes if a line with only whitespace is
5010 5019 entered. Bug report submitted to sourceforge.
5011 5020
5012 5021 2002-07-09 Fernando Perez <fperez@colorado.edu>
5013 5022
5014 5023 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5015 5024 reporting exceptions (it's a bug in inspect.py, I just set a
5016 5025 workaround).
5017 5026
5018 5027 2002-07-08 Fernando Perez <fperez@colorado.edu>
5019 5028
5020 5029 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5021 5030 __IPYTHON__ in __builtins__ to show up in user_ns.
5022 5031
5023 5032 2002-07-03 Fernando Perez <fperez@colorado.edu>
5024 5033
5025 5034 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5026 5035 name from @gp_set_instance to @gp_set_default.
5027 5036
5028 5037 * IPython/ipmaker.py (make_IPython): default editor value set to
5029 5038 '0' (a string), to match the rc file. Otherwise will crash when
5030 5039 .strip() is called on it.
5031 5040
5032 5041
5033 5042 2002-06-28 Fernando Perez <fperez@colorado.edu>
5034 5043
5035 5044 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5036 5045 of files in current directory when a file is executed via
5037 5046 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5038 5047
5039 5048 * setup.py (manfiles): fix for rpm builds, submitted by RA
5040 5049 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5041 5050
5042 5051 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5043 5052 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5044 5053 string!). A. Schmolck caught this one.
5045 5054
5046 5055 2002-06-27 Fernando Perez <fperez@colorado.edu>
5047 5056
5048 5057 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5049 5058 defined files at the cmd line. __name__ wasn't being set to
5050 5059 __main__.
5051 5060
5052 5061 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5053 5062 regular lists and tuples besides Numeric arrays.
5054 5063
5055 5064 * IPython/Prompts.py (CachedOutput.__call__): Added output
5056 5065 supression for input ending with ';'. Similar to Mathematica and
5057 5066 Matlab. The _* vars and Out[] list are still updated, just like
5058 5067 Mathematica behaves.
5059 5068
5060 5069 2002-06-25 Fernando Perez <fperez@colorado.edu>
5061 5070
5062 5071 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5063 5072 .ini extensions for profiels under Windows.
5064 5073
5065 5074 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5066 5075 string form. Fix contributed by Alexander Schmolck
5067 5076 <a.schmolck-AT-gmx.net>
5068 5077
5069 5078 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5070 5079 pre-configured Gnuplot instance.
5071 5080
5072 5081 2002-06-21 Fernando Perez <fperez@colorado.edu>
5073 5082
5074 5083 * IPython/numutils.py (exp_safe): new function, works around the
5075 5084 underflow problems in Numeric.
5076 5085 (log2): New fn. Safe log in base 2: returns exact integer answer
5077 5086 for exact integer powers of 2.
5078 5087
5079 5088 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5080 5089 properly.
5081 5090
5082 5091 2002-06-20 Fernando Perez <fperez@colorado.edu>
5083 5092
5084 5093 * IPython/genutils.py (timing): new function like
5085 5094 Mathematica's. Similar to time_test, but returns more info.
5086 5095
5087 5096 2002-06-18 Fernando Perez <fperez@colorado.edu>
5088 5097
5089 5098 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5090 5099 according to Mike Heeter's suggestions.
5091 5100
5092 5101 2002-06-16 Fernando Perez <fperez@colorado.edu>
5093 5102
5094 5103 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5095 5104 system. GnuplotMagic is gone as a user-directory option. New files
5096 5105 make it easier to use all the gnuplot stuff both from external
5097 5106 programs as well as from IPython. Had to rewrite part of
5098 5107 hardcopy() b/c of a strange bug: often the ps files simply don't
5099 5108 get created, and require a repeat of the command (often several
5100 5109 times).
5101 5110
5102 5111 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5103 5112 resolve output channel at call time, so that if sys.stderr has
5104 5113 been redirected by user this gets honored.
5105 5114
5106 5115 2002-06-13 Fernando Perez <fperez@colorado.edu>
5107 5116
5108 5117 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5109 5118 IPShell. Kept a copy with the old names to avoid breaking people's
5110 5119 embedded code.
5111 5120
5112 5121 * IPython/ipython: simplified it to the bare minimum after
5113 5122 Holger's suggestions. Added info about how to use it in
5114 5123 PYTHONSTARTUP.
5115 5124
5116 5125 * IPython/Shell.py (IPythonShell): changed the options passing
5117 5126 from a string with funky %s replacements to a straight list. Maybe
5118 5127 a bit more typing, but it follows sys.argv conventions, so there's
5119 5128 less special-casing to remember.
5120 5129
5121 5130 2002-06-12 Fernando Perez <fperez@colorado.edu>
5122 5131
5123 5132 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5124 5133 command. Thanks to a suggestion by Mike Heeter.
5125 5134 (Magic.magic_pfile): added behavior to look at filenames if given
5126 5135 arg is not a defined object.
5127 5136 (Magic.magic_save): New @save function to save code snippets. Also
5128 5137 a Mike Heeter idea.
5129 5138
5130 5139 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5131 5140 plot() and replot(). Much more convenient now, especially for
5132 5141 interactive use.
5133 5142
5134 5143 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5135 5144 filenames.
5136 5145
5137 5146 2002-06-02 Fernando Perez <fperez@colorado.edu>
5138 5147
5139 5148 * IPython/Struct.py (Struct.__init__): modified to admit
5140 5149 initialization via another struct.
5141 5150
5142 5151 * IPython/genutils.py (SystemExec.__init__): New stateful
5143 5152 interface to xsys and bq. Useful for writing system scripts.
5144 5153
5145 5154 2002-05-30 Fernando Perez <fperez@colorado.edu>
5146 5155
5147 5156 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5148 5157 documents. This will make the user download smaller (it's getting
5149 5158 too big).
5150 5159
5151 5160 2002-05-29 Fernando Perez <fperez@colorado.edu>
5152 5161
5153 5162 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5154 5163 fix problems with shelve and pickle. Seems to work, but I don't
5155 5164 know if corner cases break it. Thanks to Mike Heeter
5156 5165 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5157 5166
5158 5167 2002-05-24 Fernando Perez <fperez@colorado.edu>
5159 5168
5160 5169 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5161 5170 macros having broken.
5162 5171
5163 5172 2002-05-21 Fernando Perez <fperez@colorado.edu>
5164 5173
5165 5174 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5166 5175 introduced logging bug: all history before logging started was
5167 5176 being written one character per line! This came from the redesign
5168 5177 of the input history as a special list which slices to strings,
5169 5178 not to lists.
5170 5179
5171 5180 2002-05-20 Fernando Perez <fperez@colorado.edu>
5172 5181
5173 5182 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5174 5183 be an attribute of all classes in this module. The design of these
5175 5184 classes needs some serious overhauling.
5176 5185
5177 5186 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5178 5187 which was ignoring '_' in option names.
5179 5188
5180 5189 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5181 5190 'Verbose_novars' to 'Context' and made it the new default. It's a
5182 5191 bit more readable and also safer than verbose.
5183 5192
5184 5193 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5185 5194 triple-quoted strings.
5186 5195
5187 5196 * IPython/OInspect.py (__all__): new module exposing the object
5188 5197 introspection facilities. Now the corresponding magics are dummy
5189 5198 wrappers around this. Having this module will make it much easier
5190 5199 to put these functions into our modified pdb.
5191 5200 This new object inspector system uses the new colorizing module,
5192 5201 so source code and other things are nicely syntax highlighted.
5193 5202
5194 5203 2002-05-18 Fernando Perez <fperez@colorado.edu>
5195 5204
5196 5205 * IPython/ColorANSI.py: Split the coloring tools into a separate
5197 5206 module so I can use them in other code easier (they were part of
5198 5207 ultraTB).
5199 5208
5200 5209 2002-05-17 Fernando Perez <fperez@colorado.edu>
5201 5210
5202 5211 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5203 5212 fixed it to set the global 'g' also to the called instance, as
5204 5213 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5205 5214 user's 'g' variables).
5206 5215
5207 5216 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5208 5217 global variables (aliases to _ih,_oh) so that users which expect
5209 5218 In[5] or Out[7] to work aren't unpleasantly surprised.
5210 5219 (InputList.__getslice__): new class to allow executing slices of
5211 5220 input history directly. Very simple class, complements the use of
5212 5221 macros.
5213 5222
5214 5223 2002-05-16 Fernando Perez <fperez@colorado.edu>
5215 5224
5216 5225 * setup.py (docdirbase): make doc directory be just doc/IPython
5217 5226 without version numbers, it will reduce clutter for users.
5218 5227
5219 5228 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5220 5229 execfile call to prevent possible memory leak. See for details:
5221 5230 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5222 5231
5223 5232 2002-05-15 Fernando Perez <fperez@colorado.edu>
5224 5233
5225 5234 * IPython/Magic.py (Magic.magic_psource): made the object
5226 5235 introspection names be more standard: pdoc, pdef, pfile and
5227 5236 psource. They all print/page their output, and it makes
5228 5237 remembering them easier. Kept old names for compatibility as
5229 5238 aliases.
5230 5239
5231 5240 2002-05-14 Fernando Perez <fperez@colorado.edu>
5232 5241
5233 5242 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5234 5243 what the mouse problem was. The trick is to use gnuplot with temp
5235 5244 files and NOT with pipes (for data communication), because having
5236 5245 both pipes and the mouse on is bad news.
5237 5246
5238 5247 2002-05-13 Fernando Perez <fperez@colorado.edu>
5239 5248
5240 5249 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5241 5250 bug. Information would be reported about builtins even when
5242 5251 user-defined functions overrode them.
5243 5252
5244 5253 2002-05-11 Fernando Perez <fperez@colorado.edu>
5245 5254
5246 5255 * IPython/__init__.py (__all__): removed FlexCompleter from
5247 5256 __all__ so that things don't fail in platforms without readline.
5248 5257
5249 5258 2002-05-10 Fernando Perez <fperez@colorado.edu>
5250 5259
5251 5260 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5252 5261 it requires Numeric, effectively making Numeric a dependency for
5253 5262 IPython.
5254 5263
5255 5264 * Released 0.2.13
5256 5265
5257 5266 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5258 5267 profiler interface. Now all the major options from the profiler
5259 5268 module are directly supported in IPython, both for single
5260 5269 expressions (@prun) and for full programs (@run -p).
5261 5270
5262 5271 2002-05-09 Fernando Perez <fperez@colorado.edu>
5263 5272
5264 5273 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5265 5274 magic properly formatted for screen.
5266 5275
5267 5276 * setup.py (make_shortcut): Changed things to put pdf version in
5268 5277 doc/ instead of doc/manual (had to change lyxport a bit).
5269 5278
5270 5279 * IPython/Magic.py (Profile.string_stats): made profile runs go
5271 5280 through pager (they are long and a pager allows searching, saving,
5272 5281 etc.)
5273 5282
5274 5283 2002-05-08 Fernando Perez <fperez@colorado.edu>
5275 5284
5276 5285 * Released 0.2.12
5277 5286
5278 5287 2002-05-06 Fernando Perez <fperez@colorado.edu>
5279 5288
5280 5289 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5281 5290 introduced); 'hist n1 n2' was broken.
5282 5291 (Magic.magic_pdb): added optional on/off arguments to @pdb
5283 5292 (Magic.magic_run): added option -i to @run, which executes code in
5284 5293 the IPython namespace instead of a clean one. Also added @irun as
5285 5294 an alias to @run -i.
5286 5295
5287 5296 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5288 5297 fixed (it didn't really do anything, the namespaces were wrong).
5289 5298
5290 5299 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5291 5300
5292 5301 * IPython/__init__.py (__all__): Fixed package namespace, now
5293 5302 'import IPython' does give access to IPython.<all> as
5294 5303 expected. Also renamed __release__ to Release.
5295 5304
5296 5305 * IPython/Debugger.py (__license__): created new Pdb class which
5297 5306 functions like a drop-in for the normal pdb.Pdb but does NOT
5298 5307 import readline by default. This way it doesn't muck up IPython's
5299 5308 readline handling, and now tab-completion finally works in the
5300 5309 debugger -- sort of. It completes things globally visible, but the
5301 5310 completer doesn't track the stack as pdb walks it. That's a bit
5302 5311 tricky, and I'll have to implement it later.
5303 5312
5304 5313 2002-05-05 Fernando Perez <fperez@colorado.edu>
5305 5314
5306 5315 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5307 5316 magic docstrings when printed via ? (explicit \'s were being
5308 5317 printed).
5309 5318
5310 5319 * IPython/ipmaker.py (make_IPython): fixed namespace
5311 5320 identification bug. Now variables loaded via logs or command-line
5312 5321 files are recognized in the interactive namespace by @who.
5313 5322
5314 5323 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5315 5324 log replay system stemming from the string form of Structs.
5316 5325
5317 5326 * IPython/Magic.py (Macro.__init__): improved macros to properly
5318 5327 handle magic commands in them.
5319 5328 (Magic.magic_logstart): usernames are now expanded so 'logstart
5320 5329 ~/mylog' now works.
5321 5330
5322 5331 * IPython/iplib.py (complete): fixed bug where paths starting with
5323 5332 '/' would be completed as magic names.
5324 5333
5325 5334 2002-05-04 Fernando Perez <fperez@colorado.edu>
5326 5335
5327 5336 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5328 5337 allow running full programs under the profiler's control.
5329 5338
5330 5339 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5331 5340 mode to report exceptions verbosely but without formatting
5332 5341 variables. This addresses the issue of ipython 'freezing' (it's
5333 5342 not frozen, but caught in an expensive formatting loop) when huge
5334 5343 variables are in the context of an exception.
5335 5344 (VerboseTB.text): Added '--->' markers at line where exception was
5336 5345 triggered. Much clearer to read, especially in NoColor modes.
5337 5346
5338 5347 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5339 5348 implemented in reverse when changing to the new parse_options().
5340 5349
5341 5350 2002-05-03 Fernando Perez <fperez@colorado.edu>
5342 5351
5343 5352 * IPython/Magic.py (Magic.parse_options): new function so that
5344 5353 magics can parse options easier.
5345 5354 (Magic.magic_prun): new function similar to profile.run(),
5346 5355 suggested by Chris Hart.
5347 5356 (Magic.magic_cd): fixed behavior so that it only changes if
5348 5357 directory actually is in history.
5349 5358
5350 5359 * IPython/usage.py (__doc__): added information about potential
5351 5360 slowness of Verbose exception mode when there are huge data
5352 5361 structures to be formatted (thanks to Archie Paulson).
5353 5362
5354 5363 * IPython/ipmaker.py (make_IPython): Changed default logging
5355 5364 (when simply called with -log) to use curr_dir/ipython.log in
5356 5365 rotate mode. Fixed crash which was occuring with -log before
5357 5366 (thanks to Jim Boyle).
5358 5367
5359 5368 2002-05-01 Fernando Perez <fperez@colorado.edu>
5360 5369
5361 5370 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5362 5371 was nasty -- though somewhat of a corner case).
5363 5372
5364 5373 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5365 5374 text (was a bug).
5366 5375
5367 5376 2002-04-30 Fernando Perez <fperez@colorado.edu>
5368 5377
5369 5378 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5370 5379 a print after ^D or ^C from the user so that the In[] prompt
5371 5380 doesn't over-run the gnuplot one.
5372 5381
5373 5382 2002-04-29 Fernando Perez <fperez@colorado.edu>
5374 5383
5375 5384 * Released 0.2.10
5376 5385
5377 5386 * IPython/__release__.py (version): get date dynamically.
5378 5387
5379 5388 * Misc. documentation updates thanks to Arnd's comments. Also ran
5380 5389 a full spellcheck on the manual (hadn't been done in a while).
5381 5390
5382 5391 2002-04-27 Fernando Perez <fperez@colorado.edu>
5383 5392
5384 5393 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5385 5394 starting a log in mid-session would reset the input history list.
5386 5395
5387 5396 2002-04-26 Fernando Perez <fperez@colorado.edu>
5388 5397
5389 5398 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5390 5399 all files were being included in an update. Now anything in
5391 5400 UserConfig that matches [A-Za-z]*.py will go (this excludes
5392 5401 __init__.py)
5393 5402
5394 5403 2002-04-25 Fernando Perez <fperez@colorado.edu>
5395 5404
5396 5405 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5397 5406 to __builtins__ so that any form of embedded or imported code can
5398 5407 test for being inside IPython.
5399 5408
5400 5409 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5401 5410 changed to GnuplotMagic because it's now an importable module,
5402 5411 this makes the name follow that of the standard Gnuplot module.
5403 5412 GnuplotMagic can now be loaded at any time in mid-session.
5404 5413
5405 5414 2002-04-24 Fernando Perez <fperez@colorado.edu>
5406 5415
5407 5416 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5408 5417 the globals (IPython has its own namespace) and the
5409 5418 PhysicalQuantity stuff is much better anyway.
5410 5419
5411 5420 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5412 5421 embedding example to standard user directory for
5413 5422 distribution. Also put it in the manual.
5414 5423
5415 5424 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5416 5425 instance as first argument (so it doesn't rely on some obscure
5417 5426 hidden global).
5418 5427
5419 5428 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5420 5429 delimiters. While it prevents ().TAB from working, it allows
5421 5430 completions in open (... expressions. This is by far a more common
5422 5431 case.
5423 5432
5424 5433 2002-04-23 Fernando Perez <fperez@colorado.edu>
5425 5434
5426 5435 * IPython/Extensions/InterpreterPasteInput.py: new
5427 5436 syntax-processing module for pasting lines with >>> or ... at the
5428 5437 start.
5429 5438
5430 5439 * IPython/Extensions/PhysicalQ_Interactive.py
5431 5440 (PhysicalQuantityInteractive.__int__): fixed to work with either
5432 5441 Numeric or math.
5433 5442
5434 5443 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5435 5444 provided profiles. Now we have:
5436 5445 -math -> math module as * and cmath with its own namespace.
5437 5446 -numeric -> Numeric as *, plus gnuplot & grace
5438 5447 -physics -> same as before
5439 5448
5440 5449 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5441 5450 user-defined magics wouldn't be found by @magic if they were
5442 5451 defined as class methods. Also cleaned up the namespace search
5443 5452 logic and the string building (to use %s instead of many repeated
5444 5453 string adds).
5445 5454
5446 5455 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5447 5456 of user-defined magics to operate with class methods (cleaner, in
5448 5457 line with the gnuplot code).
5449 5458
5450 5459 2002-04-22 Fernando Perez <fperez@colorado.edu>
5451 5460
5452 5461 * setup.py: updated dependency list so that manual is updated when
5453 5462 all included files change.
5454 5463
5455 5464 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5456 5465 the delimiter removal option (the fix is ugly right now).
5457 5466
5458 5467 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5459 5468 all of the math profile (quicker loading, no conflict between
5460 5469 g-9.8 and g-gnuplot).
5461 5470
5462 5471 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5463 5472 name of post-mortem files to IPython_crash_report.txt.
5464 5473
5465 5474 * Cleanup/update of the docs. Added all the new readline info and
5466 5475 formatted all lists as 'real lists'.
5467 5476
5468 5477 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5469 5478 tab-completion options, since the full readline parse_and_bind is
5470 5479 now accessible.
5471 5480
5472 5481 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5473 5482 handling of readline options. Now users can specify any string to
5474 5483 be passed to parse_and_bind(), as well as the delimiters to be
5475 5484 removed.
5476 5485 (InteractiveShell.__init__): Added __name__ to the global
5477 5486 namespace so that things like Itpl which rely on its existence
5478 5487 don't crash.
5479 5488 (InteractiveShell._prefilter): Defined the default with a _ so
5480 5489 that prefilter() is easier to override, while the default one
5481 5490 remains available.
5482 5491
5483 5492 2002-04-18 Fernando Perez <fperez@colorado.edu>
5484 5493
5485 5494 * Added information about pdb in the docs.
5486 5495
5487 5496 2002-04-17 Fernando Perez <fperez@colorado.edu>
5488 5497
5489 5498 * IPython/ipmaker.py (make_IPython): added rc_override option to
5490 5499 allow passing config options at creation time which may override
5491 5500 anything set in the config files or command line. This is
5492 5501 particularly useful for configuring embedded instances.
5493 5502
5494 5503 2002-04-15 Fernando Perez <fperez@colorado.edu>
5495 5504
5496 5505 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5497 5506 crash embedded instances because of the input cache falling out of
5498 5507 sync with the output counter.
5499 5508
5500 5509 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5501 5510 mode which calls pdb after an uncaught exception in IPython itself.
5502 5511
5503 5512 2002-04-14 Fernando Perez <fperez@colorado.edu>
5504 5513
5505 5514 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5506 5515 readline, fix it back after each call.
5507 5516
5508 5517 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5509 5518 method to force all access via __call__(), which guarantees that
5510 5519 traceback references are properly deleted.
5511 5520
5512 5521 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5513 5522 improve printing when pprint is in use.
5514 5523
5515 5524 2002-04-13 Fernando Perez <fperez@colorado.edu>
5516 5525
5517 5526 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5518 5527 exceptions aren't caught anymore. If the user triggers one, he
5519 5528 should know why he's doing it and it should go all the way up,
5520 5529 just like any other exception. So now @abort will fully kill the
5521 5530 embedded interpreter and the embedding code (unless that happens
5522 5531 to catch SystemExit).
5523 5532
5524 5533 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5525 5534 and a debugger() method to invoke the interactive pdb debugger
5526 5535 after printing exception information. Also added the corresponding
5527 5536 -pdb option and @pdb magic to control this feature, and updated
5528 5537 the docs. After a suggestion from Christopher Hart
5529 5538 (hart-AT-caltech.edu).
5530 5539
5531 5540 2002-04-12 Fernando Perez <fperez@colorado.edu>
5532 5541
5533 5542 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5534 5543 the exception handlers defined by the user (not the CrashHandler)
5535 5544 so that user exceptions don't trigger an ipython bug report.
5536 5545
5537 5546 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5538 5547 configurable (it should have always been so).
5539 5548
5540 5549 2002-03-26 Fernando Perez <fperez@colorado.edu>
5541 5550
5542 5551 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5543 5552 and there to fix embedding namespace issues. This should all be
5544 5553 done in a more elegant way.
5545 5554
5546 5555 2002-03-25 Fernando Perez <fperez@colorado.edu>
5547 5556
5548 5557 * IPython/genutils.py (get_home_dir): Try to make it work under
5549 5558 win9x also.
5550 5559
5551 5560 2002-03-20 Fernando Perez <fperez@colorado.edu>
5552 5561
5553 5562 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5554 5563 sys.displayhook untouched upon __init__.
5555 5564
5556 5565 2002-03-19 Fernando Perez <fperez@colorado.edu>
5557 5566
5558 5567 * Released 0.2.9 (for embedding bug, basically).
5559 5568
5560 5569 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5561 5570 exceptions so that enclosing shell's state can be restored.
5562 5571
5563 5572 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5564 5573 naming conventions in the .ipython/ dir.
5565 5574
5566 5575 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5567 5576 from delimiters list so filenames with - in them get expanded.
5568 5577
5569 5578 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5570 5579 sys.displayhook not being properly restored after an embedded call.
5571 5580
5572 5581 2002-03-18 Fernando Perez <fperez@colorado.edu>
5573 5582
5574 5583 * Released 0.2.8
5575 5584
5576 5585 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5577 5586 some files weren't being included in a -upgrade.
5578 5587 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5579 5588 on' so that the first tab completes.
5580 5589 (InteractiveShell.handle_magic): fixed bug with spaces around
5581 5590 quotes breaking many magic commands.
5582 5591
5583 5592 * setup.py: added note about ignoring the syntax error messages at
5584 5593 installation.
5585 5594
5586 5595 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5587 5596 streamlining the gnuplot interface, now there's only one magic @gp.
5588 5597
5589 5598 2002-03-17 Fernando Perez <fperez@colorado.edu>
5590 5599
5591 5600 * IPython/UserConfig/magic_gnuplot.py: new name for the
5592 5601 example-magic_pm.py file. Much enhanced system, now with a shell
5593 5602 for communicating directly with gnuplot, one command at a time.
5594 5603
5595 5604 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5596 5605 setting __name__=='__main__'.
5597 5606
5598 5607 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5599 5608 mini-shell for accessing gnuplot from inside ipython. Should
5600 5609 extend it later for grace access too. Inspired by Arnd's
5601 5610 suggestion.
5602 5611
5603 5612 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5604 5613 calling magic functions with () in their arguments. Thanks to Arnd
5605 5614 Baecker for pointing this to me.
5606 5615
5607 5616 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5608 5617 infinitely for integer or complex arrays (only worked with floats).
5609 5618
5610 5619 2002-03-16 Fernando Perez <fperez@colorado.edu>
5611 5620
5612 5621 * setup.py: Merged setup and setup_windows into a single script
5613 5622 which properly handles things for windows users.
5614 5623
5615 5624 2002-03-15 Fernando Perez <fperez@colorado.edu>
5616 5625
5617 5626 * Big change to the manual: now the magics are all automatically
5618 5627 documented. This information is generated from their docstrings
5619 5628 and put in a latex file included by the manual lyx file. This way
5620 5629 we get always up to date information for the magics. The manual
5621 5630 now also has proper version information, also auto-synced.
5622 5631
5623 5632 For this to work, an undocumented --magic_docstrings option was added.
5624 5633
5625 5634 2002-03-13 Fernando Perez <fperez@colorado.edu>
5626 5635
5627 5636 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5628 5637 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5629 5638
5630 5639 2002-03-12 Fernando Perez <fperez@colorado.edu>
5631 5640
5632 5641 * IPython/ultraTB.py (TermColors): changed color escapes again to
5633 5642 fix the (old, reintroduced) line-wrapping bug. Basically, if
5634 5643 \001..\002 aren't given in the color escapes, lines get wrapped
5635 5644 weirdly. But giving those screws up old xterms and emacs terms. So
5636 5645 I added some logic for emacs terms to be ok, but I can't identify old
5637 5646 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5638 5647
5639 5648 2002-03-10 Fernando Perez <fperez@colorado.edu>
5640 5649
5641 5650 * IPython/usage.py (__doc__): Various documentation cleanups and
5642 5651 updates, both in usage docstrings and in the manual.
5643 5652
5644 5653 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5645 5654 handling of caching. Set minimum acceptabe value for having a
5646 5655 cache at 20 values.
5647 5656
5648 5657 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5649 5658 install_first_time function to a method, renamed it and added an
5650 5659 'upgrade' mode. Now people can update their config directory with
5651 5660 a simple command line switch (-upgrade, also new).
5652 5661
5653 5662 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5654 5663 @file (convenient for automagic users under Python >= 2.2).
5655 5664 Removed @files (it seemed more like a plural than an abbrev. of
5656 5665 'file show').
5657 5666
5658 5667 * IPython/iplib.py (install_first_time): Fixed crash if there were
5659 5668 backup files ('~') in .ipython/ install directory.
5660 5669
5661 5670 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5662 5671 system. Things look fine, but these changes are fairly
5663 5672 intrusive. Test them for a few days.
5664 5673
5665 5674 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5666 5675 the prompts system. Now all in/out prompt strings are user
5667 5676 controllable. This is particularly useful for embedding, as one
5668 5677 can tag embedded instances with particular prompts.
5669 5678
5670 5679 Also removed global use of sys.ps1/2, which now allows nested
5671 5680 embeddings without any problems. Added command-line options for
5672 5681 the prompt strings.
5673 5682
5674 5683 2002-03-08 Fernando Perez <fperez@colorado.edu>
5675 5684
5676 5685 * IPython/UserConfig/example-embed-short.py (ipshell): added
5677 5686 example file with the bare minimum code for embedding.
5678 5687
5679 5688 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5680 5689 functionality for the embeddable shell to be activated/deactivated
5681 5690 either globally or at each call.
5682 5691
5683 5692 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5684 5693 rewriting the prompt with '--->' for auto-inputs with proper
5685 5694 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5686 5695 this is handled by the prompts class itself, as it should.
5687 5696
5688 5697 2002-03-05 Fernando Perez <fperez@colorado.edu>
5689 5698
5690 5699 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5691 5700 @logstart to avoid name clashes with the math log function.
5692 5701
5693 5702 * Big updates to X/Emacs section of the manual.
5694 5703
5695 5704 * Removed ipython_emacs. Milan explained to me how to pass
5696 5705 arguments to ipython through Emacs. Some day I'm going to end up
5697 5706 learning some lisp...
5698 5707
5699 5708 2002-03-04 Fernando Perez <fperez@colorado.edu>
5700 5709
5701 5710 * IPython/ipython_emacs: Created script to be used as the
5702 5711 py-python-command Emacs variable so we can pass IPython
5703 5712 parameters. I can't figure out how to tell Emacs directly to pass
5704 5713 parameters to IPython, so a dummy shell script will do it.
5705 5714
5706 5715 Other enhancements made for things to work better under Emacs'
5707 5716 various types of terminals. Many thanks to Milan Zamazal
5708 5717 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5709 5718
5710 5719 2002-03-01 Fernando Perez <fperez@colorado.edu>
5711 5720
5712 5721 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5713 5722 that loading of readline is now optional. This gives better
5714 5723 control to emacs users.
5715 5724
5716 5725 * IPython/ultraTB.py (__date__): Modified color escape sequences
5717 5726 and now things work fine under xterm and in Emacs' term buffers
5718 5727 (though not shell ones). Well, in emacs you get colors, but all
5719 5728 seem to be 'light' colors (no difference between dark and light
5720 5729 ones). But the garbage chars are gone, and also in xterms. It
5721 5730 seems that now I'm using 'cleaner' ansi sequences.
5722 5731
5723 5732 2002-02-21 Fernando Perez <fperez@colorado.edu>
5724 5733
5725 5734 * Released 0.2.7 (mainly to publish the scoping fix).
5726 5735
5727 5736 * IPython/Logger.py (Logger.logstate): added. A corresponding
5728 5737 @logstate magic was created.
5729 5738
5730 5739 * IPython/Magic.py: fixed nested scoping problem under Python
5731 5740 2.1.x (automagic wasn't working).
5732 5741
5733 5742 2002-02-20 Fernando Perez <fperez@colorado.edu>
5734 5743
5735 5744 * Released 0.2.6.
5736 5745
5737 5746 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5738 5747 option so that logs can come out without any headers at all.
5739 5748
5740 5749 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5741 5750 SciPy.
5742 5751
5743 5752 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5744 5753 that embedded IPython calls don't require vars() to be explicitly
5745 5754 passed. Now they are extracted from the caller's frame (code
5746 5755 snatched from Eric Jones' weave). Added better documentation to
5747 5756 the section on embedding and the example file.
5748 5757
5749 5758 * IPython/genutils.py (page): Changed so that under emacs, it just
5750 5759 prints the string. You can then page up and down in the emacs
5751 5760 buffer itself. This is how the builtin help() works.
5752 5761
5753 5762 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5754 5763 macro scoping: macros need to be executed in the user's namespace
5755 5764 to work as if they had been typed by the user.
5756 5765
5757 5766 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5758 5767 execute automatically (no need to type 'exec...'). They then
5759 5768 behave like 'true macros'. The printing system was also modified
5760 5769 for this to work.
5761 5770
5762 5771 2002-02-19 Fernando Perez <fperez@colorado.edu>
5763 5772
5764 5773 * IPython/genutils.py (page_file): new function for paging files
5765 5774 in an OS-independent way. Also necessary for file viewing to work
5766 5775 well inside Emacs buffers.
5767 5776 (page): Added checks for being in an emacs buffer.
5768 5777 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5769 5778 same bug in iplib.
5770 5779
5771 5780 2002-02-18 Fernando Perez <fperez@colorado.edu>
5772 5781
5773 5782 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5774 5783 of readline so that IPython can work inside an Emacs buffer.
5775 5784
5776 5785 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5777 5786 method signatures (they weren't really bugs, but it looks cleaner
5778 5787 and keeps PyChecker happy).
5779 5788
5780 5789 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5781 5790 for implementing various user-defined hooks. Currently only
5782 5791 display is done.
5783 5792
5784 5793 * IPython/Prompts.py (CachedOutput._display): changed display
5785 5794 functions so that they can be dynamically changed by users easily.
5786 5795
5787 5796 * IPython/Extensions/numeric_formats.py (num_display): added an
5788 5797 extension for printing NumPy arrays in flexible manners. It
5789 5798 doesn't do anything yet, but all the structure is in
5790 5799 place. Ultimately the plan is to implement output format control
5791 5800 like in Octave.
5792 5801
5793 5802 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5794 5803 methods are found at run-time by all the automatic machinery.
5795 5804
5796 5805 2002-02-17 Fernando Perez <fperez@colorado.edu>
5797 5806
5798 5807 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5799 5808 whole file a little.
5800 5809
5801 5810 * ToDo: closed this document. Now there's a new_design.lyx
5802 5811 document for all new ideas. Added making a pdf of it for the
5803 5812 end-user distro.
5804 5813
5805 5814 * IPython/Logger.py (Logger.switch_log): Created this to replace
5806 5815 logon() and logoff(). It also fixes a nasty crash reported by
5807 5816 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5808 5817
5809 5818 * IPython/iplib.py (complete): got auto-completion to work with
5810 5819 automagic (I had wanted this for a long time).
5811 5820
5812 5821 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5813 5822 to @file, since file() is now a builtin and clashes with automagic
5814 5823 for @file.
5815 5824
5816 5825 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5817 5826 of this was previously in iplib, which had grown to more than 2000
5818 5827 lines, way too long. No new functionality, but it makes managing
5819 5828 the code a bit easier.
5820 5829
5821 5830 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5822 5831 information to crash reports.
5823 5832
5824 5833 2002-02-12 Fernando Perez <fperez@colorado.edu>
5825 5834
5826 5835 * Released 0.2.5.
5827 5836
5828 5837 2002-02-11 Fernando Perez <fperez@colorado.edu>
5829 5838
5830 5839 * Wrote a relatively complete Windows installer. It puts
5831 5840 everything in place, creates Start Menu entries and fixes the
5832 5841 color issues. Nothing fancy, but it works.
5833 5842
5834 5843 2002-02-10 Fernando Perez <fperez@colorado.edu>
5835 5844
5836 5845 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5837 5846 os.path.expanduser() call so that we can type @run ~/myfile.py and
5838 5847 have thigs work as expected.
5839 5848
5840 5849 * IPython/genutils.py (page): fixed exception handling so things
5841 5850 work both in Unix and Windows correctly. Quitting a pager triggers
5842 5851 an IOError/broken pipe in Unix, and in windows not finding a pager
5843 5852 is also an IOError, so I had to actually look at the return value
5844 5853 of the exception, not just the exception itself. Should be ok now.
5845 5854
5846 5855 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5847 5856 modified to allow case-insensitive color scheme changes.
5848 5857
5849 5858 2002-02-09 Fernando Perez <fperez@colorado.edu>
5850 5859
5851 5860 * IPython/genutils.py (native_line_ends): new function to leave
5852 5861 user config files with os-native line-endings.
5853 5862
5854 5863 * README and manual updates.
5855 5864
5856 5865 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5857 5866 instead of StringType to catch Unicode strings.
5858 5867
5859 5868 * IPython/genutils.py (filefind): fixed bug for paths with
5860 5869 embedded spaces (very common in Windows).
5861 5870
5862 5871 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5863 5872 files under Windows, so that they get automatically associated
5864 5873 with a text editor. Windows makes it a pain to handle
5865 5874 extension-less files.
5866 5875
5867 5876 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5868 5877 warning about readline only occur for Posix. In Windows there's no
5869 5878 way to get readline, so why bother with the warning.
5870 5879
5871 5880 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5872 5881 for __str__ instead of dir(self), since dir() changed in 2.2.
5873 5882
5874 5883 * Ported to Windows! Tested on XP, I suspect it should work fine
5875 5884 on NT/2000, but I don't think it will work on 98 et al. That
5876 5885 series of Windows is such a piece of junk anyway that I won't try
5877 5886 porting it there. The XP port was straightforward, showed a few
5878 5887 bugs here and there (fixed all), in particular some string
5879 5888 handling stuff which required considering Unicode strings (which
5880 5889 Windows uses). This is good, but hasn't been too tested :) No
5881 5890 fancy installer yet, I'll put a note in the manual so people at
5882 5891 least make manually a shortcut.
5883 5892
5884 5893 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5885 5894 into a single one, "colors". This now controls both prompt and
5886 5895 exception color schemes, and can be changed both at startup
5887 5896 (either via command-line switches or via ipythonrc files) and at
5888 5897 runtime, with @colors.
5889 5898 (Magic.magic_run): renamed @prun to @run and removed the old
5890 5899 @run. The two were too similar to warrant keeping both.
5891 5900
5892 5901 2002-02-03 Fernando Perez <fperez@colorado.edu>
5893 5902
5894 5903 * IPython/iplib.py (install_first_time): Added comment on how to
5895 5904 configure the color options for first-time users. Put a <return>
5896 5905 request at the end so that small-terminal users get a chance to
5897 5906 read the startup info.
5898 5907
5899 5908 2002-01-23 Fernando Perez <fperez@colorado.edu>
5900 5909
5901 5910 * IPython/iplib.py (CachedOutput.update): Changed output memory
5902 5911 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5903 5912 input history we still use _i. Did this b/c these variable are
5904 5913 very commonly used in interactive work, so the less we need to
5905 5914 type the better off we are.
5906 5915 (Magic.magic_prun): updated @prun to better handle the namespaces
5907 5916 the file will run in, including a fix for __name__ not being set
5908 5917 before.
5909 5918
5910 5919 2002-01-20 Fernando Perez <fperez@colorado.edu>
5911 5920
5912 5921 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5913 5922 extra garbage for Python 2.2. Need to look more carefully into
5914 5923 this later.
5915 5924
5916 5925 2002-01-19 Fernando Perez <fperez@colorado.edu>
5917 5926
5918 5927 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5919 5928 display SyntaxError exceptions properly formatted when they occur
5920 5929 (they can be triggered by imported code).
5921 5930
5922 5931 2002-01-18 Fernando Perez <fperez@colorado.edu>
5923 5932
5924 5933 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5925 5934 SyntaxError exceptions are reported nicely formatted, instead of
5926 5935 spitting out only offset information as before.
5927 5936 (Magic.magic_prun): Added the @prun function for executing
5928 5937 programs with command line args inside IPython.
5929 5938
5930 5939 2002-01-16 Fernando Perez <fperez@colorado.edu>
5931 5940
5932 5941 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5933 5942 to *not* include the last item given in a range. This brings their
5934 5943 behavior in line with Python's slicing:
5935 5944 a[n1:n2] -> a[n1]...a[n2-1]
5936 5945 It may be a bit less convenient, but I prefer to stick to Python's
5937 5946 conventions *everywhere*, so users never have to wonder.
5938 5947 (Magic.magic_macro): Added @macro function to ease the creation of
5939 5948 macros.
5940 5949
5941 5950 2002-01-05 Fernando Perez <fperez@colorado.edu>
5942 5951
5943 5952 * Released 0.2.4.
5944 5953
5945 5954 * IPython/iplib.py (Magic.magic_pdef):
5946 5955 (InteractiveShell.safe_execfile): report magic lines and error
5947 5956 lines without line numbers so one can easily copy/paste them for
5948 5957 re-execution.
5949 5958
5950 5959 * Updated manual with recent changes.
5951 5960
5952 5961 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5953 5962 docstring printing when class? is called. Very handy for knowing
5954 5963 how to create class instances (as long as __init__ is well
5955 5964 documented, of course :)
5956 5965 (Magic.magic_doc): print both class and constructor docstrings.
5957 5966 (Magic.magic_pdef): give constructor info if passed a class and
5958 5967 __call__ info for callable object instances.
5959 5968
5960 5969 2002-01-04 Fernando Perez <fperez@colorado.edu>
5961 5970
5962 5971 * Made deep_reload() off by default. It doesn't always work
5963 5972 exactly as intended, so it's probably safer to have it off. It's
5964 5973 still available as dreload() anyway, so nothing is lost.
5965 5974
5966 5975 2002-01-02 Fernando Perez <fperez@colorado.edu>
5967 5976
5968 5977 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5969 5978 so I wanted an updated release).
5970 5979
5971 5980 2001-12-27 Fernando Perez <fperez@colorado.edu>
5972 5981
5973 5982 * IPython/iplib.py (InteractiveShell.interact): Added the original
5974 5983 code from 'code.py' for this module in order to change the
5975 5984 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5976 5985 the history cache would break when the user hit Ctrl-C, and
5977 5986 interact() offers no way to add any hooks to it.
5978 5987
5979 5988 2001-12-23 Fernando Perez <fperez@colorado.edu>
5980 5989
5981 5990 * setup.py: added check for 'MANIFEST' before trying to remove
5982 5991 it. Thanks to Sean Reifschneider.
5983 5992
5984 5993 2001-12-22 Fernando Perez <fperez@colorado.edu>
5985 5994
5986 5995 * Released 0.2.2.
5987 5996
5988 5997 * Finished (reasonably) writing the manual. Later will add the
5989 5998 python-standard navigation stylesheets, but for the time being
5990 5999 it's fairly complete. Distribution will include html and pdf
5991 6000 versions.
5992 6001
5993 6002 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5994 6003 (MayaVi author).
5995 6004
5996 6005 2001-12-21 Fernando Perez <fperez@colorado.edu>
5997 6006
5998 6007 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5999 6008 good public release, I think (with the manual and the distutils
6000 6009 installer). The manual can use some work, but that can go
6001 6010 slowly. Otherwise I think it's quite nice for end users. Next
6002 6011 summer, rewrite the guts of it...
6003 6012
6004 6013 * Changed format of ipythonrc files to use whitespace as the
6005 6014 separator instead of an explicit '='. Cleaner.
6006 6015
6007 6016 2001-12-20 Fernando Perez <fperez@colorado.edu>
6008 6017
6009 6018 * Started a manual in LyX. For now it's just a quick merge of the
6010 6019 various internal docstrings and READMEs. Later it may grow into a
6011 6020 nice, full-blown manual.
6012 6021
6013 6022 * Set up a distutils based installer. Installation should now be
6014 6023 trivially simple for end-users.
6015 6024
6016 6025 2001-12-11 Fernando Perez <fperez@colorado.edu>
6017 6026
6018 6027 * Released 0.2.0. First public release, announced it at
6019 6028 comp.lang.python. From now on, just bugfixes...
6020 6029
6021 6030 * Went through all the files, set copyright/license notices and
6022 6031 cleaned up things. Ready for release.
6023 6032
6024 6033 2001-12-10 Fernando Perez <fperez@colorado.edu>
6025 6034
6026 6035 * Changed the first-time installer not to use tarfiles. It's more
6027 6036 robust now and less unix-dependent. Also makes it easier for
6028 6037 people to later upgrade versions.
6029 6038
6030 6039 * Changed @exit to @abort to reflect the fact that it's pretty
6031 6040 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6032 6041 becomes significant only when IPyhton is embedded: in that case,
6033 6042 C-D closes IPython only, but @abort kills the enclosing program
6034 6043 too (unless it had called IPython inside a try catching
6035 6044 SystemExit).
6036 6045
6037 6046 * Created Shell module which exposes the actuall IPython Shell
6038 6047 classes, currently the normal and the embeddable one. This at
6039 6048 least offers a stable interface we won't need to change when
6040 6049 (later) the internals are rewritten. That rewrite will be confined
6041 6050 to iplib and ipmaker, but the Shell interface should remain as is.
6042 6051
6043 6052 * Added embed module which offers an embeddable IPShell object,
6044 6053 useful to fire up IPython *inside* a running program. Great for
6045 6054 debugging or dynamical data analysis.
6046 6055
6047 6056 2001-12-08 Fernando Perez <fperez@colorado.edu>
6048 6057
6049 6058 * Fixed small bug preventing seeing info from methods of defined
6050 6059 objects (incorrect namespace in _ofind()).
6051 6060
6052 6061 * Documentation cleanup. Moved the main usage docstrings to a
6053 6062 separate file, usage.py (cleaner to maintain, and hopefully in the
6054 6063 future some perlpod-like way of producing interactive, man and
6055 6064 html docs out of it will be found).
6056 6065
6057 6066 * Added @profile to see your profile at any time.
6058 6067
6059 6068 * Added @p as an alias for 'print'. It's especially convenient if
6060 6069 using automagic ('p x' prints x).
6061 6070
6062 6071 * Small cleanups and fixes after a pychecker run.
6063 6072
6064 6073 * Changed the @cd command to handle @cd - and @cd -<n> for
6065 6074 visiting any directory in _dh.
6066 6075
6067 6076 * Introduced _dh, a history of visited directories. @dhist prints
6068 6077 it out with numbers.
6069 6078
6070 6079 2001-12-07 Fernando Perez <fperez@colorado.edu>
6071 6080
6072 6081 * Released 0.1.22
6073 6082
6074 6083 * Made initialization a bit more robust against invalid color
6075 6084 options in user input (exit, not traceback-crash).
6076 6085
6077 6086 * Changed the bug crash reporter to write the report only in the
6078 6087 user's .ipython directory. That way IPython won't litter people's
6079 6088 hard disks with crash files all over the place. Also print on
6080 6089 screen the necessary mail command.
6081 6090
6082 6091 * With the new ultraTB, implemented LightBG color scheme for light
6083 6092 background terminals. A lot of people like white backgrounds, so I
6084 6093 guess we should at least give them something readable.
6085 6094
6086 6095 2001-12-06 Fernando Perez <fperez@colorado.edu>
6087 6096
6088 6097 * Modified the structure of ultraTB. Now there's a proper class
6089 6098 for tables of color schemes which allow adding schemes easily and
6090 6099 switching the active scheme without creating a new instance every
6091 6100 time (which was ridiculous). The syntax for creating new schemes
6092 6101 is also cleaner. I think ultraTB is finally done, with a clean
6093 6102 class structure. Names are also much cleaner (now there's proper
6094 6103 color tables, no need for every variable to also have 'color' in
6095 6104 its name).
6096 6105
6097 6106 * Broke down genutils into separate files. Now genutils only
6098 6107 contains utility functions, and classes have been moved to their
6099 6108 own files (they had enough independent functionality to warrant
6100 6109 it): ConfigLoader, OutputTrap, Struct.
6101 6110
6102 6111 2001-12-05 Fernando Perez <fperez@colorado.edu>
6103 6112
6104 6113 * IPython turns 21! Released version 0.1.21, as a candidate for
6105 6114 public consumption. If all goes well, release in a few days.
6106 6115
6107 6116 * Fixed path bug (files in Extensions/ directory wouldn't be found
6108 6117 unless IPython/ was explicitly in sys.path).
6109 6118
6110 6119 * Extended the FlexCompleter class as MagicCompleter to allow
6111 6120 completion of @-starting lines.
6112 6121
6113 6122 * Created __release__.py file as a central repository for release
6114 6123 info that other files can read from.
6115 6124
6116 6125 * Fixed small bug in logging: when logging was turned on in
6117 6126 mid-session, old lines with special meanings (!@?) were being
6118 6127 logged without the prepended comment, which is necessary since
6119 6128 they are not truly valid python syntax. This should make session
6120 6129 restores produce less errors.
6121 6130
6122 6131 * The namespace cleanup forced me to make a FlexCompleter class
6123 6132 which is nothing but a ripoff of rlcompleter, but with selectable
6124 6133 namespace (rlcompleter only works in __main__.__dict__). I'll try
6125 6134 to submit a note to the authors to see if this change can be
6126 6135 incorporated in future rlcompleter releases (Dec.6: done)
6127 6136
6128 6137 * More fixes to namespace handling. It was a mess! Now all
6129 6138 explicit references to __main__.__dict__ are gone (except when
6130 6139 really needed) and everything is handled through the namespace
6131 6140 dicts in the IPython instance. We seem to be getting somewhere
6132 6141 with this, finally...
6133 6142
6134 6143 * Small documentation updates.
6135 6144
6136 6145 * Created the Extensions directory under IPython (with an
6137 6146 __init__.py). Put the PhysicalQ stuff there. This directory should
6138 6147 be used for all special-purpose extensions.
6139 6148
6140 6149 * File renaming:
6141 6150 ipythonlib --> ipmaker
6142 6151 ipplib --> iplib
6143 6152 This makes a bit more sense in terms of what these files actually do.
6144 6153
6145 6154 * Moved all the classes and functions in ipythonlib to ipplib, so
6146 6155 now ipythonlib only has make_IPython(). This will ease up its
6147 6156 splitting in smaller functional chunks later.
6148 6157
6149 6158 * Cleaned up (done, I think) output of @whos. Better column
6150 6159 formatting, and now shows str(var) for as much as it can, which is
6151 6160 typically what one gets with a 'print var'.
6152 6161
6153 6162 2001-12-04 Fernando Perez <fperez@colorado.edu>
6154 6163
6155 6164 * Fixed namespace problems. Now builtin/IPyhton/user names get
6156 6165 properly reported in their namespace. Internal namespace handling
6157 6166 is finally getting decent (not perfect yet, but much better than
6158 6167 the ad-hoc mess we had).
6159 6168
6160 6169 * Removed -exit option. If people just want to run a python
6161 6170 script, that's what the normal interpreter is for. Less
6162 6171 unnecessary options, less chances for bugs.
6163 6172
6164 6173 * Added a crash handler which generates a complete post-mortem if
6165 6174 IPython crashes. This will help a lot in tracking bugs down the
6166 6175 road.
6167 6176
6168 6177 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6169 6178 which were boud to functions being reassigned would bypass the
6170 6179 logger, breaking the sync of _il with the prompt counter. This
6171 6180 would then crash IPython later when a new line was logged.
6172 6181
6173 6182 2001-12-02 Fernando Perez <fperez@colorado.edu>
6174 6183
6175 6184 * Made IPython a package. This means people don't have to clutter
6176 6185 their sys.path with yet another directory. Changed the INSTALL
6177 6186 file accordingly.
6178 6187
6179 6188 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6180 6189 sorts its output (so @who shows it sorted) and @whos formats the
6181 6190 table according to the width of the first column. Nicer, easier to
6182 6191 read. Todo: write a generic table_format() which takes a list of
6183 6192 lists and prints it nicely formatted, with optional row/column
6184 6193 separators and proper padding and justification.
6185 6194
6186 6195 * Released 0.1.20
6187 6196
6188 6197 * Fixed bug in @log which would reverse the inputcache list (a
6189 6198 copy operation was missing).
6190 6199
6191 6200 * Code cleanup. @config was changed to use page(). Better, since
6192 6201 its output is always quite long.
6193 6202
6194 6203 * Itpl is back as a dependency. I was having too many problems
6195 6204 getting the parametric aliases to work reliably, and it's just
6196 6205 easier to code weird string operations with it than playing %()s
6197 6206 games. It's only ~6k, so I don't think it's too big a deal.
6198 6207
6199 6208 * Found (and fixed) a very nasty bug with history. !lines weren't
6200 6209 getting cached, and the out of sync caches would crash
6201 6210 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6202 6211 division of labor a bit better. Bug fixed, cleaner structure.
6203 6212
6204 6213 2001-12-01 Fernando Perez <fperez@colorado.edu>
6205 6214
6206 6215 * Released 0.1.19
6207 6216
6208 6217 * Added option -n to @hist to prevent line number printing. Much
6209 6218 easier to copy/paste code this way.
6210 6219
6211 6220 * Created global _il to hold the input list. Allows easy
6212 6221 re-execution of blocks of code by slicing it (inspired by Janko's
6213 6222 comment on 'macros').
6214 6223
6215 6224 * Small fixes and doc updates.
6216 6225
6217 6226 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6218 6227 much too fragile with automagic. Handles properly multi-line
6219 6228 statements and takes parameters.
6220 6229
6221 6230 2001-11-30 Fernando Perez <fperez@colorado.edu>
6222 6231
6223 6232 * Version 0.1.18 released.
6224 6233
6225 6234 * Fixed nasty namespace bug in initial module imports.
6226 6235
6227 6236 * Added copyright/license notes to all code files (except
6228 6237 DPyGetOpt). For the time being, LGPL. That could change.
6229 6238
6230 6239 * Rewrote a much nicer README, updated INSTALL, cleaned up
6231 6240 ipythonrc-* samples.
6232 6241
6233 6242 * Overall code/documentation cleanup. Basically ready for
6234 6243 release. Only remaining thing: licence decision (LGPL?).
6235 6244
6236 6245 * Converted load_config to a class, ConfigLoader. Now recursion
6237 6246 control is better organized. Doesn't include the same file twice.
6238 6247
6239 6248 2001-11-29 Fernando Perez <fperez@colorado.edu>
6240 6249
6241 6250 * Got input history working. Changed output history variables from
6242 6251 _p to _o so that _i is for input and _o for output. Just cleaner
6243 6252 convention.
6244 6253
6245 6254 * Implemented parametric aliases. This pretty much allows the
6246 6255 alias system to offer full-blown shell convenience, I think.
6247 6256
6248 6257 * Version 0.1.17 released, 0.1.18 opened.
6249 6258
6250 6259 * dot_ipython/ipythonrc (alias): added documentation.
6251 6260 (xcolor): Fixed small bug (xcolors -> xcolor)
6252 6261
6253 6262 * Changed the alias system. Now alias is a magic command to define
6254 6263 aliases just like the shell. Rationale: the builtin magics should
6255 6264 be there for things deeply connected to IPython's
6256 6265 architecture. And this is a much lighter system for what I think
6257 6266 is the really important feature: allowing users to define quickly
6258 6267 magics that will do shell things for them, so they can customize
6259 6268 IPython easily to match their work habits. If someone is really
6260 6269 desperate to have another name for a builtin alias, they can
6261 6270 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6262 6271 works.
6263 6272
6264 6273 2001-11-28 Fernando Perez <fperez@colorado.edu>
6265 6274
6266 6275 * Changed @file so that it opens the source file at the proper
6267 6276 line. Since it uses less, if your EDITOR environment is
6268 6277 configured, typing v will immediately open your editor of choice
6269 6278 right at the line where the object is defined. Not as quick as
6270 6279 having a direct @edit command, but for all intents and purposes it
6271 6280 works. And I don't have to worry about writing @edit to deal with
6272 6281 all the editors, less does that.
6273 6282
6274 6283 * Version 0.1.16 released, 0.1.17 opened.
6275 6284
6276 6285 * Fixed some nasty bugs in the page/page_dumb combo that could
6277 6286 crash IPython.
6278 6287
6279 6288 2001-11-27 Fernando Perez <fperez@colorado.edu>
6280 6289
6281 6290 * Version 0.1.15 released, 0.1.16 opened.
6282 6291
6283 6292 * Finally got ? and ?? to work for undefined things: now it's
6284 6293 possible to type {}.get? and get information about the get method
6285 6294 of dicts, or os.path? even if only os is defined (so technically
6286 6295 os.path isn't). Works at any level. For example, after import os,
6287 6296 os?, os.path?, os.path.abspath? all work. This is great, took some
6288 6297 work in _ofind.
6289 6298
6290 6299 * Fixed more bugs with logging. The sanest way to do it was to add
6291 6300 to @log a 'mode' parameter. Killed two in one shot (this mode
6292 6301 option was a request of Janko's). I think it's finally clean
6293 6302 (famous last words).
6294 6303
6295 6304 * Added a page_dumb() pager which does a decent job of paging on
6296 6305 screen, if better things (like less) aren't available. One less
6297 6306 unix dependency (someday maybe somebody will port this to
6298 6307 windows).
6299 6308
6300 6309 * Fixed problem in magic_log: would lock of logging out if log
6301 6310 creation failed (because it would still think it had succeeded).
6302 6311
6303 6312 * Improved the page() function using curses to auto-detect screen
6304 6313 size. Now it can make a much better decision on whether to print
6305 6314 or page a string. Option screen_length was modified: a value 0
6306 6315 means auto-detect, and that's the default now.
6307 6316
6308 6317 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6309 6318 go out. I'll test it for a few days, then talk to Janko about
6310 6319 licences and announce it.
6311 6320
6312 6321 * Fixed the length of the auto-generated ---> prompt which appears
6313 6322 for auto-parens and auto-quotes. Getting this right isn't trivial,
6314 6323 with all the color escapes, different prompt types and optional
6315 6324 separators. But it seems to be working in all the combinations.
6316 6325
6317 6326 2001-11-26 Fernando Perez <fperez@colorado.edu>
6318 6327
6319 6328 * Wrote a regexp filter to get option types from the option names
6320 6329 string. This eliminates the need to manually keep two duplicate
6321 6330 lists.
6322 6331
6323 6332 * Removed the unneeded check_option_names. Now options are handled
6324 6333 in a much saner manner and it's easy to visually check that things
6325 6334 are ok.
6326 6335
6327 6336 * Updated version numbers on all files I modified to carry a
6328 6337 notice so Janko and Nathan have clear version markers.
6329 6338
6330 6339 * Updated docstring for ultraTB with my changes. I should send
6331 6340 this to Nathan.
6332 6341
6333 6342 * Lots of small fixes. Ran everything through pychecker again.
6334 6343
6335 6344 * Made loading of deep_reload an cmd line option. If it's not too
6336 6345 kosher, now people can just disable it. With -nodeep_reload it's
6337 6346 still available as dreload(), it just won't overwrite reload().
6338 6347
6339 6348 * Moved many options to the no| form (-opt and -noopt
6340 6349 accepted). Cleaner.
6341 6350
6342 6351 * Changed magic_log so that if called with no parameters, it uses
6343 6352 'rotate' mode. That way auto-generated logs aren't automatically
6344 6353 over-written. For normal logs, now a backup is made if it exists
6345 6354 (only 1 level of backups). A new 'backup' mode was added to the
6346 6355 Logger class to support this. This was a request by Janko.
6347 6356
6348 6357 * Added @logoff/@logon to stop/restart an active log.
6349 6358
6350 6359 * Fixed a lot of bugs in log saving/replay. It was pretty
6351 6360 broken. Now special lines (!@,/) appear properly in the command
6352 6361 history after a log replay.
6353 6362
6354 6363 * Tried and failed to implement full session saving via pickle. My
6355 6364 idea was to pickle __main__.__dict__, but modules can't be
6356 6365 pickled. This would be a better alternative to replaying logs, but
6357 6366 seems quite tricky to get to work. Changed -session to be called
6358 6367 -logplay, which more accurately reflects what it does. And if we
6359 6368 ever get real session saving working, -session is now available.
6360 6369
6361 6370 * Implemented color schemes for prompts also. As for tracebacks,
6362 6371 currently only NoColor and Linux are supported. But now the
6363 6372 infrastructure is in place, based on a generic ColorScheme
6364 6373 class. So writing and activating new schemes both for the prompts
6365 6374 and the tracebacks should be straightforward.
6366 6375
6367 6376 * Version 0.1.13 released, 0.1.14 opened.
6368 6377
6369 6378 * Changed handling of options for output cache. Now counter is
6370 6379 hardwired starting at 1 and one specifies the maximum number of
6371 6380 entries *in the outcache* (not the max prompt counter). This is
6372 6381 much better, since many statements won't increase the cache
6373 6382 count. It also eliminated some confusing options, now there's only
6374 6383 one: cache_size.
6375 6384
6376 6385 * Added 'alias' magic function and magic_alias option in the
6377 6386 ipythonrc file. Now the user can easily define whatever names he
6378 6387 wants for the magic functions without having to play weird
6379 6388 namespace games. This gives IPython a real shell-like feel.
6380 6389
6381 6390 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6382 6391 @ or not).
6383 6392
6384 6393 This was one of the last remaining 'visible' bugs (that I know
6385 6394 of). I think if I can clean up the session loading so it works
6386 6395 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6387 6396 about licensing).
6388 6397
6389 6398 2001-11-25 Fernando Perez <fperez@colorado.edu>
6390 6399
6391 6400 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6392 6401 there's a cleaner distinction between what ? and ?? show.
6393 6402
6394 6403 * Added screen_length option. Now the user can define his own
6395 6404 screen size for page() operations.
6396 6405
6397 6406 * Implemented magic shell-like functions with automatic code
6398 6407 generation. Now adding another function is just a matter of adding
6399 6408 an entry to a dict, and the function is dynamically generated at
6400 6409 run-time. Python has some really cool features!
6401 6410
6402 6411 * Renamed many options to cleanup conventions a little. Now all
6403 6412 are lowercase, and only underscores where needed. Also in the code
6404 6413 option name tables are clearer.
6405 6414
6406 6415 * Changed prompts a little. Now input is 'In [n]:' instead of
6407 6416 'In[n]:='. This allows it the numbers to be aligned with the
6408 6417 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6409 6418 Python (it was a Mathematica thing). The '...' continuation prompt
6410 6419 was also changed a little to align better.
6411 6420
6412 6421 * Fixed bug when flushing output cache. Not all _p<n> variables
6413 6422 exist, so their deletion needs to be wrapped in a try:
6414 6423
6415 6424 * Figured out how to properly use inspect.formatargspec() (it
6416 6425 requires the args preceded by *). So I removed all the code from
6417 6426 _get_pdef in Magic, which was just replicating that.
6418 6427
6419 6428 * Added test to prefilter to allow redefining magic function names
6420 6429 as variables. This is ok, since the @ form is always available,
6421 6430 but whe should allow the user to define a variable called 'ls' if
6422 6431 he needs it.
6423 6432
6424 6433 * Moved the ToDo information from README into a separate ToDo.
6425 6434
6426 6435 * General code cleanup and small bugfixes. I think it's close to a
6427 6436 state where it can be released, obviously with a big 'beta'
6428 6437 warning on it.
6429 6438
6430 6439 * Got the magic function split to work. Now all magics are defined
6431 6440 in a separate class. It just organizes things a bit, and now
6432 6441 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6433 6442 was too long).
6434 6443
6435 6444 * Changed @clear to @reset to avoid potential confusions with
6436 6445 the shell command clear. Also renamed @cl to @clear, which does
6437 6446 exactly what people expect it to from their shell experience.
6438 6447
6439 6448 Added a check to the @reset command (since it's so
6440 6449 destructive, it's probably a good idea to ask for confirmation).
6441 6450 But now reset only works for full namespace resetting. Since the
6442 6451 del keyword is already there for deleting a few specific
6443 6452 variables, I don't see the point of having a redundant magic
6444 6453 function for the same task.
6445 6454
6446 6455 2001-11-24 Fernando Perez <fperez@colorado.edu>
6447 6456
6448 6457 * Updated the builtin docs (esp. the ? ones).
6449 6458
6450 6459 * Ran all the code through pychecker. Not terribly impressed with
6451 6460 it: lots of spurious warnings and didn't really find anything of
6452 6461 substance (just a few modules being imported and not used).
6453 6462
6454 6463 * Implemented the new ultraTB functionality into IPython. New
6455 6464 option: xcolors. This chooses color scheme. xmode now only selects
6456 6465 between Plain and Verbose. Better orthogonality.
6457 6466
6458 6467 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6459 6468 mode and color scheme for the exception handlers. Now it's
6460 6469 possible to have the verbose traceback with no coloring.
6461 6470
6462 6471 2001-11-23 Fernando Perez <fperez@colorado.edu>
6463 6472
6464 6473 * Version 0.1.12 released, 0.1.13 opened.
6465 6474
6466 6475 * Removed option to set auto-quote and auto-paren escapes by
6467 6476 user. The chances of breaking valid syntax are just too high. If
6468 6477 someone *really* wants, they can always dig into the code.
6469 6478
6470 6479 * Made prompt separators configurable.
6471 6480
6472 6481 2001-11-22 Fernando Perez <fperez@colorado.edu>
6473 6482
6474 6483 * Small bugfixes in many places.
6475 6484
6476 6485 * Removed the MyCompleter class from ipplib. It seemed redundant
6477 6486 with the C-p,C-n history search functionality. Less code to
6478 6487 maintain.
6479 6488
6480 6489 * Moved all the original ipython.py code into ipythonlib.py. Right
6481 6490 now it's just one big dump into a function called make_IPython, so
6482 6491 no real modularity has been gained. But at least it makes the
6483 6492 wrapper script tiny, and since ipythonlib is a module, it gets
6484 6493 compiled and startup is much faster.
6485 6494
6486 6495 This is a reasobably 'deep' change, so we should test it for a
6487 6496 while without messing too much more with the code.
6488 6497
6489 6498 2001-11-21 Fernando Perez <fperez@colorado.edu>
6490 6499
6491 6500 * Version 0.1.11 released, 0.1.12 opened for further work.
6492 6501
6493 6502 * Removed dependency on Itpl. It was only needed in one place. It
6494 6503 would be nice if this became part of python, though. It makes life
6495 6504 *a lot* easier in some cases.
6496 6505
6497 6506 * Simplified the prefilter code a bit. Now all handlers are
6498 6507 expected to explicitly return a value (at least a blank string).
6499 6508
6500 6509 * Heavy edits in ipplib. Removed the help system altogether. Now
6501 6510 obj?/?? is used for inspecting objects, a magic @doc prints
6502 6511 docstrings, and full-blown Python help is accessed via the 'help'
6503 6512 keyword. This cleans up a lot of code (less to maintain) and does
6504 6513 the job. Since 'help' is now a standard Python component, might as
6505 6514 well use it and remove duplicate functionality.
6506 6515
6507 6516 Also removed the option to use ipplib as a standalone program. By
6508 6517 now it's too dependent on other parts of IPython to function alone.
6509 6518
6510 6519 * Fixed bug in genutils.pager. It would crash if the pager was
6511 6520 exited immediately after opening (broken pipe).
6512 6521
6513 6522 * Trimmed down the VerboseTB reporting a little. The header is
6514 6523 much shorter now and the repeated exception arguments at the end
6515 6524 have been removed. For interactive use the old header seemed a bit
6516 6525 excessive.
6517 6526
6518 6527 * Fixed small bug in output of @whos for variables with multi-word
6519 6528 types (only first word was displayed).
6520 6529
6521 6530 2001-11-17 Fernando Perez <fperez@colorado.edu>
6522 6531
6523 6532 * Version 0.1.10 released, 0.1.11 opened for further work.
6524 6533
6525 6534 * Modified dirs and friends. dirs now *returns* the stack (not
6526 6535 prints), so one can manipulate it as a variable. Convenient to
6527 6536 travel along many directories.
6528 6537
6529 6538 * Fixed bug in magic_pdef: would only work with functions with
6530 6539 arguments with default values.
6531 6540
6532 6541 2001-11-14 Fernando Perez <fperez@colorado.edu>
6533 6542
6534 6543 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6535 6544 example with IPython. Various other minor fixes and cleanups.
6536 6545
6537 6546 * Version 0.1.9 released, 0.1.10 opened for further work.
6538 6547
6539 6548 * Added sys.path to the list of directories searched in the
6540 6549 execfile= option. It used to be the current directory and the
6541 6550 user's IPYTHONDIR only.
6542 6551
6543 6552 2001-11-13 Fernando Perez <fperez@colorado.edu>
6544 6553
6545 6554 * Reinstated the raw_input/prefilter separation that Janko had
6546 6555 initially. This gives a more convenient setup for extending the
6547 6556 pre-processor from the outside: raw_input always gets a string,
6548 6557 and prefilter has to process it. We can then redefine prefilter
6549 6558 from the outside and implement extensions for special
6550 6559 purposes.
6551 6560
6552 6561 Today I got one for inputting PhysicalQuantity objects
6553 6562 (from Scientific) without needing any function calls at
6554 6563 all. Extremely convenient, and it's all done as a user-level
6555 6564 extension (no IPython code was touched). Now instead of:
6556 6565 a = PhysicalQuantity(4.2,'m/s**2')
6557 6566 one can simply say
6558 6567 a = 4.2 m/s**2
6559 6568 or even
6560 6569 a = 4.2 m/s^2
6561 6570
6562 6571 I use this, but it's also a proof of concept: IPython really is
6563 6572 fully user-extensible, even at the level of the parsing of the
6564 6573 command line. It's not trivial, but it's perfectly doable.
6565 6574
6566 6575 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6567 6576 the problem of modules being loaded in the inverse order in which
6568 6577 they were defined in
6569 6578
6570 6579 * Version 0.1.8 released, 0.1.9 opened for further work.
6571 6580
6572 6581 * Added magics pdef, source and file. They respectively show the
6573 6582 definition line ('prototype' in C), source code and full python
6574 6583 file for any callable object. The object inspector oinfo uses
6575 6584 these to show the same information.
6576 6585
6577 6586 * Version 0.1.7 released, 0.1.8 opened for further work.
6578 6587
6579 6588 * Separated all the magic functions into a class called Magic. The
6580 6589 InteractiveShell class was becoming too big for Xemacs to handle
6581 6590 (de-indenting a line would lock it up for 10 seconds while it
6582 6591 backtracked on the whole class!)
6583 6592
6584 6593 FIXME: didn't work. It can be done, but right now namespaces are
6585 6594 all messed up. Do it later (reverted it for now, so at least
6586 6595 everything works as before).
6587 6596
6588 6597 * Got the object introspection system (magic_oinfo) working! I
6589 6598 think this is pretty much ready for release to Janko, so he can
6590 6599 test it for a while and then announce it. Pretty much 100% of what
6591 6600 I wanted for the 'phase 1' release is ready. Happy, tired.
6592 6601
6593 6602 2001-11-12 Fernando Perez <fperez@colorado.edu>
6594 6603
6595 6604 * Version 0.1.6 released, 0.1.7 opened for further work.
6596 6605
6597 6606 * Fixed bug in printing: it used to test for truth before
6598 6607 printing, so 0 wouldn't print. Now checks for None.
6599 6608
6600 6609 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6601 6610 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6602 6611 reaches by hand into the outputcache. Think of a better way to do
6603 6612 this later.
6604 6613
6605 6614 * Various small fixes thanks to Nathan's comments.
6606 6615
6607 6616 * Changed magic_pprint to magic_Pprint. This way it doesn't
6608 6617 collide with pprint() and the name is consistent with the command
6609 6618 line option.
6610 6619
6611 6620 * Changed prompt counter behavior to be fully like
6612 6621 Mathematica's. That is, even input that doesn't return a result
6613 6622 raises the prompt counter. The old behavior was kind of confusing
6614 6623 (getting the same prompt number several times if the operation
6615 6624 didn't return a result).
6616 6625
6617 6626 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6618 6627
6619 6628 * Fixed -Classic mode (wasn't working anymore).
6620 6629
6621 6630 * Added colored prompts using Nathan's new code. Colors are
6622 6631 currently hardwired, they can be user-configurable. For
6623 6632 developers, they can be chosen in file ipythonlib.py, at the
6624 6633 beginning of the CachedOutput class def.
6625 6634
6626 6635 2001-11-11 Fernando Perez <fperez@colorado.edu>
6627 6636
6628 6637 * Version 0.1.5 released, 0.1.6 opened for further work.
6629 6638
6630 6639 * Changed magic_env to *return* the environment as a dict (not to
6631 6640 print it). This way it prints, but it can also be processed.
6632 6641
6633 6642 * Added Verbose exception reporting to interactive
6634 6643 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6635 6644 traceback. Had to make some changes to the ultraTB file. This is
6636 6645 probably the last 'big' thing in my mental todo list. This ties
6637 6646 in with the next entry:
6638 6647
6639 6648 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6640 6649 has to specify is Plain, Color or Verbose for all exception
6641 6650 handling.
6642 6651
6643 6652 * Removed ShellServices option. All this can really be done via
6644 6653 the magic system. It's easier to extend, cleaner and has automatic
6645 6654 namespace protection and documentation.
6646 6655
6647 6656 2001-11-09 Fernando Perez <fperez@colorado.edu>
6648 6657
6649 6658 * Fixed bug in output cache flushing (missing parameter to
6650 6659 __init__). Other small bugs fixed (found using pychecker).
6651 6660
6652 6661 * Version 0.1.4 opened for bugfixing.
6653 6662
6654 6663 2001-11-07 Fernando Perez <fperez@colorado.edu>
6655 6664
6656 6665 * Version 0.1.3 released, mainly because of the raw_input bug.
6657 6666
6658 6667 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6659 6668 and when testing for whether things were callable, a call could
6660 6669 actually be made to certain functions. They would get called again
6661 6670 once 'really' executed, with a resulting double call. A disaster
6662 6671 in many cases (list.reverse() would never work!).
6663 6672
6664 6673 * Removed prefilter() function, moved its code to raw_input (which
6665 6674 after all was just a near-empty caller for prefilter). This saves
6666 6675 a function call on every prompt, and simplifies the class a tiny bit.
6667 6676
6668 6677 * Fix _ip to __ip name in magic example file.
6669 6678
6670 6679 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6671 6680 work with non-gnu versions of tar.
6672 6681
6673 6682 2001-11-06 Fernando Perez <fperez@colorado.edu>
6674 6683
6675 6684 * Version 0.1.2. Just to keep track of the recent changes.
6676 6685
6677 6686 * Fixed nasty bug in output prompt routine. It used to check 'if
6678 6687 arg != None...'. Problem is, this fails if arg implements a
6679 6688 special comparison (__cmp__) which disallows comparing to
6680 6689 None. Found it when trying to use the PhysicalQuantity module from
6681 6690 ScientificPython.
6682 6691
6683 6692 2001-11-05 Fernando Perez <fperez@colorado.edu>
6684 6693
6685 6694 * Also added dirs. Now the pushd/popd/dirs family functions
6686 6695 basically like the shell, with the added convenience of going home
6687 6696 when called with no args.
6688 6697
6689 6698 * pushd/popd slightly modified to mimic shell behavior more
6690 6699 closely.
6691 6700
6692 6701 * Added env,pushd,popd from ShellServices as magic functions. I
6693 6702 think the cleanest will be to port all desired functions from
6694 6703 ShellServices as magics and remove ShellServices altogether. This
6695 6704 will provide a single, clean way of adding functionality
6696 6705 (shell-type or otherwise) to IP.
6697 6706
6698 6707 2001-11-04 Fernando Perez <fperez@colorado.edu>
6699 6708
6700 6709 * Added .ipython/ directory to sys.path. This way users can keep
6701 6710 customizations there and access them via import.
6702 6711
6703 6712 2001-11-03 Fernando Perez <fperez@colorado.edu>
6704 6713
6705 6714 * Opened version 0.1.1 for new changes.
6706 6715
6707 6716 * Changed version number to 0.1.0: first 'public' release, sent to
6708 6717 Nathan and Janko.
6709 6718
6710 6719 * Lots of small fixes and tweaks.
6711 6720
6712 6721 * Minor changes to whos format. Now strings are shown, snipped if
6713 6722 too long.
6714 6723
6715 6724 * Changed ShellServices to work on __main__ so they show up in @who
6716 6725
6717 6726 * Help also works with ? at the end of a line:
6718 6727 ?sin and sin?
6719 6728 both produce the same effect. This is nice, as often I use the
6720 6729 tab-complete to find the name of a method, but I used to then have
6721 6730 to go to the beginning of the line to put a ? if I wanted more
6722 6731 info. Now I can just add the ? and hit return. Convenient.
6723 6732
6724 6733 2001-11-02 Fernando Perez <fperez@colorado.edu>
6725 6734
6726 6735 * Python version check (>=2.1) added.
6727 6736
6728 6737 * Added LazyPython documentation. At this point the docs are quite
6729 6738 a mess. A cleanup is in order.
6730 6739
6731 6740 * Auto-installer created. For some bizarre reason, the zipfiles
6732 6741 module isn't working on my system. So I made a tar version
6733 6742 (hopefully the command line options in various systems won't kill
6734 6743 me).
6735 6744
6736 6745 * Fixes to Struct in genutils. Now all dictionary-like methods are
6737 6746 protected (reasonably).
6738 6747
6739 6748 * Added pager function to genutils and changed ? to print usage
6740 6749 note through it (it was too long).
6741 6750
6742 6751 * Added the LazyPython functionality. Works great! I changed the
6743 6752 auto-quote escape to ';', it's on home row and next to '. But
6744 6753 both auto-quote and auto-paren (still /) escapes are command-line
6745 6754 parameters.
6746 6755
6747 6756
6748 6757 2001-11-01 Fernando Perez <fperez@colorado.edu>
6749 6758
6750 6759 * Version changed to 0.0.7. Fairly large change: configuration now
6751 6760 is all stored in a directory, by default .ipython. There, all
6752 6761 config files have normal looking names (not .names)
6753 6762
6754 6763 * Version 0.0.6 Released first to Lucas and Archie as a test
6755 6764 run. Since it's the first 'semi-public' release, change version to
6756 6765 > 0.0.6 for any changes now.
6757 6766
6758 6767 * Stuff I had put in the ipplib.py changelog:
6759 6768
6760 6769 Changes to InteractiveShell:
6761 6770
6762 6771 - Made the usage message a parameter.
6763 6772
6764 6773 - Require the name of the shell variable to be given. It's a bit
6765 6774 of a hack, but allows the name 'shell' not to be hardwired in the
6766 6775 magic (@) handler, which is problematic b/c it requires
6767 6776 polluting the global namespace with 'shell'. This in turn is
6768 6777 fragile: if a user redefines a variable called shell, things
6769 6778 break.
6770 6779
6771 6780 - magic @: all functions available through @ need to be defined
6772 6781 as magic_<name>, even though they can be called simply as
6773 6782 @<name>. This allows the special command @magic to gather
6774 6783 information automatically about all existing magic functions,
6775 6784 even if they are run-time user extensions, by parsing the shell
6776 6785 instance __dict__ looking for special magic_ names.
6777 6786
6778 6787 - mainloop: added *two* local namespace parameters. This allows
6779 6788 the class to differentiate between parameters which were there
6780 6789 before and after command line initialization was processed. This
6781 6790 way, later @who can show things loaded at startup by the
6782 6791 user. This trick was necessary to make session saving/reloading
6783 6792 really work: ideally after saving/exiting/reloading a session,
6784 6793 *everything* should look the same, including the output of @who. I
6785 6794 was only able to make this work with this double namespace
6786 6795 trick.
6787 6796
6788 6797 - added a header to the logfile which allows (almost) full
6789 6798 session restoring.
6790 6799
6791 6800 - prepend lines beginning with @ or !, with a and log
6792 6801 them. Why? !lines: may be useful to know what you did @lines:
6793 6802 they may affect session state. So when restoring a session, at
6794 6803 least inform the user of their presence. I couldn't quite get
6795 6804 them to properly re-execute, but at least the user is warned.
6796 6805
6797 6806 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now