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