##// END OF EJS Templates
whitespace cleanup
vivainio -
r501:fea958f6
parent child
Show More
@@ -1,6100 +1,6101
1 1 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
2 2
3 3 * IPython/Shell.py (IPShellWX): update for current WX naming
4 4 conventions, to avoid a deprecation warning with current WX
5 5 versions. Thanks to a report by Danny Shevitz.
6 6
7 7 2006-12-12 Ville Vainio <vivainio@gmail.com>
8 8
9 9 * ipmaker.py: apply david cournapeau's patch to make
10 10 import_some work properly even when ipythonrc does
11 11 import_some on empty list (it was an old bug!).
12 12
13 13 2006-12-12 Ville Vainio <vivainio@gmail.com>
14 14
15 15 * ipmaker.py: apply david cournapeau's patch to make
16 16 import_some work properly even when ipythonrc does
17 17 import_some on empty list (it was an old bug!).
18 18
19 19 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
20 Add deprecation note to ipythonrc and a url to wiki
21 in ipy_user_conf.py
22
23 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
24 as if it was typed on IPython command prompt, i.e.
25 as IPython script.
20 Add deprecation note to ipythonrc and a url to wiki
21 in ipy_user_conf.py
22
23
24 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
25 as if it was typed on IPython command prompt, i.e.
26 as IPython script.
26 27
27 28 * example-magic.py, magic_grepl.py: remove outdated examples
28 29
29 30 2006-12-08 Ville Vainio <vivainio@gmail.com>
30 31
31 32 * Extensions/ipy_stock_completers.py.py: fix cd completer
32 33 to translate /'s to \'s again.
33 34
34 35 * completer.py: prevent traceback on file completions w/
35 36 backslash.
36 37
37 38 * Release.py: Update release number to 0.7.3b3 for release
38 39
39 40 2006-12-07 Ville Vainio <vivainio@gmail.com>
40 41
41 42 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
42 43 while executing external code. Provides more shell-like behaviour
43 44 and overall better response to ctrl + C / ctrl + break.
44 45
45 46 * tools/make_tarball.py: new script to create tarball straight from svn
46 47 (setup.py sdist doesn't work on win32).
47 48
48 49 * Extensions/ipy_stock_completers.py: fix cd completer to give up
49 50 on dirnames with spaces and use the default completer instead.
50 51
51 52 * Revision.py: Change version to 0.7.3b2 for release.
52 53
53 54 2006-12-05 Ville Vainio <vivainio@gmail.com>
54 55
55 56 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
56 57 pydb patch 4 (rm debug printing, py 2.5 checking)
57 58
58 59 2006-11-30 Walter Doerwald <walter@livinglogic.de>
59 60 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
60 61 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
61 62 "refreshfind" (mapped to "R") does the same but tries to go back to the same
62 63 object the cursor was on before the refresh. The command "markrange" is
63 64 mapped to "%" now.
64 65 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
65 66
66 67 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
67 68
68 69 * IPython/Magic.py (magic_debug): new %debug magic to activate the
69 70 interactive debugger on the last traceback, without having to call
70 71 %pdb and rerun your code. Made minor changes in various modules,
71 72 should automatically recognize pydb if available.
72 73
73 74 2006-11-28 Ville Vainio <vivainio@gmail.com>
74 75
75 76 * completer.py: If the text start with !, show file completions
76 77 properly. This helps when trying to complete command name
77 78 for shell escapes.
78 79
79 80 2006-11-27 Ville Vainio <vivainio@gmail.com>
80 81
81 82 * ipy_stock_completers.py: bzr completer submitted by Stefan van
82 83 der Walt. Clean up svn and hg completers by using a common
83 84 vcs_completer.
84 85
85 86 2006-11-26 Ville Vainio <vivainio@gmail.com>
86 87
87 88 * Remove ipconfig and %config; you should use _ip.options structure
88 89 directly instead!
89 90
90 91 * genutils.py: add wrap_deprecated function for deprecating callables
91 92
92 93 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
93 94 _ip.system instead. ipalias is redundant.
94 95
95 96 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
96 97 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
97 98 explicit.
98 99
99 100 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
100 101 completer. Try it by entering 'hg ' and pressing tab.
101 102
102 103 * macro.py: Give Macro a useful __repr__ method
103 104
104 105 * Magic.py: %whos abbreviates the typename of Macro for brevity.
105 106
106 107 2006-11-24 Walter Doerwald <walter@livinglogic.de>
107 108 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
108 109 we don't get a duplicate ipipe module, where registration of the xrepr
109 110 implementation for Text is useless.
110 111
111 112 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
112 113
113 114 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
114 115
115 116 2006-11-24 Ville Vainio <vivainio@gmail.com>
116 117
117 118 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
118 119 try to use "cProfile" instead of the slower pure python
119 120 "profile"
120 121
121 122 2006-11-23 Ville Vainio <vivainio@gmail.com>
122 123
123 124 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
124 125 Qt+IPython+Designer link in documentation.
125 126
126 127 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
127 128 correct Pdb object to %pydb.
128 129
129 130
130 131 2006-11-22 Walter Doerwald <walter@livinglogic.de>
131 132 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
132 133 generic xrepr(), otherwise the list implementation would kick in.
133 134
134 135 2006-11-21 Ville Vainio <vivainio@gmail.com>
135 136
136 137 * upgrade_dir.py: Now actually overwrites a nonmodified user file
137 138 with one from UserConfig.
138 139
139 140 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
140 141 it was missing which broke the sh profile.
141 142
142 143 * completer.py: file completer now uses explicit '/' instead
143 144 of os.path.join, expansion of 'foo' was broken on win32
144 145 if there was one directory with name 'foobar'.
145 146
146 147 * A bunch of patches from Kirill Smelkov:
147 148
148 149 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
149 150
150 151 * [patch 7/9] Implement %page -r (page in raw mode) -
151 152
152 153 * [patch 5/9] ScientificPython webpage has moved
153 154
154 155 * [patch 4/9] The manual mentions %ds, should be %dhist
155 156
156 157 * [patch 3/9] Kill old bits from %prun doc.
157 158
158 159 * [patch 1/9] Fix typos here and there.
159 160
160 161 2006-11-08 Ville Vainio <vivainio@gmail.com>
161 162
162 163 * completer.py (attr_matches): catch all exceptions raised
163 164 by eval of expr with dots.
164 165
165 166 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
166 167
167 168 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
168 169 input if it starts with whitespace. This allows you to paste
169 170 indented input from any editor without manually having to type in
170 171 the 'if 1:', which is convenient when working interactively.
171 172 Slightly modifed version of a patch by Bo Peng
172 173 <bpeng-AT-rice.edu>.
173 174
174 175 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
175 176
176 177 * IPython/irunner.py (main): modified irunner so it automatically
177 178 recognizes the right runner to use based on the extension (.py for
178 179 python, .ipy for ipython and .sage for sage).
179 180
180 181 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
181 182 visible in ipapi as ip.config(), to programatically control the
182 183 internal rc object. There's an accompanying %config magic for
183 184 interactive use, which has been enhanced to match the
184 185 funtionality in ipconfig.
185 186
186 187 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
187 188 so it's not just a toggle, it now takes an argument. Add support
188 189 for a customizable header when making system calls, as the new
189 190 system_header variable in the ipythonrc file.
190 191
191 192 2006-11-03 Walter Doerwald <walter@livinglogic.de>
192 193
193 194 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
194 195 generic functions (using Philip J. Eby's simplegeneric package).
195 196 This makes it possible to customize the display of third-party classes
196 197 without having to monkeypatch them. xiter() no longer supports a mode
197 198 argument and the XMode class has been removed. The same functionality can
198 199 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
199 200 One consequence of the switch to generic functions is that xrepr() and
200 201 xattrs() implementation must define the default value for the mode
201 202 argument themselves and xattrs() implementations must return real
202 203 descriptors.
203 204
204 205 * IPython/external: This new subpackage will contain all third-party
205 206 packages that are bundled with IPython. (The first one is simplegeneric).
206 207
207 208 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
208 209 directory which as been dropped in r1703.
209 210
210 211 * IPython/Extensions/ipipe.py (iless): Fixed.
211 212
212 213 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
213 214
214 215 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
215 216
216 217 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
217 218 handling in variable expansion so that shells and magics recognize
218 219 function local scopes correctly. Bug reported by Brian.
219 220
220 221 * scripts/ipython: remove the very first entry in sys.path which
221 222 Python auto-inserts for scripts, so that sys.path under IPython is
222 223 as similar as possible to that under plain Python.
223 224
224 225 * IPython/completer.py (IPCompleter.file_matches): Fix
225 226 tab-completion so that quotes are not closed unless the completion
226 227 is unambiguous. After a request by Stefan. Minor cleanups in
227 228 ipy_stock_completers.
228 229
229 230 2006-11-02 Ville Vainio <vivainio@gmail.com>
230 231
231 232 * ipy_stock_completers.py: Add %run and %cd completers.
232 233
233 234 * completer.py: Try running custom completer for both
234 235 "foo" and "%foo" if the command is just "foo". Ignore case
235 236 when filtering possible completions.
236 237
237 238 * UserConfig/ipy_user_conf.py: install stock completers as default
238 239
239 240 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
240 241 simplified readline history save / restore through a wrapper
241 242 function
242 243
243 244
244 245 2006-10-31 Ville Vainio <vivainio@gmail.com>
245 246
246 247 * strdispatch.py, completer.py, ipy_stock_completers.py:
247 248 Allow str_key ("command") in completer hooks. Implement
248 249 trivial completer for 'import' (stdlib modules only). Rename
249 250 ipy_linux_package_managers.py to ipy_stock_completers.py.
250 251 SVN completer.
251 252
252 253 * Extensions/ledit.py: %magic line editor for easily and
253 254 incrementally manipulating lists of strings. The magic command
254 255 name is %led.
255 256
256 257 2006-10-30 Ville Vainio <vivainio@gmail.com>
257 258
258 259 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
259 260 Bernsteins's patches for pydb integration.
260 261 http://bashdb.sourceforge.net/pydb/
261 262
262 263 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
263 264 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
264 265 custom completer hook to allow the users to implement their own
265 266 completers. See ipy_linux_package_managers.py for example. The
266 267 hook name is 'complete_command'.
267 268
268 269 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
269 270
270 271 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
271 272 Numeric leftovers.
272 273
273 274 * ipython.el (py-execute-region): apply Stefan's patch to fix
274 275 garbled results if the python shell hasn't been previously started.
275 276
276 277 * IPython/genutils.py (arg_split): moved to genutils, since it's a
277 278 pretty generic function and useful for other things.
278 279
279 280 * IPython/OInspect.py (getsource): Add customizable source
280 281 extractor. After a request/patch form W. Stein (SAGE).
281 282
282 283 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
283 284 window size to a more reasonable value from what pexpect does,
284 285 since their choice causes wrapping bugs with long input lines.
285 286
286 287 2006-10-28 Ville Vainio <vivainio@gmail.com>
287 288
288 289 * Magic.py (%run): Save and restore the readline history from
289 290 file around %run commands to prevent side effects from
290 291 %runned programs that might use readline (e.g. pydb).
291 292
292 293 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
293 294 invoking the pydb enhanced debugger.
294 295
295 296 2006-10-23 Walter Doerwald <walter@livinglogic.de>
296 297
297 298 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
298 299 call the base class method and propagate the return value to
299 300 ifile. This is now done by path itself.
300 301
301 302 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
302 303
303 304 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
304 305 api: set_crash_handler(), to expose the ability to change the
305 306 internal crash handler.
306 307
307 308 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
308 309 the various parameters of the crash handler so that apps using
309 310 IPython as their engine can customize crash handling. Ipmlemented
310 311 at the request of SAGE.
311 312
312 313 2006-10-14 Ville Vainio <vivainio@gmail.com>
313 314
314 315 * Magic.py, ipython.el: applied first "safe" part of Rocky
315 316 Bernstein's patch set for pydb integration.
316 317
317 318 * Magic.py (%unalias, %alias): %store'd aliases can now be
318 319 removed with '%unalias'. %alias w/o args now shows most
319 320 interesting (stored / manually defined) aliases last
320 321 where they catch the eye w/o scrolling.
321 322
322 323 * Magic.py (%rehashx), ext_rehashdir.py: files with
323 324 'py' extension are always considered executable, even
324 325 when not in PATHEXT environment variable.
325 326
326 327 2006-10-12 Ville Vainio <vivainio@gmail.com>
327 328
328 329 * jobctrl.py: Add new "jobctrl" extension for spawning background
329 330 processes with "&find /". 'import jobctrl' to try it out. Requires
330 331 'subprocess' module, standard in python 2.4+.
331 332
332 333 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
333 334 so if foo -> bar and bar -> baz, then foo -> baz.
334 335
335 336 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
336 337
337 338 * IPython/Magic.py (Magic.parse_options): add a new posix option
338 339 to allow parsing of input args in magics that doesn't strip quotes
339 340 (if posix=False). This also closes %timeit bug reported by
340 341 Stefan.
341 342
342 343 2006-10-03 Ville Vainio <vivainio@gmail.com>
343 344
344 345 * iplib.py (raw_input, interact): Return ValueError catching for
345 346 raw_input. Fixes infinite loop for sys.stdin.close() or
346 347 sys.stdout.close().
347 348
348 349 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
349 350
350 351 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
351 352 to help in handling doctests. irunner is now pretty useful for
352 353 running standalone scripts and simulate a full interactive session
353 354 in a format that can be then pasted as a doctest.
354 355
355 356 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
356 357 on top of the default (useless) ones. This also fixes the nasty
357 358 way in which 2.5's Quitter() exits (reverted [1785]).
358 359
359 360 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
360 361 2.5.
361 362
362 363 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
363 364 color scheme is updated as well when color scheme is changed
364 365 interactively.
365 366
366 367 2006-09-27 Ville Vainio <vivainio@gmail.com>
367 368
368 369 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
369 370 infinite loop and just exit. It's a hack, but will do for a while.
370 371
371 372 2006-08-25 Walter Doerwald <walter@livinglogic.de>
372 373
373 374 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
374 375 the constructor, this makes it possible to get a list of only directories
375 376 or only files.
376 377
377 378 2006-08-12 Ville Vainio <vivainio@gmail.com>
378 379
379 380 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
380 381 they broke unittest
381 382
382 383 2006-08-11 Ville Vainio <vivainio@gmail.com>
383 384
384 385 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
385 386 by resolving issue properly, i.e. by inheriting FakeModule
386 387 from types.ModuleType. Pickling ipython interactive data
387 388 should still work as usual (testing appreciated).
388 389
389 390 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
390 391
391 392 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
392 393 running under python 2.3 with code from 2.4 to fix a bug with
393 394 help(). Reported by the Debian maintainers, Norbert Tretkowski
394 395 <norbert-AT-tretkowski.de> and Alexandre Fayolle
395 396 <afayolle-AT-debian.org>.
396 397
397 398 2006-08-04 Walter Doerwald <walter@livinglogic.de>
398 399
399 400 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
400 401 (which was displaying "quit" twice).
401 402
402 403 2006-07-28 Walter Doerwald <walter@livinglogic.de>
403 404
404 405 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
405 406 the mode argument).
406 407
407 408 2006-07-27 Walter Doerwald <walter@livinglogic.de>
408 409
409 410 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
410 411 not running under IPython.
411 412
412 413 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
413 414 and make it iterable (iterating over the attribute itself). Add two new
414 415 magic strings for __xattrs__(): If the string starts with "-", the attribute
415 416 will not be displayed in ibrowse's detail view (but it can still be
416 417 iterated over). This makes it possible to add attributes that are large
417 418 lists or generator methods to the detail view. Replace magic attribute names
418 419 and _attrname() and _getattr() with "descriptors": For each type of magic
419 420 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
420 421 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
421 422 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
422 423 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
423 424 are still supported.
424 425
425 426 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
426 427 fails in ibrowse.fetch(), the exception object is added as the last item
427 428 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
428 429 a generator throws an exception midway through execution.
429 430
430 431 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
431 432 encoding into methods.
432 433
433 434 2006-07-26 Ville Vainio <vivainio@gmail.com>
434 435
435 436 * iplib.py: history now stores multiline input as single
436 437 history entries. Patch by Jorgen Cederlof.
437 438
438 439 2006-07-18 Walter Doerwald <walter@livinglogic.de>
439 440
440 441 * IPython/Extensions/ibrowse.py: Make cursor visible over
441 442 non existing attributes.
442 443
443 444 2006-07-14 Walter Doerwald <walter@livinglogic.de>
444 445
445 446 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
446 447 error output of the running command doesn't mess up the screen.
447 448
448 449 2006-07-13 Walter Doerwald <walter@livinglogic.de>
449 450
450 451 * IPython/Extensions/ipipe.py (isort): Make isort usable without
451 452 argument. This sorts the items themselves.
452 453
453 454 2006-07-12 Walter Doerwald <walter@livinglogic.de>
454 455
455 456 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
456 457 Compile expression strings into code objects. This should speed
457 458 up ifilter and friends somewhat.
458 459
459 460 2006-07-08 Ville Vainio <vivainio@gmail.com>
460 461
461 462 * Magic.py: %cpaste now strips > from the beginning of lines
462 463 to ease pasting quoted code from emails. Contributed by
463 464 Stefan van der Walt.
464 465
465 466 2006-06-29 Ville Vainio <vivainio@gmail.com>
466 467
467 468 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
468 469 mode, patch contributed by Darren Dale. NEEDS TESTING!
469 470
470 471 2006-06-28 Walter Doerwald <walter@livinglogic.de>
471 472
472 473 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
473 474 a blue background. Fix fetching new display rows when the browser
474 475 scrolls more than a screenful (e.g. by using the goto command).
475 476
476 477 2006-06-27 Ville Vainio <vivainio@gmail.com>
477 478
478 479 * Magic.py (_inspect, _ofind) Apply David Huard's
479 480 patch for displaying the correct docstring for 'property'
480 481 attributes.
481 482
482 483 2006-06-23 Walter Doerwald <walter@livinglogic.de>
483 484
484 485 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
485 486 commands into the methods implementing them.
486 487
487 488 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
488 489
489 490 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
490 491 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
491 492 autoindent support was authored by Jin Liu.
492 493
493 494 2006-06-22 Walter Doerwald <walter@livinglogic.de>
494 495
495 496 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
496 497 for keymaps with a custom class that simplifies handling.
497 498
498 499 2006-06-19 Walter Doerwald <walter@livinglogic.de>
499 500
500 501 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
501 502 resizing. This requires Python 2.5 to work.
502 503
503 504 2006-06-16 Walter Doerwald <walter@livinglogic.de>
504 505
505 506 * IPython/Extensions/ibrowse.py: Add two new commands to
506 507 ibrowse: "hideattr" (mapped to "h") hides the attribute under
507 508 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
508 509 attributes again. Remapped the help command to "?". Display
509 510 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
510 511 as keys for the "home" and "end" commands. Add three new commands
511 512 to the input mode for "find" and friends: "delend" (CTRL-K)
512 513 deletes to the end of line. "incsearchup" searches upwards in the
513 514 command history for an input that starts with the text before the cursor.
514 515 "incsearchdown" does the same downwards. Removed a bogus mapping of
515 516 the x key to "delete".
516 517
517 518 2006-06-15 Ville Vainio <vivainio@gmail.com>
518 519
519 520 * iplib.py, hooks.py: Added new generate_prompt hook that can be
520 521 used to create prompts dynamically, instead of the "old" way of
521 522 assigning "magic" strings to prompt_in1 and prompt_in2. The old
522 523 way still works (it's invoked by the default hook), of course.
523 524
524 525 * Prompts.py: added generate_output_prompt hook for altering output
525 526 prompt
526 527
527 528 * Release.py: Changed version string to 0.7.3.svn.
528 529
529 530 2006-06-15 Walter Doerwald <walter@livinglogic.de>
530 531
531 532 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
532 533 the call to fetch() always tries to fetch enough data for at least one
533 534 full screen. This makes it possible to simply call moveto(0,0,True) in
534 535 the constructor. Fix typos and removed the obsolete goto attribute.
535 536
536 537 2006-06-12 Ville Vainio <vivainio@gmail.com>
537 538
538 539 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
539 540 allowing $variable interpolation within multiline statements,
540 541 though so far only with "sh" profile for a testing period.
541 542 The patch also enables splitting long commands with \ but it
542 543 doesn't work properly yet.
543 544
544 545 2006-06-12 Walter Doerwald <walter@livinglogic.de>
545 546
546 547 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
547 548 input history and the position of the cursor in the input history for
548 549 the find, findbackwards and goto command.
549 550
550 551 2006-06-10 Walter Doerwald <walter@livinglogic.de>
551 552
552 553 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
553 554 implements the basic functionality of browser commands that require
554 555 input. Reimplement the goto, find and findbackwards commands as
555 556 subclasses of _CommandInput. Add an input history and keymaps to those
556 557 commands. Add "\r" as a keyboard shortcut for the enterdefault and
557 558 execute commands.
558 559
559 560 2006-06-07 Ville Vainio <vivainio@gmail.com>
560 561
561 562 * iplib.py: ipython mybatch.ipy exits ipython immediately after
562 563 running the batch files instead of leaving the session open.
563 564
564 565 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
565 566
566 567 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
567 568 the original fix was incomplete. Patch submitted by W. Maier.
568 569
569 570 2006-06-07 Ville Vainio <vivainio@gmail.com>
570 571
571 572 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
572 573 Confirmation prompts can be supressed by 'quiet' option.
573 574 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
574 575
575 576 2006-06-06 *** Released version 0.7.2
576 577
577 578 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
578 579
579 580 * IPython/Release.py (version): Made 0.7.2 final for release.
580 581 Repo tagged and release cut.
581 582
582 583 2006-06-05 Ville Vainio <vivainio@gmail.com>
583 584
584 585 * Magic.py (magic_rehashx): Honor no_alias list earlier in
585 586 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
586 587
587 588 * upgrade_dir.py: try import 'path' module a bit harder
588 589 (for %upgrade)
589 590
590 591 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
591 592
592 593 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
593 594 instead of looping 20 times.
594 595
595 596 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
596 597 correctly at initialization time. Bug reported by Krishna Mohan
597 598 Gundu <gkmohan-AT-gmail.com> on the user list.
598 599
599 600 * IPython/Release.py (version): Mark 0.7.2 version to start
600 601 testing for release on 06/06.
601 602
602 603 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
603 604
604 605 * scripts/irunner: thin script interface so users don't have to
605 606 find the module and call it as an executable, since modules rarely
606 607 live in people's PATH.
607 608
608 609 * IPython/irunner.py (InteractiveRunner.__init__): added
609 610 delaybeforesend attribute to control delays with newer versions of
610 611 pexpect. Thanks to detailed help from pexpect's author, Noah
611 612 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
612 613 correctly (it works in NoColor mode).
613 614
614 615 * IPython/iplib.py (handle_normal): fix nasty crash reported on
615 616 SAGE list, from improper log() calls.
616 617
617 618 2006-05-31 Ville Vainio <vivainio@gmail.com>
618 619
619 620 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
620 621 with args in parens to work correctly with dirs that have spaces.
621 622
622 623 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
623 624
624 625 * IPython/Logger.py (Logger.logstart): add option to log raw input
625 626 instead of the processed one. A -r flag was added to the
626 627 %logstart magic used for controlling logging.
627 628
628 629 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
629 630
630 631 * IPython/iplib.py (InteractiveShell.__init__): add check for the
631 632 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
632 633 recognize the option. After a bug report by Will Maier. This
633 634 closes #64 (will do it after confirmation from W. Maier).
634 635
635 636 * IPython/irunner.py: New module to run scripts as if manually
636 637 typed into an interactive environment, based on pexpect. After a
637 638 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
638 639 ipython-user list. Simple unittests in the tests/ directory.
639 640
640 641 * tools/release: add Will Maier, OpenBSD port maintainer, to
641 642 recepients list. We are now officially part of the OpenBSD ports:
642 643 http://www.openbsd.org/ports.html ! Many thanks to Will for the
643 644 work.
644 645
645 646 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
646 647
647 648 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
648 649 so that it doesn't break tkinter apps.
649 650
650 651 * IPython/iplib.py (_prefilter): fix bug where aliases would
651 652 shadow variables when autocall was fully off. Reported by SAGE
652 653 author William Stein.
653 654
654 655 * IPython/OInspect.py (Inspector.__init__): add a flag to control
655 656 at what detail level strings are computed when foo? is requested.
656 657 This allows users to ask for example that the string form of an
657 658 object is only computed when foo?? is called, or even never, by
658 659 setting the object_info_string_level >= 2 in the configuration
659 660 file. This new option has been added and documented. After a
660 661 request by SAGE to be able to control the printing of very large
661 662 objects more easily.
662 663
663 664 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
664 665
665 666 * IPython/ipmaker.py (make_IPython): remove the ipython call path
666 667 from sys.argv, to be 100% consistent with how Python itself works
667 668 (as seen for example with python -i file.py). After a bug report
668 669 by Jeffrey Collins.
669 670
670 671 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
671 672 nasty bug which was preventing custom namespaces with -pylab,
672 673 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
673 674 compatibility (long gone from mpl).
674 675
675 676 * IPython/ipapi.py (make_session): name change: create->make. We
676 677 use make in other places (ipmaker,...), it's shorter and easier to
677 678 type and say, etc. I'm trying to clean things before 0.7.2 so
678 679 that I can keep things stable wrt to ipapi in the chainsaw branch.
679 680
680 681 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
681 682 python-mode recognizes our debugger mode. Add support for
682 683 autoindent inside (X)emacs. After a patch sent in by Jin Liu
683 684 <m.liu.jin-AT-gmail.com> originally written by
684 685 doxgen-AT-newsmth.net (with minor modifications for xemacs
685 686 compatibility)
686 687
687 688 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
688 689 tracebacks when walking the stack so that the stack tracking system
689 690 in emacs' python-mode can identify the frames correctly.
690 691
691 692 * IPython/ipmaker.py (make_IPython): make the internal (and
692 693 default config) autoedit_syntax value false by default. Too many
693 694 users have complained to me (both on and off-list) about problems
694 695 with this option being on by default, so I'm making it default to
695 696 off. It can still be enabled by anyone via the usual mechanisms.
696 697
697 698 * IPython/completer.py (Completer.attr_matches): add support for
698 699 PyCrust-style _getAttributeNames magic method. Patch contributed
699 700 by <mscott-AT-goldenspud.com>. Closes #50.
700 701
701 702 * IPython/iplib.py (InteractiveShell.__init__): remove the
702 703 deletion of exit/quit from __builtin__, which can break
703 704 third-party tools like the Zope debugging console. The
704 705 %exit/%quit magics remain. In general, it's probably a good idea
705 706 not to delete anything from __builtin__, since we never know what
706 707 that will break. In any case, python now (for 2.5) will support
707 708 'real' exit/quit, so this issue is moot. Closes #55.
708 709
709 710 * IPython/genutils.py (with_obj): rename the 'with' function to
710 711 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
711 712 becomes a language keyword. Closes #53.
712 713
713 714 * IPython/FakeModule.py (FakeModule.__init__): add a proper
714 715 __file__ attribute to this so it fools more things into thinking
715 716 it is a real module. Closes #59.
716 717
717 718 * IPython/Magic.py (magic_edit): add -n option to open the editor
718 719 at a specific line number. After a patch by Stefan van der Walt.
719 720
720 721 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
721 722
722 723 * IPython/iplib.py (edit_syntax_error): fix crash when for some
723 724 reason the file could not be opened. After automatic crash
724 725 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
725 726 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
726 727 (_should_recompile): Don't fire editor if using %bg, since there
727 728 is no file in the first place. From the same report as above.
728 729 (raw_input): protect against faulty third-party prefilters. After
729 730 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
730 731 while running under SAGE.
731 732
732 733 2006-05-23 Ville Vainio <vivainio@gmail.com>
733 734
734 735 * ipapi.py: Stripped down ip.to_user_ns() to work only as
735 736 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
736 737 now returns None (again), unless dummy is specifically allowed by
737 738 ipapi.get(allow_dummy=True).
738 739
739 740 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
740 741
741 742 * IPython: remove all 2.2-compatibility objects and hacks from
742 743 everywhere, since we only support 2.3 at this point. Docs
743 744 updated.
744 745
745 746 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
746 747 Anything requiring extra validation can be turned into a Python
747 748 property in the future. I used a property for the db one b/c
748 749 there was a nasty circularity problem with the initialization
749 750 order, which right now I don't have time to clean up.
750 751
751 752 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
752 753 another locking bug reported by Jorgen. I'm not 100% sure though,
753 754 so more testing is needed...
754 755
755 756 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
756 757
757 758 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
758 759 local variables from any routine in user code (typically executed
759 760 with %run) directly into the interactive namespace. Very useful
760 761 when doing complex debugging.
761 762 (IPythonNotRunning): Changed the default None object to a dummy
762 763 whose attributes can be queried as well as called without
763 764 exploding, to ease writing code which works transparently both in
764 765 and out of ipython and uses some of this API.
765 766
766 767 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
767 768
768 769 * IPython/hooks.py (result_display): Fix the fact that our display
769 770 hook was using str() instead of repr(), as the default python
770 771 console does. This had gone unnoticed b/c it only happened if
771 772 %Pprint was off, but the inconsistency was there.
772 773
773 774 2006-05-15 Ville Vainio <vivainio@gmail.com>
774 775
775 776 * Oinspect.py: Only show docstring for nonexisting/binary files
776 777 when doing object??, closing ticket #62
777 778
778 779 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
779 780
780 781 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
781 782 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
782 783 was being released in a routine which hadn't checked if it had
783 784 been the one to acquire it.
784 785
785 786 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
786 787
787 788 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
788 789
789 790 2006-04-11 Ville Vainio <vivainio@gmail.com>
790 791
791 792 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
792 793 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
793 794 prefilters, allowing stuff like magics and aliases in the file.
794 795
795 796 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
796 797 added. Supported now are "%clear in" and "%clear out" (clear input and
797 798 output history, respectively). Also fixed CachedOutput.flush to
798 799 properly flush the output cache.
799 800
800 801 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
801 802 half-success (and fail explicitly).
802 803
803 804 2006-03-28 Ville Vainio <vivainio@gmail.com>
804 805
805 806 * iplib.py: Fix quoting of aliases so that only argless ones
806 807 are quoted
807 808
808 809 2006-03-28 Ville Vainio <vivainio@gmail.com>
809 810
810 811 * iplib.py: Quote aliases with spaces in the name.
811 812 "c:\program files\blah\bin" is now legal alias target.
812 813
813 814 * ext_rehashdir.py: Space no longer allowed as arg
814 815 separator, since space is legal in path names.
815 816
816 817 2006-03-16 Ville Vainio <vivainio@gmail.com>
817 818
818 819 * upgrade_dir.py: Take path.py from Extensions, correcting
819 820 %upgrade magic
820 821
821 822 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
822 823
823 824 * hooks.py: Only enclose editor binary in quotes if legal and
824 825 necessary (space in the name, and is an existing file). Fixes a bug
825 826 reported by Zachary Pincus.
826 827
827 828 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
828 829
829 830 * Manual: thanks to a tip on proper color handling for Emacs, by
830 831 Eric J Haywiser <ejh1-AT-MIT.EDU>.
831 832
832 833 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
833 834 by applying the provided patch. Thanks to Liu Jin
834 835 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
835 836 XEmacs/Linux, I'm trusting the submitter that it actually helps
836 837 under win32/GNU Emacs. Will revisit if any problems are reported.
837 838
838 839 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
839 840
840 841 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
841 842 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
842 843
843 844 2006-03-12 Ville Vainio <vivainio@gmail.com>
844 845
845 846 * Magic.py (magic_timeit): Added %timeit magic, contributed by
846 847 Torsten Marek.
847 848
848 849 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
849 850
850 851 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
851 852 line ranges works again.
852 853
853 854 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
854 855
855 856 * IPython/iplib.py (showtraceback): add back sys.last_traceback
856 857 and friends, after a discussion with Zach Pincus on ipython-user.
857 858 I'm not 100% sure, but after thinking about it quite a bit, it may
858 859 be OK. Testing with the multithreaded shells didn't reveal any
859 860 problems, but let's keep an eye out.
860 861
861 862 In the process, I fixed a few things which were calling
862 863 self.InteractiveTB() directly (like safe_execfile), which is a
863 864 mistake: ALL exception reporting should be done by calling
864 865 self.showtraceback(), which handles state and tab-completion and
865 866 more.
866 867
867 868 2006-03-01 Ville Vainio <vivainio@gmail.com>
868 869
869 870 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
870 871 To use, do "from ipipe import *".
871 872
872 873 2006-02-24 Ville Vainio <vivainio@gmail.com>
873 874
874 875 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
875 876 "cleanly" and safely than the older upgrade mechanism.
876 877
877 878 2006-02-21 Ville Vainio <vivainio@gmail.com>
878 879
879 880 * Magic.py: %save works again.
880 881
881 882 2006-02-15 Ville Vainio <vivainio@gmail.com>
882 883
883 884 * Magic.py: %Pprint works again
884 885
885 886 * Extensions/ipy_sane_defaults.py: Provide everything provided
886 887 in default ipythonrc, to make it possible to have a completely empty
887 888 ipythonrc (and thus completely rc-file free configuration)
888 889
889 890 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
890 891
891 892 * IPython/hooks.py (editor): quote the call to the editor command,
892 893 to allow commands with spaces in them. Problem noted by watching
893 894 Ian Oswald's video about textpad under win32 at
894 895 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
895 896
896 897 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
897 898 describing magics (we haven't used @ for a loong time).
898 899
899 900 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
900 901 contributed by marienz to close
901 902 http://www.scipy.net/roundup/ipython/issue53.
902 903
903 904 2006-02-10 Ville Vainio <vivainio@gmail.com>
904 905
905 906 * genutils.py: getoutput now works in win32 too
906 907
907 908 * completer.py: alias and magic completion only invoked
908 909 at the first "item" in the line, to avoid "cd %store"
909 910 nonsense.
910 911
911 912 2006-02-09 Ville Vainio <vivainio@gmail.com>
912 913
913 914 * test/*: Added a unit testing framework (finally).
914 915 '%run runtests.py' to run test_*.
915 916
916 917 * ipapi.py: Exposed runlines and set_custom_exc
917 918
918 919 2006-02-07 Ville Vainio <vivainio@gmail.com>
919 920
920 921 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
921 922 instead use "f(1 2)" as before.
922 923
923 924 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
924 925
925 926 * IPython/demo.py (IPythonDemo): Add new classes to the demo
926 927 facilities, for demos processed by the IPython input filter
927 928 (IPythonDemo), and for running a script one-line-at-a-time as a
928 929 demo, both for pure Python (LineDemo) and for IPython-processed
929 930 input (IPythonLineDemo). After a request by Dave Kohel, from the
930 931 SAGE team.
931 932 (Demo.edit): added an edit() method to the demo objects, to edit
932 933 the in-memory copy of the last executed block.
933 934
934 935 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
935 936 processing to %edit, %macro and %save. These commands can now be
936 937 invoked on the unprocessed input as it was typed by the user
937 938 (without any prefilters applied). After requests by the SAGE team
938 939 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
939 940
940 941 2006-02-01 Ville Vainio <vivainio@gmail.com>
941 942
942 943 * setup.py, eggsetup.py: easy_install ipython==dev works
943 944 correctly now (on Linux)
944 945
945 946 * ipy_user_conf,ipmaker: user config changes, removed spurious
946 947 warnings
947 948
948 949 * iplib: if rc.banner is string, use it as is.
949 950
950 951 * Magic: %pycat accepts a string argument and pages it's contents.
951 952
952 953
953 954 2006-01-30 Ville Vainio <vivainio@gmail.com>
954 955
955 956 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
956 957 Now %store and bookmarks work through PickleShare, meaning that
957 958 concurrent access is possible and all ipython sessions see the
958 959 same database situation all the time, instead of snapshot of
959 960 the situation when the session was started. Hence, %bookmark
960 961 results are immediately accessible from othes sessions. The database
961 962 is also available for use by user extensions. See:
962 963 http://www.python.org/pypi/pickleshare
963 964
964 965 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
965 966
966 967 * aliases can now be %store'd
967 968
968 969 * path.py moved to Extensions so that pickleshare does not need
969 970 IPython-specific import. Extensions added to pythonpath right
970 971 at __init__.
971 972
972 973 * iplib.py: ipalias deprecated/redundant; aliases are converted and
973 974 called with _ip.system and the pre-transformed command string.
974 975
975 976 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
976 977
977 978 * IPython/iplib.py (interact): Fix that we were not catching
978 979 KeyboardInterrupt exceptions properly. I'm not quite sure why the
979 980 logic here had to change, but it's fixed now.
980 981
981 982 2006-01-29 Ville Vainio <vivainio@gmail.com>
982 983
983 984 * iplib.py: Try to import pyreadline on Windows.
984 985
985 986 2006-01-27 Ville Vainio <vivainio@gmail.com>
986 987
987 988 * iplib.py: Expose ipapi as _ip in builtin namespace.
988 989 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
989 990 and ip_set_hook (-> _ip.set_hook) redundant. % and !
990 991 syntax now produce _ip.* variant of the commands.
991 992
992 993 * "_ip.options().autoedit_syntax = 2" automatically throws
993 994 user to editor for syntax error correction without prompting.
994 995
995 996 2006-01-27 Ville Vainio <vivainio@gmail.com>
996 997
997 998 * ipmaker.py: Give "realistic" sys.argv for scripts (without
998 999 'ipython' at argv[0]) executed through command line.
999 1000 NOTE: this DEPRECATES calling ipython with multiple scripts
1000 1001 ("ipython a.py b.py c.py")
1001 1002
1002 1003 * iplib.py, hooks.py: Added configurable input prefilter,
1003 1004 named 'input_prefilter'. See ext_rescapture.py for example
1004 1005 usage.
1005 1006
1006 1007 * ext_rescapture.py, Magic.py: Better system command output capture
1007 1008 through 'var = !ls' (deprecates user-visible %sc). Same notation
1008 1009 applies for magics, 'var = %alias' assigns alias list to var.
1009 1010