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