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