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