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