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