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