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