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