##// END OF EJS Templates
docs: remove -twisted, add -pydb
Ville M. Vainio -
Show More

The requested changes are too big and content was truncated. Show full diff

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