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