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