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