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