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