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