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