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