/
ChangeLog
7683 lines (5464 loc) · 298 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2008-06-09 Ville Vainio <vivainio@gmail.com>
* Extensions/ipy_autoreload.py: Apply Pauli Virtanen's patch
to autoreloading that also replaces the changed code objects
with new versions
* pspersistence.py: report UsageError on %store -w w/o arg,
and other usage pattern errors. Bug report by Johann Cohen-Tanugi.
2008-06-03 Ville Vainio <vivainio@gmail.com>
* ipython.rst, ipython.1: remove -twisted from man page,
add -pydb to both man page and manual.
* pspersistence.py: report UsageError on %store -w w/o arg,
and other usage pattern errors. Bug report by Johann Cohen-Tanugi.
2008-06-02 Fernando Perez <Fernando.Perez@berkeley.edu>
* IPython/Shell.py (MatplotlibShellBase._matplotlib_config): add
numpy/np/pyplot/plt imports according to new conventions we're
trying to standardize on. This only affects the -pylab mode.
2008-05-31 Fernando Perez <Fernando.Perez@berkeley.edu>
* IPython/ipmaker.py (make_IPython): The -twisted option is fully
disabled.
2008-05-31 *** Released version 0.8.4
2008-05-31 Fernando Perez <Fernando.Perez@berkeley.edu>
* IPython/ipmaker.py (make_IPython): The -twisted option is fully
disabled.
* IPython/Shell.py (_select_shell): completely disable -twisted.
This code is of dubious quality and normal users should not
encounter it until we can clarify things further, even under
win32. Since we need a quick emergency 0.8.4 release, it is now
disabled completely. Users who want to run it can use the
following command (it's easy to put it in an alias or script):
python -c"from IPython import twshell;twshell.IPShellTwisted().mainloop()"
2008-05-30 Ville Vainio <vivainio@gmail.com>
* shell.py: disable -twisted on non-win32 platforms.
import sets module on python 2.3.
* ipy_profile_sh.py: disable ipy_signals. Now, ipython
is verified to work with python 2.3
* Release.py: update version to 0.8.4 for quick point fix
2008-05-28 *** Released version 0.8.3
2008-05-28 Fernando Perez <Fernando.Perez@berkeley.edu>
* ../win32_manual_post_install.py (run): Fix the windows installer
so the links to the docs are correct.
* IPython/ultraTB.py: flush stderr after writing to it to fix
problems with exception traceback ordering in some platforms.
Thanks to a report/fix by Jie Tang <jietang86-AT-gmail.com>.
* IPython/Magic.py (magic_cpaste): add stripping of continuation
prompts, feature requested by Stefan vdW.
* ../setup.py: updates to build and release tools in preparation
for 0.8.3 release.
2008-05-27 Ville Vainio <vivainio@gmail.com>
* iplib.py, ipmaker.py: survive lack of doctest and site._Helper
for minimal environments (e.g. Maemo sdk python)
* Magic.py: cpaste strips whitespace before >>> (allow pasting
doctests)
* ipy_completers.py: cd completer now does recursive path expand
(old behaviour is buggy on some readline versions)
2008-05-14 Ville Vainio <vivainio@gmail.com>
* Extensions/ipy_greedycompleter.py:
New extension that enables a bit more "relaxed" tab
completer that evaluates code without safety checks
(i.e. there can be side effects like function calls)
2008-04-20 Ville Vainio <vivainio@gmail.com>
* Extensions/ipy_lookfor.py: add %lookfor magic command
(search docstrings for words) by Pauli Virtanen. Close #245.
* Extension/ipy_jot.py: %jot and %read magics, analogous
to %store but you can specify some notes. Not read
in automatically on startup, you need %read.
Contributed by Yichun Wei.
2008-04-18 Fernando Perez <Fernando.Perez@berkeley.edu>
* IPython/genutils.py (page): apply workaround to curses bug that
can leave terminal corrupted after a call to initscr().
2008-04-15 Ville Vainio <vivainio@gmail.com>
* genutils.py: SList.grep supports 'field' argument
* ipy_completers.py: module completer looks inside
.egg zip files (patch by mc). Close #196.
2008-04-09 Ville Vainio <vivainio@gmail.com>
* deep_reload.py: do not crash on from __future__ import
absolute_import. Close #244.
2008-04-02 Ville Vainio <vivainio@gmail.com>
* ipy_winpdb.py: New extension for winpdb integration. %wdb
test.py is winpdb equivalent of %run -d test.py. winpdb is a
crossplatform remote GUI debugger based on wxpython.
2008-03-29 Ville Vainio <vivainio@gmail.com>
* ipython.rst, do_sphinx.py: New documentation base, based on
reStucturedText and Sphinx (html/pdf generation). The old Lyx
based documentation will not be updated anymore.
* jobctrl.py: Use shell in Popen for 'start' command (in windows).
2008-03-24 Ville Vainio <vivainio@gmail.com>
* ipython.rst, do_sphinx.py: New documentation base, based on
reStucturedText and Sphinx (html/pdf generation). The old Lyx
based documentation will not be updated anymore.
ipython.rst has up to date documentation on matters that were not
documented at all, and it also removes various
misdocumented/deprecated features.
2008-03-22 Ville Vainio <vivainio@gmail.com>
* Shell.py: Merge mtexp branch:
https://code.launchpad.net/~ipython/ipython/mtexp
Privides simpler and more robust MTInteractiveShell that won't
deadlock, even when the worker thread (GUI) stops doing runcode()
regularly. r71.
2008-03-20 Ville Vainio <vivainio@gmail.com>
* twshell.py: New shell that runs IPython code in Twisted reactor.
Launch by doing ipython -twisted. r67.
2008-03-19 Ville Vainio <vivainio@gmail.com>
* Magic.py: %rehashx works correctly when shadowed system commands
have upper case characters (e.g. Print.exe). r64.
* ipy_bzr.py, ipy_app_completers.py: new bzr completer that also
knows options to commands, based on bzrtools. Uses bzrlib
directly. r66.
2008-03-16 Ville Vainio <vivainio@gmail.com>
* make_tarball.py: Fixed for bzr.
* ipapi.py: Better _ip.runlines() script cleanup. r56,r79.
* ipy_vimserver.py, ipy.vim: New extension for vim server mode,
by Erich Heine.
2008-03-12 Ville Vainio <vivainio@gmail.com>
* ipmaker.py: Force (reload?) import of ipy_user_conf and
ipy_profile_foo, so that embedded instances can be relaunched and
configuration is still done. r50
* ipapi.py, test_embed.py: Allow specifying shell class in
launch_new_instance & make_new instance. Use this in
test_embed.py. r51.
test_embed.py is also a good and simple demo of embedding IPython.
2008-03-10 Ville Vainio <vivainio@gmail.com>
* tool/update_revnum.py: Change to bzr revisioning scheme in
revision numbers.
* Shell.py: Threading improvements:
In multithreaded shells, do not hang on macros and o.autoexec
commands (or anything executed with _ip.runlines()) anymore. Allow
recursive execution of IPython code in
MTInteractiveShell.runsource by checking if we are already in
worker thread, and execute code directly if we are. r48.
MTInteractiveShell.runsource: execute code directly if worker
thread is not running yet (this is the case in config files). r49.
2008-03-09 Ville Vainio <vivainio@gmail.com>
* ipy_profile_sh.py: You can now use $LA or LA() to refer to last
argument of previous command in sh profile. Similar to bash '!$'.
LA(3) or $LA(3) stands for last argument of input history command
3.
* Shell.py: -pylab names don't clutter %whos listing.
2008-03-07 Ville Vainio <vivainio@gmail.com>
* ipy_autoreload.py: new extension (by Pauli Virtanen) for
autoreloading modules; try %autoreload and %aimport. Close #154.
Uses the new pre_runcode_hook.
2008-02-24 Ville Vainio <vivainio@gmail.com>
* platutils_posix.py: freeze_term_title works
2008-02-21 Ville Vainio <vivainio@gmail.com>
* Magic.py: %quickref does not crash with empty docstring
2008-02-20 Ville Vainio <vivainio@gmail.com>
* completer.py: do not treat [](){} as protectable chars anymore,
close #233.
* completer.py: do not treat [](){} as protectable chars anymore
* magic.py, test_cpaste.py: Allow different prefix for pasting
from email
2008-02-17 Ville Vainio <vivainio@gmail.com>
* Switched over to Launchpad/bzr as primary VCS.
2008-02-14 Ville Vainio <vivainio@gmail.com>
* ipapi.py: _ip.runlines() is now much more liberal about
indentation - it cleans up the scripts it gets
2008-02-14 Ville Vainio <vivainio@gmail.com>
* Extensions/ipy_leo.py: created 'ILeo' IPython-Leo bridge.
Changes to it (later on) are too numerous to list in ChangeLog
until it stabilizes
2008-02-07 Darren Dale <darren.dale@cornell.edu>
* IPython/Shell.py: Call QtCore.pyqtRemoveInputHook() when creating
an IPShellQt4. PyQt4-4.2.1 and later uses PyOS_InputHook to improve
interaction in the interpreter (like Tkinter does), but it seems to
partially interfere with the IPython implementation and exec_()
still seems to block. So we disable the PyQt implementation and
stick with the IPython one for now.
2008-02-02 Walter Doerwald <walter@livinglogic.de>
* ipipe.py: A new ipipe table has been added: ialias produces all
entries from IPython's alias table.
2008-02-01 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Shell.py (MTInteractiveShell.runcode): Improve handling
of KBINT in threaded shells. After code provided by Marc in #212.
2008-01-30 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Shell.py (MTInteractiveShell.__init__): Fixed deadlock
that could occur due to a race condition in threaded shells.
Thanks to code provided by Marc, as #210.
2008-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Magic.py (magic_doctest_mode): respect the user's
settings for input separators rather than overriding them. After
a report by Jeff Kowalczyk <jtk-AT-yahoo.com>
* IPython/history.py (magic_history): Add support for declaring an
output file directly from the history command.
2008-01-21 Walter Doerwald <walter@livinglogic.de>
* ipipe.py: Register ipipe's displayhooks via the generic function
generics.result_display() instead of using ipapi.set_hook().
2008-01-19 Walter Doerwald <walter@livinglogic.de>
* ibrowse.py, igrid.py, ipipe.py:
The input object can now be passed to the constructor of the display classes.
This makes it possible to use them with objects that implement __or__.
Use this constructor in the displayhook instead of piping.
* ipipe.py: Importing astyle.py is done as late as possible to
avoid problems with circular imports.
2008-01-19 Ville Vainio <vivainio@gmail.com>
* hooks.py, iplib.py: Added 'shell_hook' to customize how
IPython calls shell.
* hooks.py, iplib.py: Added 'show_in_pager' hook to specify
how IPython pages text (%page, %pycat, %pdoc etc.)
* Extensions/jobctrl.py: Use shell_hook. New magics: '%tasks'
and '%kill' to kill hanging processes that won't obey ctrl+C.
2008-01-16 Ville Vainio <vivainio@gmail.com>
* ipy_completers.py: pyw extension support for %run completer.
2008-01-11 Ville Vainio <vivainio@gmail.com>
* iplib.py, ipmaker.py: new rc option - autoexec. It's a list
of ipython commands to be run when IPython has started up
(just before running the scripts and -c arg on command line).
* ipy_user_conf.py: Added an example on how to change term
colors in config file (through using autoexec).
* completer.py, test_completer.py: Ability to specify custom
get_endidx to replace readline.get_endidx. For emacs users.
2008-01-10 Ville Vainio <vivainio@gmail.com>
* Prompts.py (set_p_str): do not crash on illegal prompt strings
2008-01-08 Ville Vainio <vivainio@gmail.com>
* '%macro -r' (raw mode) is now default in sh profile.
2007-12-31 Ville Vainio <vivainio@gmail.com>
* completer.py: custom completer matching is now case sensitive
(#207).
* ultraTB.py, iplib.py: Add some KeyboardInterrupt catching in
an attempt to prevent occasional crashes.
* CrashHandler.py: Crash log dump now asks user to press enter
before exiting.
* Store _ip in user_ns instead of __builtin__, enabling safer
coexistence of multiple IPython instances in the same python
interpreter (#197).
* Debugger.py, ipmaker.py: Need to add '-pydb' command line
switch to enable pydb in post-mortem debugging and %run -d.
2007-12-28 Ville Vainio <vivainio@gmail.com>
* ipy_server.py: TCP socket server for "remote control" of an IPython
instance.
* Debugger.py: Change to PSF license
* simplegeneric.py: Add license & author notes.
* ipy_fsops.py: Added PathObj and FileObj, an object-oriented way
to navigate file system with a custom completer. Run
ipy_fsops.test_pathobj() to play with it.
2007-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/dtutils.py: Add utilities for interactively running
doctests. Still needs work to more easily handle the namespace of
the package one may be working on, but the basics are in place.
2007-12-27 Ville Vainio <vivainio@gmail.com>
* ipy_completers.py: Applied arno's patch to get proper list of
packages in import completer. Closes #196.
2007-12-20 Ville Vainio <vivainio@gmail.com>
* completer.py, generics.py(complete_object): Allow
custom complers based on python objects via simplegeneric.
See generics.py / my_demo_complete_object
2007-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Prompts.py (BasePrompt.__nonzero__): add proper boolean
behavior to prompt objects, useful for display hooks to adjust
themselves depending on whether prompts will be there or not.
2007-12-13 Ville Vainio <vivainio@gmail.com>
* iplib.py(raw_input): unix readline does not allow unicode in
history, encode to normal string. After patch by Tiago.
Close #201
2007-12-12 Ville Vainio <vivainio@gmail.com>
* genutils.py (abbrev_cwd): Terminal title now shows 2 levels of
current directory.
2007-12-12 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Shell.py (_select_shell): add support for controlling
the pylab threading mode directly at the command line, without
having to modify MPL config files. Added unit tests for this
feature, though manual/docs update is still pending, will do later.
2007-12-11 Ville Vainio <vivainio@gmail.com>
* ext_rescapture.py: var = !cmd is no longer verbose (to facilitate
use in scripts)
2007-12-07 Ville Vainio <vivainio@gmail.com>
* iplib.py, ipy_profile_sh.py: Do not escape # on command lines
anymore (to \#) - even if it is a comment char that is implicitly
escaped in some unix shells in interactive mode, it is ok to leave
it in IPython as such.
2007-12-01 Robert Kern <robert.kern@gmail.com>
* IPython/ultraTB.py (findsource): Improve the monkeypatch to
inspect.findsource(). It can now find source lines inside zipped
packages.
* IPython/ultraTB.py: When constructing tracebacks, try to use __file__
in the frame's namespace before trusting the filename in the code object
which created the frame.
2007-11-29 *** Released version 0.8.2
2007-11-25 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Logger.py (Logger.logstop): add a proper logstop()
method to fully stop the logger, along with a corresponding
%logstop magic for interactive use.
* IPython/Extensions/ipy_host_completers.py: added new host
completers functionality, contributed by Gael Pasgrimaud
<gawel-AT-afpy.org>.
2007-11-24 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/DPyGetOpt.py (ArgumentError): Apply patch by Paul Mueller
<gakusei-AT-dakotacom.net>, to fix deprecated string exceptions in
options handling. Unicode fix in %whos (committed a while ago)
was also contributed by Paul.
2007-11-23 Darren Dale <darren.dale@cornell.edu>
* ipy_traits_completer.py: let traits_completer respect the user's
readline_omit__names setting.
2007-11-08 Ville Vainio <vivainio@gmail.com>
* ipy_completers.py (import completer): assume 'xml' module exists.
Do not add every module twice anymore. Closes #196.
* ipy_completers.py, ipy_app_completers.py: Add proper apt-get
completer that uses apt-cache to search for existing packages.
2007-11-06 Ville Vainio <vivainio@gmail.com>
* Prompts.py: Do not update _oh and _123 when do_full_cache is not
true. Closes #194.
2007-11-01 Brian Granger <ellisonbg@gmail.com>
* iplib.py, rlineimpl.py: Applied Body Water's patches to get IPython
working with OS X 10.5 libedit implementation of readline.
2007-10-24 Ville Vainio <vivainio@gmail.com>
* iplib.py(user_setup): To route around buggy installations where
UserConfig is not available, create a minimal _ipython.
* iplib.py: Unicode fixes from Jorgen.
* genutils.py: Slist now has new method 'fields()' for extraction of
whitespace-separated fields from line-oriented data.
2007-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/OInspect.py (Inspector.pinfo): fix bug that could arise
when querying objects with no __class__ attribute (such as
f2py-generated modules).
2007-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Magic.py (magic_time): track compilation time and report
it if longer than 0.1s (fix done to %time and %timeit). After a
SAGE bug report: http://trac.sagemath.org/sage_trac/ticket/632.
2007-09-18 Ville Vainio <vivainio@gmail.com>
* genutils.py(make_quoted_expr): Do not use Itpl, it does
not support unicode at the moment. Fixes (many) magic calls with
special characters.
2007-09-14 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/genutils.py (doctest_reload): expose the doctest
reloader to the user so that people can easily reset doctest while
using it interactively. Fixes a problem reported by Jorgen.
* IPython/iplib.py (InteractiveShell.__init__): protect the
FakeModule instances used for __main__ in %run calls from
deletion, so that user code defined in them isn't left with
dangling references due to the Python module deletion machinery.
This should fix the problems reported by Darren.
2007-09-10 Darren Dale <dd55@cornell.edu>
* Cleanup of IPShellQt and IPShellQt4
2007-09-09 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/FakeModule.py (FakeModule.__init__): further fixes for
doctest support.
* IPython/iplib.py (safe_execfile): minor docstring improvements.
2007-09-08 Ville Vainio <vivainio@gmail.com>
* Magic.py (%pushd, %popd, %dirs): Fix dir stack - push *current*
directory, not the target directory.
* ipapi.py, Magic.py, iplib.py: Add ipapi.UsageError, a lighter weight
exception that won't print the tracebacks. Switched many magics to
raise them on error situations, also GetoptError is not printed
anymore.
2007-09-07 Ville Vainio <vivainio@gmail.com>
* iplib.py: do not auto-alias "dir", it screws up other dir auto
aliases.
* genutils.py: SList.grep() implemented.
* ipy_editors.py, UserConfig/ipy_user_conf.py: Add some editors
for easy "out of the box" setup of several common editors, so that
e.g. '%edit os.path.isfile' will jump to the correct line
automatically. Contributions for command lines of your favourite
editors welcome.
2007-09-07 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/OInspect.py (Inspector.pinfo): fixed bug that was
preventing source display in certain cases. In reality I think
the problem is with Ubuntu's Python build, but this change works
around the issue in some cases (not in all, unfortunately). I'd
filed a Python bug on this with more details, but in the change of
bug trackers it seems to have been lost.
* IPython/Magic.py (magic_dhist): restore %dhist. No, cd -TAB is
not the same, it's not self-documenting, doesn't allow range
selection, and sorts alphabetically instead of numerically.
(magic_r): restore %r. No, "up + enter. One char magic" is not
the same thing, since %r takes parameters to allow fast retrieval
of old commands. I've received emails from users who use this a
LOT, so it stays.
(magic_automagic): restore %automagic. "use _ip.option.automagic"
is not a valid replacement b/c it doesn't provide an complete
explanation (which the automagic docstring does).
(magic_autocall): restore %autocall, with improved docstring.
Same argument as for others, "use _ip.options.autocall" is not a
valid replacement.
(magic_pdef): restore %pdef & friends. Used widely, mentioned in
tutorials and online docs.
2007-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/usage.py (quick_reference): mention magics in quickref,
modified main banner to mention %quickref.
* IPython/FakeModule.py (FakeModule): fixes for doctest compatibility.
2007-09-06 Ville Vainio <vivainio@gmail.com>
* ipy_rehashdir.py, ipy_workdir.py, ipy_fsops.py, iplib.py:
Callable aliases now pass the _ip as first arg. This breaks
compatibility with earlier 0.8.2.svn series! (though they should
not have been in use yet outside these few extensions)
2007-09-05 Ville Vainio <vivainio@gmail.com>
* external/mglob.py: expand('dirname') => ['dirname'], instead
of ['dirname/foo','dirname/bar', ...].
* Extensions/ipy_fsops.py: added, has usefull shell utils for plain
win32 installations: icp, imv, imkdir, igrep, irm, collect (collect
is useful for others as well).
* iplib.py: on callable aliases (as opposed to old style aliases),
do var_expand() immediately, and use make_quoted_expr instead
of hardcoded r"""
* Extensions/ipy_profile_sh.py: Try to detect cygwin on win32,
if not available load ipy_fsops.py for cp, mv, etc. replacements
* OInspect.py, ipy_which.py: improve %which and obj? for callable
aliases
2007-09-04 Ville Vainio <vivainio@gmail.com>
* ipy_profile_zope.py: add zope profile, by Stefan Eletzhofer.
Relicensed under BSD with the authors approval.
* ipmaker.py, usage.py: Remove %magic from default banner, improve
%quickref
2007-09-03 Ville Vainio <vivainio@gmail.com>
* Magic.py: %time now passes expression through prefilter,
allowing IPython syntax.
2007-09-01 Ville Vainio <vivainio@gmail.com>
* ipmaker.py: Always show full traceback when newstyle config fails
2007-08-27 Ville Vainio <vivainio@gmail.com>
* Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
2007-08-26 Ville Vainio <vivainio@gmail.com>
* ipmaker.py: Command line args have the highest priority again
* iplib.py, ipmaker.py: -i command line argument now behaves as in
normal python, i.e. leaves the IPython session running after -c
command or running a batch file from command line.
2007-08-22 Ville Vainio <vivainio@gmail.com>
* iplib.py: no extra empty (last) line in raw hist w/ multiline
statements
* logger.py: Fix bug where blank lines in history were not
added until AFTER adding the current line; translated and raw
history should finally be in sync with prompt now.
* ipy_completers.py: quick_completer now makes it easy to create
trivial custom completers
* clearcmd.py: shadow history compression & erasing, fixed input hist
clearing.
* envpersist.py, history.py: %env (sh profile only), %hist completers
* genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
term title now include the drive letter, and always use / instead of
os.sep (as per recommended approach for win32 ipython in general).
* ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
plain python scripts from ipykit command line by running
"py myscript.py", even w/o installed python.
2007-08-21 Ville Vainio <vivainio@gmail.com>
* ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
(for backwards compatibility)
* history.py: switch back to %hist -t from %hist -r as default.
At least until raw history is fixed for good.
2007-08-20 Ville Vainio <vivainio@gmail.com>
* ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
locate alias redeclarations etc. Also, avoid handling
_ip.IP.alias_table directly, prefer using _ip.defalias.
2007-08-15 Ville Vainio <vivainio@gmail.com>
* prefilter.py: ! is now always served first
2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/iplib.py (safe_execfile): fix the SystemExit
auto-suppression code to work in Python2.4 (the internal structure
of that exception changed and I'd only tested the code with 2.5).
Bug reported by a SciPy attendee.
2007-08-13 Ville Vainio <vivainio@gmail.com>
* prefilter.py: reverted !c:/bin/foo fix, made % in
multiline specials work again
2007-08-13 Ville Vainio <vivainio@gmail.com>
* prefilter.py: Take more care to special-case !, so that
!c:/bin/foo.exe works.
* setup.py: if we are building eggs, strip all docs and
examples (it doesn't make sense to bytecompile examples,
and docs would be in an awkward place anyway).
* Ryan Krauss' patch fixes start menu shortcuts when IPython
is installed into a directory that has spaces in the name.
2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Magic.py (magic_doctest_mode): fix prompt separators in
doctest profile and %doctest_mode, so they actually generate the
blank lines needed by doctest to separate individual tests.
* IPython/iplib.py (safe_execfile): modify so that running code
which calls sys.exit(0) (or equivalently, raise SystemExit(0))
doesn't get a printed traceback. Any other value in sys.exit(),
including the empty call, still generates a traceback. This
enables use of %run without having to pass '-e' for codes that
correctly set the exit status flag.
2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/iplib.py (InteractiveShell.post_config_initialization):
fix problems with doctests failing when run inside IPython due to
IPython's modifications of sys.displayhook.
2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
* IPython/ipapi.py (to_user_ns): update to accept a dict as well as
a string with names.
2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
magic to toggle on/off the doctest pasting support without having
to leave a session to switch to a separate profile.
2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
introduce a blank line between inputs, to conform to doctest
requirements.
* IPython/OInspect.py (Inspector.pinfo): fix another part where
auto-generated docstrings for new-style classes were showing up.
2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
* api_changes: Add new file to track backward-incompatible
user-visible changes.
2007-08-06 Ville Vainio <vivainio@gmail.com>
* ipmaker.py: fix bug where user_config_ns didn't exist at all
before all the config files were handled.
2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/irunner.py (RunnerFactory): Add new factory class for
creating reusable runners based on filenames.
* IPython/Extensions/ipy_profile_doctest.py: New profile for
doctest support. It sets prompts/exceptions as similar to
standard Python as possible, so that ipython sessions in this
profile can be easily pasted as doctests with minimal
modifications. It also enables pasting of doctests from external
sources (even if they have leading whitespace), so that you can
rerun doctests from existing sources.
* IPython/iplib.py (_prefilter): fix a buglet where after entering
some whitespace, the prompt would become a continuation prompt
with no way of exiting it other than Ctrl-C. This fix brings us
into conformity with how the default python prompt works.
* IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
Add support for pasting not only lines that start with '>>>', but
also with ' >>>'. That is, arbitrary whitespace can now precede
the prompts. This makes the system useful for pasting doctests
from docstrings back into a normal session.
2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
r1357, which had killed multiple invocations of an embedded
ipython (this means that example-embed has been broken for over 1
year!!!). Rather than possibly breaking the batch stuff for which
the code in iplib.py/interact was introduced, I worked around the
problem in the embedding class in Shell.py. We really need a
bloody test suite for this code, I'm sick of finding stuff that
used to work breaking left and right every time I use an old
feature I hadn't touched in a few months.
(kill_embedded): Add a new magic that only shows up in embedded
mode, to allow users to permanently deactivate an embedded instance.
2007-08-01 Ville Vainio <vivainio@gmail.com>
* iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
history gets out of sync on runlines (e.g. when running macros).
2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Magic.py (magic_colors): fix win32-related error message
that could appear under *nix when readline was missing. Patch by
Scott Jackson, closes #175.
2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Extensions/ipy_traits_completer.py: Add a new custom
completer that it traits-aware, so that traits objects don't show
all of their internal attributes all the time.
* IPython/genutils.py (dir2): moved this code from inside
completer.py to expose it publicly, so I could use it in the
wildcards bugfix.
* IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
Stefan with Traits.
* IPython/completer.py (Completer.attr_matches): change internal
var name from 'object' to 'obj', since 'object' is now a builtin
and this can lead to weird bugs if reusing this code elsewhere.
2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/OInspect.py (Inspector.pinfo): fix small glitches in
'foo?' and update the code to prevent printing of default
docstrings that started appearing after I added support for
new-style classes. The approach I'm using isn't ideal (I just
special-case those strings) but I'm not sure how to more robustly
differentiate between truly user-written strings and Python's
automatic ones.
2007-07-09 Ville Vainio <vivainio@gmail.com>
* completer.py: Applied Matthew Neeley's patch:
Dynamic attributes from trait_names and _getAttributeNames are added
to the list of tab completions, but when this happens, the attribute
list is turned into a set, so the attributes are unordered when
printed, which makes it hard to find the right completion. This patch
turns this set back into a list and sort it.
2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/OInspect.py (Inspector.pinfo): Add support for new-style
classes in various inspector functions.
2007-06-28 Ville Vainio <vivainio@gmail.com>
* shadowns.py, iplib.py, ipapi.py, OInspect.py:
Implement "shadow" namespace, and callable aliases that reside there.
Use them by:
_ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
foo hello world
(gets translated to:)
_sh.foo(r"""hello world""")
In practice, this kind of alias can take the role of a magic function
* New generic inspect_object, called on obj? and obj??
2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/ultraTB.py (findsource): fix a problem with
inspect.getfile that can cause crashes during traceback construction.
2007-06-14 Ville Vainio <vivainio@gmail.com>
* iplib.py (handle_auto): Try to use ascii for printing "--->"
autocall rewrite indication, becausesometimes unicode fails to print
properly (and you get ' - - - '). Use plain uncoloured ---> for
unicode.
* shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
. pickleshare 'hash' commands (hget, hset, hcompress,
hdict) for efficient shadow history storage.
2007-06-13 Ville Vainio <vivainio@gmail.com>
* ipapi.py: _ip.to_user_ns(vars, interactive = True).
Added kw arg 'interactive', tell whether vars should be visible
with %whos.
2007-06-11 Ville Vainio <vivainio@gmail.com>
* pspersistence.py, Magic.py, iplib.py: directory history now saved
to db
* iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
Also, it exits IPython immediately after evaluating the command (just like
std python)
2007-06-05 Walter Doerwald <walter@livinglogic.de>
* IPython/Extensions/ipipe.py: Added a new table icap, which executes a
Python string and captures the output. (Idea and original patch by
Stefan van der Walt)
2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/ultraTB.py (VerboseTB.text): update printing of
exception types for Python 2.5 (now all exceptions in the stdlib
are new-style classes).
2007-05-31 Walter Doerwald <walter@livinglogic.de>
* IPython/Extensions/igrid.py: Add new commands refresh and
refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
the iterator once (refresh) or after every x seconds (refresh_timer).
Add a working implementation of "searchexpression", where the text
entered is not the text to search for, but an expression that must
be true. Added display of shortcuts to the menu. Added commands "pickinput"
and "pickinputattr" that put the object or attribute under the cursor
in the input line. Split the statusbar to be able to display the currently
active refresh interval. (Patch by Nik Tautenhahn)
2007-05-29 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
* fixing set_term_title to use ctypes as default
* fixing set_term_title fallback to work when curent dir
is on a windows network share
2007-05-28 Ville Vainio <vivainio@gmail.com>
* %cpaste: strip + with > from left (diffs).
* iplib.py: Fix crash when readline not installed
2007-05-26 Ville Vainio <vivainio@gmail.com>
* generics.py: introduce easy to extend result_display generic
function (using simplegeneric.py).
* Fixed the append functionality of %set.
2007-05-25 Ville Vainio <vivainio@gmail.com>
* New magic: %rep (fetch / run old commands from history)
* New extension: mglob (%mglob magic), for powerful glob / find /filter
like functionality
% maghistory.py: %hist -g PATTERM greps the history for pattern
2007-05-24 Walter Doerwald <walter@livinglogic.de>
* IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
browse the IPython input history
* IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
(mapped to "i") can be used to put the object under the curser in the input
line. pickinputattr (mapped to "I") does the same for the attribute under
the cursor.
2007-05-24 Ville Vainio <vivainio@gmail.com>
* Grand magic cleansing (changeset [2380]):
* Introduce ipy_legacy.py where the following magics were
moved:
pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
If you need them, either use default profile or "import ipy_legacy"
in your ipy_user_conf.py
* Move sh and scipy profile to Extensions from UserConfig. this implies
you should not edit them, but you don't need to run %upgrade when
upgrading IPython anymore.
* %hist/%history now operates in "raw" mode by default. To get the old
behaviour, run '%hist -n' (native mode).
* split ipy_stock_completers.py to ipy_stock_completers.py and
ipy_app_completers.py. Stock completers (%cd, import, %run) are now
installed as default.
* sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
handling.
* iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
input if readline is available.
2007-05-23 Ville Vainio <vivainio@gmail.com>
* macro.py: %store uses __getstate__ properly
* exesetup.py: added new setup script for creating
standalone IPython executables with py2exe (i.e.
no python installation required).
* Removed ipythonrc-scipy, ipy_profile_scipy.py takes
its place.
* rlineimpl.py, genutils.py (get_home_dir): py2exe support
2007-05-21 Ville Vainio <vivainio@gmail.com>
* platutil_win32.py (set_term_title): handle
failure of 'title' system call properly.
2007-05-17 Walter Doerwald <walter@livinglogic.de>
* IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
(Bug detected by Paul Mueller).