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