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