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