##// END OF EJS Templates
Release IPython 0.8.4.
Fernando Perez -
Show More
@@ -1,89 +1,89 b''
1 1 # -*- coding: utf-8 -*-
2 2 """Release data for the IPython project.
3 3
4 4 $Id: Release.py 3002 2008-02-01 07:17:00Z fperez $"""
5 5
6 6 #*****************************************************************************
7 7 # Copyright (C) 2001-2006 Fernando Perez <fperez@colorado.edu>
8 8 #
9 9 # Copyright (c) 2001 Janko Hauser <jhauser@zscout.de> and Nathaniel Gray
10 10 # <n8gray@caltech.edu>
11 11 #
12 12 # Distributed under the terms of the BSD License. The full license is in
13 13 # the file COPYING, distributed as part of this software.
14 14 #*****************************************************************************
15 15
16 16 # Name of the package for release purposes. This is the name which labels
17 17 # the tarballs and RPMs made by distutils, so it's best to lowercase it.
18 18 name = 'ipython'
19 19
20 20 # For versions with substrings (like 0.6.16.svn), use an extra . to separate
21 21 # the new substring. We have to avoid using either dashes or underscores,
22 22 # because bdist_rpm does not accept dashes (an RPM) convention, and
23 23 # bdist_deb does not accept underscores (a Debian convention).
24 24
25 revision = '124'
25 revision = '128'
26 26 branch = 'ipython'
27 27
28 28 if branch == 'ipython':
29 29 version = '0.8.4.bzr.r' + revision
30 30 else:
31 31 version = '0.8.4.bzr.r%s.%s' % (revision,branch)
32 32
33 33 version = '0.8.4'
34 34
35 35 description = "An enhanced interactive Python shell."
36 36
37 37 long_description = \
38 38 """
39 39 IPython provides a replacement for the interactive Python interpreter with
40 40 extra functionality.
41 41
42 42 Main features:
43 43
44 44 * Comprehensive object introspection.
45 45
46 46 * Input history, persistent across sessions.
47 47
48 48 * Caching of output results during a session with automatically generated
49 49 references.
50 50
51 51 * Readline based name completion.
52 52
53 53 * Extensible system of 'magic' commands for controlling the environment and
54 54 performing many tasks related either to IPython or the operating system.
55 55
56 56 * Configuration system with easy switching between different setups (simpler
57 57 than changing $PYTHONSTARTUP environment variables every time).
58 58
59 59 * Session logging and reloading.
60 60
61 61 * Extensible syntax processing for special purpose situations.
62 62
63 63 * Access to the system shell with user-extensible alias system.
64 64
65 65 * Easily embeddable in other Python programs.
66 66
67 67 * Integrated access to the pdb debugger and the Python profiler.
68 68
69 69 The latest development version is always available at the IPython subversion
70 70 repository_.
71 71
72 72 .. _repository: http://ipython.scipy.org/svn/ipython/ipython/trunk#egg=ipython-dev
73 73 """
74 74
75 75 license = 'BSD'
76 76
77 77 authors = {'Fernando' : ('Fernando Perez','fperez@colorado.edu'),
78 78 'Janko' : ('Janko Hauser','jhauser@zscout.de'),
79 79 'Nathan' : ('Nathaniel Gray','n8gray@caltech.edu'),
80 80 'Ville' : ('Ville Vainio','vivainio@gmail.com')
81 81 }
82 82
83 83 url = 'http://ipython.scipy.org'
84 84
85 85 download_url = 'http://ipython.scipy.org/dist'
86 86
87 87 platforms = ['Linux','Mac OSX','Windows XP/2000/NT','Windows 95/98/ME']
88 88
89 89 keywords = ['Interactive','Interpreter','Shell']
@@ -1,7652 +1,7654 b''
1 2008-05-31 *** Released version 0.8.4
2
1 3 2008-05-31 Fernando Perez <Fernando.Perez@berkeley.edu>
2 4
3 5 * IPython/ipmaker.py (make_IPython): The -twisted option is fully
4 6 disabled.
5 7
6 8 * IPython/Shell.py (_select_shell): completely disable -twisted.
7 9 This code is of dubious quality and normal users should not
8 10 encounter it until we can clarify things further, even under
9 11 win32. Since we need a quick emergency 0.8.4 release, it is now
10 12 disabled completely. Users who want to run it can use the
11 13 following command (it's easy to put it in an alias or script):
12 14
13 15 python -c"from IPython import twshell;twshell.IPShellTwisted().mainloop()"
14 16
15 17 2008-05-30 Ville Vainio <vivainio@gmail.com>
16 18
17 19 * shell.py: disable -twisted on non-win32 platforms.
18 20 import sets module on python 2.3.
19 21
20 22 * ipy_profile_sh.py: disable ipy_signals. Now, ipython
21 23 is verified to work with python 2.3
22 24
23 25 * Release.py: update version to 0.8.4 for quick point fix
24 26
25 27 2008-05-28 *** Released version 0.8.3
26 28
27 29 2008-05-28 Fernando Perez <Fernando.Perez@berkeley.edu>
28 30
29 31 * ../win32_manual_post_install.py (run): Fix the windows installer
30 32 so the links to the docs are correct.
31 33
32 34 * IPython/ultraTB.py: flush stderr after writing to it to fix
33 35 problems with exception traceback ordering in some platforms.
34 36 Thanks to a report/fix by Jie Tang <jietang86-AT-gmail.com>.
35 37
36 38 * IPython/Magic.py (magic_cpaste): add stripping of continuation
37 39 prompts, feature requested by Stefan vdW.
38 40
39 41 * ../setup.py: updates to build and release tools in preparation
40 42 for 0.8.3 release.
41 43
42 44 2008-05-27 Ville Vainio <vivainio@gmail.com>
43 45
44 46 * iplib.py, ipmaker.py: survive lack of doctest and site._Helper
45 47 for minimal environments (e.g. Maemo sdk python)
46 48
47 49 * Magic.py: cpaste strips whitespace before >>> (allow pasting
48 50 doctests)
49 51
50 52 * ipy_completers.py: cd completer now does recursive path expand
51 53 (old behaviour is buggy on some readline versions)
52 54
53 55 2008-05-14 Ville Vainio <vivainio@gmail.com>
54 56
55 57 * Extensions/ipy_greedycompleter.py:
56 58 New extension that enables a bit more "relaxed" tab
57 59 completer that evaluates code without safety checks
58 60 (i.e. there can be side effects like function calls)
59 61
60 62 2008-04-20 Ville Vainio <vivainio@gmail.com>
61 63
62 64 * Extensions/ipy_lookfor.py: add %lookfor magic command
63 65 (search docstrings for words) by Pauli Virtanen. Close #245.
64 66
65 67 * Extension/ipy_jot.py: %jot and %read magics, analogous
66 68 to %store but you can specify some notes. Not read
67 69 in automatically on startup, you need %read.
68 70 Contributed by Yichun Wei.
69 71
70 72 2008-04-18 Fernando Perez <Fernando.Perez@berkeley.edu>
71 73
72 74 * IPython/genutils.py (page): apply workaround to curses bug that
73 75 can leave terminal corrupted after a call to initscr().
74 76
75 77 2008-04-15 Ville Vainio <vivainio@gmail.com>
76 78
77 79 * genutils.py: SList.grep supports 'field' argument
78 80
79 81 * ipy_completers.py: module completer looks inside
80 82 .egg zip files (patch by mc). Close #196.
81 83
82 84 2008-04-09 Ville Vainio <vivainio@gmail.com>
83 85
84 86 * deep_reload.py: do not crash on from __future__ import
85 87 absolute_import. Close #244.
86 88
87 89 2008-04-02 Ville Vainio <vivainio@gmail.com>
88 90
89 91 * ipy_winpdb.py: New extension for winpdb integration. %wdb
90 92 test.py is winpdb equivalent of %run -d test.py. winpdb is a
91 93 crossplatform remote GUI debugger based on wxpython.
92 94
93 95 2008-03-29 Ville Vainio <vivainio@gmail.com>
94 96
95 97 * ipython.rst, do_sphinx.py: New documentation base, based on
96 98 reStucturedText and Sphinx (html/pdf generation). The old Lyx
97 99 based documentation will not be updated anymore.
98 100
99 101 * jobctrl.py: Use shell in Popen for 'start' command (in windows).
100 102
101 103 2008-03-24 Ville Vainio <vivainio@gmail.com>
102 104
103 105 * ipython.rst, do_sphinx.py: New documentation base, based on
104 106 reStucturedText and Sphinx (html/pdf generation). The old Lyx
105 107 based documentation will not be updated anymore.
106 108
107 109 ipython.rst has up to date documentation on matters that were not
108 110 documented at all, and it also removes various
109 111 misdocumented/deprecated features.
110 112
111 113 2008-03-22 Ville Vainio <vivainio@gmail.com>
112 114
113 115 * Shell.py: Merge mtexp branch:
114 116 https://code.launchpad.net/~ipython/ipython/mtexp
115 117
116 118 Privides simpler and more robust MTInteractiveShell that won't
117 119 deadlock, even when the worker thread (GUI) stops doing runcode()
118 120 regularly. r71.
119 121
120 122 2008-03-20 Ville Vainio <vivainio@gmail.com>
121 123
122 124 * twshell.py: New shell that runs IPython code in Twisted reactor.
123 125 Launch by doing ipython -twisted. r67.
124 126
125 127 2008-03-19 Ville Vainio <vivainio@gmail.com>
126 128
127 129 * Magic.py: %rehashx works correctly when shadowed system commands
128 130 have upper case characters (e.g. Print.exe). r64.
129 131
130 132 * ipy_bzr.py, ipy_app_completers.py: new bzr completer that also
131 133 knows options to commands, based on bzrtools. Uses bzrlib
132 134 directly. r66.
133 135
134 136 2008-03-16 Ville Vainio <vivainio@gmail.com>
135 137
136 138 * make_tarball.py: Fixed for bzr.
137 139
138 140 * ipapi.py: Better _ip.runlines() script cleanup. r56,r79.
139 141
140 142 * ipy_vimserver.py, ipy.vim: New extension for vim server mode,
141 143 by Erich Heine.
142 144
143 145 2008-03-12 Ville Vainio <vivainio@gmail.com>
144 146
145 147 * ipmaker.py: Force (reload?) import of ipy_user_conf and
146 148 ipy_profile_foo, so that embedded instances can be relaunched and
147 149 configuration is still done. r50
148 150
149 151 * ipapi.py, test_embed.py: Allow specifying shell class in
150 152 launch_new_instance & make_new instance. Use this in
151 153 test_embed.py. r51.
152 154
153 155 test_embed.py is also a good and simple demo of embedding IPython.
154 156
155 157
156 158 2008-03-10 Ville Vainio <vivainio@gmail.com>
157 159
158 160 * tool/update_revnum.py: Change to bzr revisioning scheme in
159 161 revision numbers.
160 162
161 163 * Shell.py: Threading improvements:
162 164
163 165 In multithreaded shells, do not hang on macros and o.autoexec
164 166 commands (or anything executed with _ip.runlines()) anymore. Allow
165 167 recursive execution of IPython code in
166 168 MTInteractiveShell.runsource by checking if we are already in
167 169 worker thread, and execute code directly if we are. r48.
168 170
169 171 MTInteractiveShell.runsource: execute code directly if worker
170 172 thread is not running yet (this is the case in config files). r49.
171 173
172 174 2008-03-09 Ville Vainio <vivainio@gmail.com>
173 175
174 176 * ipy_profile_sh.py: You can now use $LA or LA() to refer to last
175 177 argument of previous command in sh profile. Similar to bash '!$'.
176 178 LA(3) or $LA(3) stands for last argument of input history command
177 179 3.
178 180
179 181 * Shell.py: -pylab names don't clutter %whos listing.
180 182
181 183 2008-03-07 Ville Vainio <vivainio@gmail.com>
182 184
183 185 * ipy_autoreload.py: new extension (by Pauli Virtanen) for
184 186 autoreloading modules; try %autoreload and %aimport. Close #154.
185 187 Uses the new pre_runcode_hook.
186 188
187 189 2008-02-24 Ville Vainio <vivainio@gmail.com>
188 190
189 191 * platutils_posix.py: freeze_term_title works
190 192
191 193 2008-02-21 Ville Vainio <vivainio@gmail.com>
192 194
193 195 * Magic.py: %quickref does not crash with empty docstring
194 196
195 197 2008-02-20 Ville Vainio <vivainio@gmail.com>
196 198
197 199 * completer.py: do not treat [](){} as protectable chars anymore,
198 200 close #233.
199 201
200 202 * completer.py: do not treat [](){} as protectable chars anymore
201 203
202 204 * magic.py, test_cpaste.py: Allow different prefix for pasting
203 205 from email
204 206
205 207 2008-02-17 Ville Vainio <vivainio@gmail.com>
206 208
207 209 * Switched over to Launchpad/bzr as primary VCS.
208 210
209 211 2008-02-14 Ville Vainio <vivainio@gmail.com>
210 212
211 213 * ipapi.py: _ip.runlines() is now much more liberal about
212 214 indentation - it cleans up the scripts it gets
213 215
214 216 2008-02-14 Ville Vainio <vivainio@gmail.com>
215 217
216 218 * Extensions/ipy_leo.py: created 'ILeo' IPython-Leo bridge.
217 219 Changes to it (later on) are too numerous to list in ChangeLog
218 220 until it stabilizes
219 221
220 222 2008-02-07 Darren Dale <darren.dale@cornell.edu>
221 223
222 224 * IPython/Shell.py: Call QtCore.pyqtRemoveInputHook() when creating
223 225 an IPShellQt4. PyQt4-4.2.1 and later uses PyOS_InputHook to improve
224 226 interaction in the interpreter (like Tkinter does), but it seems to
225 227 partially interfere with the IPython implementation and exec_()
226 228 still seems to block. So we disable the PyQt implementation and
227 229 stick with the IPython one for now.
228 230
229 231 2008-02-02 Walter Doerwald <walter@livinglogic.de>
230 232
231 233 * ipipe.py: A new ipipe table has been added: ialias produces all
232 234 entries from IPython's alias table.
233 235
234 236 2008-02-01 Fernando Perez <Fernando.Perez@colorado.edu>
235 237
236 238 * IPython/Shell.py (MTInteractiveShell.runcode): Improve handling
237 239 of KBINT in threaded shells. After code provided by Marc in #212.
238 240
239 241 2008-01-30 Fernando Perez <Fernando.Perez@colorado.edu>
240 242
241 243 * IPython/Shell.py (MTInteractiveShell.__init__): Fixed deadlock
242 244 that could occur due to a race condition in threaded shells.
243 245 Thanks to code provided by Marc, as #210.
244 246
245 247 2008-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
246 248
247 249 * IPython/Magic.py (magic_doctest_mode): respect the user's
248 250 settings for input separators rather than overriding them. After
249 251 a report by Jeff Kowalczyk <jtk-AT-yahoo.com>
250 252
251 253 * IPython/history.py (magic_history): Add support for declaring an
252 254 output file directly from the history command.
253 255
254 256 2008-01-21 Walter Doerwald <walter@livinglogic.de>
255 257
256 258 * ipipe.py: Register ipipe's displayhooks via the generic function
257 259 generics.result_display() instead of using ipapi.set_hook().
258 260
259 261 2008-01-19 Walter Doerwald <walter@livinglogic.de>
260 262
261 263 * ibrowse.py, igrid.py, ipipe.py:
262 264 The input object can now be passed to the constructor of the display classes.
263 265 This makes it possible to use them with objects that implement __or__.
264 266 Use this constructor in the displayhook instead of piping.
265 267
266 268 * ipipe.py: Importing astyle.py is done as late as possible to
267 269 avoid problems with circular imports.
268 270
269 271 2008-01-19 Ville Vainio <vivainio@gmail.com>
270 272
271 273 * hooks.py, iplib.py: Added 'shell_hook' to customize how
272 274 IPython calls shell.
273 275
274 276 * hooks.py, iplib.py: Added 'show_in_pager' hook to specify
275 277 how IPython pages text (%page, %pycat, %pdoc etc.)
276 278
277 279 * Extensions/jobctrl.py: Use shell_hook. New magics: '%tasks'
278 280 and '%kill' to kill hanging processes that won't obey ctrl+C.
279 281
280 282 2008-01-16 Ville Vainio <vivainio@gmail.com>
281 283
282 284 * ipy_completers.py: pyw extension support for %run completer.
283 285
284 286 2008-01-11 Ville Vainio <vivainio@gmail.com>
285 287
286 288 * iplib.py, ipmaker.py: new rc option - autoexec. It's a list
287 289 of ipython commands to be run when IPython has started up
288 290 (just before running the scripts and -c arg on command line).
289 291
290 292 * ipy_user_conf.py: Added an example on how to change term
291 293 colors in config file (through using autoexec).
292 294
293 295 * completer.py, test_completer.py: Ability to specify custom
294 296 get_endidx to replace readline.get_endidx. For emacs users.
295 297
296 298 2008-01-10 Ville Vainio <vivainio@gmail.com>
297 299
298 300 * Prompts.py (set_p_str): do not crash on illegal prompt strings
299 301
300 302 2008-01-08 Ville Vainio <vivainio@gmail.com>
301 303
302 304 * '%macro -r' (raw mode) is now default in sh profile.
303 305
304 306 2007-12-31 Ville Vainio <vivainio@gmail.com>
305 307
306 308 * completer.py: custom completer matching is now case sensitive
307 309 (#207).
308 310
309 311 * ultraTB.py, iplib.py: Add some KeyboardInterrupt catching in
310 312 an attempt to prevent occasional crashes.
311 313
312 314 * CrashHandler.py: Crash log dump now asks user to press enter
313 315 before exiting.
314 316
315 317 * Store _ip in user_ns instead of __builtin__, enabling safer
316 318 coexistence of multiple IPython instances in the same python
317 319 interpreter (#197).
318 320
319 321 * Debugger.py, ipmaker.py: Need to add '-pydb' command line
320 322 switch to enable pydb in post-mortem debugging and %run -d.
321 323
322 324 2007-12-28 Ville Vainio <vivainio@gmail.com>
323 325
324 326 * ipy_server.py: TCP socket server for "remote control" of an IPython
325 327 instance.
326 328
327 329 * Debugger.py: Change to PSF license
328 330
329 331 * simplegeneric.py: Add license & author notes.
330 332
331 333 * ipy_fsops.py: Added PathObj and FileObj, an object-oriented way
332 334 to navigate file system with a custom completer. Run
333 335 ipy_fsops.test_pathobj() to play with it.
334 336
335 337 2007-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
336 338
337 339 * IPython/dtutils.py: Add utilities for interactively running
338 340 doctests. Still needs work to more easily handle the namespace of
339 341 the package one may be working on, but the basics are in place.
340 342
341 343 2007-12-27 Ville Vainio <vivainio@gmail.com>
342 344
343 345 * ipy_completers.py: Applied arno's patch to get proper list of
344 346 packages in import completer. Closes #196.
345 347
346 348 2007-12-20 Ville Vainio <vivainio@gmail.com>
347 349
348 350 * completer.py, generics.py(complete_object): Allow
349 351 custom complers based on python objects via simplegeneric.
350 352 See generics.py / my_demo_complete_object
351 353
352 354 2007-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
353 355
354 356 * IPython/Prompts.py (BasePrompt.__nonzero__): add proper boolean
355 357 behavior to prompt objects, useful for display hooks to adjust
356 358 themselves depending on whether prompts will be there or not.
357 359
358 360 2007-12-13 Ville Vainio <vivainio@gmail.com>
359 361
360 362 * iplib.py(raw_input): unix readline does not allow unicode in
361 363 history, encode to normal string. After patch by Tiago.
362 364 Close #201
363 365
364 366 2007-12-12 Ville Vainio <vivainio@gmail.com>
365 367
366 368 * genutils.py (abbrev_cwd): Terminal title now shows 2 levels of
367 369 current directory.
368 370
369 371 2007-12-12 Fernando Perez <Fernando.Perez@colorado.edu>
370 372
371 373 * IPython/Shell.py (_select_shell): add support for controlling
372 374 the pylab threading mode directly at the command line, without
373 375 having to modify MPL config files. Added unit tests for this
374 376 feature, though manual/docs update is still pending, will do later.
375 377
376 378 2007-12-11 Ville Vainio <vivainio@gmail.com>
377 379
378 380 * ext_rescapture.py: var = !cmd is no longer verbose (to facilitate
379 381 use in scripts)
380 382
381 383 2007-12-07 Ville Vainio <vivainio@gmail.com>
382 384
383 385 * iplib.py, ipy_profile_sh.py: Do not escape # on command lines
384 386 anymore (to \#) - even if it is a comment char that is implicitly
385 387 escaped in some unix shells in interactive mode, it is ok to leave
386 388 it in IPython as such.
387 389
388 390
389 391 2007-12-01 Robert Kern <robert.kern@gmail.com>
390 392
391 393 * IPython/ultraTB.py (findsource): Improve the monkeypatch to
392 394 inspect.findsource(). It can now find source lines inside zipped
393 395 packages.
394 396
395 397 * IPython/ultraTB.py: When constructing tracebacks, try to use __file__
396 398 in the frame's namespace before trusting the filename in the code object
397 399 which created the frame.
398 400
399 401 2007-11-29 *** Released version 0.8.2
400 402
401 403 2007-11-25 Fernando Perez <Fernando.Perez@colorado.edu>
402 404
403 405 * IPython/Logger.py (Logger.logstop): add a proper logstop()
404 406 method to fully stop the logger, along with a corresponding
405 407 %logstop magic for interactive use.
406 408
407 409 * IPython/Extensions/ipy_host_completers.py: added new host
408 410 completers functionality, contributed by Gael Pasgrimaud
409 411 <gawel-AT-afpy.org>.
410 412
411 413 2007-11-24 Fernando Perez <Fernando.Perez@colorado.edu>
412 414
413 415 * IPython/DPyGetOpt.py (ArgumentError): Apply patch by Paul Mueller
414 416 <gakusei-AT-dakotacom.net>, to fix deprecated string exceptions in
415 417 options handling. Unicode fix in %whos (committed a while ago)
416 418 was also contributed by Paul.
417 419
418 420 2007-11-23 Darren Dale <darren.dale@cornell.edu>
419 421 * ipy_traits_completer.py: let traits_completer respect the user's
420 422 readline_omit__names setting.
421 423
422 424 2007-11-08 Ville Vainio <vivainio@gmail.com>
423 425
424 426 * ipy_completers.py (import completer): assume 'xml' module exists.
425 427 Do not add every module twice anymore. Closes #196.
426 428
427 429 * ipy_completers.py, ipy_app_completers.py: Add proper apt-get
428 430 completer that uses apt-cache to search for existing packages.
429 431
430 432 2007-11-06 Ville Vainio <vivainio@gmail.com>
431 433
432 434 * Prompts.py: Do not update _oh and _123 when do_full_cache is not
433 435 true. Closes #194.
434 436
435 437 2007-11-01 Brian Granger <ellisonbg@gmail.com>
436 438
437 439 * iplib.py, rlineimpl.py: Applied Body Water's patches to get IPython
438 440 working with OS X 10.5 libedit implementation of readline.
439 441
440 442 2007-10-24 Ville Vainio <vivainio@gmail.com>
441 443
442 444 * iplib.py(user_setup): To route around buggy installations where
443 445 UserConfig is not available, create a minimal _ipython.
444 446
445 447 * iplib.py: Unicode fixes from Jorgen.
446 448
447 449 * genutils.py: Slist now has new method 'fields()' for extraction of
448 450 whitespace-separated fields from line-oriented data.
449 451
450 452 2007-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
451 453
452 454 * IPython/OInspect.py (Inspector.pinfo): fix bug that could arise
453 455 when querying objects with no __class__ attribute (such as
454 456 f2py-generated modules).
455 457
456 458 2007-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
457 459
458 460 * IPython/Magic.py (magic_time): track compilation time and report
459 461 it if longer than 0.1s (fix done to %time and %timeit). After a
460 462 SAGE bug report: http://trac.sagemath.org/sage_trac/ticket/632.
461 463
462 464 2007-09-18 Ville Vainio <vivainio@gmail.com>
463 465
464 466 * genutils.py(make_quoted_expr): Do not use Itpl, it does
465 467 not support unicode at the moment. Fixes (many) magic calls with
466 468 special characters.
467 469
468 470 2007-09-14 Fernando Perez <Fernando.Perez@colorado.edu>
469 471
470 472 * IPython/genutils.py (doctest_reload): expose the doctest
471 473 reloader to the user so that people can easily reset doctest while
472 474 using it interactively. Fixes a problem reported by Jorgen.
473 475
474 476 * IPython/iplib.py (InteractiveShell.__init__): protect the
475 477 FakeModule instances used for __main__ in %run calls from
476 478 deletion, so that user code defined in them isn't left with
477 479 dangling references due to the Python module deletion machinery.
478 480 This should fix the problems reported by Darren.
479 481
480 482 2007-09-10 Darren Dale <dd55@cornell.edu>
481 483
482 484 * Cleanup of IPShellQt and IPShellQt4
483 485
484 486 2007-09-09 Fernando Perez <Fernando.Perez@colorado.edu>
485 487
486 488 * IPython/FakeModule.py (FakeModule.__init__): further fixes for
487 489 doctest support.
488 490
489 491 * IPython/iplib.py (safe_execfile): minor docstring improvements.
490 492
491 493 2007-09-08 Ville Vainio <vivainio@gmail.com>
492 494
493 495 * Magic.py (%pushd, %popd, %dirs): Fix dir stack - push *current*
494 496 directory, not the target directory.
495 497
496 498 * ipapi.py, Magic.py, iplib.py: Add ipapi.UsageError, a lighter weight
497 499 exception that won't print the tracebacks. Switched many magics to
498 500 raise them on error situations, also GetoptError is not printed
499 501 anymore.
500 502
501 503 2007-09-07 Ville Vainio <vivainio@gmail.com>
502 504
503 505 * iplib.py: do not auto-alias "dir", it screws up other dir auto
504 506 aliases.
505 507
506 508 * genutils.py: SList.grep() implemented.
507 509
508 510 * ipy_editors.py, UserConfig/ipy_user_conf.py: Add some editors
509 511 for easy "out of the box" setup of several common editors, so that
510 512 e.g. '%edit os.path.isfile' will jump to the correct line
511 513 automatically. Contributions for command lines of your favourite
512 514 editors welcome.
513 515
514 516 2007-09-07 Fernando Perez <Fernando.Perez@colorado.edu>
515 517
516 518 * IPython/OInspect.py (Inspector.pinfo): fixed bug that was
517 519 preventing source display in certain cases. In reality I think
518 520 the problem is with Ubuntu's Python build, but this change works
519 521 around the issue in some cases (not in all, unfortunately). I'd
520 522 filed a Python bug on this with more details, but in the change of
521 523 bug trackers it seems to have been lost.
522 524
523 525 * IPython/Magic.py (magic_dhist): restore %dhist. No, cd -TAB is
524 526 not the same, it's not self-documenting, doesn't allow range
525 527 selection, and sorts alphabetically instead of numerically.
526 528 (magic_r): restore %r. No, "up + enter. One char magic" is not
527 529 the same thing, since %r takes parameters to allow fast retrieval
528 530 of old commands. I've received emails from users who use this a
529 531 LOT, so it stays.
530 532 (magic_automagic): restore %automagic. "use _ip.option.automagic"
531 533 is not a valid replacement b/c it doesn't provide an complete
532 534 explanation (which the automagic docstring does).
533 535 (magic_autocall): restore %autocall, with improved docstring.
534 536 Same argument as for others, "use _ip.options.autocall" is not a
535 537 valid replacement.
536 538 (magic_pdef): restore %pdef & friends. Used widely, mentioned in
537 539 tutorials and online docs.
538 540
539 541 2007-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
540 542
541 543 * IPython/usage.py (quick_reference): mention magics in quickref,
542 544 modified main banner to mention %quickref.
543 545
544 546 * IPython/FakeModule.py (FakeModule): fixes for doctest compatibility.
545 547
546 548 2007-09-06 Ville Vainio <vivainio@gmail.com>
547 549
548 550 * ipy_rehashdir.py, ipy_workdir.py, ipy_fsops.py, iplib.py:
549 551 Callable aliases now pass the _ip as first arg. This breaks
550 552 compatibility with earlier 0.8.2.svn series! (though they should
551 553 not have been in use yet outside these few extensions)
552 554
553 555 2007-09-05 Ville Vainio <vivainio@gmail.com>
554 556
555 557 * external/mglob.py: expand('dirname') => ['dirname'], instead
556 558 of ['dirname/foo','dirname/bar', ...].
557 559
558 560 * Extensions/ipy_fsops.py: added, has usefull shell utils for plain
559 561 win32 installations: icp, imv, imkdir, igrep, irm, collect (collect
560 562 is useful for others as well).
561 563
562 564 * iplib.py: on callable aliases (as opposed to old style aliases),
563 565 do var_expand() immediately, and use make_quoted_expr instead
564 566 of hardcoded r"""
565 567
566 568 * Extensions/ipy_profile_sh.py: Try to detect cygwin on win32,
567 569 if not available load ipy_fsops.py for cp, mv, etc. replacements
568 570
569 571 * OInspect.py, ipy_which.py: improve %which and obj? for callable
570 572 aliases
571 573
572 574 2007-09-04 Ville Vainio <vivainio@gmail.com>
573 575
574 576 * ipy_profile_zope.py: add zope profile, by Stefan Eletzhofer.
575 577 Relicensed under BSD with the authors approval.
576 578
577 579 * ipmaker.py, usage.py: Remove %magic from default banner, improve
578 580 %quickref
579 581
580 582 2007-09-03 Ville Vainio <vivainio@gmail.com>
581 583
582 584 * Magic.py: %time now passes expression through prefilter,
583 585 allowing IPython syntax.
584 586
585 587 2007-09-01 Ville Vainio <vivainio@gmail.com>
586 588
587 589 * ipmaker.py: Always show full traceback when newstyle config fails
588 590
589 591 2007-08-27 Ville Vainio <vivainio@gmail.com>
590 592
591 593 * Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
592 594
593 595 2007-08-26 Ville Vainio <vivainio@gmail.com>
594 596
595 597 * ipmaker.py: Command line args have the highest priority again
596 598
597 599 * iplib.py, ipmaker.py: -i command line argument now behaves as in
598 600 normal python, i.e. leaves the IPython session running after -c
599 601 command or running a batch file from command line.
600 602
601 603 2007-08-22 Ville Vainio <vivainio@gmail.com>
602 604
603 605 * iplib.py: no extra empty (last) line in raw hist w/ multiline
604 606 statements
605 607
606 608 * logger.py: Fix bug where blank lines in history were not
607 609 added until AFTER adding the current line; translated and raw
608 610 history should finally be in sync with prompt now.
609 611
610 612 * ipy_completers.py: quick_completer now makes it easy to create
611 613 trivial custom completers
612 614
613 615 * clearcmd.py: shadow history compression & erasing, fixed input hist
614 616 clearing.
615 617
616 618 * envpersist.py, history.py: %env (sh profile only), %hist completers
617 619
618 620 * genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
619 621 term title now include the drive letter, and always use / instead of
620 622 os.sep (as per recommended approach for win32 ipython in general).
621 623
622 624 * ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
623 625 plain python scripts from ipykit command line by running
624 626 "py myscript.py", even w/o installed python.
625 627
626 628 2007-08-21 Ville Vainio <vivainio@gmail.com>
627 629
628 630 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
629 631 (for backwards compatibility)
630 632
631 633 * history.py: switch back to %hist -t from %hist -r as default.
632 634 At least until raw history is fixed for good.
633 635
634 636 2007-08-20 Ville Vainio <vivainio@gmail.com>
635 637
636 638 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
637 639 locate alias redeclarations etc. Also, avoid handling
638 640 _ip.IP.alias_table directly, prefer using _ip.defalias.
639 641
640 642
641 643 2007-08-15 Ville Vainio <vivainio@gmail.com>
642 644
643 645 * prefilter.py: ! is now always served first
644 646
645 647 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
646 648
647 649 * IPython/iplib.py (safe_execfile): fix the SystemExit
648 650 auto-suppression code to work in Python2.4 (the internal structure
649 651 of that exception changed and I'd only tested the code with 2.5).
650 652 Bug reported by a SciPy attendee.
651 653
652 654 2007-08-13 Ville Vainio <vivainio@gmail.com>
653 655
654 656 * prefilter.py: reverted !c:/bin/foo fix, made % in
655 657 multiline specials work again
656 658
657 659 2007-08-13 Ville Vainio <vivainio@gmail.com>
658 660
659 661 * prefilter.py: Take more care to special-case !, so that
660 662 !c:/bin/foo.exe works.
661 663
662 664 * setup.py: if we are building eggs, strip all docs and
663 665 examples (it doesn't make sense to bytecompile examples,
664 666 and docs would be in an awkward place anyway).
665 667
666 668 * Ryan Krauss' patch fixes start menu shortcuts when IPython
667 669 is installed into a directory that has spaces in the name.
668 670
669 671 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
670 672
671 673 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
672 674 doctest profile and %doctest_mode, so they actually generate the
673 675 blank lines needed by doctest to separate individual tests.
674 676
675 677 * IPython/iplib.py (safe_execfile): modify so that running code
676 678 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
677 679 doesn't get a printed traceback. Any other value in sys.exit(),
678 680 including the empty call, still generates a traceback. This
679 681 enables use of %run without having to pass '-e' for codes that
680 682 correctly set the exit status flag.
681 683
682 684 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
683 685
684 686 * IPython/iplib.py (InteractiveShell.post_config_initialization):
685 687 fix problems with doctests failing when run inside IPython due to
686 688 IPython's modifications of sys.displayhook.
687 689
688 690 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
689 691
690 692 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
691 693 a string with names.
692 694
693 695 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
694 696
695 697 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
696 698 magic to toggle on/off the doctest pasting support without having
697 699 to leave a session to switch to a separate profile.
698 700
699 701 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
700 702
701 703 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
702 704 introduce a blank line between inputs, to conform to doctest
703 705 requirements.
704 706
705 707 * IPython/OInspect.py (Inspector.pinfo): fix another part where
706 708 auto-generated docstrings for new-style classes were showing up.
707 709
708 710 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
709 711
710 712 * api_changes: Add new file to track backward-incompatible
711 713 user-visible changes.
712 714
713 715 2007-08-06 Ville Vainio <vivainio@gmail.com>
714 716
715 717 * ipmaker.py: fix bug where user_config_ns didn't exist at all
716 718 before all the config files were handled.
717 719
718 720 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
719 721
720 722 * IPython/irunner.py (RunnerFactory): Add new factory class for
721 723 creating reusable runners based on filenames.
722 724
723 725 * IPython/Extensions/ipy_profile_doctest.py: New profile for
724 726 doctest support. It sets prompts/exceptions as similar to
725 727 standard Python as possible, so that ipython sessions in this
726 728 profile can be easily pasted as doctests with minimal
727 729 modifications. It also enables pasting of doctests from external
728 730 sources (even if they have leading whitespace), so that you can
729 731 rerun doctests from existing sources.
730 732
731 733 * IPython/iplib.py (_prefilter): fix a buglet where after entering
732 734 some whitespace, the prompt would become a continuation prompt
733 735 with no way of exiting it other than Ctrl-C. This fix brings us
734 736 into conformity with how the default python prompt works.
735 737
736 738 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
737 739 Add support for pasting not only lines that start with '>>>', but
738 740 also with ' >>>'. That is, arbitrary whitespace can now precede
739 741 the prompts. This makes the system useful for pasting doctests
740 742 from docstrings back into a normal session.
741 743
742 744 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
743 745
744 746 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
745 747 r1357, which had killed multiple invocations of an embedded
746 748 ipython (this means that example-embed has been broken for over 1
747 749 year!!!). Rather than possibly breaking the batch stuff for which
748 750 the code in iplib.py/interact was introduced, I worked around the
749 751 problem in the embedding class in Shell.py. We really need a
750 752 bloody test suite for this code, I'm sick of finding stuff that
751 753 used to work breaking left and right every time I use an old
752 754 feature I hadn't touched in a few months.
753 755 (kill_embedded): Add a new magic that only shows up in embedded
754 756 mode, to allow users to permanently deactivate an embedded instance.
755 757
756 758 2007-08-01 Ville Vainio <vivainio@gmail.com>
757 759
758 760 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
759 761 history gets out of sync on runlines (e.g. when running macros).
760 762
761 763 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
762 764
763 765 * IPython/Magic.py (magic_colors): fix win32-related error message
764 766 that could appear under *nix when readline was missing. Patch by
765 767 Scott Jackson, closes #175.
766 768
767 769 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
768 770
769 771 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
770 772 completer that it traits-aware, so that traits objects don't show
771 773 all of their internal attributes all the time.
772 774
773 775 * IPython/genutils.py (dir2): moved this code from inside
774 776 completer.py to expose it publicly, so I could use it in the
775 777 wildcards bugfix.
776 778
777 779 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
778 780 Stefan with Traits.
779 781
780 782 * IPython/completer.py (Completer.attr_matches): change internal
781 783 var name from 'object' to 'obj', since 'object' is now a builtin
782 784 and this can lead to weird bugs if reusing this code elsewhere.
783 785
784 786 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
785 787
786 788 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
787 789 'foo?' and update the code to prevent printing of default
788 790 docstrings that started appearing after I added support for
789 791 new-style classes. The approach I'm using isn't ideal (I just
790 792 special-case those strings) but I'm not sure how to more robustly
791 793 differentiate between truly user-written strings and Python's
792 794 automatic ones.
793 795
794 796 2007-07-09 Ville Vainio <vivainio@gmail.com>
795 797
796 798 * completer.py: Applied Matthew Neeley's patch:
797 799 Dynamic attributes from trait_names and _getAttributeNames are added
798 800 to the list of tab completions, but when this happens, the attribute
799 801 list is turned into a set, so the attributes are unordered when
800 802 printed, which makes it hard to find the right completion. This patch
801 803 turns this set back into a list and sort it.
802 804
803 805 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
804 806
805 807 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
806 808 classes in various inspector functions.
807 809
808 810 2007-06-28 Ville Vainio <vivainio@gmail.com>
809 811
810 812 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
811 813 Implement "shadow" namespace, and callable aliases that reside there.
812 814 Use them by:
813 815
814 816 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
815 817
816 818 foo hello world
817 819 (gets translated to:)
818 820 _sh.foo(r"""hello world""")
819 821
820 822 In practice, this kind of alias can take the role of a magic function
821 823
822 824 * New generic inspect_object, called on obj? and obj??
823 825
824 826 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
825 827
826 828 * IPython/ultraTB.py (findsource): fix a problem with
827 829 inspect.getfile that can cause crashes during traceback construction.
828 830
829 831 2007-06-14 Ville Vainio <vivainio@gmail.com>
830 832
831 833 * iplib.py (handle_auto): Try to use ascii for printing "--->"
832 834 autocall rewrite indication, becausesometimes unicode fails to print
833 835 properly (and you get ' - - - '). Use plain uncoloured ---> for
834 836 unicode.
835 837
836 838 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
837 839
838 840 . pickleshare 'hash' commands (hget, hset, hcompress,
839 841 hdict) for efficient shadow history storage.
840 842
841 843 2007-06-13 Ville Vainio <vivainio@gmail.com>
842 844
843 845 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
844 846 Added kw arg 'interactive', tell whether vars should be visible
845 847 with %whos.
846 848
847 849 2007-06-11 Ville Vainio <vivainio@gmail.com>
848 850
849 851 * pspersistence.py, Magic.py, iplib.py: directory history now saved
850 852 to db
851 853
852 854 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
853 855 Also, it exits IPython immediately after evaluating the command (just like
854 856 std python)
855 857
856 858 2007-06-05 Walter Doerwald <walter@livinglogic.de>
857 859
858 860 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
859 861 Python string and captures the output. (Idea and original patch by
860 862 Stefan van der Walt)
861 863
862 864 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
863 865
864 866 * IPython/ultraTB.py (VerboseTB.text): update printing of
865 867 exception types for Python 2.5 (now all exceptions in the stdlib
866 868 are new-style classes).
867 869
868 870 2007-05-31 Walter Doerwald <walter@livinglogic.de>
869 871
870 872 * IPython/Extensions/igrid.py: Add new commands refresh and
871 873 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
872 874 the iterator once (refresh) or after every x seconds (refresh_timer).
873 875 Add a working implementation of "searchexpression", where the text
874 876 entered is not the text to search for, but an expression that must
875 877 be true. Added display of shortcuts to the menu. Added commands "pickinput"
876 878 and "pickinputattr" that put the object or attribute under the cursor
877 879 in the input line. Split the statusbar to be able to display the currently
878 880 active refresh interval. (Patch by Nik Tautenhahn)
879 881
880 882 2007-05-29 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
881 883
882 884 * fixing set_term_title to use ctypes as default
883 885
884 886 * fixing set_term_title fallback to work when curent dir
885 887 is on a windows network share
886 888
887 889 2007-05-28 Ville Vainio <vivainio@gmail.com>
888 890
889 891 * %cpaste: strip + with > from left (diffs).
890 892
891 893 * iplib.py: Fix crash when readline not installed
892 894
893 895 2007-05-26 Ville Vainio <vivainio@gmail.com>
894 896
895 897 * generics.py: introduce easy to extend result_display generic
896 898 function (using simplegeneric.py).
897 899
898 900 * Fixed the append functionality of %set.
899 901
900 902 2007-05-25 Ville Vainio <vivainio@gmail.com>
901 903
902 904 * New magic: %rep (fetch / run old commands from history)
903 905
904 906 * New extension: mglob (%mglob magic), for powerful glob / find /filter
905 907 like functionality
906 908
907 909 % maghistory.py: %hist -g PATTERM greps the history for pattern
908 910
909 911 2007-05-24 Walter Doerwald <walter@livinglogic.de>
910 912
911 913 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
912 914 browse the IPython input history
913 915
914 916 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
915 917 (mapped to "i") can be used to put the object under the curser in the input
916 918 line. pickinputattr (mapped to "I") does the same for the attribute under
917 919 the cursor.
918 920
919 921 2007-05-24 Ville Vainio <vivainio@gmail.com>
920 922
921 923 * Grand magic cleansing (changeset [2380]):
922 924
923 925 * Introduce ipy_legacy.py where the following magics were
924 926 moved:
925 927
926 928 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
927 929
928 930 If you need them, either use default profile or "import ipy_legacy"
929 931 in your ipy_user_conf.py
930 932
931 933 * Move sh and scipy profile to Extensions from UserConfig. this implies
932 934 you should not edit them, but you don't need to run %upgrade when
933 935 upgrading IPython anymore.
934 936
935 937 * %hist/%history now operates in "raw" mode by default. To get the old
936 938 behaviour, run '%hist -n' (native mode).
937 939
938 940 * split ipy_stock_completers.py to ipy_stock_completers.py and
939 941 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
940 942 installed as default.
941 943
942 944 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
943 945 handling.
944 946
945 947 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
946 948 input if readline is available.
947 949
948 950 2007-05-23 Ville Vainio <vivainio@gmail.com>
949 951
950 952 * macro.py: %store uses __getstate__ properly
951 953
952 954 * exesetup.py: added new setup script for creating
953 955 standalone IPython executables with py2exe (i.e.
954 956 no python installation required).
955 957
956 958 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
957 959 its place.
958 960
959 961 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
960 962
961 963 2007-05-21 Ville Vainio <vivainio@gmail.com>
962 964
963 965 * platutil_win32.py (set_term_title): handle
964 966 failure of 'title' system call properly.
965 967
966 968 2007-05-17 Walter Doerwald <walter@livinglogic.de>
967 969
968 970 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
969 971 (Bug detected by Paul Mueller).
970 972
971 973 2007-05-16 Ville Vainio <vivainio@gmail.com>
972 974
973 975 * ipy_profile_sci.py, ipython_win_post_install.py: Create
974 976 new "sci" profile, effectively a modern version of the old
975 977 "scipy" profile (which is now slated for deprecation).
976 978
977 979 2007-05-15 Ville Vainio <vivainio@gmail.com>
978 980
979 981 * pycolorize.py, pycolor.1: Paul Mueller's patches that
980 982 make pycolorize read input from stdin when run without arguments.
981 983
982 984 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
983 985
984 986 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
985 987 it in sh profile (instead of ipy_system_conf.py).
986 988
987 989 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
988 990 aliases are now lower case on windows (MyCommand.exe => mycommand).
989 991
990 992 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
991 993 Macros are now callable objects that inherit from ipapi.IPyAutocall,
992 994 i.e. get autocalled regardless of system autocall setting.
993 995
994 996 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
995 997
996 998 * IPython/rlineimpl.py: check for clear_history in readline and
997 999 make it a dummy no-op if not available. This function isn't
998 1000 guaranteed to be in the API and appeared in Python 2.4, so we need
999 1001 to check it ourselves. Also, clean up this file quite a bit.
1000 1002
1001 1003 * ipython.1: update man page and full manual with information
1002 1004 about threads (remove outdated warning). Closes #151.
1003 1005
1004 1006 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
1005 1007
1006 1008 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
1007 1009 in trunk (note that this made it into the 0.8.1 release already,
1008 1010 but the changelogs didn't get coordinated). Many thanks to Gael
1009 1011 Varoquaux <gael.varoquaux-AT-normalesup.org>
1010 1012
1011 1013 2007-05-09 *** Released version 0.8.1
1012 1014
1013 1015 2007-05-10 Walter Doerwald <walter@livinglogic.de>
1014 1016
1015 1017 * IPython/Extensions/igrid.py: Incorporate html help into
1016 1018 the module, so we don't have to search for the file.
1017 1019
1018 1020 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
1019 1021
1020 1022 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
1021 1023
1022 1024 2007-04-30 Ville Vainio <vivainio@gmail.com>
1023 1025
1024 1026 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
1025 1027 user has illegal (non-ascii) home directory name
1026 1028
1027 1029 2007-04-27 Ville Vainio <vivainio@gmail.com>
1028 1030
1029 1031 * platutils_win32.py: implement set_term_title for windows
1030 1032
1031 1033 * Update version number
1032 1034
1033 1035 * ipy_profile_sh.py: more informative prompt (2 dir levels)
1034 1036
1035 1037 2007-04-26 Walter Doerwald <walter@livinglogic.de>
1036 1038
1037 1039 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
1038 1040 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
1039 1041 bug discovered by Ville).
1040 1042
1041 1043 2007-04-26 Ville Vainio <vivainio@gmail.com>
1042 1044
1043 1045 * Extensions/ipy_completers.py: Olivier's module completer now
1044 1046 saves the list of root modules if it takes > 4 secs on the first run.
1045 1047
1046 1048 * Magic.py (%rehashx): %rehashx now clears the completer cache
1047 1049
1048 1050
1049 1051 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
1050 1052
1051 1053 * ipython.el: fix incorrect color scheme, reported by Stefan.
1052 1054 Closes #149.
1053 1055
1054 1056 * IPython/PyColorize.py (Parser.format2): fix state-handling
1055 1057 logic. I still don't like how that code handles state, but at
1056 1058 least now it should be correct, if inelegant. Closes #146.
1057 1059
1058 1060 2007-04-25 Ville Vainio <vivainio@gmail.com>
1059 1061
1060 1062 * Extensions/ipy_which.py: added extension for %which magic, works
1061 1063 a lot like unix 'which' but also finds and expands aliases, and
1062 1064 allows wildcards.
1063 1065
1064 1066 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
1065 1067 as opposed to returning nothing.
1066 1068
1067 1069 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
1068 1070 ipy_stock_completers on default profile, do import on sh profile.
1069 1071
1070 1072 2007-04-22 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1071 1073
1072 1074 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
1073 1075 like ipython.py foo.py which raised a IndexError.
1074 1076
1075 1077 2007-04-21 Ville Vainio <vivainio@gmail.com>
1076 1078
1077 1079 * Extensions/ipy_extutil.py: added extension to manage other ipython
1078 1080 extensions. Now only supports 'ls' == list extensions.
1079 1081
1080 1082 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
1081 1083
1082 1084 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
1083 1085 would prevent use of the exception system outside of a running
1084 1086 IPython instance.
1085 1087
1086 1088 2007-04-20 Ville Vainio <vivainio@gmail.com>
1087 1089
1088 1090 * Extensions/ipy_render.py: added extension for easy
1089 1091 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
1090 1092 'Iptl' template notation,
1091 1093
1092 1094 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
1093 1095 safer & faster 'import' completer.
1094 1096
1095 1097 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
1096 1098 and _ip.defalias(name, command).
1097 1099
1098 1100 * Extensions/ipy_exportdb.py: New extension for exporting all the
1099 1101 %store'd data in a portable format (normal ipapi calls like
1100 1102 defmacro() etc.)
1101 1103
1102 1104 2007-04-19 Ville Vainio <vivainio@gmail.com>
1103 1105
1104 1106 * upgrade_dir.py: skip junk files like *.pyc
1105 1107
1106 1108 * Release.py: version number to 0.8.1
1107 1109
1108 1110 2007-04-18 Ville Vainio <vivainio@gmail.com>
1109 1111
1110 1112 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
1111 1113 and later on win32.
1112 1114
1113 1115 2007-04-16 Ville Vainio <vivainio@gmail.com>
1114 1116
1115 1117 * iplib.py (showtraceback): Do not crash when running w/o readline.
1116 1118
1117 1119 2007-04-12 Walter Doerwald <walter@livinglogic.de>
1118 1120
1119 1121 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
1120 1122 sorted (case sensitive with files and dirs mixed).
1121 1123
1122 1124 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
1123 1125
1124 1126 * IPython/Release.py (version): Open trunk for 0.8.1 development.
1125 1127
1126 1128 2007-04-10 *** Released version 0.8.0
1127 1129
1128 1130 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
1129 1131
1130 1132 * Tag 0.8.0 for release.
1131 1133
1132 1134 * IPython/iplib.py (reloadhist): add API function to cleanly
1133 1135 reload the readline history, which was growing inappropriately on
1134 1136 every %run call.
1135 1137
1136 1138 * win32_manual_post_install.py (run): apply last part of Nicolas
1137 1139 Pernetty's patch (I'd accidentally applied it in a different
1138 1140 directory and this particular file didn't get patched).
1139 1141
1140 1142 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
1141 1143
1142 1144 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
1143 1145 find the main thread id and use the proper API call. Thanks to
1144 1146 Stefan for the fix.
1145 1147
1146 1148 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
1147 1149 unit tests to reflect fixed ticket #52, and add more tests sent by
1148 1150 him.
1149 1151
1150 1152 * IPython/iplib.py (raw_input): restore the readline completer
1151 1153 state on every input, in case third-party code messed it up.
1152 1154 (_prefilter): revert recent addition of early-escape checks which
1153 1155 prevent many valid alias calls from working.
1154 1156
1155 1157 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
1156 1158 flag for sigint handler so we don't run a full signal() call on
1157 1159 each runcode access.
1158 1160
1159 1161 * IPython/Magic.py (magic_whos): small improvement to diagnostic
1160 1162 message.
1161 1163
1162 1164 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
1163 1165
1164 1166 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
1165 1167 asynchronous exceptions working, i.e., Ctrl-C can actually
1166 1168 interrupt long-running code in the multithreaded shells.
1167 1169
1168 1170 This is using Tomer Filiba's great ctypes-based trick:
1169 1171 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
1170 1172 this in the past, but hadn't been able to make it work before. So
1171 1173 far it looks like it's actually running, but this needs more
1172 1174 testing. If it really works, I'll be *very* happy, and we'll owe
1173 1175 a huge thank you to Tomer. My current implementation is ugly,
1174 1176 hackish and uses nasty globals, but I don't want to try and clean
1175 1177 anything up until we know if it actually works.
1176 1178
1177 1179 NOTE: this feature needs ctypes to work. ctypes is included in
1178 1180 Python2.5, but 2.4 users will need to manually install it. This
1179 1181 feature makes multi-threaded shells so much more usable that it's
1180 1182 a minor price to pay (ctypes is very easy to install, already a
1181 1183 requirement for win32 and available in major linux distros).
1182 1184
1183 1185 2007-04-04 Ville Vainio <vivainio@gmail.com>
1184 1186
1185 1187 * Extensions/ipy_completers.py, ipy_stock_completers.py:
1186 1188 Moved implementations of 'bundled' completers to ipy_completers.py,
1187 1189 they are only enabled in ipy_stock_completers.py.
1188 1190
1189 1191 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
1190 1192
1191 1193 * IPython/PyColorize.py (Parser.format2): Fix identation of
1192 1194 colorzied output and return early if color scheme is NoColor, to
1193 1195 avoid unnecessary and expensive tokenization. Closes #131.
1194 1196
1195 1197 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
1196 1198
1197 1199 * IPython/Debugger.py: disable the use of pydb version 1.17. It
1198 1200 has a critical bug (a missing import that makes post-mortem not
1199 1201 work at all). Unfortunately as of this time, this is the version
1200 1202 shipped with Ubuntu Edgy, so quite a few people have this one. I
1201 1203 hope Edgy will update to a more recent package.
1202 1204
1203 1205 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
1204 1206
1205 1207 * IPython/iplib.py (_prefilter): close #52, second part of a patch
1206 1208 set by Stefan (only the first part had been applied before).
1207 1209
1208 1210 * IPython/Extensions/ipy_stock_completers.py (module_completer):
1209 1211 remove usage of the dangerous pkgutil.walk_packages(). See
1210 1212 details in comments left in the code.
1211 1213
1212 1214 * IPython/Magic.py (magic_whos): add support for numpy arrays
1213 1215 similar to what we had for Numeric.
1214 1216
1215 1217 * IPython/completer.py (IPCompleter.complete): extend the
1216 1218 complete() call API to support completions by other mechanisms
1217 1219 than readline. Closes #109.
1218 1220
1219 1221 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
1220 1222 protect against a bug in Python's execfile(). Closes #123.
1221 1223
1222 1224 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
1223 1225
1224 1226 * IPython/iplib.py (split_user_input): ensure that when splitting
1225 1227 user input, the part that can be treated as a python name is pure
1226 1228 ascii (Python identifiers MUST be pure ascii). Part of the
1227 1229 ongoing Unicode support work.
1228 1230
1229 1231 * IPython/Prompts.py (prompt_specials_color): Add \N for the
1230 1232 actual prompt number, without any coloring. This allows users to
1231 1233 produce numbered prompts with their own colors. Added after a
1232 1234 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
1233 1235
1234 1236 2007-03-31 Walter Doerwald <walter@livinglogic.de>
1235 1237
1236 1238 * IPython/Extensions/igrid.py: Map the return key
1237 1239 to enter() and shift-return to enterattr().
1238 1240
1239 1241 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
1240 1242
1241 1243 * IPython/Magic.py (magic_psearch): add unicode support by
1242 1244 encoding to ascii the input, since this routine also only deals
1243 1245 with valid Python names. Fixes a bug reported by Stefan.
1244 1246
1245 1247 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
1246 1248
1247 1249 * IPython/Magic.py (_inspect): convert unicode input into ascii
1248 1250 before trying to evaluate it as a Python identifier. This fixes a
1249 1251 problem that the new unicode support had introduced when analyzing
1250 1252 long definition lines for functions.
1251 1253
1252 1254 2007-03-24 Walter Doerwald <walter@livinglogic.de>
1253 1255
1254 1256 * IPython/Extensions/igrid.py: Fix picking. Using
1255 1257 igrid with wxPython 2.6 and -wthread should work now.
1256 1258 igrid.display() simply tries to create a frame without
1257 1259 an application. Only if this fails an application is created.
1258 1260
1259 1261 2007-03-23 Walter Doerwald <walter@livinglogic.de>
1260 1262
1261 1263 * IPython/Extensions/path.py: Updated to version 2.2.
1262 1264
1263 1265 2007-03-23 Ville Vainio <vivainio@gmail.com>
1264 1266
1265 1267 * iplib.py: recursive alias expansion now works better, so that
1266 1268 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
1267 1269 doesn't trip up the process, if 'd' has been aliased to 'ls'.
1268 1270
1269 1271 * Extensions/ipy_gnuglobal.py added, provides %global magic
1270 1272 for users of http://www.gnu.org/software/global
1271 1273
1272 1274 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
1273 1275 Closes #52. Patch by Stefan van der Walt.
1274 1276
1275 1277 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
1276 1278
1277 1279 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
1278 1280 respect the __file__ attribute when using %run. Thanks to a bug
1279 1281 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
1280 1282
1281 1283 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
1282 1284
1283 1285 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
1284 1286 input. Patch sent by Stefan.
1285 1287
1286 1288 2007-03-20 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1287 1289 * IPython/Extensions/ipy_stock_completer.py
1288 1290 shlex_split, fix bug in shlex_split. len function
1289 1291 call was missing an if statement. Caused shlex_split to
1290 1292 sometimes return "" as last element.
1291 1293
1292 1294 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
1293 1295
1294 1296 * IPython/completer.py
1295 1297 (IPCompleter.file_matches.single_dir_expand): fix a problem
1296 1298 reported by Stefan, where directories containign a single subdir
1297 1299 would be completed too early.
1298 1300
1299 1301 * IPython/Shell.py (_load_pylab): Make the execution of 'from
1300 1302 pylab import *' when -pylab is given be optional. A new flag,
1301 1303 pylab_import_all controls this behavior, the default is True for
1302 1304 backwards compatibility.
1303 1305
1304 1306 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
1305 1307 modified) R. Bernstein's patch for fully syntax highlighted
1306 1308 tracebacks. The functionality is also available under ultraTB for
1307 1309 non-ipython users (someone using ultraTB but outside an ipython
1308 1310 session). They can select the color scheme by setting the
1309 1311 module-level global DEFAULT_SCHEME. The highlight functionality
1310 1312 also works when debugging.
1311 1313
1312 1314 * IPython/genutils.py (IOStream.close): small patch by
1313 1315 R. Bernstein for improved pydb support.
1314 1316
1315 1317 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
1316 1318 DaveS <davls@telus.net> to improve support of debugging under
1317 1319 NTEmacs, including improved pydb behavior.
1318 1320
1319 1321 * IPython/Magic.py (magic_prun): Fix saving of profile info for
1320 1322 Python 2.5, where the stats object API changed a little. Thanks
1321 1323 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
1322 1324
1323 1325 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
1324 1326 Pernetty's patch to improve support for (X)Emacs under Win32.
1325 1327
1326 1328 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
1327 1329
1328 1330 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
1329 1331 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
1330 1332 a report by Nik Tautenhahn.
1331 1333
1332 1334 2007-03-16 Walter Doerwald <walter@livinglogic.de>
1333 1335
1334 1336 * setup.py: Add the igrid help files to the list of data files
1335 1337 to be installed alongside igrid.
1336 1338 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
1337 1339 Show the input object of the igrid browser as the window tile.
1338 1340 Show the object the cursor is on in the statusbar.
1339 1341
1340 1342 2007-03-15 Ville Vainio <vivainio@gmail.com>
1341 1343
1342 1344 * Extensions/ipy_stock_completers.py: Fixed exception
1343 1345 on mismatching quotes in %run completer. Patch by
1344 1346 Jorgen Stenarson. Closes #127.
1345 1347
1346 1348 2007-03-14 Ville Vainio <vivainio@gmail.com>
1347 1349
1348 1350 * Extensions/ext_rehashdir.py: Do not do auto_alias
1349 1351 in %rehashdir, it clobbers %store'd aliases.
1350 1352
1351 1353 * UserConfig/ipy_profile_sh.py: envpersist.py extension
1352 1354 (beefed up %env) imported for sh profile.
1353 1355
1354 1356 2007-03-10 Walter Doerwald <walter@livinglogic.de>
1355 1357
1356 1358 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
1357 1359 as the default browser.
1358 1360 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
1359 1361 As igrid displays all attributes it ever encounters, fetch() (which has
1360 1362 been renamed to _fetch()) doesn't have to recalculate the display attributes
1361 1363 every time a new item is fetched. This should speed up scrolling.
1362 1364
1363 1365 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
1364 1366
1365 1367 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
1366 1368 Schmolck's recently reported tab-completion bug (my previous one
1367 1369 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
1368 1370
1369 1371 2007-03-09 Walter Doerwald <walter@livinglogic.de>
1370 1372
1371 1373 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
1372 1374 Close help window if exiting igrid.
1373 1375
1374 1376 2007-03-02 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1375 1377
1376 1378 * IPython/Extensions/ipy_defaults.py: Check if readline is available
1377 1379 before calling functions from readline.
1378 1380
1379 1381 2007-03-02 Walter Doerwald <walter@livinglogic.de>
1380 1382
1381 1383 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
1382 1384 igrid is a wxPython-based display object for ipipe. If your system has
1383 1385 wx installed igrid will be the default display. Without wx ipipe falls
1384 1386 back to ibrowse (which needs curses). If no curses is installed ipipe
1385 1387 falls back to idump.
1386 1388
1387 1389 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
1388 1390
1389 1391 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
1390 1392 my changes from yesterday, they introduced bugs. Will reactivate
1391 1393 once I get a correct solution, which will be much easier thanks to
1392 1394 Dan Milstein's new prefilter test suite.
1393 1395
1394 1396 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
1395 1397
1396 1398 * IPython/iplib.py (split_user_input): fix input splitting so we
1397 1399 don't attempt attribute accesses on things that can't possibly be
1398 1400 valid Python attributes. After a bug report by Alex Schmolck.
1399 1401 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
1400 1402 %magic with explicit % prefix.
1401 1403
1402 1404 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
1403 1405
1404 1406 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
1405 1407 avoid a DeprecationWarning from GTK.
1406 1408
1407 1409 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
1408 1410
1409 1411 * IPython/genutils.py (clock): I modified clock() to return total
1410 1412 time, user+system. This is a more commonly needed metric. I also
1411 1413 introduced the new clocku/clocks to get only user/system time if
1412 1414 one wants those instead.
1413 1415
1414 1416 ***WARNING: API CHANGE*** clock() used to return only user time,
1415 1417 so if you want exactly the same results as before, use clocku
1416 1418 instead.
1417 1419
1418 1420 2007-02-22 Ville Vainio <vivainio@gmail.com>
1419 1421
1420 1422 * IPython/Extensions/ipy_p4.py: Extension for improved
1421 1423 p4 (perforce version control system) experience.
1422 1424 Adds %p4 magic with p4 command completion and
1423 1425 automatic -G argument (marshall output as python dict)
1424 1426
1425 1427 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
1426 1428
1427 1429 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
1428 1430 stop marks.
1429 1431 (ClearingMixin): a simple mixin to easily make a Demo class clear
1430 1432 the screen in between blocks and have empty marquees. The
1431 1433 ClearDemo and ClearIPDemo classes that use it are included.
1432 1434
1433 1435 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
1434 1436
1435 1437 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
1436 1438 protect against exceptions at Python shutdown time. Patch
1437 1439 sumbmitted to upstream.
1438 1440
1439 1441 2007-02-14 Walter Doerwald <walter@livinglogic.de>
1440 1442
1441 1443 * IPython/Extensions/ibrowse.py: If entering the first object level
1442 1444 (i.e. the object for which the browser has been started) fails,
1443 1445 now the error is raised directly (aborting the browser) instead of
1444 1446 running into an empty levels list later.
1445 1447
1446 1448 2007-02-03 Walter Doerwald <walter@livinglogic.de>
1447 1449
1448 1450 * IPython/Extensions/ipipe.py: Add an xrepr implementation
1449 1451 for the noitem object.
1450 1452
1451 1453 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
1452 1454
1453 1455 * IPython/completer.py (Completer.attr_matches): Fix small
1454 1456 tab-completion bug with Enthought Traits objects with units.
1455 1457 Thanks to a bug report by Tom Denniston
1456 1458 <tom.denniston-AT-alum.dartmouth.org>.
1457 1459
1458 1460 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
1459 1461
1460 1462 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
1461 1463 bug where only .ipy or .py would be completed. Once the first
1462 1464 argument to %run has been given, all completions are valid because
1463 1465 they are the arguments to the script, which may well be non-python
1464 1466 filenames.
1465 1467
1466 1468 * IPython/irunner.py (InteractiveRunner.run_source): major updates
1467 1469 to irunner to allow it to correctly support real doctesting of
1468 1470 out-of-process ipython code.
1469 1471
1470 1472 * IPython/Magic.py (magic_cd): Make the setting of the terminal
1471 1473 title an option (-noterm_title) because it completely breaks
1472 1474 doctesting.
1473 1475
1474 1476 * IPython/demo.py: fix IPythonDemo class that was not actually working.
1475 1477
1476 1478 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
1477 1479
1478 1480 * IPython/irunner.py (main): fix small bug where extensions were
1479 1481 not being correctly recognized.
1480 1482
1481 1483 2007-01-23 Walter Doerwald <walter@livinglogic.de>
1482 1484
1483 1485 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
1484 1486 a string containing a single line yields the string itself as the
1485 1487 only item.
1486 1488
1487 1489 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
1488 1490 object if it's the same as the one on the last level (This avoids
1489 1491 infinite recursion for one line strings).
1490 1492
1491 1493 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1492 1494
1493 1495 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
1494 1496 all output streams before printing tracebacks. This ensures that
1495 1497 user output doesn't end up interleaved with traceback output.
1496 1498
1497 1499 2007-01-10 Ville Vainio <vivainio@gmail.com>
1498 1500
1499 1501 * Extensions/envpersist.py: Turbocharged %env that remembers
1500 1502 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
1501 1503 "%env VISUAL=jed".
1502 1504
1503 1505 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
1504 1506
1505 1507 * IPython/iplib.py (showtraceback): ensure that we correctly call
1506 1508 custom handlers in all cases (some with pdb were slipping through,
1507 1509 but I'm not exactly sure why).
1508 1510
1509 1511 * IPython/Debugger.py (Tracer.__init__): added new class to
1510 1512 support set_trace-like usage of IPython's enhanced debugger.
1511 1513
1512 1514 2006-12-24 Ville Vainio <vivainio@gmail.com>
1513 1515
1514 1516 * ipmaker.py: more informative message when ipy_user_conf
1515 1517 import fails (suggest running %upgrade).
1516 1518
1517 1519 * tools/run_ipy_in_profiler.py: Utility to see where
1518 1520 the time during IPython startup is spent.
1519 1521
1520 1522 2006-12-20 Ville Vainio <vivainio@gmail.com>
1521 1523
1522 1524 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
1523 1525
1524 1526 * ipapi.py: Add new ipapi method, expand_alias.
1525 1527
1526 1528 * Release.py: Bump up version to 0.7.4.svn
1527 1529
1528 1530 2006-12-17 Ville Vainio <vivainio@gmail.com>
1529 1531
1530 1532 * Extensions/jobctrl.py: Fixed &cmd arg arg...
1531 1533 to work properly on posix too
1532 1534
1533 1535 * Release.py: Update revnum (version is still just 0.7.3).
1534 1536
1535 1537 2006-12-15 Ville Vainio <vivainio@gmail.com>
1536 1538
1537 1539 * scripts/ipython_win_post_install: create ipython.py in
1538 1540 prefix + "/scripts".
1539 1541
1540 1542 * Release.py: Update version to 0.7.3.
1541 1543
1542 1544 2006-12-14 Ville Vainio <vivainio@gmail.com>
1543 1545
1544 1546 * scripts/ipython_win_post_install: Overwrite old shortcuts
1545 1547 if they already exist
1546 1548
1547 1549 * Release.py: release 0.7.3rc2
1548 1550
1549 1551 2006-12-13 Ville Vainio <vivainio@gmail.com>
1550 1552
1551 1553 * Branch and update Release.py for 0.7.3rc1
1552 1554
1553 1555 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
1554 1556
1555 1557 * IPython/Shell.py (IPShellWX): update for current WX naming
1556 1558 conventions, to avoid a deprecation warning with current WX
1557 1559 versions. Thanks to a report by Danny Shevitz.
1558 1560
1559 1561 2006-12-12 Ville Vainio <vivainio@gmail.com>
1560 1562
1561 1563 * ipmaker.py: apply david cournapeau's patch to make
1562 1564 import_some work properly even when ipythonrc does
1563 1565 import_some on empty list (it was an old bug!).
1564 1566
1565 1567 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
1566 1568 Add deprecation note to ipythonrc and a url to wiki
1567 1569 in ipy_user_conf.py
1568 1570
1569 1571
1570 1572 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
1571 1573 as if it was typed on IPython command prompt, i.e.
1572 1574 as IPython script.
1573 1575
1574 1576 * example-magic.py, magic_grepl.py: remove outdated examples
1575 1577
1576 1578 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
1577 1579
1578 1580 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
1579 1581 is called before any exception has occurred.
1580 1582
1581 1583 2006-12-08 Ville Vainio <vivainio@gmail.com>
1582 1584
1583 1585 * Extensions/ipy_stock_completers.py: fix cd completer
1584 1586 to translate /'s to \'s again.
1585 1587
1586 1588 * completer.py: prevent traceback on file completions w/
1587 1589 backslash.
1588 1590
1589 1591 * Release.py: Update release number to 0.7.3b3 for release
1590 1592
1591 1593 2006-12-07 Ville Vainio <vivainio@gmail.com>
1592 1594
1593 1595 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
1594 1596 while executing external code. Provides more shell-like behaviour
1595 1597 and overall better response to ctrl + C / ctrl + break.
1596 1598
1597 1599 * tools/make_tarball.py: new script to create tarball straight from svn
1598 1600 (setup.py sdist doesn't work on win32).
1599 1601
1600 1602 * Extensions/ipy_stock_completers.py: fix cd completer to give up
1601 1603 on dirnames with spaces and use the default completer instead.
1602 1604
1603 1605 * Revision.py: Change version to 0.7.3b2 for release.
1604 1606
1605 1607 2006-12-05 Ville Vainio <vivainio@gmail.com>
1606 1608
1607 1609 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
1608 1610 pydb patch 4 (rm debug printing, py 2.5 checking)
1609 1611
1610 1612 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1611 1613 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1612 1614 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1613 1615 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1614 1616 object the cursor was on before the refresh. The command "markrange" is
1615 1617 mapped to "%" now.
1616 1618 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1617 1619
1618 1620 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1619 1621
1620 1622 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1621 1623 interactive debugger on the last traceback, without having to call
1622 1624 %pdb and rerun your code. Made minor changes in various modules,
1623 1625 should automatically recognize pydb if available.
1624 1626
1625 1627 2006-11-28 Ville Vainio <vivainio@gmail.com>
1626 1628
1627 1629 * completer.py: If the text start with !, show file completions
1628 1630 properly. This helps when trying to complete command name
1629 1631 for shell escapes.
1630 1632
1631 1633 2006-11-27 Ville Vainio <vivainio@gmail.com>
1632 1634
1633 1635 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1634 1636 der Walt. Clean up svn and hg completers by using a common
1635 1637 vcs_completer.
1636 1638
1637 1639 2006-11-26 Ville Vainio <vivainio@gmail.com>
1638 1640
1639 1641 * Remove ipconfig and %config; you should use _ip.options structure
1640 1642 directly instead!
1641 1643
1642 1644 * genutils.py: add wrap_deprecated function for deprecating callables
1643 1645
1644 1646 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1645 1647 _ip.system instead. ipalias is redundant.
1646 1648
1647 1649 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1648 1650 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1649 1651 explicit.
1650 1652
1651 1653 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1652 1654 completer. Try it by entering 'hg ' and pressing tab.
1653 1655
1654 1656 * macro.py: Give Macro a useful __repr__ method
1655 1657
1656 1658 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1657 1659
1658 1660 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1659 1661 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1660 1662 we don't get a duplicate ipipe module, where registration of the xrepr
1661 1663 implementation for Text is useless.
1662 1664
1663 1665 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1664 1666
1665 1667 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1666 1668
1667 1669 2006-11-24 Ville Vainio <vivainio@gmail.com>
1668 1670
1669 1671 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1670 1672 try to use "cProfile" instead of the slower pure python
1671 1673 "profile"
1672 1674
1673 1675 2006-11-23 Ville Vainio <vivainio@gmail.com>
1674 1676
1675 1677 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1676 1678 Qt+IPython+Designer link in documentation.
1677 1679
1678 1680 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1679 1681 correct Pdb object to %pydb.
1680 1682
1681 1683
1682 1684 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1683 1685 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1684 1686 generic xrepr(), otherwise the list implementation would kick in.
1685 1687
1686 1688 2006-11-21 Ville Vainio <vivainio@gmail.com>
1687 1689
1688 1690 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1689 1691 with one from UserConfig.
1690 1692
1691 1693 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1692 1694 it was missing which broke the sh profile.
1693 1695
1694 1696 * completer.py: file completer now uses explicit '/' instead
1695 1697 of os.path.join, expansion of 'foo' was broken on win32
1696 1698 if there was one directory with name 'foobar'.
1697 1699
1698 1700 * A bunch of patches from Kirill Smelkov:
1699 1701
1700 1702 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1701 1703
1702 1704 * [patch 7/9] Implement %page -r (page in raw mode) -
1703 1705
1704 1706 * [patch 5/9] ScientificPython webpage has moved
1705 1707
1706 1708 * [patch 4/9] The manual mentions %ds, should be %dhist
1707 1709
1708 1710 * [patch 3/9] Kill old bits from %prun doc.
1709 1711
1710 1712 * [patch 1/9] Fix typos here and there.
1711 1713
1712 1714 2006-11-08 Ville Vainio <vivainio@gmail.com>
1713 1715
1714 1716 * completer.py (attr_matches): catch all exceptions raised
1715 1717 by eval of expr with dots.
1716 1718
1717 1719 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1718 1720
1719 1721 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1720 1722 input if it starts with whitespace. This allows you to paste
1721 1723 indented input from any editor without manually having to type in
1722 1724 the 'if 1:', which is convenient when working interactively.
1723 1725 Slightly modifed version of a patch by Bo Peng
1724 1726 <bpeng-AT-rice.edu>.
1725 1727
1726 1728 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1727 1729
1728 1730 * IPython/irunner.py (main): modified irunner so it automatically
1729 1731 recognizes the right runner to use based on the extension (.py for
1730 1732 python, .ipy for ipython and .sage for sage).
1731 1733
1732 1734 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1733 1735 visible in ipapi as ip.config(), to programatically control the
1734 1736 internal rc object. There's an accompanying %config magic for
1735 1737 interactive use, which has been enhanced to match the
1736 1738 funtionality in ipconfig.
1737 1739
1738 1740 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1739 1741 so it's not just a toggle, it now takes an argument. Add support
1740 1742 for a customizable header when making system calls, as the new
1741 1743 system_header variable in the ipythonrc file.
1742 1744
1743 1745 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1744 1746
1745 1747 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1746 1748 generic functions (using Philip J. Eby's simplegeneric package).
1747 1749 This makes it possible to customize the display of third-party classes
1748 1750 without having to monkeypatch them. xiter() no longer supports a mode
1749 1751 argument and the XMode class has been removed. The same functionality can
1750 1752 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1751 1753 One consequence of the switch to generic functions is that xrepr() and
1752 1754 xattrs() implementation must define the default value for the mode
1753 1755 argument themselves and xattrs() implementations must return real
1754 1756 descriptors.
1755 1757
1756 1758 * IPython/external: This new subpackage will contain all third-party
1757 1759 packages that are bundled with IPython. (The first one is simplegeneric).
1758 1760
1759 1761 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1760 1762 directory which as been dropped in r1703.
1761 1763
1762 1764 * IPython/Extensions/ipipe.py (iless): Fixed.
1763 1765
1764 1766 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1765 1767
1766 1768 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1767 1769
1768 1770 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1769 1771 handling in variable expansion so that shells and magics recognize
1770 1772 function local scopes correctly. Bug reported by Brian.
1771 1773
1772 1774 * scripts/ipython: remove the very first entry in sys.path which
1773 1775 Python auto-inserts for scripts, so that sys.path under IPython is
1774 1776 as similar as possible to that under plain Python.
1775 1777
1776 1778 * IPython/completer.py (IPCompleter.file_matches): Fix
1777 1779 tab-completion so that quotes are not closed unless the completion
1778 1780 is unambiguous. After a request by Stefan. Minor cleanups in
1779 1781 ipy_stock_completers.
1780 1782
1781 1783 2006-11-02 Ville Vainio <vivainio@gmail.com>
1782 1784
1783 1785 * ipy_stock_completers.py: Add %run and %cd completers.
1784 1786
1785 1787 * completer.py: Try running custom completer for both
1786 1788 "foo" and "%foo" if the command is just "foo". Ignore case
1787 1789 when filtering possible completions.
1788 1790
1789 1791 * UserConfig/ipy_user_conf.py: install stock completers as default
1790 1792
1791 1793 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1792 1794 simplified readline history save / restore through a wrapper
1793 1795 function
1794 1796
1795 1797
1796 1798 2006-10-31 Ville Vainio <vivainio@gmail.com>
1797 1799
1798 1800 * strdispatch.py, completer.py, ipy_stock_completers.py:
1799 1801 Allow str_key ("command") in completer hooks. Implement
1800 1802 trivial completer for 'import' (stdlib modules only). Rename
1801 1803 ipy_linux_package_managers.py to ipy_stock_completers.py.
1802 1804 SVN completer.
1803 1805
1804 1806 * Extensions/ledit.py: %magic line editor for easily and
1805 1807 incrementally manipulating lists of strings. The magic command
1806 1808 name is %led.
1807 1809
1808 1810 2006-10-30 Ville Vainio <vivainio@gmail.com>
1809 1811
1810 1812 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1811 1813 Bernsteins's patches for pydb integration.
1812 1814 http://bashdb.sourceforge.net/pydb/
1813 1815
1814 1816 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1815 1817 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1816 1818 custom completer hook to allow the users to implement their own
1817 1819 completers. See ipy_linux_package_managers.py for example. The
1818 1820 hook name is 'complete_command'.
1819 1821
1820 1822 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1821 1823
1822 1824 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1823 1825 Numeric leftovers.
1824 1826
1825 1827 * ipython.el (py-execute-region): apply Stefan's patch to fix
1826 1828 garbled results if the python shell hasn't been previously started.
1827 1829
1828 1830 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1829 1831 pretty generic function and useful for other things.
1830 1832
1831 1833 * IPython/OInspect.py (getsource): Add customizable source
1832 1834 extractor. After a request/patch form W. Stein (SAGE).
1833 1835
1834 1836 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1835 1837 window size to a more reasonable value from what pexpect does,
1836 1838 since their choice causes wrapping bugs with long input lines.
1837 1839
1838 1840 2006-10-28 Ville Vainio <vivainio@gmail.com>
1839 1841
1840 1842 * Magic.py (%run): Save and restore the readline history from
1841 1843 file around %run commands to prevent side effects from
1842 1844 %runned programs that might use readline (e.g. pydb).
1843 1845
1844 1846 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1845 1847 invoking the pydb enhanced debugger.
1846 1848
1847 1849 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1848 1850
1849 1851 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1850 1852 call the base class method and propagate the return value to
1851 1853 ifile. This is now done by path itself.
1852 1854
1853 1855 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1854 1856
1855 1857 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1856 1858 api: set_crash_handler(), to expose the ability to change the
1857 1859 internal crash handler.
1858 1860
1859 1861 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1860 1862 the various parameters of the crash handler so that apps using
1861 1863 IPython as their engine can customize crash handling. Ipmlemented
1862 1864 at the request of SAGE.
1863 1865
1864 1866 2006-10-14 Ville Vainio <vivainio@gmail.com>
1865 1867
1866 1868 * Magic.py, ipython.el: applied first "safe" part of Rocky
1867 1869 Bernstein's patch set for pydb integration.
1868 1870
1869 1871 * Magic.py (%unalias, %alias): %store'd aliases can now be
1870 1872 removed with '%unalias'. %alias w/o args now shows most
1871 1873 interesting (stored / manually defined) aliases last
1872 1874 where they catch the eye w/o scrolling.
1873 1875
1874 1876 * Magic.py (%rehashx), ext_rehashdir.py: files with
1875 1877 'py' extension are always considered executable, even
1876 1878 when not in PATHEXT environment variable.
1877 1879
1878 1880 2006-10-12 Ville Vainio <vivainio@gmail.com>
1879 1881
1880 1882 * jobctrl.py: Add new "jobctrl" extension for spawning background
1881 1883 processes with "&find /". 'import jobctrl' to try it out. Requires
1882 1884 'subprocess' module, standard in python 2.4+.
1883 1885
1884 1886 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1885 1887 so if foo -> bar and bar -> baz, then foo -> baz.
1886 1888
1887 1889 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1888 1890
1889 1891 * IPython/Magic.py (Magic.parse_options): add a new posix option
1890 1892 to allow parsing of input args in magics that doesn't strip quotes
1891 1893 (if posix=False). This also closes %timeit bug reported by
1892 1894 Stefan.
1893 1895
1894 1896 2006-10-03 Ville Vainio <vivainio@gmail.com>
1895 1897
1896 1898 * iplib.py (raw_input, interact): Return ValueError catching for
1897 1899 raw_input. Fixes infinite loop for sys.stdin.close() or
1898 1900 sys.stdout.close().
1899 1901
1900 1902 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1901 1903
1902 1904 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1903 1905 to help in handling doctests. irunner is now pretty useful for
1904 1906 running standalone scripts and simulate a full interactive session
1905 1907 in a format that can be then pasted as a doctest.
1906 1908
1907 1909 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1908 1910 on top of the default (useless) ones. This also fixes the nasty
1909 1911 way in which 2.5's Quitter() exits (reverted [1785]).
1910 1912
1911 1913 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1912 1914 2.5.
1913 1915
1914 1916 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1915 1917 color scheme is updated as well when color scheme is changed
1916 1918 interactively.
1917 1919
1918 1920 2006-09-27 Ville Vainio <vivainio@gmail.com>
1919 1921
1920 1922 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1921 1923 infinite loop and just exit. It's a hack, but will do for a while.
1922 1924
1923 1925 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1924 1926
1925 1927 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1926 1928 the constructor, this makes it possible to get a list of only directories
1927 1929 or only files.
1928 1930
1929 1931 2006-08-12 Ville Vainio <vivainio@gmail.com>
1930 1932
1931 1933 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1932 1934 they broke unittest
1933 1935
1934 1936 2006-08-11 Ville Vainio <vivainio@gmail.com>
1935 1937
1936 1938 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1937 1939 by resolving issue properly, i.e. by inheriting FakeModule
1938 1940 from types.ModuleType. Pickling ipython interactive data
1939 1941 should still work as usual (testing appreciated).
1940 1942
1941 1943 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1942 1944
1943 1945 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1944 1946 running under python 2.3 with code from 2.4 to fix a bug with
1945 1947 help(). Reported by the Debian maintainers, Norbert Tretkowski
1946 1948 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1947 1949 <afayolle-AT-debian.org>.
1948 1950
1949 1951 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1950 1952
1951 1953 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1952 1954 (which was displaying "quit" twice).
1953 1955
1954 1956 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1955 1957
1956 1958 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1957 1959 the mode argument).
1958 1960
1959 1961 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1960 1962
1961 1963 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1962 1964 not running under IPython.
1963 1965
1964 1966 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1965 1967 and make it iterable (iterating over the attribute itself). Add two new
1966 1968 magic strings for __xattrs__(): If the string starts with "-", the attribute
1967 1969 will not be displayed in ibrowse's detail view (but it can still be
1968 1970 iterated over). This makes it possible to add attributes that are large
1969 1971 lists or generator methods to the detail view. Replace magic attribute names
1970 1972 and _attrname() and _getattr() with "descriptors": For each type of magic
1971 1973 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1972 1974 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1973 1975 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1974 1976 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1975 1977 are still supported.
1976 1978
1977 1979 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1978 1980 fails in ibrowse.fetch(), the exception object is added as the last item
1979 1981 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1980 1982 a generator throws an exception midway through execution.
1981 1983
1982 1984 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1983 1985 encoding into methods.
1984 1986
1985 1987 2006-07-26 Ville Vainio <vivainio@gmail.com>
1986 1988
1987 1989 * iplib.py: history now stores multiline input as single
1988 1990 history entries. Patch by Jorgen Cederlof.
1989 1991
1990 1992 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1991 1993
1992 1994 * IPython/Extensions/ibrowse.py: Make cursor visible over
1993 1995 non existing attributes.
1994 1996
1995 1997 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1996 1998
1997 1999 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1998 2000 error output of the running command doesn't mess up the screen.
1999 2001
2000 2002 2006-07-13 Walter Doerwald <walter@livinglogic.de>
2001 2003
2002 2004 * IPython/Extensions/ipipe.py (isort): Make isort usable without
2003 2005 argument. This sorts the items themselves.
2004 2006
2005 2007 2006-07-12 Walter Doerwald <walter@livinglogic.de>
2006 2008
2007 2009 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
2008 2010 Compile expression strings into code objects. This should speed
2009 2011 up ifilter and friends somewhat.
2010 2012
2011 2013 2006-07-08 Ville Vainio <vivainio@gmail.com>
2012 2014
2013 2015 * Magic.py: %cpaste now strips > from the beginning of lines
2014 2016 to ease pasting quoted code from emails. Contributed by
2015 2017 Stefan van der Walt.
2016 2018
2017 2019 2006-06-29 Ville Vainio <vivainio@gmail.com>
2018 2020
2019 2021 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
2020 2022 mode, patch contributed by Darren Dale. NEEDS TESTING!
2021 2023
2022 2024 2006-06-28 Walter Doerwald <walter@livinglogic.de>
2023 2025
2024 2026 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
2025 2027 a blue background. Fix fetching new display rows when the browser
2026 2028 scrolls more than a screenful (e.g. by using the goto command).
2027 2029
2028 2030 2006-06-27 Ville Vainio <vivainio@gmail.com>
2029 2031
2030 2032 * Magic.py (_inspect, _ofind) Apply David Huard's
2031 2033 patch for displaying the correct docstring for 'property'
2032 2034 attributes.
2033 2035
2034 2036 2006-06-23 Walter Doerwald <walter@livinglogic.de>
2035 2037
2036 2038 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
2037 2039 commands into the methods implementing them.
2038 2040
2039 2041 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
2040 2042
2041 2043 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
2042 2044 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
2043 2045 autoindent support was authored by Jin Liu.
2044 2046
2045 2047 2006-06-22 Walter Doerwald <walter@livinglogic.de>
2046 2048
2047 2049 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
2048 2050 for keymaps with a custom class that simplifies handling.
2049 2051
2050 2052 2006-06-19 Walter Doerwald <walter@livinglogic.de>
2051 2053
2052 2054 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
2053 2055 resizing. This requires Python 2.5 to work.
2054 2056
2055 2057 2006-06-16 Walter Doerwald <walter@livinglogic.de>
2056 2058
2057 2059 * IPython/Extensions/ibrowse.py: Add two new commands to
2058 2060 ibrowse: "hideattr" (mapped to "h") hides the attribute under
2059 2061 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
2060 2062 attributes again. Remapped the help command to "?". Display
2061 2063 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
2062 2064 as keys for the "home" and "end" commands. Add three new commands
2063 2065 to the input mode for "find" and friends: "delend" (CTRL-K)
2064 2066 deletes to the end of line. "incsearchup" searches upwards in the
2065 2067 command history for an input that starts with the text before the cursor.
2066 2068 "incsearchdown" does the same downwards. Removed a bogus mapping of
2067 2069 the x key to "delete".
2068 2070
2069 2071 2006-06-15 Ville Vainio <vivainio@gmail.com>
2070 2072
2071 2073 * iplib.py, hooks.py: Added new generate_prompt hook that can be
2072 2074 used to create prompts dynamically, instead of the "old" way of
2073 2075 assigning "magic" strings to prompt_in1 and prompt_in2. The old
2074 2076 way still works (it's invoked by the default hook), of course.
2075 2077
2076 2078 * Prompts.py: added generate_output_prompt hook for altering output
2077 2079 prompt
2078 2080
2079 2081 * Release.py: Changed version string to 0.7.3.svn.
2080 2082
2081 2083 2006-06-15 Walter Doerwald <walter@livinglogic.de>
2082 2084
2083 2085 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
2084 2086 the call to fetch() always tries to fetch enough data for at least one
2085 2087 full screen. This makes it possible to simply call moveto(0,0,True) in
2086 2088 the constructor. Fix typos and removed the obsolete goto attribute.
2087 2089
2088 2090 2006-06-12 Ville Vainio <vivainio@gmail.com>
2089 2091
2090 2092 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
2091 2093 allowing $variable interpolation within multiline statements,
2092 2094 though so far only with "sh" profile for a testing period.
2093 2095 The patch also enables splitting long commands with \ but it
2094 2096 doesn't work properly yet.
2095 2097
2096 2098 2006-06-12 Walter Doerwald <walter@livinglogic.de>
2097 2099
2098 2100 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
2099 2101 input history and the position of the cursor in the input history for
2100 2102 the find, findbackwards and goto command.
2101 2103
2102 2104 2006-06-10 Walter Doerwald <walter@livinglogic.de>
2103 2105
2104 2106 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
2105 2107 implements the basic functionality of browser commands that require
2106 2108 input. Reimplement the goto, find and findbackwards commands as
2107 2109 subclasses of _CommandInput. Add an input history and keymaps to those
2108 2110 commands. Add "\r" as a keyboard shortcut for the enterdefault and
2109 2111 execute commands.
2110 2112
2111 2113 2006-06-07 Ville Vainio <vivainio@gmail.com>
2112 2114
2113 2115 * iplib.py: ipython mybatch.ipy exits ipython immediately after
2114 2116 running the batch files instead of leaving the session open.
2115 2117
2116 2118 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
2117 2119
2118 2120 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
2119 2121 the original fix was incomplete. Patch submitted by W. Maier.
2120 2122
2121 2123 2006-06-07 Ville Vainio <vivainio@gmail.com>
2122 2124
2123 2125 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
2124 2126 Confirmation prompts can be supressed by 'quiet' option.
2125 2127 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
2126 2128
2127 2129 2006-06-06 *** Released version 0.7.2
2128 2130
2129 2131 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
2130 2132
2131 2133 * IPython/Release.py (version): Made 0.7.2 final for release.
2132 2134 Repo tagged and release cut.
2133 2135
2134 2136 2006-06-05 Ville Vainio <vivainio@gmail.com>
2135 2137
2136 2138 * Magic.py (magic_rehashx): Honor no_alias list earlier in
2137 2139 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
2138 2140
2139 2141 * upgrade_dir.py: try import 'path' module a bit harder
2140 2142 (for %upgrade)
2141 2143
2142 2144 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
2143 2145
2144 2146 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
2145 2147 instead of looping 20 times.
2146 2148
2147 2149 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
2148 2150 correctly at initialization time. Bug reported by Krishna Mohan
2149 2151 Gundu <gkmohan-AT-gmail.com> on the user list.
2150 2152
2151 2153 * IPython/Release.py (version): Mark 0.7.2 version to start
2152 2154 testing for release on 06/06.
2153 2155
2154 2156 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
2155 2157
2156 2158 * scripts/irunner: thin script interface so users don't have to
2157 2159 find the module and call it as an executable, since modules rarely
2158 2160 live in people's PATH.
2159 2161
2160 2162 * IPython/irunner.py (InteractiveRunner.__init__): added
2161 2163 delaybeforesend attribute to control delays with newer versions of
2162 2164 pexpect. Thanks to detailed help from pexpect's author, Noah
2163 2165 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
2164 2166 correctly (it works in NoColor mode).
2165 2167
2166 2168 * IPython/iplib.py (handle_normal): fix nasty crash reported on
2167 2169 SAGE list, from improper log() calls.
2168 2170
2169 2171 2006-05-31 Ville Vainio <vivainio@gmail.com>
2170 2172
2171 2173 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
2172 2174 with args in parens to work correctly with dirs that have spaces.
2173 2175
2174 2176 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
2175 2177
2176 2178 * IPython/Logger.py (Logger.logstart): add option to log raw input
2177 2179 instead of the processed one. A -r flag was added to the
2178 2180 %logstart magic used for controlling logging.
2179 2181
2180 2182 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
2181 2183
2182 2184 * IPython/iplib.py (InteractiveShell.__init__): add check for the
2183 2185 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
2184 2186 recognize the option. After a bug report by Will Maier. This
2185 2187 closes #64 (will do it after confirmation from W. Maier).
2186 2188
2187 2189 * IPython/irunner.py: New module to run scripts as if manually
2188 2190 typed into an interactive environment, based on pexpect. After a
2189 2191 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
2190 2192 ipython-user list. Simple unittests in the tests/ directory.
2191 2193
2192 2194 * tools/release: add Will Maier, OpenBSD port maintainer, to
2193 2195 recepients list. We are now officially part of the OpenBSD ports:
2194 2196 http://www.openbsd.org/ports.html ! Many thanks to Will for the
2195 2197 work.
2196 2198
2197 2199 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
2198 2200
2199 2201 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
2200 2202 so that it doesn't break tkinter apps.
2201 2203
2202 2204 * IPython/iplib.py (_prefilter): fix bug where aliases would
2203 2205 shadow variables when autocall was fully off. Reported by SAGE
2204 2206 author William Stein.
2205 2207
2206 2208 * IPython/OInspect.py (Inspector.__init__): add a flag to control
2207 2209 at what detail level strings are computed when foo? is requested.
2208 2210 This allows users to ask for example that the string form of an
2209 2211 object is only computed when foo?? is called, or even never, by
2210 2212 setting the object_info_string_level >= 2 in the configuration
2211 2213 file. This new option has been added and documented. After a
2212 2214 request by SAGE to be able to control the printing of very large
2213 2215 objects more easily.
2214 2216
2215 2217 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
2216 2218
2217 2219 * IPython/ipmaker.py (make_IPython): remove the ipython call path
2218 2220 from sys.argv, to be 100% consistent with how Python itself works
2219 2221 (as seen for example with python -i file.py). After a bug report
2220 2222 by Jeffrey Collins.
2221 2223
2222 2224 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
2223 2225 nasty bug which was preventing custom namespaces with -pylab,
2224 2226 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
2225 2227 compatibility (long gone from mpl).
2226 2228
2227 2229 * IPython/ipapi.py (make_session): name change: create->make. We
2228 2230 use make in other places (ipmaker,...), it's shorter and easier to
2229 2231 type and say, etc. I'm trying to clean things before 0.7.2 so
2230 2232 that I can keep things stable wrt to ipapi in the chainsaw branch.
2231 2233
2232 2234 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
2233 2235 python-mode recognizes our debugger mode. Add support for
2234 2236 autoindent inside (X)emacs. After a patch sent in by Jin Liu
2235 2237 <m.liu.jin-AT-gmail.com> originally written by
2236 2238 doxgen-AT-newsmth.net (with minor modifications for xemacs
2237 2239 compatibility)
2238 2240
2239 2241 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
2240 2242 tracebacks when walking the stack so that the stack tracking system
2241 2243 in emacs' python-mode can identify the frames correctly.
2242 2244
2243 2245 * IPython/ipmaker.py (make_IPython): make the internal (and
2244 2246 default config) autoedit_syntax value false by default. Too many
2245 2247 users have complained to me (both on and off-list) about problems
2246 2248 with this option being on by default, so I'm making it default to
2247 2249 off. It can still be enabled by anyone via the usual mechanisms.
2248 2250
2249 2251 * IPython/completer.py (Completer.attr_matches): add support for
2250 2252 PyCrust-style _getAttributeNames magic method. Patch contributed
2251 2253 by <mscott-AT-goldenspud.com>. Closes #50.
2252 2254
2253 2255 * IPython/iplib.py (InteractiveShell.__init__): remove the
2254 2256 deletion of exit/quit from __builtin__, which can break
2255 2257 third-party tools like the Zope debugging console. The
2256 2258 %exit/%quit magics remain. In general, it's probably a good idea
2257 2259 not to delete anything from __builtin__, since we never know what
2258 2260 that will break. In any case, python now (for 2.5) will support
2259 2261 'real' exit/quit, so this issue is moot. Closes #55.
2260 2262
2261 2263 * IPython/genutils.py (with_obj): rename the 'with' function to
2262 2264 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
2263 2265 becomes a language keyword. Closes #53.
2264 2266
2265 2267 * IPython/FakeModule.py (FakeModule.__init__): add a proper
2266 2268 __file__ attribute to this so it fools more things into thinking
2267 2269 it is a real module. Closes #59.
2268 2270
2269 2271 * IPython/Magic.py (magic_edit): add -n option to open the editor
2270 2272 at a specific line number. After a patch by Stefan van der Walt.
2271 2273
2272 2274 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
2273 2275
2274 2276 * IPython/iplib.py (edit_syntax_error): fix crash when for some
2275 2277 reason the file could not be opened. After automatic crash
2276 2278 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
2277 2279 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
2278 2280 (_should_recompile): Don't fire editor if using %bg, since there
2279 2281 is no file in the first place. From the same report as above.
2280 2282 (raw_input): protect against faulty third-party prefilters. After
2281 2283 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
2282 2284 while running under SAGE.
2283 2285
2284 2286 2006-05-23 Ville Vainio <vivainio@gmail.com>
2285 2287
2286 2288 * ipapi.py: Stripped down ip.to_user_ns() to work only as
2287 2289 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
2288 2290 now returns None (again), unless dummy is specifically allowed by
2289 2291 ipapi.get(allow_dummy=True).
2290 2292
2291 2293 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
2292 2294
2293 2295 * IPython: remove all 2.2-compatibility objects and hacks from
2294 2296 everywhere, since we only support 2.3 at this point. Docs
2295 2297 updated.
2296 2298
2297 2299 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
2298 2300 Anything requiring extra validation can be turned into a Python
2299 2301 property in the future. I used a property for the db one b/c
2300 2302 there was a nasty circularity problem with the initialization
2301 2303 order, which right now I don't have time to clean up.
2302 2304
2303 2305 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
2304 2306 another locking bug reported by Jorgen. I'm not 100% sure though,
2305 2307 so more testing is needed...
2306 2308
2307 2309 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
2308 2310
2309 2311 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
2310 2312 local variables from any routine in user code (typically executed
2311 2313 with %run) directly into the interactive namespace. Very useful
2312 2314 when doing complex debugging.
2313 2315 (IPythonNotRunning): Changed the default None object to a dummy
2314 2316 whose attributes can be queried as well as called without
2315 2317 exploding, to ease writing code which works transparently both in
2316 2318 and out of ipython and uses some of this API.
2317 2319
2318 2320 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
2319 2321
2320 2322 * IPython/hooks.py (result_display): Fix the fact that our display
2321 2323 hook was using str() instead of repr(), as the default python
2322 2324 console does. This had gone unnoticed b/c it only happened if
2323 2325 %Pprint was off, but the inconsistency was there.
2324 2326
2325 2327 2006-05-15 Ville Vainio <vivainio@gmail.com>
2326 2328
2327 2329 * Oinspect.py: Only show docstring for nonexisting/binary files
2328 2330 when doing object??, closing ticket #62
2329 2331
2330 2332 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
2331 2333
2332 2334 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
2333 2335 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
2334 2336 was being released in a routine which hadn't checked if it had
2335 2337 been the one to acquire it.
2336 2338
2337 2339 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
2338 2340
2339 2341 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
2340 2342
2341 2343 2006-04-11 Ville Vainio <vivainio@gmail.com>
2342 2344
2343 2345 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
2344 2346 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
2345 2347 prefilters, allowing stuff like magics and aliases in the file.
2346 2348
2347 2349 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
2348 2350 added. Supported now are "%clear in" and "%clear out" (clear input and
2349 2351 output history, respectively). Also fixed CachedOutput.flush to
2350 2352 properly flush the output cache.
2351 2353
2352 2354 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
2353 2355 half-success (and fail explicitly).
2354 2356
2355 2357 2006-03-28 Ville Vainio <vivainio@gmail.com>
2356 2358
2357 2359 * iplib.py: Fix quoting of aliases so that only argless ones
2358 2360 are quoted
2359 2361
2360 2362 2006-03-28 Ville Vainio <vivainio@gmail.com>
2361 2363
2362 2364 * iplib.py: Quote aliases with spaces in the name.
2363 2365 "c:\program files\blah\bin" is now legal alias target.
2364 2366
2365 2367 * ext_rehashdir.py: Space no longer allowed as arg
2366 2368 separator, since space is legal in path names.
2367 2369
2368 2370 2006-03-16 Ville Vainio <vivainio@gmail.com>
2369 2371
2370 2372 * upgrade_dir.py: Take path.py from Extensions, correcting
2371 2373 %upgrade magic
2372 2374
2373 2375 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
2374 2376
2375 2377 * hooks.py: Only enclose editor binary in quotes if legal and
2376 2378 necessary (space in the name, and is an existing file). Fixes a bug
2377 2379 reported by Zachary Pincus.
2378 2380
2379 2381 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
2380 2382
2381 2383 * Manual: thanks to a tip on proper color handling for Emacs, by
2382 2384 Eric J Haywiser <ejh1-AT-MIT.EDU>.
2383 2385
2384 2386 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
2385 2387 by applying the provided patch. Thanks to Liu Jin
2386 2388 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
2387 2389 XEmacs/Linux, I'm trusting the submitter that it actually helps
2388 2390 under win32/GNU Emacs. Will revisit if any problems are reported.
2389 2391
2390 2392 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2391 2393
2392 2394 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
2393 2395 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
2394 2396
2395 2397 2006-03-12 Ville Vainio <vivainio@gmail.com>
2396 2398
2397 2399 * Magic.py (magic_timeit): Added %timeit magic, contributed by
2398 2400 Torsten Marek.
2399 2401
2400 2402 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2401 2403
2402 2404 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
2403 2405 line ranges works again.
2404 2406
2405 2407 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
2406 2408
2407 2409 * IPython/iplib.py (showtraceback): add back sys.last_traceback
2408 2410 and friends, after a discussion with Zach Pincus on ipython-user.
2409 2411 I'm not 100% sure, but after thinking about it quite a bit, it may
2410 2412 be OK. Testing with the multithreaded shells didn't reveal any
2411 2413 problems, but let's keep an eye out.
2412 2414
2413 2415 In the process, I fixed a few things which were calling
2414 2416 self.InteractiveTB() directly (like safe_execfile), which is a
2415 2417 mistake: ALL exception reporting should be done by calling
2416 2418 self.showtraceback(), which handles state and tab-completion and
2417 2419 more.
2418 2420
2419 2421 2006-03-01 Ville Vainio <vivainio@gmail.com>
2420 2422
2421 2423 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
2422 2424 To use, do "from ipipe import *".
2423 2425
2424 2426 2006-02-24 Ville Vainio <vivainio@gmail.com>
2425 2427
2426 2428 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
2427 2429 "cleanly" and safely than the older upgrade mechanism.
2428 2430
2429 2431 2006-02-21 Ville Vainio <vivainio@gmail.com>
2430 2432
2431 2433 * Magic.py: %save works again.
2432 2434
2433 2435 2006-02-15 Ville Vainio <vivainio@gmail.com>
2434 2436
2435 2437 * Magic.py: %Pprint works again
2436 2438
2437 2439 * Extensions/ipy_sane_defaults.py: Provide everything provided
2438 2440 in default ipythonrc, to make it possible to have a completely empty
2439 2441 ipythonrc (and thus completely rc-file free configuration)
2440 2442
2441 2443 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
2442 2444
2443 2445 * IPython/hooks.py (editor): quote the call to the editor command,
2444 2446 to allow commands with spaces in them. Problem noted by watching
2445 2447 Ian Oswald's video about textpad under win32 at
2446 2448 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
2447 2449
2448 2450 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
2449 2451 describing magics (we haven't used @ for a loong time).
2450 2452
2451 2453 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
2452 2454 contributed by marienz to close
2453 2455 http://www.scipy.net/roundup/ipython/issue53.
2454 2456
2455 2457 2006-02-10 Ville Vainio <vivainio@gmail.com>
2456 2458
2457 2459 * genutils.py: getoutput now works in win32 too
2458 2460
2459 2461 * completer.py: alias and magic completion only invoked
2460 2462 at the first "item" in the line, to avoid "cd %store"
2461 2463 nonsense.
2462 2464
2463 2465 2006-02-09 Ville Vainio <vivainio@gmail.com>
2464 2466
2465 2467 * test/*: Added a unit testing framework (finally).
2466 2468 '%run runtests.py' to run test_*.
2467 2469
2468 2470 * ipapi.py: Exposed runlines and set_custom_exc
2469 2471
2470 2472 2006-02-07 Ville Vainio <vivainio@gmail.com>
2471 2473
2472 2474 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
2473 2475 instead use "f(1 2)" as before.
2474 2476
2475 2477 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
2476 2478
2477 2479 * IPython/demo.py (IPythonDemo): Add new classes to the demo
2478 2480 facilities, for demos processed by the IPython input filter
2479 2481 (IPythonDemo), and for running a script one-line-at-a-time as a
2480 2482 demo, both for pure Python (LineDemo) and for IPython-processed
2481 2483 input (IPythonLineDemo). After a request by Dave Kohel, from the
2482 2484 SAGE team.
2483 2485 (Demo.edit): added an edit() method to the demo objects, to edit
2484 2486 the in-memory copy of the last executed block.
2485 2487
2486 2488 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
2487 2489 processing to %edit, %macro and %save. These commands can now be
2488 2490 invoked on the unprocessed input as it was typed by the user
2489 2491 (without any prefilters applied). After requests by the SAGE team
2490 2492 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
2491 2493
2492 2494 2006-02-01 Ville Vainio <vivainio@gmail.com>
2493 2495
2494 2496 * setup.py, eggsetup.py: easy_install ipython==dev works
2495 2497 correctly now (on Linux)
2496 2498
2497 2499 * ipy_user_conf,ipmaker: user config changes, removed spurious
2498 2500 warnings
2499 2501
2500 2502 * iplib: if rc.banner is string, use it as is.
2501 2503
2502 2504 * Magic: %pycat accepts a string argument and pages it's contents.
2503 2505
2504 2506
2505 2507 2006-01-30 Ville Vainio <vivainio@gmail.com>
2506 2508
2507 2509 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
2508 2510 Now %store and bookmarks work through PickleShare, meaning that
2509 2511 concurrent access is possible and all ipython sessions see the
2510 2512 same database situation all the time, instead of snapshot of
2511 2513 the situation when the session was started. Hence, %bookmark
2512 2514 results are immediately accessible from othes sessions. The database
2513 2515 is also available for use by user extensions. See:
2514 2516 http://www.python.org/pypi/pickleshare
2515 2517
2516 2518 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
2517 2519
2518 2520 * aliases can now be %store'd
2519 2521
2520 2522 * path.py moved to Extensions so that pickleshare does not need
2521 2523 IPython-specific import. Extensions added to pythonpath right
2522 2524 at __init__.
2523 2525
2524 2526 * iplib.py: ipalias deprecated/redundant; aliases are converted and
2525 2527 called with _ip.system and the pre-transformed command string.
2526 2528
2527 2529 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
2528 2530
2529 2531 * IPython/iplib.py (interact): Fix that we were not catching
2530 2532 KeyboardInterrupt exceptions properly. I'm not quite sure why the
2531 2533 logic here had to change, but it's fixed now.
2532 2534
2533 2535 2006-01-29 Ville Vainio <vivainio@gmail.com>
2534 2536
2535 2537 * iplib.py: Try to import pyreadline on Windows.
2536 2538
2537 2539 2006-01-27 Ville Vainio <vivainio@gmail.com>
2538 2540
2539 2541 * iplib.py: Expose ipapi as _ip in builtin namespace.
2540 2542 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
2541 2543 and ip_set_hook (-> _ip.set_hook) redundant. % and !
2542 2544 syntax now produce _ip.* variant of the commands.
2543 2545
2544 2546 * "_ip.options().autoedit_syntax = 2" automatically throws
2545 2547 user to editor for syntax error correction without prompting.
2546 2548
2547 2549 2006-01-27 Ville Vainio <vivainio@gmail.com>
2548 2550
2549 2551 * ipmaker.py: Give "realistic" sys.argv for scripts (without
2550 2552 'ipython' at argv[0]) executed through command line.
2551 2553 NOTE: this DEPRECATES calling ipython with multiple scripts
2552 2554 ("ipython a.py b.py c.py")
2553 2555
2554 2556 * iplib.py, hooks.py: Added configurable input prefilter,
2555 2557 named 'input_prefilter'. See ext_rescapture.py for example
2556 2558 usage.
2557 2559
2558 2560 * ext_rescapture.py, Magic.py: Better system command output capture
2559 2561 through 'var = !ls' (deprecates user-visible %sc). Same notation
2560 2562 applies for magics, 'var = %alias' assigns alias list to var.
2561 2563
2562 2564 * ipapi.py: added meta() for accessing extension-usable data store.
2563 2565
2564 2566 * iplib.py: added InteractiveShell.getapi(). New magics should be
2565 2567 written doing self.getapi() instead of using the shell directly.
2566 2568
2567 2569 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
2568 2570 %store foo >> ~/myfoo.txt to store variables to files (in clean
2569 2571 textual form, not a restorable pickle).
2570 2572
2571 2573 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
2572 2574
2573 2575 * usage.py, Magic.py: added %quickref
2574 2576
2575 2577 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
2576 2578
2577 2579 * GetoptErrors when invoking magics etc. with wrong args
2578 2580 are now more helpful:
2579 2581 GetoptError: option -l not recognized (allowed: "qb" )
2580 2582
2581 2583 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
2582 2584
2583 2585 * IPython/demo.py (Demo.show): Flush stdout after each block, so
2584 2586 computationally intensive blocks don't appear to stall the demo.
2585 2587
2586 2588 2006-01-24 Ville Vainio <vivainio@gmail.com>
2587 2589
2588 2590 * iplib.py, hooks.py: 'result_display' hook can return a non-None
2589 2591 value to manipulate resulting history entry.
2590 2592
2591 2593 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
2592 2594 to instance methods of IPApi class, to make extending an embedded
2593 2595 IPython feasible. See ext_rehashdir.py for example usage.
2594 2596
2595 2597 * Merged 1071-1076 from branches/0.7.1
2596 2598
2597 2599
2598 2600 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
2599 2601
2600 2602 * tools/release (daystamp): Fix build tools to use the new
2601 2603 eggsetup.py script to build lightweight eggs.
2602 2604
2603 2605 * Applied changesets 1062 and 1064 before 0.7.1 release.
2604 2606
2605 2607 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
2606 2608 see the raw input history (without conversions like %ls ->
2607 2609 ipmagic("ls")). After a request from W. Stein, SAGE
2608 2610 (http://modular.ucsd.edu/sage) developer. This information is
2609 2611 stored in the input_hist_raw attribute of the IPython instance, so
2610 2612 developers can access it if needed (it's an InputList instance).
2611 2613
2612 2614 * Versionstring = 0.7.2.svn
2613 2615
2614 2616 * eggsetup.py: A separate script for constructing eggs, creates
2615 2617 proper launch scripts even on Windows (an .exe file in
2616 2618 \python24\scripts).
2617 2619
2618 2620 * ipapi.py: launch_new_instance, launch entry point needed for the
2619 2621 egg.
2620 2622
2621 2623 2006-01-23 Ville Vainio <vivainio@gmail.com>
2622 2624
2623 2625 * Added %cpaste magic for pasting python code
2624 2626
2625 2627 2006-01-22 Ville Vainio <vivainio@gmail.com>
2626 2628
2627 2629 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2628 2630
2629 2631 * Versionstring = 0.7.2.svn
2630 2632
2631 2633 * eggsetup.py: A separate script for constructing eggs, creates
2632 2634 proper launch scripts even on Windows (an .exe file in
2633 2635 \python24\scripts).
2634 2636
2635 2637 * ipapi.py: launch_new_instance, launch entry point needed for the
2636 2638 egg.
2637 2639
2638 2640 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2639 2641
2640 2642 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2641 2643 %pfile foo would print the file for foo even if it was a binary.
2642 2644 Now, extensions '.so' and '.dll' are skipped.
2643 2645
2644 2646 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2645 2647 bug, where macros would fail in all threaded modes. I'm not 100%
2646 2648 sure, so I'm going to put out an rc instead of making a release
2647 2649 today, and wait for feedback for at least a few days.
2648 2650
2649 2651 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2650 2652 it...) the handling of pasting external code with autoindent on.
2651 2653 To get out of a multiline input, the rule will appear for most
2652 2654 users unchanged: two blank lines or change the indent level
2653 2655 proposed by IPython. But there is a twist now: you can
2654 2656 add/subtract only *one or two spaces*. If you add/subtract three
2655 2657 or more (unless you completely delete the line), IPython will
2656 2658 accept that line, and you'll need to enter a second one of pure
2657 2659 whitespace. I know it sounds complicated, but I can't find a
2658 2660 different solution that covers all the cases, with the right
2659 2661 heuristics. Hopefully in actual use, nobody will really notice
2660 2662 all these strange rules and things will 'just work'.
2661 2663
2662 2664 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2663 2665
2664 2666 * IPython/iplib.py (interact): catch exceptions which can be
2665 2667 triggered asynchronously by signal handlers. Thanks to an
2666 2668 automatic crash report, submitted by Colin Kingsley
2667 2669 <tercel-AT-gentoo.org>.
2668 2670
2669 2671 2006-01-20 Ville Vainio <vivainio@gmail.com>
2670 2672
2671 2673 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2672 2674 (%rehashdir, very useful, try it out) of how to extend ipython
2673 2675 with new magics. Also added Extensions dir to pythonpath to make
2674 2676 importing extensions easy.
2675 2677
2676 2678 * %store now complains when trying to store interactively declared
2677 2679 classes / instances of those classes.
2678 2680
2679 2681 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2680 2682 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2681 2683 if they exist, and ipy_user_conf.py with some defaults is created for
2682 2684 the user.
2683 2685
2684 2686 * Startup rehashing done by the config file, not InterpreterExec.
2685 2687 This means system commands are available even without selecting the
2686 2688 pysh profile. It's the sensible default after all.
2687 2689
2688 2690 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2689 2691
2690 2692 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2691 2693 multiline code with autoindent on working. But I am really not
2692 2694 sure, so this needs more testing. Will commit a debug-enabled
2693 2695 version for now, while I test it some more, so that Ville and
2694 2696 others may also catch any problems. Also made
2695 2697 self.indent_current_str() a method, to ensure that there's no
2696 2698 chance of the indent space count and the corresponding string
2697 2699 falling out of sync. All code needing the string should just call
2698 2700 the method.
2699 2701
2700 2702 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2701 2703
2702 2704 * IPython/Magic.py (magic_edit): fix check for when users don't
2703 2705 save their output files, the try/except was in the wrong section.
2704 2706
2705 2707 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2706 2708
2707 2709 * IPython/Magic.py (magic_run): fix __file__ global missing from
2708 2710 script's namespace when executed via %run. After a report by
2709 2711 Vivian.
2710 2712
2711 2713 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2712 2714 when using python 2.4. The parent constructor changed in 2.4, and
2713 2715 we need to track it directly (we can't call it, as it messes up
2714 2716 readline and tab-completion inside our pdb would stop working).
2715 2717 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2716 2718
2717 2719 2006-01-16 Ville Vainio <vivainio@gmail.com>
2718 2720
2719 2721 * Ipython/magic.py: Reverted back to old %edit functionality
2720 2722 that returns file contents on exit.
2721 2723
2722 2724 * IPython/path.py: Added Jason Orendorff's "path" module to
2723 2725 IPython tree, http://www.jorendorff.com/articles/python/path/.
2724 2726 You can get path objects conveniently through %sc, and !!, e.g.:
2725 2727 sc files=ls
2726 2728 for p in files.paths: # or files.p
2727 2729 print p,p.mtime
2728 2730
2729 2731 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2730 2732 now work again without considering the exclusion regexp -
2731 2733 hence, things like ',foo my/path' turn to 'foo("my/path")'
2732 2734 instead of syntax error.
2733 2735
2734 2736
2735 2737 2006-01-14 Ville Vainio <vivainio@gmail.com>
2736 2738
2737 2739 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2738 2740 ipapi decorators for python 2.4 users, options() provides access to rc
2739 2741 data.
2740 2742
2741 2743 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2742 2744 as path separators (even on Linux ;-). Space character after
2743 2745 backslash (as yielded by tab completer) is still space;
2744 2746 "%cd long\ name" works as expected.
2745 2747
2746 2748 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2747 2749 as "chain of command", with priority. API stays the same,
2748 2750 TryNext exception raised by a hook function signals that
2749 2751 current hook failed and next hook should try handling it, as
2750 2752 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2751 2753 requested configurable display hook, which is now implemented.
2752 2754
2753 2755 2006-01-13 Ville Vainio <vivainio@gmail.com>
2754 2756
2755 2757 * IPython/platutils*.py: platform specific utility functions,
2756 2758 so far only set_term_title is implemented (change terminal
2757 2759 label in windowing systems). %cd now changes the title to
2758 2760 current dir.
2759 2761
2760 2762 * IPython/Release.py: Added myself to "authors" list,
2761 2763 had to create new files.
2762 2764
2763 2765 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2764 2766 shell escape; not a known bug but had potential to be one in the
2765 2767 future.
2766 2768
2767 2769 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2768 2770 extension API for IPython! See the module for usage example. Fix
2769 2771 OInspect for docstring-less magic functions.
2770 2772
2771 2773
2772 2774 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2773 2775
2774 2776 * IPython/iplib.py (raw_input): temporarily deactivate all
2775 2777 attempts at allowing pasting of code with autoindent on. It
2776 2778 introduced bugs (reported by Prabhu) and I can't seem to find a
2777 2779 robust combination which works in all cases. Will have to revisit
2778 2780 later.
2779 2781
2780 2782 * IPython/genutils.py: remove isspace() function. We've dropped
2781 2783 2.2 compatibility, so it's OK to use the string method.
2782 2784
2783 2785 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2784 2786
2785 2787 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2786 2788 matching what NOT to autocall on, to include all python binary
2787 2789 operators (including things like 'and', 'or', 'is' and 'in').
2788 2790 Prompted by a bug report on 'foo & bar', but I realized we had
2789 2791 many more potential bug cases with other operators. The regexp is
2790 2792 self.re_exclude_auto, it's fairly commented.
2791 2793
2792 2794 2006-01-12 Ville Vainio <vivainio@gmail.com>
2793 2795
2794 2796 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2795 2797 Prettified and hardened string/backslash quoting with ipsystem(),
2796 2798 ipalias() and ipmagic(). Now even \ characters are passed to
2797 2799 %magics, !shell escapes and aliases exactly as they are in the
2798 2800 ipython command line. Should improve backslash experience,
2799 2801 particularly in Windows (path delimiter for some commands that
2800 2802 won't understand '/'), but Unix benefits as well (regexps). %cd
2801 2803 magic still doesn't support backslash path delimiters, though. Also
2802 2804 deleted all pretense of supporting multiline command strings in
2803 2805 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2804 2806
2805 2807 * doc/build_doc_instructions.txt added. Documentation on how to
2806 2808 use doc/update_manual.py, added yesterday. Both files contributed
2807 2809 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2808 2810 doc/*.sh for deprecation at a later date.
2809 2811
2810 2812 * /ipython.py Added ipython.py to root directory for
2811 2813 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2812 2814 ipython.py) and development convenience (no need to keep doing
2813 2815 "setup.py install" between changes).
2814 2816
2815 2817 * Made ! and !! shell escapes work (again) in multiline expressions:
2816 2818 if 1:
2817 2819 !ls
2818 2820 !!ls
2819 2821
2820 2822 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2821 2823
2822 2824 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2823 2825 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2824 2826 module in case-insensitive installation. Was causing crashes
2825 2827 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2826 2828
2827 2829 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2828 2830 <marienz-AT-gentoo.org>, closes
2829 2831 http://www.scipy.net/roundup/ipython/issue51.
2830 2832
2831 2833 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2832 2834
2833 2835 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2834 2836 problem of excessive CPU usage under *nix and keyboard lag under
2835 2837 win32.
2836 2838
2837 2839 2006-01-10 *** Released version 0.7.0
2838 2840
2839 2841 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2840 2842
2841 2843 * IPython/Release.py (revision): tag version number to 0.7.0,
2842 2844 ready for release.
2843 2845
2844 2846 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2845 2847 it informs the user of the name of the temp. file used. This can
2846 2848 help if you decide later to reuse that same file, so you know
2847 2849 where to copy the info from.
2848 2850
2849 2851 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2850 2852
2851 2853 * setup_bdist_egg.py: little script to build an egg. Added
2852 2854 support in the release tools as well.
2853 2855
2854 2856 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2855 2857
2856 2858 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2857 2859 version selection (new -wxversion command line and ipythonrc
2858 2860 parameter). Patch contributed by Arnd Baecker
2859 2861 <arnd.baecker-AT-web.de>.
2860 2862
2861 2863 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2862 2864 embedded instances, for variables defined at the interactive
2863 2865 prompt of the embedded ipython. Reported by Arnd.
2864 2866
2865 2867 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2866 2868 it can be used as a (stateful) toggle, or with a direct parameter.
2867 2869
2868 2870 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2869 2871 could be triggered in certain cases and cause the traceback
2870 2872 printer not to work.
2871 2873
2872 2874 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2873 2875
2874 2876 * IPython/iplib.py (_should_recompile): Small fix, closes
2875 2877 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2876 2878
2877 2879 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2878 2880
2879 2881 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2880 2882 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2881 2883 Moad for help with tracking it down.
2882 2884
2883 2885 * IPython/iplib.py (handle_auto): fix autocall handling for
2884 2886 objects which support BOTH __getitem__ and __call__ (so that f [x]
2885 2887 is left alone, instead of becoming f([x]) automatically).
2886 2888
2887 2889 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2888 2890 Ville's patch.
2889 2891
2890 2892 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2891 2893
2892 2894 * IPython/iplib.py (handle_auto): changed autocall semantics to
2893 2895 include 'smart' mode, where the autocall transformation is NOT
2894 2896 applied if there are no arguments on the line. This allows you to
2895 2897 just type 'foo' if foo is a callable to see its internal form,
2896 2898 instead of having it called with no arguments (typically a
2897 2899 mistake). The old 'full' autocall still exists: for that, you
2898 2900 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2899 2901
2900 2902 * IPython/completer.py (Completer.attr_matches): add
2901 2903 tab-completion support for Enthoughts' traits. After a report by
2902 2904 Arnd and a patch by Prabhu.
2903 2905
2904 2906 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2905 2907
2906 2908 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2907 2909 Schmolck's patch to fix inspect.getinnerframes().
2908 2910
2909 2911 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2910 2912 for embedded instances, regarding handling of namespaces and items
2911 2913 added to the __builtin__ one. Multiple embedded instances and
2912 2914 recursive embeddings should work better now (though I'm not sure
2913 2915 I've got all the corner cases fixed, that code is a bit of a brain
2914 2916 twister).
2915 2917
2916 2918 * IPython/Magic.py (magic_edit): added support to edit in-memory
2917 2919 macros (automatically creates the necessary temp files). %edit
2918 2920 also doesn't return the file contents anymore, it's just noise.
2919 2921
2920 2922 * IPython/completer.py (Completer.attr_matches): revert change to
2921 2923 complete only on attributes listed in __all__. I realized it
2922 2924 cripples the tab-completion system as a tool for exploring the
2923 2925 internals of unknown libraries (it renders any non-__all__
2924 2926 attribute off-limits). I got bit by this when trying to see
2925 2927 something inside the dis module.
2926 2928
2927 2929 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2928 2930
2929 2931 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2930 2932 namespace for users and extension writers to hold data in. This
2931 2933 follows the discussion in
2932 2934 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2933 2935
2934 2936 * IPython/completer.py (IPCompleter.complete): small patch to help
2935 2937 tab-completion under Emacs, after a suggestion by John Barnard
2936 2938 <barnarj-AT-ccf.org>.
2937 2939
2938 2940 * IPython/Magic.py (Magic.extract_input_slices): added support for
2939 2941 the slice notation in magics to use N-M to represent numbers N...M
2940 2942 (closed endpoints). This is used by %macro and %save.
2941 2943
2942 2944 * IPython/completer.py (Completer.attr_matches): for modules which
2943 2945 define __all__, complete only on those. After a patch by Jeffrey
2944 2946 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2945 2947 speed up this routine.
2946 2948
2947 2949 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2948 2950 don't know if this is the end of it, but the behavior now is
2949 2951 certainly much more correct. Note that coupled with macros,
2950 2952 slightly surprising (at first) behavior may occur: a macro will in
2951 2953 general expand to multiple lines of input, so upon exiting, the
2952 2954 in/out counters will both be bumped by the corresponding amount
2953 2955 (as if the macro's contents had been typed interactively). Typing
2954 2956 %hist will reveal the intermediate (silently processed) lines.
2955 2957
2956 2958 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2957 2959 pickle to fail (%run was overwriting __main__ and not restoring
2958 2960 it, but pickle relies on __main__ to operate).
2959 2961
2960 2962 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2961 2963 using properties, but forgot to make the main InteractiveShell
2962 2964 class a new-style class. Properties fail silently, and
2963 2965 mysteriously, with old-style class (getters work, but
2964 2966 setters don't do anything).
2965 2967
2966 2968 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2967 2969
2968 2970 * IPython/Magic.py (magic_history): fix history reporting bug (I
2969 2971 know some nasties are still there, I just can't seem to find a
2970 2972 reproducible test case to track them down; the input history is
2971 2973 falling out of sync...)
2972 2974
2973 2975 * IPython/iplib.py (handle_shell_escape): fix bug where both
2974 2976 aliases and system accesses where broken for indented code (such
2975 2977 as loops).
2976 2978
2977 2979 * IPython/genutils.py (shell): fix small but critical bug for
2978 2980 win32 system access.
2979 2981
2980 2982 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2981 2983
2982 2984 * IPython/iplib.py (showtraceback): remove use of the
2983 2985 sys.last_{type/value/traceback} structures, which are non
2984 2986 thread-safe.
2985 2987 (_prefilter): change control flow to ensure that we NEVER
2986 2988 introspect objects when autocall is off. This will guarantee that
2987 2989 having an input line of the form 'x.y', where access to attribute
2988 2990 'y' has side effects, doesn't trigger the side effect TWICE. It
2989 2991 is important to note that, with autocall on, these side effects
2990 2992 can still happen.
2991 2993 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2992 2994 trio. IPython offers these three kinds of special calls which are
2993 2995 not python code, and it's a good thing to have their call method
2994 2996 be accessible as pure python functions (not just special syntax at
2995 2997 the command line). It gives us a better internal implementation
2996 2998 structure, as well as exposing these for user scripting more
2997 2999 cleanly.
2998 3000
2999 3001 * IPython/macro.py (Macro.__init__): moved macros to a standalone
3000 3002 file. Now that they'll be more likely to be used with the
3001 3003 persistance system (%store), I want to make sure their module path
3002 3004 doesn't change in the future, so that we don't break things for
3003 3005 users' persisted data.
3004 3006
3005 3007 * IPython/iplib.py (autoindent_update): move indentation
3006 3008 management into the _text_ processing loop, not the keyboard
3007 3009 interactive one. This is necessary to correctly process non-typed
3008 3010 multiline input (such as macros).
3009 3011
3010 3012 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
3011 3013 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
3012 3014 which was producing problems in the resulting manual.
3013 3015 (magic_whos): improve reporting of instances (show their class,
3014 3016 instead of simply printing 'instance' which isn't terribly
3015 3017 informative).
3016 3018
3017 3019 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
3018 3020 (minor mods) to support network shares under win32.
3019 3021
3020 3022 * IPython/winconsole.py (get_console_size): add new winconsole
3021 3023 module and fixes to page_dumb() to improve its behavior under
3022 3024 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
3023 3025
3024 3026 * IPython/Magic.py (Macro): simplified Macro class to just
3025 3027 subclass list. We've had only 2.2 compatibility for a very long
3026 3028 time, yet I was still avoiding subclassing the builtin types. No
3027 3029 more (I'm also starting to use properties, though I won't shift to
3028 3030 2.3-specific features quite yet).
3029 3031 (magic_store): added Ville's patch for lightweight variable
3030 3032 persistence, after a request on the user list by Matt Wilkie
3031 3033 <maphew-AT-gmail.com>. The new %store magic's docstring has full
3032 3034 details.
3033 3035
3034 3036 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3035 3037 changed the default logfile name from 'ipython.log' to
3036 3038 'ipython_log.py'. These logs are real python files, and now that
3037 3039 we have much better multiline support, people are more likely to
3038 3040 want to use them as such. Might as well name them correctly.
3039 3041
3040 3042 * IPython/Magic.py: substantial cleanup. While we can't stop
3041 3043 using magics as mixins, due to the existing customizations 'out
3042 3044 there' which rely on the mixin naming conventions, at least I
3043 3045 cleaned out all cross-class name usage. So once we are OK with
3044 3046 breaking compatibility, the two systems can be separated.
3045 3047
3046 3048 * IPython/Logger.py: major cleanup. This one is NOT a mixin
3047 3049 anymore, and the class is a fair bit less hideous as well. New
3048 3050 features were also introduced: timestamping of input, and logging
3049 3051 of output results. These are user-visible with the -t and -o
3050 3052 options to %logstart. Closes
3051 3053 http://www.scipy.net/roundup/ipython/issue11 and a request by
3052 3054 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
3053 3055
3054 3056 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
3055 3057
3056 3058 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
3057 3059 better handle backslashes in paths. See the thread 'More Windows
3058 3060 questions part 2 - \/ characters revisited' on the iypthon user
3059 3061 list:
3060 3062 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
3061 3063
3062 3064 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
3063 3065
3064 3066 (InteractiveShell.__init__): change threaded shells to not use the
3065 3067 ipython crash handler. This was causing more problems than not,
3066 3068 as exceptions in the main thread (GUI code, typically) would
3067 3069 always show up as a 'crash', when they really weren't.
3068 3070
3069 3071 The colors and exception mode commands (%colors/%xmode) have been
3070 3072 synchronized to also take this into account, so users can get
3071 3073 verbose exceptions for their threaded code as well. I also added
3072 3074 support for activating pdb inside this exception handler as well,
3073 3075 so now GUI authors can use IPython's enhanced pdb at runtime.
3074 3076
3075 3077 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
3076 3078 true by default, and add it to the shipped ipythonrc file. Since
3077 3079 this asks the user before proceeding, I think it's OK to make it
3078 3080 true by default.
3079 3081
3080 3082 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
3081 3083 of the previous special-casing of input in the eval loop. I think
3082 3084 this is cleaner, as they really are commands and shouldn't have
3083 3085 a special role in the middle of the core code.
3084 3086
3085 3087 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
3086 3088
3087 3089 * IPython/iplib.py (edit_syntax_error): added support for
3088 3090 automatically reopening the editor if the file had a syntax error
3089 3091 in it. Thanks to scottt who provided the patch at:
3090 3092 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
3091 3093 version committed).
3092 3094
3093 3095 * IPython/iplib.py (handle_normal): add suport for multi-line
3094 3096 input with emtpy lines. This fixes
3095 3097 http://www.scipy.net/roundup/ipython/issue43 and a similar
3096 3098 discussion on the user list.
3097 3099
3098 3100 WARNING: a behavior change is necessarily introduced to support
3099 3101 blank lines: now a single blank line with whitespace does NOT
3100 3102 break the input loop, which means that when autoindent is on, by
3101 3103 default hitting return on the next (indented) line does NOT exit.
3102 3104
3103 3105 Instead, to exit a multiline input you can either have:
3104 3106
3105 3107 - TWO whitespace lines (just hit return again), or
3106 3108 - a single whitespace line of a different length than provided
3107 3109 by the autoindent (add or remove a space).
3108 3110
3109 3111 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
3110 3112 module to better organize all readline-related functionality.
3111 3113 I've deleted FlexCompleter and put all completion clases here.
3112 3114
3113 3115 * IPython/iplib.py (raw_input): improve indentation management.
3114 3116 It is now possible to paste indented code with autoindent on, and
3115 3117 the code is interpreted correctly (though it still looks bad on
3116 3118 screen, due to the line-oriented nature of ipython).
3117 3119 (MagicCompleter.complete): change behavior so that a TAB key on an
3118 3120 otherwise empty line actually inserts a tab, instead of completing
3119 3121 on the entire global namespace. This makes it easier to use the
3120 3122 TAB key for indentation. After a request by Hans Meine
3121 3123 <hans_meine-AT-gmx.net>
3122 3124 (_prefilter): add support so that typing plain 'exit' or 'quit'
3123 3125 does a sensible thing. Originally I tried to deviate as little as
3124 3126 possible from the default python behavior, but even that one may
3125 3127 change in this direction (thread on python-dev to that effect).
3126 3128 Regardless, ipython should do the right thing even if CPython's
3127 3129 '>>>' prompt doesn't.
3128 3130 (InteractiveShell): removed subclassing code.InteractiveConsole
3129 3131 class. By now we'd overridden just about all of its methods: I've
3130 3132 copied the remaining two over, and now ipython is a standalone
3131 3133 class. This will provide a clearer picture for the chainsaw
3132 3134 branch refactoring.
3133 3135
3134 3136 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
3135 3137
3136 3138 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
3137 3139 failures for objects which break when dir() is called on them.
3138 3140
3139 3141 * IPython/FlexCompleter.py (Completer.__init__): Added support for
3140 3142 distinct local and global namespaces in the completer API. This
3141 3143 change allows us to properly handle completion with distinct
3142 3144 scopes, including in embedded instances (this had never really
3143 3145 worked correctly).
3144 3146
3145 3147 Note: this introduces a change in the constructor for
3146 3148 MagicCompleter, as a new global_namespace parameter is now the
3147 3149 second argument (the others were bumped one position).
3148 3150
3149 3151 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
3150 3152
3151 3153 * IPython/iplib.py (embed_mainloop): fix tab-completion in
3152 3154 embedded instances (which can be done now thanks to Vivian's
3153 3155 frame-handling fixes for pdb).
3154 3156 (InteractiveShell.__init__): Fix namespace handling problem in
3155 3157 embedded instances. We were overwriting __main__ unconditionally,
3156 3158 and this should only be done for 'full' (non-embedded) IPython;
3157 3159 embedded instances must respect the caller's __main__. Thanks to
3158 3160 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
3159 3161
3160 3162 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
3161 3163
3162 3164 * setup.py: added download_url to setup(). This registers the
3163 3165 download address at PyPI, which is not only useful to humans
3164 3166 browsing the site, but is also picked up by setuptools (the Eggs
3165 3167 machinery). Thanks to Ville and R. Kern for the info/discussion
3166 3168 on this.
3167 3169
3168 3170 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
3169 3171
3170 3172 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
3171 3173 This brings a lot of nice functionality to the pdb mode, which now
3172 3174 has tab-completion, syntax highlighting, and better stack handling
3173 3175 than before. Many thanks to Vivian De Smedt
3174 3176 <vivian-AT-vdesmedt.com> for the original patches.
3175 3177
3176 3178 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
3177 3179
3178 3180 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
3179 3181 sequence to consistently accept the banner argument. The
3180 3182 inconsistency was tripping SAGE, thanks to Gary Zablackis
3181 3183 <gzabl-AT-yahoo.com> for the report.
3182 3184
3183 3185 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
3184 3186
3185 3187 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3186 3188 Fix bug where a naked 'alias' call in the ipythonrc file would
3187 3189 cause a crash. Bug reported by Jorgen Stenarson.
3188 3190
3189 3191 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
3190 3192
3191 3193 * IPython/ipmaker.py (make_IPython): cleanups which should improve
3192 3194 startup time.
3193 3195
3194 3196 * IPython/iplib.py (runcode): my globals 'fix' for embedded
3195 3197 instances had introduced a bug with globals in normal code. Now
3196 3198 it's working in all cases.
3197 3199
3198 3200 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
3199 3201 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
3200 3202 has been introduced to set the default case sensitivity of the
3201 3203 searches. Users can still select either mode at runtime on a
3202 3204 per-search basis.
3203 3205
3204 3206 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
3205 3207
3206 3208 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
3207 3209 attributes in wildcard searches for subclasses. Modified version
3208 3210 of a patch by Jorgen.
3209 3211
3210 3212 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
3211 3213
3212 3214 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
3213 3215 embedded instances. I added a user_global_ns attribute to the
3214 3216 InteractiveShell class to handle this.
3215 3217
3216 3218 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
3217 3219
3218 3220 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
3219 3221 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
3220 3222 (reported under win32, but may happen also in other platforms).
3221 3223 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
3222 3224
3223 3225 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
3224 3226
3225 3227 * IPython/Magic.py (magic_psearch): new support for wildcard
3226 3228 patterns. Now, typing ?a*b will list all names which begin with a
3227 3229 and end in b, for example. The %psearch magic has full
3228 3230 docstrings. Many thanks to JΓΆrgen Stenarson
3229 3231 <jorgen.stenarson-AT-bostream.nu>, author of the patches
3230 3232 implementing this functionality.
3231 3233
3232 3234 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3233 3235
3234 3236 * Manual: fixed long-standing annoyance of double-dashes (as in
3235 3237 --prefix=~, for example) being stripped in the HTML version. This
3236 3238 is a latex2html bug, but a workaround was provided. Many thanks
3237 3239 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
3238 3240 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
3239 3241 rolling. This seemingly small issue had tripped a number of users
3240 3242 when first installing, so I'm glad to see it gone.
3241 3243
3242 3244 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3243 3245
3244 3246 * IPython/Extensions/numeric_formats.py: fix missing import,
3245 3247 reported by Stephen Walton.
3246 3248
3247 3249 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
3248 3250
3249 3251 * IPython/demo.py: finish demo module, fully documented now.
3250 3252
3251 3253 * IPython/genutils.py (file_read): simple little utility to read a
3252 3254 file and ensure it's closed afterwards.
3253 3255
3254 3256 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
3255 3257
3256 3258 * IPython/demo.py (Demo.__init__): added support for individually
3257 3259 tagging blocks for automatic execution.
3258 3260
3259 3261 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
3260 3262 syntax-highlighted python sources, requested by John.
3261 3263
3262 3264 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
3263 3265
3264 3266 * IPython/demo.py (Demo.again): fix bug where again() blocks after
3265 3267 finishing.
3266 3268
3267 3269 * IPython/genutils.py (shlex_split): moved from Magic to here,
3268 3270 where all 2.2 compatibility stuff lives. I needed it for demo.py.
3269 3271
3270 3272 * IPython/demo.py (Demo.__init__): added support for silent
3271 3273 blocks, improved marks as regexps, docstrings written.
3272 3274 (Demo.__init__): better docstring, added support for sys.argv.
3273 3275
3274 3276 * IPython/genutils.py (marquee): little utility used by the demo
3275 3277 code, handy in general.
3276 3278
3277 3279 * IPython/demo.py (Demo.__init__): new class for interactive
3278 3280 demos. Not documented yet, I just wrote it in a hurry for
3279 3281 scipy'05. Will docstring later.
3280 3282
3281 3283 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
3282 3284
3283 3285 * IPython/Shell.py (sigint_handler): Drastic simplification which
3284 3286 also seems to make Ctrl-C work correctly across threads! This is
3285 3287 so simple, that I can't beleive I'd missed it before. Needs more
3286 3288 testing, though.
3287 3289 (KBINT): Never mind, revert changes. I'm sure I'd tried something
3288 3290 like this before...
3289 3291
3290 3292 * IPython/genutils.py (get_home_dir): add protection against
3291 3293 non-dirs in win32 registry.
3292 3294
3293 3295 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
3294 3296 bug where dict was mutated while iterating (pysh crash).
3295 3297
3296 3298 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
3297 3299
3298 3300 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
3299 3301 spurious newlines added by this routine. After a report by
3300 3302 F. Mantegazza.
3301 3303
3302 3304 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
3303 3305
3304 3306 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
3305 3307 calls. These were a leftover from the GTK 1.x days, and can cause
3306 3308 problems in certain cases (after a report by John Hunter).
3307 3309
3308 3310 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
3309 3311 os.getcwd() fails at init time. Thanks to patch from David Remahl
3310 3312 <chmod007-AT-mac.com>.
3311 3313 (InteractiveShell.__init__): prevent certain special magics from
3312 3314 being shadowed by aliases. Closes
3313 3315 http://www.scipy.net/roundup/ipython/issue41.
3314 3316
3315 3317 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
3316 3318
3317 3319 * IPython/iplib.py (InteractiveShell.complete): Added new
3318 3320 top-level completion method to expose the completion mechanism
3319 3321 beyond readline-based environments.
3320 3322
3321 3323 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
3322 3324
3323 3325 * tools/ipsvnc (svnversion): fix svnversion capture.
3324 3326
3325 3327 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
3326 3328 attribute to self, which was missing. Before, it was set by a
3327 3329 routine which in certain cases wasn't being called, so the
3328 3330 instance could end up missing the attribute. This caused a crash.
3329 3331 Closes http://www.scipy.net/roundup/ipython/issue40.
3330 3332
3331 3333 2005-08-16 Fernando Perez <fperez@colorado.edu>
3332 3334
3333 3335 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
3334 3336 contains non-string attribute. Closes
3335 3337 http://www.scipy.net/roundup/ipython/issue38.
3336 3338
3337 3339 2005-08-14 Fernando Perez <fperez@colorado.edu>
3338 3340
3339 3341 * tools/ipsvnc: Minor improvements, to add changeset info.
3340 3342
3341 3343 2005-08-12 Fernando Perez <fperez@colorado.edu>
3342 3344
3343 3345 * IPython/iplib.py (runsource): remove self.code_to_run_src
3344 3346 attribute. I realized this is nothing more than
3345 3347 '\n'.join(self.buffer), and having the same data in two different
3346 3348 places is just asking for synchronization bugs. This may impact
3347 3349 people who have custom exception handlers, so I need to warn
3348 3350 ipython-dev about it (F. Mantegazza may use them).
3349 3351
3350 3352 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
3351 3353
3352 3354 * IPython/genutils.py: fix 2.2 compatibility (generators)
3353 3355
3354 3356 2005-07-18 Fernando Perez <fperez@colorado.edu>
3355 3357
3356 3358 * IPython/genutils.py (get_home_dir): fix to help users with
3357 3359 invalid $HOME under win32.
3358 3360
3359 3361 2005-07-17 Fernando Perez <fperez@colorado.edu>
3360 3362
3361 3363 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
3362 3364 some old hacks and clean up a bit other routines; code should be
3363 3365 simpler and a bit faster.
3364 3366
3365 3367 * IPython/iplib.py (interact): removed some last-resort attempts
3366 3368 to survive broken stdout/stderr. That code was only making it
3367 3369 harder to abstract out the i/o (necessary for gui integration),
3368 3370 and the crashes it could prevent were extremely rare in practice
3369 3371 (besides being fully user-induced in a pretty violent manner).
3370 3372
3371 3373 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
3372 3374 Nothing major yet, but the code is simpler to read; this should
3373 3375 make it easier to do more serious modifications in the future.
3374 3376
3375 3377 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
3376 3378 which broke in .15 (thanks to a report by Ville).
3377 3379
3378 3380 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
3379 3381 be quite correct, I know next to nothing about unicode). This
3380 3382 will allow unicode strings to be used in prompts, amongst other
3381 3383 cases. It also will prevent ipython from crashing when unicode
3382 3384 shows up unexpectedly in many places. If ascii encoding fails, we
3383 3385 assume utf_8. Currently the encoding is not a user-visible
3384 3386 setting, though it could be made so if there is demand for it.
3385 3387
3386 3388 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
3387 3389
3388 3390 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
3389 3391
3390 3392 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
3391 3393
3392 3394 * IPython/genutils.py: Add 2.2 compatibility here, so all other
3393 3395 code can work transparently for 2.2/2.3.
3394 3396
3395 3397 2005-07-16 Fernando Perez <fperez@colorado.edu>
3396 3398
3397 3399 * IPython/ultraTB.py (ExceptionColors): Make a global variable
3398 3400 out of the color scheme table used for coloring exception
3399 3401 tracebacks. This allows user code to add new schemes at runtime.
3400 3402 This is a minimally modified version of the patch at
3401 3403 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
3402 3404 for the contribution.
3403 3405
3404 3406 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
3405 3407 slightly modified version of the patch in
3406 3408 http://www.scipy.net/roundup/ipython/issue34, which also allows me
3407 3409 to remove the previous try/except solution (which was costlier).
3408 3410 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
3409 3411
3410 3412 2005-06-08 Fernando Perez <fperez@colorado.edu>
3411 3413
3412 3414 * IPython/iplib.py (write/write_err): Add methods to abstract all
3413 3415 I/O a bit more.
3414 3416
3415 3417 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
3416 3418 warning, reported by Aric Hagberg, fix by JD Hunter.
3417 3419
3418 3420 2005-06-02 *** Released version 0.6.15
3419 3421
3420 3422 2005-06-01 Fernando Perez <fperez@colorado.edu>
3421 3423
3422 3424 * IPython/iplib.py (MagicCompleter.file_matches): Fix
3423 3425 tab-completion of filenames within open-quoted strings. Note that
3424 3426 this requires that in ~/.ipython/ipythonrc, users change the
3425 3427 readline delimiters configuration to read:
3426 3428
3427 3429 readline_remove_delims -/~
3428 3430
3429 3431
3430 3432 2005-05-31 *** Released version 0.6.14
3431 3433
3432 3434 2005-05-29 Fernando Perez <fperez@colorado.edu>
3433 3435
3434 3436 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
3435 3437 with files not on the filesystem. Reported by Eliyahu Sandler
3436 3438 <eli@gondolin.net>
3437 3439
3438 3440 2005-05-22 Fernando Perez <fperez@colorado.edu>
3439 3441
3440 3442 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
3441 3443 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
3442 3444
3443 3445 2005-05-19 Fernando Perez <fperez@colorado.edu>
3444 3446
3445 3447 * IPython/iplib.py (safe_execfile): close a file which could be
3446 3448 left open (causing problems in win32, which locks open files).
3447 3449 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
3448 3450
3449 3451 2005-05-18 Fernando Perez <fperez@colorado.edu>
3450 3452
3451 3453 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
3452 3454 keyword arguments correctly to safe_execfile().
3453 3455
3454 3456 2005-05-13 Fernando Perez <fperez@colorado.edu>
3455 3457
3456 3458 * ipython.1: Added info about Qt to manpage, and threads warning
3457 3459 to usage page (invoked with --help).
3458 3460
3459 3461 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
3460 3462 new matcher (it goes at the end of the priority list) to do
3461 3463 tab-completion on named function arguments. Submitted by George
3462 3464 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
3463 3465 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
3464 3466 for more details.
3465 3467
3466 3468 * IPython/Magic.py (magic_run): Added new -e flag to ignore
3467 3469 SystemExit exceptions in the script being run. Thanks to a report
3468 3470 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
3469 3471 producing very annoying behavior when running unit tests.
3470 3472
3471 3473 2005-05-12 Fernando Perez <fperez@colorado.edu>
3472 3474
3473 3475 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
3474 3476 which I'd broken (again) due to a changed regexp. In the process,
3475 3477 added ';' as an escape to auto-quote the whole line without
3476 3478 splitting its arguments. Thanks to a report by Jerry McRae
3477 3479 <qrs0xyc02-AT-sneakemail.com>.
3478 3480
3479 3481 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
3480 3482 possible crashes caused by a TokenError. Reported by Ed Schofield
3481 3483 <schofield-AT-ftw.at>.
3482 3484
3483 3485 2005-05-06 Fernando Perez <fperez@colorado.edu>
3484 3486
3485 3487 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
3486 3488
3487 3489 2005-04-29 Fernando Perez <fperez@colorado.edu>
3488 3490
3489 3491 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
3490 3492 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
3491 3493 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
3492 3494 which provides support for Qt interactive usage (similar to the
3493 3495 existing one for WX and GTK). This had been often requested.
3494 3496
3495 3497 2005-04-14 *** Released version 0.6.13
3496 3498
3497 3499 2005-04-08 Fernando Perez <fperez@colorado.edu>
3498 3500
3499 3501 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
3500 3502 from _ofind, which gets called on almost every input line. Now,
3501 3503 we only try to get docstrings if they are actually going to be
3502 3504 used (the overhead of fetching unnecessary docstrings can be
3503 3505 noticeable for certain objects, such as Pyro proxies).
3504 3506
3505 3507 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
3506 3508 for completers. For some reason I had been passing them the state
3507 3509 variable, which completers never actually need, and was in
3508 3510 conflict with the rlcompleter API. Custom completers ONLY need to
3509 3511 take the text parameter.
3510 3512
3511 3513 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
3512 3514 work correctly in pysh. I've also moved all the logic which used
3513 3515 to be in pysh.py here, which will prevent problems with future
3514 3516 upgrades. However, this time I must warn users to update their
3515 3517 pysh profile to include the line
3516 3518
3517 3519 import_all IPython.Extensions.InterpreterExec
3518 3520
3519 3521 because otherwise things won't work for them. They MUST also
3520 3522 delete pysh.py and the line
3521 3523
3522 3524 execfile pysh.py
3523 3525
3524 3526 from their ipythonrc-pysh.
3525 3527
3526 3528 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
3527 3529 robust in the face of objects whose dir() returns non-strings
3528 3530 (which it shouldn't, but some broken libs like ITK do). Thanks to
3529 3531 a patch by John Hunter (implemented differently, though). Also
3530 3532 minor improvements by using .extend instead of + on lists.
3531 3533
3532 3534 * pysh.py:
3533 3535
3534 3536 2005-04-06 Fernando Perez <fperez@colorado.edu>
3535 3537
3536 3538 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
3537 3539 by default, so that all users benefit from it. Those who don't
3538 3540 want it can still turn it off.
3539 3541
3540 3542 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
3541 3543 config file, I'd forgotten about this, so users were getting it
3542 3544 off by default.
3543 3545
3544 3546 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
3545 3547 consistency. Now magics can be called in multiline statements,
3546 3548 and python variables can be expanded in magic calls via $var.
3547 3549 This makes the magic system behave just like aliases or !system
3548 3550 calls.
3549 3551
3550 3552 2005-03-28 Fernando Perez <fperez@colorado.edu>
3551 3553
3552 3554 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
3553 3555 expensive string additions for building command. Add support for
3554 3556 trailing ';' when autocall is used.
3555 3557
3556 3558 2005-03-26 Fernando Perez <fperez@colorado.edu>
3557 3559
3558 3560 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
3559 3561 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
3560 3562 ipython.el robust against prompts with any number of spaces
3561 3563 (including 0) after the ':' character.
3562 3564
3563 3565 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
3564 3566 continuation prompt, which misled users to think the line was
3565 3567 already indented. Closes debian Bug#300847, reported to me by
3566 3568 Norbert Tretkowski <tretkowski-AT-inittab.de>.
3567 3569
3568 3570 2005-03-23 Fernando Perez <fperez@colorado.edu>
3569 3571
3570 3572 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
3571 3573 properly aligned if they have embedded newlines.
3572 3574
3573 3575 * IPython/iplib.py (runlines): Add a public method to expose
3574 3576 IPython's code execution machinery, so that users can run strings
3575 3577 as if they had been typed at the prompt interactively.
3576 3578 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
3577 3579 methods which can call the system shell, but with python variable
3578 3580 expansion. The three such methods are: __IPYTHON__.system,
3579 3581 .getoutput and .getoutputerror. These need to be documented in a
3580 3582 'public API' section (to be written) of the manual.
3581 3583
3582 3584 2005-03-20 Fernando Perez <fperez@colorado.edu>
3583 3585
3584 3586 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
3585 3587 for custom exception handling. This is quite powerful, and it
3586 3588 allows for user-installable exception handlers which can trap
3587 3589 custom exceptions at runtime and treat them separately from
3588 3590 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
3589 3591 Mantegazza <mantegazza-AT-ill.fr>.
3590 3592 (InteractiveShell.set_custom_completer): public API function to
3591 3593 add new completers at runtime.
3592 3594
3593 3595 2005-03-19 Fernando Perez <fperez@colorado.edu>
3594 3596
3595 3597 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
3596 3598 allow objects which provide their docstrings via non-standard
3597 3599 mechanisms (like Pyro proxies) to still be inspected by ipython's
3598 3600 ? system.
3599 3601
3600 3602 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
3601 3603 automatic capture system. I tried quite hard to make it work
3602 3604 reliably, and simply failed. I tried many combinations with the
3603 3605 subprocess module, but eventually nothing worked in all needed
3604 3606 cases (not blocking stdin for the child, duplicating stdout
3605 3607 without blocking, etc). The new %sc/%sx still do capture to these
3606 3608 magical list/string objects which make shell use much more
3607 3609 conveninent, so not all is lost.
3608 3610
3609 3611 XXX - FIX MANUAL for the change above!
3610 3612
3611 3613 (runsource): I copied code.py's runsource() into ipython to modify
3612 3614 it a bit. Now the code object and source to be executed are
3613 3615 stored in ipython. This makes this info accessible to third-party
3614 3616 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
3615 3617 Mantegazza <mantegazza-AT-ill.fr>.
3616 3618
3617 3619 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3618 3620 history-search via readline (like C-p/C-n). I'd wanted this for a
3619 3621 long time, but only recently found out how to do it. For users
3620 3622 who already have their ipythonrc files made and want this, just
3621 3623 add:
3622 3624
3623 3625 readline_parse_and_bind "\e[A": history-search-backward
3624 3626 readline_parse_and_bind "\e[B": history-search-forward
3625 3627
3626 3628 2005-03-18 Fernando Perez <fperez@colorado.edu>
3627 3629
3628 3630 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3629 3631 LSString and SList classes which allow transparent conversions
3630 3632 between list mode and whitespace-separated string.
3631 3633 (magic_r): Fix recursion problem in %r.
3632 3634
3633 3635 * IPython/genutils.py (LSString): New class to be used for
3634 3636 automatic storage of the results of all alias/system calls in _o
3635 3637 and _e (stdout/err). These provide a .l/.list attribute which
3636 3638 does automatic splitting on newlines. This means that for most
3637 3639 uses, you'll never need to do capturing of output with %sc/%sx
3638 3640 anymore, since ipython keeps this always done for you. Note that
3639 3641 only the LAST results are stored, the _o/e variables are
3640 3642 overwritten on each call. If you need to save their contents
3641 3643 further, simply bind them to any other name.
3642 3644
3643 3645 2005-03-17 Fernando Perez <fperez@colorado.edu>
3644 3646
3645 3647 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3646 3648 prompt namespace handling.
3647 3649
3648 3650 2005-03-16 Fernando Perez <fperez@colorado.edu>
3649 3651
3650 3652 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3651 3653 classic prompts to be '>>> ' (final space was missing, and it
3652 3654 trips the emacs python mode).
3653 3655 (BasePrompt.__str__): Added safe support for dynamic prompt
3654 3656 strings. Now you can set your prompt string to be '$x', and the
3655 3657 value of x will be printed from your interactive namespace. The
3656 3658 interpolation syntax includes the full Itpl support, so
3657 3659 ${foo()+x+bar()} is a valid prompt string now, and the function
3658 3660 calls will be made at runtime.
3659 3661
3660 3662 2005-03-15 Fernando Perez <fperez@colorado.edu>
3661 3663
3662 3664 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3663 3665 avoid name clashes in pylab. %hist still works, it just forwards
3664 3666 the call to %history.
3665 3667
3666 3668 2005-03-02 *** Released version 0.6.12
3667 3669
3668 3670 2005-03-02 Fernando Perez <fperez@colorado.edu>
3669 3671
3670 3672 * IPython/iplib.py (handle_magic): log magic calls properly as
3671 3673 ipmagic() function calls.
3672 3674
3673 3675 * IPython/Magic.py (magic_time): Improved %time to support
3674 3676 statements and provide wall-clock as well as CPU time.
3675 3677
3676 3678 2005-02-27 Fernando Perez <fperez@colorado.edu>
3677 3679
3678 3680 * IPython/hooks.py: New hooks module, to expose user-modifiable
3679 3681 IPython functionality in a clean manner. For now only the editor
3680 3682 hook is actually written, and other thigns which I intend to turn
3681 3683 into proper hooks aren't yet there. The display and prefilter
3682 3684 stuff, for example, should be hooks. But at least now the
3683 3685 framework is in place, and the rest can be moved here with more
3684 3686 time later. IPython had had a .hooks variable for a long time for
3685 3687 this purpose, but I'd never actually used it for anything.
3686 3688
3687 3689 2005-02-26 Fernando Perez <fperez@colorado.edu>
3688 3690
3689 3691 * IPython/ipmaker.py (make_IPython): make the default ipython
3690 3692 directory be called _ipython under win32, to follow more the
3691 3693 naming peculiarities of that platform (where buggy software like
3692 3694 Visual Sourcesafe breaks with .named directories). Reported by
3693 3695 Ville Vainio.
3694 3696
3695 3697 2005-02-23 Fernando Perez <fperez@colorado.edu>
3696 3698
3697 3699 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3698 3700 auto_aliases for win32 which were causing problems. Users can
3699 3701 define the ones they personally like.
3700 3702
3701 3703 2005-02-21 Fernando Perez <fperez@colorado.edu>
3702 3704
3703 3705 * IPython/Magic.py (magic_time): new magic to time execution of
3704 3706 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3705 3707
3706 3708 2005-02-19 Fernando Perez <fperez@colorado.edu>
3707 3709
3708 3710 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3709 3711 into keys (for prompts, for example).
3710 3712
3711 3713 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3712 3714 prompts in case users want them. This introduces a small behavior
3713 3715 change: ipython does not automatically add a space to all prompts
3714 3716 anymore. To get the old prompts with a space, users should add it
3715 3717 manually to their ipythonrc file, so for example prompt_in1 should
3716 3718 now read 'In [\#]: ' instead of 'In [\#]:'.
3717 3719 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3718 3720 file) to control left-padding of secondary prompts.
3719 3721
3720 3722 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3721 3723 the profiler can't be imported. Fix for Debian, which removed
3722 3724 profile.py because of License issues. I applied a slightly
3723 3725 modified version of the original Debian patch at
3724 3726 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3725 3727
3726 3728 2005-02-17 Fernando Perez <fperez@colorado.edu>
3727 3729
3728 3730 * IPython/genutils.py (native_line_ends): Fix bug which would
3729 3731 cause improper line-ends under win32 b/c I was not opening files
3730 3732 in binary mode. Bug report and fix thanks to Ville.
3731 3733
3732 3734 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3733 3735 trying to catch spurious foo[1] autocalls. My fix actually broke
3734 3736 ',/' autoquote/call with explicit escape (bad regexp).
3735 3737
3736 3738 2005-02-15 *** Released version 0.6.11
3737 3739
3738 3740 2005-02-14 Fernando Perez <fperez@colorado.edu>
3739 3741
3740 3742 * IPython/background_jobs.py: New background job management
3741 3743 subsystem. This is implemented via a new set of classes, and
3742 3744 IPython now provides a builtin 'jobs' object for background job
3743 3745 execution. A convenience %bg magic serves as a lightweight
3744 3746 frontend for starting the more common type of calls. This was
3745 3747 inspired by discussions with B. Granger and the BackgroundCommand
3746 3748 class described in the book Python Scripting for Computational
3747 3749 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3748 3750 (although ultimately no code from this text was used, as IPython's
3749 3751 system is a separate implementation).
3750 3752
3751 3753 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3752 3754 to control the completion of single/double underscore names
3753 3755 separately. As documented in the example ipytonrc file, the
3754 3756 readline_omit__names variable can now be set to 2, to omit even
3755 3757 single underscore names. Thanks to a patch by Brian Wong
3756 3758 <BrianWong-AT-AirgoNetworks.Com>.
3757 3759 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3758 3760 be autocalled as foo([1]) if foo were callable. A problem for
3759 3761 things which are both callable and implement __getitem__.
3760 3762 (init_readline): Fix autoindentation for win32. Thanks to a patch
3761 3763 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3762 3764
3763 3765 2005-02-12 Fernando Perez <fperez@colorado.edu>
3764 3766
3765 3767 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3766 3768 which I had written long ago to sort out user error messages which
3767 3769 may occur during startup. This seemed like a good idea initially,
3768 3770 but it has proven a disaster in retrospect. I don't want to
3769 3771 change much code for now, so my fix is to set the internal 'debug'
3770 3772 flag to true everywhere, whose only job was precisely to control
3771 3773 this subsystem. This closes issue 28 (as well as avoiding all
3772 3774 sorts of strange hangups which occur from time to time).
3773 3775
3774 3776 2005-02-07 Fernando Perez <fperez@colorado.edu>
3775 3777
3776 3778 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3777 3779 previous call produced a syntax error.
3778 3780
3779 3781 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3780 3782 classes without constructor.
3781 3783
3782 3784 2005-02-06 Fernando Perez <fperez@colorado.edu>
3783 3785
3784 3786 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3785 3787 completions with the results of each matcher, so we return results
3786 3788 to the user from all namespaces. This breaks with ipython
3787 3789 tradition, but I think it's a nicer behavior. Now you get all
3788 3790 possible completions listed, from all possible namespaces (python,
3789 3791 filesystem, magics...) After a request by John Hunter
3790 3792 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3791 3793
3792 3794 2005-02-05 Fernando Perez <fperez@colorado.edu>
3793 3795
3794 3796 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3795 3797 the call had quote characters in it (the quotes were stripped).
3796 3798
3797 3799 2005-01-31 Fernando Perez <fperez@colorado.edu>
3798 3800
3799 3801 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3800 3802 Itpl.itpl() to make the code more robust against psyco
3801 3803 optimizations.
3802 3804
3803 3805 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3804 3806 of causing an exception. Quicker, cleaner.
3805 3807
3806 3808 2005-01-28 Fernando Perez <fperez@colorado.edu>
3807 3809
3808 3810 * scripts/ipython_win_post_install.py (install): hardcode
3809 3811 sys.prefix+'python.exe' as the executable path. It turns out that
3810 3812 during the post-installation run, sys.executable resolves to the
3811 3813 name of the binary installer! I should report this as a distutils
3812 3814 bug, I think. I updated the .10 release with this tiny fix, to
3813 3815 avoid annoying the lists further.
3814 3816
3815 3817 2005-01-27 *** Released version 0.6.10
3816 3818
3817 3819 2005-01-27 Fernando Perez <fperez@colorado.edu>
3818 3820
3819 3821 * IPython/numutils.py (norm): Added 'inf' as optional name for
3820 3822 L-infinity norm, included references to mathworld.com for vector
3821 3823 norm definitions.
3822 3824 (amin/amax): added amin/amax for array min/max. Similar to what
3823 3825 pylab ships with after the recent reorganization of names.
3824 3826 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3825 3827
3826 3828 * ipython.el: committed Alex's recent fixes and improvements.
3827 3829 Tested with python-mode from CVS, and it looks excellent. Since
3828 3830 python-mode hasn't released anything in a while, I'm temporarily
3829 3831 putting a copy of today's CVS (v 4.70) of python-mode in:
3830 3832 http://ipython.scipy.org/tmp/python-mode.el
3831 3833
3832 3834 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3833 3835 sys.executable for the executable name, instead of assuming it's
3834 3836 called 'python.exe' (the post-installer would have produced broken
3835 3837 setups on systems with a differently named python binary).
3836 3838
3837 3839 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3838 3840 references to os.linesep, to make the code more
3839 3841 platform-independent. This is also part of the win32 coloring
3840 3842 fixes.
3841 3843
3842 3844 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3843 3845 lines, which actually cause coloring bugs because the length of
3844 3846 the line is very difficult to correctly compute with embedded
3845 3847 escapes. This was the source of all the coloring problems under
3846 3848 Win32. I think that _finally_, Win32 users have a properly
3847 3849 working ipython in all respects. This would never have happened
3848 3850 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3849 3851
3850 3852 2005-01-26 *** Released version 0.6.9
3851 3853
3852 3854 2005-01-25 Fernando Perez <fperez@colorado.edu>
3853 3855
3854 3856 * setup.py: finally, we have a true Windows installer, thanks to
3855 3857 the excellent work of Viktor Ransmayr
3856 3858 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3857 3859 Windows users. The setup routine is quite a bit cleaner thanks to
3858 3860 this, and the post-install script uses the proper functions to
3859 3861 allow a clean de-installation using the standard Windows Control
3860 3862 Panel.
3861 3863
3862 3864 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3863 3865 environment variable under all OSes (including win32) if
3864 3866 available. This will give consistency to win32 users who have set
3865 3867 this variable for any reason. If os.environ['HOME'] fails, the
3866 3868 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3867 3869
3868 3870 2005-01-24 Fernando Perez <fperez@colorado.edu>
3869 3871
3870 3872 * IPython/numutils.py (empty_like): add empty_like(), similar to
3871 3873 zeros_like() but taking advantage of the new empty() Numeric routine.
3872 3874
3873 3875 2005-01-23 *** Released version 0.6.8
3874 3876
3875 3877 2005-01-22 Fernando Perez <fperez@colorado.edu>
3876 3878
3877 3879 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3878 3880 automatic show() calls. After discussing things with JDH, it
3879 3881 turns out there are too many corner cases where this can go wrong.
3880 3882 It's best not to try to be 'too smart', and simply have ipython
3881 3883 reproduce as much as possible the default behavior of a normal
3882 3884 python shell.
3883 3885
3884 3886 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3885 3887 line-splitting regexp and _prefilter() to avoid calling getattr()
3886 3888 on assignments. This closes
3887 3889 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3888 3890 readline uses getattr(), so a simple <TAB> keypress is still
3889 3891 enough to trigger getattr() calls on an object.
3890 3892
3891 3893 2005-01-21 Fernando Perez <fperez@colorado.edu>
3892 3894
3893 3895 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3894 3896 docstring under pylab so it doesn't mask the original.
3895 3897
3896 3898 2005-01-21 *** Released version 0.6.7
3897 3899
3898 3900 2005-01-21 Fernando Perez <fperez@colorado.edu>
3899 3901
3900 3902 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3901 3903 signal handling for win32 users in multithreaded mode.
3902 3904
3903 3905 2005-01-17 Fernando Perez <fperez@colorado.edu>
3904 3906
3905 3907 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3906 3908 instances with no __init__. After a crash report by Norbert Nemec
3907 3909 <Norbert-AT-nemec-online.de>.
3908 3910
3909 3911 2005-01-14 Fernando Perez <fperez@colorado.edu>
3910 3912
3911 3913 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3912 3914 names for verbose exceptions, when multiple dotted names and the
3913 3915 'parent' object were present on the same line.
3914 3916
3915 3917 2005-01-11 Fernando Perez <fperez@colorado.edu>
3916 3918
3917 3919 * IPython/genutils.py (flag_calls): new utility to trap and flag
3918 3920 calls in functions. I need it to clean up matplotlib support.
3919 3921 Also removed some deprecated code in genutils.
3920 3922
3921 3923 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3922 3924 that matplotlib scripts called with %run, which don't call show()
3923 3925 themselves, still have their plotting windows open.
3924 3926
3925 3927 2005-01-05 Fernando Perez <fperez@colorado.edu>
3926 3928
3927 3929 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3928 3930 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3929 3931
3930 3932 2004-12-19 Fernando Perez <fperez@colorado.edu>
3931 3933
3932 3934 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3933 3935 parent_runcode, which was an eyesore. The same result can be
3934 3936 obtained with Python's regular superclass mechanisms.
3935 3937
3936 3938 2004-12-17 Fernando Perez <fperez@colorado.edu>
3937 3939
3938 3940 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3939 3941 reported by Prabhu.
3940 3942 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3941 3943 sys.stderr) instead of explicitly calling sys.stderr. This helps
3942 3944 maintain our I/O abstractions clean, for future GUI embeddings.
3943 3945
3944 3946 * IPython/genutils.py (info): added new utility for sys.stderr
3945 3947 unified info message handling (thin wrapper around warn()).
3946 3948
3947 3949 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3948 3950 composite (dotted) names on verbose exceptions.
3949 3951 (VerboseTB.nullrepr): harden against another kind of errors which
3950 3952 Python's inspect module can trigger, and which were crashing
3951 3953 IPython. Thanks to a report by Marco Lombardi
3952 3954 <mlombard-AT-ma010192.hq.eso.org>.
3953 3955
3954 3956 2004-12-13 *** Released version 0.6.6
3955 3957
3956 3958 2004-12-12 Fernando Perez <fperez@colorado.edu>
3957 3959
3958 3960 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3959 3961 generated by pygtk upon initialization if it was built without
3960 3962 threads (for matplotlib users). After a crash reported by
3961 3963 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3962 3964
3963 3965 * IPython/ipmaker.py (make_IPython): fix small bug in the
3964 3966 import_some parameter for multiple imports.
3965 3967
3966 3968 * IPython/iplib.py (ipmagic): simplified the interface of
3967 3969 ipmagic() to take a single string argument, just as it would be
3968 3970 typed at the IPython cmd line.
3969 3971 (ipalias): Added new ipalias() with an interface identical to
3970 3972 ipmagic(). This completes exposing a pure python interface to the
3971 3973 alias and magic system, which can be used in loops or more complex
3972 3974 code where IPython's automatic line mangling is not active.
3973 3975
3974 3976 * IPython/genutils.py (timing): changed interface of timing to
3975 3977 simply run code once, which is the most common case. timings()
3976 3978 remains unchanged, for the cases where you want multiple runs.
3977 3979
3978 3980 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3979 3981 bug where Python2.2 crashes with exec'ing code which does not end
3980 3982 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3981 3983 before.
3982 3984
3983 3985 2004-12-10 Fernando Perez <fperez@colorado.edu>
3984 3986
3985 3987 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3986 3988 -t to -T, to accomodate the new -t flag in %run (the %run and
3987 3989 %prun options are kind of intermixed, and it's not easy to change
3988 3990 this with the limitations of python's getopt).
3989 3991
3990 3992 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3991 3993 the execution of scripts. It's not as fine-tuned as timeit.py,
3992 3994 but it works from inside ipython (and under 2.2, which lacks
3993 3995 timeit.py). Optionally a number of runs > 1 can be given for
3994 3996 timing very short-running code.
3995 3997
3996 3998 * IPython/genutils.py (uniq_stable): new routine which returns a
3997 3999 list of unique elements in any iterable, but in stable order of
3998 4000 appearance. I needed this for the ultraTB fixes, and it's a handy
3999 4001 utility.
4000 4002
4001 4003 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
4002 4004 dotted names in Verbose exceptions. This had been broken since
4003 4005 the very start, now x.y will properly be printed in a Verbose
4004 4006 traceback, instead of x being shown and y appearing always as an
4005 4007 'undefined global'. Getting this to work was a bit tricky,
4006 4008 because by default python tokenizers are stateless. Saved by
4007 4009 python's ability to easily add a bit of state to an arbitrary
4008 4010 function (without needing to build a full-blown callable object).
4009 4011
4010 4012 Also big cleanup of this code, which had horrendous runtime
4011 4013 lookups of zillions of attributes for colorization. Moved all
4012 4014 this code into a few templates, which make it cleaner and quicker.
4013 4015
4014 4016 Printout quality was also improved for Verbose exceptions: one
4015 4017 variable per line, and memory addresses are printed (this can be
4016 4018 quite handy in nasty debugging situations, which is what Verbose
4017 4019 is for).
4018 4020
4019 4021 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
4020 4022 the command line as scripts to be loaded by embedded instances.
4021 4023 Doing so has the potential for an infinite recursion if there are
4022 4024 exceptions thrown in the process. This fixes a strange crash
4023 4025 reported by Philippe MULLER <muller-AT-irit.fr>.
4024 4026
4025 4027 2004-12-09 Fernando Perez <fperez@colorado.edu>
4026 4028
4027 4029 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
4028 4030 to reflect new names in matplotlib, which now expose the
4029 4031 matlab-compatible interface via a pylab module instead of the
4030 4032 'matlab' name. The new code is backwards compatible, so users of
4031 4033 all matplotlib versions are OK. Patch by J. Hunter.
4032 4034
4033 4035 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
4034 4036 of __init__ docstrings for instances (class docstrings are already
4035 4037 automatically printed). Instances with customized docstrings
4036 4038 (indep. of the class) are also recognized and all 3 separate
4037 4039 docstrings are printed (instance, class, constructor). After some
4038 4040 comments/suggestions by J. Hunter.
4039 4041
4040 4042 2004-12-05 Fernando Perez <fperez@colorado.edu>
4041 4043
4042 4044 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
4043 4045 warnings when tab-completion fails and triggers an exception.
4044 4046
4045 4047 2004-12-03 Fernando Perez <fperez@colorado.edu>
4046 4048
4047 4049 * IPython/Magic.py (magic_prun): Fix bug where an exception would
4048 4050 be triggered when using 'run -p'. An incorrect option flag was
4049 4051 being set ('d' instead of 'D').
4050 4052 (manpage): fix missing escaped \- sign.
4051 4053
4052 4054 2004-11-30 *** Released version 0.6.5
4053 4055
4054 4056 2004-11-30 Fernando Perez <fperez@colorado.edu>
4055 4057
4056 4058 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
4057 4059 setting with -d option.
4058 4060
4059 4061 * setup.py (docfiles): Fix problem where the doc glob I was using
4060 4062 was COMPLETELY BROKEN. It was giving the right files by pure
4061 4063 accident, but failed once I tried to include ipython.el. Note:
4062 4064 glob() does NOT allow you to do exclusion on multiple endings!
4063 4065
4064 4066 2004-11-29 Fernando Perez <fperez@colorado.edu>
4065 4067
4066 4068 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
4067 4069 the manpage as the source. Better formatting & consistency.
4068 4070
4069 4071 * IPython/Magic.py (magic_run): Added new -d option, to run
4070 4072 scripts under the control of the python pdb debugger. Note that
4071 4073 this required changing the %prun option -d to -D, to avoid a clash
4072 4074 (since %run must pass options to %prun, and getopt is too dumb to
4073 4075 handle options with string values with embedded spaces). Thanks
4074 4076 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
4075 4077 (magic_who_ls): added type matching to %who and %whos, so that one
4076 4078 can filter their output to only include variables of certain
4077 4079 types. Another suggestion by Matthew.
4078 4080 (magic_whos): Added memory summaries in kb and Mb for arrays.
4079 4081 (magic_who): Improve formatting (break lines every 9 vars).
4080 4082
4081 4083 2004-11-28 Fernando Perez <fperez@colorado.edu>
4082 4084
4083 4085 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
4084 4086 cache when empty lines were present.
4085 4087
4086 4088 2004-11-24 Fernando Perez <fperez@colorado.edu>
4087 4089
4088 4090 * IPython/usage.py (__doc__): document the re-activated threading
4089 4091 options for WX and GTK.
4090 4092
4091 4093 2004-11-23 Fernando Perez <fperez@colorado.edu>
4092 4094
4093 4095 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
4094 4096 the -wthread and -gthread options, along with a new -tk one to try
4095 4097 and coordinate Tk threading with wx/gtk. The tk support is very
4096 4098 platform dependent, since it seems to require Tcl and Tk to be
4097 4099 built with threads (Fedora1/2 appears NOT to have it, but in
4098 4100 Prabhu's Debian boxes it works OK). But even with some Tk
4099 4101 limitations, this is a great improvement.
4100 4102
4101 4103 * IPython/Prompts.py (prompt_specials_color): Added \t for time
4102 4104 info in user prompts. Patch by Prabhu.
4103 4105
4104 4106 2004-11-18 Fernando Perez <fperez@colorado.edu>
4105 4107
4106 4108 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
4107 4109 EOFErrors and bail, to avoid infinite loops if a non-terminating
4108 4110 file is fed into ipython. Patch submitted in issue 19 by user,
4109 4111 many thanks.
4110 4112
4111 4113 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
4112 4114 autoquote/parens in continuation prompts, which can cause lots of
4113 4115 problems. Closes roundup issue 20.
4114 4116
4115 4117 2004-11-17 Fernando Perez <fperez@colorado.edu>
4116 4118
4117 4119 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
4118 4120 reported as debian bug #280505. I'm not sure my local changelog
4119 4121 entry has the proper debian format (Jack?).
4120 4122
4121 4123 2004-11-08 *** Released version 0.6.4
4122 4124
4123 4125 2004-11-08 Fernando Perez <fperez@colorado.edu>
4124 4126
4125 4127 * IPython/iplib.py (init_readline): Fix exit message for Windows
4126 4128 when readline is active. Thanks to a report by Eric Jones
4127 4129 <eric-AT-enthought.com>.
4128 4130
4129 4131 2004-11-07 Fernando Perez <fperez@colorado.edu>
4130 4132
4131 4133 * IPython/genutils.py (page): Add a trap for OSError exceptions,
4132 4134 sometimes seen by win2k/cygwin users.
4133 4135
4134 4136 2004-11-06 Fernando Perez <fperez@colorado.edu>
4135 4137
4136 4138 * IPython/iplib.py (interact): Change the handling of %Exit from
4137 4139 trying to propagate a SystemExit to an internal ipython flag.
4138 4140 This is less elegant than using Python's exception mechanism, but
4139 4141 I can't get that to work reliably with threads, so under -pylab
4140 4142 %Exit was hanging IPython. Cross-thread exception handling is
4141 4143 really a bitch. Thaks to a bug report by Stephen Walton
4142 4144 <stephen.walton-AT-csun.edu>.
4143 4145
4144 4146 2004-11-04 Fernando Perez <fperez@colorado.edu>
4145 4147
4146 4148 * IPython/iplib.py (raw_input_original): store a pointer to the
4147 4149 true raw_input to harden against code which can modify it
4148 4150 (wx.py.PyShell does this and would otherwise crash ipython).
4149 4151 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
4150 4152
4151 4153 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
4152 4154 Ctrl-C problem, which does not mess up the input line.
4153 4155
4154 4156 2004-11-03 Fernando Perez <fperez@colorado.edu>
4155 4157
4156 4158 * IPython/Release.py: Changed licensing to BSD, in all files.
4157 4159 (name): lowercase name for tarball/RPM release.
4158 4160
4159 4161 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
4160 4162 use throughout ipython.
4161 4163
4162 4164 * IPython/Magic.py (Magic._ofind): Switch to using the new
4163 4165 OInspect.getdoc() function.
4164 4166
4165 4167 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
4166 4168 of the line currently being canceled via Ctrl-C. It's extremely
4167 4169 ugly, but I don't know how to do it better (the problem is one of
4168 4170 handling cross-thread exceptions).
4169 4171
4170 4172 2004-10-28 Fernando Perez <fperez@colorado.edu>
4171 4173
4172 4174 * IPython/Shell.py (signal_handler): add signal handlers to trap
4173 4175 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
4174 4176 report by Francesc Alted.
4175 4177
4176 4178 2004-10-21 Fernando Perez <fperez@colorado.edu>
4177 4179
4178 4180 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
4179 4181 to % for pysh syntax extensions.
4180 4182
4181 4183 2004-10-09 Fernando Perez <fperez@colorado.edu>
4182 4184
4183 4185 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
4184 4186 arrays to print a more useful summary, without calling str(arr).
4185 4187 This avoids the problem of extremely lengthy computations which
4186 4188 occur if arr is large, and appear to the user as a system lockup
4187 4189 with 100% cpu activity. After a suggestion by Kristian Sandberg
4188 4190 <Kristian.Sandberg@colorado.edu>.
4189 4191 (Magic.__init__): fix bug in global magic escapes not being
4190 4192 correctly set.
4191 4193
4192 4194 2004-10-08 Fernando Perez <fperez@colorado.edu>
4193 4195
4194 4196 * IPython/Magic.py (__license__): change to absolute imports of
4195 4197 ipython's own internal packages, to start adapting to the absolute
4196 4198 import requirement of PEP-328.
4197 4199
4198 4200 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
4199 4201 files, and standardize author/license marks through the Release
4200 4202 module instead of having per/file stuff (except for files with
4201 4203 particular licenses, like the MIT/PSF-licensed codes).
4202 4204
4203 4205 * IPython/Debugger.py: remove dead code for python 2.1
4204 4206
4205 4207 2004-10-04 Fernando Perez <fperez@colorado.edu>
4206 4208
4207 4209 * IPython/iplib.py (ipmagic): New function for accessing magics
4208 4210 via a normal python function call.
4209 4211
4210 4212 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
4211 4213 from '@' to '%', to accomodate the new @decorator syntax of python
4212 4214 2.4.
4213 4215
4214 4216 2004-09-29 Fernando Perez <fperez@colorado.edu>
4215 4217
4216 4218 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
4217 4219 matplotlib.use to prevent running scripts which try to switch
4218 4220 interactive backends from within ipython. This will just crash
4219 4221 the python interpreter, so we can't allow it (but a detailed error
4220 4222 is given to the user).
4221 4223
4222 4224 2004-09-28 Fernando Perez <fperez@colorado.edu>
4223 4225
4224 4226 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
4225 4227 matplotlib-related fixes so that using @run with non-matplotlib
4226 4228 scripts doesn't pop up spurious plot windows. This requires
4227 4229 matplotlib >= 0.63, where I had to make some changes as well.
4228 4230
4229 4231 * IPython/ipmaker.py (make_IPython): update version requirement to
4230 4232 python 2.2.
4231 4233
4232 4234 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
4233 4235 banner arg for embedded customization.
4234 4236
4235 4237 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
4236 4238 explicit uses of __IP as the IPython's instance name. Now things
4237 4239 are properly handled via the shell.name value. The actual code
4238 4240 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
4239 4241 is much better than before. I'll clean things completely when the
4240 4242 magic stuff gets a real overhaul.
4241 4243
4242 4244 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
4243 4245 minor changes to debian dir.
4244 4246
4245 4247 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
4246 4248 pointer to the shell itself in the interactive namespace even when
4247 4249 a user-supplied dict is provided. This is needed for embedding
4248 4250 purposes (found by tests with Michel Sanner).
4249 4251
4250 4252 2004-09-27 Fernando Perez <fperez@colorado.edu>
4251 4253
4252 4254 * IPython/UserConfig/ipythonrc: remove []{} from
4253 4255 readline_remove_delims, so that things like [modname.<TAB> do
4254 4256 proper completion. This disables [].TAB, but that's a less common
4255 4257 case than module names in list comprehensions, for example.
4256 4258 Thanks to a report by Andrea Riciputi.
4257 4259
4258 4260 2004-09-09 Fernando Perez <fperez@colorado.edu>
4259 4261
4260 4262 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
4261 4263 blocking problems in win32 and osx. Fix by John.
4262 4264
4263 4265 2004-09-08 Fernando Perez <fperez@colorado.edu>
4264 4266
4265 4267 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
4266 4268 for Win32 and OSX. Fix by John Hunter.
4267 4269
4268 4270 2004-08-30 *** Released version 0.6.3
4269 4271
4270 4272 2004-08-30 Fernando Perez <fperez@colorado.edu>
4271 4273
4272 4274 * setup.py (isfile): Add manpages to list of dependent files to be
4273 4275 updated.
4274 4276
4275 4277 2004-08-27 Fernando Perez <fperez@colorado.edu>
4276 4278
4277 4279 * IPython/Shell.py (start): I've disabled -wthread and -gthread
4278 4280 for now. They don't really work with standalone WX/GTK code
4279 4281 (though matplotlib IS working fine with both of those backends).
4280 4282 This will neeed much more testing. I disabled most things with
4281 4283 comments, so turning it back on later should be pretty easy.
4282 4284
4283 4285 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
4284 4286 autocalling of expressions like r'foo', by modifying the line
4285 4287 split regexp. Closes
4286 4288 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
4287 4289 Riley <ipythonbugs-AT-sabi.net>.
4288 4290 (InteractiveShell.mainloop): honor --nobanner with banner
4289 4291 extensions.
4290 4292
4291 4293 * IPython/Shell.py: Significant refactoring of all classes, so
4292 4294 that we can really support ALL matplotlib backends and threading
4293 4295 models (John spotted a bug with Tk which required this). Now we
4294 4296 should support single-threaded, WX-threads and GTK-threads, both
4295 4297 for generic code and for matplotlib.
4296 4298
4297 4299 * IPython/ipmaker.py (__call__): Changed -mpthread option to
4298 4300 -pylab, to simplify things for users. Will also remove the pylab
4299 4301 profile, since now all of matplotlib configuration is directly
4300 4302 handled here. This also reduces startup time.
4301 4303
4302 4304 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
4303 4305 shell wasn't being correctly called. Also in IPShellWX.
4304 4306
4305 4307 * IPython/iplib.py (InteractiveShell.__init__): Added option to
4306 4308 fine-tune banner.
4307 4309
4308 4310 * IPython/numutils.py (spike): Deprecate these spike functions,
4309 4311 delete (long deprecated) gnuplot_exec handler.
4310 4312
4311 4313 2004-08-26 Fernando Perez <fperez@colorado.edu>
4312 4314
4313 4315 * ipython.1: Update for threading options, plus some others which
4314 4316 were missing.
4315 4317
4316 4318 * IPython/ipmaker.py (__call__): Added -wthread option for
4317 4319 wxpython thread handling. Make sure threading options are only
4318 4320 valid at the command line.
4319 4321
4320 4322 * scripts/ipython: moved shell selection into a factory function
4321 4323 in Shell.py, to keep the starter script to a minimum.
4322 4324
4323 4325 2004-08-25 Fernando Perez <fperez@colorado.edu>
4324 4326
4325 4327 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
4326 4328 John. Along with some recent changes he made to matplotlib, the
4327 4329 next versions of both systems should work very well together.
4328 4330
4329 4331 2004-08-24 Fernando Perez <fperez@colorado.edu>
4330 4332
4331 4333 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
4332 4334 tried to switch the profiling to using hotshot, but I'm getting
4333 4335 strange errors from prof.runctx() there. I may be misreading the
4334 4336 docs, but it looks weird. For now the profiling code will
4335 4337 continue to use the standard profiler.
4336 4338
4337 4339 2004-08-23 Fernando Perez <fperez@colorado.edu>
4338 4340
4339 4341 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
4340 4342 threaded shell, by John Hunter. It's not quite ready yet, but
4341 4343 close.
4342 4344
4343 4345 2004-08-22 Fernando Perez <fperez@colorado.edu>
4344 4346
4345 4347 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
4346 4348 in Magic and ultraTB.
4347 4349
4348 4350 * ipython.1: document threading options in manpage.
4349 4351
4350 4352 * scripts/ipython: Changed name of -thread option to -gthread,
4351 4353 since this is GTK specific. I want to leave the door open for a
4352 4354 -wthread option for WX, which will most likely be necessary. This
4353 4355 change affects usage and ipmaker as well.
4354 4356
4355 4357 * IPython/Shell.py (matplotlib_shell): Add a factory function to
4356 4358 handle the matplotlib shell issues. Code by John Hunter
4357 4359 <jdhunter-AT-nitace.bsd.uchicago.edu>.
4358 4360 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
4359 4361 broken (and disabled for end users) for now, but it puts the
4360 4362 infrastructure in place.
4361 4363
4362 4364 2004-08-21 Fernando Perez <fperez@colorado.edu>
4363 4365
4364 4366 * ipythonrc-pylab: Add matplotlib support.
4365 4367
4366 4368 * matplotlib_config.py: new files for matplotlib support, part of
4367 4369 the pylab profile.
4368 4370
4369 4371 * IPython/usage.py (__doc__): documented the threading options.
4370 4372
4371 4373 2004-08-20 Fernando Perez <fperez@colorado.edu>
4372 4374
4373 4375 * ipython: Modified the main calling routine to handle the -thread
4374 4376 and -mpthread options. This needs to be done as a top-level hack,
4375 4377 because it determines which class to instantiate for IPython
4376 4378 itself.
4377 4379
4378 4380 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
4379 4381 classes to support multithreaded GTK operation without blocking,
4380 4382 and matplotlib with all backends. This is a lot of still very
4381 4383 experimental code, and threads are tricky. So it may still have a
4382 4384 few rough edges... This code owes a lot to
4383 4385 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
4384 4386 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
4385 4387 to John Hunter for all the matplotlib work.
4386 4388
4387 4389 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
4388 4390 options for gtk thread and matplotlib support.
4389 4391
4390 4392 2004-08-16 Fernando Perez <fperez@colorado.edu>
4391 4393
4392 4394 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
4393 4395 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
4394 4396 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
4395 4397
4396 4398 2004-08-11 Fernando Perez <fperez@colorado.edu>
4397 4399
4398 4400 * setup.py (isfile): Fix build so documentation gets updated for
4399 4401 rpms (it was only done for .tgz builds).
4400 4402
4401 4403 2004-08-10 Fernando Perez <fperez@colorado.edu>
4402 4404
4403 4405 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
4404 4406
4405 4407 * iplib.py : Silence syntax error exceptions in tab-completion.
4406 4408
4407 4409 2004-08-05 Fernando Perez <fperez@colorado.edu>
4408 4410
4409 4411 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
4410 4412 'color off' mark for continuation prompts. This was causing long
4411 4413 continuation lines to mis-wrap.
4412 4414
4413 4415 2004-08-01 Fernando Perez <fperez@colorado.edu>
4414 4416
4415 4417 * IPython/ipmaker.py (make_IPython): Allow the shell class used
4416 4418 for building ipython to be a parameter. All this is necessary
4417 4419 right now to have a multithreaded version, but this insane
4418 4420 non-design will be cleaned up soon. For now, it's a hack that
4419 4421 works.
4420 4422
4421 4423 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
4422 4424 args in various places. No bugs so far, but it's a dangerous
4423 4425 practice.
4424 4426
4425 4427 2004-07-31 Fernando Perez <fperez@colorado.edu>
4426 4428
4427 4429 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
4428 4430 fix completion of files with dots in their names under most
4429 4431 profiles (pysh was OK because the completion order is different).
4430 4432
4431 4433 2004-07-27 Fernando Perez <fperez@colorado.edu>
4432 4434
4433 4435 * IPython/iplib.py (InteractiveShell.__init__): build dict of
4434 4436 keywords manually, b/c the one in keyword.py was removed in python
4435 4437 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
4436 4438 This is NOT a bug under python 2.3 and earlier.
4437 4439
4438 4440 2004-07-26 Fernando Perez <fperez@colorado.edu>
4439 4441
4440 4442 * IPython/ultraTB.py (VerboseTB.text): Add another
4441 4443 linecache.checkcache() call to try to prevent inspect.py from
4442 4444 crashing under python 2.3. I think this fixes
4443 4445 http://www.scipy.net/roundup/ipython/issue17.
4444 4446
4445 4447 2004-07-26 *** Released version 0.6.2
4446 4448
4447 4449 2004-07-26 Fernando Perez <fperez@colorado.edu>
4448 4450
4449 4451 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
4450 4452 fail for any number.
4451 4453 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
4452 4454 empty bookmarks.
4453 4455
4454 4456 2004-07-26 *** Released version 0.6.1
4455 4457
4456 4458 2004-07-26 Fernando Perez <fperez@colorado.edu>
4457 4459
4458 4460 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
4459 4461
4460 4462 * IPython/iplib.py (protect_filename): Applied Ville's patch for
4461 4463 escaping '()[]{}' in filenames.
4462 4464
4463 4465 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
4464 4466 Python 2.2 users who lack a proper shlex.split.
4465 4467
4466 4468 2004-07-19 Fernando Perez <fperez@colorado.edu>
4467 4469
4468 4470 * IPython/iplib.py (InteractiveShell.init_readline): Add support
4469 4471 for reading readline's init file. I follow the normal chain:
4470 4472 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
4471 4473 report by Mike Heeter. This closes
4472 4474 http://www.scipy.net/roundup/ipython/issue16.
4473 4475
4474 4476 2004-07-18 Fernando Perez <fperez@colorado.edu>
4475 4477
4476 4478 * IPython/iplib.py (__init__): Add better handling of '\' under
4477 4479 Win32 for filenames. After a patch by Ville.
4478 4480
4479 4481 2004-07-17 Fernando Perez <fperez@colorado.edu>
4480 4482
4481 4483 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4482 4484 autocalling would be triggered for 'foo is bar' if foo is
4483 4485 callable. I also cleaned up the autocall detection code to use a
4484 4486 regexp, which is faster. Bug reported by Alexander Schmolck.
4485 4487
4486 4488 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
4487 4489 '?' in them would confuse the help system. Reported by Alex
4488 4490 Schmolck.
4489 4491
4490 4492 2004-07-16 Fernando Perez <fperez@colorado.edu>
4491 4493
4492 4494 * IPython/GnuplotInteractive.py (__all__): added plot2.
4493 4495
4494 4496 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
4495 4497 plotting dictionaries, lists or tuples of 1d arrays.
4496 4498
4497 4499 * IPython/Magic.py (Magic.magic_hist): small clenaups and
4498 4500 optimizations.
4499 4501
4500 4502 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
4501 4503 the information which was there from Janko's original IPP code:
4502 4504
4503 4505 03.05.99 20:53 porto.ifm.uni-kiel.de
4504 4506 --Started changelog.
4505 4507 --make clear do what it say it does
4506 4508 --added pretty output of lines from inputcache
4507 4509 --Made Logger a mixin class, simplifies handling of switches
4508 4510 --Added own completer class. .string<TAB> expands to last history
4509 4511 line which starts with string. The new expansion is also present
4510 4512 with Ctrl-r from the readline library. But this shows, who this
4511 4513 can be done for other cases.
4512 4514 --Added convention that all shell functions should accept a
4513 4515 parameter_string This opens the door for different behaviour for
4514 4516 each function. @cd is a good example of this.
4515 4517
4516 4518 04.05.99 12:12 porto.ifm.uni-kiel.de
4517 4519 --added logfile rotation
4518 4520 --added new mainloop method which freezes first the namespace
4519 4521
4520 4522 07.05.99 21:24 porto.ifm.uni-kiel.de
4521 4523 --added the docreader classes. Now there is a help system.
4522 4524 -This is only a first try. Currently it's not easy to put new
4523 4525 stuff in the indices. But this is the way to go. Info would be
4524 4526 better, but HTML is every where and not everybody has an info
4525 4527 system installed and it's not so easy to change html-docs to info.
4526 4528 --added global logfile option
4527 4529 --there is now a hook for object inspection method pinfo needs to
4528 4530 be provided for this. Can be reached by two '??'.
4529 4531
4530 4532 08.05.99 20:51 porto.ifm.uni-kiel.de
4531 4533 --added a README
4532 4534 --bug in rc file. Something has changed so functions in the rc
4533 4535 file need to reference the shell and not self. Not clear if it's a
4534 4536 bug or feature.
4535 4537 --changed rc file for new behavior
4536 4538
4537 4539 2004-07-15 Fernando Perez <fperez@colorado.edu>
4538 4540
4539 4541 * IPython/Logger.py (Logger.log): fixed recent bug where the input
4540 4542 cache was falling out of sync in bizarre manners when multi-line
4541 4543 input was present. Minor optimizations and cleanup.
4542 4544
4543 4545 (Logger): Remove old Changelog info for cleanup. This is the
4544 4546 information which was there from Janko's original code:
4545 4547
4546 4548 Changes to Logger: - made the default log filename a parameter
4547 4549
4548 4550 - put a check for lines beginning with !@? in log(). Needed
4549 4551 (even if the handlers properly log their lines) for mid-session
4550 4552 logging activation to work properly. Without this, lines logged
4551 4553 in mid session, which get read from the cache, would end up
4552 4554 'bare' (with !@? in the open) in the log. Now they are caught
4553 4555 and prepended with a #.
4554 4556
4555 4557 * IPython/iplib.py (InteractiveShell.init_readline): added check
4556 4558 in case MagicCompleter fails to be defined, so we don't crash.
4557 4559
4558 4560 2004-07-13 Fernando Perez <fperez@colorado.edu>
4559 4561
4560 4562 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
4561 4563 of EPS if the requested filename ends in '.eps'.
4562 4564
4563 4565 2004-07-04 Fernando Perez <fperez@colorado.edu>
4564 4566
4565 4567 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
4566 4568 escaping of quotes when calling the shell.
4567 4569
4568 4570 2004-07-02 Fernando Perez <fperez@colorado.edu>
4569 4571
4570 4572 * IPython/Prompts.py (CachedOutput.update): Fix problem with
4571 4573 gettext not working because we were clobbering '_'. Fixes
4572 4574 http://www.scipy.net/roundup/ipython/issue6.
4573 4575
4574 4576 2004-07-01 Fernando Perez <fperez@colorado.edu>
4575 4577
4576 4578 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
4577 4579 into @cd. Patch by Ville.
4578 4580
4579 4581 * IPython/iplib.py (InteractiveShell.post_config_initialization):
4580 4582 new function to store things after ipmaker runs. Patch by Ville.
4581 4583 Eventually this will go away once ipmaker is removed and the class
4582 4584 gets cleaned up, but for now it's ok. Key functionality here is
4583 4585 the addition of the persistent storage mechanism, a dict for
4584 4586 keeping data across sessions (for now just bookmarks, but more can
4585 4587 be implemented later).
4586 4588
4587 4589 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
4588 4590 persistent across sections. Patch by Ville, I modified it
4589 4591 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
4590 4592 added a '-l' option to list all bookmarks.
4591 4593
4592 4594 * IPython/iplib.py (InteractiveShell.atexit_operations): new
4593 4595 center for cleanup. Registered with atexit.register(). I moved
4594 4596 here the old exit_cleanup(). After a patch by Ville.
4595 4597
4596 4598 * IPython/Magic.py (get_py_filename): added '~' to the accepted
4597 4599 characters in the hacked shlex_split for python 2.2.
4598 4600
4599 4601 * IPython/iplib.py (file_matches): more fixes to filenames with
4600 4602 whitespace in them. It's not perfect, but limitations in python's
4601 4603 readline make it impossible to go further.
4602 4604
4603 4605 2004-06-29 Fernando Perez <fperez@colorado.edu>
4604 4606
4605 4607 * IPython/iplib.py (file_matches): escape whitespace correctly in
4606 4608 filename completions. Bug reported by Ville.
4607 4609
4608 4610 2004-06-28 Fernando Perez <fperez@colorado.edu>
4609 4611
4610 4612 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4611 4613 the history file will be called 'history-PROFNAME' (or just
4612 4614 'history' if no profile is loaded). I was getting annoyed at
4613 4615 getting my Numerical work history clobbered by pysh sessions.
4614 4616
4615 4617 * IPython/iplib.py (InteractiveShell.__init__): Internal
4616 4618 getoutputerror() function so that we can honor the system_verbose
4617 4619 flag for _all_ system calls. I also added escaping of #
4618 4620 characters here to avoid confusing Itpl.
4619 4621
4620 4622 * IPython/Magic.py (shlex_split): removed call to shell in
4621 4623 parse_options and replaced it with shlex.split(). The annoying
4622 4624 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4623 4625 to backport it from 2.3, with several frail hacks (the shlex
4624 4626 module is rather limited in 2.2). Thanks to a suggestion by Ville
4625 4627 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4626 4628 problem.
4627 4629
4628 4630 (Magic.magic_system_verbose): new toggle to print the actual
4629 4631 system calls made by ipython. Mainly for debugging purposes.
4630 4632
4631 4633 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4632 4634 doesn't support persistence. Reported (and fix suggested) by
4633 4635 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4634 4636
4635 4637 2004-06-26 Fernando Perez <fperez@colorado.edu>
4636 4638
4637 4639 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4638 4640 continue prompts.
4639 4641
4640 4642 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4641 4643 function (basically a big docstring) and a few more things here to
4642 4644 speedup startup. pysh.py is now very lightweight. We want because
4643 4645 it gets execfile'd, while InterpreterExec gets imported, so
4644 4646 byte-compilation saves time.
4645 4647
4646 4648 2004-06-25 Fernando Perez <fperez@colorado.edu>
4647 4649
4648 4650 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4649 4651 -NUM', which was recently broken.
4650 4652
4651 4653 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4652 4654 in multi-line input (but not !!, which doesn't make sense there).
4653 4655
4654 4656 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4655 4657 It's just too useful, and people can turn it off in the less
4656 4658 common cases where it's a problem.
4657 4659
4658 4660 2004-06-24 Fernando Perez <fperez@colorado.edu>
4659 4661
4660 4662 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4661 4663 special syntaxes (like alias calling) is now allied in multi-line
4662 4664 input. This is still _very_ experimental, but it's necessary for
4663 4665 efficient shell usage combining python looping syntax with system
4664 4666 calls. For now it's restricted to aliases, I don't think it
4665 4667 really even makes sense to have this for magics.
4666 4668
4667 4669 2004-06-23 Fernando Perez <fperez@colorado.edu>
4668 4670
4669 4671 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4670 4672 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4671 4673
4672 4674 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4673 4675 extensions under Windows (after code sent by Gary Bishop). The
4674 4676 extensions considered 'executable' are stored in IPython's rc
4675 4677 structure as win_exec_ext.
4676 4678
4677 4679 * IPython/genutils.py (shell): new function, like system() but
4678 4680 without return value. Very useful for interactive shell work.
4679 4681
4680 4682 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4681 4683 delete aliases.
4682 4684
4683 4685 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4684 4686 sure that the alias table doesn't contain python keywords.
4685 4687
4686 4688 2004-06-21 Fernando Perez <fperez@colorado.edu>
4687 4689
4688 4690 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4689 4691 non-existent items are found in $PATH. Reported by Thorsten.
4690 4692
4691 4693 2004-06-20 Fernando Perez <fperez@colorado.edu>
4692 4694
4693 4695 * IPython/iplib.py (complete): modified the completer so that the
4694 4696 order of priorities can be easily changed at runtime.
4695 4697
4696 4698 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4697 4699 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4698 4700
4699 4701 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4700 4702 expand Python variables prepended with $ in all system calls. The
4701 4703 same was done to InteractiveShell.handle_shell_escape. Now all
4702 4704 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4703 4705 expansion of python variables and expressions according to the
4704 4706 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4705 4707
4706 4708 Though PEP-215 has been rejected, a similar (but simpler) one
4707 4709 seems like it will go into Python 2.4, PEP-292 -
4708 4710 http://www.python.org/peps/pep-0292.html.
4709 4711
4710 4712 I'll keep the full syntax of PEP-215, since IPython has since the
4711 4713 start used Ka-Ping Yee's reference implementation discussed there
4712 4714 (Itpl), and I actually like the powerful semantics it offers.
4713 4715
4714 4716 In order to access normal shell variables, the $ has to be escaped
4715 4717 via an extra $. For example:
4716 4718
4717 4719 In [7]: PATH='a python variable'
4718 4720
4719 4721 In [8]: !echo $PATH
4720 4722 a python variable
4721 4723
4722 4724 In [9]: !echo $$PATH
4723 4725 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4724 4726
4725 4727 (Magic.parse_options): escape $ so the shell doesn't evaluate
4726 4728 things prematurely.
4727 4729
4728 4730 * IPython/iplib.py (InteractiveShell.call_alias): added the
4729 4731 ability for aliases to expand python variables via $.
4730 4732
4731 4733 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4732 4734 system, now there's a @rehash/@rehashx pair of magics. These work
4733 4735 like the csh rehash command, and can be invoked at any time. They
4734 4736 build a table of aliases to everything in the user's $PATH
4735 4737 (@rehash uses everything, @rehashx is slower but only adds
4736 4738 executable files). With this, the pysh.py-based shell profile can
4737 4739 now simply call rehash upon startup, and full access to all
4738 4740 programs in the user's path is obtained.
4739 4741
4740 4742 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4741 4743 functionality is now fully in place. I removed the old dynamic
4742 4744 code generation based approach, in favor of a much lighter one
4743 4745 based on a simple dict. The advantage is that this allows me to
4744 4746 now have thousands of aliases with negligible cost (unthinkable
4745 4747 with the old system).
4746 4748
4747 4749 2004-06-19 Fernando Perez <fperez@colorado.edu>
4748 4750
4749 4751 * IPython/iplib.py (__init__): extended MagicCompleter class to
4750 4752 also complete (last in priority) on user aliases.
4751 4753
4752 4754 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4753 4755 call to eval.
4754 4756 (ItplNS.__init__): Added a new class which functions like Itpl,
4755 4757 but allows configuring the namespace for the evaluation to occur
4756 4758 in.
4757 4759
4758 4760 2004-06-18 Fernando Perez <fperez@colorado.edu>
4759 4761
4760 4762 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4761 4763 better message when 'exit' or 'quit' are typed (a common newbie
4762 4764 confusion).
4763 4765
4764 4766 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4765 4767 check for Windows users.
4766 4768
4767 4769 * IPython/iplib.py (InteractiveShell.user_setup): removed
4768 4770 disabling of colors for Windows. I'll test at runtime and issue a
4769 4771 warning if Gary's readline isn't found, as to nudge users to
4770 4772 download it.
4771 4773
4772 4774 2004-06-16 Fernando Perez <fperez@colorado.edu>
4773 4775
4774 4776 * IPython/genutils.py (Stream.__init__): changed to print errors
4775 4777 to sys.stderr. I had a circular dependency here. Now it's
4776 4778 possible to run ipython as IDLE's shell (consider this pre-alpha,
4777 4779 since true stdout things end up in the starting terminal instead
4778 4780 of IDLE's out).
4779 4781
4780 4782 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4781 4783 users who haven't # updated their prompt_in2 definitions. Remove
4782 4784 eventually.
4783 4785 (multiple_replace): added credit to original ASPN recipe.
4784 4786
4785 4787 2004-06-15 Fernando Perez <fperez@colorado.edu>
4786 4788
4787 4789 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4788 4790 list of auto-defined aliases.
4789 4791
4790 4792 2004-06-13 Fernando Perez <fperez@colorado.edu>
4791 4793
4792 4794 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4793 4795 install was really requested (so setup.py can be used for other
4794 4796 things under Windows).
4795 4797
4796 4798 2004-06-10 Fernando Perez <fperez@colorado.edu>
4797 4799
4798 4800 * IPython/Logger.py (Logger.create_log): Manually remove any old
4799 4801 backup, since os.remove may fail under Windows. Fixes bug
4800 4802 reported by Thorsten.
4801 4803
4802 4804 2004-06-09 Fernando Perez <fperez@colorado.edu>
4803 4805
4804 4806 * examples/example-embed.py: fixed all references to %n (replaced
4805 4807 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4806 4808 for all examples and the manual as well.
4807 4809
4808 4810 2004-06-08 Fernando Perez <fperez@colorado.edu>
4809 4811
4810 4812 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4811 4813 alignment and color management. All 3 prompt subsystems now
4812 4814 inherit from BasePrompt.
4813 4815
4814 4816 * tools/release: updates for windows installer build and tag rpms
4815 4817 with python version (since paths are fixed).
4816 4818
4817 4819 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4818 4820 which will become eventually obsolete. Also fixed the default
4819 4821 prompt_in2 to use \D, so at least new users start with the correct
4820 4822 defaults.
4821 4823 WARNING: Users with existing ipythonrc files will need to apply
4822 4824 this fix manually!
4823 4825
4824 4826 * setup.py: make windows installer (.exe). This is finally the
4825 4827 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4826 4828 which I hadn't included because it required Python 2.3 (or recent
4827 4829 distutils).
4828 4830
4829 4831 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4830 4832 usage of new '\D' escape.
4831 4833
4832 4834 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4833 4835 lacks os.getuid())
4834 4836 (CachedOutput.set_colors): Added the ability to turn coloring
4835 4837 on/off with @colors even for manually defined prompt colors. It
4836 4838 uses a nasty global, but it works safely and via the generic color
4837 4839 handling mechanism.
4838 4840 (Prompt2.__init__): Introduced new escape '\D' for continuation
4839 4841 prompts. It represents the counter ('\#') as dots.
4840 4842 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4841 4843 need to update their ipythonrc files and replace '%n' with '\D' in
4842 4844 their prompt_in2 settings everywhere. Sorry, but there's
4843 4845 otherwise no clean way to get all prompts to properly align. The
4844 4846 ipythonrc shipped with IPython has been updated.
4845 4847
4846 4848 2004-06-07 Fernando Perez <fperez@colorado.edu>
4847 4849
4848 4850 * setup.py (isfile): Pass local_icons option to latex2html, so the
4849 4851 resulting HTML file is self-contained. Thanks to
4850 4852 dryice-AT-liu.com.cn for the tip.
4851 4853
4852 4854 * pysh.py: I created a new profile 'shell', which implements a
4853 4855 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4854 4856 system shell, nor will it become one anytime soon. It's mainly
4855 4857 meant to illustrate the use of the new flexible bash-like prompts.
4856 4858 I guess it could be used by hardy souls for true shell management,
4857 4859 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4858 4860 profile. This uses the InterpreterExec extension provided by
4859 4861 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4860 4862
4861 4863 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4862 4864 auto-align itself with the length of the previous input prompt
4863 4865 (taking into account the invisible color escapes).
4864 4866 (CachedOutput.__init__): Large restructuring of this class. Now
4865 4867 all three prompts (primary1, primary2, output) are proper objects,
4866 4868 managed by the 'parent' CachedOutput class. The code is still a
4867 4869 bit hackish (all prompts share state via a pointer to the cache),
4868 4870 but it's overall far cleaner than before.
4869 4871
4870 4872 * IPython/genutils.py (getoutputerror): modified to add verbose,
4871 4873 debug and header options. This makes the interface of all getout*
4872 4874 functions uniform.
4873 4875 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4874 4876
4875 4877 * IPython/Magic.py (Magic.default_option): added a function to
4876 4878 allow registering default options for any magic command. This
4877 4879 makes it easy to have profiles which customize the magics globally
4878 4880 for a certain use. The values set through this function are
4879 4881 picked up by the parse_options() method, which all magics should
4880 4882 use to parse their options.
4881 4883
4882 4884 * IPython/genutils.py (warn): modified the warnings framework to
4883 4885 use the Term I/O class. I'm trying to slowly unify all of
4884 4886 IPython's I/O operations to pass through Term.
4885 4887
4886 4888 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4887 4889 the secondary prompt to correctly match the length of the primary
4888 4890 one for any prompt. Now multi-line code will properly line up
4889 4891 even for path dependent prompts, such as the new ones available
4890 4892 via the prompt_specials.
4891 4893
4892 4894 2004-06-06 Fernando Perez <fperez@colorado.edu>
4893 4895
4894 4896 * IPython/Prompts.py (prompt_specials): Added the ability to have
4895 4897 bash-like special sequences in the prompts, which get
4896 4898 automatically expanded. Things like hostname, current working
4897 4899 directory and username are implemented already, but it's easy to
4898 4900 add more in the future. Thanks to a patch by W.J. van der Laan
4899 4901 <gnufnork-AT-hetdigitalegat.nl>
4900 4902 (prompt_specials): Added color support for prompt strings, so
4901 4903 users can define arbitrary color setups for their prompts.
4902 4904
4903 4905 2004-06-05 Fernando Perez <fperez@colorado.edu>
4904 4906
4905 4907 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4906 4908 code to load Gary Bishop's readline and configure it
4907 4909 automatically. Thanks to Gary for help on this.
4908 4910
4909 4911 2004-06-01 Fernando Perez <fperez@colorado.edu>
4910 4912
4911 4913 * IPython/Logger.py (Logger.create_log): fix bug for logging
4912 4914 with no filename (previous fix was incomplete).
4913 4915
4914 4916 2004-05-25 Fernando Perez <fperez@colorado.edu>
4915 4917
4916 4918 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4917 4919 parens would get passed to the shell.
4918 4920
4919 4921 2004-05-20 Fernando Perez <fperez@colorado.edu>
4920 4922
4921 4923 * IPython/Magic.py (Magic.magic_prun): changed default profile
4922 4924 sort order to 'time' (the more common profiling need).
4923 4925
4924 4926 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4925 4927 so that source code shown is guaranteed in sync with the file on
4926 4928 disk (also changed in psource). Similar fix to the one for
4927 4929 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4928 4930 <yann.ledu-AT-noos.fr>.
4929 4931
4930 4932 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4931 4933 with a single option would not be correctly parsed. Closes
4932 4934 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4933 4935 introduced in 0.6.0 (on 2004-05-06).
4934 4936
4935 4937 2004-05-13 *** Released version 0.6.0
4936 4938
4937 4939 2004-05-13 Fernando Perez <fperez@colorado.edu>
4938 4940
4939 4941 * debian/: Added debian/ directory to CVS, so that debian support
4940 4942 is publicly accessible. The debian package is maintained by Jack
4941 4943 Moffit <jack-AT-xiph.org>.
4942 4944
4943 4945 * Documentation: included the notes about an ipython-based system
4944 4946 shell (the hypothetical 'pysh') into the new_design.pdf document,
4945 4947 so that these ideas get distributed to users along with the
4946 4948 official documentation.
4947 4949
4948 4950 2004-05-10 Fernando Perez <fperez@colorado.edu>
4949 4951
4950 4952 * IPython/Logger.py (Logger.create_log): fix recently introduced
4951 4953 bug (misindented line) where logstart would fail when not given an
4952 4954 explicit filename.
4953 4955
4954 4956 2004-05-09 Fernando Perez <fperez@colorado.edu>
4955 4957
4956 4958 * IPython/Magic.py (Magic.parse_options): skip system call when
4957 4959 there are no options to look for. Faster, cleaner for the common
4958 4960 case.
4959 4961
4960 4962 * Documentation: many updates to the manual: describing Windows
4961 4963 support better, Gnuplot updates, credits, misc small stuff. Also
4962 4964 updated the new_design doc a bit.
4963 4965
4964 4966 2004-05-06 *** Released version 0.6.0.rc1
4965 4967
4966 4968 2004-05-06 Fernando Perez <fperez@colorado.edu>
4967 4969
4968 4970 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4969 4971 operations to use the vastly more efficient list/''.join() method.
4970 4972 (FormattedTB.text): Fix
4971 4973 http://www.scipy.net/roundup/ipython/issue12 - exception source
4972 4974 extract not updated after reload. Thanks to Mike Salib
4973 4975 <msalib-AT-mit.edu> for pinning the source of the problem.
4974 4976 Fortunately, the solution works inside ipython and doesn't require
4975 4977 any changes to python proper.
4976 4978
4977 4979 * IPython/Magic.py (Magic.parse_options): Improved to process the
4978 4980 argument list as a true shell would (by actually using the
4979 4981 underlying system shell). This way, all @magics automatically get
4980 4982 shell expansion for variables. Thanks to a comment by Alex
4981 4983 Schmolck.
4982 4984
4983 4985 2004-04-04 Fernando Perez <fperez@colorado.edu>
4984 4986
4985 4987 * IPython/iplib.py (InteractiveShell.interact): Added a special
4986 4988 trap for a debugger quit exception, which is basically impossible
4987 4989 to handle by normal mechanisms, given what pdb does to the stack.
4988 4990 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4989 4991
4990 4992 2004-04-03 Fernando Perez <fperez@colorado.edu>
4991 4993
4992 4994 * IPython/genutils.py (Term): Standardized the names of the Term
4993 4995 class streams to cin/cout/cerr, following C++ naming conventions
4994 4996 (I can't use in/out/err because 'in' is not a valid attribute
4995 4997 name).
4996 4998
4997 4999 * IPython/iplib.py (InteractiveShell.interact): don't increment
4998 5000 the prompt if there's no user input. By Daniel 'Dang' Griffith
4999 5001 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
5000 5002 Francois Pinard.
5001 5003
5002 5004 2004-04-02 Fernando Perez <fperez@colorado.edu>
5003 5005
5004 5006 * IPython/genutils.py (Stream.__init__): Modified to survive at
5005 5007 least importing in contexts where stdin/out/err aren't true file
5006 5008 objects, such as PyCrust (they lack fileno() and mode). However,
5007 5009 the recovery facilities which rely on these things existing will
5008 5010 not work.
5009 5011
5010 5012 2004-04-01 Fernando Perez <fperez@colorado.edu>
5011 5013
5012 5014 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
5013 5015 use the new getoutputerror() function, so it properly
5014 5016 distinguishes stdout/err.
5015 5017
5016 5018 * IPython/genutils.py (getoutputerror): added a function to
5017 5019 capture separately the standard output and error of a command.
5018 5020 After a comment from dang on the mailing lists. This code is
5019 5021 basically a modified version of commands.getstatusoutput(), from
5020 5022 the standard library.
5021 5023
5022 5024 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
5023 5025 '!!' as a special syntax (shorthand) to access @sx.
5024 5026
5025 5027 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
5026 5028 command and return its output as a list split on '\n'.
5027 5029
5028 5030 2004-03-31 Fernando Perez <fperez@colorado.edu>
5029 5031
5030 5032 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
5031 5033 method to dictionaries used as FakeModule instances if they lack
5032 5034 it. At least pydoc in python2.3 breaks for runtime-defined
5033 5035 functions without this hack. At some point I need to _really_
5034 5036 understand what FakeModule is doing, because it's a gross hack.
5035 5037 But it solves Arnd's problem for now...
5036 5038
5037 5039 2004-02-27 Fernando Perez <fperez@colorado.edu>
5038 5040
5039 5041 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
5040 5042 mode would behave erratically. Also increased the number of
5041 5043 possible logs in rotate mod to 999. Thanks to Rod Holland
5042 5044 <rhh@StructureLABS.com> for the report and fixes.
5043 5045
5044 5046 2004-02-26 Fernando Perez <fperez@colorado.edu>
5045 5047
5046 5048 * IPython/genutils.py (page): Check that the curses module really
5047 5049 has the initscr attribute before trying to use it. For some
5048 5050 reason, the Solaris curses module is missing this. I think this
5049 5051 should be considered a Solaris python bug, but I'm not sure.
5050 5052
5051 5053 2004-01-17 Fernando Perez <fperez@colorado.edu>
5052 5054
5053 5055 * IPython/genutils.py (Stream.__init__): Changes to try to make
5054 5056 ipython robust against stdin/out/err being closed by the user.
5055 5057 This is 'user error' (and blocks a normal python session, at least
5056 5058 the stdout case). However, Ipython should be able to survive such
5057 5059 instances of abuse as gracefully as possible. To simplify the
5058 5060 coding and maintain compatibility with Gary Bishop's Term
5059 5061 contributions, I've made use of classmethods for this. I think
5060 5062 this introduces a dependency on python 2.2.
5061 5063
5062 5064 2004-01-13 Fernando Perez <fperez@colorado.edu>
5063 5065
5064 5066 * IPython/numutils.py (exp_safe): simplified the code a bit and
5065 5067 removed the need for importing the kinds module altogether.
5066 5068
5067 5069 2004-01-06 Fernando Perez <fperez@colorado.edu>
5068 5070
5069 5071 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
5070 5072 a magic function instead, after some community feedback. No
5071 5073 special syntax will exist for it, but its name is deliberately
5072 5074 very short.
5073 5075
5074 5076 2003-12-20 Fernando Perez <fperez@colorado.edu>
5075 5077
5076 5078 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
5077 5079 new functionality, to automagically assign the result of a shell
5078 5080 command to a variable. I'll solicit some community feedback on
5079 5081 this before making it permanent.
5080 5082
5081 5083 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
5082 5084 requested about callables for which inspect couldn't obtain a
5083 5085 proper argspec. Thanks to a crash report sent by Etienne
5084 5086 Posthumus <etienne-AT-apple01.cs.vu.nl>.
5085 5087
5086 5088 2003-12-09 Fernando Perez <fperez@colorado.edu>
5087 5089
5088 5090 * IPython/genutils.py (page): patch for the pager to work across
5089 5091 various versions of Windows. By Gary Bishop.
5090 5092
5091 5093 2003-12-04 Fernando Perez <fperez@colorado.edu>
5092 5094
5093 5095 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
5094 5096 Gnuplot.py version 1.7, whose internal names changed quite a bit.
5095 5097 While I tested this and it looks ok, there may still be corner
5096 5098 cases I've missed.
5097 5099
5098 5100 2003-12-01 Fernando Perez <fperez@colorado.edu>
5099 5101
5100 5102 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
5101 5103 where a line like 'p,q=1,2' would fail because the automagic
5102 5104 system would be triggered for @p.
5103 5105
5104 5106 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
5105 5107 cleanups, code unmodified.
5106 5108
5107 5109 * IPython/genutils.py (Term): added a class for IPython to handle
5108 5110 output. In most cases it will just be a proxy for stdout/err, but
5109 5111 having this allows modifications to be made for some platforms,
5110 5112 such as handling color escapes under Windows. All of this code
5111 5113 was contributed by Gary Bishop, with minor modifications by me.
5112 5114 The actual changes affect many files.
5113 5115
5114 5116 2003-11-30 Fernando Perez <fperez@colorado.edu>
5115 5117
5116 5118 * IPython/iplib.py (file_matches): new completion code, courtesy
5117 5119 of Jeff Collins. This enables filename completion again under
5118 5120 python 2.3, which disabled it at the C level.
5119 5121
5120 5122 2003-11-11 Fernando Perez <fperez@colorado.edu>
5121 5123
5122 5124 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
5123 5125 for Numeric.array(map(...)), but often convenient.
5124 5126
5125 5127 2003-11-05 Fernando Perez <fperez@colorado.edu>
5126 5128
5127 5129 * IPython/numutils.py (frange): Changed a call from int() to
5128 5130 int(round()) to prevent a problem reported with arange() in the
5129 5131 numpy list.
5130 5132
5131 5133 2003-10-06 Fernando Perez <fperez@colorado.edu>
5132 5134
5133 5135 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
5134 5136 prevent crashes if sys lacks an argv attribute (it happens with
5135 5137 embedded interpreters which build a bare-bones sys module).
5136 5138 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
5137 5139
5138 5140 2003-09-24 Fernando Perez <fperez@colorado.edu>
5139 5141
5140 5142 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
5141 5143 to protect against poorly written user objects where __getattr__
5142 5144 raises exceptions other than AttributeError. Thanks to a bug
5143 5145 report by Oliver Sander <osander-AT-gmx.de>.
5144 5146
5145 5147 * IPython/FakeModule.py (FakeModule.__repr__): this method was
5146 5148 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
5147 5149
5148 5150 2003-09-09 Fernando Perez <fperez@colorado.edu>
5149 5151
5150 5152 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
5151 5153 unpacking a list whith a callable as first element would
5152 5154 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
5153 5155 Collins.
5154 5156
5155 5157 2003-08-25 *** Released version 0.5.0
5156 5158
5157 5159 2003-08-22 Fernando Perez <fperez@colorado.edu>
5158 5160
5159 5161 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
5160 5162 improperly defined user exceptions. Thanks to feedback from Mark
5161 5163 Russell <mrussell-AT-verio.net>.
5162 5164
5163 5165 2003-08-20 Fernando Perez <fperez@colorado.edu>
5164 5166
5165 5167 * IPython/OInspect.py (Inspector.pinfo): changed String Form
5166 5168 printing so that it would print multi-line string forms starting
5167 5169 with a new line. This way the formatting is better respected for
5168 5170 objects which work hard to make nice string forms.
5169 5171
5170 5172 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
5171 5173 autocall would overtake data access for objects with both
5172 5174 __getitem__ and __call__.
5173 5175
5174 5176 2003-08-19 *** Released version 0.5.0-rc1
5175 5177
5176 5178 2003-08-19 Fernando Perez <fperez@colorado.edu>
5177 5179
5178 5180 * IPython/deep_reload.py (load_tail): single tiny change here
5179 5181 seems to fix the long-standing bug of dreload() failing to work
5180 5182 for dotted names. But this module is pretty tricky, so I may have
5181 5183 missed some subtlety. Needs more testing!.
5182 5184
5183 5185 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
5184 5186 exceptions which have badly implemented __str__ methods.
5185 5187 (VerboseTB.text): harden against inspect.getinnerframes crashing,
5186 5188 which I've been getting reports about from Python 2.3 users. I
5187 5189 wish I had a simple test case to reproduce the problem, so I could
5188 5190 either write a cleaner workaround or file a bug report if
5189 5191 necessary.
5190 5192
5191 5193 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
5192 5194 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
5193 5195 a bug report by Tjabo Kloppenburg.
5194 5196
5195 5197 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
5196 5198 crashes. Wrapped the pdb call in a blanket try/except, since pdb
5197 5199 seems rather unstable. Thanks to a bug report by Tjabo
5198 5200 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
5199 5201
5200 5202 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
5201 5203 this out soon because of the critical fixes in the inner loop for
5202 5204 generators.
5203 5205
5204 5206 * IPython/Magic.py (Magic.getargspec): removed. This (and
5205 5207 _get_def) have been obsoleted by OInspect for a long time, I
5206 5208 hadn't noticed that they were dead code.
5207 5209 (Magic._ofind): restored _ofind functionality for a few literals
5208 5210 (those in ["''",'""','[]','{}','()']). But it won't work anymore
5209 5211 for things like "hello".capitalize?, since that would require a
5210 5212 potentially dangerous eval() again.
5211 5213
5212 5214 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
5213 5215 logic a bit more to clean up the escapes handling and minimize the
5214 5216 use of _ofind to only necessary cases. The interactive 'feel' of
5215 5217 IPython should have improved quite a bit with the changes in
5216 5218 _prefilter and _ofind (besides being far safer than before).
5217 5219
5218 5220 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
5219 5221 obscure, never reported). Edit would fail to find the object to
5220 5222 edit under some circumstances.
5221 5223 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
5222 5224 which were causing double-calling of generators. Those eval calls
5223 5225 were _very_ dangerous, since code with side effects could be
5224 5226 triggered. As they say, 'eval is evil'... These were the
5225 5227 nastiest evals in IPython. Besides, _ofind is now far simpler,
5226 5228 and it should also be quite a bit faster. Its use of inspect is
5227 5229 also safer, so perhaps some of the inspect-related crashes I've
5228 5230 seen lately with Python 2.3 might be taken care of. That will
5229 5231 need more testing.
5230 5232
5231 5233 2003-08-17 Fernando Perez <fperez@colorado.edu>
5232 5234
5233 5235 * IPython/iplib.py (InteractiveShell._prefilter): significant
5234 5236 simplifications to the logic for handling user escapes. Faster
5235 5237 and simpler code.
5236 5238
5237 5239 2003-08-14 Fernando Perez <fperez@colorado.edu>
5238 5240
5239 5241 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
5240 5242 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
5241 5243 but it should be quite a bit faster. And the recursive version
5242 5244 generated O(log N) intermediate storage for all rank>1 arrays,
5243 5245 even if they were contiguous.
5244 5246 (l1norm): Added this function.
5245 5247 (norm): Added this function for arbitrary norms (including
5246 5248 l-infinity). l1 and l2 are still special cases for convenience
5247 5249 and speed.
5248 5250
5249 5251 2003-08-03 Fernando Perez <fperez@colorado.edu>
5250 5252
5251 5253 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
5252 5254 exceptions, which now raise PendingDeprecationWarnings in Python
5253 5255 2.3. There were some in Magic and some in Gnuplot2.
5254 5256
5255 5257 2003-06-30 Fernando Perez <fperez@colorado.edu>
5256 5258
5257 5259 * IPython/genutils.py (page): modified to call curses only for
5258 5260 terminals where TERM=='xterm'. After problems under many other
5259 5261 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
5260 5262
5261 5263 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
5262 5264 would be triggered when readline was absent. This was just an old
5263 5265 debugging statement I'd forgotten to take out.
5264 5266
5265 5267 2003-06-20 Fernando Perez <fperez@colorado.edu>
5266 5268
5267 5269 * IPython/genutils.py (clock): modified to return only user time
5268 5270 (not counting system time), after a discussion on scipy. While
5269 5271 system time may be a useful quantity occasionally, it may much
5270 5272 more easily be skewed by occasional swapping or other similar
5271 5273 activity.
5272 5274
5273 5275 2003-06-05 Fernando Perez <fperez@colorado.edu>
5274 5276
5275 5277 * IPython/numutils.py (identity): new function, for building
5276 5278 arbitrary rank Kronecker deltas (mostly backwards compatible with
5277 5279 Numeric.identity)
5278 5280
5279 5281 2003-06-03 Fernando Perez <fperez@colorado.edu>
5280 5282
5281 5283 * IPython/iplib.py (InteractiveShell.handle_magic): protect
5282 5284 arguments passed to magics with spaces, to allow trailing '\' to
5283 5285 work normally (mainly for Windows users).
5284 5286
5285 5287 2003-05-29 Fernando Perez <fperez@colorado.edu>
5286 5288
5287 5289 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
5288 5290 instead of pydoc.help. This fixes a bizarre behavior where
5289 5291 printing '%s' % locals() would trigger the help system. Now
5290 5292 ipython behaves like normal python does.
5291 5293
5292 5294 Note that if one does 'from pydoc import help', the bizarre
5293 5295 behavior returns, but this will also happen in normal python, so
5294 5296 it's not an ipython bug anymore (it has to do with how pydoc.help
5295 5297 is implemented).
5296 5298
5297 5299 2003-05-22 Fernando Perez <fperez@colorado.edu>
5298 5300
5299 5301 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
5300 5302 return [] instead of None when nothing matches, also match to end
5301 5303 of line. Patch by Gary Bishop.
5302 5304
5303 5305 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
5304 5306 protection as before, for files passed on the command line. This
5305 5307 prevents the CrashHandler from kicking in if user files call into
5306 5308 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
5307 5309 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
5308 5310
5309 5311 2003-05-20 *** Released version 0.4.0
5310 5312
5311 5313 2003-05-20 Fernando Perez <fperez@colorado.edu>
5312 5314
5313 5315 * setup.py: added support for manpages. It's a bit hackish b/c of
5314 5316 a bug in the way the bdist_rpm distutils target handles gzipped
5315 5317 manpages, but it works. After a patch by Jack.
5316 5318
5317 5319 2003-05-19 Fernando Perez <fperez@colorado.edu>
5318 5320
5319 5321 * IPython/numutils.py: added a mockup of the kinds module, since
5320 5322 it was recently removed from Numeric. This way, numutils will
5321 5323 work for all users even if they are missing kinds.
5322 5324
5323 5325 * IPython/Magic.py (Magic._ofind): Harden against an inspect
5324 5326 failure, which can occur with SWIG-wrapped extensions. After a
5325 5327 crash report from Prabhu.
5326 5328
5327 5329 2003-05-16 Fernando Perez <fperez@colorado.edu>
5328 5330
5329 5331 * IPython/iplib.py (InteractiveShell.excepthook): New method to
5330 5332 protect ipython from user code which may call directly
5331 5333 sys.excepthook (this looks like an ipython crash to the user, even
5332 5334 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5333 5335 This is especially important to help users of WxWindows, but may
5334 5336 also be useful in other cases.
5335 5337
5336 5338 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
5337 5339 an optional tb_offset to be specified, and to preserve exception
5338 5340 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5339 5341
5340 5342 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
5341 5343
5342 5344 2003-05-15 Fernando Perez <fperez@colorado.edu>
5343 5345
5344 5346 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
5345 5347 installing for a new user under Windows.
5346 5348
5347 5349 2003-05-12 Fernando Perez <fperez@colorado.edu>
5348 5350
5349 5351 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
5350 5352 handler for Emacs comint-based lines. Currently it doesn't do
5351 5353 much (but importantly, it doesn't update the history cache). In
5352 5354 the future it may be expanded if Alex needs more functionality
5353 5355 there.
5354 5356
5355 5357 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
5356 5358 info to crash reports.
5357 5359
5358 5360 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
5359 5361 just like Python's -c. Also fixed crash with invalid -color
5360 5362 option value at startup. Thanks to Will French
5361 5363 <wfrench-AT-bestweb.net> for the bug report.
5362 5364
5363 5365 2003-05-09 Fernando Perez <fperez@colorado.edu>
5364 5366
5365 5367 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
5366 5368 to EvalDict (it's a mapping, after all) and simplified its code
5367 5369 quite a bit, after a nice discussion on c.l.py where Gustavo
5368 5370 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
5369 5371
5370 5372 2003-04-30 Fernando Perez <fperez@colorado.edu>
5371 5373
5372 5374 * IPython/genutils.py (timings_out): modified it to reduce its
5373 5375 overhead in the common reps==1 case.
5374 5376
5375 5377 2003-04-29 Fernando Perez <fperez@colorado.edu>
5376 5378
5377 5379 * IPython/genutils.py (timings_out): Modified to use the resource
5378 5380 module, which avoids the wraparound problems of time.clock().
5379 5381
5380 5382 2003-04-17 *** Released version 0.2.15pre4
5381 5383
5382 5384 2003-04-17 Fernando Perez <fperez@colorado.edu>
5383 5385
5384 5386 * setup.py (scriptfiles): Split windows-specific stuff over to a
5385 5387 separate file, in an attempt to have a Windows GUI installer.
5386 5388 That didn't work, but part of the groundwork is done.
5387 5389
5388 5390 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
5389 5391 indent/unindent with 4 spaces. Particularly useful in combination
5390 5392 with the new auto-indent option.
5391 5393
5392 5394 2003-04-16 Fernando Perez <fperez@colorado.edu>
5393 5395
5394 5396 * IPython/Magic.py: various replacements of self.rc for
5395 5397 self.shell.rc. A lot more remains to be done to fully disentangle
5396 5398 this class from the main Shell class.
5397 5399
5398 5400 * IPython/GnuplotRuntime.py: added checks for mouse support so
5399 5401 that we don't try to enable it if the current gnuplot doesn't
5400 5402 really support it. Also added checks so that we don't try to
5401 5403 enable persist under Windows (where Gnuplot doesn't recognize the
5402 5404 option).
5403 5405
5404 5406 * IPython/iplib.py (InteractiveShell.interact): Added optional
5405 5407 auto-indenting code, after a patch by King C. Shu
5406 5408 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
5407 5409 get along well with pasting indented code. If I ever figure out
5408 5410 how to make that part go well, it will become on by default.
5409 5411
5410 5412 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
5411 5413 crash ipython if there was an unmatched '%' in the user's prompt
5412 5414 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5413 5415
5414 5416 * IPython/iplib.py (InteractiveShell.interact): removed the
5415 5417 ability to ask the user whether he wants to crash or not at the
5416 5418 'last line' exception handler. Calling functions at that point
5417 5419 changes the stack, and the error reports would have incorrect
5418 5420 tracebacks.
5419 5421
5420 5422 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
5421 5423 pass through a peger a pretty-printed form of any object. After a
5422 5424 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
5423 5425
5424 5426 2003-04-14 Fernando Perez <fperez@colorado.edu>
5425 5427
5426 5428 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
5427 5429 all files in ~ would be modified at first install (instead of
5428 5430 ~/.ipython). This could be potentially disastrous, as the
5429 5431 modification (make line-endings native) could damage binary files.
5430 5432
5431 5433 2003-04-10 Fernando Perez <fperez@colorado.edu>
5432 5434
5433 5435 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
5434 5436 handle only lines which are invalid python. This now means that
5435 5437 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
5436 5438 for the bug report.
5437 5439
5438 5440 2003-04-01 Fernando Perez <fperez@colorado.edu>
5439 5441
5440 5442 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
5441 5443 where failing to set sys.last_traceback would crash pdb.pm().
5442 5444 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
5443 5445 report.
5444 5446
5445 5447 2003-03-25 Fernando Perez <fperez@colorado.edu>
5446 5448
5447 5449 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
5448 5450 before printing it (it had a lot of spurious blank lines at the
5449 5451 end).
5450 5452
5451 5453 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
5452 5454 output would be sent 21 times! Obviously people don't use this
5453 5455 too often, or I would have heard about it.
5454 5456
5455 5457 2003-03-24 Fernando Perez <fperez@colorado.edu>
5456 5458
5457 5459 * setup.py (scriptfiles): renamed the data_files parameter from
5458 5460 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
5459 5461 for the patch.
5460 5462
5461 5463 2003-03-20 Fernando Perez <fperez@colorado.edu>
5462 5464
5463 5465 * IPython/genutils.py (error): added error() and fatal()
5464 5466 functions.
5465 5467
5466 5468 2003-03-18 *** Released version 0.2.15pre3
5467 5469
5468 5470 2003-03-18 Fernando Perez <fperez@colorado.edu>
5469 5471
5470 5472 * setupext/install_data_ext.py
5471 5473 (install_data_ext.initialize_options): Class contributed by Jack
5472 5474 Moffit for fixing the old distutils hack. He is sending this to
5473 5475 the distutils folks so in the future we may not need it as a
5474 5476 private fix.
5475 5477
5476 5478 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
5477 5479 changes for Debian packaging. See his patch for full details.
5478 5480 The old distutils hack of making the ipythonrc* files carry a
5479 5481 bogus .py extension is gone, at last. Examples were moved to a
5480 5482 separate subdir under doc/, and the separate executable scripts
5481 5483 now live in their own directory. Overall a great cleanup. The
5482 5484 manual was updated to use the new files, and setup.py has been
5483 5485 fixed for this setup.
5484 5486
5485 5487 * IPython/PyColorize.py (Parser.usage): made non-executable and
5486 5488 created a pycolor wrapper around it to be included as a script.
5487 5489
5488 5490 2003-03-12 *** Released version 0.2.15pre2
5489 5491
5490 5492 2003-03-12 Fernando Perez <fperez@colorado.edu>
5491 5493
5492 5494 * IPython/ColorANSI.py (make_color_table): Finally fixed the
5493 5495 long-standing problem with garbage characters in some terminals.
5494 5496 The issue was really that the \001 and \002 escapes must _only_ be
5495 5497 passed to input prompts (which call readline), but _never_ to
5496 5498 normal text to be printed on screen. I changed ColorANSI to have
5497 5499 two classes: TermColors and InputTermColors, each with the
5498 5500 appropriate escapes for input prompts or normal text. The code in
5499 5501 Prompts.py got slightly more complicated, but this very old and
5500 5502 annoying bug is finally fixed.
5501 5503
5502 5504 All the credit for nailing down the real origin of this problem
5503 5505 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
5504 5506 *Many* thanks to him for spending quite a bit of effort on this.
5505 5507
5506 5508 2003-03-05 *** Released version 0.2.15pre1
5507 5509
5508 5510 2003-03-03 Fernando Perez <fperez@colorado.edu>
5509 5511
5510 5512 * IPython/FakeModule.py: Moved the former _FakeModule to a
5511 5513 separate file, because it's also needed by Magic (to fix a similar
5512 5514 pickle-related issue in @run).
5513 5515
5514 5516 2003-03-02 Fernando Perez <fperez@colorado.edu>
5515 5517
5516 5518 * IPython/Magic.py (Magic.magic_autocall): new magic to control
5517 5519 the autocall option at runtime.
5518 5520 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
5519 5521 across Magic.py to start separating Magic from InteractiveShell.
5520 5522 (Magic._ofind): Fixed to return proper namespace for dotted
5521 5523 names. Before, a dotted name would always return 'not currently
5522 5524 defined', because it would find the 'parent'. s.x would be found,
5523 5525 but since 'x' isn't defined by itself, it would get confused.
5524 5526 (Magic.magic_run): Fixed pickling problems reported by Ralf
5525 5527 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
5526 5528 that I'd used when Mike Heeter reported similar issues at the
5527 5529 top-level, but now for @run. It boils down to injecting the
5528 5530 namespace where code is being executed with something that looks
5529 5531 enough like a module to fool pickle.dump(). Since a pickle stores
5530 5532 a named reference to the importing module, we need this for
5531 5533 pickles to save something sensible.
5532 5534
5533 5535 * IPython/ipmaker.py (make_IPython): added an autocall option.
5534 5536
5535 5537 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
5536 5538 the auto-eval code. Now autocalling is an option, and the code is
5537 5539 also vastly safer. There is no more eval() involved at all.
5538 5540
5539 5541 2003-03-01 Fernando Perez <fperez@colorado.edu>
5540 5542
5541 5543 * IPython/Magic.py (Magic._ofind): Changed interface to return a
5542 5544 dict with named keys instead of a tuple.
5543 5545
5544 5546 * IPython: Started using CVS for IPython as of 0.2.15pre1.
5545 5547
5546 5548 * setup.py (make_shortcut): Fixed message about directories
5547 5549 created during Windows installation (the directories were ok, just
5548 5550 the printed message was misleading). Thanks to Chris Liechti
5549 5551 <cliechti-AT-gmx.net> for the heads up.
5550 5552
5551 5553 2003-02-21 Fernando Perez <fperez@colorado.edu>
5552 5554
5553 5555 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
5554 5556 of ValueError exception when checking for auto-execution. This
5555 5557 one is raised by things like Numeric arrays arr.flat when the
5556 5558 array is non-contiguous.
5557 5559
5558 5560 2003-01-31 Fernando Perez <fperez@colorado.edu>
5559 5561
5560 5562 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
5561 5563 not return any value at all (even though the command would get
5562 5564 executed).
5563 5565 (xsys): Flush stdout right after printing the command to ensure
5564 5566 proper ordering of commands and command output in the total
5565 5567 output.
5566 5568 (SystemExec/xsys/bq): Switched the names of xsys/bq and
5567 5569 system/getoutput as defaults. The old ones are kept for
5568 5570 compatibility reasons, so no code which uses this library needs
5569 5571 changing.
5570 5572
5571 5573 2003-01-27 *** Released version 0.2.14
5572 5574
5573 5575 2003-01-25 Fernando Perez <fperez@colorado.edu>
5574 5576
5575 5577 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
5576 5578 functions defined in previous edit sessions could not be re-edited
5577 5579 (because the temp files were immediately removed). Now temp files
5578 5580 are removed only at IPython's exit.
5579 5581 (Magic.magic_run): Improved @run to perform shell-like expansions
5580 5582 on its arguments (~users and $VARS). With this, @run becomes more
5581 5583 like a normal command-line.
5582 5584
5583 5585 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
5584 5586 bugs related to embedding and cleaned up that code. A fairly
5585 5587 important one was the impossibility to access the global namespace
5586 5588 through the embedded IPython (only local variables were visible).
5587 5589
5588 5590 2003-01-14 Fernando Perez <fperez@colorado.edu>
5589 5591
5590 5592 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
5591 5593 auto-calling to be a bit more conservative. Now it doesn't get
5592 5594 triggered if any of '!=()<>' are in the rest of the input line, to
5593 5595 allow comparing callables. Thanks to Alex for the heads up.
5594 5596
5595 5597 2003-01-07 Fernando Perez <fperez@colorado.edu>
5596 5598
5597 5599 * IPython/genutils.py (page): fixed estimation of the number of
5598 5600 lines in a string to be paged to simply count newlines. This
5599 5601 prevents over-guessing due to embedded escape sequences. A better
5600 5602 long-term solution would involve stripping out the control chars
5601 5603 for the count, but it's potentially so expensive I just don't
5602 5604 think it's worth doing.
5603 5605
5604 5606 2002-12-19 *** Released version 0.2.14pre50
5605 5607
5606 5608 2002-12-19 Fernando Perez <fperez@colorado.edu>
5607 5609
5608 5610 * tools/release (version): Changed release scripts to inform
5609 5611 Andrea and build a NEWS file with a list of recent changes.
5610 5612
5611 5613 * IPython/ColorANSI.py (__all__): changed terminal detection
5612 5614 code. Seems to work better for xterms without breaking
5613 5615 konsole. Will need more testing to determine if WinXP and Mac OSX
5614 5616 also work ok.
5615 5617
5616 5618 2002-12-18 *** Released version 0.2.14pre49
5617 5619
5618 5620 2002-12-18 Fernando Perez <fperez@colorado.edu>
5619 5621
5620 5622 * Docs: added new info about Mac OSX, from Andrea.
5621 5623
5622 5624 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5623 5625 allow direct plotting of python strings whose format is the same
5624 5626 of gnuplot data files.
5625 5627
5626 5628 2002-12-16 Fernando Perez <fperez@colorado.edu>
5627 5629
5628 5630 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5629 5631 value of exit question to be acknowledged.
5630 5632
5631 5633 2002-12-03 Fernando Perez <fperez@colorado.edu>
5632 5634
5633 5635 * IPython/ipmaker.py: removed generators, which had been added
5634 5636 by mistake in an earlier debugging run. This was causing trouble
5635 5637 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5636 5638 for pointing this out.
5637 5639
5638 5640 2002-11-17 Fernando Perez <fperez@colorado.edu>
5639 5641
5640 5642 * Manual: updated the Gnuplot section.
5641 5643
5642 5644 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5643 5645 a much better split of what goes in Runtime and what goes in
5644 5646 Interactive.
5645 5647
5646 5648 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5647 5649 being imported from iplib.
5648 5650
5649 5651 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5650 5652 for command-passing. Now the global Gnuplot instance is called
5651 5653 'gp' instead of 'g', which was really a far too fragile and
5652 5654 common name.
5653 5655
5654 5656 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5655 5657 bounding boxes generated by Gnuplot for square plots.
5656 5658
5657 5659 * IPython/genutils.py (popkey): new function added. I should
5658 5660 suggest this on c.l.py as a dict method, it seems useful.
5659 5661
5660 5662 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5661 5663 to transparently handle PostScript generation. MUCH better than
5662 5664 the previous plot_eps/replot_eps (which I removed now). The code
5663 5665 is also fairly clean and well documented now (including
5664 5666 docstrings).
5665 5667
5666 5668 2002-11-13 Fernando Perez <fperez@colorado.edu>
5667 5669
5668 5670 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5669 5671 (inconsistent with options).
5670 5672
5671 5673 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5672 5674 manually disabled, I don't know why. Fixed it.
5673 5675 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5674 5676 eps output.
5675 5677
5676 5678 2002-11-12 Fernando Perez <fperez@colorado.edu>
5677 5679
5678 5680 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5679 5681 don't propagate up to caller. Fixes crash reported by François
5680 5682 Pinard.
5681 5683
5682 5684 2002-11-09 Fernando Perez <fperez@colorado.edu>
5683 5685
5684 5686 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5685 5687 history file for new users.
5686 5688 (make_IPython): fixed bug where initial install would leave the
5687 5689 user running in the .ipython dir.
5688 5690 (make_IPython): fixed bug where config dir .ipython would be
5689 5691 created regardless of the given -ipythondir option. Thanks to Cory
5690 5692 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5691 5693
5692 5694 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5693 5695 type confirmations. Will need to use it in all of IPython's code
5694 5696 consistently.
5695 5697
5696 5698 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5697 5699 context to print 31 lines instead of the default 5. This will make
5698 5700 the crash reports extremely detailed in case the problem is in
5699 5701 libraries I don't have access to.
5700 5702
5701 5703 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5702 5704 line of defense' code to still crash, but giving users fair
5703 5705 warning. I don't want internal errors to go unreported: if there's
5704 5706 an internal problem, IPython should crash and generate a full
5705 5707 report.
5706 5708
5707 5709 2002-11-08 Fernando Perez <fperez@colorado.edu>
5708 5710
5709 5711 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5710 5712 otherwise uncaught exceptions which can appear if people set
5711 5713 sys.stdout to something badly broken. Thanks to a crash report
5712 5714 from henni-AT-mail.brainbot.com.
5713 5715
5714 5716 2002-11-04 Fernando Perez <fperez@colorado.edu>
5715 5717
5716 5718 * IPython/iplib.py (InteractiveShell.interact): added
5717 5719 __IPYTHON__active to the builtins. It's a flag which goes on when
5718 5720 the interaction starts and goes off again when it stops. This
5719 5721 allows embedding code to detect being inside IPython. Before this
5720 5722 was done via __IPYTHON__, but that only shows that an IPython
5721 5723 instance has been created.
5722 5724
5723 5725 * IPython/Magic.py (Magic.magic_env): I realized that in a
5724 5726 UserDict, instance.data holds the data as a normal dict. So I
5725 5727 modified @env to return os.environ.data instead of rebuilding a
5726 5728 dict by hand.
5727 5729
5728 5730 2002-11-02 Fernando Perez <fperez@colorado.edu>
5729 5731
5730 5732 * IPython/genutils.py (warn): changed so that level 1 prints no
5731 5733 header. Level 2 is now the default (with 'WARNING' header, as
5732 5734 before). I think I tracked all places where changes were needed in
5733 5735 IPython, but outside code using the old level numbering may have
5734 5736 broken.
5735 5737
5736 5738 * IPython/iplib.py (InteractiveShell.runcode): added this to
5737 5739 handle the tracebacks in SystemExit traps correctly. The previous
5738 5740 code (through interact) was printing more of the stack than
5739 5741 necessary, showing IPython internal code to the user.
5740 5742
5741 5743 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5742 5744 default. Now that the default at the confirmation prompt is yes,
5743 5745 it's not so intrusive. François' argument that ipython sessions
5744 5746 tend to be complex enough not to lose them from an accidental C-d,
5745 5747 is a valid one.
5746 5748
5747 5749 * IPython/iplib.py (InteractiveShell.interact): added a
5748 5750 showtraceback() call to the SystemExit trap, and modified the exit
5749 5751 confirmation to have yes as the default.
5750 5752
5751 5753 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5752 5754 this file. It's been gone from the code for a long time, this was
5753 5755 simply leftover junk.
5754 5756
5755 5757 2002-11-01 Fernando Perez <fperez@colorado.edu>
5756 5758
5757 5759 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5758 5760 added. If set, IPython now traps EOF and asks for
5759 5761 confirmation. After a request by François Pinard.
5760 5762
5761 5763 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5762 5764 of @abort, and with a new (better) mechanism for handling the
5763 5765 exceptions.
5764 5766
5765 5767 2002-10-27 Fernando Perez <fperez@colorado.edu>
5766 5768
5767 5769 * IPython/usage.py (__doc__): updated the --help information and
5768 5770 the ipythonrc file to indicate that -log generates
5769 5771 ./ipython.log. Also fixed the corresponding info in @logstart.
5770 5772 This and several other fixes in the manuals thanks to reports by
5771 5773 François Pinard <pinard-AT-iro.umontreal.ca>.
5772 5774
5773 5775 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5774 5776 refer to @logstart (instead of @log, which doesn't exist).
5775 5777
5776 5778 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5777 5779 AttributeError crash. Thanks to Christopher Armstrong
5778 5780 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5779 5781 introduced recently (in 0.2.14pre37) with the fix to the eval
5780 5782 problem mentioned below.
5781 5783
5782 5784 2002-10-17 Fernando Perez <fperez@colorado.edu>
5783 5785
5784 5786 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5785 5787 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5786 5788
5787 5789 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5788 5790 this function to fix a problem reported by Alex Schmolck. He saw
5789 5791 it with list comprehensions and generators, which were getting
5790 5792 called twice. The real problem was an 'eval' call in testing for
5791 5793 automagic which was evaluating the input line silently.
5792 5794
5793 5795 This is a potentially very nasty bug, if the input has side
5794 5796 effects which must not be repeated. The code is much cleaner now,
5795 5797 without any blanket 'except' left and with a regexp test for
5796 5798 actual function names.
5797 5799
5798 5800 But an eval remains, which I'm not fully comfortable with. I just
5799 5801 don't know how to find out if an expression could be a callable in
5800 5802 the user's namespace without doing an eval on the string. However
5801 5803 that string is now much more strictly checked so that no code
5802 5804 slips by, so the eval should only happen for things that can
5803 5805 really be only function/method names.
5804 5806
5805 5807 2002-10-15 Fernando Perez <fperez@colorado.edu>
5806 5808
5807 5809 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5808 5810 OSX information to main manual, removed README_Mac_OSX file from
5809 5811 distribution. Also updated credits for recent additions.
5810 5812
5811 5813 2002-10-10 Fernando Perez <fperez@colorado.edu>
5812 5814
5813 5815 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5814 5816 terminal-related issues. Many thanks to Andrea Riciputi
5815 5817 <andrea.riciputi-AT-libero.it> for writing it.
5816 5818
5817 5819 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5818 5820 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5819 5821
5820 5822 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5821 5823 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5822 5824 <syver-en-AT-online.no> who both submitted patches for this problem.
5823 5825
5824 5826 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5825 5827 global embedding to make sure that things don't overwrite user
5826 5828 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5827 5829
5828 5830 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5829 5831 compatibility. Thanks to Hayden Callow
5830 5832 <h.callow-AT-elec.canterbury.ac.nz>
5831 5833
5832 5834 2002-10-04 Fernando Perez <fperez@colorado.edu>
5833 5835
5834 5836 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5835 5837 Gnuplot.File objects.
5836 5838
5837 5839 2002-07-23 Fernando Perez <fperez@colorado.edu>
5838 5840
5839 5841 * IPython/genutils.py (timing): Added timings() and timing() for
5840 5842 quick access to the most commonly needed data, the execution
5841 5843 times. Old timing() renamed to timings_out().
5842 5844
5843 5845 2002-07-18 Fernando Perez <fperez@colorado.edu>
5844 5846
5845 5847 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5846 5848 bug with nested instances disrupting the parent's tab completion.
5847 5849
5848 5850 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5849 5851 all_completions code to begin the emacs integration.
5850 5852
5851 5853 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5852 5854 argument to allow titling individual arrays when plotting.
5853 5855
5854 5856 2002-07-15 Fernando Perez <fperez@colorado.edu>
5855 5857
5856 5858 * setup.py (make_shortcut): changed to retrieve the value of
5857 5859 'Program Files' directory from the registry (this value changes in
5858 5860 non-english versions of Windows). Thanks to Thomas Fanslau
5859 5861 <tfanslau-AT-gmx.de> for the report.
5860 5862
5861 5863 2002-07-10 Fernando Perez <fperez@colorado.edu>
5862 5864
5863 5865 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5864 5866 a bug in pdb, which crashes if a line with only whitespace is
5865 5867 entered. Bug report submitted to sourceforge.
5866 5868
5867 5869 2002-07-09 Fernando Perez <fperez@colorado.edu>
5868 5870
5869 5871 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5870 5872 reporting exceptions (it's a bug in inspect.py, I just set a
5871 5873 workaround).
5872 5874
5873 5875 2002-07-08 Fernando Perez <fperez@colorado.edu>
5874 5876
5875 5877 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5876 5878 __IPYTHON__ in __builtins__ to show up in user_ns.
5877 5879
5878 5880 2002-07-03 Fernando Perez <fperez@colorado.edu>
5879 5881
5880 5882 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5881 5883 name from @gp_set_instance to @gp_set_default.
5882 5884
5883 5885 * IPython/ipmaker.py (make_IPython): default editor value set to
5884 5886 '0' (a string), to match the rc file. Otherwise will crash when
5885 5887 .strip() is called on it.
5886 5888
5887 5889
5888 5890 2002-06-28 Fernando Perez <fperez@colorado.edu>
5889 5891
5890 5892 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5891 5893 of files in current directory when a file is executed via
5892 5894 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5893 5895
5894 5896 * setup.py (manfiles): fix for rpm builds, submitted by RA
5895 5897 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5896 5898
5897 5899 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5898 5900 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5899 5901 string!). A. Schmolck caught this one.
5900 5902
5901 5903 2002-06-27 Fernando Perez <fperez@colorado.edu>
5902 5904
5903 5905 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5904 5906 defined files at the cmd line. __name__ wasn't being set to
5905 5907 __main__.
5906 5908
5907 5909 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5908 5910 regular lists and tuples besides Numeric arrays.
5909 5911
5910 5912 * IPython/Prompts.py (CachedOutput.__call__): Added output
5911 5913 supression for input ending with ';'. Similar to Mathematica and
5912 5914 Matlab. The _* vars and Out[] list are still updated, just like
5913 5915 Mathematica behaves.
5914 5916
5915 5917 2002-06-25 Fernando Perez <fperez@colorado.edu>
5916 5918
5917 5919 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5918 5920 .ini extensions for profiels under Windows.
5919 5921
5920 5922 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5921 5923 string form. Fix contributed by Alexander Schmolck
5922 5924 <a.schmolck-AT-gmx.net>
5923 5925
5924 5926 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5925 5927 pre-configured Gnuplot instance.
5926 5928
5927 5929 2002-06-21 Fernando Perez <fperez@colorado.edu>
5928 5930
5929 5931 * IPython/numutils.py (exp_safe): new function, works around the
5930 5932 underflow problems in Numeric.
5931 5933 (log2): New fn. Safe log in base 2: returns exact integer answer
5932 5934 for exact integer powers of 2.
5933 5935
5934 5936 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5935 5937 properly.
5936 5938
5937 5939 2002-06-20 Fernando Perez <fperez@colorado.edu>
5938 5940
5939 5941 * IPython/genutils.py (timing): new function like
5940 5942 Mathematica's. Similar to time_test, but returns more info.
5941 5943
5942 5944 2002-06-18 Fernando Perez <fperez@colorado.edu>
5943 5945
5944 5946 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5945 5947 according to Mike Heeter's suggestions.
5946 5948
5947 5949 2002-06-16 Fernando Perez <fperez@colorado.edu>
5948 5950
5949 5951 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5950 5952 system. GnuplotMagic is gone as a user-directory option. New files
5951 5953 make it easier to use all the gnuplot stuff both from external
5952 5954 programs as well as from IPython. Had to rewrite part of
5953 5955 hardcopy() b/c of a strange bug: often the ps files simply don't
5954 5956 get created, and require a repeat of the command (often several
5955 5957 times).
5956 5958
5957 5959 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5958 5960 resolve output channel at call time, so that if sys.stderr has
5959 5961 been redirected by user this gets honored.
5960 5962
5961 5963 2002-06-13 Fernando Perez <fperez@colorado.edu>
5962 5964
5963 5965 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5964 5966 IPShell. Kept a copy with the old names to avoid breaking people's
5965 5967 embedded code.
5966 5968
5967 5969 * IPython/ipython: simplified it to the bare minimum after
5968 5970 Holger's suggestions. Added info about how to use it in
5969 5971 PYTHONSTARTUP.
5970 5972
5971 5973 * IPython/Shell.py (IPythonShell): changed the options passing
5972 5974 from a string with funky %s replacements to a straight list. Maybe
5973 5975 a bit more typing, but it follows sys.argv conventions, so there's
5974 5976 less special-casing to remember.
5975 5977
5976 5978 2002-06-12 Fernando Perez <fperez@colorado.edu>
5977 5979
5978 5980 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5979 5981 command. Thanks to a suggestion by Mike Heeter.
5980 5982 (Magic.magic_pfile): added behavior to look at filenames if given
5981 5983 arg is not a defined object.
5982 5984 (Magic.magic_save): New @save function to save code snippets. Also
5983 5985 a Mike Heeter idea.
5984 5986
5985 5987 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5986 5988 plot() and replot(). Much more convenient now, especially for
5987 5989 interactive use.
5988 5990
5989 5991 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5990 5992 filenames.
5991 5993
5992 5994 2002-06-02 Fernando Perez <fperez@colorado.edu>
5993 5995
5994 5996 * IPython/Struct.py (Struct.__init__): modified to admit
5995 5997 initialization via another struct.
5996 5998
5997 5999 * IPython/genutils.py (SystemExec.__init__): New stateful
5998 6000 interface to xsys and bq. Useful for writing system scripts.
5999 6001
6000 6002 2002-05-30 Fernando Perez <fperez@colorado.edu>
6001 6003
6002 6004 * MANIFEST.in: Changed docfile selection to exclude all the lyx
6003 6005 documents. This will make the user download smaller (it's getting
6004 6006 too big).
6005 6007
6006 6008 2002-05-29 Fernando Perez <fperez@colorado.edu>
6007 6009
6008 6010 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
6009 6011 fix problems with shelve and pickle. Seems to work, but I don't
6010 6012 know if corner cases break it. Thanks to Mike Heeter
6011 6013 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
6012 6014
6013 6015 2002-05-24 Fernando Perez <fperez@colorado.edu>
6014 6016
6015 6017 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
6016 6018 macros having broken.
6017 6019
6018 6020 2002-05-21 Fernando Perez <fperez@colorado.edu>
6019 6021
6020 6022 * IPython/Magic.py (Magic.magic_logstart): fixed recently
6021 6023 introduced logging bug: all history before logging started was
6022 6024 being written one character per line! This came from the redesign
6023 6025 of the input history as a special list which slices to strings,
6024 6026 not to lists.
6025 6027
6026 6028 2002-05-20 Fernando Perez <fperez@colorado.edu>
6027 6029
6028 6030 * IPython/Prompts.py (CachedOutput.__init__): made the color table
6029 6031 be an attribute of all classes in this module. The design of these
6030 6032 classes needs some serious overhauling.
6031 6033
6032 6034 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
6033 6035 which was ignoring '_' in option names.
6034 6036
6035 6037 * IPython/ultraTB.py (FormattedTB.__init__): Changed
6036 6038 'Verbose_novars' to 'Context' and made it the new default. It's a
6037 6039 bit more readable and also safer than verbose.
6038 6040
6039 6041 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
6040 6042 triple-quoted strings.
6041 6043
6042 6044 * IPython/OInspect.py (__all__): new module exposing the object
6043 6045 introspection facilities. Now the corresponding magics are dummy
6044 6046 wrappers around this. Having this module will make it much easier
6045 6047 to put these functions into our modified pdb.
6046 6048 This new object inspector system uses the new colorizing module,
6047 6049 so source code and other things are nicely syntax highlighted.
6048 6050
6049 6051 2002-05-18 Fernando Perez <fperez@colorado.edu>
6050 6052
6051 6053 * IPython/ColorANSI.py: Split the coloring tools into a separate
6052 6054 module so I can use them in other code easier (they were part of
6053 6055 ultraTB).
6054 6056
6055 6057 2002-05-17 Fernando Perez <fperez@colorado.edu>
6056 6058
6057 6059 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
6058 6060 fixed it to set the global 'g' also to the called instance, as
6059 6061 long as 'g' was still a gnuplot instance (so it doesn't overwrite
6060 6062 user's 'g' variables).
6061 6063
6062 6064 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
6063 6065 global variables (aliases to _ih,_oh) so that users which expect
6064 6066 In[5] or Out[7] to work aren't unpleasantly surprised.
6065 6067 (InputList.__getslice__): new class to allow executing slices of
6066 6068 input history directly. Very simple class, complements the use of
6067 6069 macros.
6068 6070
6069 6071 2002-05-16 Fernando Perez <fperez@colorado.edu>
6070 6072
6071 6073 * setup.py (docdirbase): make doc directory be just doc/IPython
6072 6074 without version numbers, it will reduce clutter for users.
6073 6075
6074 6076 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
6075 6077 execfile call to prevent possible memory leak. See for details:
6076 6078 http://mail.python.org/pipermail/python-list/2002-February/088476.html
6077 6079
6078 6080 2002-05-15 Fernando Perez <fperez@colorado.edu>
6079 6081
6080 6082 * IPython/Magic.py (Magic.magic_psource): made the object
6081 6083 introspection names be more standard: pdoc, pdef, pfile and
6082 6084 psource. They all print/page their output, and it makes
6083 6085 remembering them easier. Kept old names for compatibility as
6084 6086 aliases.
6085 6087
6086 6088 2002-05-14 Fernando Perez <fperez@colorado.edu>
6087 6089
6088 6090 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
6089 6091 what the mouse problem was. The trick is to use gnuplot with temp
6090 6092 files and NOT with pipes (for data communication), because having
6091 6093 both pipes and the mouse on is bad news.
6092 6094
6093 6095 2002-05-13 Fernando Perez <fperez@colorado.edu>
6094 6096
6095 6097 * IPython/Magic.py (Magic._ofind): fixed namespace order search
6096 6098 bug. Information would be reported about builtins even when
6097 6099 user-defined functions overrode them.
6098 6100
6099 6101 2002-05-11 Fernando Perez <fperez@colorado.edu>
6100 6102
6101 6103 * IPython/__init__.py (__all__): removed FlexCompleter from
6102 6104 __all__ so that things don't fail in platforms without readline.
6103 6105
6104 6106 2002-05-10 Fernando Perez <fperez@colorado.edu>
6105 6107
6106 6108 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
6107 6109 it requires Numeric, effectively making Numeric a dependency for
6108 6110 IPython.
6109 6111
6110 6112 * Released 0.2.13
6111 6113
6112 6114 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
6113 6115 profiler interface. Now all the major options from the profiler
6114 6116 module are directly supported in IPython, both for single
6115 6117 expressions (@prun) and for full programs (@run -p).
6116 6118
6117 6119 2002-05-09 Fernando Perez <fperez@colorado.edu>
6118 6120
6119 6121 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
6120 6122 magic properly formatted for screen.
6121 6123
6122 6124 * setup.py (make_shortcut): Changed things to put pdf version in
6123 6125 doc/ instead of doc/manual (had to change lyxport a bit).
6124 6126
6125 6127 * IPython/Magic.py (Profile.string_stats): made profile runs go
6126 6128 through pager (they are long and a pager allows searching, saving,
6127 6129 etc.)
6128 6130
6129 6131 2002-05-08 Fernando Perez <fperez@colorado.edu>
6130 6132
6131 6133 * Released 0.2.12
6132 6134
6133 6135 2002-05-06 Fernando Perez <fperez@colorado.edu>
6134 6136
6135 6137 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
6136 6138 introduced); 'hist n1 n2' was broken.
6137 6139 (Magic.magic_pdb): added optional on/off arguments to @pdb
6138 6140 (Magic.magic_run): added option -i to @run, which executes code in
6139 6141 the IPython namespace instead of a clean one. Also added @irun as
6140 6142 an alias to @run -i.
6141 6143
6142 6144 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
6143 6145 fixed (it didn't really do anything, the namespaces were wrong).
6144 6146
6145 6147 * IPython/Debugger.py (__init__): Added workaround for python 2.1
6146 6148
6147 6149 * IPython/__init__.py (__all__): Fixed package namespace, now
6148 6150 'import IPython' does give access to IPython.<all> as
6149 6151 expected. Also renamed __release__ to Release.
6150 6152
6151 6153 * IPython/Debugger.py (__license__): created new Pdb class which
6152 6154 functions like a drop-in for the normal pdb.Pdb but does NOT
6153 6155 import readline by default. This way it doesn't muck up IPython's
6154 6156 readline handling, and now tab-completion finally works in the
6155 6157 debugger -- sort of. It completes things globally visible, but the
6156 6158 completer doesn't track the stack as pdb walks it. That's a bit
6157 6159 tricky, and I'll have to implement it later.
6158 6160
6159 6161 2002-05-05 Fernando Perez <fperez@colorado.edu>
6160 6162
6161 6163 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
6162 6164 magic docstrings when printed via ? (explicit \'s were being
6163 6165 printed).
6164 6166
6165 6167 * IPython/ipmaker.py (make_IPython): fixed namespace
6166 6168 identification bug. Now variables loaded via logs or command-line
6167 6169 files are recognized in the interactive namespace by @who.
6168 6170
6169 6171 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
6170 6172 log replay system stemming from the string form of Structs.
6171 6173
6172 6174 * IPython/Magic.py (Macro.__init__): improved macros to properly
6173 6175 handle magic commands in them.
6174 6176 (Magic.magic_logstart): usernames are now expanded so 'logstart
6175 6177 ~/mylog' now works.
6176 6178
6177 6179 * IPython/iplib.py (complete): fixed bug where paths starting with
6178 6180 '/' would be completed as magic names.
6179 6181
6180 6182 2002-05-04 Fernando Perez <fperez@colorado.edu>
6181 6183
6182 6184 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
6183 6185 allow running full programs under the profiler's control.
6184 6186
6185 6187 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
6186 6188 mode to report exceptions verbosely but without formatting
6187 6189 variables. This addresses the issue of ipython 'freezing' (it's
6188 6190 not frozen, but caught in an expensive formatting loop) when huge
6189 6191 variables are in the context of an exception.
6190 6192 (VerboseTB.text): Added '--->' markers at line where exception was
6191 6193 triggered. Much clearer to read, especially in NoColor modes.
6192 6194
6193 6195 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
6194 6196 implemented in reverse when changing to the new parse_options().
6195 6197
6196 6198 2002-05-03 Fernando Perez <fperez@colorado.edu>
6197 6199
6198 6200 * IPython/Magic.py (Magic.parse_options): new function so that
6199 6201 magics can parse options easier.
6200 6202 (Magic.magic_prun): new function similar to profile.run(),
6201 6203 suggested by Chris Hart.
6202 6204 (Magic.magic_cd): fixed behavior so that it only changes if
6203 6205 directory actually is in history.
6204 6206
6205 6207 * IPython/usage.py (__doc__): added information about potential
6206 6208 slowness of Verbose exception mode when there are huge data
6207 6209 structures to be formatted (thanks to Archie Paulson).
6208 6210
6209 6211 * IPython/ipmaker.py (make_IPython): Changed default logging
6210 6212 (when simply called with -log) to use curr_dir/ipython.log in
6211 6213 rotate mode. Fixed crash which was occuring with -log before
6212 6214 (thanks to Jim Boyle).
6213 6215
6214 6216 2002-05-01 Fernando Perez <fperez@colorado.edu>
6215 6217
6216 6218 * Released 0.2.11 for these fixes (mainly the ultraTB one which
6217 6219 was nasty -- though somewhat of a corner case).
6218 6220
6219 6221 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
6220 6222 text (was a bug).
6221 6223
6222 6224 2002-04-30 Fernando Perez <fperez@colorado.edu>
6223 6225
6224 6226 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
6225 6227 a print after ^D or ^C from the user so that the In[] prompt
6226 6228 doesn't over-run the gnuplot one.
6227 6229
6228 6230 2002-04-29 Fernando Perez <fperez@colorado.edu>
6229 6231
6230 6232 * Released 0.2.10
6231 6233
6232 6234 * IPython/__release__.py (version): get date dynamically.
6233 6235
6234 6236 * Misc. documentation updates thanks to Arnd's comments. Also ran
6235 6237 a full spellcheck on the manual (hadn't been done in a while).
6236 6238
6237 6239 2002-04-27 Fernando Perez <fperez@colorado.edu>
6238 6240
6239 6241 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
6240 6242 starting a log in mid-session would reset the input history list.
6241 6243
6242 6244 2002-04-26 Fernando Perez <fperez@colorado.edu>
6243 6245
6244 6246 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
6245 6247 all files were being included in an update. Now anything in
6246 6248 UserConfig that matches [A-Za-z]*.py will go (this excludes
6247 6249 __init__.py)
6248 6250
6249 6251 2002-04-25 Fernando Perez <fperez@colorado.edu>
6250 6252
6251 6253 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
6252 6254 to __builtins__ so that any form of embedded or imported code can
6253 6255 test for being inside IPython.
6254 6256
6255 6257 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
6256 6258 changed to GnuplotMagic because it's now an importable module,
6257 6259 this makes the name follow that of the standard Gnuplot module.
6258 6260 GnuplotMagic can now be loaded at any time in mid-session.
6259 6261
6260 6262 2002-04-24 Fernando Perez <fperez@colorado.edu>
6261 6263
6262 6264 * IPython/numutils.py: removed SIUnits. It doesn't properly set
6263 6265 the globals (IPython has its own namespace) and the
6264 6266 PhysicalQuantity stuff is much better anyway.
6265 6267
6266 6268 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
6267 6269 embedding example to standard user directory for
6268 6270 distribution. Also put it in the manual.
6269 6271
6270 6272 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
6271 6273 instance as first argument (so it doesn't rely on some obscure
6272 6274 hidden global).
6273 6275
6274 6276 * IPython/UserConfig/ipythonrc.py: put () back in accepted
6275 6277 delimiters. While it prevents ().TAB from working, it allows
6276 6278 completions in open (... expressions. This is by far a more common
6277 6279 case.
6278 6280
6279 6281 2002-04-23 Fernando Perez <fperez@colorado.edu>
6280 6282
6281 6283 * IPython/Extensions/InterpreterPasteInput.py: new
6282 6284 syntax-processing module for pasting lines with >>> or ... at the
6283 6285 start.
6284 6286
6285 6287 * IPython/Extensions/PhysicalQ_Interactive.py
6286 6288 (PhysicalQuantityInteractive.__int__): fixed to work with either
6287 6289 Numeric or math.
6288 6290
6289 6291 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
6290 6292 provided profiles. Now we have:
6291 6293 -math -> math module as * and cmath with its own namespace.
6292 6294 -numeric -> Numeric as *, plus gnuplot & grace
6293 6295 -physics -> same as before
6294 6296
6295 6297 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
6296 6298 user-defined magics wouldn't be found by @magic if they were
6297 6299 defined as class methods. Also cleaned up the namespace search
6298 6300 logic and the string building (to use %s instead of many repeated
6299 6301 string adds).
6300 6302
6301 6303 * IPython/UserConfig/example-magic.py (magic_foo): updated example
6302 6304 of user-defined magics to operate with class methods (cleaner, in
6303 6305 line with the gnuplot code).
6304 6306
6305 6307 2002-04-22 Fernando Perez <fperez@colorado.edu>
6306 6308
6307 6309 * setup.py: updated dependency list so that manual is updated when
6308 6310 all included files change.
6309 6311
6310 6312 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
6311 6313 the delimiter removal option (the fix is ugly right now).
6312 6314
6313 6315 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
6314 6316 all of the math profile (quicker loading, no conflict between
6315 6317 g-9.8 and g-gnuplot).
6316 6318
6317 6319 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
6318 6320 name of post-mortem files to IPython_crash_report.txt.
6319 6321
6320 6322 * Cleanup/update of the docs. Added all the new readline info and
6321 6323 formatted all lists as 'real lists'.
6322 6324
6323 6325 * IPython/ipmaker.py (make_IPython): removed now-obsolete
6324 6326 tab-completion options, since the full readline parse_and_bind is
6325 6327 now accessible.
6326 6328
6327 6329 * IPython/iplib.py (InteractiveShell.init_readline): Changed
6328 6330 handling of readline options. Now users can specify any string to
6329 6331 be passed to parse_and_bind(), as well as the delimiters to be
6330 6332 removed.
6331 6333 (InteractiveShell.__init__): Added __name__ to the global
6332 6334 namespace so that things like Itpl which rely on its existence
6333 6335 don't crash.
6334 6336 (InteractiveShell._prefilter): Defined the default with a _ so
6335 6337 that prefilter() is easier to override, while the default one
6336 6338 remains available.
6337 6339
6338 6340 2002-04-18 Fernando Perez <fperez@colorado.edu>
6339 6341
6340 6342 * Added information about pdb in the docs.
6341 6343
6342 6344 2002-04-17 Fernando Perez <fperez@colorado.edu>
6343 6345
6344 6346 * IPython/ipmaker.py (make_IPython): added rc_override option to
6345 6347 allow passing config options at creation time which may override
6346 6348 anything set in the config files or command line. This is
6347 6349 particularly useful for configuring embedded instances.
6348 6350
6349 6351 2002-04-15 Fernando Perez <fperez@colorado.edu>
6350 6352
6351 6353 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
6352 6354 crash embedded instances because of the input cache falling out of
6353 6355 sync with the output counter.
6354 6356
6355 6357 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
6356 6358 mode which calls pdb after an uncaught exception in IPython itself.
6357 6359
6358 6360 2002-04-14 Fernando Perez <fperez@colorado.edu>
6359 6361
6360 6362 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
6361 6363 readline, fix it back after each call.
6362 6364
6363 6365 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
6364 6366 method to force all access via __call__(), which guarantees that
6365 6367 traceback references are properly deleted.
6366 6368
6367 6369 * IPython/Prompts.py (CachedOutput._display): minor fixes to
6368 6370 improve printing when pprint is in use.
6369 6371
6370 6372 2002-04-13 Fernando Perez <fperez@colorado.edu>
6371 6373
6372 6374 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
6373 6375 exceptions aren't caught anymore. If the user triggers one, he
6374 6376 should know why he's doing it and it should go all the way up,
6375 6377 just like any other exception. So now @abort will fully kill the
6376 6378 embedded interpreter and the embedding code (unless that happens
6377 6379 to catch SystemExit).
6378 6380
6379 6381 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
6380 6382 and a debugger() method to invoke the interactive pdb debugger
6381 6383 after printing exception information. Also added the corresponding
6382 6384 -pdb option and @pdb magic to control this feature, and updated
6383 6385 the docs. After a suggestion from Christopher Hart
6384 6386 (hart-AT-caltech.edu).
6385 6387
6386 6388 2002-04-12 Fernando Perez <fperez@colorado.edu>
6387 6389
6388 6390 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
6389 6391 the exception handlers defined by the user (not the CrashHandler)
6390 6392 so that user exceptions don't trigger an ipython bug report.
6391 6393
6392 6394 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
6393 6395 configurable (it should have always been so).
6394 6396
6395 6397 2002-03-26 Fernando Perez <fperez@colorado.edu>
6396 6398
6397 6399 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
6398 6400 and there to fix embedding namespace issues. This should all be
6399 6401 done in a more elegant way.
6400 6402
6401 6403 2002-03-25 Fernando Perez <fperez@colorado.edu>
6402 6404
6403 6405 * IPython/genutils.py (get_home_dir): Try to make it work under
6404 6406 win9x also.
6405 6407
6406 6408 2002-03-20 Fernando Perez <fperez@colorado.edu>
6407 6409
6408 6410 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
6409 6411 sys.displayhook untouched upon __init__.
6410 6412
6411 6413 2002-03-19 Fernando Perez <fperez@colorado.edu>
6412 6414
6413 6415 * Released 0.2.9 (for embedding bug, basically).
6414 6416
6415 6417 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
6416 6418 exceptions so that enclosing shell's state can be restored.
6417 6419
6418 6420 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
6419 6421 naming conventions in the .ipython/ dir.
6420 6422
6421 6423 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
6422 6424 from delimiters list so filenames with - in them get expanded.
6423 6425
6424 6426 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
6425 6427 sys.displayhook not being properly restored after an embedded call.
6426 6428
6427 6429 2002-03-18 Fernando Perez <fperez@colorado.edu>
6428 6430
6429 6431 * Released 0.2.8
6430 6432
6431 6433 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
6432 6434 some files weren't being included in a -upgrade.
6433 6435 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
6434 6436 on' so that the first tab completes.
6435 6437 (InteractiveShell.handle_magic): fixed bug with spaces around
6436 6438 quotes breaking many magic commands.
6437 6439
6438 6440 * setup.py: added note about ignoring the syntax error messages at
6439 6441 installation.
6440 6442
6441 6443 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
6442 6444 streamlining the gnuplot interface, now there's only one magic @gp.
6443 6445
6444 6446 2002-03-17 Fernando Perez <fperez@colorado.edu>
6445 6447
6446 6448 * IPython/UserConfig/magic_gnuplot.py: new name for the
6447 6449 example-magic_pm.py file. Much enhanced system, now with a shell
6448 6450 for communicating directly with gnuplot, one command at a time.
6449 6451
6450 6452 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
6451 6453 setting __name__=='__main__'.
6452 6454
6453 6455 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
6454 6456 mini-shell for accessing gnuplot from inside ipython. Should
6455 6457 extend it later for grace access too. Inspired by Arnd's
6456 6458 suggestion.
6457 6459
6458 6460 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
6459 6461 calling magic functions with () in their arguments. Thanks to Arnd
6460 6462 Baecker for pointing this to me.
6461 6463
6462 6464 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
6463 6465 infinitely for integer or complex arrays (only worked with floats).
6464 6466
6465 6467 2002-03-16 Fernando Perez <fperez@colorado.edu>
6466 6468
6467 6469 * setup.py: Merged setup and setup_windows into a single script
6468 6470 which properly handles things for windows users.
6469 6471
6470 6472 2002-03-15 Fernando Perez <fperez@colorado.edu>
6471 6473
6472 6474 * Big change to the manual: now the magics are all automatically
6473 6475 documented. This information is generated from their docstrings
6474 6476 and put in a latex file included by the manual lyx file. This way
6475 6477 we get always up to date information for the magics. The manual
6476 6478 now also has proper version information, also auto-synced.
6477 6479
6478 6480 For this to work, an undocumented --magic_docstrings option was added.
6479 6481
6480 6482 2002-03-13 Fernando Perez <fperez@colorado.edu>
6481 6483
6482 6484 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
6483 6485 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
6484 6486
6485 6487 2002-03-12 Fernando Perez <fperez@colorado.edu>
6486 6488
6487 6489 * IPython/ultraTB.py (TermColors): changed color escapes again to
6488 6490 fix the (old, reintroduced) line-wrapping bug. Basically, if
6489 6491 \001..\002 aren't given in the color escapes, lines get wrapped
6490 6492 weirdly. But giving those screws up old xterms and emacs terms. So
6491 6493 I added some logic for emacs terms to be ok, but I can't identify old
6492 6494 xterms separately ($TERM=='xterm' for many terminals, like konsole).
6493 6495
6494 6496 2002-03-10 Fernando Perez <fperez@colorado.edu>
6495 6497
6496 6498 * IPython/usage.py (__doc__): Various documentation cleanups and
6497 6499 updates, both in usage docstrings and in the manual.
6498 6500
6499 6501 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
6500 6502 handling of caching. Set minimum acceptabe value for having a
6501 6503 cache at 20 values.
6502 6504
6503 6505 * IPython/iplib.py (InteractiveShell.user_setup): moved the
6504 6506 install_first_time function to a method, renamed it and added an
6505 6507 'upgrade' mode. Now people can update their config directory with
6506 6508 a simple command line switch (-upgrade, also new).
6507 6509
6508 6510 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
6509 6511 @file (convenient for automagic users under Python >= 2.2).
6510 6512 Removed @files (it seemed more like a plural than an abbrev. of
6511 6513 'file show').
6512 6514
6513 6515 * IPython/iplib.py (install_first_time): Fixed crash if there were
6514 6516 backup files ('~') in .ipython/ install directory.
6515 6517
6516 6518 * IPython/ipmaker.py (make_IPython): fixes for new prompt
6517 6519 system. Things look fine, but these changes are fairly
6518 6520 intrusive. Test them for a few days.
6519 6521
6520 6522 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
6521 6523 the prompts system. Now all in/out prompt strings are user
6522 6524 controllable. This is particularly useful for embedding, as one
6523 6525 can tag embedded instances with particular prompts.
6524 6526
6525 6527 Also removed global use of sys.ps1/2, which now allows nested
6526 6528 embeddings without any problems. Added command-line options for
6527 6529 the prompt strings.
6528 6530
6529 6531 2002-03-08 Fernando Perez <fperez@colorado.edu>
6530 6532
6531 6533 * IPython/UserConfig/example-embed-short.py (ipshell): added
6532 6534 example file with the bare minimum code for embedding.
6533 6535
6534 6536 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
6535 6537 functionality for the embeddable shell to be activated/deactivated
6536 6538 either globally or at each call.
6537 6539
6538 6540 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
6539 6541 rewriting the prompt with '--->' for auto-inputs with proper
6540 6542 coloring. Now the previous UGLY hack in handle_auto() is gone, and
6541 6543 this is handled by the prompts class itself, as it should.
6542 6544
6543 6545 2002-03-05 Fernando Perez <fperez@colorado.edu>
6544 6546
6545 6547 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
6546 6548 @logstart to avoid name clashes with the math log function.
6547 6549
6548 6550 * Big updates to X/Emacs section of the manual.
6549 6551
6550 6552 * Removed ipython_emacs. Milan explained to me how to pass
6551 6553 arguments to ipython through Emacs. Some day I'm going to end up
6552 6554 learning some lisp...
6553 6555
6554 6556 2002-03-04 Fernando Perez <fperez@colorado.edu>
6555 6557
6556 6558 * IPython/ipython_emacs: Created script to be used as the
6557 6559 py-python-command Emacs variable so we can pass IPython
6558 6560 parameters. I can't figure out how to tell Emacs directly to pass
6559 6561 parameters to IPython, so a dummy shell script will do it.
6560 6562
6561 6563 Other enhancements made for things to work better under Emacs'
6562 6564 various types of terminals. Many thanks to Milan Zamazal
6563 6565 <pdm-AT-zamazal.org> for all the suggestions and pointers.
6564 6566
6565 6567 2002-03-01 Fernando Perez <fperez@colorado.edu>
6566 6568
6567 6569 * IPython/ipmaker.py (make_IPython): added a --readline! option so
6568 6570 that loading of readline is now optional. This gives better
6569 6571 control to emacs users.
6570 6572
6571 6573 * IPython/ultraTB.py (__date__): Modified color escape sequences
6572 6574 and now things work fine under xterm and in Emacs' term buffers
6573 6575 (though not shell ones). Well, in emacs you get colors, but all
6574 6576 seem to be 'light' colors (no difference between dark and light
6575 6577 ones). But the garbage chars are gone, and also in xterms. It
6576 6578 seems that now I'm using 'cleaner' ansi sequences.
6577 6579
6578 6580 2002-02-21 Fernando Perez <fperez@colorado.edu>
6579 6581
6580 6582 * Released 0.2.7 (mainly to publish the scoping fix).
6581 6583
6582 6584 * IPython/Logger.py (Logger.logstate): added. A corresponding
6583 6585 @logstate magic was created.
6584 6586
6585 6587 * IPython/Magic.py: fixed nested scoping problem under Python
6586 6588 2.1.x (automagic wasn't working).
6587 6589
6588 6590 2002-02-20 Fernando Perez <fperez@colorado.edu>
6589 6591
6590 6592 * Released 0.2.6.
6591 6593
6592 6594 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
6593 6595 option so that logs can come out without any headers at all.
6594 6596
6595 6597 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
6596 6598 SciPy.
6597 6599
6598 6600 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
6599 6601 that embedded IPython calls don't require vars() to be explicitly
6600 6602 passed. Now they are extracted from the caller's frame (code
6601 6603 snatched from Eric Jones' weave). Added better documentation to
6602 6604 the section on embedding and the example file.
6603 6605
6604 6606 * IPython/genutils.py (page): Changed so that under emacs, it just
6605 6607 prints the string. You can then page up and down in the emacs
6606 6608 buffer itself. This is how the builtin help() works.
6607 6609
6608 6610 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
6609 6611 macro scoping: macros need to be executed in the user's namespace
6610 6612 to work as if they had been typed by the user.
6611 6613
6612 6614 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6613 6615 execute automatically (no need to type 'exec...'). They then
6614 6616 behave like 'true macros'. The printing system was also modified
6615 6617 for this to work.
6616 6618
6617 6619 2002-02-19 Fernando Perez <fperez@colorado.edu>
6618 6620
6619 6621 * IPython/genutils.py (page_file): new function for paging files
6620 6622 in an OS-independent way. Also necessary for file viewing to work
6621 6623 well inside Emacs buffers.
6622 6624 (page): Added checks for being in an emacs buffer.
6623 6625 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6624 6626 same bug in iplib.
6625 6627
6626 6628 2002-02-18 Fernando Perez <fperez@colorado.edu>
6627 6629
6628 6630 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6629 6631 of readline so that IPython can work inside an Emacs buffer.
6630 6632
6631 6633 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6632 6634 method signatures (they weren't really bugs, but it looks cleaner
6633 6635 and keeps PyChecker happy).
6634 6636
6635 6637 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6636 6638 for implementing various user-defined hooks. Currently only
6637 6639 display is done.
6638 6640
6639 6641 * IPython/Prompts.py (CachedOutput._display): changed display
6640 6642 functions so that they can be dynamically changed by users easily.
6641 6643
6642 6644 * IPython/Extensions/numeric_formats.py (num_display): added an
6643 6645 extension for printing NumPy arrays in flexible manners. It
6644 6646 doesn't do anything yet, but all the structure is in
6645 6647 place. Ultimately the plan is to implement output format control
6646 6648 like in Octave.
6647 6649
6648 6650 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6649 6651 methods are found at run-time by all the automatic machinery.
6650 6652
6651 6653 2002-02-17 Fernando Perez <fperez@colorado.edu>
6652 6654
6653 6655 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6654 6656 whole file a little.
6655 6657
6656 6658 * ToDo: closed this document. Now there's a new_design.lyx
6657 6659 document for all new ideas. Added making a pdf of it for the
6658 6660 end-user distro.
6659 6661
6660 6662 * IPython/Logger.py (Logger.switch_log): Created this to replace
6661 6663 logon() and logoff(). It also fixes a nasty crash reported by
6662 6664 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6663 6665
6664 6666 * IPython/iplib.py (complete): got auto-completion to work with
6665 6667 automagic (I had wanted this for a long time).
6666 6668
6667 6669 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6668 6670 to @file, since file() is now a builtin and clashes with automagic
6669 6671 for @file.
6670 6672
6671 6673 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6672 6674 of this was previously in iplib, which had grown to more than 2000
6673 6675 lines, way too long. No new functionality, but it makes managing
6674 6676 the code a bit easier.
6675 6677
6676 6678 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6677 6679 information to crash reports.
6678 6680
6679 6681 2002-02-12 Fernando Perez <fperez@colorado.edu>
6680 6682
6681 6683 * Released 0.2.5.
6682 6684
6683 6685 2002-02-11 Fernando Perez <fperez@colorado.edu>
6684 6686
6685 6687 * Wrote a relatively complete Windows installer. It puts
6686 6688 everything in place, creates Start Menu entries and fixes the
6687 6689 color issues. Nothing fancy, but it works.
6688 6690
6689 6691 2002-02-10 Fernando Perez <fperez@colorado.edu>
6690 6692
6691 6693 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6692 6694 os.path.expanduser() call so that we can type @run ~/myfile.py and
6693 6695 have thigs work as expected.
6694 6696
6695 6697 * IPython/genutils.py (page): fixed exception handling so things
6696 6698 work both in Unix and Windows correctly. Quitting a pager triggers
6697 6699 an IOError/broken pipe in Unix, and in windows not finding a pager
6698 6700 is also an IOError, so I had to actually look at the return value
6699 6701 of the exception, not just the exception itself. Should be ok now.
6700 6702
6701 6703 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6702 6704 modified to allow case-insensitive color scheme changes.
6703 6705
6704 6706 2002-02-09 Fernando Perez <fperez@colorado.edu>
6705 6707
6706 6708 * IPython/genutils.py (native_line_ends): new function to leave
6707 6709 user config files with os-native line-endings.
6708 6710
6709 6711 * README and manual updates.
6710 6712
6711 6713 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6712 6714 instead of StringType to catch Unicode strings.
6713 6715
6714 6716 * IPython/genutils.py (filefind): fixed bug for paths with
6715 6717 embedded spaces (very common in Windows).
6716 6718
6717 6719 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6718 6720 files under Windows, so that they get automatically associated
6719 6721 with a text editor. Windows makes it a pain to handle
6720 6722 extension-less files.
6721 6723
6722 6724 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6723 6725 warning about readline only occur for Posix. In Windows there's no
6724 6726 way to get readline, so why bother with the warning.
6725 6727
6726 6728 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6727 6729 for __str__ instead of dir(self), since dir() changed in 2.2.
6728 6730
6729 6731 * Ported to Windows! Tested on XP, I suspect it should work fine
6730 6732 on NT/2000, but I don't think it will work on 98 et al. That
6731 6733 series of Windows is such a piece of junk anyway that I won't try
6732 6734 porting it there. The XP port was straightforward, showed a few
6733 6735 bugs here and there (fixed all), in particular some string
6734 6736 handling stuff which required considering Unicode strings (which
6735 6737 Windows uses). This is good, but hasn't been too tested :) No
6736 6738 fancy installer yet, I'll put a note in the manual so people at
6737 6739 least make manually a shortcut.
6738 6740
6739 6741 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6740 6742 into a single one, "colors". This now controls both prompt and
6741 6743 exception color schemes, and can be changed both at startup
6742 6744 (either via command-line switches or via ipythonrc files) and at
6743 6745 runtime, with @colors.
6744 6746 (Magic.magic_run): renamed @prun to @run and removed the old
6745 6747 @run. The two were too similar to warrant keeping both.
6746 6748
6747 6749 2002-02-03 Fernando Perez <fperez@colorado.edu>
6748 6750
6749 6751 * IPython/iplib.py (install_first_time): Added comment on how to
6750 6752 configure the color options for first-time users. Put a <return>
6751 6753 request at the end so that small-terminal users get a chance to
6752 6754 read the startup info.
6753 6755
6754 6756 2002-01-23 Fernando Perez <fperez@colorado.edu>
6755 6757
6756 6758 * IPython/iplib.py (CachedOutput.update): Changed output memory
6757 6759 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6758 6760 input history we still use _i. Did this b/c these variable are
6759 6761 very commonly used in interactive work, so the less we need to
6760 6762 type the better off we are.
6761 6763 (Magic.magic_prun): updated @prun to better handle the namespaces
6762 6764 the file will run in, including a fix for __name__ not being set
6763 6765 before.
6764 6766
6765 6767 2002-01-20 Fernando Perez <fperez@colorado.edu>
6766 6768
6767 6769 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6768 6770 extra garbage for Python 2.2. Need to look more carefully into
6769 6771 this later.
6770 6772
6771 6773 2002-01-19 Fernando Perez <fperez@colorado.edu>
6772 6774
6773 6775 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6774 6776 display SyntaxError exceptions properly formatted when they occur
6775 6777 (they can be triggered by imported code).
6776 6778
6777 6779 2002-01-18 Fernando Perez <fperez@colorado.edu>
6778 6780
6779 6781 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6780 6782 SyntaxError exceptions are reported nicely formatted, instead of
6781 6783 spitting out only offset information as before.
6782 6784 (Magic.magic_prun): Added the @prun function for executing
6783 6785 programs with command line args inside IPython.
6784 6786
6785 6787 2002-01-16 Fernando Perez <fperez@colorado.edu>
6786 6788
6787 6789 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6788 6790 to *not* include the last item given in a range. This brings their
6789 6791 behavior in line with Python's slicing:
6790 6792 a[n1:n2] -> a[n1]...a[n2-1]
6791 6793 It may be a bit less convenient, but I prefer to stick to Python's
6792 6794 conventions *everywhere*, so users never have to wonder.
6793 6795 (Magic.magic_macro): Added @macro function to ease the creation of
6794 6796 macros.
6795 6797
6796 6798 2002-01-05 Fernando Perez <fperez@colorado.edu>
6797 6799
6798 6800 * Released 0.2.4.
6799 6801
6800 6802 * IPython/iplib.py (Magic.magic_pdef):
6801 6803 (InteractiveShell.safe_execfile): report magic lines and error
6802 6804 lines without line numbers so one can easily copy/paste them for
6803 6805 re-execution.
6804 6806
6805 6807 * Updated manual with recent changes.
6806 6808
6807 6809 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6808 6810 docstring printing when class? is called. Very handy for knowing
6809 6811 how to create class instances (as long as __init__ is well
6810 6812 documented, of course :)
6811 6813 (Magic.magic_doc): print both class and constructor docstrings.
6812 6814 (Magic.magic_pdef): give constructor info if passed a class and
6813 6815 __call__ info for callable object instances.
6814 6816
6815 6817 2002-01-04 Fernando Perez <fperez@colorado.edu>
6816 6818
6817 6819 * Made deep_reload() off by default. It doesn't always work
6818 6820 exactly as intended, so it's probably safer to have it off. It's
6819 6821 still available as dreload() anyway, so nothing is lost.
6820 6822
6821 6823 2002-01-02 Fernando Perez <fperez@colorado.edu>
6822 6824
6823 6825 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6824 6826 so I wanted an updated release).
6825 6827
6826 6828 2001-12-27 Fernando Perez <fperez@colorado.edu>
6827 6829
6828 6830 * IPython/iplib.py (InteractiveShell.interact): Added the original
6829 6831 code from 'code.py' for this module in order to change the
6830 6832 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6831 6833 the history cache would break when the user hit Ctrl-C, and
6832 6834 interact() offers no way to add any hooks to it.
6833 6835
6834 6836 2001-12-23 Fernando Perez <fperez@colorado.edu>
6835 6837
6836 6838 * setup.py: added check for 'MANIFEST' before trying to remove
6837 6839 it. Thanks to Sean Reifschneider.
6838 6840
6839 6841 2001-12-22 Fernando Perez <fperez@colorado.edu>
6840 6842
6841 6843 * Released 0.2.2.
6842 6844
6843 6845 * Finished (reasonably) writing the manual. Later will add the
6844 6846 python-standard navigation stylesheets, but for the time being
6845 6847 it's fairly complete. Distribution will include html and pdf
6846 6848 versions.
6847 6849
6848 6850 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6849 6851 (MayaVi author).
6850 6852
6851 6853 2001-12-21 Fernando Perez <fperez@colorado.edu>
6852 6854
6853 6855 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6854 6856 good public release, I think (with the manual and the distutils
6855 6857 installer). The manual can use some work, but that can go
6856 6858 slowly. Otherwise I think it's quite nice for end users. Next
6857 6859 summer, rewrite the guts of it...
6858 6860
6859 6861 * Changed format of ipythonrc files to use whitespace as the
6860 6862 separator instead of an explicit '='. Cleaner.
6861 6863
6862 6864 2001-12-20 Fernando Perez <fperez@colorado.edu>
6863 6865
6864 6866 * Started a manual in LyX. For now it's just a quick merge of the
6865 6867 various internal docstrings and READMEs. Later it may grow into a
6866 6868 nice, full-blown manual.
6867 6869
6868 6870 * Set up a distutils based installer. Installation should now be
6869 6871 trivially simple for end-users.
6870 6872
6871 6873 2001-12-11 Fernando Perez <fperez@colorado.edu>
6872 6874
6873 6875 * Released 0.2.0. First public release, announced it at
6874 6876 comp.lang.python. From now on, just bugfixes...
6875 6877
6876 6878 * Went through all the files, set copyright/license notices and
6877 6879 cleaned up things. Ready for release.
6878 6880
6879 6881 2001-12-10 Fernando Perez <fperez@colorado.edu>
6880 6882
6881 6883 * Changed the first-time installer not to use tarfiles. It's more
6882 6884 robust now and less unix-dependent. Also makes it easier for
6883 6885 people to later upgrade versions.
6884 6886
6885 6887 * Changed @exit to @abort to reflect the fact that it's pretty
6886 6888 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6887 6889 becomes significant only when IPyhton is embedded: in that case,
6888 6890 C-D closes IPython only, but @abort kills the enclosing program
6889 6891 too (unless it had called IPython inside a try catching
6890 6892 SystemExit).
6891 6893
6892 6894 * Created Shell module which exposes the actuall IPython Shell
6893 6895 classes, currently the normal and the embeddable one. This at
6894 6896 least offers a stable interface we won't need to change when
6895 6897 (later) the internals are rewritten. That rewrite will be confined
6896 6898 to iplib and ipmaker, but the Shell interface should remain as is.
6897 6899
6898 6900 * Added embed module which offers an embeddable IPShell object,
6899 6901 useful to fire up IPython *inside* a running program. Great for
6900 6902 debugging or dynamical data analysis.
6901 6903
6902 6904 2001-12-08 Fernando Perez <fperez@colorado.edu>
6903 6905
6904 6906 * Fixed small bug preventing seeing info from methods of defined
6905 6907 objects (incorrect namespace in _ofind()).
6906 6908
6907 6909 * Documentation cleanup. Moved the main usage docstrings to a
6908 6910 separate file, usage.py (cleaner to maintain, and hopefully in the
6909 6911 future some perlpod-like way of producing interactive, man and
6910 6912 html docs out of it will be found).
6911 6913
6912 6914 * Added @profile to see your profile at any time.
6913 6915
6914 6916 * Added @p as an alias for 'print'. It's especially convenient if
6915 6917 using automagic ('p x' prints x).
6916 6918
6917 6919 * Small cleanups and fixes after a pychecker run.
6918 6920
6919 6921 * Changed the @cd command to handle @cd - and @cd -<n> for
6920 6922 visiting any directory in _dh.
6921 6923
6922 6924 * Introduced _dh, a history of visited directories. @dhist prints
6923 6925 it out with numbers.
6924 6926
6925 6927 2001-12-07 Fernando Perez <fperez@colorado.edu>
6926 6928
6927 6929 * Released 0.1.22
6928 6930
6929 6931 * Made initialization a bit more robust against invalid color
6930 6932 options in user input (exit, not traceback-crash).
6931 6933
6932 6934 * Changed the bug crash reporter to write the report only in the
6933 6935 user's .ipython directory. That way IPython won't litter people's
6934 6936 hard disks with crash files all over the place. Also print on
6935 6937 screen the necessary mail command.
6936 6938
6937 6939 * With the new ultraTB, implemented LightBG color scheme for light
6938 6940 background terminals. A lot of people like white backgrounds, so I
6939 6941 guess we should at least give them something readable.
6940 6942
6941 6943 2001-12-06 Fernando Perez <fperez@colorado.edu>
6942 6944
6943 6945 * Modified the structure of ultraTB. Now there's a proper class
6944 6946 for tables of color schemes which allow adding schemes easily and
6945 6947 switching the active scheme without creating a new instance every
6946 6948 time (which was ridiculous). The syntax for creating new schemes
6947 6949 is also cleaner. I think ultraTB is finally done, with a clean
6948 6950 class structure. Names are also much cleaner (now there's proper
6949 6951 color tables, no need for every variable to also have 'color' in
6950 6952 its name).
6951 6953
6952 6954 * Broke down genutils into separate files. Now genutils only
6953 6955 contains utility functions, and classes have been moved to their
6954 6956 own files (they had enough independent functionality to warrant
6955 6957 it): ConfigLoader, OutputTrap, Struct.
6956 6958
6957 6959 2001-12-05 Fernando Perez <fperez@colorado.edu>
6958 6960
6959 6961 * IPython turns 21! Released version 0.1.21, as a candidate for
6960 6962 public consumption. If all goes well, release in a few days.
6961 6963
6962 6964 * Fixed path bug (files in Extensions/ directory wouldn't be found
6963 6965 unless IPython/ was explicitly in sys.path).
6964 6966
6965 6967 * Extended the FlexCompleter class as MagicCompleter to allow
6966 6968 completion of @-starting lines.
6967 6969
6968 6970 * Created __release__.py file as a central repository for release
6969 6971 info that other files can read from.
6970 6972
6971 6973 * Fixed small bug in logging: when logging was turned on in
6972 6974 mid-session, old lines with special meanings (!@?) were being
6973 6975 logged without the prepended comment, which is necessary since
6974 6976 they are not truly valid python syntax. This should make session
6975 6977 restores produce less errors.
6976 6978
6977 6979 * The namespace cleanup forced me to make a FlexCompleter class
6978 6980 which is nothing but a ripoff of rlcompleter, but with selectable
6979 6981 namespace (rlcompleter only works in __main__.__dict__). I'll try
6980 6982 to submit a note to the authors to see if this change can be
6981 6983 incorporated in future rlcompleter releases (Dec.6: done)
6982 6984
6983 6985 * More fixes to namespace handling. It was a mess! Now all
6984 6986 explicit references to __main__.__dict__ are gone (except when
6985 6987 really needed) and everything is handled through the namespace
6986 6988 dicts in the IPython instance. We seem to be getting somewhere
6987 6989 with this, finally...
6988 6990
6989 6991 * Small documentation updates.
6990 6992
6991 6993 * Created the Extensions directory under IPython (with an
6992 6994 __init__.py). Put the PhysicalQ stuff there. This directory should
6993 6995 be used for all special-purpose extensions.
6994 6996
6995 6997 * File renaming:
6996 6998 ipythonlib --> ipmaker
6997 6999 ipplib --> iplib
6998 7000 This makes a bit more sense in terms of what these files actually do.
6999 7001
7000 7002 * Moved all the classes and functions in ipythonlib to ipplib, so
7001 7003 now ipythonlib only has make_IPython(). This will ease up its
7002 7004 splitting in smaller functional chunks later.
7003 7005
7004 7006 * Cleaned up (done, I think) output of @whos. Better column
7005 7007 formatting, and now shows str(var) for as much as it can, which is
7006 7008 typically what one gets with a 'print var'.
7007 7009
7008 7010 2001-12-04 Fernando Perez <fperez@colorado.edu>
7009 7011
7010 7012 * Fixed namespace problems. Now builtin/IPyhton/user names get
7011 7013 properly reported in their namespace. Internal namespace handling
7012 7014 is finally getting decent (not perfect yet, but much better than
7013 7015 the ad-hoc mess we had).
7014 7016
7015 7017 * Removed -exit option. If people just want to run a python
7016 7018 script, that's what the normal interpreter is for. Less
7017 7019 unnecessary options, less chances for bugs.
7018 7020
7019 7021 * Added a crash handler which generates a complete post-mortem if
7020 7022 IPython crashes. This will help a lot in tracking bugs down the
7021 7023 road.
7022 7024
7023 7025 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
7024 7026 which were boud to functions being reassigned would bypass the
7025 7027 logger, breaking the sync of _il with the prompt counter. This
7026 7028 would then crash IPython later when a new line was logged.
7027 7029
7028 7030 2001-12-02 Fernando Perez <fperez@colorado.edu>
7029 7031
7030 7032 * Made IPython a package. This means people don't have to clutter
7031 7033 their sys.path with yet another directory. Changed the INSTALL
7032 7034 file accordingly.
7033 7035
7034 7036 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
7035 7037 sorts its output (so @who shows it sorted) and @whos formats the
7036 7038 table according to the width of the first column. Nicer, easier to
7037 7039 read. Todo: write a generic table_format() which takes a list of
7038 7040 lists and prints it nicely formatted, with optional row/column
7039 7041 separators and proper padding and justification.
7040 7042
7041 7043 * Released 0.1.20
7042 7044
7043 7045 * Fixed bug in @log which would reverse the inputcache list (a
7044 7046 copy operation was missing).
7045 7047
7046 7048 * Code cleanup. @config was changed to use page(). Better, since
7047 7049 its output is always quite long.
7048 7050
7049 7051 * Itpl is back as a dependency. I was having too many problems
7050 7052 getting the parametric aliases to work reliably, and it's just
7051 7053 easier to code weird string operations with it than playing %()s
7052 7054 games. It's only ~6k, so I don't think it's too big a deal.
7053 7055
7054 7056 * Found (and fixed) a very nasty bug with history. !lines weren't
7055 7057 getting cached, and the out of sync caches would crash
7056 7058 IPython. Fixed it by reorganizing the prefilter/handlers/logger
7057 7059 division of labor a bit better. Bug fixed, cleaner structure.
7058 7060
7059 7061 2001-12-01 Fernando Perez <fperez@colorado.edu>
7060 7062
7061 7063 * Released 0.1.19
7062 7064
7063 7065 * Added option -n to @hist to prevent line number printing. Much
7064 7066 easier to copy/paste code this way.
7065 7067
7066 7068 * Created global _il to hold the input list. Allows easy
7067 7069 re-execution of blocks of code by slicing it (inspired by Janko's
7068 7070 comment on 'macros').
7069 7071
7070 7072 * Small fixes and doc updates.
7071 7073
7072 7074 * Rewrote @history function (was @h). Renamed it to @hist, @h is
7073 7075 much too fragile with automagic. Handles properly multi-line
7074 7076 statements and takes parameters.
7075 7077
7076 7078 2001-11-30 Fernando Perez <fperez@colorado.edu>
7077 7079
7078 7080 * Version 0.1.18 released.
7079 7081
7080 7082 * Fixed nasty namespace bug in initial module imports.
7081 7083
7082 7084 * Added copyright/license notes to all code files (except
7083 7085 DPyGetOpt). For the time being, LGPL. That could change.
7084 7086
7085 7087 * Rewrote a much nicer README, updated INSTALL, cleaned up
7086 7088 ipythonrc-* samples.
7087 7089
7088 7090 * Overall code/documentation cleanup. Basically ready for
7089 7091 release. Only remaining thing: licence decision (LGPL?).
7090 7092
7091 7093 * Converted load_config to a class, ConfigLoader. Now recursion
7092 7094 control is better organized. Doesn't include the same file twice.
7093 7095
7094 7096 2001-11-29 Fernando Perez <fperez@colorado.edu>
7095 7097
7096 7098 * Got input history working. Changed output history variables from
7097 7099 _p to _o so that _i is for input and _o for output. Just cleaner
7098 7100 convention.
7099 7101
7100 7102 * Implemented parametric aliases. This pretty much allows the
7101 7103 alias system to offer full-blown shell convenience, I think.
7102 7104
7103 7105 * Version 0.1.17 released, 0.1.18 opened.
7104 7106
7105 7107 * dot_ipython/ipythonrc (alias): added documentation.
7106 7108 (xcolor): Fixed small bug (xcolors -> xcolor)
7107 7109
7108 7110 * Changed the alias system. Now alias is a magic command to define
7109 7111 aliases just like the shell. Rationale: the builtin magics should
7110 7112 be there for things deeply connected to IPython's
7111 7113 architecture. And this is a much lighter system for what I think
7112 7114 is the really important feature: allowing users to define quickly
7113 7115 magics that will do shell things for them, so they can customize
7114 7116 IPython easily to match their work habits. If someone is really
7115 7117 desperate to have another name for a builtin alias, they can
7116 7118 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
7117 7119 works.
7118 7120
7119 7121 2001-11-28 Fernando Perez <fperez@colorado.edu>
7120 7122
7121 7123 * Changed @file so that it opens the source file at the proper
7122 7124 line. Since it uses less, if your EDITOR environment is
7123 7125 configured, typing v will immediately open your editor of choice
7124 7126 right at the line where the object is defined. Not as quick as
7125 7127 having a direct @edit command, but for all intents and purposes it
7126 7128 works. And I don't have to worry about writing @edit to deal with
7127 7129 all the editors, less does that.
7128 7130
7129 7131 * Version 0.1.16 released, 0.1.17 opened.
7130 7132
7131 7133 * Fixed some nasty bugs in the page/page_dumb combo that could
7132 7134 crash IPython.
7133 7135
7134 7136 2001-11-27 Fernando Perez <fperez@colorado.edu>
7135 7137
7136 7138 * Version 0.1.15 released, 0.1.16 opened.
7137 7139
7138 7140 * Finally got ? and ?? to work for undefined things: now it's
7139 7141 possible to type {}.get? and get information about the get method
7140 7142 of dicts, or os.path? even if only os is defined (so technically
7141 7143 os.path isn't). Works at any level. For example, after import os,
7142 7144 os?, os.path?, os.path.abspath? all work. This is great, took some
7143 7145 work in _ofind.
7144 7146
7145 7147 * Fixed more bugs with logging. The sanest way to do it was to add
7146 7148 to @log a 'mode' parameter. Killed two in one shot (this mode
7147 7149 option was a request of Janko's). I think it's finally clean
7148 7150 (famous last words).
7149 7151
7150 7152 * Added a page_dumb() pager which does a decent job of paging on
7151 7153 screen, if better things (like less) aren't available. One less
7152 7154 unix dependency (someday maybe somebody will port this to
7153 7155 windows).
7154 7156
7155 7157 * Fixed problem in magic_log: would lock of logging out if log
7156 7158 creation failed (because it would still think it had succeeded).
7157 7159
7158 7160 * Improved the page() function using curses to auto-detect screen
7159 7161 size. Now it can make a much better decision on whether to print
7160 7162 or page a string. Option screen_length was modified: a value 0
7161 7163 means auto-detect, and that's the default now.
7162 7164
7163 7165 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
7164 7166 go out. I'll test it for a few days, then talk to Janko about
7165 7167 licences and announce it.
7166 7168
7167 7169 * Fixed the length of the auto-generated ---> prompt which appears
7168 7170 for auto-parens and auto-quotes. Getting this right isn't trivial,
7169 7171 with all the color escapes, different prompt types and optional
7170 7172 separators. But it seems to be working in all the combinations.
7171 7173
7172 7174 2001-11-26 Fernando Perez <fperez@colorado.edu>
7173 7175
7174 7176 * Wrote a regexp filter to get option types from the option names
7175 7177 string. This eliminates the need to manually keep two duplicate
7176 7178 lists.
7177 7179
7178 7180 * Removed the unneeded check_option_names. Now options are handled
7179 7181 in a much saner manner and it's easy to visually check that things
7180 7182 are ok.
7181 7183
7182 7184 * Updated version numbers on all files I modified to carry a
7183 7185 notice so Janko and Nathan have clear version markers.
7184 7186
7185 7187 * Updated docstring for ultraTB with my changes. I should send
7186 7188 this to Nathan.
7187 7189
7188 7190 * Lots of small fixes. Ran everything through pychecker again.
7189 7191
7190 7192 * Made loading of deep_reload an cmd line option. If it's not too
7191 7193 kosher, now people can just disable it. With -nodeep_reload it's
7192 7194 still available as dreload(), it just won't overwrite reload().
7193 7195
7194 7196 * Moved many options to the no| form (-opt and -noopt
7195 7197 accepted). Cleaner.
7196 7198
7197 7199 * Changed magic_log so that if called with no parameters, it uses
7198 7200 'rotate' mode. That way auto-generated logs aren't automatically
7199 7201 over-written. For normal logs, now a backup is made if it exists
7200 7202 (only 1 level of backups). A new 'backup' mode was added to the
7201 7203 Logger class to support this. This was a request by Janko.
7202 7204
7203 7205 * Added @logoff/@logon to stop/restart an active log.
7204 7206
7205 7207 * Fixed a lot of bugs in log saving/replay. It was pretty
7206 7208 broken. Now special lines (!@,/) appear properly in the command
7207 7209 history after a log replay.
7208 7210
7209 7211 * Tried and failed to implement full session saving via pickle. My
7210 7212 idea was to pickle __main__.__dict__, but modules can't be
7211 7213 pickled. This would be a better alternative to replaying logs, but
7212 7214 seems quite tricky to get to work. Changed -session to be called
7213 7215 -logplay, which more accurately reflects what it does. And if we
7214 7216 ever get real session saving working, -session is now available.
7215 7217
7216 7218 * Implemented color schemes for prompts also. As for tracebacks,
7217 7219 currently only NoColor and Linux are supported. But now the
7218 7220 infrastructure is in place, based on a generic ColorScheme
7219 7221 class. So writing and activating new schemes both for the prompts
7220 7222 and the tracebacks should be straightforward.
7221 7223
7222 7224 * Version 0.1.13 released, 0.1.14 opened.
7223 7225
7224 7226 * Changed handling of options for output cache. Now counter is
7225 7227 hardwired starting at 1 and one specifies the maximum number of
7226 7228 entries *in the outcache* (not the max prompt counter). This is
7227 7229 much better, since many statements won't increase the cache
7228 7230 count. It also eliminated some confusing options, now there's only
7229 7231 one: cache_size.
7230 7232
7231 7233 * Added 'alias' magic function and magic_alias option in the
7232 7234 ipythonrc file. Now the user can easily define whatever names he
7233 7235 wants for the magic functions without having to play weird
7234 7236 namespace games. This gives IPython a real shell-like feel.
7235 7237
7236 7238 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
7237 7239 @ or not).
7238 7240
7239 7241 This was one of the last remaining 'visible' bugs (that I know
7240 7242 of). I think if I can clean up the session loading so it works
7241 7243 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
7242 7244 about licensing).
7243 7245
7244 7246 2001-11-25 Fernando Perez <fperez@colorado.edu>
7245 7247
7246 7248 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
7247 7249 there's a cleaner distinction between what ? and ?? show.
7248 7250
7249 7251 * Added screen_length option. Now the user can define his own
7250 7252 screen size for page() operations.
7251 7253
7252 7254 * Implemented magic shell-like functions with automatic code
7253 7255 generation. Now adding another function is just a matter of adding
7254 7256 an entry to a dict, and the function is dynamically generated at
7255 7257 run-time. Python has some really cool features!
7256 7258
7257 7259 * Renamed many options to cleanup conventions a little. Now all
7258 7260 are lowercase, and only underscores where needed. Also in the code
7259 7261 option name tables are clearer.
7260 7262
7261 7263 * Changed prompts a little. Now input is 'In [n]:' instead of
7262 7264 'In[n]:='. This allows it the numbers to be aligned with the
7263 7265 Out[n] numbers, and removes usage of ':=' which doesn't exist in
7264 7266 Python (it was a Mathematica thing). The '...' continuation prompt
7265 7267 was also changed a little to align better.
7266 7268
7267 7269 * Fixed bug when flushing output cache. Not all _p<n> variables
7268 7270 exist, so their deletion needs to be wrapped in a try:
7269 7271
7270 7272 * Figured out how to properly use inspect.formatargspec() (it
7271 7273 requires the args preceded by *). So I removed all the code from
7272 7274 _get_pdef in Magic, which was just replicating that.
7273 7275
7274 7276 * Added test to prefilter to allow redefining magic function names
7275 7277 as variables. This is ok, since the @ form is always available,
7276 7278 but whe should allow the user to define a variable called 'ls' if
7277 7279 he needs it.
7278 7280
7279 7281 * Moved the ToDo information from README into a separate ToDo.
7280 7282
7281 7283 * General code cleanup and small bugfixes. I think it's close to a
7282 7284 state where it can be released, obviously with a big 'beta'
7283 7285 warning on it.
7284 7286
7285 7287 * Got the magic function split to work. Now all magics are defined
7286 7288 in a separate class. It just organizes things a bit, and now
7287 7289 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
7288 7290 was too long).
7289 7291
7290 7292 * Changed @clear to @reset to avoid potential confusions with
7291 7293 the shell command clear. Also renamed @cl to @clear, which does
7292 7294 exactly what people expect it to from their shell experience.
7293 7295
7294 7296 Added a check to the @reset command (since it's so
7295 7297 destructive, it's probably a good idea to ask for confirmation).
7296 7298 But now reset only works for full namespace resetting. Since the
7297 7299 del keyword is already there for deleting a few specific
7298 7300 variables, I don't see the point of having a redundant magic
7299 7301 function for the same task.
7300 7302
7301 7303 2001-11-24 Fernando Perez <fperez@colorado.edu>
7302 7304
7303 7305 * Updated the builtin docs (esp. the ? ones).
7304 7306
7305 7307 * Ran all the code through pychecker. Not terribly impressed with
7306 7308 it: lots of spurious warnings and didn't really find anything of
7307 7309 substance (just a few modules being imported and not used).
7308 7310
7309 7311 * Implemented the new ultraTB functionality into IPython. New
7310 7312 option: xcolors. This chooses color scheme. xmode now only selects
7311 7313 between Plain and Verbose. Better orthogonality.
7312 7314
7313 7315 * Large rewrite of ultraTB. Much cleaner now, with a separation of
7314 7316 mode and color scheme for the exception handlers. Now it's
7315 7317 possible to have the verbose traceback with no coloring.
7316 7318
7317 7319 2001-11-23 Fernando Perez <fperez@colorado.edu>
7318 7320
7319 7321 * Version 0.1.12 released, 0.1.13 opened.
7320 7322
7321 7323 * Removed option to set auto-quote and auto-paren escapes by
7322 7324 user. The chances of breaking valid syntax are just too high. If
7323 7325 someone *really* wants, they can always dig into the code.
7324 7326
7325 7327 * Made prompt separators configurable.
7326 7328
7327 7329 2001-11-22 Fernando Perez <fperez@colorado.edu>
7328 7330
7329 7331 * Small bugfixes in many places.
7330 7332
7331 7333 * Removed the MyCompleter class from ipplib. It seemed redundant
7332 7334 with the C-p,C-n history search functionality. Less code to
7333 7335 maintain.
7334 7336
7335 7337 * Moved all the original ipython.py code into ipythonlib.py. Right
7336 7338 now it's just one big dump into a function called make_IPython, so
7337 7339 no real modularity has been gained. But at least it makes the
7338 7340 wrapper script tiny, and since ipythonlib is a module, it gets
7339 7341 compiled and startup is much faster.
7340 7342
7341 7343 This is a reasobably 'deep' change, so we should test it for a
7342 7344 while without messing too much more with the code.
7343 7345
7344 7346 2001-11-21 Fernando Perez <fperez@colorado.edu>
7345 7347
7346 7348 * Version 0.1.11 released, 0.1.12 opened for further work.
7347 7349
7348 7350 * Removed dependency on Itpl. It was only needed in one place. It
7349 7351 would be nice if this became part of python, though. It makes life
7350 7352 *a lot* easier in some cases.
7351 7353
7352 7354 * Simplified the prefilter code a bit. Now all handlers are
7353 7355 expected to explicitly return a value (at least a blank string).
7354 7356
7355 7357 * Heavy edits in ipplib. Removed the help system altogether. Now
7356 7358 obj?/?? is used for inspecting objects, a magic @doc prints
7357 7359 docstrings, and full-blown Python help is accessed via the 'help'
7358 7360 keyword. This cleans up a lot of code (less to maintain) and does
7359 7361 the job. Since 'help' is now a standard Python component, might as
7360 7362 well use it and remove duplicate functionality.
7361 7363
7362 7364 Also removed the option to use ipplib as a standalone program. By
7363 7365 now it's too dependent on other parts of IPython to function alone.
7364 7366
7365 7367 * Fixed bug in genutils.pager. It would crash if the pager was
7366 7368 exited immediately after opening (broken pipe).
7367 7369
7368 7370 * Trimmed down the VerboseTB reporting a little. The header is
7369 7371 much shorter now and the repeated exception arguments at the end
7370 7372 have been removed. For interactive use the old header seemed a bit
7371 7373 excessive.
7372 7374
7373 7375 * Fixed small bug in output of @whos for variables with multi-word
7374 7376 types (only first word was displayed).
7375 7377
7376 7378 2001-11-17 Fernando Perez <fperez@colorado.edu>
7377 7379
7378 7380 * Version 0.1.10 released, 0.1.11 opened for further work.
7379 7381
7380 7382 * Modified dirs and friends. dirs now *returns* the stack (not
7381 7383 prints), so one can manipulate it as a variable. Convenient to
7382 7384 travel along many directories.
7383 7385
7384 7386 * Fixed bug in magic_pdef: would only work with functions with
7385 7387 arguments with default values.
7386 7388
7387 7389 2001-11-14 Fernando Perez <fperez@colorado.edu>
7388 7390
7389 7391 * Added the PhysicsInput stuff to dot_ipython so it ships as an
7390 7392 example with IPython. Various other minor fixes and cleanups.
7391 7393
7392 7394 * Version 0.1.9 released, 0.1.10 opened for further work.
7393 7395
7394 7396 * Added sys.path to the list of directories searched in the
7395 7397 execfile= option. It used to be the current directory and the
7396 7398 user's IPYTHONDIR only.
7397 7399
7398 7400 2001-11-13 Fernando Perez <fperez@colorado.edu>
7399 7401
7400 7402 * Reinstated the raw_input/prefilter separation that Janko had
7401 7403 initially. This gives a more convenient setup for extending the
7402 7404 pre-processor from the outside: raw_input always gets a string,
7403 7405 and prefilter has to process it. We can then redefine prefilter
7404 7406 from the outside and implement extensions for special
7405 7407 purposes.
7406 7408
7407 7409 Today I got one for inputting PhysicalQuantity objects
7408 7410 (from Scientific) without needing any function calls at
7409 7411 all. Extremely convenient, and it's all done as a user-level
7410 7412 extension (no IPython code was touched). Now instead of:
7411 7413 a = PhysicalQuantity(4.2,'m/s**2')
7412 7414 one can simply say
7413 7415 a = 4.2 m/s**2
7414 7416 or even
7415 7417 a = 4.2 m/s^2
7416 7418
7417 7419 I use this, but it's also a proof of concept: IPython really is
7418 7420 fully user-extensible, even at the level of the parsing of the
7419 7421 command line. It's not trivial, but it's perfectly doable.
7420 7422
7421 7423 * Added 'add_flip' method to inclusion conflict resolver. Fixes
7422 7424 the problem of modules being loaded in the inverse order in which
7423 7425 they were defined in
7424 7426
7425 7427 * Version 0.1.8 released, 0.1.9 opened for further work.
7426 7428
7427 7429 * Added magics pdef, source and file. They respectively show the
7428 7430 definition line ('prototype' in C), source code and full python
7429 7431 file for any callable object. The object inspector oinfo uses
7430 7432 these to show the same information.
7431 7433
7432 7434 * Version 0.1.7 released, 0.1.8 opened for further work.
7433 7435
7434 7436 * Separated all the magic functions into a class called Magic. The
7435 7437 InteractiveShell class was becoming too big for Xemacs to handle
7436 7438 (de-indenting a line would lock it up for 10 seconds while it
7437 7439 backtracked on the whole class!)
7438 7440
7439 7441 FIXME: didn't work. It can be done, but right now namespaces are
7440 7442 all messed up. Do it later (reverted it for now, so at least
7441 7443 everything works as before).
7442 7444
7443 7445 * Got the object introspection system (magic_oinfo) working! I
7444 7446 think this is pretty much ready for release to Janko, so he can
7445 7447 test it for a while and then announce it. Pretty much 100% of what
7446 7448 I wanted for the 'phase 1' release is ready. Happy, tired.
7447 7449
7448 7450 2001-11-12 Fernando Perez <fperez@colorado.edu>
7449 7451
7450 7452 * Version 0.1.6 released, 0.1.7 opened for further work.
7451 7453
7452 7454 * Fixed bug in printing: it used to test for truth before
7453 7455 printing, so 0 wouldn't print. Now checks for None.
7454 7456
7455 7457 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
7456 7458 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
7457 7459 reaches by hand into the outputcache. Think of a better way to do
7458 7460 this later.
7459 7461
7460 7462 * Various small fixes thanks to Nathan's comments.
7461 7463
7462 7464 * Changed magic_pprint to magic_Pprint. This way it doesn't
7463 7465 collide with pprint() and the name is consistent with the command
7464 7466 line option.
7465 7467
7466 7468 * Changed prompt counter behavior to be fully like
7467 7469 Mathematica's. That is, even input that doesn't return a result
7468 7470 raises the prompt counter. The old behavior was kind of confusing
7469 7471 (getting the same prompt number several times if the operation
7470 7472 didn't return a result).
7471 7473
7472 7474 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
7473 7475
7474 7476 * Fixed -Classic mode (wasn't working anymore).
7475 7477
7476 7478 * Added colored prompts using Nathan's new code. Colors are
7477 7479 currently hardwired, they can be user-configurable. For
7478 7480 developers, they can be chosen in file ipythonlib.py, at the
7479 7481 beginning of the CachedOutput class def.
7480 7482
7481 7483 2001-11-11 Fernando Perez <fperez@colorado.edu>
7482 7484
7483 7485 * Version 0.1.5 released, 0.1.6 opened for further work.
7484 7486
7485 7487 * Changed magic_env to *return* the environment as a dict (not to
7486 7488 print it). This way it prints, but it can also be processed.
7487 7489
7488 7490 * Added Verbose exception reporting to interactive
7489 7491 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
7490 7492 traceback. Had to make some changes to the ultraTB file. This is
7491 7493 probably the last 'big' thing in my mental todo list. This ties
7492 7494 in with the next entry:
7493 7495
7494 7496 * Changed -Xi and -Xf to a single -xmode option. Now all the user
7495 7497 has to specify is Plain, Color or Verbose for all exception
7496 7498 handling.
7497 7499
7498 7500 * Removed ShellServices option. All this can really be done via
7499 7501 the magic system. It's easier to extend, cleaner and has automatic
7500 7502 namespace protection and documentation.
7501 7503
7502 7504 2001-11-09 Fernando Perez <fperez@colorado.edu>
7503 7505
7504 7506 * Fixed bug in output cache flushing (missing parameter to
7505 7507 __init__). Other small bugs fixed (found using pychecker).
7506 7508
7507 7509 * Version 0.1.4 opened for bugfixing.
7508 7510
7509 7511 2001-11-07 Fernando Perez <fperez@colorado.edu>
7510 7512
7511 7513 * Version 0.1.3 released, mainly because of the raw_input bug.
7512 7514
7513 7515 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
7514 7516 and when testing for whether things were callable, a call could
7515 7517 actually be made to certain functions. They would get called again
7516 7518 once 'really' executed, with a resulting double call. A disaster
7517 7519 in many cases (list.reverse() would never work!).
7518 7520
7519 7521 * Removed prefilter() function, moved its code to raw_input (which
7520 7522 after all was just a near-empty caller for prefilter). This saves
7521 7523 a function call on every prompt, and simplifies the class a tiny bit.
7522 7524
7523 7525 * Fix _ip to __ip name in magic example file.
7524 7526
7525 7527 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
7526 7528 work with non-gnu versions of tar.
7527 7529
7528 7530 2001-11-06 Fernando Perez <fperez@colorado.edu>
7529 7531
7530 7532 * Version 0.1.2. Just to keep track of the recent changes.
7531 7533
7532 7534 * Fixed nasty bug in output prompt routine. It used to check 'if
7533 7535 arg != None...'. Problem is, this fails if arg implements a
7534 7536 special comparison (__cmp__) which disallows comparing to
7535 7537 None. Found it when trying to use the PhysicalQuantity module from
7536 7538 ScientificPython.
7537 7539
7538 7540 2001-11-05 Fernando Perez <fperez@colorado.edu>
7539 7541
7540 7542 * Also added dirs. Now the pushd/popd/dirs family functions
7541 7543 basically like the shell, with the added convenience of going home
7542 7544 when called with no args.
7543 7545
7544 7546 * pushd/popd slightly modified to mimic shell behavior more
7545 7547 closely.
7546 7548
7547 7549 * Added env,pushd,popd from ShellServices as magic functions. I
7548 7550 think the cleanest will be to port all desired functions from
7549 7551 ShellServices as magics and remove ShellServices altogether. This
7550 7552 will provide a single, clean way of adding functionality
7551 7553 (shell-type or otherwise) to IP.
7552 7554
7553 7555 2001-11-04 Fernando Perez <fperez@colorado.edu>
7554 7556
7555 7557 * Added .ipython/ directory to sys.path. This way users can keep
7556 7558 customizations there and access them via import.
7557 7559
7558 7560 2001-11-03 Fernando Perez <fperez@colorado.edu>
7559 7561
7560 7562 * Opened version 0.1.1 for new changes.
7561 7563
7562 7564 * Changed version number to 0.1.0: first 'public' release, sent to
7563 7565 Nathan and Janko.
7564 7566
7565 7567 * Lots of small fixes and tweaks.
7566 7568
7567 7569 * Minor changes to whos format. Now strings are shown, snipped if
7568 7570 too long.
7569 7571
7570 7572 * Changed ShellServices to work on __main__ so they show up in @who
7571 7573
7572 7574 * Help also works with ? at the end of a line:
7573 7575 ?sin and sin?
7574 7576 both produce the same effect. This is nice, as often I use the
7575 7577 tab-complete to find the name of a method, but I used to then have
7576 7578 to go to the beginning of the line to put a ? if I wanted more
7577 7579 info. Now I can just add the ? and hit return. Convenient.
7578 7580
7579 7581 2001-11-02 Fernando Perez <fperez@colorado.edu>
7580 7582
7581 7583 * Python version check (>=2.1) added.
7582 7584
7583 7585 * Added LazyPython documentation. At this point the docs are quite
7584 7586 a mess. A cleanup is in order.
7585 7587
7586 7588 * Auto-installer created. For some bizarre reason, the zipfiles
7587 7589 module isn't working on my system. So I made a tar version
7588 7590 (hopefully the command line options in various systems won't kill
7589 7591 me).
7590 7592
7591 7593 * Fixes to Struct in genutils. Now all dictionary-like methods are
7592 7594 protected (reasonably).
7593 7595
7594 7596 * Added pager function to genutils and changed ? to print usage
7595 7597 note through it (it was too long).
7596 7598
7597 7599 * Added the LazyPython functionality. Works great! I changed the
7598 7600 auto-quote escape to ';', it's on home row and next to '. But
7599 7601 both auto-quote and auto-paren (still /) escapes are command-line
7600 7602 parameters.
7601 7603
7602 7604
7603 7605 2001-11-01 Fernando Perez <fperez@colorado.edu>
7604 7606
7605 7607 * Version changed to 0.0.7. Fairly large change: configuration now
7606 7608 is all stored in a directory, by default .ipython. There, all
7607 7609 config files have normal looking names (not .names)
7608 7610
7609 7611 * Version 0.0.6 Released first to Lucas and Archie as a test
7610 7612 run. Since it's the first 'semi-public' release, change version to
7611 7613 > 0.0.6 for any changes now.
7612 7614
7613 7615 * Stuff I had put in the ipplib.py changelog:
7614 7616
7615 7617 Changes to InteractiveShell:
7616 7618
7617 7619 - Made the usage message a parameter.
7618 7620
7619 7621 - Require the name of the shell variable to be given. It's a bit
7620 7622 of a hack, but allows the name 'shell' not to be hardwired in the
7621 7623 magic (@) handler, which is problematic b/c it requires
7622 7624 polluting the global namespace with 'shell'. This in turn is
7623 7625 fragile: if a user redefines a variable called shell, things
7624 7626 break.
7625 7627
7626 7628 - magic @: all functions available through @ need to be defined
7627 7629 as magic_<name>, even though they can be called simply as
7628 7630 @<name>. This allows the special command @magic to gather
7629 7631 information automatically about all existing magic functions,
7630 7632 even if they are run-time user extensions, by parsing the shell
7631 7633 instance __dict__ looking for special magic_ names.
7632 7634
7633 7635 - mainloop: added *two* local namespace parameters. This allows
7634 7636 the class to differentiate between parameters which were there
7635 7637 before and after command line initialization was processed. This
7636 7638 way, later @who can show things loaded at startup by the
7637 7639 user. This trick was necessary to make session saving/reloading
7638 7640 really work: ideally after saving/exiting/reloading a session,
7639 7641 *everything* should look the same, including the output of @who. I
7640 7642 was only able to make this work with this double namespace
7641 7643 trick.
7642 7644
7643 7645 - added a header to the logfile which allows (almost) full
7644 7646 session restoring.
7645 7647
7646 7648 - prepend lines beginning with @ or !, with a and log
7647 7649 them. Why? !lines: may be useful to know what you did @lines:
7648 7650 they may affect session state. So when restoring a session, at
7649 7651 least inform the user of their presence. I couldn't quite get
7650 7652 them to properly re-execute, but at least the user is warned.
7651 7653
7652 7654 * Started ChangeLog.
@@ -1,101 +1,101 b''
1 1 #!/bin/sh
2 2 # IPython release script
3 3
4 4 PYVER=`python -V 2>&1 | awk '{print $2}' | awk -F '.' '{print $1$2}' `
5 5 version=`ipython -Version`
6 6 ipdir=~/ipython/ipython
7 7 ipbackupdir=~/ipython/backup
8 8
9 9 echo
10 10 echo "Releasing IPython version $version"
11 11 echo "=================================="
12 12
13 13 echo "Marking ChangeLog with release information and making NEWS file..."
14 14
15 15 # Stamp changelog and save a copy of the status at each version, in case later
16 16 # we want the NEWS file to start from a point before the very last release (if
17 17 # very small interim releases have no significant changes).
18 18
19 19 cd $ipdir/doc
20 20 cp ChangeLog ChangeLog.old
21 21 cp ChangeLog ChangeLog.$version
22 22 daystamp=`date +%Y-%m-%d`
23 23 echo $daystamp " ***" Released version $version > ChangeLog
24 24 echo >> ChangeLog
25 25 cat ChangeLog.old >> ChangeLog
26 26 rm ChangeLog.old
27 27
28 28 # Build NEWS file
29 29 echo "Changes between the last two releases (major or minor)" > NEWS
30 30 echo "Note that this is an auto-generated diff of the ChangeLogs" >> NEWS
31 31 echo >> NEWS
32 32 diff ChangeLog.previous ChangeLog | grep -v '^0a' | sed 's/^> //g' >> NEWS
33 33 cp ChangeLog ChangeLog.previous
34 34
35 35 # Clean up build/dist directories
36 36 rm -rf $ipdir/build/*
37 37 rm -rf $ipdir/dist/*
38 38
39 39 # Perform local backup
40 40 cd $ipdir/tools
41 41 ./make_tarball.py
42 42 mv ipython-*.tgz $ipbackupdir
43 43
44 44 # Build source and binary distros
45 45 cd $ipdir
46 46 ./setup.py sdist --formats=gztar
47 47
48 48 # Build version-specific RPMs, where we must use the --python option to ensure
49 49 # that the resulting RPM is really built with the requested python version (so
50 50 # things go to lib/python2.X/...)
51 51 python2.4 ./setup.py bdist_rpm --binary-only --release=py24 --python=/usr/bin/python2.4
52 52 python2.5 ./setup.py bdist_rpm --binary-only --release=py25 --python=/usr/bin/python2.5
53 53
54 54 # Build eggs
55 55 python2.4 ./setup_bdist_egg.py
56 56 python2.5 ./setup_bdist_egg.py
57 57
58 58 # Call the windows build separately, so that the extra Windows scripts don't
59 59 # get pulled into Unix builds (setup.py has code which checks for
60 60 # bdist_wininst)
61 61 ./setup.py bdist_wininst --install-script=ipython_win_post_install.py
62 62
63 63 # Change name so retarded Vista runs the installer correctly
64 64 rename 's/win32/win32-setup/' $ipdir/dist/*.exe
65 65
66 66 # Register with the Python Package Index (PyPI)
67 67 echo "Registering with PyPI..."
68 68 cd $ipdir
69 69 ./setup.py register
70 70
71 71 # Upload all files
72 72 cd $ipdir/dist
73 73 echo "Uploading distribution files..."
74 74 scp * ipython@ipython.scipy.org:www/dist/
75 75
76 76 echo "Uploading backup files..."
77 77 cd $ipbackupdir
78 78 scp `ls -1tr *tgz | tail -1` ipython@ipython.scipy.org:www/backup/
79 79
80 80 echo "Updating webpage..."
81 81 cd $ipdir/doc
82 82 www=~/ipython/homepage
83 83 cp ChangeLog NEWS $www
84 84 rm -rf $www/doc/*
85 cp -r manual.pdf manual/ $www/doc
85 cp -r manual/ $www/doc
86 86 cd $www
87 87 ./update
88 88
89 89 # Alert package maintainers
90 echo "Alerting package maintainers..."
90 #echo "Alerting package maintainers..."
91 91 #maintainers='fernando.perez@berkeley.edu ariciputi@users.sourceforge.net jack@xiph.org tretkowski@inittab.de dryice@hotpop.com willmaier@ml1.net'
92 maintainers='fernando.perez@berkeley.edu'
93
94 for email in $maintainers
95 do
96 echo "Emailing $email..."
97 mail -s "[Package maintainer notice] A new IPython is out. Version: $version" \
98 $email < NEWS
99 done
92 # maintainers='fernando.perez@berkeley.edu'
93
94 # for email in $maintainers
95 # do
96 # echo "Emailing $email..."
97 # mail -s "[Package maintainer notice] A new IPython is out. Version: $version" \
98 # $email < NEWS
99 # done
100 100
101 101 echo "Done!"
General Comments 0
You need to be logged in to leave comments. Login now