##// END OF EJS Templates
changelog
vivainio -
Show More
@@ -1,5225 +1,5230
1 2006-02-24 Ville Vainio <vivainio@gmail.com>
2
3 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
4 "cleanly" and safely than the older upgrade mechanism.
5
1 6 2006-02-21 Ville Vainio <vivainio@gmail.com>
2 7
3 8 * Magic.py: %save works again.
4 9
5 10 2006-02-15 Ville Vainio <vivainio@gmail.com>
6 11
7 12 * Magic.py: %Pprint works again
8 13
9 14 * Extensions/ipy_sane_defaults.py: Provide everything provided
10 15 in default ipythonrc, to make it possible to have a completely empty
11 16 ipythonrc (and thus completely rc-file free configuration)
12 17
13 18
14 19 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
15 20
16 21 * IPython/hooks.py (editor): quote the call to the editor command,
17 22 to allow commands with spaces in them. Problem noted by watching
18 23 Ian Oswald's video about textpad under win32 at
19 24 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
20 25
21 26 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
22 27 describing magics (we haven't used @ for a loong time).
23 28
24 29 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
25 30 contributed by marienz to close
26 31 http://www.scipy.net/roundup/ipython/issue53.
27 32
28 33 2006-02-10 Ville Vainio <vivainio@gmail.com>
29 34
30 35 * genutils.py: getoutput now works in win32 too
31 36
32 37 * completer.py: alias and magic completion only invoked
33 38 at the first "item" in the line, to avoid "cd %store"
34 39 nonsense.
35 40
36 41 2006-02-09 Ville Vainio <vivainio@gmail.com>
37 42
38 43 * test/*: Added a unit testing framework (finally).
39 44 '%run runtests.py' to run test_*.
40 45
41 46 * ipapi.py: Exposed runlines and set_custom_exc
42 47
43 48 2006-02-07 Ville Vainio <vivainio@gmail.com>
44 49
45 50 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
46 51 instead use "f(1 2)" as before.
47 52
48 53 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
49 54
50 55 * IPython/demo.py (IPythonDemo): Add new classes to the demo
51 56 facilities, for demos processed by the IPython input filter
52 57 (IPythonDemo), and for running a script one-line-at-a-time as a
53 58 demo, both for pure Python (LineDemo) and for IPython-processed
54 59 input (IPythonLineDemo). After a request by Dave Kohel, from the
55 60 SAGE team.
56 61 (Demo.edit): added and edit() method to the demo objects, to edit
57 62 the in-memory copy of the last executed block.
58 63
59 64 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
60 65 processing to %edit, %macro and %save. These commands can now be
61 66 invoked on the unprocessed input as it was typed by the user
62 67 (without any prefilters applied). After requests by the SAGE team
63 68 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
64 69
65 70 2006-02-01 Ville Vainio <vivainio@gmail.com>
66 71
67 72 * setup.py, eggsetup.py: easy_install ipython==dev works
68 73 correctly now (on Linux)
69 74
70 75 * ipy_user_conf,ipmaker: user config changes, removed spurious
71 76 warnings
72 77
73 78 * iplib: if rc.banner is string, use it as is.
74 79
75 80 * Magic: %pycat accepts a string argument and pages it's contents.
76 81
77 82
78 83 2006-01-30 Ville Vainio <vivainio@gmail.com>
79 84
80 85 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
81 86 Now %store and bookmarks work through PickleShare, meaning that
82 87 concurrent access is possible and all ipython sessions see the
83 88 same database situation all the time, instead of snapshot of
84 89 the situation when the session was started. Hence, %bookmark
85 90 results are immediately accessible from othes sessions. The database
86 91 is also available for use by user extensions. See:
87 92 http://www.python.org/pypi/pickleshare
88 93
89 94 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
90 95
91 96 * aliases can now be %store'd
92 97
93 98 * path.py move to Extensions so that pickleshare does not need
94 99 IPython-specific import. Extensions added to pythonpath right
95 100 at __init__.
96 101
97 102 * iplib.py: ipalias deprecated/redundant; aliases are converted and
98 103 called with _ip.system and the pre-transformed command string.
99 104
100 105 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
101 106
102 107 * IPython/iplib.py (interact): Fix that we were not catching
103 108 KeyboardInterrupt exceptions properly. I'm not quite sure why the
104 109 logic here had to change, but it's fixed now.
105 110
106 111 2006-01-29 Ville Vainio <vivainio@gmail.com>
107 112
108 113 * iplib.py: Try to import pyreadline on Windows.
109 114
110 115 2006-01-27 Ville Vainio <vivainio@gmail.com>
111 116
112 117 * iplib.py: Expose ipapi as _ip in builtin namespace.
113 118 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
114 119 and ip_set_hook (-> _ip.set_hook) redundant. % and !
115 120 syntax now produce _ip.* variant of the commands.
116 121
117 122 * "_ip.options().autoedit_syntax = 2" automatically throws
118 123 user to editor for syntax error correction without prompting.
119 124
120 125 2006-01-27 Ville Vainio <vivainio@gmail.com>
121 126
122 127 * ipmaker.py: Give "realistic" sys.argv for scripts (without
123 128 'ipython' at argv[0]) executed through command line.
124 129 NOTE: this DEPRECATES calling ipython with multiple scripts
125 130 ("ipython a.py b.py c.py")
126 131
127 132 * iplib.py, hooks.py: Added configurable input prefilter,
128 133 named 'input_prefilter'. See ext_rescapture.py for example
129 134 usage.
130 135
131 136 * ext_rescapture.py, Magic.py: Better system command output capture
132 137 through 'var = !ls' (deprecates user-visible %sc). Same notation
133 138 applies for magics, 'var = %alias' assigns alias list to var.
134 139
135 140 * ipapi.py: added meta() for accessing extension-usable data store.
136 141
137 142 * iplib.py: added InteractiveShell.getapi(). New magics should be
138 143 written doing self.getapi() instead of using the shell directly.
139 144
140 145 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
141 146 %store foo >> ~/myfoo.txt to store variables to files (in clean
142 147 textual form, not a restorable pickle).
143 148
144 149 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
145 150
146 151 * usage.py, Magic.py: added %quickref
147 152
148 153 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
149 154
150 155 * GetoptErrors when invoking magics etc. with wrong args
151 156 are now more helpful:
152 157 GetoptError: option -l not recognized (allowed: "qb" )
153 158
154 159 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
155 160
156 161 * IPython/demo.py (Demo.show): Flush stdout after each block, so
157 162 computationally intensive blocks don't appear to stall the demo.
158 163
159 164 2006-01-24 Ville Vainio <vivainio@gmail.com>
160 165
161 166 * iplib.py, hooks.py: 'result_display' hook can return a non-None
162 167 value to manipulate resulting history entry.
163 168
164 169 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
165 170 to instance methods of IPApi class, to make extending an embedded
166 171 IPython feasible. See ext_rehashdir.py for example usage.
167 172
168 173 * Merged 1071-1076 from banches/0.7.1
169 174
170 175
171 176 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
172 177
173 178 * tools/release (daystamp): Fix build tools to use the new
174 179 eggsetup.py script to build lightweight eggs.
175 180
176 181 * Applied changesets 1062 and 1064 before 0.7.1 release.
177 182
178 183 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
179 184 see the raw input history (without conversions like %ls ->
180 185 ipmagic("ls")). After a request from W. Stein, SAGE
181 186 (http://modular.ucsd.edu/sage) developer. This information is
182 187 stored in the input_hist_raw attribute of the IPython instance, so
183 188 developers can access it if needed (it's an InputList instance).
184 189
185 190 * Versionstring = 0.7.2.svn
186 191
187 192 * eggsetup.py: A separate script for constructing eggs, creates
188 193 proper launch scripts even on Windows (an .exe file in
189 194 \python24\scripts).
190 195
191 196 * ipapi.py: launch_new_instance, launch entry point needed for the
192 197 egg.
193 198
194 199 2006-01-23 Ville Vainio <vivainio@gmail.com>
195 200
196 201 * Added %cpaste magic for pasting python code
197 202
198 203 2006-01-22 Ville Vainio <vivainio@gmail.com>
199 204
200 205 * Merge from branches/0.7.1 into trunk, revs 1052-1057
201 206
202 207 * Versionstring = 0.7.2.svn
203 208
204 209 * eggsetup.py: A separate script for constructing eggs, creates
205 210 proper launch scripts even on Windows (an .exe file in
206 211 \python24\scripts).
207 212
208 213 * ipapi.py: launch_new_instance, launch entry point needed for the
209 214 egg.
210 215
211 216 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
212 217
213 218 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
214 219 %pfile foo would print the file for foo even if it was a binary.
215 220 Now, extensions '.so' and '.dll' are skipped.
216 221
217 222 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
218 223 bug, where macros would fail in all threaded modes. I'm not 100%
219 224 sure, so I'm going to put out an rc instead of making a release
220 225 today, and wait for feedback for at least a few days.
221 226
222 227 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
223 228 it...) the handling of pasting external code with autoindent on.
224 229 To get out of a multiline input, the rule will appear for most
225 230 users unchanged: two blank lines or change the indent level
226 231 proposed by IPython. But there is a twist now: you can
227 232 add/subtract only *one or two spaces*. If you add/subtract three
228 233 or more (unless you completely delete the line), IPython will
229 234 accept that line, and you'll need to enter a second one of pure
230 235 whitespace. I know it sounds complicated, but I can't find a
231 236 different solution that covers all the cases, with the right
232 237 heuristics. Hopefully in actual use, nobody will really notice
233 238 all these strange rules and things will 'just work'.
234 239
235 240 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
236 241
237 242 * IPython/iplib.py (interact): catch exceptions which can be
238 243 triggered asynchronously by signal handlers. Thanks to an
239 244 automatic crash report, submitted by Colin Kingsley
240 245 <tercel-AT-gentoo.org>.
241 246
242 247 2006-01-20 Ville Vainio <vivainio@gmail.com>
243 248
244 249 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
245 250 (%rehashdir, very useful, try it out) of how to extend ipython
246 251 with new magics. Also added Extensions dir to pythonpath to make
247 252 importing extensions easy.
248 253
249 254 * %store now complains when trying to store interactively declared
250 255 classes / instances of those classes.
251 256
252 257 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
253 258 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
254 259 if they exist, and ipy_user_conf.py with some defaults is created for
255 260 the user.
256 261
257 262 * Startup rehashing done by the config file, not InterpreterExec.
258 263 This means system commands are available even without selecting the
259 264 pysh profile. It's the sensible default after all.
260 265
261 266 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
262 267
263 268 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
264 269 multiline code with autoindent on working. But I am really not
265 270 sure, so this needs more testing. Will commit a debug-enabled
266 271 version for now, while I test it some more, so that Ville and
267 272 others may also catch any problems. Also made
268 273 self.indent_current_str() a method, to ensure that there's no
269 274 chance of the indent space count and the corresponding string
270 275 falling out of sync. All code needing the string should just call
271 276 the method.
272 277
273 278 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
274 279
275 280 * IPython/Magic.py (magic_edit): fix check for when users don't
276 281 save their output files, the try/except was in the wrong section.
277 282
278 283 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
279 284
280 285 * IPython/Magic.py (magic_run): fix __file__ global missing from
281 286 script's namespace when executed via %run. After a report by
282 287 Vivian.
283 288
284 289 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
285 290 when using python 2.4. The parent constructor changed in 2.4, and
286 291 we need to track it directly (we can't call it, as it messes up
287 292 readline and tab-completion inside our pdb would stop working).
288 293 After a bug report by R. Bernstein <rocky-AT-panix.com>.
289 294
290 295 2006-01-16 Ville Vainio <vivainio@gmail.com>
291 296
292 297 * Ipython/magic.py:Reverted back to old %edit functionality
293 298 that returns file contents on exit.
294 299
295 300 * IPython/path.py: Added Jason Orendorff's "path" module to
296 301 IPython tree, http://www.jorendorff.com/articles/python/path/.
297 302 You can get path objects conveniently through %sc, and !!, e.g.:
298 303 sc files=ls
299 304 for p in files.paths: # or files.p
300 305 print p,p.mtime
301 306
302 307 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
303 308 now work again without considering the exclusion regexp -
304 309 hence, things like ',foo my/path' turn to 'foo("my/path")'
305 310 instead of syntax error.
306 311
307 312
308 313 2006-01-14 Ville Vainio <vivainio@gmail.com>
309 314
310 315 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
311 316 ipapi decorators for python 2.4 users, options() provides access to rc
312 317 data.
313 318
314 319 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
315 320 as path separators (even on Linux ;-). Space character after
316 321 backslash (as yielded by tab completer) is still space;
317 322 "%cd long\ name" works as expected.
318 323
319 324 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
320 325 as "chain of command", with priority. API stays the same,
321 326 TryNext exception raised by a hook function signals that
322 327 current hook failed and next hook should try handling it, as
323 328 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
324 329 requested configurable display hook, which is now implemented.
325 330
326 331 2006-01-13 Ville Vainio <vivainio@gmail.com>
327 332
328 333 * IPython/platutils*.py: platform specific utility functions,
329 334 so far only set_term_title is implemented (change terminal
330 335 label in windowing systems). %cd now changes the title to
331 336 current dir.
332 337
333 338 * IPython/Release.py: Added myself to "authors" list,
334 339 had to create new files.
335 340
336 341 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
337 342 shell escape; not a known bug but had potential to be one in the
338 343 future.
339 344
340 345 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
341 346 extension API for IPython! See the module for usage example. Fix
342 347 OInspect for docstring-less magic functions.
343 348
344 349
345 350 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
346 351
347 352 * IPython/iplib.py (raw_input): temporarily deactivate all
348 353 attempts at allowing pasting of code with autoindent on. It
349 354 introduced bugs (reported by Prabhu) and I can't seem to find a
350 355 robust combination which works in all cases. Will have to revisit
351 356 later.
352 357
353 358 * IPython/genutils.py: remove isspace() function. We've dropped
354 359 2.2 compatibility, so it's OK to use the string method.
355 360
356 361 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
357 362
358 363 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
359 364 matching what NOT to autocall on, to include all python binary
360 365 operators (including things like 'and', 'or', 'is' and 'in').
361 366 Prompted by a bug report on 'foo & bar', but I realized we had
362 367 many more potential bug cases with other operators. The regexp is
363 368 self.re_exclude_auto, it's fairly commented.
364 369
365 370 2006-01-12 Ville Vainio <vivainio@gmail.com>
366 371
367 372 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
368 373 Prettified and hardened string/backslash quoting with ipsystem(),
369 374 ipalias() and ipmagic(). Now even \ characters are passed to
370 375 %magics, !shell escapes and aliases exactly as they are in the
371 376 ipython command line. Should improve backslash experience,
372 377 particularly in Windows (path delimiter for some commands that
373 378 won't understand '/'), but Unix benefits as well (regexps). %cd
374 379 magic still doesn't support backslash path delimiters, though. Also
375 380 deleted all pretense of supporting multiline command strings in
376 381 !system or %magic commands. Thanks to Jerry McRae for suggestions.
377 382
378 383 * doc/build_doc_instructions.txt added. Documentation on how to
379 384 use doc/update_manual.py, added yesterday. Both files contributed
380 385 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
381 386 doc/*.sh for deprecation at a later date.
382 387
383 388 * /ipython.py Added ipython.py to root directory for
384 389 zero-installation (tar xzvf ipython.tgz; cd ipython; python
385 390 ipython.py) and development convenience (no need to kee doing
386 391 "setup.py install" between changes).
387 392
388 393 * Made ! and !! shell escapes work (again) in multiline expressions:
389 394 if 1:
390 395 !ls
391 396 !!ls
392 397
393 398 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
394 399
395 400 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
396 401 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
397 402 module in case-insensitive installation. Was causing crashes
398 403 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
399 404
400 405 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
401 406 <marienz-AT-gentoo.org>, closes
402 407 http://www.scipy.net/roundup/ipython/issue51.
403 408
404 409 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
405 410
406 411 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
407 412 problem of excessive CPU usage under *nix and keyboard lag under
408 413 win32.
409 414
410 415 2006-01-10 *** Released version 0.7.0
411 416
412 417 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
413 418
414 419 * IPython/Release.py (revision): tag version number to 0.7.0,
415 420 ready for release.
416 421
417 422 * IPython/Magic.py (magic_edit): Add print statement to %edit so
418 423 it informs the user of the name of the temp. file used. This can
419 424 help if you decide later to reuse that same file, so you know
420 425 where to copy the info from.
421 426
422 427 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
423 428
424 429 * setup_bdist_egg.py: little script to build an egg. Added
425 430 support in the release tools as well.
426 431
427 432 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
428 433
429 434 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
430 435 version selection (new -wxversion command line and ipythonrc
431 436 parameter). Patch contributed by Arnd Baecker
432 437 <arnd.baecker-AT-web.de>.
433 438
434 439 * IPython/iplib.py (embed_mainloop): fix tab-completion in
435 440 embedded instances, for variables defined at the interactive
436 441 prompt of the embedded ipython. Reported by Arnd.
437 442
438 443 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
439 444 it can be used as a (stateful) toggle, or with a direct parameter.
440 445
441 446 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
442 447 could be triggered in certain cases and cause the traceback
443 448 printer not to work.
444 449
445 450 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
446 451
447 452 * IPython/iplib.py (_should_recompile): Small fix, closes
448 453 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
449 454
450 455 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
451 456
452 457 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
453 458 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
454 459 Moad for help with tracking it down.
455 460
456 461 * IPython/iplib.py (handle_auto): fix autocall handling for
457 462 objects which support BOTH __getitem__ and __call__ (so that f [x]
458 463 is left alone, instead of becoming f([x]) automatically).
459 464
460 465 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
461 466 Ville's patch.
462 467
463 468 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
464 469
465 470 * IPython/iplib.py (handle_auto): changed autocall semantics to
466 471 include 'smart' mode, where the autocall transformation is NOT
467 472 applied if there are no arguments on the line. This allows you to
468 473 just type 'foo' if foo is a callable to see its internal form,
469 474 instead of having it called with no arguments (typically a
470 475 mistake). The old 'full' autocall still exists: for that, you
471 476 need to set the 'autocall' parameter to 2 in your ipythonrc file.
472 477
473 478 * IPython/completer.py (Completer.attr_matches): add
474 479 tab-completion support for Enthoughts' traits. After a report by
475 480 Arnd and a patch by Prabhu.
476 481
477 482 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
478 483
479 484 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
480 485 Schmolck's patch to fix inspect.getinnerframes().
481 486
482 487 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
483 488 for embedded instances, regarding handling of namespaces and items
484 489 added to the __builtin__ one. Multiple embedded instances and
485 490 recursive embeddings should work better now (though I'm not sure
486 491 I've got all the corner cases fixed, that code is a bit of a brain
487 492 twister).
488 493
489 494 * IPython/Magic.py (magic_edit): added support to edit in-memory
490 495 macros (automatically creates the necessary temp files). %edit
491 496 also doesn't return the file contents anymore, it's just noise.
492 497
493 498 * IPython/completer.py (Completer.attr_matches): revert change to
494 499 complete only on attributes listed in __all__. I realized it
495 500 cripples the tab-completion system as a tool for exploring the
496 501 internals of unknown libraries (it renders any non-__all__
497 502 attribute off-limits). I got bit by this when trying to see
498 503 something inside the dis module.
499 504
500 505 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
501 506
502 507 * IPython/iplib.py (InteractiveShell.__init__): add .meta
503 508 namespace for users and extension writers to hold data in. This
504 509 follows the discussion in
505 510 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
506 511
507 512 * IPython/completer.py (IPCompleter.complete): small patch to help
508 513 tab-completion under Emacs, after a suggestion by John Barnard
509 514 <barnarj-AT-ccf.org>.
510 515
511 516 * IPython/Magic.py (Magic.extract_input_slices): added support for
512 517 the slice notation in magics to use N-M to represent numbers N...M
513 518 (closed endpoints). This is used by %macro and %save.
514 519
515 520 * IPython/completer.py (Completer.attr_matches): for modules which
516 521 define __all__, complete only on those. After a patch by Jeffrey
517 522 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
518 523 speed up this routine.
519 524
520 525 * IPython/Logger.py (Logger.log): fix a history handling bug. I
521 526 don't know if this is the end of it, but the behavior now is
522 527 certainly much more correct. Note that coupled with macros,
523 528 slightly surprising (at first) behavior may occur: a macro will in
524 529 general expand to multiple lines of input, so upon exiting, the
525 530 in/out counters will both be bumped by the corresponding amount
526 531 (as if the macro's contents had been typed interactively). Typing
527 532 %hist will reveal the intermediate (silently processed) lines.
528 533
529 534 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
530 535 pickle to fail (%run was overwriting __main__ and not restoring
531 536 it, but pickle relies on __main__ to operate).
532 537
533 538 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
534 539 using properties, but forgot to make the main InteractiveShell
535 540 class a new-style class. Properties fail silently, and
536 541 misteriously, with old-style class (getters work, but
537 542 setters don't do anything).
538 543
539 544 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
540 545
541 546 * IPython/Magic.py (magic_history): fix history reporting bug (I
542 547 know some nasties are still there, I just can't seem to find a
543 548 reproducible test case to track them down; the input history is
544 549 falling out of sync...)
545 550
546 551 * IPython/iplib.py (handle_shell_escape): fix bug where both
547 552 aliases and system accesses where broken for indented code (such
548 553 as loops).
549 554
550 555 * IPython/genutils.py (shell): fix small but critical bug for
551 556 win32 system access.
552 557
553 558 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
554 559
555 560 * IPython/iplib.py (showtraceback): remove use of the
556 561 sys.last_{type/value/traceback} structures, which are non
557 562 thread-safe.
558 563 (_prefilter): change control flow to ensure that we NEVER
559 564 introspect objects when autocall is off. This will guarantee that
560 565 having an input line of the form 'x.y', where access to attribute
561 566 'y' has side effects, doesn't trigger the side effect TWICE. It
562 567 is important to note that, with autocall on, these side effects
563 568 can still happen.
564 569 (ipsystem): new builtin, to complete the ip{magic/alias/system}
565 570 trio. IPython offers these three kinds of special calls which are
566 571 not python code, and it's a good thing to have their call method
567 572 be accessible as pure python functions (not just special syntax at
568 573 the command line). It gives us a better internal implementation
569 574 structure, as well as exposing these for user scripting more
570 575 cleanly.
571 576
572 577 * IPython/macro.py (Macro.__init__): moved macros to a standalone
573 578 file. Now that they'll be more likely to be used with the
574 579 persistance system (%store), I want to make sure their module path
575 580 doesn't change in the future, so that we don't break things for
576 581 users' persisted data.
577 582
578 583 * IPython/iplib.py (autoindent_update): move indentation
579 584 management into the _text_ processing loop, not the keyboard
580 585 interactive one. This is necessary to correctly process non-typed
581 586 multiline input (such as macros).
582 587
583 588 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
584 589 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
585 590 which was producing problems in the resulting manual.
586 591 (magic_whos): improve reporting of instances (show their class,
587 592 instead of simply printing 'instance' which isn't terribly
588 593 informative).
589 594
590 595 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
591 596 (minor mods) to support network shares under win32.
592 597
593 598 * IPython/winconsole.py (get_console_size): add new winconsole
594 599 module and fixes to page_dumb() to improve its behavior under
595 600 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
596 601
597 602 * IPython/Magic.py (Macro): simplified Macro class to just
598 603 subclass list. We've had only 2.2 compatibility for a very long
599 604 time, yet I was still avoiding subclassing the builtin types. No
600 605 more (I'm also starting to use properties, though I won't shift to
601 606 2.3-specific features quite yet).
602 607 (magic_store): added Ville's patch for lightweight variable
603 608 persistence, after a request on the user list by Matt Wilkie
604 609 <maphew-AT-gmail.com>. The new %store magic's docstring has full
605 610 details.
606 611
607 612 * IPython/iplib.py (InteractiveShell.post_config_initialization):
608 613 changed the default logfile name from 'ipython.log' to
609 614 'ipython_log.py'. These logs are real python files, and now that
610 615 we have much better multiline support, people are more likely to
611 616 want to use them as such. Might as well name them correctly.
612 617
613 618 * IPython/Magic.py: substantial cleanup. While we can't stop
614 619 using magics as mixins, due to the existing customizations 'out
615 620 there' which rely on the mixin naming conventions, at least I
616 621 cleaned out all cross-class name usage. So once we are OK with
617 622 breaking compatibility, the two systems can be separated.
618 623
619 624 * IPython/Logger.py: major cleanup. This one is NOT a mixin
620 625 anymore, and the class is a fair bit less hideous as well. New
621 626 features were also introduced: timestamping of input, and logging
622 627 of output results. These are user-visible with the -t and -o
623 628 options to %logstart. Closes
624 629 http://www.scipy.net/roundup/ipython/issue11 and a request by
625 630 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
626 631
627 632 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
628 633
629 634 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
630 635 better hadnle backslashes in paths. See the thread 'More Windows
631 636 questions part 2 - \/ characters revisited' on the iypthon user
632 637 list:
633 638 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
634 639
635 640 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
636 641
637 642 (InteractiveShell.__init__): change threaded shells to not use the
638 643 ipython crash handler. This was causing more problems than not,
639 644 as exceptions in the main thread (GUI code, typically) would
640 645 always show up as a 'crash', when they really weren't.
641 646
642 647 The colors and exception mode commands (%colors/%xmode) have been
643 648 synchronized to also take this into account, so users can get
644 649 verbose exceptions for their threaded code as well. I also added
645 650 support for activating pdb inside this exception handler as well,
646 651 so now GUI authors can use IPython's enhanced pdb at runtime.
647 652
648 653 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
649 654 true by default, and add it to the shipped ipythonrc file. Since
650 655 this asks the user before proceeding, I think it's OK to make it
651 656 true by default.
652 657
653 658 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
654 659 of the previous special-casing of input in the eval loop. I think
655 660 this is cleaner, as they really are commands and shouldn't have
656 661 a special role in the middle of the core code.
657 662
658 663 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
659 664
660 665 * IPython/iplib.py (edit_syntax_error): added support for
661 666 automatically reopening the editor if the file had a syntax error
662 667 in it. Thanks to scottt who provided the patch at:
663 668 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
664 669 version committed).
665 670
666 671 * IPython/iplib.py (handle_normal): add suport for multi-line
667 672 input with emtpy lines. This fixes
668 673 http://www.scipy.net/roundup/ipython/issue43 and a similar
669 674 discussion on the user list.
670 675
671 676 WARNING: a behavior change is necessarily introduced to support
672 677 blank lines: now a single blank line with whitespace does NOT
673 678 break the input loop, which means that when autoindent is on, by
674 679 default hitting return on the next (indented) line does NOT exit.
675 680
676 681 Instead, to exit a multiline input you can either have:
677 682
678 683 - TWO whitespace lines (just hit return again), or
679 684 - a single whitespace line of a different length than provided
680 685 by the autoindent (add or remove a space).
681 686
682 687 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
683 688 module to better organize all readline-related functionality.
684 689 I've deleted FlexCompleter and put all completion clases here.
685 690
686 691 * IPython/iplib.py (raw_input): improve indentation management.
687 692 It is now possible to paste indented code with autoindent on, and
688 693 the code is interpreted correctly (though it still looks bad on
689 694 screen, due to the line-oriented nature of ipython).
690 695 (MagicCompleter.complete): change behavior so that a TAB key on an
691 696 otherwise empty line actually inserts a tab, instead of completing
692 697 on the entire global namespace. This makes it easier to use the
693 698 TAB key for indentation. After a request by Hans Meine
694 699 <hans_meine-AT-gmx.net>
695 700 (_prefilter): add support so that typing plain 'exit' or 'quit'
696 701 does a sensible thing. Originally I tried to deviate as little as
697 702 possible from the default python behavior, but even that one may
698 703 change in this direction (thread on python-dev to that effect).
699 704 Regardless, ipython should do the right thing even if CPython's
700 705 '>>>' prompt doesn't.
701 706 (InteractiveShell): removed subclassing code.InteractiveConsole
702 707 class. By now we'd overridden just about all of its methods: I've
703 708 copied the remaining two over, and now ipython is a standalone
704 709 class. This will provide a clearer picture for the chainsaw
705 710 branch refactoring.
706 711
707 712 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
708 713
709 714 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
710 715 failures for objects which break when dir() is called on them.
711 716
712 717 * IPython/FlexCompleter.py (Completer.__init__): Added support for
713 718 distinct local and global namespaces in the completer API. This
714 719 change allows us top properly handle completion with distinct
715 720 scopes, including in embedded instances (this had never really
716 721 worked correctly).
717 722
718 723 Note: this introduces a change in the constructor for
719 724 MagicCompleter, as a new global_namespace parameter is now the
720 725 second argument (the others were bumped one position).
721 726
722 727 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
723 728
724 729 * IPython/iplib.py (embed_mainloop): fix tab-completion in
725 730 embedded instances (which can be done now thanks to Vivian's
726 731 frame-handling fixes for pdb).
727 732 (InteractiveShell.__init__): Fix namespace handling problem in
728 733 embedded instances. We were overwriting __main__ unconditionally,
729 734 and this should only be done for 'full' (non-embedded) IPython;
730 735 embedded instances must respect the caller's __main__. Thanks to
731 736 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
732 737
733 738 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
734 739
735 740 * setup.py: added download_url to setup(). This registers the
736 741 download address at PyPI, which is not only useful to humans
737 742 browsing the site, but is also picked up by setuptools (the Eggs
738 743 machinery). Thanks to Ville and R. Kern for the info/discussion
739 744 on this.
740 745
741 746 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
742 747
743 748 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
744 749 This brings a lot of nice functionality to the pdb mode, which now
745 750 has tab-completion, syntax highlighting, and better stack handling
746 751 than before. Many thanks to Vivian De Smedt
747 752 <vivian-AT-vdesmedt.com> for the original patches.
748 753
749 754 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
750 755
751 756 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
752 757 sequence to consistently accept the banner argument. The
753 758 inconsistency was tripping SAGE, thanks to Gary Zablackis
754 759 <gzabl-AT-yahoo.com> for the report.
755 760
756 761 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
757 762
758 763 * IPython/iplib.py (InteractiveShell.post_config_initialization):
759 764 Fix bug where a naked 'alias' call in the ipythonrc file would
760 765 cause a crash. Bug reported by Jorgen Stenarson.
761 766
762 767 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
763 768
764 769 * IPython/ipmaker.py (make_IPython): cleanups which should improve
765 770 startup time.
766 771
767 772 * IPython/iplib.py (runcode): my globals 'fix' for embedded
768 773 instances had introduced a bug with globals in normal code. Now
769 774 it's working in all cases.
770 775
771 776 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
772 777 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
773 778 has been introduced to set the default case sensitivity of the
774 779 searches. Users can still select either mode at runtime on a
775 780 per-search basis.
776 781
777 782 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
778 783
779 784 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
780 785 attributes in wildcard searches for subclasses. Modified version
781 786 of a patch by Jorgen.
782 787
783 788 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
784 789
785 790 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
786 791 embedded instances. I added a user_global_ns attribute to the
787 792 InteractiveShell class to handle this.
788 793
789 794 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
790 795
791 796 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
792 797 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
793 798 (reported under win32, but may happen also in other platforms).
794 799 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
795 800
796 801 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
797 802
798 803 * IPython/Magic.py (magic_psearch): new support for wildcard
799 804 patterns. Now, typing ?a*b will list all names which begin with a
800 805 and end in b, for example. The %psearch magic has full
801 806 docstrings. Many thanks to JΓΆrgen Stenarson
802 807 <jorgen.stenarson-AT-bostream.nu>, author of the patches
803 808 implementing this functionality.
804 809
805 810 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
806 811
807 812 * Manual: fixed long-standing annoyance of double-dashes (as in
808 813 --prefix=~, for example) being stripped in the HTML version. This
809 814 is a latex2html bug, but a workaround was provided. Many thanks
810 815 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
811 816 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
812 817 rolling. This seemingly small issue had tripped a number of users
813 818 when first installing, so I'm glad to see it gone.
814 819
815 820 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
816 821
817 822 * IPython/Extensions/numeric_formats.py: fix missing import,
818 823 reported by Stephen Walton.
819 824
820 825 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
821 826
822 827 * IPython/demo.py: finish demo module, fully documented now.
823 828
824 829 * IPython/genutils.py (file_read): simple little utility to read a
825 830 file and ensure it's closed afterwards.
826 831
827 832 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
828 833
829 834 * IPython/demo.py (Demo.__init__): added support for individually
830 835 tagging blocks for automatic execution.
831 836
832 837 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
833 838 syntax-highlighted python sources, requested by John.
834 839
835 840 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
836 841
837 842 * IPython/demo.py (Demo.again): fix bug where again() blocks after
838 843 finishing.
839 844
840 845 * IPython/genutils.py (shlex_split): moved from Magic to here,
841 846 where all 2.2 compatibility stuff lives. I needed it for demo.py.
842 847
843 848 * IPython/demo.py (Demo.__init__): added support for silent
844 849 blocks, improved marks as regexps, docstrings written.
845 850 (Demo.__init__): better docstring, added support for sys.argv.
846 851
847 852 * IPython/genutils.py (marquee): little utility used by the demo
848 853 code, handy in general.
849 854
850 855 * IPython/demo.py (Demo.__init__): new class for interactive
851 856 demos. Not documented yet, I just wrote it in a hurry for
852 857 scipy'05. Will docstring later.
853 858
854 859 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
855 860
856 861 * IPython/Shell.py (sigint_handler): Drastic simplification which
857 862 also seems to make Ctrl-C work correctly across threads! This is
858 863 so simple, that I can't beleive I'd missed it before. Needs more
859 864 testing, though.
860 865 (KBINT): Never mind, revert changes. I'm sure I'd tried something
861 866 like this before...
862 867
863 868 * IPython/genutils.py (get_home_dir): add protection against
864 869 non-dirs in win32 registry.
865 870
866 871 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
867 872 bug where dict was mutated while iterating (pysh crash).
868 873
869 874 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
870 875
871 876 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
872 877 spurious newlines added by this routine. After a report by
873 878 F. Mantegazza.
874 879
875 880 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
876 881
877 882 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
878 883 calls. These were a leftover from the GTK 1.x days, and can cause
879 884 problems in certain cases (after a report by John Hunter).
880 885
881 886 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
882 887 os.getcwd() fails at init time. Thanks to patch from David Remahl
883 888 <chmod007-AT-mac.com>.
884 889 (InteractiveShell.__init__): prevent certain special magics from
885 890 being shadowed by aliases. Closes
886 891 http://www.scipy.net/roundup/ipython/issue41.
887 892
888 893 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
889 894
890 895 * IPython/iplib.py (InteractiveShell.complete): Added new
891 896 top-level completion method to expose the completion mechanism
892 897 beyond readline-based environments.
893 898
894 899 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
895 900
896 901 * tools/ipsvnc (svnversion): fix svnversion capture.
897 902
898 903 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
899 904 attribute to self, which was missing. Before, it was set by a
900 905 routine which in certain cases wasn't being called, so the
901 906 instance could end up missing the attribute. This caused a crash.
902 907 Closes http://www.scipy.net/roundup/ipython/issue40.
903 908
904 909 2005-08-16 Fernando Perez <fperez@colorado.edu>
905 910
906 911 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
907 912 contains non-string attribute. Closes
908 913 http://www.scipy.net/roundup/ipython/issue38.
909 914
910 915 2005-08-14 Fernando Perez <fperez@colorado.edu>
911 916
912 917 * tools/ipsvnc: Minor improvements, to add changeset info.
913 918
914 919 2005-08-12 Fernando Perez <fperez@colorado.edu>
915 920
916 921 * IPython/iplib.py (runsource): remove self.code_to_run_src
917 922 attribute. I realized this is nothing more than
918 923 '\n'.join(self.buffer), and having the same data in two different
919 924 places is just asking for synchronization bugs. This may impact
920 925 people who have custom exception handlers, so I need to warn
921 926 ipython-dev about it (F. Mantegazza may use them).
922 927
923 928 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
924 929
925 930 * IPython/genutils.py: fix 2.2 compatibility (generators)
926 931
927 932 2005-07-18 Fernando Perez <fperez@colorado.edu>
928 933
929 934 * IPython/genutils.py (get_home_dir): fix to help users with
930 935 invalid $HOME under win32.
931 936
932 937 2005-07-17 Fernando Perez <fperez@colorado.edu>
933 938
934 939 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
935 940 some old hacks and clean up a bit other routines; code should be
936 941 simpler and a bit faster.
937 942
938 943 * IPython/iplib.py (interact): removed some last-resort attempts
939 944 to survive broken stdout/stderr. That code was only making it
940 945 harder to abstract out the i/o (necessary for gui integration),
941 946 and the crashes it could prevent were extremely rare in practice
942 947 (besides being fully user-induced in a pretty violent manner).
943 948
944 949 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
945 950 Nothing major yet, but the code is simpler to read; this should
946 951 make it easier to do more serious modifications in the future.
947 952
948 953 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
949 954 which broke in .15 (thanks to a report by Ville).
950 955
951 956 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
952 957 be quite correct, I know next to nothing about unicode). This
953 958 will allow unicode strings to be used in prompts, amongst other
954 959 cases. It also will prevent ipython from crashing when unicode
955 960 shows up unexpectedly in many places. If ascii encoding fails, we
956 961 assume utf_8. Currently the encoding is not a user-visible
957 962 setting, though it could be made so if there is demand for it.
958 963
959 964 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
960 965
961 966 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
962 967
963 968 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
964 969
965 970 * IPython/genutils.py: Add 2.2 compatibility here, so all other
966 971 code can work transparently for 2.2/2.3.
967 972
968 973 2005-07-16 Fernando Perez <fperez@colorado.edu>
969 974
970 975 * IPython/ultraTB.py (ExceptionColors): Make a global variable
971 976 out of the color scheme table used for coloring exception
972 977 tracebacks. This allows user code to add new schemes at runtime.
973 978 This is a minimally modified version of the patch at
974 979 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
975 980 for the contribution.
976 981
977 982 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
978 983 slightly modified version of the patch in
979 984 http://www.scipy.net/roundup/ipython/issue34, which also allows me
980 985 to remove the previous try/except solution (which was costlier).
981 986 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
982 987
983 988 2005-06-08 Fernando Perez <fperez@colorado.edu>
984 989
985 990 * IPython/iplib.py (write/write_err): Add methods to abstract all
986 991 I/O a bit more.
987 992
988 993 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
989 994 warning, reported by Aric Hagberg, fix by JD Hunter.
990 995
991 996 2005-06-02 *** Released version 0.6.15
992 997
993 998 2005-06-01 Fernando Perez <fperez@colorado.edu>
994 999
995 1000 * IPython/iplib.py (MagicCompleter.file_matches): Fix
996 1001 tab-completion of filenames within open-quoted strings. Note that
997 1002 this requires that in ~/.ipython/ipythonrc, users change the
998 1003 readline delimiters configuration to read:
999 1004
1000 1005 readline_remove_delims -/~
1001 1006
1002 1007
1003 1008 2005-05-31 *** Released version 0.6.14
1004 1009
1005 1010 2005-05-29 Fernando Perez <fperez@colorado.edu>
1006 1011
1007 1012 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks