##// END OF EJS Templates
traits completer respects readline_omit__names
darren.dale -
Show More
@@ -1,173 +1,180 b''
1 """Traits-aware tab completion.
1 """Traits-aware tab completion.
2
2
3 This module provides a custom tab-completer that intelligently hides the names
3 This module provides a custom tab-completer that intelligently hides the names
4 that the enthought.traits library (http://code.enthought.com/traits)
4 that the enthought.traits library (http://code.enthought.com/traits)
5 automatically adds to all objects that inherit from its base HasTraits class.
5 automatically adds to all objects that inherit from its base HasTraits class.
6
6
7
7
8 Activation
8 Activation
9 ==========
9 ==========
10
10
11 To use this, put in your ~/.ipython/ipy_user_conf.py file:
11 To use this, put in your ~/.ipython/ipy_user_conf.py file:
12
12
13 from ipy_traits_completer import activate
13 from ipy_traits_completer import activate
14 activate([complete_threshold])
14 activate([complete_threshold])
15
15
16 The optional complete_threshold argument is the minimal length of text you need
16 The optional complete_threshold argument is the minimal length of text you need
17 to type for tab-completion to list names that are automatically generated by
17 to type for tab-completion to list names that are automatically generated by
18 traits. The default value is 3. Note that at runtime, you can change this
18 traits. The default value is 3. Note that at runtime, you can change this
19 value simply by doing:
19 value simply by doing:
20
20
21 import ipy_traits_completer
21 import ipy_traits_completer
22 ipy_traits_completer.COMPLETE_THRESHOLD = 4
22 ipy_traits_completer.COMPLETE_THRESHOLD = 4
23
23
24
24
25 Usage
25 Usage
26 =====
26 =====
27
27
28 The system works as follows. If t is an empty object that HasTraits, then
28 The system works as follows. If t is an empty object that HasTraits, then
29 (assuming the threshold is at the default value of 3):
29 (assuming the threshold is at the default value of 3):
30
30
31 In [7]: t.ed<TAB>
31 In [7]: t.ed<TAB>
32
32
33 doesn't show anything at all, but:
33 doesn't show anything at all, but:
34
34
35 In [7]: t.edi<TAB>
35 In [7]: t.edi<TAB>
36 t.edit_traits t.editable_traits
36 t.edit_traits t.editable_traits
37
37
38 shows these two names that come from traits. This allows you to complete on
38 shows these two names that come from traits. This allows you to complete on
39 the traits-specific names by typing at least 3 letters from them (or whatever
39 the traits-specific names by typing at least 3 letters from them (or whatever
40 you set your threshold to), but to otherwise not see them in normal completion.
40 you set your threshold to), but to otherwise not see them in normal completion.
41
41
42
42
43 Notes
43 Notes
44 =====
44 =====
45
45
46 - This requires Python 2.4 to work (I use sets). I don't think anyone is
46 - This requires Python 2.4 to work (I use sets). I don't think anyone is
47 using traits with 2.3 anyway, so that's OK.
47 using traits with 2.3 anyway, so that's OK.
48 """
48 """
49
49
50 #############################################################################
50 #############################################################################
51 # External imports
51 # External imports
52 from enthought.traits import api as T
52 from enthought.traits import api as T
53
53
54 # IPython imports
54 # IPython imports
55 from IPython.ipapi import TryNext, get as ipget
55 from IPython.ipapi import TryNext, get as ipget
56 from IPython.genutils import dir2
56 from IPython.genutils import dir2
57
57
58 #############################################################################
58 #############################################################################
59 # Module constants
59 # Module constants
60
60
61 # The completion threshold
61 # The completion threshold
62 # This is currently implemented as a module global, since this sytem isn't
62 # This is currently implemented as a module global, since this sytem isn't
63 # likely to be modified at runtime by multiple instances. If needed in the
63 # likely to be modified at runtime by multiple instances. If needed in the
64 # future, we can always make it local to the completer as a function attribute.
64 # future, we can always make it local to the completer as a function attribute.
65 COMPLETE_THRESHOLD = 3
65 COMPLETE_THRESHOLD = 3
66
66
67 # Set of names that Traits automatically adds to ANY traits-inheriting object.
67 # Set of names that Traits automatically adds to ANY traits-inheriting object.
68 # These are the names we'll filter out.
68 # These are the names we'll filter out.
69 TRAIT_NAMES = set( dir2(T.HasTraits()) ) - set( dir2(object()) )
69 TRAIT_NAMES = set( dir2(T.HasTraits()) ) - set( dir2(object()) )
70
70
71 #############################################################################
71 #############################################################################
72 # Code begins
72 # Code begins
73
73
74 def trait_completer(self,event):
74 def trait_completer(self,event):
75 """A custom IPython tab-completer that is traits-aware.
75 """A custom IPython tab-completer that is traits-aware.
76
76
77 It tries to hide the internal traits attributes, and reveal them only when
77 It tries to hide the internal traits attributes, and reveal them only when
78 it can reasonably guess that the user really is after one of them.
78 it can reasonably guess that the user really is after one of them.
79 """
79 """
80
80
81 #print '\nevent is:',event # dbg
81 #print '\nevent is:',event # dbg
82 symbol_parts = event.symbol.split('.')
82 symbol_parts = event.symbol.split('.')
83 base = '.'.join(symbol_parts[:-1])
83 base = '.'.join(symbol_parts[:-1])
84 #print 'base:',base # dbg
84 #print 'base:',base # dbg
85
85
86 oinfo = self._ofind(base)
86 oinfo = self._ofind(base)
87 if not oinfo['found']:
87 if not oinfo['found']:
88 raise TryNext
88 raise TryNext
89
89
90 obj = oinfo['obj']
90 obj = oinfo['obj']
91 # OK, we got the object. See if it's traits, else punt
91 # OK, we got the object. See if it's traits, else punt
92 if not isinstance(obj,T.HasTraits):
92 if not isinstance(obj,T.HasTraits):
93 raise TryNext
93 raise TryNext
94
94
95 # it's a traits object, don't show the tr* attributes unless the completion
95 # it's a traits object, don't show the tr* attributes unless the completion
96 # begins with 'tr'
96 # begins with 'tr'
97 attrs = dir2(obj)
97 attrs = dir2(obj)
98 # Now, filter out the attributes that start with the user's request
98 # Now, filter out the attributes that start with the user's request
99 attr_start = symbol_parts[-1]
99 attr_start = symbol_parts[-1]
100 if attr_start:
100 if attr_start:
101 attrs = [a for a in attrs if a.startswith(attr_start)]
101 attrs = [a for a in attrs if a.startswith(attr_start)]
102
103 # Let's also respect the user's readline_omit__names setting:
104 omit__names = ipget().options.readline_omit__names
105 if omit__names == 1:
106 attrs = [a for a in attrs if not a.startswith('__')]
107 elif omit__names == 2:
108 attrs = [a for a in attrs if not a.startswith('_')]
102
109
103 #print '\nastart:<%r>' % attr_start # dbg
110 #print '\nastart:<%r>' % attr_start # dbg
104
111
105 if len(attr_start)<COMPLETE_THRESHOLD:
112 if len(attr_start)<COMPLETE_THRESHOLD:
106 attrs = list(set(attrs) - TRAIT_NAMES)
113 attrs = list(set(attrs) - TRAIT_NAMES)
107
114
108 # The base of the completion, so we can form the final results list
115 # The base of the completion, so we can form the final results list
109 bdot = base+'.'
116 bdot = base+'.'
110
117
111 tcomp = [bdot+a for a in attrs]
118 tcomp = [bdot+a for a in attrs]
112 #print 'tcomp:',tcomp
119 #print 'tcomp:',tcomp
113 return tcomp
120 return tcomp
114
121
115 def activate(complete_threshold = COMPLETE_THRESHOLD):
122 def activate(complete_threshold = COMPLETE_THRESHOLD):
116 """Activate the Traits completer.
123 """Activate the Traits completer.
117
124
118 :Keywords:
125 :Keywords:
119 complete_threshold : int
126 complete_threshold : int
120 The minimum number of letters that a user must type in order to
127 The minimum number of letters that a user must type in order to
121 activate completion of traits-private names."""
128 activate completion of traits-private names."""
122
129
123 if not (isinstance(complete_threshold,int) and
130 if not (isinstance(complete_threshold,int) and
124 complete_threshold>0):
131 complete_threshold>0):
125 e='complete_threshold must be a positive integer, not %r' % \
132 e='complete_threshold must be a positive integer, not %r' % \
126 complete_threshold
133 complete_threshold
127 raise ValueError(e)
134 raise ValueError(e)
128
135
129 # Set the module global
136 # Set the module global
130 global COMPLETE_THRESHOLD
137 global COMPLETE_THRESHOLD
131 COMPLETE_THRESHOLD = complete_threshold
138 COMPLETE_THRESHOLD = complete_threshold
132
139
133 # Activate the traits aware completer
140 # Activate the traits aware completer
134 ip = ipget()
141 ip = ipget()
135 ip.set_hook('complete_command', trait_completer, re_key = '.*')
142 ip.set_hook('complete_command', trait_completer, re_key = '.*')
136
143
137
144
138 #############################################################################
145 #############################################################################
139 if __name__ == '__main__':
146 if __name__ == '__main__':
140 # Testing/debugging
147 # Testing/debugging
141
148
142 # A sorted list of the names we'll filter out
149 # A sorted list of the names we'll filter out
143 TNL = list(TRAIT_NAMES)
150 TNL = list(TRAIT_NAMES)
144 TNL.sort()
151 TNL.sort()
145
152
146 # Make a few objects for testing
153 # Make a few objects for testing
147 class TClean(T.HasTraits): pass
154 class TClean(T.HasTraits): pass
148 class Bunch(object): pass
155 class Bunch(object): pass
149 # A clean traits object
156 # A clean traits object
150 t = TClean()
157 t = TClean()
151 # A nested object containing t
158 # A nested object containing t
152 f = Bunch()
159 f = Bunch()
153 f.t = t
160 f.t = t
154 # And a naked new-style object
161 # And a naked new-style object
155 o = object()
162 o = object()
156
163
157 ip = ipget().IP
164 ip = ipget().IP
158
165
159 # A few simplistic tests
166 # A few simplistic tests
160
167
161 # Reset the threshold to the default, in case the test is running inside an
168 # Reset the threshold to the default, in case the test is running inside an
162 # instance of ipython that changed it
169 # instance of ipython that changed it
163 import ipy_traits_completer
170 import ipy_traits_completer
164 ipy_traits_completer.COMPLETE_THRESHOLD = 3
171 ipy_traits_completer.COMPLETE_THRESHOLD = 3
165
172
166 assert ip.complete('t.ed') ==[]
173 assert ip.complete('t.ed') ==[]
167
174
168 # For some bizarre reason, these fail on the first time I run them, but not
175 # For some bizarre reason, these fail on the first time I run them, but not
169 # afterwards. Traits does some really weird stuff at object instantiation
176 # afterwards. Traits does some really weird stuff at object instantiation
170 # time...
177 # time...
171 ta = ip.complete('t.edi')
178 ta = ip.complete('t.edi')
172 assert ta == ['t.edit_traits', 't.editable_traits']
179 assert ta == ['t.edit_traits', 't.editable_traits']
173 print 'Tests OK'
180 print 'Tests OK'
@@ -1,7230 +1,7234 b''
1 2007-11-23 Darren Dale <darren.dale@cornell.edu>
2 * ipy_traits_completer.py: let traits_completer respect the user's
3 readline_omit__names setting.
4
1 2007-11-08 Ville Vainio <vivainio@gmail.com>
5 2007-11-08 Ville Vainio <vivainio@gmail.com>
2 * ipy_completers.py (import completer): assume 'xml' module exists.
6 * ipy_completers.py (import completer): assume 'xml' module exists.
3 Do not add every module twice anymore. Closes #196.
7 Do not add every module twice anymore. Closes #196.
4
8
5 * ipy_completers.py, ipy_app_completers.py: Add proper apt-get
9 * ipy_completers.py, ipy_app_completers.py: Add proper apt-get
6 completer that uses apt-cache to search for existing packages.
10 completer that uses apt-cache to search for existing packages.
7
11
8 2007-11-06 Ville Vainio <vivainio@gmail.com>
12 2007-11-06 Ville Vainio <vivainio@gmail.com>
9
13
10 * Prompts.py: Do not update _oh and _123 when do_full_cache is not
14 * Prompts.py: Do not update _oh and _123 when do_full_cache is not
11 true. Closes #194.
15 true. Closes #194.
12
16
13 2007-11-01 Brian Granger <ellisonbg@gmail.com>
17 2007-11-01 Brian Granger <ellisonbg@gmail.com>
14
18
15 * iplib.py, rlineimpl.py: Applied Body Water's patches to get IPython
19 * iplib.py, rlineimpl.py: Applied Body Water's patches to get IPython
16 working with OS X 10.5 libedit implementation of readline.
20 working with OS X 10.5 libedit implementation of readline.
17
21
18 2007-10-24 Ville Vainio <vivainio@gmail.com>
22 2007-10-24 Ville Vainio <vivainio@gmail.com>
19
23
20 * iplib.py(user_setup): To route around buggy installations where
24 * iplib.py(user_setup): To route around buggy installations where
21 UserConfig is not available, create a minimal _ipython.
25 UserConfig is not available, create a minimal _ipython.
22
26
23 * iplib.py: Unicode fixes from Jorgen.
27 * iplib.py: Unicode fixes from Jorgen.
24
28
25 * genutils.py: Slist now has new method 'fields()' for extraction of
29 * genutils.py: Slist now has new method 'fields()' for extraction of
26 whitespace-separated fields from line-oriented data.
30 whitespace-separated fields from line-oriented data.
27
31
28 2007-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
32 2007-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
29
33
30 * IPython/OInspect.py (Inspector.pinfo): fix bug that could arise
34 * IPython/OInspect.py (Inspector.pinfo): fix bug that could arise
31 when querying objects with no __class__ attribute (such as
35 when querying objects with no __class__ attribute (such as
32 f2py-generated modules).
36 f2py-generated modules).
33
37
34 2007-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
38 2007-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
35
39
36 * IPython/Magic.py (magic_time): track compilation time and report
40 * IPython/Magic.py (magic_time): track compilation time and report
37 it if longer than 0.1s (fix done to %time and %timeit). After a
41 it if longer than 0.1s (fix done to %time and %timeit). After a
38 SAGE bug report: http://trac.sagemath.org/sage_trac/ticket/632.
42 SAGE bug report: http://trac.sagemath.org/sage_trac/ticket/632.
39
43
40 2007-09-18 Ville Vainio <vivainio@gmail.com>
44 2007-09-18 Ville Vainio <vivainio@gmail.com>
41
45
42 * genutils.py(make_quoted_expr): Do not use Itpl, it does
46 * genutils.py(make_quoted_expr): Do not use Itpl, it does
43 not support unicode at the moment. Fixes (many) magic calls with
47 not support unicode at the moment. Fixes (many) magic calls with
44 special characters.
48 special characters.
45
49
46 2007-09-14 Fernando Perez <Fernando.Perez@colorado.edu>
50 2007-09-14 Fernando Perez <Fernando.Perez@colorado.edu>
47
51
48 * IPython/genutils.py (doctest_reload): expose the doctest
52 * IPython/genutils.py (doctest_reload): expose the doctest
49 reloader to the user so that people can easily reset doctest while
53 reloader to the user so that people can easily reset doctest while
50 using it interactively. Fixes a problem reported by Jorgen.
54 using it interactively. Fixes a problem reported by Jorgen.
51
55
52 * IPython/iplib.py (InteractiveShell.__init__): protect the
56 * IPython/iplib.py (InteractiveShell.__init__): protect the
53 FakeModule instances used for __main__ in %run calls from
57 FakeModule instances used for __main__ in %run calls from
54 deletion, so that user code defined in them isn't left with
58 deletion, so that user code defined in them isn't left with
55 dangling references due to the Python module deletion machinery.
59 dangling references due to the Python module deletion machinery.
56 This should fix the problems reported by Darren.
60 This should fix the problems reported by Darren.
57
61
58 2007-09-10 Darren Dale <dd55@cornell.edu>
62 2007-09-10 Darren Dale <dd55@cornell.edu>
59
63
60 * Cleanup of IPShellQt and IPShellQt4
64 * Cleanup of IPShellQt and IPShellQt4
61
65
62 2007-09-09 Fernando Perez <Fernando.Perez@colorado.edu>
66 2007-09-09 Fernando Perez <Fernando.Perez@colorado.edu>
63
67
64 * IPython/FakeModule.py (FakeModule.__init__): further fixes for
68 * IPython/FakeModule.py (FakeModule.__init__): further fixes for
65 doctest support.
69 doctest support.
66
70
67 * IPython/iplib.py (safe_execfile): minor docstring improvements.
71 * IPython/iplib.py (safe_execfile): minor docstring improvements.
68
72
69 2007-09-08 Ville Vainio <vivainio@gmail.com>
73 2007-09-08 Ville Vainio <vivainio@gmail.com>
70
74
71 * Magic.py (%pushd, %popd, %dirs): Fix dir stack - push *current*
75 * Magic.py (%pushd, %popd, %dirs): Fix dir stack - push *current*
72 directory, not the target directory.
76 directory, not the target directory.
73
77
74 * ipapi.py, Magic.py, iplib.py: Add ipapi.UsageError, a lighter weight
78 * ipapi.py, Magic.py, iplib.py: Add ipapi.UsageError, a lighter weight
75 exception that won't print the tracebacks. Switched many magics to
79 exception that won't print the tracebacks. Switched many magics to
76 raise them on error situations, also GetoptError is not printed
80 raise them on error situations, also GetoptError is not printed
77 anymore.
81 anymore.
78
82
79 2007-09-07 Ville Vainio <vivainio@gmail.com>
83 2007-09-07 Ville Vainio <vivainio@gmail.com>
80
84
81 * iplib.py: do not auto-alias "dir", it screws up other dir auto
85 * iplib.py: do not auto-alias "dir", it screws up other dir auto
82 aliases.
86 aliases.
83
87
84 * genutils.py: SList.grep() implemented.
88 * genutils.py: SList.grep() implemented.
85
89
86 * ipy_editors.py, UserConfig/ipy_user_conf.py: Add some editors
90 * ipy_editors.py, UserConfig/ipy_user_conf.py: Add some editors
87 for easy "out of the box" setup of several common editors, so that
91 for easy "out of the box" setup of several common editors, so that
88 e.g. '%edit os.path.isfile' will jump to the correct line
92 e.g. '%edit os.path.isfile' will jump to the correct line
89 automatically. Contributions for command lines of your favourite
93 automatically. Contributions for command lines of your favourite
90 editors welcome.
94 editors welcome.
91
95
92 2007-09-07 Fernando Perez <Fernando.Perez@colorado.edu>
96 2007-09-07 Fernando Perez <Fernando.Perez@colorado.edu>
93
97
94 * IPython/OInspect.py (Inspector.pinfo): fixed bug that was
98 * IPython/OInspect.py (Inspector.pinfo): fixed bug that was
95 preventing source display in certain cases. In reality I think
99 preventing source display in certain cases. In reality I think
96 the problem is with Ubuntu's Python build, but this change works
100 the problem is with Ubuntu's Python build, but this change works
97 around the issue in some cases (not in all, unfortunately). I'd
101 around the issue in some cases (not in all, unfortunately). I'd
98 filed a Python bug on this with more details, but in the change of
102 filed a Python bug on this with more details, but in the change of
99 bug trackers it seems to have been lost.
103 bug trackers it seems to have been lost.
100
104
101 * IPython/Magic.py (magic_dhist): restore %dhist. No, cd -TAB is
105 * IPython/Magic.py (magic_dhist): restore %dhist. No, cd -TAB is
102 not the same, it's not self-documenting, doesn't allow range
106 not the same, it's not self-documenting, doesn't allow range
103 selection, and sorts alphabetically instead of numerically.
107 selection, and sorts alphabetically instead of numerically.
104 (magic_r): restore %r. No, "up + enter. One char magic" is not
108 (magic_r): restore %r. No, "up + enter. One char magic" is not
105 the same thing, since %r takes parameters to allow fast retrieval
109 the same thing, since %r takes parameters to allow fast retrieval
106 of old commands. I've received emails from users who use this a
110 of old commands. I've received emails from users who use this a
107 LOT, so it stays.
111 LOT, so it stays.
108 (magic_automagic): restore %automagic. "use _ip.option.automagic"
112 (magic_automagic): restore %automagic. "use _ip.option.automagic"
109 is not a valid replacement b/c it doesn't provide an complete
113 is not a valid replacement b/c it doesn't provide an complete
110 explanation (which the automagic docstring does).
114 explanation (which the automagic docstring does).
111 (magic_autocall): restore %autocall, with improved docstring.
115 (magic_autocall): restore %autocall, with improved docstring.
112 Same argument as for others, "use _ip.options.autocall" is not a
116 Same argument as for others, "use _ip.options.autocall" is not a
113 valid replacement.
117 valid replacement.
114 (magic_pdef): restore %pdef & friends. Used widely, mentioned in
118 (magic_pdef): restore %pdef & friends. Used widely, mentioned in
115 tutorials and online docs.
119 tutorials and online docs.
116
120
117 2007-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
121 2007-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
118
122
119 * IPython/usage.py (quick_reference): mention magics in quickref,
123 * IPython/usage.py (quick_reference): mention magics in quickref,
120 modified main banner to mention %quickref.
124 modified main banner to mention %quickref.
121
125
122 * IPython/FakeModule.py (FakeModule): fixes for doctest compatibility.
126 * IPython/FakeModule.py (FakeModule): fixes for doctest compatibility.
123
127
124 2007-09-06 Ville Vainio <vivainio@gmail.com>
128 2007-09-06 Ville Vainio <vivainio@gmail.com>
125
129
126 * ipy_rehashdir.py, ipy_workdir.py, ipy_fsops.py, iplib.py:
130 * ipy_rehashdir.py, ipy_workdir.py, ipy_fsops.py, iplib.py:
127 Callable aliases now pass the _ip as first arg. This breaks
131 Callable aliases now pass the _ip as first arg. This breaks
128 compatibility with earlier 0.8.2.svn series! (though they should
132 compatibility with earlier 0.8.2.svn series! (though they should
129 not have been in use yet outside these few extensions)
133 not have been in use yet outside these few extensions)
130
134
131 2007-09-05 Ville Vainio <vivainio@gmail.com>
135 2007-09-05 Ville Vainio <vivainio@gmail.com>
132
136
133 * external/mglob.py: expand('dirname') => ['dirname'], instead
137 * external/mglob.py: expand('dirname') => ['dirname'], instead
134 of ['dirname/foo','dirname/bar', ...].
138 of ['dirname/foo','dirname/bar', ...].
135
139
136 * Extensions/ipy_fsops.py: added, has usefull shell utils for plain
140 * Extensions/ipy_fsops.py: added, has usefull shell utils for plain
137 win32 installations: icp, imv, imkdir, igrep, irm, collect (collect
141 win32 installations: icp, imv, imkdir, igrep, irm, collect (collect
138 is useful for others as well).
142 is useful for others as well).
139
143
140 * iplib.py: on callable aliases (as opposed to old style aliases),
144 * iplib.py: on callable aliases (as opposed to old style aliases),
141 do var_expand() immediately, and use make_quoted_expr instead
145 do var_expand() immediately, and use make_quoted_expr instead
142 of hardcoded r"""
146 of hardcoded r"""
143
147
144 * Extensions/ipy_profile_sh.py: Try to detect cygwin on win32,
148 * Extensions/ipy_profile_sh.py: Try to detect cygwin on win32,
145 if not available load ipy_fsops.py for cp, mv, etc. replacements
149 if not available load ipy_fsops.py for cp, mv, etc. replacements
146
150
147 * OInspect.py, ipy_which.py: improve %which and obj? for callable
151 * OInspect.py, ipy_which.py: improve %which and obj? for callable
148 aliases
152 aliases
149
153
150 2007-09-04 Ville Vainio <vivainio@gmail.com>
154 2007-09-04 Ville Vainio <vivainio@gmail.com>
151
155
152 * ipy_profile_zope.py: add zope profile, by Stefan Eletzhofer.
156 * ipy_profile_zope.py: add zope profile, by Stefan Eletzhofer.
153 Relicensed under BSD with the authors approval.
157 Relicensed under BSD with the authors approval.
154
158
155 * ipmaker.py, usage.py: Remove %magic from default banner, improve
159 * ipmaker.py, usage.py: Remove %magic from default banner, improve
156 %quickref
160 %quickref
157
161
158 2007-09-03 Ville Vainio <vivainio@gmail.com>
162 2007-09-03 Ville Vainio <vivainio@gmail.com>
159
163
160 * Magic.py: %time now passes expression through prefilter,
164 * Magic.py: %time now passes expression through prefilter,
161 allowing IPython syntax.
165 allowing IPython syntax.
162
166
163 2007-09-01 Ville Vainio <vivainio@gmail.com>
167 2007-09-01 Ville Vainio <vivainio@gmail.com>
164
168
165 * ipmaker.py: Always show full traceback when newstyle config fails
169 * ipmaker.py: Always show full traceback when newstyle config fails
166
170
167 2007-08-27 Ville Vainio <vivainio@gmail.com>
171 2007-08-27 Ville Vainio <vivainio@gmail.com>
168
172
169 * Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
173 * Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
170
174
171 2007-08-26 Ville Vainio <vivainio@gmail.com>
175 2007-08-26 Ville Vainio <vivainio@gmail.com>
172
176
173 * ipmaker.py: Command line args have the highest priority again
177 * ipmaker.py: Command line args have the highest priority again
174
178
175 * iplib.py, ipmaker.py: -i command line argument now behaves as in
179 * iplib.py, ipmaker.py: -i command line argument now behaves as in
176 normal python, i.e. leaves the IPython session running after -c
180 normal python, i.e. leaves the IPython session running after -c
177 command or running a batch file from command line.
181 command or running a batch file from command line.
178
182
179 2007-08-22 Ville Vainio <vivainio@gmail.com>
183 2007-08-22 Ville Vainio <vivainio@gmail.com>
180
184
181 * iplib.py: no extra empty (last) line in raw hist w/ multiline
185 * iplib.py: no extra empty (last) line in raw hist w/ multiline
182 statements
186 statements
183
187
184 * logger.py: Fix bug where blank lines in history were not
188 * logger.py: Fix bug where blank lines in history were not
185 added until AFTER adding the current line; translated and raw
189 added until AFTER adding the current line; translated and raw
186 history should finally be in sync with prompt now.
190 history should finally be in sync with prompt now.
187
191
188 * ipy_completers.py: quick_completer now makes it easy to create
192 * ipy_completers.py: quick_completer now makes it easy to create
189 trivial custom completers
193 trivial custom completers
190
194
191 * clearcmd.py: shadow history compression & erasing, fixed input hist
195 * clearcmd.py: shadow history compression & erasing, fixed input hist
192 clearing.
196 clearing.
193
197
194 * envpersist.py, history.py: %env (sh profile only), %hist completers
198 * envpersist.py, history.py: %env (sh profile only), %hist completers
195
199
196 * genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
200 * genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
197 term title now include the drive letter, and always use / instead of
201 term title now include the drive letter, and always use / instead of
198 os.sep (as per recommended approach for win32 ipython in general).
202 os.sep (as per recommended approach for win32 ipython in general).
199
203
200 * ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
204 * ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
201 plain python scripts from ipykit command line by running
205 plain python scripts from ipykit command line by running
202 "py myscript.py", even w/o installed python.
206 "py myscript.py", even w/o installed python.
203
207
204 2007-08-21 Ville Vainio <vivainio@gmail.com>
208 2007-08-21 Ville Vainio <vivainio@gmail.com>
205
209
206 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
210 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
207 (for backwards compatibility)
211 (for backwards compatibility)
208
212
209 * history.py: switch back to %hist -t from %hist -r as default.
213 * history.py: switch back to %hist -t from %hist -r as default.
210 At least until raw history is fixed for good.
214 At least until raw history is fixed for good.
211
215
212 2007-08-20 Ville Vainio <vivainio@gmail.com>
216 2007-08-20 Ville Vainio <vivainio@gmail.com>
213
217
214 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
218 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
215 locate alias redeclarations etc. Also, avoid handling
219 locate alias redeclarations etc. Also, avoid handling
216 _ip.IP.alias_table directly, prefer using _ip.defalias.
220 _ip.IP.alias_table directly, prefer using _ip.defalias.
217
221
218
222
219 2007-08-15 Ville Vainio <vivainio@gmail.com>
223 2007-08-15 Ville Vainio <vivainio@gmail.com>
220
224
221 * prefilter.py: ! is now always served first
225 * prefilter.py: ! is now always served first
222
226
223 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
227 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
224
228
225 * IPython/iplib.py (safe_execfile): fix the SystemExit
229 * IPython/iplib.py (safe_execfile): fix the SystemExit
226 auto-suppression code to work in Python2.4 (the internal structure
230 auto-suppression code to work in Python2.4 (the internal structure
227 of that exception changed and I'd only tested the code with 2.5).
231 of that exception changed and I'd only tested the code with 2.5).
228 Bug reported by a SciPy attendee.
232 Bug reported by a SciPy attendee.
229
233
230 2007-08-13 Ville Vainio <vivainio@gmail.com>
234 2007-08-13 Ville Vainio <vivainio@gmail.com>
231
235
232 * prefilter.py: reverted !c:/bin/foo fix, made % in
236 * prefilter.py: reverted !c:/bin/foo fix, made % in
233 multiline specials work again
237 multiline specials work again
234
238
235 2007-08-13 Ville Vainio <vivainio@gmail.com>
239 2007-08-13 Ville Vainio <vivainio@gmail.com>
236
240
237 * prefilter.py: Take more care to special-case !, so that
241 * prefilter.py: Take more care to special-case !, so that
238 !c:/bin/foo.exe works.
242 !c:/bin/foo.exe works.
239
243
240 * setup.py: if we are building eggs, strip all docs and
244 * setup.py: if we are building eggs, strip all docs and
241 examples (it doesn't make sense to bytecompile examples,
245 examples (it doesn't make sense to bytecompile examples,
242 and docs would be in an awkward place anyway).
246 and docs would be in an awkward place anyway).
243
247
244 * Ryan Krauss' patch fixes start menu shortcuts when IPython
248 * Ryan Krauss' patch fixes start menu shortcuts when IPython
245 is installed into a directory that has spaces in the name.
249 is installed into a directory that has spaces in the name.
246
250
247 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
251 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
248
252
249 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
253 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
250 doctest profile and %doctest_mode, so they actually generate the
254 doctest profile and %doctest_mode, so they actually generate the
251 blank lines needed by doctest to separate individual tests.
255 blank lines needed by doctest to separate individual tests.
252
256
253 * IPython/iplib.py (safe_execfile): modify so that running code
257 * IPython/iplib.py (safe_execfile): modify so that running code
254 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
258 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
255 doesn't get a printed traceback. Any other value in sys.exit(),
259 doesn't get a printed traceback. Any other value in sys.exit(),
256 including the empty call, still generates a traceback. This
260 including the empty call, still generates a traceback. This
257 enables use of %run without having to pass '-e' for codes that
261 enables use of %run without having to pass '-e' for codes that
258 correctly set the exit status flag.
262 correctly set the exit status flag.
259
263
260 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
264 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
261
265
262 * IPython/iplib.py (InteractiveShell.post_config_initialization):
266 * IPython/iplib.py (InteractiveShell.post_config_initialization):
263 fix problems with doctests failing when run inside IPython due to
267 fix problems with doctests failing when run inside IPython due to
264 IPython's modifications of sys.displayhook.
268 IPython's modifications of sys.displayhook.
265
269
266 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
270 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
267
271
268 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
272 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
269 a string with names.
273 a string with names.
270
274
271 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
275 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
272
276
273 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
277 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
274 magic to toggle on/off the doctest pasting support without having
278 magic to toggle on/off the doctest pasting support without having
275 to leave a session to switch to a separate profile.
279 to leave a session to switch to a separate profile.
276
280
277 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
281 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
278
282
279 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
283 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
280 introduce a blank line between inputs, to conform to doctest
284 introduce a blank line between inputs, to conform to doctest
281 requirements.
285 requirements.
282
286
283 * IPython/OInspect.py (Inspector.pinfo): fix another part where
287 * IPython/OInspect.py (Inspector.pinfo): fix another part where
284 auto-generated docstrings for new-style classes were showing up.
288 auto-generated docstrings for new-style classes were showing up.
285
289
286 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
290 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
287
291
288 * api_changes: Add new file to track backward-incompatible
292 * api_changes: Add new file to track backward-incompatible
289 user-visible changes.
293 user-visible changes.
290
294
291 2007-08-06 Ville Vainio <vivainio@gmail.com>
295 2007-08-06 Ville Vainio <vivainio@gmail.com>
292
296
293 * ipmaker.py: fix bug where user_config_ns didn't exist at all
297 * ipmaker.py: fix bug where user_config_ns didn't exist at all
294 before all the config files were handled.
298 before all the config files were handled.
295
299
296 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
300 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
297
301
298 * IPython/irunner.py (RunnerFactory): Add new factory class for
302 * IPython/irunner.py (RunnerFactory): Add new factory class for
299 creating reusable runners based on filenames.
303 creating reusable runners based on filenames.
300
304
301 * IPython/Extensions/ipy_profile_doctest.py: New profile for
305 * IPython/Extensions/ipy_profile_doctest.py: New profile for
302 doctest support. It sets prompts/exceptions as similar to
306 doctest support. It sets prompts/exceptions as similar to
303 standard Python as possible, so that ipython sessions in this
307 standard Python as possible, so that ipython sessions in this
304 profile can be easily pasted as doctests with minimal
308 profile can be easily pasted as doctests with minimal
305 modifications. It also enables pasting of doctests from external
309 modifications. It also enables pasting of doctests from external
306 sources (even if they have leading whitespace), so that you can
310 sources (even if they have leading whitespace), so that you can
307 rerun doctests from existing sources.
311 rerun doctests from existing sources.
308
312
309 * IPython/iplib.py (_prefilter): fix a buglet where after entering
313 * IPython/iplib.py (_prefilter): fix a buglet where after entering
310 some whitespace, the prompt would become a continuation prompt
314 some whitespace, the prompt would become a continuation prompt
311 with no way of exiting it other than Ctrl-C. This fix brings us
315 with no way of exiting it other than Ctrl-C. This fix brings us
312 into conformity with how the default python prompt works.
316 into conformity with how the default python prompt works.
313
317
314 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
318 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
315 Add support for pasting not only lines that start with '>>>', but
319 Add support for pasting not only lines that start with '>>>', but
316 also with ' >>>'. That is, arbitrary whitespace can now precede
320 also with ' >>>'. That is, arbitrary whitespace can now precede
317 the prompts. This makes the system useful for pasting doctests
321 the prompts. This makes the system useful for pasting doctests
318 from docstrings back into a normal session.
322 from docstrings back into a normal session.
319
323
320 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
324 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
321
325
322 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
326 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
323 r1357, which had killed multiple invocations of an embedded
327 r1357, which had killed multiple invocations of an embedded
324 ipython (this means that example-embed has been broken for over 1
328 ipython (this means that example-embed has been broken for over 1
325 year!!!). Rather than possibly breaking the batch stuff for which
329 year!!!). Rather than possibly breaking the batch stuff for which
326 the code in iplib.py/interact was introduced, I worked around the
330 the code in iplib.py/interact was introduced, I worked around the
327 problem in the embedding class in Shell.py. We really need a
331 problem in the embedding class in Shell.py. We really need a
328 bloody test suite for this code, I'm sick of finding stuff that
332 bloody test suite for this code, I'm sick of finding stuff that
329 used to work breaking left and right every time I use an old
333 used to work breaking left and right every time I use an old
330 feature I hadn't touched in a few months.
334 feature I hadn't touched in a few months.
331 (kill_embedded): Add a new magic that only shows up in embedded
335 (kill_embedded): Add a new magic that only shows up in embedded
332 mode, to allow users to permanently deactivate an embedded instance.
336 mode, to allow users to permanently deactivate an embedded instance.
333
337
334 2007-08-01 Ville Vainio <vivainio@gmail.com>
338 2007-08-01 Ville Vainio <vivainio@gmail.com>
335
339
336 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
340 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
337 history gets out of sync on runlines (e.g. when running macros).
341 history gets out of sync on runlines (e.g. when running macros).
338
342
339 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
343 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
340
344
341 * IPython/Magic.py (magic_colors): fix win32-related error message
345 * IPython/Magic.py (magic_colors): fix win32-related error message
342 that could appear under *nix when readline was missing. Patch by
346 that could appear under *nix when readline was missing. Patch by
343 Scott Jackson, closes #175.
347 Scott Jackson, closes #175.
344
348
345 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
349 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
346
350
347 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
351 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
348 completer that it traits-aware, so that traits objects don't show
352 completer that it traits-aware, so that traits objects don't show
349 all of their internal attributes all the time.
353 all of their internal attributes all the time.
350
354
351 * IPython/genutils.py (dir2): moved this code from inside
355 * IPython/genutils.py (dir2): moved this code from inside
352 completer.py to expose it publicly, so I could use it in the
356 completer.py to expose it publicly, so I could use it in the
353 wildcards bugfix.
357 wildcards bugfix.
354
358
355 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
359 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
356 Stefan with Traits.
360 Stefan with Traits.
357
361
358 * IPython/completer.py (Completer.attr_matches): change internal
362 * IPython/completer.py (Completer.attr_matches): change internal
359 var name from 'object' to 'obj', since 'object' is now a builtin
363 var name from 'object' to 'obj', since 'object' is now a builtin
360 and this can lead to weird bugs if reusing this code elsewhere.
364 and this can lead to weird bugs if reusing this code elsewhere.
361
365
362 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
366 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
363
367
364 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
368 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
365 'foo?' and update the code to prevent printing of default
369 'foo?' and update the code to prevent printing of default
366 docstrings that started appearing after I added support for
370 docstrings that started appearing after I added support for
367 new-style classes. The approach I'm using isn't ideal (I just
371 new-style classes. The approach I'm using isn't ideal (I just
368 special-case those strings) but I'm not sure how to more robustly
372 special-case those strings) but I'm not sure how to more robustly
369 differentiate between truly user-written strings and Python's
373 differentiate between truly user-written strings and Python's
370 automatic ones.
374 automatic ones.
371
375
372 2007-07-09 Ville Vainio <vivainio@gmail.com>
376 2007-07-09 Ville Vainio <vivainio@gmail.com>
373
377
374 * completer.py: Applied Matthew Neeley's patch:
378 * completer.py: Applied Matthew Neeley's patch:
375 Dynamic attributes from trait_names and _getAttributeNames are added
379 Dynamic attributes from trait_names and _getAttributeNames are added
376 to the list of tab completions, but when this happens, the attribute
380 to the list of tab completions, but when this happens, the attribute
377 list is turned into a set, so the attributes are unordered when
381 list is turned into a set, so the attributes are unordered when
378 printed, which makes it hard to find the right completion. This patch
382 printed, which makes it hard to find the right completion. This patch
379 turns this set back into a list and sort it.
383 turns this set back into a list and sort it.
380
384
381 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
385 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
382
386
383 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
387 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
384 classes in various inspector functions.
388 classes in various inspector functions.
385
389
386 2007-06-28 Ville Vainio <vivainio@gmail.com>
390 2007-06-28 Ville Vainio <vivainio@gmail.com>
387
391
388 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
392 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
389 Implement "shadow" namespace, and callable aliases that reside there.
393 Implement "shadow" namespace, and callable aliases that reside there.
390 Use them by:
394 Use them by:
391
395
392 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
396 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
393
397
394 foo hello world
398 foo hello world
395 (gets translated to:)
399 (gets translated to:)
396 _sh.foo(r"""hello world""")
400 _sh.foo(r"""hello world""")
397
401
398 In practice, this kind of alias can take the role of a magic function
402 In practice, this kind of alias can take the role of a magic function
399
403
400 * New generic inspect_object, called on obj? and obj??
404 * New generic inspect_object, called on obj? and obj??
401
405
402 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
406 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
403
407
404 * IPython/ultraTB.py (findsource): fix a problem with
408 * IPython/ultraTB.py (findsource): fix a problem with
405 inspect.getfile that can cause crashes during traceback construction.
409 inspect.getfile that can cause crashes during traceback construction.
406
410
407 2007-06-14 Ville Vainio <vivainio@gmail.com>
411 2007-06-14 Ville Vainio <vivainio@gmail.com>
408
412
409 * iplib.py (handle_auto): Try to use ascii for printing "--->"
413 * iplib.py (handle_auto): Try to use ascii for printing "--->"
410 autocall rewrite indication, becausesometimes unicode fails to print
414 autocall rewrite indication, becausesometimes unicode fails to print
411 properly (and you get ' - - - '). Use plain uncoloured ---> for
415 properly (and you get ' - - - '). Use plain uncoloured ---> for
412 unicode.
416 unicode.
413
417
414 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
418 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
415
419
416 . pickleshare 'hash' commands (hget, hset, hcompress,
420 . pickleshare 'hash' commands (hget, hset, hcompress,
417 hdict) for efficient shadow history storage.
421 hdict) for efficient shadow history storage.
418
422
419 2007-06-13 Ville Vainio <vivainio@gmail.com>
423 2007-06-13 Ville Vainio <vivainio@gmail.com>
420
424
421 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
425 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
422 Added kw arg 'interactive', tell whether vars should be visible
426 Added kw arg 'interactive', tell whether vars should be visible
423 with %whos.
427 with %whos.
424
428
425 2007-06-11 Ville Vainio <vivainio@gmail.com>
429 2007-06-11 Ville Vainio <vivainio@gmail.com>
426
430
427 * pspersistence.py, Magic.py, iplib.py: directory history now saved
431 * pspersistence.py, Magic.py, iplib.py: directory history now saved
428 to db
432 to db
429
433
430 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
434 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
431 Also, it exits IPython immediately after evaluating the command (just like
435 Also, it exits IPython immediately after evaluating the command (just like
432 std python)
436 std python)
433
437
434 2007-06-05 Walter Doerwald <walter@livinglogic.de>
438 2007-06-05 Walter Doerwald <walter@livinglogic.de>
435
439
436 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
440 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
437 Python string and captures the output. (Idea and original patch by
441 Python string and captures the output. (Idea and original patch by
438 Stefan van der Walt)
442 Stefan van der Walt)
439
443
440 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
444 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
441
445
442 * IPython/ultraTB.py (VerboseTB.text): update printing of
446 * IPython/ultraTB.py (VerboseTB.text): update printing of
443 exception types for Python 2.5 (now all exceptions in the stdlib
447 exception types for Python 2.5 (now all exceptions in the stdlib
444 are new-style classes).
448 are new-style classes).
445
449
446 2007-05-31 Walter Doerwald <walter@livinglogic.de>
450 2007-05-31 Walter Doerwald <walter@livinglogic.de>
447
451
448 * IPython/Extensions/igrid.py: Add new commands refresh and
452 * IPython/Extensions/igrid.py: Add new commands refresh and
449 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
453 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
450 the iterator once (refresh) or after every x seconds (refresh_timer).
454 the iterator once (refresh) or after every x seconds (refresh_timer).
451 Add a working implementation of "searchexpression", where the text
455 Add a working implementation of "searchexpression", where the text
452 entered is not the text to search for, but an expression that must
456 entered is not the text to search for, but an expression that must
453 be true. Added display of shortcuts to the menu. Added commands "pickinput"
457 be true. Added display of shortcuts to the menu. Added commands "pickinput"
454 and "pickinputattr" that put the object or attribute under the cursor
458 and "pickinputattr" that put the object or attribute under the cursor
455 in the input line. Split the statusbar to be able to display the currently
459 in the input line. Split the statusbar to be able to display the currently
456 active refresh interval. (Patch by Nik Tautenhahn)
460 active refresh interval. (Patch by Nik Tautenhahn)
457
461
458 2007-05-29 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
462 2007-05-29 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
459
463
460 * fixing set_term_title to use ctypes as default
464 * fixing set_term_title to use ctypes as default
461
465
462 * fixing set_term_title fallback to work when curent dir
466 * fixing set_term_title fallback to work when curent dir
463 is on a windows network share
467 is on a windows network share
464
468
465 2007-05-28 Ville Vainio <vivainio@gmail.com>
469 2007-05-28 Ville Vainio <vivainio@gmail.com>
466
470
467 * %cpaste: strip + with > from left (diffs).
471 * %cpaste: strip + with > from left (diffs).
468
472
469 * iplib.py: Fix crash when readline not installed
473 * iplib.py: Fix crash when readline not installed
470
474
471 2007-05-26 Ville Vainio <vivainio@gmail.com>
475 2007-05-26 Ville Vainio <vivainio@gmail.com>
472
476
473 * generics.py: intruduce easy to extend result_display generic
477 * generics.py: intruduce easy to extend result_display generic
474 function (using simplegeneric.py).
478 function (using simplegeneric.py).
475
479
476 * Fixed the append functionality of %set.
480 * Fixed the append functionality of %set.
477
481
478 2007-05-25 Ville Vainio <vivainio@gmail.com>
482 2007-05-25 Ville Vainio <vivainio@gmail.com>
479
483
480 * New magic: %rep (fetch / run old commands from history)
484 * New magic: %rep (fetch / run old commands from history)
481
485
482 * New extension: mglob (%mglob magic), for powerful glob / find /filter
486 * New extension: mglob (%mglob magic), for powerful glob / find /filter
483 like functionality
487 like functionality
484
488
485 % maghistory.py: %hist -g PATTERM greps the history for pattern
489 % maghistory.py: %hist -g PATTERM greps the history for pattern
486
490
487 2007-05-24 Walter Doerwald <walter@livinglogic.de>
491 2007-05-24 Walter Doerwald <walter@livinglogic.de>
488
492
489 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
493 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
490 browse the IPython input history
494 browse the IPython input history
491
495
492 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
496 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
493 (mapped to "i") can be used to put the object under the curser in the input
497 (mapped to "i") can be used to put the object under the curser in the input
494 line. pickinputattr (mapped to "I") does the same for the attribute under
498 line. pickinputattr (mapped to "I") does the same for the attribute under
495 the cursor.
499 the cursor.
496
500
497 2007-05-24 Ville Vainio <vivainio@gmail.com>
501 2007-05-24 Ville Vainio <vivainio@gmail.com>
498
502
499 * Grand magic cleansing (changeset [2380]):
503 * Grand magic cleansing (changeset [2380]):
500
504
501 * Introduce ipy_legacy.py where the following magics were
505 * Introduce ipy_legacy.py where the following magics were
502 moved:
506 moved:
503
507
504 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
508 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
505
509
506 If you need them, either use default profile or "import ipy_legacy"
510 If you need them, either use default profile or "import ipy_legacy"
507 in your ipy_user_conf.py
511 in your ipy_user_conf.py
508
512
509 * Move sh and scipy profile to Extensions from UserConfig. this implies
513 * Move sh and scipy profile to Extensions from UserConfig. this implies
510 you should not edit them, but you don't need to run %upgrade when
514 you should not edit them, but you don't need to run %upgrade when
511 upgrading IPython anymore.
515 upgrading IPython anymore.
512
516
513 * %hist/%history now operates in "raw" mode by default. To get the old
517 * %hist/%history now operates in "raw" mode by default. To get the old
514 behaviour, run '%hist -n' (native mode).
518 behaviour, run '%hist -n' (native mode).
515
519
516 * split ipy_stock_completers.py to ipy_stock_completers.py and
520 * split ipy_stock_completers.py to ipy_stock_completers.py and
517 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
521 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
518 installed as default.
522 installed as default.
519
523
520 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
524 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
521 handling.
525 handling.
522
526
523 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
527 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
524 input if readline is available.
528 input if readline is available.
525
529
526 2007-05-23 Ville Vainio <vivainio@gmail.com>
530 2007-05-23 Ville Vainio <vivainio@gmail.com>
527
531
528 * macro.py: %store uses __getstate__ properly
532 * macro.py: %store uses __getstate__ properly
529
533
530 * exesetup.py: added new setup script for creating
534 * exesetup.py: added new setup script for creating
531 standalone IPython executables with py2exe (i.e.
535 standalone IPython executables with py2exe (i.e.
532 no python installation required).
536 no python installation required).
533
537
534 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
538 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
535 its place.
539 its place.
536
540
537 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
541 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
538
542
539 2007-05-21 Ville Vainio <vivainio@gmail.com>
543 2007-05-21 Ville Vainio <vivainio@gmail.com>
540
544
541 * platutil_win32.py (set_term_title): handle
545 * platutil_win32.py (set_term_title): handle
542 failure of 'title' system call properly.
546 failure of 'title' system call properly.
543
547
544 2007-05-17 Walter Doerwald <walter@livinglogic.de>
548 2007-05-17 Walter Doerwald <walter@livinglogic.de>
545
549
546 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
550 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
547 (Bug detected by Paul Mueller).
551 (Bug detected by Paul Mueller).
548
552
549 2007-05-16 Ville Vainio <vivainio@gmail.com>
553 2007-05-16 Ville Vainio <vivainio@gmail.com>
550
554
551 * ipy_profile_sci.py, ipython_win_post_install.py: Create
555 * ipy_profile_sci.py, ipython_win_post_install.py: Create
552 new "sci" profile, effectively a modern version of the old
556 new "sci" profile, effectively a modern version of the old
553 "scipy" profile (which is now slated for deprecation).
557 "scipy" profile (which is now slated for deprecation).
554
558
555 2007-05-15 Ville Vainio <vivainio@gmail.com>
559 2007-05-15 Ville Vainio <vivainio@gmail.com>
556
560
557 * pycolorize.py, pycolor.1: Paul Mueller's patches that
561 * pycolorize.py, pycolor.1: Paul Mueller's patches that
558 make pycolorize read input from stdin when run without arguments.
562 make pycolorize read input from stdin when run without arguments.
559
563
560 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
564 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
561
565
562 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
566 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
563 it in sh profile (instead of ipy_system_conf.py).
567 it in sh profile (instead of ipy_system_conf.py).
564
568
565 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
569 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
566 aliases are now lower case on windows (MyCommand.exe => mycommand).
570 aliases are now lower case on windows (MyCommand.exe => mycommand).
567
571
568 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
572 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
569 Macros are now callable objects that inherit from ipapi.IPyAutocall,
573 Macros are now callable objects that inherit from ipapi.IPyAutocall,
570 i.e. get autocalled regardless of system autocall setting.
574 i.e. get autocalled regardless of system autocall setting.
571
575
572 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
576 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
573
577
574 * IPython/rlineimpl.py: check for clear_history in readline and
578 * IPython/rlineimpl.py: check for clear_history in readline and
575 make it a dummy no-op if not available. This function isn't
579 make it a dummy no-op if not available. This function isn't
576 guaranteed to be in the API and appeared in Python 2.4, so we need
580 guaranteed to be in the API and appeared in Python 2.4, so we need
577 to check it ourselves. Also, clean up this file quite a bit.
581 to check it ourselves. Also, clean up this file quite a bit.
578
582
579 * ipython.1: update man page and full manual with information
583 * ipython.1: update man page and full manual with information
580 about threads (remove outdated warning). Closes #151.
584 about threads (remove outdated warning). Closes #151.
581
585
582 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
586 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
583
587
584 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
588 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
585 in trunk (note that this made it into the 0.8.1 release already,
589 in trunk (note that this made it into the 0.8.1 release already,
586 but the changelogs didn't get coordinated). Many thanks to Gael
590 but the changelogs didn't get coordinated). Many thanks to Gael
587 Varoquaux <gael.varoquaux-AT-normalesup.org>
591 Varoquaux <gael.varoquaux-AT-normalesup.org>
588
592
589 2007-05-09 *** Released version 0.8.1
593 2007-05-09 *** Released version 0.8.1
590
594
591 2007-05-10 Walter Doerwald <walter@livinglogic.de>
595 2007-05-10 Walter Doerwald <walter@livinglogic.de>
592
596
593 * IPython/Extensions/igrid.py: Incorporate html help into
597 * IPython/Extensions/igrid.py: Incorporate html help into
594 the module, so we don't have to search for the file.
598 the module, so we don't have to search for the file.
595
599
596 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
600 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
597
601
598 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
602 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
599
603
600 2007-04-30 Ville Vainio <vivainio@gmail.com>
604 2007-04-30 Ville Vainio <vivainio@gmail.com>
601
605
602 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
606 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
603 user has illegal (non-ascii) home directory name
607 user has illegal (non-ascii) home directory name
604
608
605 2007-04-27 Ville Vainio <vivainio@gmail.com>
609 2007-04-27 Ville Vainio <vivainio@gmail.com>
606
610
607 * platutils_win32.py: implement set_term_title for windows
611 * platutils_win32.py: implement set_term_title for windows
608
612
609 * Update version number
613 * Update version number
610
614
611 * ipy_profile_sh.py: more informative prompt (2 dir levels)
615 * ipy_profile_sh.py: more informative prompt (2 dir levels)
612
616
613 2007-04-26 Walter Doerwald <walter@livinglogic.de>
617 2007-04-26 Walter Doerwald <walter@livinglogic.de>
614
618
615 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
619 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
616 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
620 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
617 bug discovered by Ville).
621 bug discovered by Ville).
618
622
619 2007-04-26 Ville Vainio <vivainio@gmail.com>
623 2007-04-26 Ville Vainio <vivainio@gmail.com>
620
624
621 * Extensions/ipy_completers.py: Olivier's module completer now
625 * Extensions/ipy_completers.py: Olivier's module completer now
622 saves the list of root modules if it takes > 4 secs on the first run.
626 saves the list of root modules if it takes > 4 secs on the first run.
623
627
624 * Magic.py (%rehashx): %rehashx now clears the completer cache
628 * Magic.py (%rehashx): %rehashx now clears the completer cache
625
629
626
630
627 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
631 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
628
632
629 * ipython.el: fix incorrect color scheme, reported by Stefan.
633 * ipython.el: fix incorrect color scheme, reported by Stefan.
630 Closes #149.
634 Closes #149.
631
635
632 * IPython/PyColorize.py (Parser.format2): fix state-handling
636 * IPython/PyColorize.py (Parser.format2): fix state-handling
633 logic. I still don't like how that code handles state, but at
637 logic. I still don't like how that code handles state, but at
634 least now it should be correct, if inelegant. Closes #146.
638 least now it should be correct, if inelegant. Closes #146.
635
639
636 2007-04-25 Ville Vainio <vivainio@gmail.com>
640 2007-04-25 Ville Vainio <vivainio@gmail.com>
637
641
638 * Extensions/ipy_which.py: added extension for %which magic, works
642 * Extensions/ipy_which.py: added extension for %which magic, works
639 a lot like unix 'which' but also finds and expands aliases, and
643 a lot like unix 'which' but also finds and expands aliases, and
640 allows wildcards.
644 allows wildcards.
641
645
642 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
646 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
643 as opposed to returning nothing.
647 as opposed to returning nothing.
644
648
645 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
649 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
646 ipy_stock_completers on default profile, do import on sh profile.
650 ipy_stock_completers on default profile, do import on sh profile.
647
651
648 2007-04-22 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
652 2007-04-22 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
649
653
650 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
654 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
651 like ipython.py foo.py which raised a IndexError.
655 like ipython.py foo.py which raised a IndexError.
652
656
653 2007-04-21 Ville Vainio <vivainio@gmail.com>
657 2007-04-21 Ville Vainio <vivainio@gmail.com>
654
658
655 * Extensions/ipy_extutil.py: added extension to manage other ipython
659 * Extensions/ipy_extutil.py: added extension to manage other ipython
656 extensions. Now only supports 'ls' == list extensions.
660 extensions. Now only supports 'ls' == list extensions.
657
661
658 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
662 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
659
663
660 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
664 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
661 would prevent use of the exception system outside of a running
665 would prevent use of the exception system outside of a running
662 IPython instance.
666 IPython instance.
663
667
664 2007-04-20 Ville Vainio <vivainio@gmail.com>
668 2007-04-20 Ville Vainio <vivainio@gmail.com>
665
669
666 * Extensions/ipy_render.py: added extension for easy
670 * Extensions/ipy_render.py: added extension for easy
667 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
671 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
668 'Iptl' template notation,
672 'Iptl' template notation,
669
673
670 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
674 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
671 safer & faster 'import' completer.
675 safer & faster 'import' completer.
672
676
673 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
677 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
674 and _ip.defalias(name, command).
678 and _ip.defalias(name, command).
675
679
676 * Extensions/ipy_exportdb.py: New extension for exporting all the
680 * Extensions/ipy_exportdb.py: New extension for exporting all the
677 %store'd data in a portable format (normal ipapi calls like
681 %store'd data in a portable format (normal ipapi calls like
678 defmacro() etc.)
682 defmacro() etc.)
679
683
680 2007-04-19 Ville Vainio <vivainio@gmail.com>
684 2007-04-19 Ville Vainio <vivainio@gmail.com>
681
685
682 * upgrade_dir.py: skip junk files like *.pyc
686 * upgrade_dir.py: skip junk files like *.pyc
683
687
684 * Release.py: version number to 0.8.1
688 * Release.py: version number to 0.8.1
685
689
686 2007-04-18 Ville Vainio <vivainio@gmail.com>
690 2007-04-18 Ville Vainio <vivainio@gmail.com>
687
691
688 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
692 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
689 and later on win32.
693 and later on win32.
690
694
691 2007-04-16 Ville Vainio <vivainio@gmail.com>
695 2007-04-16 Ville Vainio <vivainio@gmail.com>
692
696
693 * iplib.py (showtraceback): Do not crash when running w/o readline.
697 * iplib.py (showtraceback): Do not crash when running w/o readline.
694
698
695 2007-04-12 Walter Doerwald <walter@livinglogic.de>
699 2007-04-12 Walter Doerwald <walter@livinglogic.de>
696
700
697 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
701 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
698 sorted (case sensitive with files and dirs mixed).
702 sorted (case sensitive with files and dirs mixed).
699
703
700 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
704 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
701
705
702 * IPython/Release.py (version): Open trunk for 0.8.1 development.
706 * IPython/Release.py (version): Open trunk for 0.8.1 development.
703
707
704 2007-04-10 *** Released version 0.8.0
708 2007-04-10 *** Released version 0.8.0
705
709
706 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
710 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
707
711
708 * Tag 0.8.0 for release.
712 * Tag 0.8.0 for release.
709
713
710 * IPython/iplib.py (reloadhist): add API function to cleanly
714 * IPython/iplib.py (reloadhist): add API function to cleanly
711 reload the readline history, which was growing inappropriately on
715 reload the readline history, which was growing inappropriately on
712 every %run call.
716 every %run call.
713
717
714 * win32_manual_post_install.py (run): apply last part of Nicolas
718 * win32_manual_post_install.py (run): apply last part of Nicolas
715 Pernetty's patch (I'd accidentally applied it in a different
719 Pernetty's patch (I'd accidentally applied it in a different
716 directory and this particular file didn't get patched).
720 directory and this particular file didn't get patched).
717
721
718 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
722 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
719
723
720 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
724 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
721 find the main thread id and use the proper API call. Thanks to
725 find the main thread id and use the proper API call. Thanks to
722 Stefan for the fix.
726 Stefan for the fix.
723
727
724 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
728 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
725 unit tests to reflect fixed ticket #52, and add more tests sent by
729 unit tests to reflect fixed ticket #52, and add more tests sent by
726 him.
730 him.
727
731
728 * IPython/iplib.py (raw_input): restore the readline completer
732 * IPython/iplib.py (raw_input): restore the readline completer
729 state on every input, in case third-party code messed it up.
733 state on every input, in case third-party code messed it up.
730 (_prefilter): revert recent addition of early-escape checks which
734 (_prefilter): revert recent addition of early-escape checks which
731 prevent many valid alias calls from working.
735 prevent many valid alias calls from working.
732
736
733 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
737 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
734 flag for sigint handler so we don't run a full signal() call on
738 flag for sigint handler so we don't run a full signal() call on
735 each runcode access.
739 each runcode access.
736
740
737 * IPython/Magic.py (magic_whos): small improvement to diagnostic
741 * IPython/Magic.py (magic_whos): small improvement to diagnostic
738 message.
742 message.
739
743
740 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
744 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
741
745
742 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
746 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
743 asynchronous exceptions working, i.e., Ctrl-C can actually
747 asynchronous exceptions working, i.e., Ctrl-C can actually
744 interrupt long-running code in the multithreaded shells.
748 interrupt long-running code in the multithreaded shells.
745
749
746 This is using Tomer Filiba's great ctypes-based trick:
750 This is using Tomer Filiba's great ctypes-based trick:
747 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
751 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
748 this in the past, but hadn't been able to make it work before. So
752 this in the past, but hadn't been able to make it work before. So
749 far it looks like it's actually running, but this needs more
753 far it looks like it's actually running, but this needs more
750 testing. If it really works, I'll be *very* happy, and we'll owe
754 testing. If it really works, I'll be *very* happy, and we'll owe
751 a huge thank you to Tomer. My current implementation is ugly,
755 a huge thank you to Tomer. My current implementation is ugly,
752 hackish and uses nasty globals, but I don't want to try and clean
756 hackish and uses nasty globals, but I don't want to try and clean
753 anything up until we know if it actually works.
757 anything up until we know if it actually works.
754
758
755 NOTE: this feature needs ctypes to work. ctypes is included in
759 NOTE: this feature needs ctypes to work. ctypes is included in
756 Python2.5, but 2.4 users will need to manually install it. This
760 Python2.5, but 2.4 users will need to manually install it. This
757 feature makes multi-threaded shells so much more usable that it's
761 feature makes multi-threaded shells so much more usable that it's
758 a minor price to pay (ctypes is very easy to install, already a
762 a minor price to pay (ctypes is very easy to install, already a
759 requirement for win32 and available in major linux distros).
763 requirement for win32 and available in major linux distros).
760
764
761 2007-04-04 Ville Vainio <vivainio@gmail.com>
765 2007-04-04 Ville Vainio <vivainio@gmail.com>
762
766
763 * Extensions/ipy_completers.py, ipy_stock_completers.py:
767 * Extensions/ipy_completers.py, ipy_stock_completers.py:
764 Moved implementations of 'bundled' completers to ipy_completers.py,
768 Moved implementations of 'bundled' completers to ipy_completers.py,
765 they are only enabled in ipy_stock_completers.py.
769 they are only enabled in ipy_stock_completers.py.
766
770
767 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
771 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
768
772
769 * IPython/PyColorize.py (Parser.format2): Fix identation of
773 * IPython/PyColorize.py (Parser.format2): Fix identation of
770 colorzied output and return early if color scheme is NoColor, to
774 colorzied output and return early if color scheme is NoColor, to
771 avoid unnecessary and expensive tokenization. Closes #131.
775 avoid unnecessary and expensive tokenization. Closes #131.
772
776
773 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
777 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
774
778
775 * IPython/Debugger.py: disable the use of pydb version 1.17. It
779 * IPython/Debugger.py: disable the use of pydb version 1.17. It
776 has a critical bug (a missing import that makes post-mortem not
780 has a critical bug (a missing import that makes post-mortem not
777 work at all). Unfortunately as of this time, this is the version
781 work at all). Unfortunately as of this time, this is the version
778 shipped with Ubuntu Edgy, so quite a few people have this one. I
782 shipped with Ubuntu Edgy, so quite a few people have this one. I
779 hope Edgy will update to a more recent package.
783 hope Edgy will update to a more recent package.
780
784
781 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
785 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
782
786
783 * IPython/iplib.py (_prefilter): close #52, second part of a patch
787 * IPython/iplib.py (_prefilter): close #52, second part of a patch
784 set by Stefan (only the first part had been applied before).
788 set by Stefan (only the first part had been applied before).
785
789
786 * IPython/Extensions/ipy_stock_completers.py (module_completer):
790 * IPython/Extensions/ipy_stock_completers.py (module_completer):
787 remove usage of the dangerous pkgutil.walk_packages(). See
791 remove usage of the dangerous pkgutil.walk_packages(). See
788 details in comments left in the code.
792 details in comments left in the code.
789
793
790 * IPython/Magic.py (magic_whos): add support for numpy arrays
794 * IPython/Magic.py (magic_whos): add support for numpy arrays
791 similar to what we had for Numeric.
795 similar to what we had for Numeric.
792
796
793 * IPython/completer.py (IPCompleter.complete): extend the
797 * IPython/completer.py (IPCompleter.complete): extend the
794 complete() call API to support completions by other mechanisms
798 complete() call API to support completions by other mechanisms
795 than readline. Closes #109.
799 than readline. Closes #109.
796
800
797 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
801 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
798 protect against a bug in Python's execfile(). Closes #123.
802 protect against a bug in Python's execfile(). Closes #123.
799
803
800 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
804 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
801
805
802 * IPython/iplib.py (split_user_input): ensure that when splitting
806 * IPython/iplib.py (split_user_input): ensure that when splitting
803 user input, the part that can be treated as a python name is pure
807 user input, the part that can be treated as a python name is pure
804 ascii (Python identifiers MUST be pure ascii). Part of the
808 ascii (Python identifiers MUST be pure ascii). Part of the
805 ongoing Unicode support work.
809 ongoing Unicode support work.
806
810
807 * IPython/Prompts.py (prompt_specials_color): Add \N for the
811 * IPython/Prompts.py (prompt_specials_color): Add \N for the
808 actual prompt number, without any coloring. This allows users to
812 actual prompt number, without any coloring. This allows users to
809 produce numbered prompts with their own colors. Added after a
813 produce numbered prompts with their own colors. Added after a
810 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
814 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
811
815
812 2007-03-31 Walter Doerwald <walter@livinglogic.de>
816 2007-03-31 Walter Doerwald <walter@livinglogic.de>
813
817
814 * IPython/Extensions/igrid.py: Map the return key
818 * IPython/Extensions/igrid.py: Map the return key
815 to enter() and shift-return to enterattr().
819 to enter() and shift-return to enterattr().
816
820
817 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
821 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
818
822
819 * IPython/Magic.py (magic_psearch): add unicode support by
823 * IPython/Magic.py (magic_psearch): add unicode support by
820 encoding to ascii the input, since this routine also only deals
824 encoding to ascii the input, since this routine also only deals
821 with valid Python names. Fixes a bug reported by Stefan.
825 with valid Python names. Fixes a bug reported by Stefan.
822
826
823 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
827 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
824
828
825 * IPython/Magic.py (_inspect): convert unicode input into ascii
829 * IPython/Magic.py (_inspect): convert unicode input into ascii
826 before trying to evaluate it as a Python identifier. This fixes a
830 before trying to evaluate it as a Python identifier. This fixes a
827 problem that the new unicode support had introduced when analyzing
831 problem that the new unicode support had introduced when analyzing
828 long definition lines for functions.
832 long definition lines for functions.
829
833
830 2007-03-24 Walter Doerwald <walter@livinglogic.de>
834 2007-03-24 Walter Doerwald <walter@livinglogic.de>
831
835
832 * IPython/Extensions/igrid.py: Fix picking. Using
836 * IPython/Extensions/igrid.py: Fix picking. Using
833 igrid with wxPython 2.6 and -wthread should work now.
837 igrid with wxPython 2.6 and -wthread should work now.
834 igrid.display() simply tries to create a frame without
838 igrid.display() simply tries to create a frame without
835 an application. Only if this fails an application is created.
839 an application. Only if this fails an application is created.
836
840
837 2007-03-23 Walter Doerwald <walter@livinglogic.de>
841 2007-03-23 Walter Doerwald <walter@livinglogic.de>
838
842
839 * IPython/Extensions/path.py: Updated to version 2.2.
843 * IPython/Extensions/path.py: Updated to version 2.2.
840
844
841 2007-03-23 Ville Vainio <vivainio@gmail.com>
845 2007-03-23 Ville Vainio <vivainio@gmail.com>
842
846
843 * iplib.py: recursive alias expansion now works better, so that
847 * iplib.py: recursive alias expansion now works better, so that
844 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
848 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
845 doesn't trip up the process, if 'd' has been aliased to 'ls'.
849 doesn't trip up the process, if 'd' has been aliased to 'ls'.
846
850
847 * Extensions/ipy_gnuglobal.py added, provides %global magic
851 * Extensions/ipy_gnuglobal.py added, provides %global magic
848 for users of http://www.gnu.org/software/global
852 for users of http://www.gnu.org/software/global
849
853
850 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
854 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
851 Closes #52. Patch by Stefan van der Walt.
855 Closes #52. Patch by Stefan van der Walt.
852
856
853 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
857 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
854
858
855 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
859 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
856 respect the __file__ attribute when using %run. Thanks to a bug
860 respect the __file__ attribute when using %run. Thanks to a bug
857 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
861 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
858
862
859 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
863 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
860
864
861 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
865 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
862 input. Patch sent by Stefan.
866 input. Patch sent by Stefan.
863
867
864 2007-03-20 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
868 2007-03-20 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
865 * IPython/Extensions/ipy_stock_completer.py
869 * IPython/Extensions/ipy_stock_completer.py
866 shlex_split, fix bug in shlex_split. len function
870 shlex_split, fix bug in shlex_split. len function
867 call was missing an if statement. Caused shlex_split to
871 call was missing an if statement. Caused shlex_split to
868 sometimes return "" as last element.
872 sometimes return "" as last element.
869
873
870 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
874 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
871
875
872 * IPython/completer.py
876 * IPython/completer.py
873 (IPCompleter.file_matches.single_dir_expand): fix a problem
877 (IPCompleter.file_matches.single_dir_expand): fix a problem
874 reported by Stefan, where directories containign a single subdir
878 reported by Stefan, where directories containign a single subdir
875 would be completed too early.
879 would be completed too early.
876
880
877 * IPython/Shell.py (_load_pylab): Make the execution of 'from
881 * IPython/Shell.py (_load_pylab): Make the execution of 'from
878 pylab import *' when -pylab is given be optional. A new flag,
882 pylab import *' when -pylab is given be optional. A new flag,
879 pylab_import_all controls this behavior, the default is True for
883 pylab_import_all controls this behavior, the default is True for
880 backwards compatibility.
884 backwards compatibility.
881
885
882 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
886 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
883 modified) R. Bernstein's patch for fully syntax highlighted
887 modified) R. Bernstein's patch for fully syntax highlighted
884 tracebacks. The functionality is also available under ultraTB for
888 tracebacks. The functionality is also available under ultraTB for
885 non-ipython users (someone using ultraTB but outside an ipython
889 non-ipython users (someone using ultraTB but outside an ipython
886 session). They can select the color scheme by setting the
890 session). They can select the color scheme by setting the
887 module-level global DEFAULT_SCHEME. The highlight functionality
891 module-level global DEFAULT_SCHEME. The highlight functionality
888 also works when debugging.
892 also works when debugging.
889
893
890 * IPython/genutils.py (IOStream.close): small patch by
894 * IPython/genutils.py (IOStream.close): small patch by
891 R. Bernstein for improved pydb support.
895 R. Bernstein for improved pydb support.
892
896
893 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
897 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
894 DaveS <davls@telus.net> to improve support of debugging under
898 DaveS <davls@telus.net> to improve support of debugging under
895 NTEmacs, including improved pydb behavior.
899 NTEmacs, including improved pydb behavior.
896
900
897 * IPython/Magic.py (magic_prun): Fix saving of profile info for
901 * IPython/Magic.py (magic_prun): Fix saving of profile info for
898 Python 2.5, where the stats object API changed a little. Thanks
902 Python 2.5, where the stats object API changed a little. Thanks
899 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
903 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
900
904
901 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
905 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
902 Pernetty's patch to improve support for (X)Emacs under Win32.
906 Pernetty's patch to improve support for (X)Emacs under Win32.
903
907
904 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
908 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
905
909
906 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
910 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
907 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
911 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
908 a report by Nik Tautenhahn.
912 a report by Nik Tautenhahn.
909
913
910 2007-03-16 Walter Doerwald <walter@livinglogic.de>
914 2007-03-16 Walter Doerwald <walter@livinglogic.de>
911
915
912 * setup.py: Add the igrid help files to the list of data files
916 * setup.py: Add the igrid help files to the list of data files
913 to be installed alongside igrid.
917 to be installed alongside igrid.
914 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
918 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
915 Show the input object of the igrid browser as the window tile.
919 Show the input object of the igrid browser as the window tile.
916 Show the object the cursor is on in the statusbar.
920 Show the object the cursor is on in the statusbar.
917
921
918 2007-03-15 Ville Vainio <vivainio@gmail.com>
922 2007-03-15 Ville Vainio <vivainio@gmail.com>
919
923
920 * Extensions/ipy_stock_completers.py: Fixed exception
924 * Extensions/ipy_stock_completers.py: Fixed exception
921 on mismatching quotes in %run completer. Patch by
925 on mismatching quotes in %run completer. Patch by
922 Jorgen Stenarson. Closes #127.
926 Jorgen Stenarson. Closes #127.
923
927
924 2007-03-14 Ville Vainio <vivainio@gmail.com>
928 2007-03-14 Ville Vainio <vivainio@gmail.com>
925
929
926 * Extensions/ext_rehashdir.py: Do not do auto_alias
930 * Extensions/ext_rehashdir.py: Do not do auto_alias
927 in %rehashdir, it clobbers %store'd aliases.
931 in %rehashdir, it clobbers %store'd aliases.
928
932
929 * UserConfig/ipy_profile_sh.py: envpersist.py extension
933 * UserConfig/ipy_profile_sh.py: envpersist.py extension
930 (beefed up %env) imported for sh profile.
934 (beefed up %env) imported for sh profile.
931
935
932 2007-03-10 Walter Doerwald <walter@livinglogic.de>
936 2007-03-10 Walter Doerwald <walter@livinglogic.de>
933
937
934 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
938 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
935 as the default browser.
939 as the default browser.
936 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
940 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
937 As igrid displays all attributes it ever encounters, fetch() (which has
941 As igrid displays all attributes it ever encounters, fetch() (which has
938 been renamed to _fetch()) doesn't have to recalculate the display attributes
942 been renamed to _fetch()) doesn't have to recalculate the display attributes
939 every time a new item is fetched. This should speed up scrolling.
943 every time a new item is fetched. This should speed up scrolling.
940
944
941 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
945 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
942
946
943 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
947 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
944 Schmolck's recently reported tab-completion bug (my previous one
948 Schmolck's recently reported tab-completion bug (my previous one
945 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
949 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
946
950
947 2007-03-09 Walter Doerwald <walter@livinglogic.de>
951 2007-03-09 Walter Doerwald <walter@livinglogic.de>
948
952
949 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
953 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
950 Close help window if exiting igrid.
954 Close help window if exiting igrid.
951
955
952 2007-03-02 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
956 2007-03-02 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
953
957
954 * IPython/Extensions/ipy_defaults.py: Check if readline is available
958 * IPython/Extensions/ipy_defaults.py: Check if readline is available
955 before calling functions from readline.
959 before calling functions from readline.
956
960
957 2007-03-02 Walter Doerwald <walter@livinglogic.de>
961 2007-03-02 Walter Doerwald <walter@livinglogic.de>
958
962
959 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
963 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
960 igrid is a wxPython-based display object for ipipe. If your system has
964 igrid is a wxPython-based display object for ipipe. If your system has
961 wx installed igrid will be the default display. Without wx ipipe falls
965 wx installed igrid will be the default display. Without wx ipipe falls
962 back to ibrowse (which needs curses). If no curses is installed ipipe
966 back to ibrowse (which needs curses). If no curses is installed ipipe
963 falls back to idump.
967 falls back to idump.
964
968
965 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
969 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
966
970
967 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
971 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
968 my changes from yesterday, they introduced bugs. Will reactivate
972 my changes from yesterday, they introduced bugs. Will reactivate
969 once I get a correct solution, which will be much easier thanks to
973 once I get a correct solution, which will be much easier thanks to
970 Dan Milstein's new prefilter test suite.
974 Dan Milstein's new prefilter test suite.
971
975
972 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
976 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
973
977
974 * IPython/iplib.py (split_user_input): fix input splitting so we
978 * IPython/iplib.py (split_user_input): fix input splitting so we
975 don't attempt attribute accesses on things that can't possibly be
979 don't attempt attribute accesses on things that can't possibly be
976 valid Python attributes. After a bug report by Alex Schmolck.
980 valid Python attributes. After a bug report by Alex Schmolck.
977 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
981 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
978 %magic with explicit % prefix.
982 %magic with explicit % prefix.
979
983
980 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
984 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
981
985
982 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
986 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
983 avoid a DeprecationWarning from GTK.
987 avoid a DeprecationWarning from GTK.
984
988
985 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
989 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
986
990
987 * IPython/genutils.py (clock): I modified clock() to return total
991 * IPython/genutils.py (clock): I modified clock() to return total
988 time, user+system. This is a more commonly needed metric. I also
992 time, user+system. This is a more commonly needed metric. I also
989 introduced the new clocku/clocks to get only user/system time if
993 introduced the new clocku/clocks to get only user/system time if
990 one wants those instead.
994 one wants those instead.
991
995
992 ***WARNING: API CHANGE*** clock() used to return only user time,
996 ***WARNING: API CHANGE*** clock() used to return only user time,
993 so if you want exactly the same results as before, use clocku
997 so if you want exactly the same results as before, use clocku
994 instead.
998 instead.
995
999
996 2007-02-22 Ville Vainio <vivainio@gmail.com>
1000 2007-02-22 Ville Vainio <vivainio@gmail.com>
997
1001
998 * IPython/Extensions/ipy_p4.py: Extension for improved
1002 * IPython/Extensions/ipy_p4.py: Extension for improved
999 p4 (perforce version control system) experience.
1003 p4 (perforce version control system) experience.
1000 Adds %p4 magic with p4 command completion and
1004 Adds %p4 magic with p4 command completion and
1001 automatic -G argument (marshall output as python dict)
1005 automatic -G argument (marshall output as python dict)
1002
1006
1003 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
1007 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
1004
1008
1005 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
1009 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
1006 stop marks.
1010 stop marks.
1007 (ClearingMixin): a simple mixin to easily make a Demo class clear
1011 (ClearingMixin): a simple mixin to easily make a Demo class clear
1008 the screen in between blocks and have empty marquees. The
1012 the screen in between blocks and have empty marquees. The
1009 ClearDemo and ClearIPDemo classes that use it are included.
1013 ClearDemo and ClearIPDemo classes that use it are included.
1010
1014
1011 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
1015 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
1012
1016
1013 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
1017 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
1014 protect against exceptions at Python shutdown time. Patch
1018 protect against exceptions at Python shutdown time. Patch
1015 sumbmitted to upstream.
1019 sumbmitted to upstream.
1016
1020
1017 2007-02-14 Walter Doerwald <walter@livinglogic.de>
1021 2007-02-14 Walter Doerwald <walter@livinglogic.de>
1018
1022
1019 * IPython/Extensions/ibrowse.py: If entering the first object level
1023 * IPython/Extensions/ibrowse.py: If entering the first object level
1020 (i.e. the object for which the browser has been started) fails,
1024 (i.e. the object for which the browser has been started) fails,
1021 now the error is raised directly (aborting the browser) instead of
1025 now the error is raised directly (aborting the browser) instead of
1022 running into an empty levels list later.
1026 running into an empty levels list later.
1023
1027
1024 2007-02-03 Walter Doerwald <walter@livinglogic.de>
1028 2007-02-03 Walter Doerwald <walter@livinglogic.de>
1025
1029
1026 * IPython/Extensions/ipipe.py: Add an xrepr implementation
1030 * IPython/Extensions/ipipe.py: Add an xrepr implementation
1027 for the noitem object.
1031 for the noitem object.
1028
1032
1029 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
1033 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
1030
1034
1031 * IPython/completer.py (Completer.attr_matches): Fix small
1035 * IPython/completer.py (Completer.attr_matches): Fix small
1032 tab-completion bug with Enthought Traits objects with units.
1036 tab-completion bug with Enthought Traits objects with units.
1033 Thanks to a bug report by Tom Denniston
1037 Thanks to a bug report by Tom Denniston
1034 <tom.denniston-AT-alum.dartmouth.org>.
1038 <tom.denniston-AT-alum.dartmouth.org>.
1035
1039
1036 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
1040 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
1037
1041
1038 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
1042 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
1039 bug where only .ipy or .py would be completed. Once the first
1043 bug where only .ipy or .py would be completed. Once the first
1040 argument to %run has been given, all completions are valid because
1044 argument to %run has been given, all completions are valid because
1041 they are the arguments to the script, which may well be non-python
1045 they are the arguments to the script, which may well be non-python
1042 filenames.
1046 filenames.
1043
1047
1044 * IPython/irunner.py (InteractiveRunner.run_source): major updates
1048 * IPython/irunner.py (InteractiveRunner.run_source): major updates
1045 to irunner to allow it to correctly support real doctesting of
1049 to irunner to allow it to correctly support real doctesting of
1046 out-of-process ipython code.
1050 out-of-process ipython code.
1047
1051
1048 * IPython/Magic.py (magic_cd): Make the setting of the terminal
1052 * IPython/Magic.py (magic_cd): Make the setting of the terminal
1049 title an option (-noterm_title) because it completely breaks
1053 title an option (-noterm_title) because it completely breaks
1050 doctesting.
1054 doctesting.
1051
1055
1052 * IPython/demo.py: fix IPythonDemo class that was not actually working.
1056 * IPython/demo.py: fix IPythonDemo class that was not actually working.
1053
1057
1054 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
1058 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
1055
1059
1056 * IPython/irunner.py (main): fix small bug where extensions were
1060 * IPython/irunner.py (main): fix small bug where extensions were
1057 not being correctly recognized.
1061 not being correctly recognized.
1058
1062
1059 2007-01-23 Walter Doerwald <walter@livinglogic.de>
1063 2007-01-23 Walter Doerwald <walter@livinglogic.de>
1060
1064
1061 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
1065 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
1062 a string containing a single line yields the string itself as the
1066 a string containing a single line yields the string itself as the
1063 only item.
1067 only item.
1064
1068
1065 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
1069 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
1066 object if it's the same as the one on the last level (This avoids
1070 object if it's the same as the one on the last level (This avoids
1067 infinite recursion for one line strings).
1071 infinite recursion for one line strings).
1068
1072
1069 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1073 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1070
1074
1071 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
1075 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
1072 all output streams before printing tracebacks. This ensures that
1076 all output streams before printing tracebacks. This ensures that
1073 user output doesn't end up interleaved with traceback output.
1077 user output doesn't end up interleaved with traceback output.
1074
1078
1075 2007-01-10 Ville Vainio <vivainio@gmail.com>
1079 2007-01-10 Ville Vainio <vivainio@gmail.com>
1076
1080
1077 * Extensions/envpersist.py: Turbocharged %env that remembers
1081 * Extensions/envpersist.py: Turbocharged %env that remembers
1078 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
1082 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
1079 "%env VISUAL=jed".
1083 "%env VISUAL=jed".
1080
1084
1081 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
1085 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
1082
1086
1083 * IPython/iplib.py (showtraceback): ensure that we correctly call
1087 * IPython/iplib.py (showtraceback): ensure that we correctly call
1084 custom handlers in all cases (some with pdb were slipping through,
1088 custom handlers in all cases (some with pdb were slipping through,
1085 but I'm not exactly sure why).
1089 but I'm not exactly sure why).
1086
1090
1087 * IPython/Debugger.py (Tracer.__init__): added new class to
1091 * IPython/Debugger.py (Tracer.__init__): added new class to
1088 support set_trace-like usage of IPython's enhanced debugger.
1092 support set_trace-like usage of IPython's enhanced debugger.
1089
1093
1090 2006-12-24 Ville Vainio <vivainio@gmail.com>
1094 2006-12-24 Ville Vainio <vivainio@gmail.com>
1091
1095
1092 * ipmaker.py: more informative message when ipy_user_conf
1096 * ipmaker.py: more informative message when ipy_user_conf
1093 import fails (suggest running %upgrade).
1097 import fails (suggest running %upgrade).
1094
1098
1095 * tools/run_ipy_in_profiler.py: Utility to see where
1099 * tools/run_ipy_in_profiler.py: Utility to see where
1096 the time during IPython startup is spent.
1100 the time during IPython startup is spent.
1097
1101
1098 2006-12-20 Ville Vainio <vivainio@gmail.com>
1102 2006-12-20 Ville Vainio <vivainio@gmail.com>
1099
1103
1100 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
1104 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
1101
1105
1102 * ipapi.py: Add new ipapi method, expand_alias.
1106 * ipapi.py: Add new ipapi method, expand_alias.
1103
1107
1104 * Release.py: Bump up version to 0.7.4.svn
1108 * Release.py: Bump up version to 0.7.4.svn
1105
1109
1106 2006-12-17 Ville Vainio <vivainio@gmail.com>
1110 2006-12-17 Ville Vainio <vivainio@gmail.com>
1107
1111
1108 * Extensions/jobctrl.py: Fixed &cmd arg arg...
1112 * Extensions/jobctrl.py: Fixed &cmd arg arg...
1109 to work properly on posix too
1113 to work properly on posix too
1110
1114
1111 * Release.py: Update revnum (version is still just 0.7.3).
1115 * Release.py: Update revnum (version is still just 0.7.3).
1112
1116
1113 2006-12-15 Ville Vainio <vivainio@gmail.com>
1117 2006-12-15 Ville Vainio <vivainio@gmail.com>
1114
1118
1115 * scripts/ipython_win_post_install: create ipython.py in
1119 * scripts/ipython_win_post_install: create ipython.py in
1116 prefix + "/scripts".
1120 prefix + "/scripts".
1117
1121
1118 * Release.py: Update version to 0.7.3.
1122 * Release.py: Update version to 0.7.3.
1119
1123
1120 2006-12-14 Ville Vainio <vivainio@gmail.com>
1124 2006-12-14 Ville Vainio <vivainio@gmail.com>
1121
1125
1122 * scripts/ipython_win_post_install: Overwrite old shortcuts
1126 * scripts/ipython_win_post_install: Overwrite old shortcuts
1123 if they already exist
1127 if they already exist
1124
1128
1125 * Release.py: release 0.7.3rc2
1129 * Release.py: release 0.7.3rc2
1126
1130
1127 2006-12-13 Ville Vainio <vivainio@gmail.com>
1131 2006-12-13 Ville Vainio <vivainio@gmail.com>
1128
1132
1129 * Branch and update Release.py for 0.7.3rc1
1133 * Branch and update Release.py for 0.7.3rc1
1130
1134
1131 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
1135 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
1132
1136
1133 * IPython/Shell.py (IPShellWX): update for current WX naming
1137 * IPython/Shell.py (IPShellWX): update for current WX naming
1134 conventions, to avoid a deprecation warning with current WX
1138 conventions, to avoid a deprecation warning with current WX
1135 versions. Thanks to a report by Danny Shevitz.
1139 versions. Thanks to a report by Danny Shevitz.
1136
1140
1137 2006-12-12 Ville Vainio <vivainio@gmail.com>
1141 2006-12-12 Ville Vainio <vivainio@gmail.com>
1138
1142
1139 * ipmaker.py: apply david cournapeau's patch to make
1143 * ipmaker.py: apply david cournapeau's patch to make
1140 import_some work properly even when ipythonrc does
1144 import_some work properly even when ipythonrc does
1141 import_some on empty list (it was an old bug!).
1145 import_some on empty list (it was an old bug!).
1142
1146
1143 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
1147 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
1144 Add deprecation note to ipythonrc and a url to wiki
1148 Add deprecation note to ipythonrc and a url to wiki
1145 in ipy_user_conf.py
1149 in ipy_user_conf.py
1146
1150
1147
1151
1148 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
1152 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
1149 as if it was typed on IPython command prompt, i.e.
1153 as if it was typed on IPython command prompt, i.e.
1150 as IPython script.
1154 as IPython script.
1151
1155
1152 * example-magic.py, magic_grepl.py: remove outdated examples
1156 * example-magic.py, magic_grepl.py: remove outdated examples
1153
1157
1154 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
1158 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
1155
1159
1156 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
1160 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
1157 is called before any exception has occurred.
1161 is called before any exception has occurred.
1158
1162
1159 2006-12-08 Ville Vainio <vivainio@gmail.com>
1163 2006-12-08 Ville Vainio <vivainio@gmail.com>
1160
1164
1161 * Extensions/ipy_stock_completers.py: fix cd completer
1165 * Extensions/ipy_stock_completers.py: fix cd completer
1162 to translate /'s to \'s again.
1166 to translate /'s to \'s again.
1163
1167
1164 * completer.py: prevent traceback on file completions w/
1168 * completer.py: prevent traceback on file completions w/
1165 backslash.
1169 backslash.
1166
1170
1167 * Release.py: Update release number to 0.7.3b3 for release
1171 * Release.py: Update release number to 0.7.3b3 for release
1168
1172
1169 2006-12-07 Ville Vainio <vivainio@gmail.com>
1173 2006-12-07 Ville Vainio <vivainio@gmail.com>
1170
1174
1171 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
1175 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
1172 while executing external code. Provides more shell-like behaviour
1176 while executing external code. Provides more shell-like behaviour
1173 and overall better response to ctrl + C / ctrl + break.
1177 and overall better response to ctrl + C / ctrl + break.
1174
1178
1175 * tools/make_tarball.py: new script to create tarball straight from svn
1179 * tools/make_tarball.py: new script to create tarball straight from svn
1176 (setup.py sdist doesn't work on win32).
1180 (setup.py sdist doesn't work on win32).
1177
1181
1178 * Extensions/ipy_stock_completers.py: fix cd completer to give up
1182 * Extensions/ipy_stock_completers.py: fix cd completer to give up
1179 on dirnames with spaces and use the default completer instead.
1183 on dirnames with spaces and use the default completer instead.
1180
1184
1181 * Revision.py: Change version to 0.7.3b2 for release.
1185 * Revision.py: Change version to 0.7.3b2 for release.
1182
1186
1183 2006-12-05 Ville Vainio <vivainio@gmail.com>
1187 2006-12-05 Ville Vainio <vivainio@gmail.com>
1184
1188
1185 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
1189 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
1186 pydb patch 4 (rm debug printing, py 2.5 checking)
1190 pydb patch 4 (rm debug printing, py 2.5 checking)
1187
1191
1188 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1192 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1189 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1193 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1190 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1194 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1191 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1195 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1192 object the cursor was on before the refresh. The command "markrange" is
1196 object the cursor was on before the refresh. The command "markrange" is
1193 mapped to "%" now.
1197 mapped to "%" now.
1194 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1198 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1195
1199
1196 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1200 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1197
1201
1198 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1202 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1199 interactive debugger on the last traceback, without having to call
1203 interactive debugger on the last traceback, without having to call
1200 %pdb and rerun your code. Made minor changes in various modules,
1204 %pdb and rerun your code. Made minor changes in various modules,
1201 should automatically recognize pydb if available.
1205 should automatically recognize pydb if available.
1202
1206
1203 2006-11-28 Ville Vainio <vivainio@gmail.com>
1207 2006-11-28 Ville Vainio <vivainio@gmail.com>
1204
1208
1205 * completer.py: If the text start with !, show file completions
1209 * completer.py: If the text start with !, show file completions
1206 properly. This helps when trying to complete command name
1210 properly. This helps when trying to complete command name
1207 for shell escapes.
1211 for shell escapes.
1208
1212
1209 2006-11-27 Ville Vainio <vivainio@gmail.com>
1213 2006-11-27 Ville Vainio <vivainio@gmail.com>
1210
1214
1211 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1215 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1212 der Walt. Clean up svn and hg completers by using a common
1216 der Walt. Clean up svn and hg completers by using a common
1213 vcs_completer.
1217 vcs_completer.
1214
1218
1215 2006-11-26 Ville Vainio <vivainio@gmail.com>
1219 2006-11-26 Ville Vainio <vivainio@gmail.com>
1216
1220
1217 * Remove ipconfig and %config; you should use _ip.options structure
1221 * Remove ipconfig and %config; you should use _ip.options structure
1218 directly instead!
1222 directly instead!
1219
1223
1220 * genutils.py: add wrap_deprecated function for deprecating callables
1224 * genutils.py: add wrap_deprecated function for deprecating callables
1221
1225
1222 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1226 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1223 _ip.system instead. ipalias is redundant.
1227 _ip.system instead. ipalias is redundant.
1224
1228
1225 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1229 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1226 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1230 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1227 explicit.
1231 explicit.
1228
1232
1229 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1233 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1230 completer. Try it by entering 'hg ' and pressing tab.
1234 completer. Try it by entering 'hg ' and pressing tab.
1231
1235
1232 * macro.py: Give Macro a useful __repr__ method
1236 * macro.py: Give Macro a useful __repr__ method
1233
1237
1234 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1238 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1235
1239
1236 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1240 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1237 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1241 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1238 we don't get a duplicate ipipe module, where registration of the xrepr
1242 we don't get a duplicate ipipe module, where registration of the xrepr
1239 implementation for Text is useless.
1243 implementation for Text is useless.
1240
1244
1241 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1245 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1242
1246
1243 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1247 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1244
1248
1245 2006-11-24 Ville Vainio <vivainio@gmail.com>
1249 2006-11-24 Ville Vainio <vivainio@gmail.com>
1246
1250
1247 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1251 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1248 try to use "cProfile" instead of the slower pure python
1252 try to use "cProfile" instead of the slower pure python
1249 "profile"
1253 "profile"
1250
1254
1251 2006-11-23 Ville Vainio <vivainio@gmail.com>
1255 2006-11-23 Ville Vainio <vivainio@gmail.com>
1252
1256
1253 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1257 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1254 Qt+IPython+Designer link in documentation.
1258 Qt+IPython+Designer link in documentation.
1255
1259
1256 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1260 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1257 correct Pdb object to %pydb.
1261 correct Pdb object to %pydb.
1258
1262
1259
1263
1260 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1264 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1261 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1265 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1262 generic xrepr(), otherwise the list implementation would kick in.
1266 generic xrepr(), otherwise the list implementation would kick in.
1263
1267
1264 2006-11-21 Ville Vainio <vivainio@gmail.com>
1268 2006-11-21 Ville Vainio <vivainio@gmail.com>
1265
1269
1266 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1270 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1267 with one from UserConfig.
1271 with one from UserConfig.
1268
1272
1269 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1273 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1270 it was missing which broke the sh profile.
1274 it was missing which broke the sh profile.
1271
1275
1272 * completer.py: file completer now uses explicit '/' instead
1276 * completer.py: file completer now uses explicit '/' instead
1273 of os.path.join, expansion of 'foo' was broken on win32
1277 of os.path.join, expansion of 'foo' was broken on win32
1274 if there was one directory with name 'foobar'.
1278 if there was one directory with name 'foobar'.
1275
1279
1276 * A bunch of patches from Kirill Smelkov:
1280 * A bunch of patches from Kirill Smelkov:
1277
1281
1278 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1282 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1279
1283
1280 * [patch 7/9] Implement %page -r (page in raw mode) -
1284 * [patch 7/9] Implement %page -r (page in raw mode) -
1281
1285
1282 * [patch 5/9] ScientificPython webpage has moved
1286 * [patch 5/9] ScientificPython webpage has moved
1283
1287
1284 * [patch 4/9] The manual mentions %ds, should be %dhist
1288 * [patch 4/9] The manual mentions %ds, should be %dhist
1285
1289
1286 * [patch 3/9] Kill old bits from %prun doc.
1290 * [patch 3/9] Kill old bits from %prun doc.
1287
1291
1288 * [patch 1/9] Fix typos here and there.
1292 * [patch 1/9] Fix typos here and there.
1289
1293
1290 2006-11-08 Ville Vainio <vivainio@gmail.com>
1294 2006-11-08 Ville Vainio <vivainio@gmail.com>
1291
1295
1292 * completer.py (attr_matches): catch all exceptions raised
1296 * completer.py (attr_matches): catch all exceptions raised
1293 by eval of expr with dots.
1297 by eval of expr with dots.
1294
1298
1295 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1299 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1296
1300
1297 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1301 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1298 input if it starts with whitespace. This allows you to paste
1302 input if it starts with whitespace. This allows you to paste
1299 indented input from any editor without manually having to type in
1303 indented input from any editor without manually having to type in
1300 the 'if 1:', which is convenient when working interactively.
1304 the 'if 1:', which is convenient when working interactively.
1301 Slightly modifed version of a patch by Bo Peng
1305 Slightly modifed version of a patch by Bo Peng
1302 <bpeng-AT-rice.edu>.
1306 <bpeng-AT-rice.edu>.
1303
1307
1304 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1308 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1305
1309
1306 * IPython/irunner.py (main): modified irunner so it automatically
1310 * IPython/irunner.py (main): modified irunner so it automatically
1307 recognizes the right runner to use based on the extension (.py for
1311 recognizes the right runner to use based on the extension (.py for
1308 python, .ipy for ipython and .sage for sage).
1312 python, .ipy for ipython and .sage for sage).
1309
1313
1310 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1314 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1311 visible in ipapi as ip.config(), to programatically control the
1315 visible in ipapi as ip.config(), to programatically control the
1312 internal rc object. There's an accompanying %config magic for
1316 internal rc object. There's an accompanying %config magic for
1313 interactive use, which has been enhanced to match the
1317 interactive use, which has been enhanced to match the
1314 funtionality in ipconfig.
1318 funtionality in ipconfig.
1315
1319
1316 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1320 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1317 so it's not just a toggle, it now takes an argument. Add support
1321 so it's not just a toggle, it now takes an argument. Add support
1318 for a customizable header when making system calls, as the new
1322 for a customizable header when making system calls, as the new
1319 system_header variable in the ipythonrc file.
1323 system_header variable in the ipythonrc file.
1320
1324
1321 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1325 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1322
1326
1323 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1327 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1324 generic functions (using Philip J. Eby's simplegeneric package).
1328 generic functions (using Philip J. Eby's simplegeneric package).
1325 This makes it possible to customize the display of third-party classes
1329 This makes it possible to customize the display of third-party classes
1326 without having to monkeypatch them. xiter() no longer supports a mode
1330 without having to monkeypatch them. xiter() no longer supports a mode
1327 argument and the XMode class has been removed. The same functionality can
1331 argument and the XMode class has been removed. The same functionality can
1328 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1332 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1329 One consequence of the switch to generic functions is that xrepr() and
1333 One consequence of the switch to generic functions is that xrepr() and
1330 xattrs() implementation must define the default value for the mode
1334 xattrs() implementation must define the default value for the mode
1331 argument themselves and xattrs() implementations must return real
1335 argument themselves and xattrs() implementations must return real
1332 descriptors.
1336 descriptors.
1333
1337
1334 * IPython/external: This new subpackage will contain all third-party
1338 * IPython/external: This new subpackage will contain all third-party
1335 packages that are bundled with IPython. (The first one is simplegeneric).
1339 packages that are bundled with IPython. (The first one is simplegeneric).
1336
1340
1337 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1341 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1338 directory which as been dropped in r1703.
1342 directory which as been dropped in r1703.
1339
1343
1340 * IPython/Extensions/ipipe.py (iless): Fixed.
1344 * IPython/Extensions/ipipe.py (iless): Fixed.
1341
1345
1342 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1346 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1343
1347
1344 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1348 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1345
1349
1346 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1350 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1347 handling in variable expansion so that shells and magics recognize
1351 handling in variable expansion so that shells and magics recognize
1348 function local scopes correctly. Bug reported by Brian.
1352 function local scopes correctly. Bug reported by Brian.
1349
1353
1350 * scripts/ipython: remove the very first entry in sys.path which
1354 * scripts/ipython: remove the very first entry in sys.path which
1351 Python auto-inserts for scripts, so that sys.path under IPython is
1355 Python auto-inserts for scripts, so that sys.path under IPython is
1352 as similar as possible to that under plain Python.
1356 as similar as possible to that under plain Python.
1353
1357
1354 * IPython/completer.py (IPCompleter.file_matches): Fix
1358 * IPython/completer.py (IPCompleter.file_matches): Fix
1355 tab-completion so that quotes are not closed unless the completion
1359 tab-completion so that quotes are not closed unless the completion
1356 is unambiguous. After a request by Stefan. Minor cleanups in
1360 is unambiguous. After a request by Stefan. Minor cleanups in
1357 ipy_stock_completers.
1361 ipy_stock_completers.
1358
1362
1359 2006-11-02 Ville Vainio <vivainio@gmail.com>
1363 2006-11-02 Ville Vainio <vivainio@gmail.com>
1360
1364
1361 * ipy_stock_completers.py: Add %run and %cd completers.
1365 * ipy_stock_completers.py: Add %run and %cd completers.
1362
1366
1363 * completer.py: Try running custom completer for both
1367 * completer.py: Try running custom completer for both
1364 "foo" and "%foo" if the command is just "foo". Ignore case
1368 "foo" and "%foo" if the command is just "foo". Ignore case
1365 when filtering possible completions.
1369 when filtering possible completions.
1366
1370
1367 * UserConfig/ipy_user_conf.py: install stock completers as default
1371 * UserConfig/ipy_user_conf.py: install stock completers as default
1368
1372
1369 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1373 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1370 simplified readline history save / restore through a wrapper
1374 simplified readline history save / restore through a wrapper
1371 function
1375 function
1372
1376
1373
1377
1374 2006-10-31 Ville Vainio <vivainio@gmail.com>
1378 2006-10-31 Ville Vainio <vivainio@gmail.com>
1375
1379
1376 * strdispatch.py, completer.py, ipy_stock_completers.py:
1380 * strdispatch.py, completer.py, ipy_stock_completers.py:
1377 Allow str_key ("command") in completer hooks. Implement
1381 Allow str_key ("command") in completer hooks. Implement
1378 trivial completer for 'import' (stdlib modules only). Rename
1382 trivial completer for 'import' (stdlib modules only). Rename
1379 ipy_linux_package_managers.py to ipy_stock_completers.py.
1383 ipy_linux_package_managers.py to ipy_stock_completers.py.
1380 SVN completer.
1384 SVN completer.
1381
1385
1382 * Extensions/ledit.py: %magic line editor for easily and
1386 * Extensions/ledit.py: %magic line editor for easily and
1383 incrementally manipulating lists of strings. The magic command
1387 incrementally manipulating lists of strings. The magic command
1384 name is %led.
1388 name is %led.
1385
1389
1386 2006-10-30 Ville Vainio <vivainio@gmail.com>
1390 2006-10-30 Ville Vainio <vivainio@gmail.com>
1387
1391
1388 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1392 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1389 Bernsteins's patches for pydb integration.
1393 Bernsteins's patches for pydb integration.
1390 http://bashdb.sourceforge.net/pydb/
1394 http://bashdb.sourceforge.net/pydb/
1391
1395
1392 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1396 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1393 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1397 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1394 custom completer hook to allow the users to implement their own
1398 custom completer hook to allow the users to implement their own
1395 completers. See ipy_linux_package_managers.py for example. The
1399 completers. See ipy_linux_package_managers.py for example. The
1396 hook name is 'complete_command'.
1400 hook name is 'complete_command'.
1397
1401
1398 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1402 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1399
1403
1400 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1404 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1401 Numeric leftovers.
1405 Numeric leftovers.
1402
1406
1403 * ipython.el (py-execute-region): apply Stefan's patch to fix
1407 * ipython.el (py-execute-region): apply Stefan's patch to fix
1404 garbled results if the python shell hasn't been previously started.
1408 garbled results if the python shell hasn't been previously started.
1405
1409
1406 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1410 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1407 pretty generic function and useful for other things.
1411 pretty generic function and useful for other things.
1408
1412
1409 * IPython/OInspect.py (getsource): Add customizable source
1413 * IPython/OInspect.py (getsource): Add customizable source
1410 extractor. After a request/patch form W. Stein (SAGE).
1414 extractor. After a request/patch form W. Stein (SAGE).
1411
1415
1412 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1416 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1413 window size to a more reasonable value from what pexpect does,
1417 window size to a more reasonable value from what pexpect does,
1414 since their choice causes wrapping bugs with long input lines.
1418 since their choice causes wrapping bugs with long input lines.
1415
1419
1416 2006-10-28 Ville Vainio <vivainio@gmail.com>
1420 2006-10-28 Ville Vainio <vivainio@gmail.com>
1417
1421
1418 * Magic.py (%run): Save and restore the readline history from
1422 * Magic.py (%run): Save and restore the readline history from
1419 file around %run commands to prevent side effects from
1423 file around %run commands to prevent side effects from
1420 %runned programs that might use readline (e.g. pydb).
1424 %runned programs that might use readline (e.g. pydb).
1421
1425
1422 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1426 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1423 invoking the pydb enhanced debugger.
1427 invoking the pydb enhanced debugger.
1424
1428
1425 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1429 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1426
1430
1427 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1431 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1428 call the base class method and propagate the return value to
1432 call the base class method and propagate the return value to
1429 ifile. This is now done by path itself.
1433 ifile. This is now done by path itself.
1430
1434
1431 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1435 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1432
1436
1433 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1437 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1434 api: set_crash_handler(), to expose the ability to change the
1438 api: set_crash_handler(), to expose the ability to change the
1435 internal crash handler.
1439 internal crash handler.
1436
1440
1437 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1441 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1438 the various parameters of the crash handler so that apps using
1442 the various parameters of the crash handler so that apps using
1439 IPython as their engine can customize crash handling. Ipmlemented
1443 IPython as their engine can customize crash handling. Ipmlemented
1440 at the request of SAGE.
1444 at the request of SAGE.
1441
1445
1442 2006-10-14 Ville Vainio <vivainio@gmail.com>
1446 2006-10-14 Ville Vainio <vivainio@gmail.com>
1443
1447
1444 * Magic.py, ipython.el: applied first "safe" part of Rocky
1448 * Magic.py, ipython.el: applied first "safe" part of Rocky
1445 Bernstein's patch set for pydb integration.
1449 Bernstein's patch set for pydb integration.
1446
1450
1447 * Magic.py (%unalias, %alias): %store'd aliases can now be
1451 * Magic.py (%unalias, %alias): %store'd aliases can now be
1448 removed with '%unalias'. %alias w/o args now shows most
1452 removed with '%unalias'. %alias w/o args now shows most
1449 interesting (stored / manually defined) aliases last
1453 interesting (stored / manually defined) aliases last
1450 where they catch the eye w/o scrolling.
1454 where they catch the eye w/o scrolling.
1451
1455
1452 * Magic.py (%rehashx), ext_rehashdir.py: files with
1456 * Magic.py (%rehashx), ext_rehashdir.py: files with
1453 'py' extension are always considered executable, even
1457 'py' extension are always considered executable, even
1454 when not in PATHEXT environment variable.
1458 when not in PATHEXT environment variable.
1455
1459
1456 2006-10-12 Ville Vainio <vivainio@gmail.com>
1460 2006-10-12 Ville Vainio <vivainio@gmail.com>
1457
1461
1458 * jobctrl.py: Add new "jobctrl" extension for spawning background
1462 * jobctrl.py: Add new "jobctrl" extension for spawning background
1459 processes with "&find /". 'import jobctrl' to try it out. Requires
1463 processes with "&find /". 'import jobctrl' to try it out. Requires
1460 'subprocess' module, standard in python 2.4+.
1464 'subprocess' module, standard in python 2.4+.
1461
1465
1462 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1466 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1463 so if foo -> bar and bar -> baz, then foo -> baz.
1467 so if foo -> bar and bar -> baz, then foo -> baz.
1464
1468
1465 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1469 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1466
1470
1467 * IPython/Magic.py (Magic.parse_options): add a new posix option
1471 * IPython/Magic.py (Magic.parse_options): add a new posix option
1468 to allow parsing of input args in magics that doesn't strip quotes
1472 to allow parsing of input args in magics that doesn't strip quotes
1469 (if posix=False). This also closes %timeit bug reported by
1473 (if posix=False). This also closes %timeit bug reported by
1470 Stefan.
1474 Stefan.
1471
1475
1472 2006-10-03 Ville Vainio <vivainio@gmail.com>
1476 2006-10-03 Ville Vainio <vivainio@gmail.com>
1473
1477
1474 * iplib.py (raw_input, interact): Return ValueError catching for
1478 * iplib.py (raw_input, interact): Return ValueError catching for
1475 raw_input. Fixes infinite loop for sys.stdin.close() or
1479 raw_input. Fixes infinite loop for sys.stdin.close() or
1476 sys.stdout.close().
1480 sys.stdout.close().
1477
1481
1478 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1482 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1479
1483
1480 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1484 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1481 to help in handling doctests. irunner is now pretty useful for
1485 to help in handling doctests. irunner is now pretty useful for
1482 running standalone scripts and simulate a full interactive session
1486 running standalone scripts and simulate a full interactive session
1483 in a format that can be then pasted as a doctest.
1487 in a format that can be then pasted as a doctest.
1484
1488
1485 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1489 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1486 on top of the default (useless) ones. This also fixes the nasty
1490 on top of the default (useless) ones. This also fixes the nasty
1487 way in which 2.5's Quitter() exits (reverted [1785]).
1491 way in which 2.5's Quitter() exits (reverted [1785]).
1488
1492
1489 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1493 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1490 2.5.
1494 2.5.
1491
1495
1492 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1496 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1493 color scheme is updated as well when color scheme is changed
1497 color scheme is updated as well when color scheme is changed
1494 interactively.
1498 interactively.
1495
1499
1496 2006-09-27 Ville Vainio <vivainio@gmail.com>
1500 2006-09-27 Ville Vainio <vivainio@gmail.com>
1497
1501
1498 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1502 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1499 infinite loop and just exit. It's a hack, but will do for a while.
1503 infinite loop and just exit. It's a hack, but will do for a while.
1500
1504
1501 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1505 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1502
1506
1503 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1507 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1504 the constructor, this makes it possible to get a list of only directories
1508 the constructor, this makes it possible to get a list of only directories
1505 or only files.
1509 or only files.
1506
1510
1507 2006-08-12 Ville Vainio <vivainio@gmail.com>
1511 2006-08-12 Ville Vainio <vivainio@gmail.com>
1508
1512
1509 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1513 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1510 they broke unittest
1514 they broke unittest
1511
1515
1512 2006-08-11 Ville Vainio <vivainio@gmail.com>
1516 2006-08-11 Ville Vainio <vivainio@gmail.com>
1513
1517
1514 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1518 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1515 by resolving issue properly, i.e. by inheriting FakeModule
1519 by resolving issue properly, i.e. by inheriting FakeModule
1516 from types.ModuleType. Pickling ipython interactive data
1520 from types.ModuleType. Pickling ipython interactive data
1517 should still work as usual (testing appreciated).
1521 should still work as usual (testing appreciated).
1518
1522
1519 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1523 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1520
1524
1521 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1525 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1522 running under python 2.3 with code from 2.4 to fix a bug with
1526 running under python 2.3 with code from 2.4 to fix a bug with
1523 help(). Reported by the Debian maintainers, Norbert Tretkowski
1527 help(). Reported by the Debian maintainers, Norbert Tretkowski
1524 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1528 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1525 <afayolle-AT-debian.org>.
1529 <afayolle-AT-debian.org>.
1526
1530
1527 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1531 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1528
1532
1529 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1533 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1530 (which was displaying "quit" twice).
1534 (which was displaying "quit" twice).
1531
1535
1532 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1536 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1533
1537
1534 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1538 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1535 the mode argument).
1539 the mode argument).
1536
1540
1537 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1541 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1538
1542
1539 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1543 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1540 not running under IPython.
1544 not running under IPython.
1541
1545
1542 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1546 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1543 and make it iterable (iterating over the attribute itself). Add two new
1547 and make it iterable (iterating over the attribute itself). Add two new
1544 magic strings for __xattrs__(): If the string starts with "-", the attribute
1548 magic strings for __xattrs__(): If the string starts with "-", the attribute
1545 will not be displayed in ibrowse's detail view (but it can still be
1549 will not be displayed in ibrowse's detail view (but it can still be
1546 iterated over). This makes it possible to add attributes that are large
1550 iterated over). This makes it possible to add attributes that are large
1547 lists or generator methods to the detail view. Replace magic attribute names
1551 lists or generator methods to the detail view. Replace magic attribute names
1548 and _attrname() and _getattr() with "descriptors": For each type of magic
1552 and _attrname() and _getattr() with "descriptors": For each type of magic
1549 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1553 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1550 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1554 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1551 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1555 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1552 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1556 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1553 are still supported.
1557 are still supported.
1554
1558
1555 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1559 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1556 fails in ibrowse.fetch(), the exception object is added as the last item
1560 fails in ibrowse.fetch(), the exception object is added as the last item
1557 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1561 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1558 a generator throws an exception midway through execution.
1562 a generator throws an exception midway through execution.
1559
1563
1560 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1564 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1561 encoding into methods.
1565 encoding into methods.
1562
1566
1563 2006-07-26 Ville Vainio <vivainio@gmail.com>
1567 2006-07-26 Ville Vainio <vivainio@gmail.com>
1564
1568
1565 * iplib.py: history now stores multiline input as single
1569 * iplib.py: history now stores multiline input as single
1566 history entries. Patch by Jorgen Cederlof.
1570 history entries. Patch by Jorgen Cederlof.
1567
1571
1568 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1572 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1569
1573
1570 * IPython/Extensions/ibrowse.py: Make cursor visible over
1574 * IPython/Extensions/ibrowse.py: Make cursor visible over
1571 non existing attributes.
1575 non existing attributes.
1572
1576
1573 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1577 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1574
1578
1575 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1579 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1576 error output of the running command doesn't mess up the screen.
1580 error output of the running command doesn't mess up the screen.
1577
1581
1578 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1582 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1579
1583
1580 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1584 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1581 argument. This sorts the items themselves.
1585 argument. This sorts the items themselves.
1582
1586
1583 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1587 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1584
1588
1585 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1589 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1586 Compile expression strings into code objects. This should speed
1590 Compile expression strings into code objects. This should speed
1587 up ifilter and friends somewhat.
1591 up ifilter and friends somewhat.
1588
1592
1589 2006-07-08 Ville Vainio <vivainio@gmail.com>
1593 2006-07-08 Ville Vainio <vivainio@gmail.com>
1590
1594
1591 * Magic.py: %cpaste now strips > from the beginning of lines
1595 * Magic.py: %cpaste now strips > from the beginning of lines
1592 to ease pasting quoted code from emails. Contributed by
1596 to ease pasting quoted code from emails. Contributed by
1593 Stefan van der Walt.
1597 Stefan van der Walt.
1594
1598
1595 2006-06-29 Ville Vainio <vivainio@gmail.com>
1599 2006-06-29 Ville Vainio <vivainio@gmail.com>
1596
1600
1597 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1601 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1598 mode, patch contributed by Darren Dale. NEEDS TESTING!
1602 mode, patch contributed by Darren Dale. NEEDS TESTING!
1599
1603
1600 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1604 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1601
1605
1602 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1606 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1603 a blue background. Fix fetching new display rows when the browser
1607 a blue background. Fix fetching new display rows when the browser
1604 scrolls more than a screenful (e.g. by using the goto command).
1608 scrolls more than a screenful (e.g. by using the goto command).
1605
1609
1606 2006-06-27 Ville Vainio <vivainio@gmail.com>
1610 2006-06-27 Ville Vainio <vivainio@gmail.com>
1607
1611
1608 * Magic.py (_inspect, _ofind) Apply David Huard's
1612 * Magic.py (_inspect, _ofind) Apply David Huard's
1609 patch for displaying the correct docstring for 'property'
1613 patch for displaying the correct docstring for 'property'
1610 attributes.
1614 attributes.
1611
1615
1612 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1616 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1613
1617
1614 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1618 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1615 commands into the methods implementing them.
1619 commands into the methods implementing them.
1616
1620
1617 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1621 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1618
1622
1619 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1623 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1620 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1624 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1621 autoindent support was authored by Jin Liu.
1625 autoindent support was authored by Jin Liu.
1622
1626
1623 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1627 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1624
1628
1625 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1629 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1626 for keymaps with a custom class that simplifies handling.
1630 for keymaps with a custom class that simplifies handling.
1627
1631
1628 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1632 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1629
1633
1630 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1634 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1631 resizing. This requires Python 2.5 to work.
1635 resizing. This requires Python 2.5 to work.
1632
1636
1633 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1637 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1634
1638
1635 * IPython/Extensions/ibrowse.py: Add two new commands to
1639 * IPython/Extensions/ibrowse.py: Add two new commands to
1636 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1640 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1637 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1641 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1638 attributes again. Remapped the help command to "?". Display
1642 attributes again. Remapped the help command to "?". Display
1639 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1643 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1640 as keys for the "home" and "end" commands. Add three new commands
1644 as keys for the "home" and "end" commands. Add three new commands
1641 to the input mode for "find" and friends: "delend" (CTRL-K)
1645 to the input mode for "find" and friends: "delend" (CTRL-K)
1642 deletes to the end of line. "incsearchup" searches upwards in the
1646 deletes to the end of line. "incsearchup" searches upwards in the
1643 command history for an input that starts with the text before the cursor.
1647 command history for an input that starts with the text before the cursor.
1644 "incsearchdown" does the same downwards. Removed a bogus mapping of
1648 "incsearchdown" does the same downwards. Removed a bogus mapping of
1645 the x key to "delete".
1649 the x key to "delete".
1646
1650
1647 2006-06-15 Ville Vainio <vivainio@gmail.com>
1651 2006-06-15 Ville Vainio <vivainio@gmail.com>
1648
1652
1649 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1653 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1650 used to create prompts dynamically, instead of the "old" way of
1654 used to create prompts dynamically, instead of the "old" way of
1651 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1655 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1652 way still works (it's invoked by the default hook), of course.
1656 way still works (it's invoked by the default hook), of course.
1653
1657
1654 * Prompts.py: added generate_output_prompt hook for altering output
1658 * Prompts.py: added generate_output_prompt hook for altering output
1655 prompt
1659 prompt
1656
1660
1657 * Release.py: Changed version string to 0.7.3.svn.
1661 * Release.py: Changed version string to 0.7.3.svn.
1658
1662
1659 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1663 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1660
1664
1661 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1665 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1662 the call to fetch() always tries to fetch enough data for at least one
1666 the call to fetch() always tries to fetch enough data for at least one
1663 full screen. This makes it possible to simply call moveto(0,0,True) in
1667 full screen. This makes it possible to simply call moveto(0,0,True) in
1664 the constructor. Fix typos and removed the obsolete goto attribute.
1668 the constructor. Fix typos and removed the obsolete goto attribute.
1665
1669
1666 2006-06-12 Ville Vainio <vivainio@gmail.com>
1670 2006-06-12 Ville Vainio <vivainio@gmail.com>
1667
1671
1668 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1672 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1669 allowing $variable interpolation within multiline statements,
1673 allowing $variable interpolation within multiline statements,
1670 though so far only with "sh" profile for a testing period.
1674 though so far only with "sh" profile for a testing period.
1671 The patch also enables splitting long commands with \ but it
1675 The patch also enables splitting long commands with \ but it
1672 doesn't work properly yet.
1676 doesn't work properly yet.
1673
1677
1674 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1678 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1675
1679
1676 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1680 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1677 input history and the position of the cursor in the input history for
1681 input history and the position of the cursor in the input history for
1678 the find, findbackwards and goto command.
1682 the find, findbackwards and goto command.
1679
1683
1680 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1684 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1681
1685
1682 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1686 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1683 implements the basic functionality of browser commands that require
1687 implements the basic functionality of browser commands that require
1684 input. Reimplement the goto, find and findbackwards commands as
1688 input. Reimplement the goto, find and findbackwards commands as
1685 subclasses of _CommandInput. Add an input history and keymaps to those
1689 subclasses of _CommandInput. Add an input history and keymaps to those
1686 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1690 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1687 execute commands.
1691 execute commands.
1688
1692
1689 2006-06-07 Ville Vainio <vivainio@gmail.com>
1693 2006-06-07 Ville Vainio <vivainio@gmail.com>
1690
1694
1691 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1695 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1692 running the batch files instead of leaving the session open.
1696 running the batch files instead of leaving the session open.
1693
1697
1694 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1698 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1695
1699
1696 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1700 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1697 the original fix was incomplete. Patch submitted by W. Maier.
1701 the original fix was incomplete. Patch submitted by W. Maier.
1698
1702
1699 2006-06-07 Ville Vainio <vivainio@gmail.com>
1703 2006-06-07 Ville Vainio <vivainio@gmail.com>
1700
1704
1701 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1705 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1702 Confirmation prompts can be supressed by 'quiet' option.
1706 Confirmation prompts can be supressed by 'quiet' option.
1703 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1707 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1704
1708
1705 2006-06-06 *** Released version 0.7.2
1709 2006-06-06 *** Released version 0.7.2
1706
1710
1707 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1711 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1708
1712
1709 * IPython/Release.py (version): Made 0.7.2 final for release.
1713 * IPython/Release.py (version): Made 0.7.2 final for release.
1710 Repo tagged and release cut.
1714 Repo tagged and release cut.
1711
1715
1712 2006-06-05 Ville Vainio <vivainio@gmail.com>
1716 2006-06-05 Ville Vainio <vivainio@gmail.com>
1713
1717
1714 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1718 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1715 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1719 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1716
1720
1717 * upgrade_dir.py: try import 'path' module a bit harder
1721 * upgrade_dir.py: try import 'path' module a bit harder
1718 (for %upgrade)
1722 (for %upgrade)
1719
1723
1720 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1724 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1721
1725
1722 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1726 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1723 instead of looping 20 times.
1727 instead of looping 20 times.
1724
1728
1725 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1729 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1726 correctly at initialization time. Bug reported by Krishna Mohan
1730 correctly at initialization time. Bug reported by Krishna Mohan
1727 Gundu <gkmohan-AT-gmail.com> on the user list.
1731 Gundu <gkmohan-AT-gmail.com> on the user list.
1728
1732
1729 * IPython/Release.py (version): Mark 0.7.2 version to start
1733 * IPython/Release.py (version): Mark 0.7.2 version to start
1730 testing for release on 06/06.
1734 testing for release on 06/06.
1731
1735
1732 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1736 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1733
1737
1734 * scripts/irunner: thin script interface so users don't have to
1738 * scripts/irunner: thin script interface so users don't have to
1735 find the module and call it as an executable, since modules rarely
1739 find the module and call it as an executable, since modules rarely
1736 live in people's PATH.
1740 live in people's PATH.
1737
1741
1738 * IPython/irunner.py (InteractiveRunner.__init__): added
1742 * IPython/irunner.py (InteractiveRunner.__init__): added
1739 delaybeforesend attribute to control delays with newer versions of
1743 delaybeforesend attribute to control delays with newer versions of
1740 pexpect. Thanks to detailed help from pexpect's author, Noah
1744 pexpect. Thanks to detailed help from pexpect's author, Noah
1741 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1745 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1742 correctly (it works in NoColor mode).
1746 correctly (it works in NoColor mode).
1743
1747
1744 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1748 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1745 SAGE list, from improper log() calls.
1749 SAGE list, from improper log() calls.
1746
1750
1747 2006-05-31 Ville Vainio <vivainio@gmail.com>
1751 2006-05-31 Ville Vainio <vivainio@gmail.com>
1748
1752
1749 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1753 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1750 with args in parens to work correctly with dirs that have spaces.
1754 with args in parens to work correctly with dirs that have spaces.
1751
1755
1752 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1756 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1753
1757
1754 * IPython/Logger.py (Logger.logstart): add option to log raw input
1758 * IPython/Logger.py (Logger.logstart): add option to log raw input
1755 instead of the processed one. A -r flag was added to the
1759 instead of the processed one. A -r flag was added to the
1756 %logstart magic used for controlling logging.
1760 %logstart magic used for controlling logging.
1757
1761
1758 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1762 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1759
1763
1760 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1764 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1761 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1765 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1762 recognize the option. After a bug report by Will Maier. This
1766 recognize the option. After a bug report by Will Maier. This
1763 closes #64 (will do it after confirmation from W. Maier).
1767 closes #64 (will do it after confirmation from W. Maier).
1764
1768
1765 * IPython/irunner.py: New module to run scripts as if manually
1769 * IPython/irunner.py: New module to run scripts as if manually
1766 typed into an interactive environment, based on pexpect. After a
1770 typed into an interactive environment, based on pexpect. After a
1767 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1771 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1768 ipython-user list. Simple unittests in the tests/ directory.
1772 ipython-user list. Simple unittests in the tests/ directory.
1769
1773
1770 * tools/release: add Will Maier, OpenBSD port maintainer, to
1774 * tools/release: add Will Maier, OpenBSD port maintainer, to
1771 recepients list. We are now officially part of the OpenBSD ports:
1775 recepients list. We are now officially part of the OpenBSD ports:
1772 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1776 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1773 work.
1777 work.
1774
1778
1775 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1779 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1776
1780
1777 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1781 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1778 so that it doesn't break tkinter apps.
1782 so that it doesn't break tkinter apps.
1779
1783
1780 * IPython/iplib.py (_prefilter): fix bug where aliases would
1784 * IPython/iplib.py (_prefilter): fix bug where aliases would
1781 shadow variables when autocall was fully off. Reported by SAGE
1785 shadow variables when autocall was fully off. Reported by SAGE
1782 author William Stein.
1786 author William Stein.
1783
1787
1784 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1788 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1785 at what detail level strings are computed when foo? is requested.
1789 at what detail level strings are computed when foo? is requested.
1786 This allows users to ask for example that the string form of an
1790 This allows users to ask for example that the string form of an
1787 object is only computed when foo?? is called, or even never, by
1791 object is only computed when foo?? is called, or even never, by
1788 setting the object_info_string_level >= 2 in the configuration
1792 setting the object_info_string_level >= 2 in the configuration
1789 file. This new option has been added and documented. After a
1793 file. This new option has been added and documented. After a
1790 request by SAGE to be able to control the printing of very large
1794 request by SAGE to be able to control the printing of very large
1791 objects more easily.
1795 objects more easily.
1792
1796
1793 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1797 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1794
1798
1795 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1799 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1796 from sys.argv, to be 100% consistent with how Python itself works
1800 from sys.argv, to be 100% consistent with how Python itself works
1797 (as seen for example with python -i file.py). After a bug report
1801 (as seen for example with python -i file.py). After a bug report
1798 by Jeffrey Collins.
1802 by Jeffrey Collins.
1799
1803
1800 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1804 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1801 nasty bug which was preventing custom namespaces with -pylab,
1805 nasty bug which was preventing custom namespaces with -pylab,
1802 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1806 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1803 compatibility (long gone from mpl).
1807 compatibility (long gone from mpl).
1804
1808
1805 * IPython/ipapi.py (make_session): name change: create->make. We
1809 * IPython/ipapi.py (make_session): name change: create->make. We
1806 use make in other places (ipmaker,...), it's shorter and easier to
1810 use make in other places (ipmaker,...), it's shorter and easier to
1807 type and say, etc. I'm trying to clean things before 0.7.2 so
1811 type and say, etc. I'm trying to clean things before 0.7.2 so
1808 that I can keep things stable wrt to ipapi in the chainsaw branch.
1812 that I can keep things stable wrt to ipapi in the chainsaw branch.
1809
1813
1810 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1814 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1811 python-mode recognizes our debugger mode. Add support for
1815 python-mode recognizes our debugger mode. Add support for
1812 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1816 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1813 <m.liu.jin-AT-gmail.com> originally written by
1817 <m.liu.jin-AT-gmail.com> originally written by
1814 doxgen-AT-newsmth.net (with minor modifications for xemacs
1818 doxgen-AT-newsmth.net (with minor modifications for xemacs
1815 compatibility)
1819 compatibility)
1816
1820
1817 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1821 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1818 tracebacks when walking the stack so that the stack tracking system
1822 tracebacks when walking the stack so that the stack tracking system
1819 in emacs' python-mode can identify the frames correctly.
1823 in emacs' python-mode can identify the frames correctly.
1820
1824
1821 * IPython/ipmaker.py (make_IPython): make the internal (and
1825 * IPython/ipmaker.py (make_IPython): make the internal (and
1822 default config) autoedit_syntax value false by default. Too many
1826 default config) autoedit_syntax value false by default. Too many
1823 users have complained to me (both on and off-list) about problems
1827 users have complained to me (both on and off-list) about problems
1824 with this option being on by default, so I'm making it default to
1828 with this option being on by default, so I'm making it default to
1825 off. It can still be enabled by anyone via the usual mechanisms.
1829 off. It can still be enabled by anyone via the usual mechanisms.
1826
1830
1827 * IPython/completer.py (Completer.attr_matches): add support for
1831 * IPython/completer.py (Completer.attr_matches): add support for
1828 PyCrust-style _getAttributeNames magic method. Patch contributed
1832 PyCrust-style _getAttributeNames magic method. Patch contributed
1829 by <mscott-AT-goldenspud.com>. Closes #50.
1833 by <mscott-AT-goldenspud.com>. Closes #50.
1830
1834
1831 * IPython/iplib.py (InteractiveShell.__init__): remove the
1835 * IPython/iplib.py (InteractiveShell.__init__): remove the
1832 deletion of exit/quit from __builtin__, which can break
1836 deletion of exit/quit from __builtin__, which can break
1833 third-party tools like the Zope debugging console. The
1837 third-party tools like the Zope debugging console. The
1834 %exit/%quit magics remain. In general, it's probably a good idea
1838 %exit/%quit magics remain. In general, it's probably a good idea
1835 not to delete anything from __builtin__, since we never know what
1839 not to delete anything from __builtin__, since we never know what
1836 that will break. In any case, python now (for 2.5) will support
1840 that will break. In any case, python now (for 2.5) will support
1837 'real' exit/quit, so this issue is moot. Closes #55.
1841 'real' exit/quit, so this issue is moot. Closes #55.
1838
1842
1839 * IPython/genutils.py (with_obj): rename the 'with' function to
1843 * IPython/genutils.py (with_obj): rename the 'with' function to
1840 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1844 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1841 becomes a language keyword. Closes #53.
1845 becomes a language keyword. Closes #53.
1842
1846
1843 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1847 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1844 __file__ attribute to this so it fools more things into thinking
1848 __file__ attribute to this so it fools more things into thinking
1845 it is a real module. Closes #59.
1849 it is a real module. Closes #59.
1846
1850
1847 * IPython/Magic.py (magic_edit): add -n option to open the editor
1851 * IPython/Magic.py (magic_edit): add -n option to open the editor
1848 at a specific line number. After a patch by Stefan van der Walt.
1852 at a specific line number. After a patch by Stefan van der Walt.
1849
1853
1850 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1854 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1851
1855
1852 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1856 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1853 reason the file could not be opened. After automatic crash
1857 reason the file could not be opened. After automatic crash
1854 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1858 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1855 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1859 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1856 (_should_recompile): Don't fire editor if using %bg, since there
1860 (_should_recompile): Don't fire editor if using %bg, since there
1857 is no file in the first place. From the same report as above.
1861 is no file in the first place. From the same report as above.
1858 (raw_input): protect against faulty third-party prefilters. After
1862 (raw_input): protect against faulty third-party prefilters. After
1859 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1863 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1860 while running under SAGE.
1864 while running under SAGE.
1861
1865
1862 2006-05-23 Ville Vainio <vivainio@gmail.com>
1866 2006-05-23 Ville Vainio <vivainio@gmail.com>
1863
1867
1864 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1868 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1865 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1869 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1866 now returns None (again), unless dummy is specifically allowed by
1870 now returns None (again), unless dummy is specifically allowed by
1867 ipapi.get(allow_dummy=True).
1871 ipapi.get(allow_dummy=True).
1868
1872
1869 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1873 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1870
1874
1871 * IPython: remove all 2.2-compatibility objects and hacks from
1875 * IPython: remove all 2.2-compatibility objects and hacks from
1872 everywhere, since we only support 2.3 at this point. Docs
1876 everywhere, since we only support 2.3 at this point. Docs
1873 updated.
1877 updated.
1874
1878
1875 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1879 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1876 Anything requiring extra validation can be turned into a Python
1880 Anything requiring extra validation can be turned into a Python
1877 property in the future. I used a property for the db one b/c
1881 property in the future. I used a property for the db one b/c
1878 there was a nasty circularity problem with the initialization
1882 there was a nasty circularity problem with the initialization
1879 order, which right now I don't have time to clean up.
1883 order, which right now I don't have time to clean up.
1880
1884
1881 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1885 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1882 another locking bug reported by Jorgen. I'm not 100% sure though,
1886 another locking bug reported by Jorgen. I'm not 100% sure though,
1883 so more testing is needed...
1887 so more testing is needed...
1884
1888
1885 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1889 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1886
1890
1887 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1891 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1888 local variables from any routine in user code (typically executed
1892 local variables from any routine in user code (typically executed
1889 with %run) directly into the interactive namespace. Very useful
1893 with %run) directly into the interactive namespace. Very useful
1890 when doing complex debugging.
1894 when doing complex debugging.
1891 (IPythonNotRunning): Changed the default None object to a dummy
1895 (IPythonNotRunning): Changed the default None object to a dummy
1892 whose attributes can be queried as well as called without
1896 whose attributes can be queried as well as called without
1893 exploding, to ease writing code which works transparently both in
1897 exploding, to ease writing code which works transparently both in
1894 and out of ipython and uses some of this API.
1898 and out of ipython and uses some of this API.
1895
1899
1896 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1900 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1897
1901
1898 * IPython/hooks.py (result_display): Fix the fact that our display
1902 * IPython/hooks.py (result_display): Fix the fact that our display
1899 hook was using str() instead of repr(), as the default python
1903 hook was using str() instead of repr(), as the default python
1900 console does. This had gone unnoticed b/c it only happened if
1904 console does. This had gone unnoticed b/c it only happened if
1901 %Pprint was off, but the inconsistency was there.
1905 %Pprint was off, but the inconsistency was there.
1902
1906
1903 2006-05-15 Ville Vainio <vivainio@gmail.com>
1907 2006-05-15 Ville Vainio <vivainio@gmail.com>
1904
1908
1905 * Oinspect.py: Only show docstring for nonexisting/binary files
1909 * Oinspect.py: Only show docstring for nonexisting/binary files
1906 when doing object??, closing ticket #62
1910 when doing object??, closing ticket #62
1907
1911
1908 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1912 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1909
1913
1910 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1914 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1911 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1915 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1912 was being released in a routine which hadn't checked if it had
1916 was being released in a routine which hadn't checked if it had
1913 been the one to acquire it.
1917 been the one to acquire it.
1914
1918
1915 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1919 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1916
1920
1917 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1921 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1918
1922
1919 2006-04-11 Ville Vainio <vivainio@gmail.com>
1923 2006-04-11 Ville Vainio <vivainio@gmail.com>
1920
1924
1921 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1925 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1922 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1926 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1923 prefilters, allowing stuff like magics and aliases in the file.
1927 prefilters, allowing stuff like magics and aliases in the file.
1924
1928
1925 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1929 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1926 added. Supported now are "%clear in" and "%clear out" (clear input and
1930 added. Supported now are "%clear in" and "%clear out" (clear input and
1927 output history, respectively). Also fixed CachedOutput.flush to
1931 output history, respectively). Also fixed CachedOutput.flush to
1928 properly flush the output cache.
1932 properly flush the output cache.
1929
1933
1930 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1934 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1931 half-success (and fail explicitly).
1935 half-success (and fail explicitly).
1932
1936
1933 2006-03-28 Ville Vainio <vivainio@gmail.com>
1937 2006-03-28 Ville Vainio <vivainio@gmail.com>
1934
1938
1935 * iplib.py: Fix quoting of aliases so that only argless ones
1939 * iplib.py: Fix quoting of aliases so that only argless ones
1936 are quoted
1940 are quoted
1937
1941
1938 2006-03-28 Ville Vainio <vivainio@gmail.com>
1942 2006-03-28 Ville Vainio <vivainio@gmail.com>
1939
1943
1940 * iplib.py: Quote aliases with spaces in the name.
1944 * iplib.py: Quote aliases with spaces in the name.
1941 "c:\program files\blah\bin" is now legal alias target.
1945 "c:\program files\blah\bin" is now legal alias target.
1942
1946
1943 * ext_rehashdir.py: Space no longer allowed as arg
1947 * ext_rehashdir.py: Space no longer allowed as arg
1944 separator, since space is legal in path names.
1948 separator, since space is legal in path names.
1945
1949
1946 2006-03-16 Ville Vainio <vivainio@gmail.com>
1950 2006-03-16 Ville Vainio <vivainio@gmail.com>
1947
1951
1948 * upgrade_dir.py: Take path.py from Extensions, correcting
1952 * upgrade_dir.py: Take path.py from Extensions, correcting
1949 %upgrade magic
1953 %upgrade magic
1950
1954
1951 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1955 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1952
1956
1953 * hooks.py: Only enclose editor binary in quotes if legal and
1957 * hooks.py: Only enclose editor binary in quotes if legal and
1954 necessary (space in the name, and is an existing file). Fixes a bug
1958 necessary (space in the name, and is an existing file). Fixes a bug
1955 reported by Zachary Pincus.
1959 reported by Zachary Pincus.
1956
1960
1957 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1961 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1958
1962
1959 * Manual: thanks to a tip on proper color handling for Emacs, by
1963 * Manual: thanks to a tip on proper color handling for Emacs, by
1960 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1964 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1961
1965
1962 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1966 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1963 by applying the provided patch. Thanks to Liu Jin
1967 by applying the provided patch. Thanks to Liu Jin
1964 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1968 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1965 XEmacs/Linux, I'm trusting the submitter that it actually helps
1969 XEmacs/Linux, I'm trusting the submitter that it actually helps
1966 under win32/GNU Emacs. Will revisit if any problems are reported.
1970 under win32/GNU Emacs. Will revisit if any problems are reported.
1967
1971
1968 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1972 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1969
1973
1970 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1974 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1971 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1975 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1972
1976
1973 2006-03-12 Ville Vainio <vivainio@gmail.com>
1977 2006-03-12 Ville Vainio <vivainio@gmail.com>
1974
1978
1975 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1979 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1976 Torsten Marek.
1980 Torsten Marek.
1977
1981
1978 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1982 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1979
1983
1980 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1984 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1981 line ranges works again.
1985 line ranges works again.
1982
1986
1983 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1987 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1984
1988
1985 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1989 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1986 and friends, after a discussion with Zach Pincus on ipython-user.
1990 and friends, after a discussion with Zach Pincus on ipython-user.
1987 I'm not 100% sure, but after thinking about it quite a bit, it may
1991 I'm not 100% sure, but after thinking about it quite a bit, it may
1988 be OK. Testing with the multithreaded shells didn't reveal any
1992 be OK. Testing with the multithreaded shells didn't reveal any
1989 problems, but let's keep an eye out.
1993 problems, but let's keep an eye out.
1990
1994
1991 In the process, I fixed a few things which were calling
1995 In the process, I fixed a few things which were calling
1992 self.InteractiveTB() directly (like safe_execfile), which is a
1996 self.InteractiveTB() directly (like safe_execfile), which is a
1993 mistake: ALL exception reporting should be done by calling
1997 mistake: ALL exception reporting should be done by calling
1994 self.showtraceback(), which handles state and tab-completion and
1998 self.showtraceback(), which handles state and tab-completion and
1995 more.
1999 more.
1996
2000
1997 2006-03-01 Ville Vainio <vivainio@gmail.com>
2001 2006-03-01 Ville Vainio <vivainio@gmail.com>
1998
2002
1999 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
2003 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
2000 To use, do "from ipipe import *".
2004 To use, do "from ipipe import *".
2001
2005
2002 2006-02-24 Ville Vainio <vivainio@gmail.com>
2006 2006-02-24 Ville Vainio <vivainio@gmail.com>
2003
2007
2004 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
2008 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
2005 "cleanly" and safely than the older upgrade mechanism.
2009 "cleanly" and safely than the older upgrade mechanism.
2006
2010
2007 2006-02-21 Ville Vainio <vivainio@gmail.com>
2011 2006-02-21 Ville Vainio <vivainio@gmail.com>
2008
2012
2009 * Magic.py: %save works again.
2013 * Magic.py: %save works again.
2010
2014
2011 2006-02-15 Ville Vainio <vivainio@gmail.com>
2015 2006-02-15 Ville Vainio <vivainio@gmail.com>
2012
2016
2013 * Magic.py: %Pprint works again
2017 * Magic.py: %Pprint works again
2014
2018
2015 * Extensions/ipy_sane_defaults.py: Provide everything provided
2019 * Extensions/ipy_sane_defaults.py: Provide everything provided
2016 in default ipythonrc, to make it possible to have a completely empty
2020 in default ipythonrc, to make it possible to have a completely empty
2017 ipythonrc (and thus completely rc-file free configuration)
2021 ipythonrc (and thus completely rc-file free configuration)
2018
2022
2019 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
2023 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
2020
2024
2021 * IPython/hooks.py (editor): quote the call to the editor command,
2025 * IPython/hooks.py (editor): quote the call to the editor command,
2022 to allow commands with spaces in them. Problem noted by watching
2026 to allow commands with spaces in them. Problem noted by watching
2023 Ian Oswald's video about textpad under win32 at
2027 Ian Oswald's video about textpad under win32 at
2024 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
2028 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
2025
2029
2026 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
2030 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
2027 describing magics (we haven't used @ for a loong time).
2031 describing magics (we haven't used @ for a loong time).
2028
2032
2029 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
2033 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
2030 contributed by marienz to close
2034 contributed by marienz to close
2031 http://www.scipy.net/roundup/ipython/issue53.
2035 http://www.scipy.net/roundup/ipython/issue53.
2032
2036
2033 2006-02-10 Ville Vainio <vivainio@gmail.com>
2037 2006-02-10 Ville Vainio <vivainio@gmail.com>
2034
2038
2035 * genutils.py: getoutput now works in win32 too
2039 * genutils.py: getoutput now works in win32 too
2036
2040
2037 * completer.py: alias and magic completion only invoked
2041 * completer.py: alias and magic completion only invoked
2038 at the first "item" in the line, to avoid "cd %store"
2042 at the first "item" in the line, to avoid "cd %store"
2039 nonsense.
2043 nonsense.
2040
2044
2041 2006-02-09 Ville Vainio <vivainio@gmail.com>
2045 2006-02-09 Ville Vainio <vivainio@gmail.com>
2042
2046
2043 * test/*: Added a unit testing framework (finally).
2047 * test/*: Added a unit testing framework (finally).
2044 '%run runtests.py' to run test_*.
2048 '%run runtests.py' to run test_*.
2045
2049
2046 * ipapi.py: Exposed runlines and set_custom_exc
2050 * ipapi.py: Exposed runlines and set_custom_exc
2047
2051
2048 2006-02-07 Ville Vainio <vivainio@gmail.com>
2052 2006-02-07 Ville Vainio <vivainio@gmail.com>
2049
2053
2050 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
2054 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
2051 instead use "f(1 2)" as before.
2055 instead use "f(1 2)" as before.
2052
2056
2053 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
2057 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
2054
2058
2055 * IPython/demo.py (IPythonDemo): Add new classes to the demo
2059 * IPython/demo.py (IPythonDemo): Add new classes to the demo
2056 facilities, for demos processed by the IPython input filter
2060 facilities, for demos processed by the IPython input filter
2057 (IPythonDemo), and for running a script one-line-at-a-time as a
2061 (IPythonDemo), and for running a script one-line-at-a-time as a
2058 demo, both for pure Python (LineDemo) and for IPython-processed
2062 demo, both for pure Python (LineDemo) and for IPython-processed
2059 input (IPythonLineDemo). After a request by Dave Kohel, from the
2063 input (IPythonLineDemo). After a request by Dave Kohel, from the
2060 SAGE team.
2064 SAGE team.
2061 (Demo.edit): added an edit() method to the demo objects, to edit
2065 (Demo.edit): added an edit() method to the demo objects, to edit
2062 the in-memory copy of the last executed block.
2066 the in-memory copy of the last executed block.
2063
2067
2064 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
2068 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
2065 processing to %edit, %macro and %save. These commands can now be
2069 processing to %edit, %macro and %save. These commands can now be
2066 invoked on the unprocessed input as it was typed by the user
2070 invoked on the unprocessed input as it was typed by the user
2067 (without any prefilters applied). After requests by the SAGE team
2071 (without any prefilters applied). After requests by the SAGE team
2068 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
2072 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
2069
2073
2070 2006-02-01 Ville Vainio <vivainio@gmail.com>
2074 2006-02-01 Ville Vainio <vivainio@gmail.com>
2071
2075
2072 * setup.py, eggsetup.py: easy_install ipython==dev works
2076 * setup.py, eggsetup.py: easy_install ipython==dev works
2073 correctly now (on Linux)
2077 correctly now (on Linux)
2074
2078
2075 * ipy_user_conf,ipmaker: user config changes, removed spurious
2079 * ipy_user_conf,ipmaker: user config changes, removed spurious
2076 warnings
2080 warnings
2077
2081
2078 * iplib: if rc.banner is string, use it as is.
2082 * iplib: if rc.banner is string, use it as is.
2079
2083
2080 * Magic: %pycat accepts a string argument and pages it's contents.
2084 * Magic: %pycat accepts a string argument and pages it's contents.
2081
2085
2082
2086
2083 2006-01-30 Ville Vainio <vivainio@gmail.com>
2087 2006-01-30 Ville Vainio <vivainio@gmail.com>
2084
2088
2085 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
2089 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
2086 Now %store and bookmarks work through PickleShare, meaning that
2090 Now %store and bookmarks work through PickleShare, meaning that
2087 concurrent access is possible and all ipython sessions see the
2091 concurrent access is possible and all ipython sessions see the
2088 same database situation all the time, instead of snapshot of
2092 same database situation all the time, instead of snapshot of
2089 the situation when the session was started. Hence, %bookmark
2093 the situation when the session was started. Hence, %bookmark
2090 results are immediately accessible from othes sessions. The database
2094 results are immediately accessible from othes sessions. The database
2091 is also available for use by user extensions. See:
2095 is also available for use by user extensions. See:
2092 http://www.python.org/pypi/pickleshare
2096 http://www.python.org/pypi/pickleshare
2093
2097
2094 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
2098 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
2095
2099
2096 * aliases can now be %store'd
2100 * aliases can now be %store'd
2097
2101
2098 * path.py moved to Extensions so that pickleshare does not need
2102 * path.py moved to Extensions so that pickleshare does not need
2099 IPython-specific import. Extensions added to pythonpath right
2103 IPython-specific import. Extensions added to pythonpath right
2100 at __init__.
2104 at __init__.
2101
2105
2102 * iplib.py: ipalias deprecated/redundant; aliases are converted and
2106 * iplib.py: ipalias deprecated/redundant; aliases are converted and
2103 called with _ip.system and the pre-transformed command string.
2107 called with _ip.system and the pre-transformed command string.
2104
2108
2105 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
2109 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
2106
2110
2107 * IPython/iplib.py (interact): Fix that we were not catching
2111 * IPython/iplib.py (interact): Fix that we were not catching
2108 KeyboardInterrupt exceptions properly. I'm not quite sure why the
2112 KeyboardInterrupt exceptions properly. I'm not quite sure why the
2109 logic here had to change, but it's fixed now.
2113 logic here had to change, but it's fixed now.
2110
2114
2111 2006-01-29 Ville Vainio <vivainio@gmail.com>
2115 2006-01-29 Ville Vainio <vivainio@gmail.com>
2112
2116
2113 * iplib.py: Try to import pyreadline on Windows.
2117 * iplib.py: Try to import pyreadline on Windows.
2114
2118
2115 2006-01-27 Ville Vainio <vivainio@gmail.com>
2119 2006-01-27 Ville Vainio <vivainio@gmail.com>
2116
2120
2117 * iplib.py: Expose ipapi as _ip in builtin namespace.
2121 * iplib.py: Expose ipapi as _ip in builtin namespace.
2118 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
2122 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
2119 and ip_set_hook (-> _ip.set_hook) redundant. % and !
2123 and ip_set_hook (-> _ip.set_hook) redundant. % and !
2120 syntax now produce _ip.* variant of the commands.
2124 syntax now produce _ip.* variant of the commands.
2121
2125
2122 * "_ip.options().autoedit_syntax = 2" automatically throws
2126 * "_ip.options().autoedit_syntax = 2" automatically throws
2123 user to editor for syntax error correction without prompting.
2127 user to editor for syntax error correction without prompting.
2124
2128
2125 2006-01-27 Ville Vainio <vivainio@gmail.com>
2129 2006-01-27 Ville Vainio <vivainio@gmail.com>
2126
2130
2127 * ipmaker.py: Give "realistic" sys.argv for scripts (without
2131 * ipmaker.py: Give "realistic" sys.argv for scripts (without
2128 'ipython' at argv[0]) executed through command line.
2132 'ipython' at argv[0]) executed through command line.
2129 NOTE: this DEPRECATES calling ipython with multiple scripts
2133 NOTE: this DEPRECATES calling ipython with multiple scripts
2130 ("ipython a.py b.py c.py")
2134 ("ipython a.py b.py c.py")
2131
2135
2132 * iplib.py, hooks.py: Added configurable input prefilter,
2136 * iplib.py, hooks.py: Added configurable input prefilter,
2133 named 'input_prefilter'. See ext_rescapture.py for example
2137 named 'input_prefilter'. See ext_rescapture.py for example
2134 usage.
2138 usage.
2135
2139
2136 * ext_rescapture.py, Magic.py: Better system command output capture
2140 * ext_rescapture.py, Magic.py: Better system command output capture
2137 through 'var = !ls' (deprecates user-visible %sc). Same notation
2141 through 'var = !ls' (deprecates user-visible %sc). Same notation
2138 applies for magics, 'var = %alias' assigns alias list to var.
2142 applies for magics, 'var = %alias' assigns alias list to var.
2139
2143
2140 * ipapi.py: added meta() for accessing extension-usable data store.
2144 * ipapi.py: added meta() for accessing extension-usable data store.
2141
2145
2142 * iplib.py: added InteractiveShell.getapi(). New magics should be
2146 * iplib.py: added InteractiveShell.getapi(). New magics should be
2143 written doing self.getapi() instead of using the shell directly.
2147 written doing self.getapi() instead of using the shell directly.
2144
2148
2145 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
2149 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
2146 %store foo >> ~/myfoo.txt to store variables to files (in clean
2150 %store foo >> ~/myfoo.txt to store variables to files (in clean
2147 textual form, not a restorable pickle).
2151 textual form, not a restorable pickle).
2148
2152
2149 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
2153 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
2150
2154
2151 * usage.py, Magic.py: added %quickref
2155 * usage.py, Magic.py: added %quickref
2152
2156
2153 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
2157 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
2154
2158
2155 * GetoptErrors when invoking magics etc. with wrong args
2159 * GetoptErrors when invoking magics etc. with wrong args
2156 are now more helpful:
2160 are now more helpful:
2157 GetoptError: option -l not recognized (allowed: "qb" )
2161 GetoptError: option -l not recognized (allowed: "qb" )
2158
2162
2159 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
2163 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
2160
2164
2161 * IPython/demo.py (Demo.show): Flush stdout after each block, so
2165 * IPython/demo.py (Demo.show): Flush stdout after each block, so
2162 computationally intensive blocks don't appear to stall the demo.
2166 computationally intensive blocks don't appear to stall the demo.
2163
2167
2164 2006-01-24 Ville Vainio <vivainio@gmail.com>
2168 2006-01-24 Ville Vainio <vivainio@gmail.com>
2165
2169
2166 * iplib.py, hooks.py: 'result_display' hook can return a non-None
2170 * iplib.py, hooks.py: 'result_display' hook can return a non-None
2167 value to manipulate resulting history entry.
2171 value to manipulate resulting history entry.
2168
2172
2169 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
2173 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
2170 to instance methods of IPApi class, to make extending an embedded
2174 to instance methods of IPApi class, to make extending an embedded
2171 IPython feasible. See ext_rehashdir.py for example usage.
2175 IPython feasible. See ext_rehashdir.py for example usage.
2172
2176
2173 * Merged 1071-1076 from branches/0.7.1
2177 * Merged 1071-1076 from branches/0.7.1
2174
2178
2175
2179
2176 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
2180 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
2177
2181
2178 * tools/release (daystamp): Fix build tools to use the new
2182 * tools/release (daystamp): Fix build tools to use the new
2179 eggsetup.py script to build lightweight eggs.
2183 eggsetup.py script to build lightweight eggs.
2180
2184
2181 * Applied changesets 1062 and 1064 before 0.7.1 release.
2185 * Applied changesets 1062 and 1064 before 0.7.1 release.
2182
2186
2183 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
2187 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
2184 see the raw input history (without conversions like %ls ->
2188 see the raw input history (without conversions like %ls ->
2185 ipmagic("ls")). After a request from W. Stein, SAGE
2189 ipmagic("ls")). After a request from W. Stein, SAGE
2186 (http://modular.ucsd.edu/sage) developer. This information is
2190 (http://modular.ucsd.edu/sage) developer. This information is
2187 stored in the input_hist_raw attribute of the IPython instance, so
2191 stored in the input_hist_raw attribute of the IPython instance, so
2188 developers can access it if needed (it's an InputList instance).
2192 developers can access it if needed (it's an InputList instance).
2189
2193
2190 * Versionstring = 0.7.2.svn
2194 * Versionstring = 0.7.2.svn
2191
2195
2192 * eggsetup.py: A separate script for constructing eggs, creates
2196 * eggsetup.py: A separate script for constructing eggs, creates
2193 proper launch scripts even on Windows (an .exe file in
2197 proper launch scripts even on Windows (an .exe file in
2194 \python24\scripts).
2198 \python24\scripts).
2195
2199
2196 * ipapi.py: launch_new_instance, launch entry point needed for the
2200 * ipapi.py: launch_new_instance, launch entry point needed for the
2197 egg.
2201 egg.
2198
2202
2199 2006-01-23 Ville Vainio <vivainio@gmail.com>
2203 2006-01-23 Ville Vainio <vivainio@gmail.com>
2200
2204
2201 * Added %cpaste magic for pasting python code
2205 * Added %cpaste magic for pasting python code
2202
2206
2203 2006-01-22 Ville Vainio <vivainio@gmail.com>
2207 2006-01-22 Ville Vainio <vivainio@gmail.com>
2204
2208
2205 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2209 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2206
2210
2207 * Versionstring = 0.7.2.svn
2211 * Versionstring = 0.7.2.svn
2208
2212
2209 * eggsetup.py: A separate script for constructing eggs, creates
2213 * eggsetup.py: A separate script for constructing eggs, creates
2210 proper launch scripts even on Windows (an .exe file in
2214 proper launch scripts even on Windows (an .exe file in
2211 \python24\scripts).
2215 \python24\scripts).
2212
2216
2213 * ipapi.py: launch_new_instance, launch entry point needed for the
2217 * ipapi.py: launch_new_instance, launch entry point needed for the
2214 egg.
2218 egg.
2215
2219
2216 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2220 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2217
2221
2218 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2222 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2219 %pfile foo would print the file for foo even if it was a binary.
2223 %pfile foo would print the file for foo even if it was a binary.
2220 Now, extensions '.so' and '.dll' are skipped.
2224 Now, extensions '.so' and '.dll' are skipped.
2221
2225
2222 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2226 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2223 bug, where macros would fail in all threaded modes. I'm not 100%
2227 bug, where macros would fail in all threaded modes. I'm not 100%
2224 sure, so I'm going to put out an rc instead of making a release
2228 sure, so I'm going to put out an rc instead of making a release
2225 today, and wait for feedback for at least a few days.
2229 today, and wait for feedback for at least a few days.
2226
2230
2227 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2231 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2228 it...) the handling of pasting external code with autoindent on.
2232 it...) the handling of pasting external code with autoindent on.
2229 To get out of a multiline input, the rule will appear for most
2233 To get out of a multiline input, the rule will appear for most
2230 users unchanged: two blank lines or change the indent level
2234 users unchanged: two blank lines or change the indent level
2231 proposed by IPython. But there is a twist now: you can
2235 proposed by IPython. But there is a twist now: you can
2232 add/subtract only *one or two spaces*. If you add/subtract three
2236 add/subtract only *one or two spaces*. If you add/subtract three
2233 or more (unless you completely delete the line), IPython will
2237 or more (unless you completely delete the line), IPython will
2234 accept that line, and you'll need to enter a second one of pure
2238 accept that line, and you'll need to enter a second one of pure
2235 whitespace. I know it sounds complicated, but I can't find a
2239 whitespace. I know it sounds complicated, but I can't find a
2236 different solution that covers all the cases, with the right
2240 different solution that covers all the cases, with the right
2237 heuristics. Hopefully in actual use, nobody will really notice
2241 heuristics. Hopefully in actual use, nobody will really notice
2238 all these strange rules and things will 'just work'.
2242 all these strange rules and things will 'just work'.
2239
2243
2240 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2244 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2241
2245
2242 * IPython/iplib.py (interact): catch exceptions which can be
2246 * IPython/iplib.py (interact): catch exceptions which can be
2243 triggered asynchronously by signal handlers. Thanks to an
2247 triggered asynchronously by signal handlers. Thanks to an
2244 automatic crash report, submitted by Colin Kingsley
2248 automatic crash report, submitted by Colin Kingsley
2245 <tercel-AT-gentoo.org>.
2249 <tercel-AT-gentoo.org>.
2246
2250
2247 2006-01-20 Ville Vainio <vivainio@gmail.com>
2251 2006-01-20 Ville Vainio <vivainio@gmail.com>
2248
2252
2249 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2253 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2250 (%rehashdir, very useful, try it out) of how to extend ipython
2254 (%rehashdir, very useful, try it out) of how to extend ipython
2251 with new magics. Also added Extensions dir to pythonpath to make
2255 with new magics. Also added Extensions dir to pythonpath to make
2252 importing extensions easy.
2256 importing extensions easy.
2253
2257
2254 * %store now complains when trying to store interactively declared
2258 * %store now complains when trying to store interactively declared
2255 classes / instances of those classes.
2259 classes / instances of those classes.
2256
2260
2257 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2261 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2258 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2262 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2259 if they exist, and ipy_user_conf.py with some defaults is created for
2263 if they exist, and ipy_user_conf.py with some defaults is created for
2260 the user.
2264 the user.
2261
2265
2262 * Startup rehashing done by the config file, not InterpreterExec.
2266 * Startup rehashing done by the config file, not InterpreterExec.
2263 This means system commands are available even without selecting the
2267 This means system commands are available even without selecting the
2264 pysh profile. It's the sensible default after all.
2268 pysh profile. It's the sensible default after all.
2265
2269
2266 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2270 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2267
2271
2268 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2272 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2269 multiline code with autoindent on working. But I am really not
2273 multiline code with autoindent on working. But I am really not
2270 sure, so this needs more testing. Will commit a debug-enabled
2274 sure, so this needs more testing. Will commit a debug-enabled
2271 version for now, while I test it some more, so that Ville and
2275 version for now, while I test it some more, so that Ville and
2272 others may also catch any problems. Also made
2276 others may also catch any problems. Also made
2273 self.indent_current_str() a method, to ensure that there's no
2277 self.indent_current_str() a method, to ensure that there's no
2274 chance of the indent space count and the corresponding string
2278 chance of the indent space count and the corresponding string
2275 falling out of sync. All code needing the string should just call
2279 falling out of sync. All code needing the string should just call
2276 the method.
2280 the method.
2277
2281
2278 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2282 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2279
2283
2280 * IPython/Magic.py (magic_edit): fix check for when users don't
2284 * IPython/Magic.py (magic_edit): fix check for when users don't
2281 save their output files, the try/except was in the wrong section.
2285 save their output files, the try/except was in the wrong section.
2282
2286
2283 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2287 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2284
2288
2285 * IPython/Magic.py (magic_run): fix __file__ global missing from
2289 * IPython/Magic.py (magic_run): fix __file__ global missing from
2286 script's namespace when executed via %run. After a report by
2290 script's namespace when executed via %run. After a report by
2287 Vivian.
2291 Vivian.
2288
2292
2289 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2293 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2290 when using python 2.4. The parent constructor changed in 2.4, and
2294 when using python 2.4. The parent constructor changed in 2.4, and
2291 we need to track it directly (we can't call it, as it messes up
2295 we need to track it directly (we can't call it, as it messes up
2292 readline and tab-completion inside our pdb would stop working).
2296 readline and tab-completion inside our pdb would stop working).
2293 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2297 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2294
2298
2295 2006-01-16 Ville Vainio <vivainio@gmail.com>
2299 2006-01-16 Ville Vainio <vivainio@gmail.com>
2296
2300
2297 * Ipython/magic.py: Reverted back to old %edit functionality
2301 * Ipython/magic.py: Reverted back to old %edit functionality
2298 that returns file contents on exit.
2302 that returns file contents on exit.
2299
2303
2300 * IPython/path.py: Added Jason Orendorff's "path" module to
2304 * IPython/path.py: Added Jason Orendorff's "path" module to
2301 IPython tree, http://www.jorendorff.com/articles/python/path/.
2305 IPython tree, http://www.jorendorff.com/articles/python/path/.
2302 You can get path objects conveniently through %sc, and !!, e.g.:
2306 You can get path objects conveniently through %sc, and !!, e.g.:
2303 sc files=ls
2307 sc files=ls
2304 for p in files.paths: # or files.p
2308 for p in files.paths: # or files.p
2305 print p,p.mtime
2309 print p,p.mtime
2306
2310
2307 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2311 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2308 now work again without considering the exclusion regexp -
2312 now work again without considering the exclusion regexp -
2309 hence, things like ',foo my/path' turn to 'foo("my/path")'
2313 hence, things like ',foo my/path' turn to 'foo("my/path")'
2310 instead of syntax error.
2314 instead of syntax error.
2311
2315
2312
2316
2313 2006-01-14 Ville Vainio <vivainio@gmail.com>
2317 2006-01-14 Ville Vainio <vivainio@gmail.com>
2314
2318
2315 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2319 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2316 ipapi decorators for python 2.4 users, options() provides access to rc
2320 ipapi decorators for python 2.4 users, options() provides access to rc
2317 data.
2321 data.
2318
2322
2319 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2323 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2320 as path separators (even on Linux ;-). Space character after
2324 as path separators (even on Linux ;-). Space character after
2321 backslash (as yielded by tab completer) is still space;
2325 backslash (as yielded by tab completer) is still space;
2322 "%cd long\ name" works as expected.
2326 "%cd long\ name" works as expected.
2323
2327
2324 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2328 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2325 as "chain of command", with priority. API stays the same,
2329 as "chain of command", with priority. API stays the same,
2326 TryNext exception raised by a hook function signals that
2330 TryNext exception raised by a hook function signals that
2327 current hook failed and next hook should try handling it, as
2331 current hook failed and next hook should try handling it, as
2328 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2332 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2329 requested configurable display hook, which is now implemented.
2333 requested configurable display hook, which is now implemented.
2330
2334
2331 2006-01-13 Ville Vainio <vivainio@gmail.com>
2335 2006-01-13 Ville Vainio <vivainio@gmail.com>
2332
2336
2333 * IPython/platutils*.py: platform specific utility functions,
2337 * IPython/platutils*.py: platform specific utility functions,
2334 so far only set_term_title is implemented (change terminal
2338 so far only set_term_title is implemented (change terminal
2335 label in windowing systems). %cd now changes the title to
2339 label in windowing systems). %cd now changes the title to
2336 current dir.
2340 current dir.
2337
2341
2338 * IPython/Release.py: Added myself to "authors" list,
2342 * IPython/Release.py: Added myself to "authors" list,
2339 had to create new files.
2343 had to create new files.
2340
2344
2341 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2345 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2342 shell escape; not a known bug but had potential to be one in the
2346 shell escape; not a known bug but had potential to be one in the
2343 future.
2347 future.
2344
2348
2345 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2349 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2346 extension API for IPython! See the module for usage example. Fix
2350 extension API for IPython! See the module for usage example. Fix
2347 OInspect for docstring-less magic functions.
2351 OInspect for docstring-less magic functions.
2348
2352
2349
2353
2350 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2354 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2351
2355
2352 * IPython/iplib.py (raw_input): temporarily deactivate all
2356 * IPython/iplib.py (raw_input): temporarily deactivate all
2353 attempts at allowing pasting of code with autoindent on. It
2357 attempts at allowing pasting of code with autoindent on. It
2354 introduced bugs (reported by Prabhu) and I can't seem to find a
2358 introduced bugs (reported by Prabhu) and I can't seem to find a
2355 robust combination which works in all cases. Will have to revisit
2359 robust combination which works in all cases. Will have to revisit
2356 later.
2360 later.
2357
2361
2358 * IPython/genutils.py: remove isspace() function. We've dropped
2362 * IPython/genutils.py: remove isspace() function. We've dropped
2359 2.2 compatibility, so it's OK to use the string method.
2363 2.2 compatibility, so it's OK to use the string method.
2360
2364
2361 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2365 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2362
2366
2363 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2367 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2364 matching what NOT to autocall on, to include all python binary
2368 matching what NOT to autocall on, to include all python binary
2365 operators (including things like 'and', 'or', 'is' and 'in').
2369 operators (including things like 'and', 'or', 'is' and 'in').
2366 Prompted by a bug report on 'foo & bar', but I realized we had
2370 Prompted by a bug report on 'foo & bar', but I realized we had
2367 many more potential bug cases with other operators. The regexp is
2371 many more potential bug cases with other operators. The regexp is
2368 self.re_exclude_auto, it's fairly commented.
2372 self.re_exclude_auto, it's fairly commented.
2369
2373
2370 2006-01-12 Ville Vainio <vivainio@gmail.com>
2374 2006-01-12 Ville Vainio <vivainio@gmail.com>
2371
2375
2372 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2376 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2373 Prettified and hardened string/backslash quoting with ipsystem(),
2377 Prettified and hardened string/backslash quoting with ipsystem(),
2374 ipalias() and ipmagic(). Now even \ characters are passed to
2378 ipalias() and ipmagic(). Now even \ characters are passed to
2375 %magics, !shell escapes and aliases exactly as they are in the
2379 %magics, !shell escapes and aliases exactly as they are in the
2376 ipython command line. Should improve backslash experience,
2380 ipython command line. Should improve backslash experience,
2377 particularly in Windows (path delimiter for some commands that
2381 particularly in Windows (path delimiter for some commands that
2378 won't understand '/'), but Unix benefits as well (regexps). %cd
2382 won't understand '/'), but Unix benefits as well (regexps). %cd
2379 magic still doesn't support backslash path delimiters, though. Also
2383 magic still doesn't support backslash path delimiters, though. Also
2380 deleted all pretense of supporting multiline command strings in
2384 deleted all pretense of supporting multiline command strings in
2381 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2385 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2382
2386
2383 * doc/build_doc_instructions.txt added. Documentation on how to
2387 * doc/build_doc_instructions.txt added. Documentation on how to
2384 use doc/update_manual.py, added yesterday. Both files contributed
2388 use doc/update_manual.py, added yesterday. Both files contributed
2385 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2389 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2386 doc/*.sh for deprecation at a later date.
2390 doc/*.sh for deprecation at a later date.
2387
2391
2388 * /ipython.py Added ipython.py to root directory for
2392 * /ipython.py Added ipython.py to root directory for
2389 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2393 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2390 ipython.py) and development convenience (no need to keep doing
2394 ipython.py) and development convenience (no need to keep doing
2391 "setup.py install" between changes).
2395 "setup.py install" between changes).
2392
2396
2393 * Made ! and !! shell escapes work (again) in multiline expressions:
2397 * Made ! and !! shell escapes work (again) in multiline expressions:
2394 if 1:
2398 if 1:
2395 !ls
2399 !ls
2396 !!ls
2400 !!ls
2397
2401
2398 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2402 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2399
2403
2400 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2404 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2401 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2405 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2402 module in case-insensitive installation. Was causing crashes
2406 module in case-insensitive installation. Was causing crashes
2403 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2407 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2404
2408
2405 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2409 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2406 <marienz-AT-gentoo.org>, closes
2410 <marienz-AT-gentoo.org>, closes
2407 http://www.scipy.net/roundup/ipython/issue51.
2411 http://www.scipy.net/roundup/ipython/issue51.
2408
2412
2409 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2413 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2410
2414
2411 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2415 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2412 problem of excessive CPU usage under *nix and keyboard lag under
2416 problem of excessive CPU usage under *nix and keyboard lag under
2413 win32.
2417 win32.
2414
2418
2415 2006-01-10 *** Released version 0.7.0
2419 2006-01-10 *** Released version 0.7.0
2416
2420
2417 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2421 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2418
2422
2419 * IPython/Release.py (revision): tag version number to 0.7.0,
2423 * IPython/Release.py (revision): tag version number to 0.7.0,
2420 ready for release.
2424 ready for release.
2421
2425
2422 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2426 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2423 it informs the user of the name of the temp. file used. This can
2427 it informs the user of the name of the temp. file used. This can
2424 help if you decide later to reuse that same file, so you know
2428 help if you decide later to reuse that same file, so you know
2425 where to copy the info from.
2429 where to copy the info from.
2426
2430
2427 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2431 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2428
2432
2429 * setup_bdist_egg.py: little script to build an egg. Added
2433 * setup_bdist_egg.py: little script to build an egg. Added
2430 support in the release tools as well.
2434 support in the release tools as well.
2431
2435
2432 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2436 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2433
2437
2434 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2438 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2435 version selection (new -wxversion command line and ipythonrc
2439 version selection (new -wxversion command line and ipythonrc
2436 parameter). Patch contributed by Arnd Baecker
2440 parameter). Patch contributed by Arnd Baecker
2437 <arnd.baecker-AT-web.de>.
2441 <arnd.baecker-AT-web.de>.
2438
2442
2439 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2443 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2440 embedded instances, for variables defined at the interactive
2444 embedded instances, for variables defined at the interactive
2441 prompt of the embedded ipython. Reported by Arnd.
2445 prompt of the embedded ipython. Reported by Arnd.
2442
2446
2443 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2447 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2444 it can be used as a (stateful) toggle, or with a direct parameter.
2448 it can be used as a (stateful) toggle, or with a direct parameter.
2445
2449
2446 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2450 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2447 could be triggered in certain cases and cause the traceback
2451 could be triggered in certain cases and cause the traceback
2448 printer not to work.
2452 printer not to work.
2449
2453
2450 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2454 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2451
2455
2452 * IPython/iplib.py (_should_recompile): Small fix, closes
2456 * IPython/iplib.py (_should_recompile): Small fix, closes
2453 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2457 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2454
2458
2455 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2459 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2456
2460
2457 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2461 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2458 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2462 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2459 Moad for help with tracking it down.
2463 Moad for help with tracking it down.
2460
2464
2461 * IPython/iplib.py (handle_auto): fix autocall handling for
2465 * IPython/iplib.py (handle_auto): fix autocall handling for
2462 objects which support BOTH __getitem__ and __call__ (so that f [x]
2466 objects which support BOTH __getitem__ and __call__ (so that f [x]
2463 is left alone, instead of becoming f([x]) automatically).
2467 is left alone, instead of becoming f([x]) automatically).
2464
2468
2465 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2469 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2466 Ville's patch.
2470 Ville's patch.
2467
2471
2468 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2472 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2469
2473
2470 * IPython/iplib.py (handle_auto): changed autocall semantics to
2474 * IPython/iplib.py (handle_auto): changed autocall semantics to
2471 include 'smart' mode, where the autocall transformation is NOT
2475 include 'smart' mode, where the autocall transformation is NOT
2472 applied if there are no arguments on the line. This allows you to
2476 applied if there are no arguments on the line. This allows you to
2473 just type 'foo' if foo is a callable to see its internal form,
2477 just type 'foo' if foo is a callable to see its internal form,
2474 instead of having it called with no arguments (typically a
2478 instead of having it called with no arguments (typically a
2475 mistake). The old 'full' autocall still exists: for that, you
2479 mistake). The old 'full' autocall still exists: for that, you
2476 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2480 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2477
2481
2478 * IPython/completer.py (Completer.attr_matches): add
2482 * IPython/completer.py (Completer.attr_matches): add
2479 tab-completion support for Enthoughts' traits. After a report by
2483 tab-completion support for Enthoughts' traits. After a report by
2480 Arnd and a patch by Prabhu.
2484 Arnd and a patch by Prabhu.
2481
2485
2482 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2486 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2483
2487
2484 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2488 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2485 Schmolck's patch to fix inspect.getinnerframes().
2489 Schmolck's patch to fix inspect.getinnerframes().
2486
2490
2487 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2491 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2488 for embedded instances, regarding handling of namespaces and items
2492 for embedded instances, regarding handling of namespaces and items
2489 added to the __builtin__ one. Multiple embedded instances and
2493 added to the __builtin__ one. Multiple embedded instances and
2490 recursive embeddings should work better now (though I'm not sure
2494 recursive embeddings should work better now (though I'm not sure
2491 I've got all the corner cases fixed, that code is a bit of a brain
2495 I've got all the corner cases fixed, that code is a bit of a brain
2492 twister).
2496 twister).
2493
2497
2494 * IPython/Magic.py (magic_edit): added support to edit in-memory
2498 * IPython/Magic.py (magic_edit): added support to edit in-memory
2495 macros (automatically creates the necessary temp files). %edit
2499 macros (automatically creates the necessary temp files). %edit
2496 also doesn't return the file contents anymore, it's just noise.
2500 also doesn't return the file contents anymore, it's just noise.
2497
2501
2498 * IPython/completer.py (Completer.attr_matches): revert change to
2502 * IPython/completer.py (Completer.attr_matches): revert change to
2499 complete only on attributes listed in __all__. I realized it
2503 complete only on attributes listed in __all__. I realized it
2500 cripples the tab-completion system as a tool for exploring the
2504 cripples the tab-completion system as a tool for exploring the
2501 internals of unknown libraries (it renders any non-__all__
2505 internals of unknown libraries (it renders any non-__all__
2502 attribute off-limits). I got bit by this when trying to see
2506 attribute off-limits). I got bit by this when trying to see
2503 something inside the dis module.
2507 something inside the dis module.
2504
2508
2505 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2509 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2506
2510
2507 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2511 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2508 namespace for users and extension writers to hold data in. This
2512 namespace for users and extension writers to hold data in. This
2509 follows the discussion in
2513 follows the discussion in
2510 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2514 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2511
2515
2512 * IPython/completer.py (IPCompleter.complete): small patch to help
2516 * IPython/completer.py (IPCompleter.complete): small patch to help
2513 tab-completion under Emacs, after a suggestion by John Barnard
2517 tab-completion under Emacs, after a suggestion by John Barnard
2514 <barnarj-AT-ccf.org>.
2518 <barnarj-AT-ccf.org>.
2515
2519
2516 * IPython/Magic.py (Magic.extract_input_slices): added support for
2520 * IPython/Magic.py (Magic.extract_input_slices): added support for
2517 the slice notation in magics to use N-M to represent numbers N...M
2521 the slice notation in magics to use N-M to represent numbers N...M
2518 (closed endpoints). This is used by %macro and %save.
2522 (closed endpoints). This is used by %macro and %save.
2519
2523
2520 * IPython/completer.py (Completer.attr_matches): for modules which
2524 * IPython/completer.py (Completer.attr_matches): for modules which
2521 define __all__, complete only on those. After a patch by Jeffrey
2525 define __all__, complete only on those. After a patch by Jeffrey
2522 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2526 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2523 speed up this routine.
2527 speed up this routine.
2524
2528
2525 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2529 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2526 don't know if this is the end of it, but the behavior now is
2530 don't know if this is the end of it, but the behavior now is
2527 certainly much more correct. Note that coupled with macros,
2531 certainly much more correct. Note that coupled with macros,
2528 slightly surprising (at first) behavior may occur: a macro will in
2532 slightly surprising (at first) behavior may occur: a macro will in
2529 general expand to multiple lines of input, so upon exiting, the
2533 general expand to multiple lines of input, so upon exiting, the
2530 in/out counters will both be bumped by the corresponding amount
2534 in/out counters will both be bumped by the corresponding amount
2531 (as if the macro's contents had been typed interactively). Typing
2535 (as if the macro's contents had been typed interactively). Typing
2532 %hist will reveal the intermediate (silently processed) lines.
2536 %hist will reveal the intermediate (silently processed) lines.
2533
2537
2534 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2538 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2535 pickle to fail (%run was overwriting __main__ and not restoring
2539 pickle to fail (%run was overwriting __main__ and not restoring
2536 it, but pickle relies on __main__ to operate).
2540 it, but pickle relies on __main__ to operate).
2537
2541
2538 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2542 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2539 using properties, but forgot to make the main InteractiveShell
2543 using properties, but forgot to make the main InteractiveShell
2540 class a new-style class. Properties fail silently, and
2544 class a new-style class. Properties fail silently, and
2541 mysteriously, with old-style class (getters work, but
2545 mysteriously, with old-style class (getters work, but
2542 setters don't do anything).
2546 setters don't do anything).
2543
2547
2544 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2548 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2545
2549
2546 * IPython/Magic.py (magic_history): fix history reporting bug (I
2550 * IPython/Magic.py (magic_history): fix history reporting bug (I
2547 know some nasties are still there, I just can't seem to find a
2551 know some nasties are still there, I just can't seem to find a
2548 reproducible test case to track them down; the input history is
2552 reproducible test case to track them down; the input history is
2549 falling out of sync...)
2553 falling out of sync...)
2550
2554
2551 * IPython/iplib.py (handle_shell_escape): fix bug where both
2555 * IPython/iplib.py (handle_shell_escape): fix bug where both
2552 aliases and system accesses where broken for indented code (such
2556 aliases and system accesses where broken for indented code (such
2553 as loops).
2557 as loops).
2554
2558
2555 * IPython/genutils.py (shell): fix small but critical bug for
2559 * IPython/genutils.py (shell): fix small but critical bug for
2556 win32 system access.
2560 win32 system access.
2557
2561
2558 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2562 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2559
2563
2560 * IPython/iplib.py (showtraceback): remove use of the
2564 * IPython/iplib.py (showtraceback): remove use of the
2561 sys.last_{type/value/traceback} structures, which are non
2565 sys.last_{type/value/traceback} structures, which are non
2562 thread-safe.
2566 thread-safe.
2563 (_prefilter): change control flow to ensure that we NEVER
2567 (_prefilter): change control flow to ensure that we NEVER
2564 introspect objects when autocall is off. This will guarantee that
2568 introspect objects when autocall is off. This will guarantee that
2565 having an input line of the form 'x.y', where access to attribute
2569 having an input line of the form 'x.y', where access to attribute
2566 'y' has side effects, doesn't trigger the side effect TWICE. It
2570 'y' has side effects, doesn't trigger the side effect TWICE. It
2567 is important to note that, with autocall on, these side effects
2571 is important to note that, with autocall on, these side effects
2568 can still happen.
2572 can still happen.
2569 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2573 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2570 trio. IPython offers these three kinds of special calls which are
2574 trio. IPython offers these three kinds of special calls which are
2571 not python code, and it's a good thing to have their call method
2575 not python code, and it's a good thing to have their call method
2572 be accessible as pure python functions (not just special syntax at
2576 be accessible as pure python functions (not just special syntax at
2573 the command line). It gives us a better internal implementation
2577 the command line). It gives us a better internal implementation
2574 structure, as well as exposing these for user scripting more
2578 structure, as well as exposing these for user scripting more
2575 cleanly.
2579 cleanly.
2576
2580
2577 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2581 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2578 file. Now that they'll be more likely to be used with the
2582 file. Now that they'll be more likely to be used with the
2579 persistance system (%store), I want to make sure their module path
2583 persistance system (%store), I want to make sure their module path
2580 doesn't change in the future, so that we don't break things for
2584 doesn't change in the future, so that we don't break things for
2581 users' persisted data.
2585 users' persisted data.
2582
2586
2583 * IPython/iplib.py (autoindent_update): move indentation
2587 * IPython/iplib.py (autoindent_update): move indentation
2584 management into the _text_ processing loop, not the keyboard
2588 management into the _text_ processing loop, not the keyboard
2585 interactive one. This is necessary to correctly process non-typed
2589 interactive one. This is necessary to correctly process non-typed
2586 multiline input (such as macros).
2590 multiline input (such as macros).
2587
2591
2588 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2592 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2589 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2593 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2590 which was producing problems in the resulting manual.
2594 which was producing problems in the resulting manual.
2591 (magic_whos): improve reporting of instances (show their class,
2595 (magic_whos): improve reporting of instances (show their class,
2592 instead of simply printing 'instance' which isn't terribly
2596 instead of simply printing 'instance' which isn't terribly
2593 informative).
2597 informative).
2594
2598
2595 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2599 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2596 (minor mods) to support network shares under win32.
2600 (minor mods) to support network shares under win32.
2597
2601
2598 * IPython/winconsole.py (get_console_size): add new winconsole
2602 * IPython/winconsole.py (get_console_size): add new winconsole
2599 module and fixes to page_dumb() to improve its behavior under
2603 module and fixes to page_dumb() to improve its behavior under
2600 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2604 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2601
2605
2602 * IPython/Magic.py (Macro): simplified Macro class to just
2606 * IPython/Magic.py (Macro): simplified Macro class to just
2603 subclass list. We've had only 2.2 compatibility for a very long
2607 subclass list. We've had only 2.2 compatibility for a very long
2604 time, yet I was still avoiding subclassing the builtin types. No
2608 time, yet I was still avoiding subclassing the builtin types. No
2605 more (I'm also starting to use properties, though I won't shift to
2609 more (I'm also starting to use properties, though I won't shift to
2606 2.3-specific features quite yet).
2610 2.3-specific features quite yet).
2607 (magic_store): added Ville's patch for lightweight variable
2611 (magic_store): added Ville's patch for lightweight variable
2608 persistence, after a request on the user list by Matt Wilkie
2612 persistence, after a request on the user list by Matt Wilkie
2609 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2613 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2610 details.
2614 details.
2611
2615
2612 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2616 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2613 changed the default logfile name from 'ipython.log' to
2617 changed the default logfile name from 'ipython.log' to
2614 'ipython_log.py'. These logs are real python files, and now that
2618 'ipython_log.py'. These logs are real python files, and now that
2615 we have much better multiline support, people are more likely to
2619 we have much better multiline support, people are more likely to
2616 want to use them as such. Might as well name them correctly.
2620 want to use them as such. Might as well name them correctly.
2617
2621
2618 * IPython/Magic.py: substantial cleanup. While we can't stop
2622 * IPython/Magic.py: substantial cleanup. While we can't stop
2619 using magics as mixins, due to the existing customizations 'out
2623 using magics as mixins, due to the existing customizations 'out
2620 there' which rely on the mixin naming conventions, at least I
2624 there' which rely on the mixin naming conventions, at least I
2621 cleaned out all cross-class name usage. So once we are OK with
2625 cleaned out all cross-class name usage. So once we are OK with
2622 breaking compatibility, the two systems can be separated.
2626 breaking compatibility, the two systems can be separated.
2623
2627
2624 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2628 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2625 anymore, and the class is a fair bit less hideous as well. New
2629 anymore, and the class is a fair bit less hideous as well. New
2626 features were also introduced: timestamping of input, and logging
2630 features were also introduced: timestamping of input, and logging
2627 of output results. These are user-visible with the -t and -o
2631 of output results. These are user-visible with the -t and -o
2628 options to %logstart. Closes
2632 options to %logstart. Closes
2629 http://www.scipy.net/roundup/ipython/issue11 and a request by
2633 http://www.scipy.net/roundup/ipython/issue11 and a request by
2630 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2634 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2631
2635
2632 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2636 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2633
2637
2634 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2638 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2635 better handle backslashes in paths. See the thread 'More Windows
2639 better handle backslashes in paths. See the thread 'More Windows
2636 questions part 2 - \/ characters revisited' on the iypthon user
2640 questions part 2 - \/ characters revisited' on the iypthon user
2637 list:
2641 list:
2638 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2642 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2639
2643
2640 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2644 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2641
2645
2642 (InteractiveShell.__init__): change threaded shells to not use the
2646 (InteractiveShell.__init__): change threaded shells to not use the
2643 ipython crash handler. This was causing more problems than not,
2647 ipython crash handler. This was causing more problems than not,
2644 as exceptions in the main thread (GUI code, typically) would
2648 as exceptions in the main thread (GUI code, typically) would
2645 always show up as a 'crash', when they really weren't.
2649 always show up as a 'crash', when they really weren't.
2646
2650
2647 The colors and exception mode commands (%colors/%xmode) have been
2651 The colors and exception mode commands (%colors/%xmode) have been
2648 synchronized to also take this into account, so users can get
2652 synchronized to also take this into account, so users can get
2649 verbose exceptions for their threaded code as well. I also added
2653 verbose exceptions for their threaded code as well. I also added
2650 support for activating pdb inside this exception handler as well,
2654 support for activating pdb inside this exception handler as well,
2651 so now GUI authors can use IPython's enhanced pdb at runtime.
2655 so now GUI authors can use IPython's enhanced pdb at runtime.
2652
2656
2653 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2657 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2654 true by default, and add it to the shipped ipythonrc file. Since
2658 true by default, and add it to the shipped ipythonrc file. Since
2655 this asks the user before proceeding, I think it's OK to make it
2659 this asks the user before proceeding, I think it's OK to make it
2656 true by default.
2660 true by default.
2657
2661
2658 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2662 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2659 of the previous special-casing of input in the eval loop. I think
2663 of the previous special-casing of input in the eval loop. I think
2660 this is cleaner, as they really are commands and shouldn't have
2664 this is cleaner, as they really are commands and shouldn't have
2661 a special role in the middle of the core code.
2665 a special role in the middle of the core code.
2662
2666
2663 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2667 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2664
2668
2665 * IPython/iplib.py (edit_syntax_error): added support for
2669 * IPython/iplib.py (edit_syntax_error): added support for
2666 automatically reopening the editor if the file had a syntax error
2670 automatically reopening the editor if the file had a syntax error
2667 in it. Thanks to scottt who provided the patch at:
2671 in it. Thanks to scottt who provided the patch at:
2668 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2672 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2669 version committed).
2673 version committed).
2670
2674
2671 * IPython/iplib.py (handle_normal): add suport for multi-line
2675 * IPython/iplib.py (handle_normal): add suport for multi-line
2672 input with emtpy lines. This fixes
2676 input with emtpy lines. This fixes
2673 http://www.scipy.net/roundup/ipython/issue43 and a similar
2677 http://www.scipy.net/roundup/ipython/issue43 and a similar
2674 discussion on the user list.
2678 discussion on the user list.
2675
2679
2676 WARNING: a behavior change is necessarily introduced to support
2680 WARNING: a behavior change is necessarily introduced to support
2677 blank lines: now a single blank line with whitespace does NOT
2681 blank lines: now a single blank line with whitespace does NOT
2678 break the input loop, which means that when autoindent is on, by
2682 break the input loop, which means that when autoindent is on, by
2679 default hitting return on the next (indented) line does NOT exit.
2683 default hitting return on the next (indented) line does NOT exit.
2680
2684
2681 Instead, to exit a multiline input you can either have:
2685 Instead, to exit a multiline input you can either have:
2682
2686
2683 - TWO whitespace lines (just hit return again), or
2687 - TWO whitespace lines (just hit return again), or
2684 - a single whitespace line of a different length than provided
2688 - a single whitespace line of a different length than provided
2685 by the autoindent (add or remove a space).
2689 by the autoindent (add or remove a space).
2686
2690
2687 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2691 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2688 module to better organize all readline-related functionality.
2692 module to better organize all readline-related functionality.
2689 I've deleted FlexCompleter and put all completion clases here.
2693 I've deleted FlexCompleter and put all completion clases here.
2690
2694
2691 * IPython/iplib.py (raw_input): improve indentation management.
2695 * IPython/iplib.py (raw_input): improve indentation management.
2692 It is now possible to paste indented code with autoindent on, and
2696 It is now possible to paste indented code with autoindent on, and
2693 the code is interpreted correctly (though it still looks bad on
2697 the code is interpreted correctly (though it still looks bad on
2694 screen, due to the line-oriented nature of ipython).
2698 screen, due to the line-oriented nature of ipython).
2695 (MagicCompleter.complete): change behavior so that a TAB key on an
2699 (MagicCompleter.complete): change behavior so that a TAB key on an
2696 otherwise empty line actually inserts a tab, instead of completing
2700 otherwise empty line actually inserts a tab, instead of completing
2697 on the entire global namespace. This makes it easier to use the
2701 on the entire global namespace. This makes it easier to use the
2698 TAB key for indentation. After a request by Hans Meine
2702 TAB key for indentation. After a request by Hans Meine
2699 <hans_meine-AT-gmx.net>
2703 <hans_meine-AT-gmx.net>
2700 (_prefilter): add support so that typing plain 'exit' or 'quit'
2704 (_prefilter): add support so that typing plain 'exit' or 'quit'
2701 does a sensible thing. Originally I tried to deviate as little as
2705 does a sensible thing. Originally I tried to deviate as little as
2702 possible from the default python behavior, but even that one may
2706 possible from the default python behavior, but even that one may
2703 change in this direction (thread on python-dev to that effect).
2707 change in this direction (thread on python-dev to that effect).
2704 Regardless, ipython should do the right thing even if CPython's
2708 Regardless, ipython should do the right thing even if CPython's
2705 '>>>' prompt doesn't.
2709 '>>>' prompt doesn't.
2706 (InteractiveShell): removed subclassing code.InteractiveConsole
2710 (InteractiveShell): removed subclassing code.InteractiveConsole
2707 class. By now we'd overridden just about all of its methods: I've
2711 class. By now we'd overridden just about all of its methods: I've
2708 copied the remaining two over, and now ipython is a standalone
2712 copied the remaining two over, and now ipython is a standalone
2709 class. This will provide a clearer picture for the chainsaw
2713 class. This will provide a clearer picture for the chainsaw
2710 branch refactoring.
2714 branch refactoring.
2711
2715
2712 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2716 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2713
2717
2714 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2718 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2715 failures for objects which break when dir() is called on them.
2719 failures for objects which break when dir() is called on them.
2716
2720
2717 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2721 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2718 distinct local and global namespaces in the completer API. This
2722 distinct local and global namespaces in the completer API. This
2719 change allows us to properly handle completion with distinct
2723 change allows us to properly handle completion with distinct
2720 scopes, including in embedded instances (this had never really
2724 scopes, including in embedded instances (this had never really
2721 worked correctly).
2725 worked correctly).
2722
2726
2723 Note: this introduces a change in the constructor for
2727 Note: this introduces a change in the constructor for
2724 MagicCompleter, as a new global_namespace parameter is now the
2728 MagicCompleter, as a new global_namespace parameter is now the
2725 second argument (the others were bumped one position).
2729 second argument (the others were bumped one position).
2726
2730
2727 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2731 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2728
2732
2729 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2733 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2730 embedded instances (which can be done now thanks to Vivian's
2734 embedded instances (which can be done now thanks to Vivian's
2731 frame-handling fixes for pdb).
2735 frame-handling fixes for pdb).
2732 (InteractiveShell.__init__): Fix namespace handling problem in
2736 (InteractiveShell.__init__): Fix namespace handling problem in
2733 embedded instances. We were overwriting __main__ unconditionally,
2737 embedded instances. We were overwriting __main__ unconditionally,
2734 and this should only be done for 'full' (non-embedded) IPython;
2738 and this should only be done for 'full' (non-embedded) IPython;
2735 embedded instances must respect the caller's __main__. Thanks to
2739 embedded instances must respect the caller's __main__. Thanks to
2736 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2740 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2737
2741
2738 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2742 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2739
2743
2740 * setup.py: added download_url to setup(). This registers the
2744 * setup.py: added download_url to setup(). This registers the
2741 download address at PyPI, which is not only useful to humans
2745 download address at PyPI, which is not only useful to humans
2742 browsing the site, but is also picked up by setuptools (the Eggs
2746 browsing the site, but is also picked up by setuptools (the Eggs
2743 machinery). Thanks to Ville and R. Kern for the info/discussion
2747 machinery). Thanks to Ville and R. Kern for the info/discussion
2744 on this.
2748 on this.
2745
2749
2746 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2750 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2747
2751
2748 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2752 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2749 This brings a lot of nice functionality to the pdb mode, which now
2753 This brings a lot of nice functionality to the pdb mode, which now
2750 has tab-completion, syntax highlighting, and better stack handling
2754 has tab-completion, syntax highlighting, and better stack handling
2751 than before. Many thanks to Vivian De Smedt
2755 than before. Many thanks to Vivian De Smedt
2752 <vivian-AT-vdesmedt.com> for the original patches.
2756 <vivian-AT-vdesmedt.com> for the original patches.
2753
2757
2754 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2758 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2755
2759
2756 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2760 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2757 sequence to consistently accept the banner argument. The
2761 sequence to consistently accept the banner argument. The
2758 inconsistency was tripping SAGE, thanks to Gary Zablackis
2762 inconsistency was tripping SAGE, thanks to Gary Zablackis
2759 <gzabl-AT-yahoo.com> for the report.
2763 <gzabl-AT-yahoo.com> for the report.
2760
2764
2761 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2765 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2762
2766
2763 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2767 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2764 Fix bug where a naked 'alias' call in the ipythonrc file would
2768 Fix bug where a naked 'alias' call in the ipythonrc file would
2765 cause a crash. Bug reported by Jorgen Stenarson.
2769 cause a crash. Bug reported by Jorgen Stenarson.
2766
2770
2767 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2771 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2768
2772
2769 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2773 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2770 startup time.
2774 startup time.
2771
2775
2772 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2776 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2773 instances had introduced a bug with globals in normal code. Now
2777 instances had introduced a bug with globals in normal code. Now
2774 it's working in all cases.
2778 it's working in all cases.
2775
2779
2776 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2780 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2777 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2781 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2778 has been introduced to set the default case sensitivity of the
2782 has been introduced to set the default case sensitivity of the
2779 searches. Users can still select either mode at runtime on a
2783 searches. Users can still select either mode at runtime on a
2780 per-search basis.
2784 per-search basis.
2781
2785
2782 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2786 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2783
2787
2784 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2788 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2785 attributes in wildcard searches for subclasses. Modified version
2789 attributes in wildcard searches for subclasses. Modified version
2786 of a patch by Jorgen.
2790 of a patch by Jorgen.
2787
2791
2788 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2792 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2789
2793
2790 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2794 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2791 embedded instances. I added a user_global_ns attribute to the
2795 embedded instances. I added a user_global_ns attribute to the
2792 InteractiveShell class to handle this.
2796 InteractiveShell class to handle this.
2793
2797
2794 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2798 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2795
2799
2796 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2800 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2797 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2801 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2798 (reported under win32, but may happen also in other platforms).
2802 (reported under win32, but may happen also in other platforms).
2799 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2803 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2800
2804
2801 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2805 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2802
2806
2803 * IPython/Magic.py (magic_psearch): new support for wildcard
2807 * IPython/Magic.py (magic_psearch): new support for wildcard
2804 patterns. Now, typing ?a*b will list all names which begin with a
2808 patterns. Now, typing ?a*b will list all names which begin with a
2805 and end in b, for example. The %psearch magic has full
2809 and end in b, for example. The %psearch magic has full
2806 docstrings. Many thanks to JΓΆrgen Stenarson
2810 docstrings. Many thanks to JΓΆrgen Stenarson
2807 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2811 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2808 implementing this functionality.
2812 implementing this functionality.
2809
2813
2810 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2814 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2811
2815
2812 * Manual: fixed long-standing annoyance of double-dashes (as in
2816 * Manual: fixed long-standing annoyance of double-dashes (as in
2813 --prefix=~, for example) being stripped in the HTML version. This
2817 --prefix=~, for example) being stripped in the HTML version. This
2814 is a latex2html bug, but a workaround was provided. Many thanks
2818 is a latex2html bug, but a workaround was provided. Many thanks
2815 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2819 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2816 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2820 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2817 rolling. This seemingly small issue had tripped a number of users
2821 rolling. This seemingly small issue had tripped a number of users
2818 when first installing, so I'm glad to see it gone.
2822 when first installing, so I'm glad to see it gone.
2819
2823
2820 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2824 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2821
2825
2822 * IPython/Extensions/numeric_formats.py: fix missing import,
2826 * IPython/Extensions/numeric_formats.py: fix missing import,
2823 reported by Stephen Walton.
2827 reported by Stephen Walton.
2824
2828
2825 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2829 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2826
2830
2827 * IPython/demo.py: finish demo module, fully documented now.
2831 * IPython/demo.py: finish demo module, fully documented now.
2828
2832
2829 * IPython/genutils.py (file_read): simple little utility to read a
2833 * IPython/genutils.py (file_read): simple little utility to read a
2830 file and ensure it's closed afterwards.
2834 file and ensure it's closed afterwards.
2831
2835
2832 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2836 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2833
2837
2834 * IPython/demo.py (Demo.__init__): added support for individually
2838 * IPython/demo.py (Demo.__init__): added support for individually
2835 tagging blocks for automatic execution.
2839 tagging blocks for automatic execution.
2836
2840
2837 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2841 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2838 syntax-highlighted python sources, requested by John.
2842 syntax-highlighted python sources, requested by John.
2839
2843
2840 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2844 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2841
2845
2842 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2846 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2843 finishing.
2847 finishing.
2844
2848
2845 * IPython/genutils.py (shlex_split): moved from Magic to here,
2849 * IPython/genutils.py (shlex_split): moved from Magic to here,
2846 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2850 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2847
2851
2848 * IPython/demo.py (Demo.__init__): added support for silent
2852 * IPython/demo.py (Demo.__init__): added support for silent
2849 blocks, improved marks as regexps, docstrings written.
2853 blocks, improved marks as regexps, docstrings written.
2850 (Demo.__init__): better docstring, added support for sys.argv.
2854 (Demo.__init__): better docstring, added support for sys.argv.
2851
2855
2852 * IPython/genutils.py (marquee): little utility used by the demo
2856 * IPython/genutils.py (marquee): little utility used by the demo
2853 code, handy in general.
2857 code, handy in general.
2854
2858
2855 * IPython/demo.py (Demo.__init__): new class for interactive
2859 * IPython/demo.py (Demo.__init__): new class for interactive
2856 demos. Not documented yet, I just wrote it in a hurry for
2860 demos. Not documented yet, I just wrote it in a hurry for
2857 scipy'05. Will docstring later.
2861 scipy'05. Will docstring later.
2858
2862
2859 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2863 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2860
2864
2861 * IPython/Shell.py (sigint_handler): Drastic simplification which
2865 * IPython/Shell.py (sigint_handler): Drastic simplification which
2862 also seems to make Ctrl-C work correctly across threads! This is
2866 also seems to make Ctrl-C work correctly across threads! This is
2863 so simple, that I can't beleive I'd missed it before. Needs more
2867 so simple, that I can't beleive I'd missed it before. Needs more
2864 testing, though.
2868 testing, though.
2865 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2869 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2866 like this before...
2870 like this before...
2867
2871
2868 * IPython/genutils.py (get_home_dir): add protection against
2872 * IPython/genutils.py (get_home_dir): add protection against
2869 non-dirs in win32 registry.
2873 non-dirs in win32 registry.
2870
2874
2871 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2875 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2872 bug where dict was mutated while iterating (pysh crash).
2876 bug where dict was mutated while iterating (pysh crash).
2873
2877
2874 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2878 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2875
2879
2876 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2880 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2877 spurious newlines added by this routine. After a report by
2881 spurious newlines added by this routine. After a report by
2878 F. Mantegazza.
2882 F. Mantegazza.
2879
2883
2880 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2884 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2881
2885
2882 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2886 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2883 calls. These were a leftover from the GTK 1.x days, and can cause
2887 calls. These were a leftover from the GTK 1.x days, and can cause
2884 problems in certain cases (after a report by John Hunter).
2888 problems in certain cases (after a report by John Hunter).
2885
2889
2886 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2890 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2887 os.getcwd() fails at init time. Thanks to patch from David Remahl
2891 os.getcwd() fails at init time. Thanks to patch from David Remahl
2888 <chmod007-AT-mac.com>.
2892 <chmod007-AT-mac.com>.
2889 (InteractiveShell.__init__): prevent certain special magics from
2893 (InteractiveShell.__init__): prevent certain special magics from
2890 being shadowed by aliases. Closes
2894 being shadowed by aliases. Closes
2891 http://www.scipy.net/roundup/ipython/issue41.
2895 http://www.scipy.net/roundup/ipython/issue41.
2892
2896
2893 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2897 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2894
2898
2895 * IPython/iplib.py (InteractiveShell.complete): Added new
2899 * IPython/iplib.py (InteractiveShell.complete): Added new
2896 top-level completion method to expose the completion mechanism
2900 top-level completion method to expose the completion mechanism
2897 beyond readline-based environments.
2901 beyond readline-based environments.
2898
2902
2899 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2903 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2900
2904
2901 * tools/ipsvnc (svnversion): fix svnversion capture.
2905 * tools/ipsvnc (svnversion): fix svnversion capture.
2902
2906
2903 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2907 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2904 attribute to self, which was missing. Before, it was set by a
2908 attribute to self, which was missing. Before, it was set by a
2905 routine which in certain cases wasn't being called, so the
2909 routine which in certain cases wasn't being called, so the
2906 instance could end up missing the attribute. This caused a crash.
2910 instance could end up missing the attribute. This caused a crash.
2907 Closes http://www.scipy.net/roundup/ipython/issue40.
2911 Closes http://www.scipy.net/roundup/ipython/issue40.
2908
2912
2909 2005-08-16 Fernando Perez <fperez@colorado.edu>
2913 2005-08-16 Fernando Perez <fperez@colorado.edu>
2910
2914
2911 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2915 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2912 contains non-string attribute. Closes
2916 contains non-string attribute. Closes
2913 http://www.scipy.net/roundup/ipython/issue38.
2917 http://www.scipy.net/roundup/ipython/issue38.
2914
2918
2915 2005-08-14 Fernando Perez <fperez@colorado.edu>
2919 2005-08-14 Fernando Perez <fperez@colorado.edu>
2916
2920
2917 * tools/ipsvnc: Minor improvements, to add changeset info.
2921 * tools/ipsvnc: Minor improvements, to add changeset info.
2918
2922
2919 2005-08-12 Fernando Perez <fperez@colorado.edu>
2923 2005-08-12 Fernando Perez <fperez@colorado.edu>
2920
2924
2921 * IPython/iplib.py (runsource): remove self.code_to_run_src
2925 * IPython/iplib.py (runsource): remove self.code_to_run_src
2922 attribute. I realized this is nothing more than
2926 attribute. I realized this is nothing more than
2923 '\n'.join(self.buffer), and having the same data in two different
2927 '\n'.join(self.buffer), and having the same data in two different
2924 places is just asking for synchronization bugs. This may impact
2928 places is just asking for synchronization bugs. This may impact
2925 people who have custom exception handlers, so I need to warn
2929 people who have custom exception handlers, so I need to warn
2926 ipython-dev about it (F. Mantegazza may use them).
2930 ipython-dev about it (F. Mantegazza may use them).
2927
2931
2928 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2932 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2929
2933
2930 * IPython/genutils.py: fix 2.2 compatibility (generators)
2934 * IPython/genutils.py: fix 2.2 compatibility (generators)
2931
2935
2932 2005-07-18 Fernando Perez <fperez@colorado.edu>
2936 2005-07-18 Fernando Perez <fperez@colorado.edu>
2933
2937
2934 * IPython/genutils.py (get_home_dir): fix to help users with
2938 * IPython/genutils.py (get_home_dir): fix to help users with
2935 invalid $HOME under win32.
2939 invalid $HOME under win32.
2936
2940
2937 2005-07-17 Fernando Perez <fperez@colorado.edu>
2941 2005-07-17 Fernando Perez <fperez@colorado.edu>
2938
2942
2939 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2943 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2940 some old hacks and clean up a bit other routines; code should be
2944 some old hacks and clean up a bit other routines; code should be
2941 simpler and a bit faster.
2945 simpler and a bit faster.
2942
2946
2943 * IPython/iplib.py (interact): removed some last-resort attempts
2947 * IPython/iplib.py (interact): removed some last-resort attempts
2944 to survive broken stdout/stderr. That code was only making it
2948 to survive broken stdout/stderr. That code was only making it
2945 harder to abstract out the i/o (necessary for gui integration),
2949 harder to abstract out the i/o (necessary for gui integration),
2946 and the crashes it could prevent were extremely rare in practice
2950 and the crashes it could prevent were extremely rare in practice
2947 (besides being fully user-induced in a pretty violent manner).
2951 (besides being fully user-induced in a pretty violent manner).
2948
2952
2949 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2953 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2950 Nothing major yet, but the code is simpler to read; this should
2954 Nothing major yet, but the code is simpler to read; this should
2951 make it easier to do more serious modifications in the future.
2955 make it easier to do more serious modifications in the future.
2952
2956
2953 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2957 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2954 which broke in .15 (thanks to a report by Ville).
2958 which broke in .15 (thanks to a report by Ville).
2955
2959
2956 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2960 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2957 be quite correct, I know next to nothing about unicode). This
2961 be quite correct, I know next to nothing about unicode). This
2958 will allow unicode strings to be used in prompts, amongst other
2962 will allow unicode strings to be used in prompts, amongst other
2959 cases. It also will prevent ipython from crashing when unicode
2963 cases. It also will prevent ipython from crashing when unicode
2960 shows up unexpectedly in many places. If ascii encoding fails, we
2964 shows up unexpectedly in many places. If ascii encoding fails, we
2961 assume utf_8. Currently the encoding is not a user-visible
2965 assume utf_8. Currently the encoding is not a user-visible
2962 setting, though it could be made so if there is demand for it.
2966 setting, though it could be made so if there is demand for it.
2963
2967
2964 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2968 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2965
2969
2966 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2970 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2967
2971
2968 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2972 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2969
2973
2970 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2974 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2971 code can work transparently for 2.2/2.3.
2975 code can work transparently for 2.2/2.3.
2972
2976
2973 2005-07-16 Fernando Perez <fperez@colorado.edu>
2977 2005-07-16 Fernando Perez <fperez@colorado.edu>
2974
2978
2975 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2979 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2976 out of the color scheme table used for coloring exception
2980 out of the color scheme table used for coloring exception
2977 tracebacks. This allows user code to add new schemes at runtime.
2981 tracebacks. This allows user code to add new schemes at runtime.
2978 This is a minimally modified version of the patch at
2982 This is a minimally modified version of the patch at
2979 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2983 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2980 for the contribution.
2984 for the contribution.
2981
2985
2982 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2986 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2983 slightly modified version of the patch in
2987 slightly modified version of the patch in
2984 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2988 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2985 to remove the previous try/except solution (which was costlier).
2989 to remove the previous try/except solution (which was costlier).
2986 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2990 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2987
2991
2988 2005-06-08 Fernando Perez <fperez@colorado.edu>
2992 2005-06-08 Fernando Perez <fperez@colorado.edu>
2989
2993
2990 * IPython/iplib.py (write/write_err): Add methods to abstract all
2994 * IPython/iplib.py (write/write_err): Add methods to abstract all
2991 I/O a bit more.
2995 I/O a bit more.
2992
2996
2993 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2997 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2994 warning, reported by Aric Hagberg, fix by JD Hunter.
2998 warning, reported by Aric Hagberg, fix by JD Hunter.
2995
2999
2996 2005-06-02 *** Released version 0.6.15
3000 2005-06-02 *** Released version 0.6.15
2997
3001
2998 2005-06-01 Fernando Perez <fperez@colorado.edu>
3002 2005-06-01 Fernando Perez <fperez@colorado.edu>
2999
3003
3000 * IPython/iplib.py (MagicCompleter.file_matches): Fix
3004 * IPython/iplib.py (MagicCompleter.file_matches): Fix
3001 tab-completion of filenames within open-quoted strings. Note that
3005 tab-completion of filenames within open-quoted strings. Note that
3002 this requires that in ~/.ipython/ipythonrc, users change the
3006 this requires that in ~/.ipython/ipythonrc, users change the
3003 readline delimiters configuration to read:
3007 readline delimiters configuration to read:
3004
3008
3005 readline_remove_delims -/~
3009 readline_remove_delims -/~
3006
3010
3007
3011
3008 2005-05-31 *** Released version 0.6.14
3012 2005-05-31 *** Released version 0.6.14
3009
3013
3010 2005-05-29 Fernando Perez <fperez@colorado.edu>
3014 2005-05-29 Fernando Perez <fperez@colorado.edu>
3011
3015
3012 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
3016 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
3013 with files not on the filesystem. Reported by Eliyahu Sandler
3017 with files not on the filesystem. Reported by Eliyahu Sandler
3014 <eli@gondolin.net>
3018 <eli@gondolin.net>
3015
3019
3016 2005-05-22 Fernando Perez <fperez@colorado.edu>
3020 2005-05-22 Fernando Perez <fperez@colorado.edu>
3017
3021
3018 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
3022 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
3019 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
3023 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
3020
3024
3021 2005-05-19 Fernando Perez <fperez@colorado.edu>
3025 2005-05-19 Fernando Perez <fperez@colorado.edu>
3022
3026
3023 * IPython/iplib.py (safe_execfile): close a file which could be
3027 * IPython/iplib.py (safe_execfile): close a file which could be
3024 left open (causing problems in win32, which locks open files).
3028 left open (causing problems in win32, which locks open files).
3025 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
3029 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
3026
3030
3027 2005-05-18 Fernando Perez <fperez@colorado.edu>
3031 2005-05-18 Fernando Perez <fperez@colorado.edu>
3028
3032
3029 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
3033 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
3030 keyword arguments correctly to safe_execfile().
3034 keyword arguments correctly to safe_execfile().
3031
3035
3032 2005-05-13 Fernando Perez <fperez@colorado.edu>
3036 2005-05-13 Fernando Perez <fperez@colorado.edu>
3033
3037
3034 * ipython.1: Added info about Qt to manpage, and threads warning
3038 * ipython.1: Added info about Qt to manpage, and threads warning
3035 to usage page (invoked with --help).
3039 to usage page (invoked with --help).
3036
3040
3037 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
3041 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
3038 new matcher (it goes at the end of the priority list) to do
3042 new matcher (it goes at the end of the priority list) to do
3039 tab-completion on named function arguments. Submitted by George
3043 tab-completion on named function arguments. Submitted by George
3040 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
3044 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
3041 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
3045 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
3042 for more details.
3046 for more details.
3043
3047
3044 * IPython/Magic.py (magic_run): Added new -e flag to ignore
3048 * IPython/Magic.py (magic_run): Added new -e flag to ignore
3045 SystemExit exceptions in the script being run. Thanks to a report
3049 SystemExit exceptions in the script being run. Thanks to a report
3046 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
3050 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
3047 producing very annoying behavior when running unit tests.
3051 producing very annoying behavior when running unit tests.
3048
3052
3049 2005-05-12 Fernando Perez <fperez@colorado.edu>
3053 2005-05-12 Fernando Perez <fperez@colorado.edu>
3050
3054
3051 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
3055 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
3052 which I'd broken (again) due to a changed regexp. In the process,
3056 which I'd broken (again) due to a changed regexp. In the process,
3053 added ';' as an escape to auto-quote the whole line without
3057 added ';' as an escape to auto-quote the whole line without
3054 splitting its arguments. Thanks to a report by Jerry McRae
3058 splitting its arguments. Thanks to a report by Jerry McRae
3055 <qrs0xyc02-AT-sneakemail.com>.
3059 <qrs0xyc02-AT-sneakemail.com>.
3056
3060
3057 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
3061 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
3058 possible crashes caused by a TokenError. Reported by Ed Schofield
3062 possible crashes caused by a TokenError. Reported by Ed Schofield
3059 <schofield-AT-ftw.at>.
3063 <schofield-AT-ftw.at>.
3060
3064
3061 2005-05-06 Fernando Perez <fperez@colorado.edu>
3065 2005-05-06 Fernando Perez <fperez@colorado.edu>
3062
3066
3063 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
3067 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
3064
3068
3065 2005-04-29 Fernando Perez <fperez@colorado.edu>
3069 2005-04-29 Fernando Perez <fperez@colorado.edu>
3066
3070
3067 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
3071 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
3068 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
3072 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
3069 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
3073 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
3070 which provides support for Qt interactive usage (similar to the
3074 which provides support for Qt interactive usage (similar to the
3071 existing one for WX and GTK). This had been often requested.
3075 existing one for WX and GTK). This had been often requested.
3072
3076
3073 2005-04-14 *** Released version 0.6.13
3077 2005-04-14 *** Released version 0.6.13
3074
3078
3075 2005-04-08 Fernando Perez <fperez@colorado.edu>
3079 2005-04-08 Fernando Perez <fperez@colorado.edu>
3076
3080
3077 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
3081 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
3078 from _ofind, which gets called on almost every input line. Now,
3082 from _ofind, which gets called on almost every input line. Now,
3079 we only try to get docstrings if they are actually going to be
3083 we only try to get docstrings if they are actually going to be
3080 used (the overhead of fetching unnecessary docstrings can be
3084 used (the overhead of fetching unnecessary docstrings can be
3081 noticeable for certain objects, such as Pyro proxies).
3085 noticeable for certain objects, such as Pyro proxies).
3082
3086
3083 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
3087 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
3084 for completers. For some reason I had been passing them the state
3088 for completers. For some reason I had been passing them the state
3085 variable, which completers never actually need, and was in
3089 variable, which completers never actually need, and was in
3086 conflict with the rlcompleter API. Custom completers ONLY need to
3090 conflict with the rlcompleter API. Custom completers ONLY need to
3087 take the text parameter.
3091 take the text parameter.
3088
3092
3089 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
3093 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
3090 work correctly in pysh. I've also moved all the logic which used
3094 work correctly in pysh. I've also moved all the logic which used
3091 to be in pysh.py here, which will prevent problems with future
3095 to be in pysh.py here, which will prevent problems with future
3092 upgrades. However, this time I must warn users to update their
3096 upgrades. However, this time I must warn users to update their
3093 pysh profile to include the line
3097 pysh profile to include the line
3094
3098
3095 import_all IPython.Extensions.InterpreterExec
3099 import_all IPython.Extensions.InterpreterExec
3096
3100
3097 because otherwise things won't work for them. They MUST also
3101 because otherwise things won't work for them. They MUST also
3098 delete pysh.py and the line
3102 delete pysh.py and the line
3099
3103
3100 execfile pysh.py
3104 execfile pysh.py
3101
3105
3102 from their ipythonrc-pysh.
3106 from their ipythonrc-pysh.
3103
3107
3104 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
3108 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
3105 robust in the face of objects whose dir() returns non-strings
3109 robust in the face of objects whose dir() returns non-strings
3106 (which it shouldn't, but some broken libs like ITK do). Thanks to
3110 (which it shouldn't, but some broken libs like ITK do). Thanks to
3107 a patch by John Hunter (implemented differently, though). Also
3111 a patch by John Hunter (implemented differently, though). Also
3108 minor improvements by using .extend instead of + on lists.
3112 minor improvements by using .extend instead of + on lists.
3109
3113
3110 * pysh.py:
3114 * pysh.py:
3111
3115
3112 2005-04-06 Fernando Perez <fperez@colorado.edu>
3116 2005-04-06 Fernando Perez <fperez@colorado.edu>
3113
3117
3114 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
3118 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
3115 by default, so that all users benefit from it. Those who don't
3119 by default, so that all users benefit from it. Those who don't
3116 want it can still turn it off.
3120 want it can still turn it off.
3117
3121
3118 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
3122 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
3119 config file, I'd forgotten about this, so users were getting it
3123 config file, I'd forgotten about this, so users were getting it
3120 off by default.
3124 off by default.
3121
3125
3122 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
3126 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
3123 consistency. Now magics can be called in multiline statements,
3127 consistency. Now magics can be called in multiline statements,
3124 and python variables can be expanded in magic calls via $var.
3128 and python variables can be expanded in magic calls via $var.
3125 This makes the magic system behave just like aliases or !system
3129 This makes the magic system behave just like aliases or !system
3126 calls.
3130 calls.
3127
3131
3128 2005-03-28 Fernando Perez <fperez@colorado.edu>
3132 2005-03-28 Fernando Perez <fperez@colorado.edu>
3129
3133
3130 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
3134 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
3131 expensive string additions for building command. Add support for
3135 expensive string additions for building command. Add support for
3132 trailing ';' when autocall is used.
3136 trailing ';' when autocall is used.
3133
3137
3134 2005-03-26 Fernando Perez <fperez@colorado.edu>
3138 2005-03-26 Fernando Perez <fperez@colorado.edu>
3135
3139
3136 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
3140 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
3137 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
3141 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
3138 ipython.el robust against prompts with any number of spaces
3142 ipython.el robust against prompts with any number of spaces
3139 (including 0) after the ':' character.
3143 (including 0) after the ':' character.
3140
3144
3141 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
3145 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
3142 continuation prompt, which misled users to think the line was
3146 continuation prompt, which misled users to think the line was
3143 already indented. Closes debian Bug#300847, reported to me by
3147 already indented. Closes debian Bug#300847, reported to me by
3144 Norbert Tretkowski <tretkowski-AT-inittab.de>.
3148 Norbert Tretkowski <tretkowski-AT-inittab.de>.
3145
3149
3146 2005-03-23 Fernando Perez <fperez@colorado.edu>
3150 2005-03-23 Fernando Perez <fperez@colorado.edu>
3147
3151
3148 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
3152 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
3149 properly aligned if they have embedded newlines.
3153 properly aligned if they have embedded newlines.
3150
3154
3151 * IPython/iplib.py (runlines): Add a public method to expose
3155 * IPython/iplib.py (runlines): Add a public method to expose
3152 IPython's code execution machinery, so that users can run strings
3156 IPython's code execution machinery, so that users can run strings
3153 as if they had been typed at the prompt interactively.
3157 as if they had been typed at the prompt interactively.
3154 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
3158 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
3155 methods which can call the system shell, but with python variable
3159 methods which can call the system shell, but with python variable
3156 expansion. The three such methods are: __IPYTHON__.system,
3160 expansion. The three such methods are: __IPYTHON__.system,
3157 .getoutput and .getoutputerror. These need to be documented in a
3161 .getoutput and .getoutputerror. These need to be documented in a
3158 'public API' section (to be written) of the manual.
3162 'public API' section (to be written) of the manual.
3159
3163
3160 2005-03-20 Fernando Perez <fperez@colorado.edu>
3164 2005-03-20 Fernando Perez <fperez@colorado.edu>
3161
3165
3162 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
3166 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
3163 for custom exception handling. This is quite powerful, and it
3167 for custom exception handling. This is quite powerful, and it
3164 allows for user-installable exception handlers which can trap
3168 allows for user-installable exception handlers which can trap
3165 custom exceptions at runtime and treat them separately from
3169 custom exceptions at runtime and treat them separately from
3166 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
3170 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
3167 Mantegazza <mantegazza-AT-ill.fr>.
3171 Mantegazza <mantegazza-AT-ill.fr>.
3168 (InteractiveShell.set_custom_completer): public API function to
3172 (InteractiveShell.set_custom_completer): public API function to
3169 add new completers at runtime.
3173 add new completers at runtime.
3170
3174
3171 2005-03-19 Fernando Perez <fperez@colorado.edu>
3175 2005-03-19 Fernando Perez <fperez@colorado.edu>
3172
3176
3173 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
3177 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
3174 allow objects which provide their docstrings via non-standard
3178 allow objects which provide their docstrings via non-standard
3175 mechanisms (like Pyro proxies) to still be inspected by ipython's
3179 mechanisms (like Pyro proxies) to still be inspected by ipython's
3176 ? system.
3180 ? system.
3177
3181
3178 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
3182 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
3179 automatic capture system. I tried quite hard to make it work
3183 automatic capture system. I tried quite hard to make it work
3180 reliably, and simply failed. I tried many combinations with the
3184 reliably, and simply failed. I tried many combinations with the
3181 subprocess module, but eventually nothing worked in all needed
3185 subprocess module, but eventually nothing worked in all needed
3182 cases (not blocking stdin for the child, duplicating stdout
3186 cases (not blocking stdin for the child, duplicating stdout
3183 without blocking, etc). The new %sc/%sx still do capture to these
3187 without blocking, etc). The new %sc/%sx still do capture to these
3184 magical list/string objects which make shell use much more
3188 magical list/string objects which make shell use much more
3185 conveninent, so not all is lost.
3189 conveninent, so not all is lost.
3186
3190
3187 XXX - FIX MANUAL for the change above!
3191 XXX - FIX MANUAL for the change above!
3188
3192
3189 (runsource): I copied code.py's runsource() into ipython to modify
3193 (runsource): I copied code.py's runsource() into ipython to modify
3190 it a bit. Now the code object and source to be executed are
3194 it a bit. Now the code object and source to be executed are
3191 stored in ipython. This makes this info accessible to third-party
3195 stored in ipython. This makes this info accessible to third-party
3192 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
3196 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
3193 Mantegazza <mantegazza-AT-ill.fr>.
3197 Mantegazza <mantegazza-AT-ill.fr>.
3194
3198
3195 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3199 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3196 history-search via readline (like C-p/C-n). I'd wanted this for a
3200 history-search via readline (like C-p/C-n). I'd wanted this for a
3197 long time, but only recently found out how to do it. For users
3201 long time, but only recently found out how to do it. For users
3198 who already have their ipythonrc files made and want this, just
3202 who already have their ipythonrc files made and want this, just
3199 add:
3203 add:
3200
3204
3201 readline_parse_and_bind "\e[A": history-search-backward
3205 readline_parse_and_bind "\e[A": history-search-backward
3202 readline_parse_and_bind "\e[B": history-search-forward
3206 readline_parse_and_bind "\e[B": history-search-forward
3203
3207
3204 2005-03-18 Fernando Perez <fperez@colorado.edu>
3208 2005-03-18 Fernando Perez <fperez@colorado.edu>
3205
3209
3206 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3210 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3207 LSString and SList classes which allow transparent conversions
3211 LSString and SList classes which allow transparent conversions
3208 between list mode and whitespace-separated string.
3212 between list mode and whitespace-separated string.
3209 (magic_r): Fix recursion problem in %r.
3213 (magic_r): Fix recursion problem in %r.
3210
3214
3211 * IPython/genutils.py (LSString): New class to be used for
3215 * IPython/genutils.py (LSString): New class to be used for
3212 automatic storage of the results of all alias/system calls in _o
3216 automatic storage of the results of all alias/system calls in _o
3213 and _e (stdout/err). These provide a .l/.list attribute which
3217 and _e (stdout/err). These provide a .l/.list attribute which
3214 does automatic splitting on newlines. This means that for most
3218 does automatic splitting on newlines. This means that for most
3215 uses, you'll never need to do capturing of output with %sc/%sx
3219 uses, you'll never need to do capturing of output with %sc/%sx
3216 anymore, since ipython keeps this always done for you. Note that
3220 anymore, since ipython keeps this always done for you. Note that
3217 only the LAST results are stored, the _o/e variables are
3221 only the LAST results are stored, the _o/e variables are
3218 overwritten on each call. If you need to save their contents
3222 overwritten on each call. If you need to save their contents
3219 further, simply bind them to any other name.
3223 further, simply bind them to any other name.
3220
3224
3221 2005-03-17 Fernando Perez <fperez@colorado.edu>
3225 2005-03-17 Fernando Perez <fperez@colorado.edu>
3222
3226
3223 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3227 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3224 prompt namespace handling.
3228 prompt namespace handling.
3225
3229
3226 2005-03-16 Fernando Perez <fperez@colorado.edu>
3230 2005-03-16 Fernando Perez <fperez@colorado.edu>
3227
3231
3228 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3232 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3229 classic prompts to be '>>> ' (final space was missing, and it
3233 classic prompts to be '>>> ' (final space was missing, and it
3230 trips the emacs python mode).
3234 trips the emacs python mode).
3231 (BasePrompt.__str__): Added safe support for dynamic prompt
3235 (BasePrompt.__str__): Added safe support for dynamic prompt
3232 strings. Now you can set your prompt string to be '$x', and the
3236 strings. Now you can set your prompt string to be '$x', and the
3233 value of x will be printed from your interactive namespace. The
3237 value of x will be printed from your interactive namespace. The
3234 interpolation syntax includes the full Itpl support, so
3238 interpolation syntax includes the full Itpl support, so
3235 ${foo()+x+bar()} is a valid prompt string now, and the function
3239 ${foo()+x+bar()} is a valid prompt string now, and the function
3236 calls will be made at runtime.
3240 calls will be made at runtime.
3237
3241
3238 2005-03-15 Fernando Perez <fperez@colorado.edu>
3242 2005-03-15 Fernando Perez <fperez@colorado.edu>
3239
3243
3240 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3244 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3241 avoid name clashes in pylab. %hist still works, it just forwards
3245 avoid name clashes in pylab. %hist still works, it just forwards
3242 the call to %history.
3246 the call to %history.
3243
3247
3244 2005-03-02 *** Released version 0.6.12
3248 2005-03-02 *** Released version 0.6.12
3245
3249
3246 2005-03-02 Fernando Perez <fperez@colorado.edu>
3250 2005-03-02 Fernando Perez <fperez@colorado.edu>
3247
3251
3248 * IPython/iplib.py (handle_magic): log magic calls properly as
3252 * IPython/iplib.py (handle_magic): log magic calls properly as
3249 ipmagic() function calls.
3253 ipmagic() function calls.
3250
3254
3251 * IPython/Magic.py (magic_time): Improved %time to support
3255 * IPython/Magic.py (magic_time): Improved %time to support
3252 statements and provide wall-clock as well as CPU time.
3256 statements and provide wall-clock as well as CPU time.
3253
3257
3254 2005-02-27 Fernando Perez <fperez@colorado.edu>
3258 2005-02-27 Fernando Perez <fperez@colorado.edu>
3255
3259
3256 * IPython/hooks.py: New hooks module, to expose user-modifiable
3260 * IPython/hooks.py: New hooks module, to expose user-modifiable
3257 IPython functionality in a clean manner. For now only the editor
3261 IPython functionality in a clean manner. For now only the editor
3258 hook is actually written, and other thigns which I intend to turn
3262 hook is actually written, and other thigns which I intend to turn
3259 into proper hooks aren't yet there. The display and prefilter
3263 into proper hooks aren't yet there. The display and prefilter
3260 stuff, for example, should be hooks. But at least now the
3264 stuff, for example, should be hooks. But at least now the
3261 framework is in place, and the rest can be moved here with more
3265 framework is in place, and the rest can be moved here with more
3262 time later. IPython had had a .hooks variable for a long time for
3266 time later. IPython had had a .hooks variable for a long time for
3263 this purpose, but I'd never actually used it for anything.
3267 this purpose, but I'd never actually used it for anything.
3264
3268
3265 2005-02-26 Fernando Perez <fperez@colorado.edu>
3269 2005-02-26 Fernando Perez <fperez@colorado.edu>
3266
3270
3267 * IPython/ipmaker.py (make_IPython): make the default ipython
3271 * IPython/ipmaker.py (make_IPython): make the default ipython
3268 directory be called _ipython under win32, to follow more the
3272 directory be called _ipython under win32, to follow more the
3269 naming peculiarities of that platform (where buggy software like
3273 naming peculiarities of that platform (where buggy software like
3270 Visual Sourcesafe breaks with .named directories). Reported by
3274 Visual Sourcesafe breaks with .named directories). Reported by
3271 Ville Vainio.
3275 Ville Vainio.
3272
3276
3273 2005-02-23 Fernando Perez <fperez@colorado.edu>
3277 2005-02-23 Fernando Perez <fperez@colorado.edu>
3274
3278
3275 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3279 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3276 auto_aliases for win32 which were causing problems. Users can
3280 auto_aliases for win32 which were causing problems. Users can
3277 define the ones they personally like.
3281 define the ones they personally like.
3278
3282
3279 2005-02-21 Fernando Perez <fperez@colorado.edu>
3283 2005-02-21 Fernando Perez <fperez@colorado.edu>
3280
3284
3281 * IPython/Magic.py (magic_time): new magic to time execution of
3285 * IPython/Magic.py (magic_time): new magic to time execution of
3282 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3286 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3283
3287
3284 2005-02-19 Fernando Perez <fperez@colorado.edu>
3288 2005-02-19 Fernando Perez <fperez@colorado.edu>
3285
3289
3286 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3290 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3287 into keys (for prompts, for example).
3291 into keys (for prompts, for example).
3288
3292
3289 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3293 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3290 prompts in case users want them. This introduces a small behavior
3294 prompts in case users want them. This introduces a small behavior
3291 change: ipython does not automatically add a space to all prompts
3295 change: ipython does not automatically add a space to all prompts
3292 anymore. To get the old prompts with a space, users should add it
3296 anymore. To get the old prompts with a space, users should add it
3293 manually to their ipythonrc file, so for example prompt_in1 should
3297 manually to their ipythonrc file, so for example prompt_in1 should
3294 now read 'In [\#]: ' instead of 'In [\#]:'.
3298 now read 'In [\#]: ' instead of 'In [\#]:'.
3295 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3299 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3296 file) to control left-padding of secondary prompts.
3300 file) to control left-padding of secondary prompts.
3297
3301
3298 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3302 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3299 the profiler can't be imported. Fix for Debian, which removed
3303 the profiler can't be imported. Fix for Debian, which removed
3300 profile.py because of License issues. I applied a slightly
3304 profile.py because of License issues. I applied a slightly
3301 modified version of the original Debian patch at
3305 modified version of the original Debian patch at
3302 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3306 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3303
3307
3304 2005-02-17 Fernando Perez <fperez@colorado.edu>
3308 2005-02-17 Fernando Perez <fperez@colorado.edu>
3305
3309
3306 * IPython/genutils.py (native_line_ends): Fix bug which would
3310 * IPython/genutils.py (native_line_ends): Fix bug which would
3307 cause improper line-ends under win32 b/c I was not opening files
3311 cause improper line-ends under win32 b/c I was not opening files
3308 in binary mode. Bug report and fix thanks to Ville.
3312 in binary mode. Bug report and fix thanks to Ville.
3309
3313
3310 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3314 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3311 trying to catch spurious foo[1] autocalls. My fix actually broke
3315 trying to catch spurious foo[1] autocalls. My fix actually broke
3312 ',/' autoquote/call with explicit escape (bad regexp).
3316 ',/' autoquote/call with explicit escape (bad regexp).
3313
3317
3314 2005-02-15 *** Released version 0.6.11
3318 2005-02-15 *** Released version 0.6.11
3315
3319
3316 2005-02-14 Fernando Perez <fperez@colorado.edu>
3320 2005-02-14 Fernando Perez <fperez@colorado.edu>
3317
3321
3318 * IPython/background_jobs.py: New background job management
3322 * IPython/background_jobs.py: New background job management
3319 subsystem. This is implemented via a new set of classes, and
3323 subsystem. This is implemented via a new set of classes, and
3320 IPython now provides a builtin 'jobs' object for background job
3324 IPython now provides a builtin 'jobs' object for background job
3321 execution. A convenience %bg magic serves as a lightweight
3325 execution. A convenience %bg magic serves as a lightweight
3322 frontend for starting the more common type of calls. This was
3326 frontend for starting the more common type of calls. This was
3323 inspired by discussions with B. Granger and the BackgroundCommand
3327 inspired by discussions with B. Granger and the BackgroundCommand
3324 class described in the book Python Scripting for Computational
3328 class described in the book Python Scripting for Computational
3325 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3329 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3326 (although ultimately no code from this text was used, as IPython's
3330 (although ultimately no code from this text was used, as IPython's
3327 system is a separate implementation).
3331 system is a separate implementation).
3328
3332
3329 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3333 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3330 to control the completion of single/double underscore names
3334 to control the completion of single/double underscore names
3331 separately. As documented in the example ipytonrc file, the
3335 separately. As documented in the example ipytonrc file, the
3332 readline_omit__names variable can now be set to 2, to omit even
3336 readline_omit__names variable can now be set to 2, to omit even
3333 single underscore names. Thanks to a patch by Brian Wong
3337 single underscore names. Thanks to a patch by Brian Wong
3334 <BrianWong-AT-AirgoNetworks.Com>.
3338 <BrianWong-AT-AirgoNetworks.Com>.
3335 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3339 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3336 be autocalled as foo([1]) if foo were callable. A problem for
3340 be autocalled as foo([1]) if foo were callable. A problem for
3337 things which are both callable and implement __getitem__.
3341 things which are both callable and implement __getitem__.
3338 (init_readline): Fix autoindentation for win32. Thanks to a patch
3342 (init_readline): Fix autoindentation for win32. Thanks to a patch
3339 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3343 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3340
3344
3341 2005-02-12 Fernando Perez <fperez@colorado.edu>
3345 2005-02-12 Fernando Perez <fperez@colorado.edu>
3342
3346
3343 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3347 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3344 which I had written long ago to sort out user error messages which
3348 which I had written long ago to sort out user error messages which
3345 may occur during startup. This seemed like a good idea initially,
3349 may occur during startup. This seemed like a good idea initially,
3346 but it has proven a disaster in retrospect. I don't want to
3350 but it has proven a disaster in retrospect. I don't want to
3347 change much code for now, so my fix is to set the internal 'debug'
3351 change much code for now, so my fix is to set the internal 'debug'
3348 flag to true everywhere, whose only job was precisely to control
3352 flag to true everywhere, whose only job was precisely to control
3349 this subsystem. This closes issue 28 (as well as avoiding all
3353 this subsystem. This closes issue 28 (as well as avoiding all
3350 sorts of strange hangups which occur from time to time).
3354 sorts of strange hangups which occur from time to time).
3351
3355
3352 2005-02-07 Fernando Perez <fperez@colorado.edu>
3356 2005-02-07 Fernando Perez <fperez@colorado.edu>
3353
3357
3354 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3358 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3355 previous call produced a syntax error.
3359 previous call produced a syntax error.
3356
3360
3357 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3361 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3358 classes without constructor.
3362 classes without constructor.
3359
3363
3360 2005-02-06 Fernando Perez <fperez@colorado.edu>
3364 2005-02-06 Fernando Perez <fperez@colorado.edu>
3361
3365
3362 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3366 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3363 completions with the results of each matcher, so we return results
3367 completions with the results of each matcher, so we return results
3364 to the user from all namespaces. This breaks with ipython
3368 to the user from all namespaces. This breaks with ipython
3365 tradition, but I think it's a nicer behavior. Now you get all
3369 tradition, but I think it's a nicer behavior. Now you get all
3366 possible completions listed, from all possible namespaces (python,
3370 possible completions listed, from all possible namespaces (python,
3367 filesystem, magics...) After a request by John Hunter
3371 filesystem, magics...) After a request by John Hunter
3368 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3372 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3369
3373
3370 2005-02-05 Fernando Perez <fperez@colorado.edu>
3374 2005-02-05 Fernando Perez <fperez@colorado.edu>
3371
3375
3372 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3376 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3373 the call had quote characters in it (the quotes were stripped).
3377 the call had quote characters in it (the quotes were stripped).
3374
3378
3375 2005-01-31 Fernando Perez <fperez@colorado.edu>
3379 2005-01-31 Fernando Perez <fperez@colorado.edu>
3376
3380
3377 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3381 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3378 Itpl.itpl() to make the code more robust against psyco
3382 Itpl.itpl() to make the code more robust against psyco
3379 optimizations.
3383 optimizations.
3380
3384
3381 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3385 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3382 of causing an exception. Quicker, cleaner.
3386 of causing an exception. Quicker, cleaner.
3383
3387
3384 2005-01-28 Fernando Perez <fperez@colorado.edu>
3388 2005-01-28 Fernando Perez <fperez@colorado.edu>
3385
3389
3386 * scripts/ipython_win_post_install.py (install): hardcode
3390 * scripts/ipython_win_post_install.py (install): hardcode
3387 sys.prefix+'python.exe' as the executable path. It turns out that
3391 sys.prefix+'python.exe' as the executable path. It turns out that
3388 during the post-installation run, sys.executable resolves to the
3392 during the post-installation run, sys.executable resolves to the
3389 name of the binary installer! I should report this as a distutils
3393 name of the binary installer! I should report this as a distutils
3390 bug, I think. I updated the .10 release with this tiny fix, to
3394 bug, I think. I updated the .10 release with this tiny fix, to
3391 avoid annoying the lists further.
3395 avoid annoying the lists further.
3392
3396
3393 2005-01-27 *** Released version 0.6.10
3397 2005-01-27 *** Released version 0.6.10
3394
3398
3395 2005-01-27 Fernando Perez <fperez@colorado.edu>
3399 2005-01-27 Fernando Perez <fperez@colorado.edu>
3396
3400
3397 * IPython/numutils.py (norm): Added 'inf' as optional name for
3401 * IPython/numutils.py (norm): Added 'inf' as optional name for
3398 L-infinity norm, included references to mathworld.com for vector
3402 L-infinity norm, included references to mathworld.com for vector
3399 norm definitions.
3403 norm definitions.
3400 (amin/amax): added amin/amax for array min/max. Similar to what
3404 (amin/amax): added amin/amax for array min/max. Similar to what
3401 pylab ships with after the recent reorganization of names.
3405 pylab ships with after the recent reorganization of names.
3402 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3406 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3403
3407
3404 * ipython.el: committed Alex's recent fixes and improvements.
3408 * ipython.el: committed Alex's recent fixes and improvements.
3405 Tested with python-mode from CVS, and it looks excellent. Since
3409 Tested with python-mode from CVS, and it looks excellent. Since
3406 python-mode hasn't released anything in a while, I'm temporarily
3410 python-mode hasn't released anything in a while, I'm temporarily
3407 putting a copy of today's CVS (v 4.70) of python-mode in:
3411 putting a copy of today's CVS (v 4.70) of python-mode in:
3408 http://ipython.scipy.org/tmp/python-mode.el
3412 http://ipython.scipy.org/tmp/python-mode.el
3409
3413
3410 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3414 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3411 sys.executable for the executable name, instead of assuming it's
3415 sys.executable for the executable name, instead of assuming it's
3412 called 'python.exe' (the post-installer would have produced broken
3416 called 'python.exe' (the post-installer would have produced broken
3413 setups on systems with a differently named python binary).
3417 setups on systems with a differently named python binary).
3414
3418
3415 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3419 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3416 references to os.linesep, to make the code more
3420 references to os.linesep, to make the code more
3417 platform-independent. This is also part of the win32 coloring
3421 platform-independent. This is also part of the win32 coloring
3418 fixes.
3422 fixes.
3419
3423
3420 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3424 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3421 lines, which actually cause coloring bugs because the length of
3425 lines, which actually cause coloring bugs because the length of
3422 the line is very difficult to correctly compute with embedded
3426 the line is very difficult to correctly compute with embedded
3423 escapes. This was the source of all the coloring problems under
3427 escapes. This was the source of all the coloring problems under
3424 Win32. I think that _finally_, Win32 users have a properly
3428 Win32. I think that _finally_, Win32 users have a properly
3425 working ipython in all respects. This would never have happened
3429 working ipython in all respects. This would never have happened
3426 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3430 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3427
3431
3428 2005-01-26 *** Released version 0.6.9
3432 2005-01-26 *** Released version 0.6.9
3429
3433
3430 2005-01-25 Fernando Perez <fperez@colorado.edu>
3434 2005-01-25 Fernando Perez <fperez@colorado.edu>
3431
3435
3432 * setup.py: finally, we have a true Windows installer, thanks to
3436 * setup.py: finally, we have a true Windows installer, thanks to
3433 the excellent work of Viktor Ransmayr
3437 the excellent work of Viktor Ransmayr
3434 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3438 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3435 Windows users. The setup routine is quite a bit cleaner thanks to
3439 Windows users. The setup routine is quite a bit cleaner thanks to
3436 this, and the post-install script uses the proper functions to
3440 this, and the post-install script uses the proper functions to
3437 allow a clean de-installation using the standard Windows Control
3441 allow a clean de-installation using the standard Windows Control
3438 Panel.
3442 Panel.
3439
3443
3440 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3444 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3441 environment variable under all OSes (including win32) if
3445 environment variable under all OSes (including win32) if
3442 available. This will give consistency to win32 users who have set
3446 available. This will give consistency to win32 users who have set
3443 this variable for any reason. If os.environ['HOME'] fails, the
3447 this variable for any reason. If os.environ['HOME'] fails, the
3444 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3448 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3445
3449
3446 2005-01-24 Fernando Perez <fperez@colorado.edu>
3450 2005-01-24 Fernando Perez <fperez@colorado.edu>
3447
3451
3448 * IPython/numutils.py (empty_like): add empty_like(), similar to
3452 * IPython/numutils.py (empty_like): add empty_like(), similar to
3449 zeros_like() but taking advantage of the new empty() Numeric routine.
3453 zeros_like() but taking advantage of the new empty() Numeric routine.
3450
3454
3451 2005-01-23 *** Released version 0.6.8
3455 2005-01-23 *** Released version 0.6.8
3452
3456
3453 2005-01-22 Fernando Perez <fperez@colorado.edu>
3457 2005-01-22 Fernando Perez <fperez@colorado.edu>
3454
3458
3455 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3459 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3456 automatic show() calls. After discussing things with JDH, it
3460 automatic show() calls. After discussing things with JDH, it
3457 turns out there are too many corner cases where this can go wrong.
3461 turns out there are too many corner cases where this can go wrong.
3458 It's best not to try to be 'too smart', and simply have ipython
3462 It's best not to try to be 'too smart', and simply have ipython
3459 reproduce as much as possible the default behavior of a normal
3463 reproduce as much as possible the default behavior of a normal
3460 python shell.
3464 python shell.
3461
3465
3462 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3466 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3463 line-splitting regexp and _prefilter() to avoid calling getattr()
3467 line-splitting regexp and _prefilter() to avoid calling getattr()
3464 on assignments. This closes
3468 on assignments. This closes
3465 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3469 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3466 readline uses getattr(), so a simple <TAB> keypress is still
3470 readline uses getattr(), so a simple <TAB> keypress is still
3467 enough to trigger getattr() calls on an object.
3471 enough to trigger getattr() calls on an object.
3468
3472
3469 2005-01-21 Fernando Perez <fperez@colorado.edu>
3473 2005-01-21 Fernando Perez <fperez@colorado.edu>
3470
3474
3471 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3475 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3472 docstring under pylab so it doesn't mask the original.
3476 docstring under pylab so it doesn't mask the original.
3473
3477
3474 2005-01-21 *** Released version 0.6.7
3478 2005-01-21 *** Released version 0.6.7
3475
3479
3476 2005-01-21 Fernando Perez <fperez@colorado.edu>
3480 2005-01-21 Fernando Perez <fperez@colorado.edu>
3477
3481
3478 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3482 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3479 signal handling for win32 users in multithreaded mode.
3483 signal handling for win32 users in multithreaded mode.
3480
3484
3481 2005-01-17 Fernando Perez <fperez@colorado.edu>
3485 2005-01-17 Fernando Perez <fperez@colorado.edu>
3482
3486
3483 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3487 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3484 instances with no __init__. After a crash report by Norbert Nemec
3488 instances with no __init__. After a crash report by Norbert Nemec
3485 <Norbert-AT-nemec-online.de>.
3489 <Norbert-AT-nemec-online.de>.
3486
3490
3487 2005-01-14 Fernando Perez <fperez@colorado.edu>
3491 2005-01-14 Fernando Perez <fperez@colorado.edu>
3488
3492
3489 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3493 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3490 names for verbose exceptions, when multiple dotted names and the
3494 names for verbose exceptions, when multiple dotted names and the
3491 'parent' object were present on the same line.
3495 'parent' object were present on the same line.
3492
3496
3493 2005-01-11 Fernando Perez <fperez@colorado.edu>
3497 2005-01-11 Fernando Perez <fperez@colorado.edu>
3494
3498
3495 * IPython/genutils.py (flag_calls): new utility to trap and flag
3499 * IPython/genutils.py (flag_calls): new utility to trap and flag
3496 calls in functions. I need it to clean up matplotlib support.
3500 calls in functions. I need it to clean up matplotlib support.
3497 Also removed some deprecated code in genutils.
3501 Also removed some deprecated code in genutils.
3498
3502
3499 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3503 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3500 that matplotlib scripts called with %run, which don't call show()
3504 that matplotlib scripts called with %run, which don't call show()
3501 themselves, still have their plotting windows open.
3505 themselves, still have their plotting windows open.
3502
3506
3503 2005-01-05 Fernando Perez <fperez@colorado.edu>
3507 2005-01-05 Fernando Perez <fperez@colorado.edu>
3504
3508
3505 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3509 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3506 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3510 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3507
3511
3508 2004-12-19 Fernando Perez <fperez@colorado.edu>
3512 2004-12-19 Fernando Perez <fperez@colorado.edu>
3509
3513
3510 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3514 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3511 parent_runcode, which was an eyesore. The same result can be
3515 parent_runcode, which was an eyesore. The same result can be
3512 obtained with Python's regular superclass mechanisms.
3516 obtained with Python's regular superclass mechanisms.
3513
3517
3514 2004-12-17 Fernando Perez <fperez@colorado.edu>
3518 2004-12-17 Fernando Perez <fperez@colorado.edu>
3515
3519
3516 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3520 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3517 reported by Prabhu.
3521 reported by Prabhu.
3518 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3522 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3519 sys.stderr) instead of explicitly calling sys.stderr. This helps
3523 sys.stderr) instead of explicitly calling sys.stderr. This helps
3520 maintain our I/O abstractions clean, for future GUI embeddings.
3524 maintain our I/O abstractions clean, for future GUI embeddings.
3521
3525
3522 * IPython/genutils.py (info): added new utility for sys.stderr
3526 * IPython/genutils.py (info): added new utility for sys.stderr
3523 unified info message handling (thin wrapper around warn()).
3527 unified info message handling (thin wrapper around warn()).
3524
3528
3525 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3529 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3526 composite (dotted) names on verbose exceptions.
3530 composite (dotted) names on verbose exceptions.
3527 (VerboseTB.nullrepr): harden against another kind of errors which
3531 (VerboseTB.nullrepr): harden against another kind of errors which
3528 Python's inspect module can trigger, and which were crashing
3532 Python's inspect module can trigger, and which were crashing
3529 IPython. Thanks to a report by Marco Lombardi
3533 IPython. Thanks to a report by Marco Lombardi
3530 <mlombard-AT-ma010192.hq.eso.org>.
3534 <mlombard-AT-ma010192.hq.eso.org>.
3531
3535
3532 2004-12-13 *** Released version 0.6.6
3536 2004-12-13 *** Released version 0.6.6
3533
3537
3534 2004-12-12 Fernando Perez <fperez@colorado.edu>
3538 2004-12-12 Fernando Perez <fperez@colorado.edu>
3535
3539
3536 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3540 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3537 generated by pygtk upon initialization if it was built without
3541 generated by pygtk upon initialization if it was built without
3538 threads (for matplotlib users). After a crash reported by
3542 threads (for matplotlib users). After a crash reported by
3539 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3543 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3540
3544
3541 * IPython/ipmaker.py (make_IPython): fix small bug in the
3545 * IPython/ipmaker.py (make_IPython): fix small bug in the
3542 import_some parameter for multiple imports.
3546 import_some parameter for multiple imports.
3543
3547
3544 * IPython/iplib.py (ipmagic): simplified the interface of
3548 * IPython/iplib.py (ipmagic): simplified the interface of
3545 ipmagic() to take a single string argument, just as it would be
3549 ipmagic() to take a single string argument, just as it would be
3546 typed at the IPython cmd line.
3550 typed at the IPython cmd line.
3547 (ipalias): Added new ipalias() with an interface identical to
3551 (ipalias): Added new ipalias() with an interface identical to
3548 ipmagic(). This completes exposing a pure python interface to the
3552 ipmagic(). This completes exposing a pure python interface to the
3549 alias and magic system, which can be used in loops or more complex
3553 alias and magic system, which can be used in loops or more complex
3550 code where IPython's automatic line mangling is not active.
3554 code where IPython's automatic line mangling is not active.
3551
3555
3552 * IPython/genutils.py (timing): changed interface of timing to
3556 * IPython/genutils.py (timing): changed interface of timing to
3553 simply run code once, which is the most common case. timings()
3557 simply run code once, which is the most common case. timings()
3554 remains unchanged, for the cases where you want multiple runs.
3558 remains unchanged, for the cases where you want multiple runs.
3555
3559
3556 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3560 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3557 bug where Python2.2 crashes with exec'ing code which does not end
3561 bug where Python2.2 crashes with exec'ing code which does not end
3558 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3562 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3559 before.
3563 before.
3560
3564
3561 2004-12-10 Fernando Perez <fperez@colorado.edu>
3565 2004-12-10 Fernando Perez <fperez@colorado.edu>
3562
3566
3563 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3567 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3564 -t to -T, to accomodate the new -t flag in %run (the %run and
3568 -t to -T, to accomodate the new -t flag in %run (the %run and
3565 %prun options are kind of intermixed, and it's not easy to change
3569 %prun options are kind of intermixed, and it's not easy to change
3566 this with the limitations of python's getopt).
3570 this with the limitations of python's getopt).
3567
3571
3568 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3572 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3569 the execution of scripts. It's not as fine-tuned as timeit.py,
3573 the execution of scripts. It's not as fine-tuned as timeit.py,
3570 but it works from inside ipython (and under 2.2, which lacks
3574 but it works from inside ipython (and under 2.2, which lacks
3571 timeit.py). Optionally a number of runs > 1 can be given for
3575 timeit.py). Optionally a number of runs > 1 can be given for
3572 timing very short-running code.
3576 timing very short-running code.
3573
3577
3574 * IPython/genutils.py (uniq_stable): new routine which returns a
3578 * IPython/genutils.py (uniq_stable): new routine which returns a
3575 list of unique elements in any iterable, but in stable order of
3579 list of unique elements in any iterable, but in stable order of
3576 appearance. I needed this for the ultraTB fixes, and it's a handy
3580 appearance. I needed this for the ultraTB fixes, and it's a handy
3577 utility.
3581 utility.
3578
3582
3579 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3583 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3580 dotted names in Verbose exceptions. This had been broken since
3584 dotted names in Verbose exceptions. This had been broken since
3581 the very start, now x.y will properly be printed in a Verbose
3585 the very start, now x.y will properly be printed in a Verbose
3582 traceback, instead of x being shown and y appearing always as an
3586 traceback, instead of x being shown and y appearing always as an
3583 'undefined global'. Getting this to work was a bit tricky,
3587 'undefined global'. Getting this to work was a bit tricky,
3584 because by default python tokenizers are stateless. Saved by
3588 because by default python tokenizers are stateless. Saved by
3585 python's ability to easily add a bit of state to an arbitrary
3589 python's ability to easily add a bit of state to an arbitrary
3586 function (without needing to build a full-blown callable object).
3590 function (without needing to build a full-blown callable object).
3587
3591
3588 Also big cleanup of this code, which had horrendous runtime
3592 Also big cleanup of this code, which had horrendous runtime
3589 lookups of zillions of attributes for colorization. Moved all
3593 lookups of zillions of attributes for colorization. Moved all
3590 this code into a few templates, which make it cleaner and quicker.
3594 this code into a few templates, which make it cleaner and quicker.
3591
3595
3592 Printout quality was also improved for Verbose exceptions: one
3596 Printout quality was also improved for Verbose exceptions: one
3593 variable per line, and memory addresses are printed (this can be
3597 variable per line, and memory addresses are printed (this can be
3594 quite handy in nasty debugging situations, which is what Verbose
3598 quite handy in nasty debugging situations, which is what Verbose
3595 is for).
3599 is for).
3596
3600
3597 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3601 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3598 the command line as scripts to be loaded by embedded instances.
3602 the command line as scripts to be loaded by embedded instances.
3599 Doing so has the potential for an infinite recursion if there are
3603 Doing so has the potential for an infinite recursion if there are
3600 exceptions thrown in the process. This fixes a strange crash
3604 exceptions thrown in the process. This fixes a strange crash
3601 reported by Philippe MULLER <muller-AT-irit.fr>.
3605 reported by Philippe MULLER <muller-AT-irit.fr>.
3602
3606
3603 2004-12-09 Fernando Perez <fperez@colorado.edu>
3607 2004-12-09 Fernando Perez <fperez@colorado.edu>
3604
3608
3605 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3609 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3606 to reflect new names in matplotlib, which now expose the
3610 to reflect new names in matplotlib, which now expose the
3607 matlab-compatible interface via a pylab module instead of the
3611 matlab-compatible interface via a pylab module instead of the
3608 'matlab' name. The new code is backwards compatible, so users of
3612 'matlab' name. The new code is backwards compatible, so users of
3609 all matplotlib versions are OK. Patch by J. Hunter.
3613 all matplotlib versions are OK. Patch by J. Hunter.
3610
3614
3611 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3615 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3612 of __init__ docstrings for instances (class docstrings are already
3616 of __init__ docstrings for instances (class docstrings are already
3613 automatically printed). Instances with customized docstrings
3617 automatically printed). Instances with customized docstrings
3614 (indep. of the class) are also recognized and all 3 separate
3618 (indep. of the class) are also recognized and all 3 separate
3615 docstrings are printed (instance, class, constructor). After some
3619 docstrings are printed (instance, class, constructor). After some
3616 comments/suggestions by J. Hunter.
3620 comments/suggestions by J. Hunter.
3617
3621
3618 2004-12-05 Fernando Perez <fperez@colorado.edu>
3622 2004-12-05 Fernando Perez <fperez@colorado.edu>
3619
3623
3620 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3624 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3621 warnings when tab-completion fails and triggers an exception.
3625 warnings when tab-completion fails and triggers an exception.
3622
3626
3623 2004-12-03 Fernando Perez <fperez@colorado.edu>
3627 2004-12-03 Fernando Perez <fperez@colorado.edu>
3624
3628
3625 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3629 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3626 be triggered when using 'run -p'. An incorrect option flag was
3630 be triggered when using 'run -p'. An incorrect option flag was
3627 being set ('d' instead of 'D').
3631 being set ('d' instead of 'D').
3628 (manpage): fix missing escaped \- sign.
3632 (manpage): fix missing escaped \- sign.
3629
3633
3630 2004-11-30 *** Released version 0.6.5
3634 2004-11-30 *** Released version 0.6.5
3631
3635
3632 2004-11-30 Fernando Perez <fperez@colorado.edu>
3636 2004-11-30 Fernando Perez <fperez@colorado.edu>
3633
3637
3634 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3638 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3635 setting with -d option.
3639 setting with -d option.
3636
3640
3637 * setup.py (docfiles): Fix problem where the doc glob I was using
3641 * setup.py (docfiles): Fix problem where the doc glob I was using
3638 was COMPLETELY BROKEN. It was giving the right files by pure
3642 was COMPLETELY BROKEN. It was giving the right files by pure
3639 accident, but failed once I tried to include ipython.el. Note:
3643 accident, but failed once I tried to include ipython.el. Note:
3640 glob() does NOT allow you to do exclusion on multiple endings!
3644 glob() does NOT allow you to do exclusion on multiple endings!
3641
3645
3642 2004-11-29 Fernando Perez <fperez@colorado.edu>
3646 2004-11-29 Fernando Perez <fperez@colorado.edu>
3643
3647
3644 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3648 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3645 the manpage as the source. Better formatting & consistency.
3649 the manpage as the source. Better formatting & consistency.
3646
3650
3647 * IPython/Magic.py (magic_run): Added new -d option, to run
3651 * IPython/Magic.py (magic_run): Added new -d option, to run
3648 scripts under the control of the python pdb debugger. Note that
3652 scripts under the control of the python pdb debugger. Note that
3649 this required changing the %prun option -d to -D, to avoid a clash
3653 this required changing the %prun option -d to -D, to avoid a clash
3650 (since %run must pass options to %prun, and getopt is too dumb to
3654 (since %run must pass options to %prun, and getopt is too dumb to
3651 handle options with string values with embedded spaces). Thanks
3655 handle options with string values with embedded spaces). Thanks
3652 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3656 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3653 (magic_who_ls): added type matching to %who and %whos, so that one
3657 (magic_who_ls): added type matching to %who and %whos, so that one
3654 can filter their output to only include variables of certain
3658 can filter their output to only include variables of certain
3655 types. Another suggestion by Matthew.
3659 types. Another suggestion by Matthew.
3656 (magic_whos): Added memory summaries in kb and Mb for arrays.
3660 (magic_whos): Added memory summaries in kb and Mb for arrays.
3657 (magic_who): Improve formatting (break lines every 9 vars).
3661 (magic_who): Improve formatting (break lines every 9 vars).
3658
3662
3659 2004-11-28 Fernando Perez <fperez@colorado.edu>
3663 2004-11-28 Fernando Perez <fperez@colorado.edu>
3660
3664
3661 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3665 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3662 cache when empty lines were present.
3666 cache when empty lines were present.
3663
3667
3664 2004-11-24 Fernando Perez <fperez@colorado.edu>
3668 2004-11-24 Fernando Perez <fperez@colorado.edu>
3665
3669
3666 * IPython/usage.py (__doc__): document the re-activated threading
3670 * IPython/usage.py (__doc__): document the re-activated threading
3667 options for WX and GTK.
3671 options for WX and GTK.
3668
3672
3669 2004-11-23 Fernando Perez <fperez@colorado.edu>
3673 2004-11-23 Fernando Perez <fperez@colorado.edu>
3670
3674
3671 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3675 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3672 the -wthread and -gthread options, along with a new -tk one to try
3676 the -wthread and -gthread options, along with a new -tk one to try
3673 and coordinate Tk threading with wx/gtk. The tk support is very
3677 and coordinate Tk threading with wx/gtk. The tk support is very
3674 platform dependent, since it seems to require Tcl and Tk to be
3678 platform dependent, since it seems to require Tcl and Tk to be
3675 built with threads (Fedora1/2 appears NOT to have it, but in
3679 built with threads (Fedora1/2 appears NOT to have it, but in
3676 Prabhu's Debian boxes it works OK). But even with some Tk
3680 Prabhu's Debian boxes it works OK). But even with some Tk
3677 limitations, this is a great improvement.
3681 limitations, this is a great improvement.
3678
3682
3679 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3683 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3680 info in user prompts. Patch by Prabhu.
3684 info in user prompts. Patch by Prabhu.
3681
3685
3682 2004-11-18 Fernando Perez <fperez@colorado.edu>
3686 2004-11-18 Fernando Perez <fperez@colorado.edu>
3683
3687
3684 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3688 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3685 EOFErrors and bail, to avoid infinite loops if a non-terminating
3689 EOFErrors and bail, to avoid infinite loops if a non-terminating
3686 file is fed into ipython. Patch submitted in issue 19 by user,
3690 file is fed into ipython. Patch submitted in issue 19 by user,
3687 many thanks.
3691 many thanks.
3688
3692
3689 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3693 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3690 autoquote/parens in continuation prompts, which can cause lots of
3694 autoquote/parens in continuation prompts, which can cause lots of
3691 problems. Closes roundup issue 20.
3695 problems. Closes roundup issue 20.
3692
3696
3693 2004-11-17 Fernando Perez <fperez@colorado.edu>
3697 2004-11-17 Fernando Perez <fperez@colorado.edu>
3694
3698
3695 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3699 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3696 reported as debian bug #280505. I'm not sure my local changelog
3700 reported as debian bug #280505. I'm not sure my local changelog
3697 entry has the proper debian format (Jack?).
3701 entry has the proper debian format (Jack?).
3698
3702
3699 2004-11-08 *** Released version 0.6.4
3703 2004-11-08 *** Released version 0.6.4
3700
3704
3701 2004-11-08 Fernando Perez <fperez@colorado.edu>
3705 2004-11-08 Fernando Perez <fperez@colorado.edu>
3702
3706
3703 * IPython/iplib.py (init_readline): Fix exit message for Windows
3707 * IPython/iplib.py (init_readline): Fix exit message for Windows
3704 when readline is active. Thanks to a report by Eric Jones
3708 when readline is active. Thanks to a report by Eric Jones
3705 <eric-AT-enthought.com>.
3709 <eric-AT-enthought.com>.
3706
3710
3707 2004-11-07 Fernando Perez <fperez@colorado.edu>
3711 2004-11-07 Fernando Perez <fperez@colorado.edu>
3708
3712
3709 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3713 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3710 sometimes seen by win2k/cygwin users.
3714 sometimes seen by win2k/cygwin users.
3711
3715
3712 2004-11-06 Fernando Perez <fperez@colorado.edu>
3716 2004-11-06 Fernando Perez <fperez@colorado.edu>
3713
3717
3714 * IPython/iplib.py (interact): Change the handling of %Exit from
3718 * IPython/iplib.py (interact): Change the handling of %Exit from
3715 trying to propagate a SystemExit to an internal ipython flag.
3719 trying to propagate a SystemExit to an internal ipython flag.
3716 This is less elegant than using Python's exception mechanism, but
3720 This is less elegant than using Python's exception mechanism, but
3717 I can't get that to work reliably with threads, so under -pylab
3721 I can't get that to work reliably with threads, so under -pylab
3718 %Exit was hanging IPython. Cross-thread exception handling is
3722 %Exit was hanging IPython. Cross-thread exception handling is
3719 really a bitch. Thaks to a bug report by Stephen Walton
3723 really a bitch. Thaks to a bug report by Stephen Walton
3720 <stephen.walton-AT-csun.edu>.
3724 <stephen.walton-AT-csun.edu>.
3721
3725
3722 2004-11-04 Fernando Perez <fperez@colorado.edu>
3726 2004-11-04 Fernando Perez <fperez@colorado.edu>
3723
3727
3724 * IPython/iplib.py (raw_input_original): store a pointer to the
3728 * IPython/iplib.py (raw_input_original): store a pointer to the
3725 true raw_input to harden against code which can modify it
3729 true raw_input to harden against code which can modify it
3726 (wx.py.PyShell does this and would otherwise crash ipython).
3730 (wx.py.PyShell does this and would otherwise crash ipython).
3727 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3731 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3728
3732
3729 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3733 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3730 Ctrl-C problem, which does not mess up the input line.
3734 Ctrl-C problem, which does not mess up the input line.
3731
3735
3732 2004-11-03 Fernando Perez <fperez@colorado.edu>
3736 2004-11-03 Fernando Perez <fperez@colorado.edu>
3733
3737
3734 * IPython/Release.py: Changed licensing to BSD, in all files.
3738 * IPython/Release.py: Changed licensing to BSD, in all files.
3735 (name): lowercase name for tarball/RPM release.
3739 (name): lowercase name for tarball/RPM release.
3736
3740
3737 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3741 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3738 use throughout ipython.
3742 use throughout ipython.
3739
3743
3740 * IPython/Magic.py (Magic._ofind): Switch to using the new
3744 * IPython/Magic.py (Magic._ofind): Switch to using the new
3741 OInspect.getdoc() function.
3745 OInspect.getdoc() function.
3742
3746
3743 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3747 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3744 of the line currently being canceled via Ctrl-C. It's extremely
3748 of the line currently being canceled via Ctrl-C. It's extremely
3745 ugly, but I don't know how to do it better (the problem is one of
3749 ugly, but I don't know how to do it better (the problem is one of
3746 handling cross-thread exceptions).
3750 handling cross-thread exceptions).
3747
3751
3748 2004-10-28 Fernando Perez <fperez@colorado.edu>
3752 2004-10-28 Fernando Perez <fperez@colorado.edu>
3749
3753
3750 * IPython/Shell.py (signal_handler): add signal handlers to trap
3754 * IPython/Shell.py (signal_handler): add signal handlers to trap
3751 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3755 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3752 report by Francesc Alted.
3756 report by Francesc Alted.
3753
3757
3754 2004-10-21 Fernando Perez <fperez@colorado.edu>
3758 2004-10-21 Fernando Perez <fperez@colorado.edu>
3755
3759
3756 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3760 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3757 to % for pysh syntax extensions.
3761 to % for pysh syntax extensions.
3758
3762
3759 2004-10-09 Fernando Perez <fperez@colorado.edu>
3763 2004-10-09 Fernando Perez <fperez@colorado.edu>
3760
3764
3761 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3765 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3762 arrays to print a more useful summary, without calling str(arr).
3766 arrays to print a more useful summary, without calling str(arr).
3763 This avoids the problem of extremely lengthy computations which
3767 This avoids the problem of extremely lengthy computations which
3764 occur if arr is large, and appear to the user as a system lockup
3768 occur if arr is large, and appear to the user as a system lockup
3765 with 100% cpu activity. After a suggestion by Kristian Sandberg
3769 with 100% cpu activity. After a suggestion by Kristian Sandberg
3766 <Kristian.Sandberg@colorado.edu>.
3770 <Kristian.Sandberg@colorado.edu>.
3767 (Magic.__init__): fix bug in global magic escapes not being
3771 (Magic.__init__): fix bug in global magic escapes not being
3768 correctly set.
3772 correctly set.
3769
3773
3770 2004-10-08 Fernando Perez <fperez@colorado.edu>
3774 2004-10-08 Fernando Perez <fperez@colorado.edu>
3771
3775
3772 * IPython/Magic.py (__license__): change to absolute imports of
3776 * IPython/Magic.py (__license__): change to absolute imports of
3773 ipython's own internal packages, to start adapting to the absolute
3777 ipython's own internal packages, to start adapting to the absolute
3774 import requirement of PEP-328.
3778 import requirement of PEP-328.
3775
3779
3776 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3780 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3777 files, and standardize author/license marks through the Release
3781 files, and standardize author/license marks through the Release
3778 module instead of having per/file stuff (except for files with
3782 module instead of having per/file stuff (except for files with
3779 particular licenses, like the MIT/PSF-licensed codes).
3783 particular licenses, like the MIT/PSF-licensed codes).
3780
3784
3781 * IPython/Debugger.py: remove dead code for python 2.1
3785 * IPython/Debugger.py: remove dead code for python 2.1
3782
3786
3783 2004-10-04 Fernando Perez <fperez@colorado.edu>
3787 2004-10-04 Fernando Perez <fperez@colorado.edu>
3784
3788
3785 * IPython/iplib.py (ipmagic): New function for accessing magics
3789 * IPython/iplib.py (ipmagic): New function for accessing magics
3786 via a normal python function call.
3790 via a normal python function call.
3787
3791
3788 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3792 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3789 from '@' to '%', to accomodate the new @decorator syntax of python
3793 from '@' to '%', to accomodate the new @decorator syntax of python
3790 2.4.
3794 2.4.
3791
3795
3792 2004-09-29 Fernando Perez <fperez@colorado.edu>
3796 2004-09-29 Fernando Perez <fperez@colorado.edu>
3793
3797
3794 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3798 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3795 matplotlib.use to prevent running scripts which try to switch
3799 matplotlib.use to prevent running scripts which try to switch
3796 interactive backends from within ipython. This will just crash
3800 interactive backends from within ipython. This will just crash
3797 the python interpreter, so we can't allow it (but a detailed error
3801 the python interpreter, so we can't allow it (but a detailed error
3798 is given to the user).
3802 is given to the user).
3799
3803
3800 2004-09-28 Fernando Perez <fperez@colorado.edu>
3804 2004-09-28 Fernando Perez <fperez@colorado.edu>
3801
3805
3802 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3806 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3803 matplotlib-related fixes so that using @run with non-matplotlib
3807 matplotlib-related fixes so that using @run with non-matplotlib
3804 scripts doesn't pop up spurious plot windows. This requires
3808 scripts doesn't pop up spurious plot windows. This requires
3805 matplotlib >= 0.63, where I had to make some changes as well.
3809 matplotlib >= 0.63, where I had to make some changes as well.
3806
3810
3807 * IPython/ipmaker.py (make_IPython): update version requirement to
3811 * IPython/ipmaker.py (make_IPython): update version requirement to
3808 python 2.2.
3812 python 2.2.
3809
3813
3810 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3814 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3811 banner arg for embedded customization.
3815 banner arg for embedded customization.
3812
3816
3813 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3817 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3814 explicit uses of __IP as the IPython's instance name. Now things
3818 explicit uses of __IP as the IPython's instance name. Now things
3815 are properly handled via the shell.name value. The actual code
3819 are properly handled via the shell.name value. The actual code
3816 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3820 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3817 is much better than before. I'll clean things completely when the
3821 is much better than before. I'll clean things completely when the
3818 magic stuff gets a real overhaul.
3822 magic stuff gets a real overhaul.
3819
3823
3820 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3824 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3821 minor changes to debian dir.
3825 minor changes to debian dir.
3822
3826
3823 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3827 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3824 pointer to the shell itself in the interactive namespace even when
3828 pointer to the shell itself in the interactive namespace even when
3825 a user-supplied dict is provided. This is needed for embedding
3829 a user-supplied dict is provided. This is needed for embedding
3826 purposes (found by tests with Michel Sanner).
3830 purposes (found by tests with Michel Sanner).
3827
3831
3828 2004-09-27 Fernando Perez <fperez@colorado.edu>
3832 2004-09-27 Fernando Perez <fperez@colorado.edu>
3829
3833
3830 * IPython/UserConfig/ipythonrc: remove []{} from
3834 * IPython/UserConfig/ipythonrc: remove []{} from
3831 readline_remove_delims, so that things like [modname.<TAB> do
3835 readline_remove_delims, so that things like [modname.<TAB> do
3832 proper completion. This disables [].TAB, but that's a less common
3836 proper completion. This disables [].TAB, but that's a less common
3833 case than module names in list comprehensions, for example.
3837 case than module names in list comprehensions, for example.
3834 Thanks to a report by Andrea Riciputi.
3838 Thanks to a report by Andrea Riciputi.
3835
3839
3836 2004-09-09 Fernando Perez <fperez@colorado.edu>
3840 2004-09-09 Fernando Perez <fperez@colorado.edu>
3837
3841
3838 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3842 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3839 blocking problems in win32 and osx. Fix by John.
3843 blocking problems in win32 and osx. Fix by John.
3840
3844
3841 2004-09-08 Fernando Perez <fperez@colorado.edu>
3845 2004-09-08 Fernando Perez <fperez@colorado.edu>
3842
3846
3843 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3847 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3844 for Win32 and OSX. Fix by John Hunter.
3848 for Win32 and OSX. Fix by John Hunter.
3845
3849
3846 2004-08-30 *** Released version 0.6.3
3850 2004-08-30 *** Released version 0.6.3
3847
3851
3848 2004-08-30 Fernando Perez <fperez@colorado.edu>
3852 2004-08-30 Fernando Perez <fperez@colorado.edu>
3849
3853
3850 * setup.py (isfile): Add manpages to list of dependent files to be
3854 * setup.py (isfile): Add manpages to list of dependent files to be
3851 updated.
3855 updated.
3852
3856
3853 2004-08-27 Fernando Perez <fperez@colorado.edu>
3857 2004-08-27 Fernando Perez <fperez@colorado.edu>
3854
3858
3855 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3859 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3856 for now. They don't really work with standalone WX/GTK code
3860 for now. They don't really work with standalone WX/GTK code
3857 (though matplotlib IS working fine with both of those backends).
3861 (though matplotlib IS working fine with both of those backends).
3858 This will neeed much more testing. I disabled most things with
3862 This will neeed much more testing. I disabled most things with
3859 comments, so turning it back on later should be pretty easy.
3863 comments, so turning it back on later should be pretty easy.
3860
3864
3861 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3865 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3862 autocalling of expressions like r'foo', by modifying the line
3866 autocalling of expressions like r'foo', by modifying the line
3863 split regexp. Closes
3867 split regexp. Closes
3864 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3868 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3865 Riley <ipythonbugs-AT-sabi.net>.
3869 Riley <ipythonbugs-AT-sabi.net>.
3866 (InteractiveShell.mainloop): honor --nobanner with banner
3870 (InteractiveShell.mainloop): honor --nobanner with banner
3867 extensions.
3871 extensions.
3868
3872
3869 * IPython/Shell.py: Significant refactoring of all classes, so
3873 * IPython/Shell.py: Significant refactoring of all classes, so
3870 that we can really support ALL matplotlib backends and threading
3874 that we can really support ALL matplotlib backends and threading
3871 models (John spotted a bug with Tk which required this). Now we
3875 models (John spotted a bug with Tk which required this). Now we
3872 should support single-threaded, WX-threads and GTK-threads, both
3876 should support single-threaded, WX-threads and GTK-threads, both
3873 for generic code and for matplotlib.
3877 for generic code and for matplotlib.
3874
3878
3875 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3879 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3876 -pylab, to simplify things for users. Will also remove the pylab
3880 -pylab, to simplify things for users. Will also remove the pylab
3877 profile, since now all of matplotlib configuration is directly
3881 profile, since now all of matplotlib configuration is directly
3878 handled here. This also reduces startup time.
3882 handled here. This also reduces startup time.
3879
3883
3880 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3884 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3881 shell wasn't being correctly called. Also in IPShellWX.
3885 shell wasn't being correctly called. Also in IPShellWX.
3882
3886
3883 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3887 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3884 fine-tune banner.
3888 fine-tune banner.
3885
3889
3886 * IPython/numutils.py (spike): Deprecate these spike functions,
3890 * IPython/numutils.py (spike): Deprecate these spike functions,
3887 delete (long deprecated) gnuplot_exec handler.
3891 delete (long deprecated) gnuplot_exec handler.
3888
3892
3889 2004-08-26 Fernando Perez <fperez@colorado.edu>
3893 2004-08-26 Fernando Perez <fperez@colorado.edu>
3890
3894
3891 * ipython.1: Update for threading options, plus some others which
3895 * ipython.1: Update for threading options, plus some others which
3892 were missing.
3896 were missing.
3893
3897
3894 * IPython/ipmaker.py (__call__): Added -wthread option for
3898 * IPython/ipmaker.py (__call__): Added -wthread option for
3895 wxpython thread handling. Make sure threading options are only
3899 wxpython thread handling. Make sure threading options are only
3896 valid at the command line.
3900 valid at the command line.
3897
3901
3898 * scripts/ipython: moved shell selection into a factory function
3902 * scripts/ipython: moved shell selection into a factory function
3899 in Shell.py, to keep the starter script to a minimum.
3903 in Shell.py, to keep the starter script to a minimum.
3900
3904
3901 2004-08-25 Fernando Perez <fperez@colorado.edu>
3905 2004-08-25 Fernando Perez <fperez@colorado.edu>
3902
3906
3903 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3907 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3904 John. Along with some recent changes he made to matplotlib, the
3908 John. Along with some recent changes he made to matplotlib, the
3905 next versions of both systems should work very well together.
3909 next versions of both systems should work very well together.
3906
3910
3907 2004-08-24 Fernando Perez <fperez@colorado.edu>
3911 2004-08-24 Fernando Perez <fperez@colorado.edu>
3908
3912
3909 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3913 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3910 tried to switch the profiling to using hotshot, but I'm getting
3914 tried to switch the profiling to using hotshot, but I'm getting
3911 strange errors from prof.runctx() there. I may be misreading the
3915 strange errors from prof.runctx() there. I may be misreading the
3912 docs, but it looks weird. For now the profiling code will
3916 docs, but it looks weird. For now the profiling code will
3913 continue to use the standard profiler.
3917 continue to use the standard profiler.
3914
3918
3915 2004-08-23 Fernando Perez <fperez@colorado.edu>
3919 2004-08-23 Fernando Perez <fperez@colorado.edu>
3916
3920
3917 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3921 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3918 threaded shell, by John Hunter. It's not quite ready yet, but
3922 threaded shell, by John Hunter. It's not quite ready yet, but
3919 close.
3923 close.
3920
3924
3921 2004-08-22 Fernando Perez <fperez@colorado.edu>
3925 2004-08-22 Fernando Perez <fperez@colorado.edu>
3922
3926
3923 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3927 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3924 in Magic and ultraTB.
3928 in Magic and ultraTB.
3925
3929
3926 * ipython.1: document threading options in manpage.
3930 * ipython.1: document threading options in manpage.
3927
3931
3928 * scripts/ipython: Changed name of -thread option to -gthread,
3932 * scripts/ipython: Changed name of -thread option to -gthread,
3929 since this is GTK specific. I want to leave the door open for a
3933 since this is GTK specific. I want to leave the door open for a
3930 -wthread option for WX, which will most likely be necessary. This
3934 -wthread option for WX, which will most likely be necessary. This
3931 change affects usage and ipmaker as well.
3935 change affects usage and ipmaker as well.
3932
3936
3933 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3937 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3934 handle the matplotlib shell issues. Code by John Hunter
3938 handle the matplotlib shell issues. Code by John Hunter
3935 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3939 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3936 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3940 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3937 broken (and disabled for end users) for now, but it puts the
3941 broken (and disabled for end users) for now, but it puts the
3938 infrastructure in place.
3942 infrastructure in place.
3939
3943
3940 2004-08-21 Fernando Perez <fperez@colorado.edu>
3944 2004-08-21 Fernando Perez <fperez@colorado.edu>
3941
3945
3942 * ipythonrc-pylab: Add matplotlib support.
3946 * ipythonrc-pylab: Add matplotlib support.
3943
3947
3944 * matplotlib_config.py: new files for matplotlib support, part of
3948 * matplotlib_config.py: new files for matplotlib support, part of
3945 the pylab profile.
3949 the pylab profile.
3946
3950
3947 * IPython/usage.py (__doc__): documented the threading options.
3951 * IPython/usage.py (__doc__): documented the threading options.
3948
3952
3949 2004-08-20 Fernando Perez <fperez@colorado.edu>
3953 2004-08-20 Fernando Perez <fperez@colorado.edu>
3950
3954
3951 * ipython: Modified the main calling routine to handle the -thread
3955 * ipython: Modified the main calling routine to handle the -thread
3952 and -mpthread options. This needs to be done as a top-level hack,
3956 and -mpthread options. This needs to be done as a top-level hack,
3953 because it determines which class to instantiate for IPython
3957 because it determines which class to instantiate for IPython
3954 itself.
3958 itself.
3955
3959
3956 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3960 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3957 classes to support multithreaded GTK operation without blocking,
3961 classes to support multithreaded GTK operation without blocking,
3958 and matplotlib with all backends. This is a lot of still very
3962 and matplotlib with all backends. This is a lot of still very
3959 experimental code, and threads are tricky. So it may still have a
3963 experimental code, and threads are tricky. So it may still have a
3960 few rough edges... This code owes a lot to
3964 few rough edges... This code owes a lot to
3961 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3965 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3962 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3966 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3963 to John Hunter for all the matplotlib work.
3967 to John Hunter for all the matplotlib work.
3964
3968
3965 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3969 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3966 options for gtk thread and matplotlib support.
3970 options for gtk thread and matplotlib support.
3967
3971
3968 2004-08-16 Fernando Perez <fperez@colorado.edu>
3972 2004-08-16 Fernando Perez <fperez@colorado.edu>
3969
3973
3970 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3974 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3971 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3975 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3972 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3976 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3973
3977
3974 2004-08-11 Fernando Perez <fperez@colorado.edu>
3978 2004-08-11 Fernando Perez <fperez@colorado.edu>
3975
3979
3976 * setup.py (isfile): Fix build so documentation gets updated for
3980 * setup.py (isfile): Fix build so documentation gets updated for
3977 rpms (it was only done for .tgz builds).
3981 rpms (it was only done for .tgz builds).
3978
3982
3979 2004-08-10 Fernando Perez <fperez@colorado.edu>
3983 2004-08-10 Fernando Perez <fperez@colorado.edu>
3980
3984
3981 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3985 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3982
3986
3983 * iplib.py : Silence syntax error exceptions in tab-completion.
3987 * iplib.py : Silence syntax error exceptions in tab-completion.
3984
3988
3985 2004-08-05 Fernando Perez <fperez@colorado.edu>
3989 2004-08-05 Fernando Perez <fperez@colorado.edu>
3986
3990
3987 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3991 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3988 'color off' mark for continuation prompts. This was causing long
3992 'color off' mark for continuation prompts. This was causing long
3989 continuation lines to mis-wrap.
3993 continuation lines to mis-wrap.
3990
3994
3991 2004-08-01 Fernando Perez <fperez@colorado.edu>
3995 2004-08-01 Fernando Perez <fperez@colorado.edu>
3992
3996
3993 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3997 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3994 for building ipython to be a parameter. All this is necessary
3998 for building ipython to be a parameter. All this is necessary
3995 right now to have a multithreaded version, but this insane
3999 right now to have a multithreaded version, but this insane
3996 non-design will be cleaned up soon. For now, it's a hack that
4000 non-design will be cleaned up soon. For now, it's a hack that
3997 works.
4001 works.
3998
4002
3999 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
4003 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
4000 args in various places. No bugs so far, but it's a dangerous
4004 args in various places. No bugs so far, but it's a dangerous
4001 practice.
4005 practice.
4002
4006
4003 2004-07-31 Fernando Perez <fperez@colorado.edu>
4007 2004-07-31 Fernando Perez <fperez@colorado.edu>
4004
4008
4005 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
4009 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
4006 fix completion of files with dots in their names under most
4010 fix completion of files with dots in their names under most
4007 profiles (pysh was OK because the completion order is different).
4011 profiles (pysh was OK because the completion order is different).
4008
4012
4009 2004-07-27 Fernando Perez <fperez@colorado.edu>
4013 2004-07-27 Fernando Perez <fperez@colorado.edu>
4010
4014
4011 * IPython/iplib.py (InteractiveShell.__init__): build dict of
4015 * IPython/iplib.py (InteractiveShell.__init__): build dict of
4012 keywords manually, b/c the one in keyword.py was removed in python
4016 keywords manually, b/c the one in keyword.py was removed in python
4013 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
4017 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
4014 This is NOT a bug under python 2.3 and earlier.
4018 This is NOT a bug under python 2.3 and earlier.
4015
4019
4016 2004-07-26 Fernando Perez <fperez@colorado.edu>
4020 2004-07-26 Fernando Perez <fperez@colorado.edu>
4017
4021
4018 * IPython/ultraTB.py (VerboseTB.text): Add another
4022 * IPython/ultraTB.py (VerboseTB.text): Add another
4019 linecache.checkcache() call to try to prevent inspect.py from
4023 linecache.checkcache() call to try to prevent inspect.py from
4020 crashing under python 2.3. I think this fixes
4024 crashing under python 2.3. I think this fixes
4021 http://www.scipy.net/roundup/ipython/issue17.
4025 http://www.scipy.net/roundup/ipython/issue17.
4022
4026
4023 2004-07-26 *** Released version 0.6.2
4027 2004-07-26 *** Released version 0.6.2
4024
4028
4025 2004-07-26 Fernando Perez <fperez@colorado.edu>
4029 2004-07-26 Fernando Perez <fperez@colorado.edu>
4026
4030
4027 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
4031 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
4028 fail for any number.
4032 fail for any number.
4029 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
4033 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
4030 empty bookmarks.
4034 empty bookmarks.
4031
4035
4032 2004-07-26 *** Released version 0.6.1
4036 2004-07-26 *** Released version 0.6.1
4033
4037
4034 2004-07-26 Fernando Perez <fperez@colorado.edu>
4038 2004-07-26 Fernando Perez <fperez@colorado.edu>
4035
4039
4036 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
4040 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
4037
4041
4038 * IPython/iplib.py (protect_filename): Applied Ville's patch for
4042 * IPython/iplib.py (protect_filename): Applied Ville's patch for
4039 escaping '()[]{}' in filenames.
4043 escaping '()[]{}' in filenames.
4040
4044
4041 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
4045 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
4042 Python 2.2 users who lack a proper shlex.split.
4046 Python 2.2 users who lack a proper shlex.split.
4043
4047
4044 2004-07-19 Fernando Perez <fperez@colorado.edu>
4048 2004-07-19 Fernando Perez <fperez@colorado.edu>
4045
4049
4046 * IPython/iplib.py (InteractiveShell.init_readline): Add support
4050 * IPython/iplib.py (InteractiveShell.init_readline): Add support
4047 for reading readline's init file. I follow the normal chain:
4051 for reading readline's init file. I follow the normal chain:
4048 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
4052 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
4049 report by Mike Heeter. This closes
4053 report by Mike Heeter. This closes
4050 http://www.scipy.net/roundup/ipython/issue16.
4054 http://www.scipy.net/roundup/ipython/issue16.
4051
4055
4052 2004-07-18 Fernando Perez <fperez@colorado.edu>
4056 2004-07-18 Fernando Perez <fperez@colorado.edu>
4053
4057
4054 * IPython/iplib.py (__init__): Add better handling of '\' under
4058 * IPython/iplib.py (__init__): Add better handling of '\' under
4055 Win32 for filenames. After a patch by Ville.
4059 Win32 for filenames. After a patch by Ville.
4056
4060
4057 2004-07-17 Fernando Perez <fperez@colorado.edu>
4061 2004-07-17 Fernando Perez <fperez@colorado.edu>
4058
4062
4059 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4063 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4060 autocalling would be triggered for 'foo is bar' if foo is
4064 autocalling would be triggered for 'foo is bar' if foo is
4061 callable. I also cleaned up the autocall detection code to use a
4065 callable. I also cleaned up the autocall detection code to use a
4062 regexp, which is faster. Bug reported by Alexander Schmolck.
4066 regexp, which is faster. Bug reported by Alexander Schmolck.
4063
4067
4064 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
4068 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
4065 '?' in them would confuse the help system. Reported by Alex
4069 '?' in them would confuse the help system. Reported by Alex
4066 Schmolck.
4070 Schmolck.
4067
4071
4068 2004-07-16 Fernando Perez <fperez@colorado.edu>
4072 2004-07-16 Fernando Perez <fperez@colorado.edu>
4069
4073
4070 * IPython/GnuplotInteractive.py (__all__): added plot2.
4074 * IPython/GnuplotInteractive.py (__all__): added plot2.
4071
4075
4072 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
4076 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
4073 plotting dictionaries, lists or tuples of 1d arrays.
4077 plotting dictionaries, lists or tuples of 1d arrays.
4074
4078
4075 * IPython/Magic.py (Magic.magic_hist): small clenaups and
4079 * IPython/Magic.py (Magic.magic_hist): small clenaups and
4076 optimizations.
4080 optimizations.
4077
4081
4078 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
4082 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
4079 the information which was there from Janko's original IPP code:
4083 the information which was there from Janko's original IPP code:
4080
4084
4081 03.05.99 20:53 porto.ifm.uni-kiel.de
4085 03.05.99 20:53 porto.ifm.uni-kiel.de
4082 --Started changelog.
4086 --Started changelog.
4083 --make clear do what it say it does
4087 --make clear do what it say it does
4084 --added pretty output of lines from inputcache
4088 --added pretty output of lines from inputcache
4085 --Made Logger a mixin class, simplifies handling of switches
4089 --Made Logger a mixin class, simplifies handling of switches
4086 --Added own completer class. .string<TAB> expands to last history
4090 --Added own completer class. .string<TAB> expands to last history
4087 line which starts with string. The new expansion is also present
4091 line which starts with string. The new expansion is also present
4088 with Ctrl-r from the readline library. But this shows, who this
4092 with Ctrl-r from the readline library. But this shows, who this
4089 can be done for other cases.
4093 can be done for other cases.
4090 --Added convention that all shell functions should accept a
4094 --Added convention that all shell functions should accept a
4091 parameter_string This opens the door for different behaviour for
4095 parameter_string This opens the door for different behaviour for
4092 each function. @cd is a good example of this.
4096 each function. @cd is a good example of this.
4093
4097
4094 04.05.99 12:12 porto.ifm.uni-kiel.de
4098 04.05.99 12:12 porto.ifm.uni-kiel.de
4095 --added logfile rotation
4099 --added logfile rotation
4096 --added new mainloop method which freezes first the namespace
4100 --added new mainloop method which freezes first the namespace
4097
4101
4098 07.05.99 21:24 porto.ifm.uni-kiel.de
4102 07.05.99 21:24 porto.ifm.uni-kiel.de
4099 --added the docreader classes. Now there is a help system.
4103 --added the docreader classes. Now there is a help system.
4100 -This is only a first try. Currently it's not easy to put new
4104 -This is only a first try. Currently it's not easy to put new
4101 stuff in the indices. But this is the way to go. Info would be
4105 stuff in the indices. But this is the way to go. Info would be
4102 better, but HTML is every where and not everybody has an info
4106 better, but HTML is every where and not everybody has an info
4103 system installed and it's not so easy to change html-docs to info.
4107 system installed and it's not so easy to change html-docs to info.
4104 --added global logfile option
4108 --added global logfile option
4105 --there is now a hook for object inspection method pinfo needs to
4109 --there is now a hook for object inspection method pinfo needs to
4106 be provided for this. Can be reached by two '??'.
4110 be provided for this. Can be reached by two '??'.
4107
4111
4108 08.05.99 20:51 porto.ifm.uni-kiel.de
4112 08.05.99 20:51 porto.ifm.uni-kiel.de
4109 --added a README
4113 --added a README
4110 --bug in rc file. Something has changed so functions in the rc
4114 --bug in rc file. Something has changed so functions in the rc
4111 file need to reference the shell and not self. Not clear if it's a
4115 file need to reference the shell and not self. Not clear if it's a
4112 bug or feature.
4116 bug or feature.
4113 --changed rc file for new behavior
4117 --changed rc file for new behavior
4114
4118
4115 2004-07-15 Fernando Perez <fperez@colorado.edu>
4119 2004-07-15 Fernando Perez <fperez@colorado.edu>
4116
4120
4117 * IPython/Logger.py (Logger.log): fixed recent bug where the input
4121 * IPython/Logger.py (Logger.log): fixed recent bug where the input
4118 cache was falling out of sync in bizarre manners when multi-line
4122 cache was falling out of sync in bizarre manners when multi-line
4119 input was present. Minor optimizations and cleanup.
4123 input was present. Minor optimizations and cleanup.
4120
4124
4121 (Logger): Remove old Changelog info for cleanup. This is the
4125 (Logger): Remove old Changelog info for cleanup. This is the
4122 information which was there from Janko's original code:
4126 information which was there from Janko's original code:
4123
4127
4124 Changes to Logger: - made the default log filename a parameter
4128 Changes to Logger: - made the default log filename a parameter
4125
4129
4126 - put a check for lines beginning with !@? in log(). Needed
4130 - put a check for lines beginning with !@? in log(). Needed
4127 (even if the handlers properly log their lines) for mid-session
4131 (even if the handlers properly log their lines) for mid-session
4128 logging activation to work properly. Without this, lines logged
4132 logging activation to work properly. Without this, lines logged
4129 in mid session, which get read from the cache, would end up
4133 in mid session, which get read from the cache, would end up
4130 'bare' (with !@? in the open) in the log. Now they are caught
4134 'bare' (with !@? in the open) in the log. Now they are caught
4131 and prepended with a #.
4135 and prepended with a #.
4132
4136
4133 * IPython/iplib.py (InteractiveShell.init_readline): added check
4137 * IPython/iplib.py (InteractiveShell.init_readline): added check
4134 in case MagicCompleter fails to be defined, so we don't crash.
4138 in case MagicCompleter fails to be defined, so we don't crash.
4135
4139
4136 2004-07-13 Fernando Perez <fperez@colorado.edu>
4140 2004-07-13 Fernando Perez <fperez@colorado.edu>
4137
4141
4138 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
4142 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
4139 of EPS if the requested filename ends in '.eps'.
4143 of EPS if the requested filename ends in '.eps'.
4140
4144
4141 2004-07-04 Fernando Perez <fperez@colorado.edu>
4145 2004-07-04 Fernando Perez <fperez@colorado.edu>
4142
4146
4143 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
4147 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
4144 escaping of quotes when calling the shell.
4148 escaping of quotes when calling the shell.
4145
4149
4146 2004-07-02 Fernando Perez <fperez@colorado.edu>
4150 2004-07-02 Fernando Perez <fperez@colorado.edu>
4147
4151
4148 * IPython/Prompts.py (CachedOutput.update): Fix problem with
4152 * IPython/Prompts.py (CachedOutput.update): Fix problem with
4149 gettext not working because we were clobbering '_'. Fixes
4153 gettext not working because we were clobbering '_'. Fixes
4150 http://www.scipy.net/roundup/ipython/issue6.
4154 http://www.scipy.net/roundup/ipython/issue6.
4151
4155
4152 2004-07-01 Fernando Perez <fperez@colorado.edu>
4156 2004-07-01 Fernando Perez <fperez@colorado.edu>
4153
4157
4154 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
4158 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
4155 into @cd. Patch by Ville.
4159 into @cd. Patch by Ville.
4156
4160
4157 * IPython/iplib.py (InteractiveShell.post_config_initialization):
4161 * IPython/iplib.py (InteractiveShell.post_config_initialization):
4158 new function to store things after ipmaker runs. Patch by Ville.
4162 new function to store things after ipmaker runs. Patch by Ville.
4159 Eventually this will go away once ipmaker is removed and the class
4163 Eventually this will go away once ipmaker is removed and the class
4160 gets cleaned up, but for now it's ok. Key functionality here is
4164 gets cleaned up, but for now it's ok. Key functionality here is
4161 the addition of the persistent storage mechanism, a dict for
4165 the addition of the persistent storage mechanism, a dict for
4162 keeping data across sessions (for now just bookmarks, but more can
4166 keeping data across sessions (for now just bookmarks, but more can
4163 be implemented later).
4167 be implemented later).
4164
4168
4165 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
4169 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
4166 persistent across sections. Patch by Ville, I modified it
4170 persistent across sections. Patch by Ville, I modified it
4167 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
4171 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
4168 added a '-l' option to list all bookmarks.
4172 added a '-l' option to list all bookmarks.
4169
4173
4170 * IPython/iplib.py (InteractiveShell.atexit_operations): new
4174 * IPython/iplib.py (InteractiveShell.atexit_operations): new
4171 center for cleanup. Registered with atexit.register(). I moved
4175 center for cleanup. Registered with atexit.register(). I moved
4172 here the old exit_cleanup(). After a patch by Ville.
4176 here the old exit_cleanup(). After a patch by Ville.
4173
4177
4174 * IPython/Magic.py (get_py_filename): added '~' to the accepted
4178 * IPython/Magic.py (get_py_filename): added '~' to the accepted
4175 characters in the hacked shlex_split for python 2.2.
4179 characters in the hacked shlex_split for python 2.2.
4176
4180
4177 * IPython/iplib.py (file_matches): more fixes to filenames with
4181 * IPython/iplib.py (file_matches): more fixes to filenames with
4178 whitespace in them. It's not perfect, but limitations in python's
4182 whitespace in them. It's not perfect, but limitations in python's
4179 readline make it impossible to go further.
4183 readline make it impossible to go further.
4180
4184
4181 2004-06-29 Fernando Perez <fperez@colorado.edu>
4185 2004-06-29 Fernando Perez <fperez@colorado.edu>
4182
4186
4183 * IPython/iplib.py (file_matches): escape whitespace correctly in
4187 * IPython/iplib.py (file_matches): escape whitespace correctly in
4184 filename completions. Bug reported by Ville.
4188 filename completions. Bug reported by Ville.
4185
4189
4186 2004-06-28 Fernando Perez <fperez@colorado.edu>
4190 2004-06-28 Fernando Perez <fperez@colorado.edu>
4187
4191
4188 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4192 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4189 the history file will be called 'history-PROFNAME' (or just
4193 the history file will be called 'history-PROFNAME' (or just
4190 'history' if no profile is loaded). I was getting annoyed at
4194 'history' if no profile is loaded). I was getting annoyed at
4191 getting my Numerical work history clobbered by pysh sessions.
4195 getting my Numerical work history clobbered by pysh sessions.
4192
4196
4193 * IPython/iplib.py (InteractiveShell.__init__): Internal
4197 * IPython/iplib.py (InteractiveShell.__init__): Internal
4194 getoutputerror() function so that we can honor the system_verbose
4198 getoutputerror() function so that we can honor the system_verbose
4195 flag for _all_ system calls. I also added escaping of #
4199 flag for _all_ system calls. I also added escaping of #
4196 characters here to avoid confusing Itpl.
4200 characters here to avoid confusing Itpl.
4197
4201
4198 * IPython/Magic.py (shlex_split): removed call to shell in
4202 * IPython/Magic.py (shlex_split): removed call to shell in
4199 parse_options and replaced it with shlex.split(). The annoying
4203 parse_options and replaced it with shlex.split(). The annoying
4200 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4204 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4201 to backport it from 2.3, with several frail hacks (the shlex
4205 to backport it from 2.3, with several frail hacks (the shlex
4202 module is rather limited in 2.2). Thanks to a suggestion by Ville
4206 module is rather limited in 2.2). Thanks to a suggestion by Ville
4203 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4207 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4204 problem.
4208 problem.
4205
4209
4206 (Magic.magic_system_verbose): new toggle to print the actual
4210 (Magic.magic_system_verbose): new toggle to print the actual
4207 system calls made by ipython. Mainly for debugging purposes.
4211 system calls made by ipython. Mainly for debugging purposes.
4208
4212
4209 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4213 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4210 doesn't support persistence. Reported (and fix suggested) by
4214 doesn't support persistence. Reported (and fix suggested) by
4211 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4215 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4212
4216
4213 2004-06-26 Fernando Perez <fperez@colorado.edu>
4217 2004-06-26 Fernando Perez <fperez@colorado.edu>
4214
4218
4215 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4219 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4216 continue prompts.
4220 continue prompts.
4217
4221
4218 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4222 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4219 function (basically a big docstring) and a few more things here to
4223 function (basically a big docstring) and a few more things here to
4220 speedup startup. pysh.py is now very lightweight. We want because
4224 speedup startup. pysh.py is now very lightweight. We want because
4221 it gets execfile'd, while InterpreterExec gets imported, so
4225 it gets execfile'd, while InterpreterExec gets imported, so
4222 byte-compilation saves time.
4226 byte-compilation saves time.
4223
4227
4224 2004-06-25 Fernando Perez <fperez@colorado.edu>
4228 2004-06-25 Fernando Perez <fperez@colorado.edu>
4225
4229
4226 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4230 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4227 -NUM', which was recently broken.
4231 -NUM', which was recently broken.
4228
4232
4229 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4233 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4230 in multi-line input (but not !!, which doesn't make sense there).
4234 in multi-line input (but not !!, which doesn't make sense there).
4231
4235
4232 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4236 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4233 It's just too useful, and people can turn it off in the less
4237 It's just too useful, and people can turn it off in the less
4234 common cases where it's a problem.
4238 common cases where it's a problem.
4235
4239
4236 2004-06-24 Fernando Perez <fperez@colorado.edu>
4240 2004-06-24 Fernando Perez <fperez@colorado.edu>
4237
4241
4238 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4242 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4239 special syntaxes (like alias calling) is now allied in multi-line
4243 special syntaxes (like alias calling) is now allied in multi-line
4240 input. This is still _very_ experimental, but it's necessary for
4244 input. This is still _very_ experimental, but it's necessary for
4241 efficient shell usage combining python looping syntax with system
4245 efficient shell usage combining python looping syntax with system
4242 calls. For now it's restricted to aliases, I don't think it
4246 calls. For now it's restricted to aliases, I don't think it
4243 really even makes sense to have this for magics.
4247 really even makes sense to have this for magics.
4244
4248
4245 2004-06-23 Fernando Perez <fperez@colorado.edu>
4249 2004-06-23 Fernando Perez <fperez@colorado.edu>
4246
4250
4247 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4251 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4248 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4252 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4249
4253
4250 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4254 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4251 extensions under Windows (after code sent by Gary Bishop). The
4255 extensions under Windows (after code sent by Gary Bishop). The
4252 extensions considered 'executable' are stored in IPython's rc
4256 extensions considered 'executable' are stored in IPython's rc
4253 structure as win_exec_ext.
4257 structure as win_exec_ext.
4254
4258
4255 * IPython/genutils.py (shell): new function, like system() but
4259 * IPython/genutils.py (shell): new function, like system() but
4256 without return value. Very useful for interactive shell work.
4260 without return value. Very useful for interactive shell work.
4257
4261
4258 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4262 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4259 delete aliases.
4263 delete aliases.
4260
4264
4261 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4265 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4262 sure that the alias table doesn't contain python keywords.
4266 sure that the alias table doesn't contain python keywords.
4263
4267
4264 2004-06-21 Fernando Perez <fperez@colorado.edu>
4268 2004-06-21 Fernando Perez <fperez@colorado.edu>
4265
4269
4266 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4270 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4267 non-existent items are found in $PATH. Reported by Thorsten.
4271 non-existent items are found in $PATH. Reported by Thorsten.
4268
4272
4269 2004-06-20 Fernando Perez <fperez@colorado.edu>
4273 2004-06-20 Fernando Perez <fperez@colorado.edu>
4270
4274
4271 * IPython/iplib.py (complete): modified the completer so that the
4275 * IPython/iplib.py (complete): modified the completer so that the
4272 order of priorities can be easily changed at runtime.
4276 order of priorities can be easily changed at runtime.
4273
4277
4274 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4278 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4275 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4279 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4276
4280
4277 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4281 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4278 expand Python variables prepended with $ in all system calls. The
4282 expand Python variables prepended with $ in all system calls. The
4279 same was done to InteractiveShell.handle_shell_escape. Now all
4283 same was done to InteractiveShell.handle_shell_escape. Now all
4280 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4284 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4281 expansion of python variables and expressions according to the
4285 expansion of python variables and expressions according to the
4282 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4286 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4283
4287
4284 Though PEP-215 has been rejected, a similar (but simpler) one
4288 Though PEP-215 has been rejected, a similar (but simpler) one
4285 seems like it will go into Python 2.4, PEP-292 -
4289 seems like it will go into Python 2.4, PEP-292 -
4286 http://www.python.org/peps/pep-0292.html.
4290 http://www.python.org/peps/pep-0292.html.
4287
4291
4288 I'll keep the full syntax of PEP-215, since IPython has since the
4292 I'll keep the full syntax of PEP-215, since IPython has since the
4289 start used Ka-Ping Yee's reference implementation discussed there
4293 start used Ka-Ping Yee's reference implementation discussed there
4290 (Itpl), and I actually like the powerful semantics it offers.
4294 (Itpl), and I actually like the powerful semantics it offers.
4291
4295
4292 In order to access normal shell variables, the $ has to be escaped
4296 In order to access normal shell variables, the $ has to be escaped
4293 via an extra $. For example:
4297 via an extra $. For example:
4294
4298
4295 In [7]: PATH='a python variable'
4299 In [7]: PATH='a python variable'
4296
4300
4297 In [8]: !echo $PATH
4301 In [8]: !echo $PATH
4298 a python variable
4302 a python variable
4299
4303
4300 In [9]: !echo $$PATH
4304 In [9]: !echo $$PATH
4301 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4305 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4302
4306
4303 (Magic.parse_options): escape $ so the shell doesn't evaluate
4307 (Magic.parse_options): escape $ so the shell doesn't evaluate
4304 things prematurely.
4308 things prematurely.
4305
4309
4306 * IPython/iplib.py (InteractiveShell.call_alias): added the
4310 * IPython/iplib.py (InteractiveShell.call_alias): added the
4307 ability for aliases to expand python variables via $.
4311 ability for aliases to expand python variables via $.
4308
4312
4309 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4313 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4310 system, now there's a @rehash/@rehashx pair of magics. These work
4314 system, now there's a @rehash/@rehashx pair of magics. These work
4311 like the csh rehash command, and can be invoked at any time. They
4315 like the csh rehash command, and can be invoked at any time. They
4312 build a table of aliases to everything in the user's $PATH
4316 build a table of aliases to everything in the user's $PATH
4313 (@rehash uses everything, @rehashx is slower but only adds
4317 (@rehash uses everything, @rehashx is slower but only adds
4314 executable files). With this, the pysh.py-based shell profile can
4318 executable files). With this, the pysh.py-based shell profile can
4315 now simply call rehash upon startup, and full access to all
4319 now simply call rehash upon startup, and full access to all
4316 programs in the user's path is obtained.
4320 programs in the user's path is obtained.
4317
4321
4318 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4322 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4319 functionality is now fully in place. I removed the old dynamic
4323 functionality is now fully in place. I removed the old dynamic
4320 code generation based approach, in favor of a much lighter one
4324 code generation based approach, in favor of a much lighter one
4321 based on a simple dict. The advantage is that this allows me to
4325 based on a simple dict. The advantage is that this allows me to
4322 now have thousands of aliases with negligible cost (unthinkable
4326 now have thousands of aliases with negligible cost (unthinkable
4323 with the old system).
4327 with the old system).
4324
4328
4325 2004-06-19 Fernando Perez <fperez@colorado.edu>
4329 2004-06-19 Fernando Perez <fperez@colorado.edu>
4326
4330
4327 * IPython/iplib.py (__init__): extended MagicCompleter class to
4331 * IPython/iplib.py (__init__): extended MagicCompleter class to
4328 also complete (last in priority) on user aliases.
4332 also complete (last in priority) on user aliases.
4329
4333
4330 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4334 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4331 call to eval.
4335 call to eval.
4332 (ItplNS.__init__): Added a new class which functions like Itpl,
4336 (ItplNS.__init__): Added a new class which functions like Itpl,
4333 but allows configuring the namespace for the evaluation to occur
4337 but allows configuring the namespace for the evaluation to occur
4334 in.
4338 in.
4335
4339
4336 2004-06-18 Fernando Perez <fperez@colorado.edu>
4340 2004-06-18 Fernando Perez <fperez@colorado.edu>
4337
4341
4338 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4342 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4339 better message when 'exit' or 'quit' are typed (a common newbie
4343 better message when 'exit' or 'quit' are typed (a common newbie
4340 confusion).
4344 confusion).
4341
4345
4342 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4346 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4343 check for Windows users.
4347 check for Windows users.
4344
4348
4345 * IPython/iplib.py (InteractiveShell.user_setup): removed
4349 * IPython/iplib.py (InteractiveShell.user_setup): removed
4346 disabling of colors for Windows. I'll test at runtime and issue a
4350 disabling of colors for Windows. I'll test at runtime and issue a
4347 warning if Gary's readline isn't found, as to nudge users to
4351 warning if Gary's readline isn't found, as to nudge users to
4348 download it.
4352 download it.
4349
4353
4350 2004-06-16 Fernando Perez <fperez@colorado.edu>
4354 2004-06-16 Fernando Perez <fperez@colorado.edu>
4351
4355
4352 * IPython/genutils.py (Stream.__init__): changed to print errors
4356 * IPython/genutils.py (Stream.__init__): changed to print errors
4353 to sys.stderr. I had a circular dependency here. Now it's
4357 to sys.stderr. I had a circular dependency here. Now it's
4354 possible to run ipython as IDLE's shell (consider this pre-alpha,
4358 possible to run ipython as IDLE's shell (consider this pre-alpha,
4355 since true stdout things end up in the starting terminal instead
4359 since true stdout things end up in the starting terminal instead
4356 of IDLE's out).
4360 of IDLE's out).
4357
4361
4358 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4362 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4359 users who haven't # updated their prompt_in2 definitions. Remove
4363 users who haven't # updated their prompt_in2 definitions. Remove
4360 eventually.
4364 eventually.
4361 (multiple_replace): added credit to original ASPN recipe.
4365 (multiple_replace): added credit to original ASPN recipe.
4362
4366
4363 2004-06-15 Fernando Perez <fperez@colorado.edu>
4367 2004-06-15 Fernando Perez <fperez@colorado.edu>
4364
4368
4365 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4369 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4366 list of auto-defined aliases.
4370 list of auto-defined aliases.
4367
4371
4368 2004-06-13 Fernando Perez <fperez@colorado.edu>
4372 2004-06-13 Fernando Perez <fperez@colorado.edu>
4369
4373
4370 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4374 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4371 install was really requested (so setup.py can be used for other
4375 install was really requested (so setup.py can be used for other
4372 things under Windows).
4376 things under Windows).
4373
4377
4374 2004-06-10 Fernando Perez <fperez@colorado.edu>
4378 2004-06-10 Fernando Perez <fperez@colorado.edu>
4375
4379
4376 * IPython/Logger.py (Logger.create_log): Manually remove any old
4380 * IPython/Logger.py (Logger.create_log): Manually remove any old
4377 backup, since os.remove may fail under Windows. Fixes bug
4381 backup, since os.remove may fail under Windows. Fixes bug
4378 reported by Thorsten.
4382 reported by Thorsten.
4379
4383
4380 2004-06-09 Fernando Perez <fperez@colorado.edu>
4384 2004-06-09 Fernando Perez <fperez@colorado.edu>
4381
4385
4382 * examples/example-embed.py: fixed all references to %n (replaced
4386 * examples/example-embed.py: fixed all references to %n (replaced
4383 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4387 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4384 for all examples and the manual as well.
4388 for all examples and the manual as well.
4385
4389
4386 2004-06-08 Fernando Perez <fperez@colorado.edu>
4390 2004-06-08 Fernando Perez <fperez@colorado.edu>
4387
4391
4388 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4392 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4389 alignment and color management. All 3 prompt subsystems now
4393 alignment and color management. All 3 prompt subsystems now
4390 inherit from BasePrompt.
4394 inherit from BasePrompt.
4391
4395
4392 * tools/release: updates for windows installer build and tag rpms
4396 * tools/release: updates for windows installer build and tag rpms
4393 with python version (since paths are fixed).
4397 with python version (since paths are fixed).
4394
4398
4395 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4399 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4396 which will become eventually obsolete. Also fixed the default
4400 which will become eventually obsolete. Also fixed the default
4397 prompt_in2 to use \D, so at least new users start with the correct
4401 prompt_in2 to use \D, so at least new users start with the correct
4398 defaults.
4402 defaults.
4399 WARNING: Users with existing ipythonrc files will need to apply
4403 WARNING: Users with existing ipythonrc files will need to apply
4400 this fix manually!
4404 this fix manually!
4401
4405
4402 * setup.py: make windows installer (.exe). This is finally the
4406 * setup.py: make windows installer (.exe). This is finally the
4403 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4407 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4404 which I hadn't included because it required Python 2.3 (or recent
4408 which I hadn't included because it required Python 2.3 (or recent
4405 distutils).
4409 distutils).
4406
4410
4407 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4411 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4408 usage of new '\D' escape.
4412 usage of new '\D' escape.
4409
4413
4410 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4414 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4411 lacks os.getuid())
4415 lacks os.getuid())
4412 (CachedOutput.set_colors): Added the ability to turn coloring
4416 (CachedOutput.set_colors): Added the ability to turn coloring
4413 on/off with @colors even for manually defined prompt colors. It
4417 on/off with @colors even for manually defined prompt colors. It
4414 uses a nasty global, but it works safely and via the generic color
4418 uses a nasty global, but it works safely and via the generic color
4415 handling mechanism.
4419 handling mechanism.
4416 (Prompt2.__init__): Introduced new escape '\D' for continuation
4420 (Prompt2.__init__): Introduced new escape '\D' for continuation
4417 prompts. It represents the counter ('\#') as dots.
4421 prompts. It represents the counter ('\#') as dots.
4418 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4422 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4419 need to update their ipythonrc files and replace '%n' with '\D' in
4423 need to update their ipythonrc files and replace '%n' with '\D' in
4420 their prompt_in2 settings everywhere. Sorry, but there's
4424 their prompt_in2 settings everywhere. Sorry, but there's
4421 otherwise no clean way to get all prompts to properly align. The
4425 otherwise no clean way to get all prompts to properly align. The
4422 ipythonrc shipped with IPython has been updated.
4426 ipythonrc shipped with IPython has been updated.
4423
4427
4424 2004-06-07 Fernando Perez <fperez@colorado.edu>
4428 2004-06-07 Fernando Perez <fperez@colorado.edu>
4425
4429
4426 * setup.py (isfile): Pass local_icons option to latex2html, so the
4430 * setup.py (isfile): Pass local_icons option to latex2html, so the
4427 resulting HTML file is self-contained. Thanks to
4431 resulting HTML file is self-contained. Thanks to
4428 dryice-AT-liu.com.cn for the tip.
4432 dryice-AT-liu.com.cn for the tip.
4429
4433
4430 * pysh.py: I created a new profile 'shell', which implements a
4434 * pysh.py: I created a new profile 'shell', which implements a
4431 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4435 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4432 system shell, nor will it become one anytime soon. It's mainly
4436 system shell, nor will it become one anytime soon. It's mainly
4433 meant to illustrate the use of the new flexible bash-like prompts.
4437 meant to illustrate the use of the new flexible bash-like prompts.
4434 I guess it could be used by hardy souls for true shell management,
4438 I guess it could be used by hardy souls for true shell management,
4435 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4439 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4436 profile. This uses the InterpreterExec extension provided by
4440 profile. This uses the InterpreterExec extension provided by
4437 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4441 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4438
4442
4439 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4443 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4440 auto-align itself with the length of the previous input prompt
4444 auto-align itself with the length of the previous input prompt
4441 (taking into account the invisible color escapes).
4445 (taking into account the invisible color escapes).
4442 (CachedOutput.__init__): Large restructuring of this class. Now
4446 (CachedOutput.__init__): Large restructuring of this class. Now
4443 all three prompts (primary1, primary2, output) are proper objects,
4447 all three prompts (primary1, primary2, output) are proper objects,
4444 managed by the 'parent' CachedOutput class. The code is still a
4448 managed by the 'parent' CachedOutput class. The code is still a
4445 bit hackish (all prompts share state via a pointer to the cache),
4449 bit hackish (all prompts share state via a pointer to the cache),
4446 but it's overall far cleaner than before.
4450 but it's overall far cleaner than before.
4447
4451
4448 * IPython/genutils.py (getoutputerror): modified to add verbose,
4452 * IPython/genutils.py (getoutputerror): modified to add verbose,
4449 debug and header options. This makes the interface of all getout*
4453 debug and header options. This makes the interface of all getout*
4450 functions uniform.
4454 functions uniform.
4451 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4455 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4452
4456
4453 * IPython/Magic.py (Magic.default_option): added a function to
4457 * IPython/Magic.py (Magic.default_option): added a function to
4454 allow registering default options for any magic command. This
4458 allow registering default options for any magic command. This
4455 makes it easy to have profiles which customize the magics globally
4459 makes it easy to have profiles which customize the magics globally
4456 for a certain use. The values set through this function are
4460 for a certain use. The values set through this function are
4457 picked up by the parse_options() method, which all magics should
4461 picked up by the parse_options() method, which all magics should
4458 use to parse their options.
4462 use to parse their options.
4459
4463
4460 * IPython/genutils.py (warn): modified the warnings framework to
4464 * IPython/genutils.py (warn): modified the warnings framework to
4461 use the Term I/O class. I'm trying to slowly unify all of
4465 use the Term I/O class. I'm trying to slowly unify all of
4462 IPython's I/O operations to pass through Term.
4466 IPython's I/O operations to pass through Term.
4463
4467
4464 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4468 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4465 the secondary prompt to correctly match the length of the primary
4469 the secondary prompt to correctly match the length of the primary
4466 one for any prompt. Now multi-line code will properly line up
4470 one for any prompt. Now multi-line code will properly line up
4467 even for path dependent prompts, such as the new ones available
4471 even for path dependent prompts, such as the new ones available
4468 via the prompt_specials.
4472 via the prompt_specials.
4469
4473
4470 2004-06-06 Fernando Perez <fperez@colorado.edu>
4474 2004-06-06 Fernando Perez <fperez@colorado.edu>
4471
4475
4472 * IPython/Prompts.py (prompt_specials): Added the ability to have
4476 * IPython/Prompts.py (prompt_specials): Added the ability to have
4473 bash-like special sequences in the prompts, which get
4477 bash-like special sequences in the prompts, which get
4474 automatically expanded. Things like hostname, current working
4478 automatically expanded. Things like hostname, current working
4475 directory and username are implemented already, but it's easy to
4479 directory and username are implemented already, but it's easy to
4476 add more in the future. Thanks to a patch by W.J. van der Laan
4480 add more in the future. Thanks to a patch by W.J. van der Laan
4477 <gnufnork-AT-hetdigitalegat.nl>
4481 <gnufnork-AT-hetdigitalegat.nl>
4478 (prompt_specials): Added color support for prompt strings, so
4482 (prompt_specials): Added color support for prompt strings, so
4479 users can define arbitrary color setups for their prompts.
4483 users can define arbitrary color setups for their prompts.
4480
4484
4481 2004-06-05 Fernando Perez <fperez@colorado.edu>
4485 2004-06-05 Fernando Perez <fperez@colorado.edu>
4482
4486
4483 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4487 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4484 code to load Gary Bishop's readline and configure it
4488 code to load Gary Bishop's readline and configure it
4485 automatically. Thanks to Gary for help on this.
4489 automatically. Thanks to Gary for help on this.
4486
4490
4487 2004-06-01 Fernando Perez <fperez@colorado.edu>
4491 2004-06-01 Fernando Perez <fperez@colorado.edu>
4488
4492
4489 * IPython/Logger.py (Logger.create_log): fix bug for logging
4493 * IPython/Logger.py (Logger.create_log): fix bug for logging
4490 with no filename (previous fix was incomplete).
4494 with no filename (previous fix was incomplete).
4491
4495
4492 2004-05-25 Fernando Perez <fperez@colorado.edu>
4496 2004-05-25 Fernando Perez <fperez@colorado.edu>
4493
4497
4494 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4498 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4495 parens would get passed to the shell.
4499 parens would get passed to the shell.
4496
4500
4497 2004-05-20 Fernando Perez <fperez@colorado.edu>
4501 2004-05-20 Fernando Perez <fperez@colorado.edu>
4498
4502
4499 * IPython/Magic.py (Magic.magic_prun): changed default profile
4503 * IPython/Magic.py (Magic.magic_prun): changed default profile
4500 sort order to 'time' (the more common profiling need).
4504 sort order to 'time' (the more common profiling need).
4501
4505
4502 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4506 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4503 so that source code shown is guaranteed in sync with the file on
4507 so that source code shown is guaranteed in sync with the file on
4504 disk (also changed in psource). Similar fix to the one for
4508 disk (also changed in psource). Similar fix to the one for
4505 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4509 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4506 <yann.ledu-AT-noos.fr>.
4510 <yann.ledu-AT-noos.fr>.
4507
4511
4508 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4512 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4509 with a single option would not be correctly parsed. Closes
4513 with a single option would not be correctly parsed. Closes
4510 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4514 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4511 introduced in 0.6.0 (on 2004-05-06).
4515 introduced in 0.6.0 (on 2004-05-06).
4512
4516
4513 2004-05-13 *** Released version 0.6.0
4517 2004-05-13 *** Released version 0.6.0
4514
4518
4515 2004-05-13 Fernando Perez <fperez@colorado.edu>
4519 2004-05-13 Fernando Perez <fperez@colorado.edu>
4516
4520
4517 * debian/: Added debian/ directory to CVS, so that debian support
4521 * debian/: Added debian/ directory to CVS, so that debian support
4518 is publicly accessible. The debian package is maintained by Jack
4522 is publicly accessible. The debian package is maintained by Jack
4519 Moffit <jack-AT-xiph.org>.
4523 Moffit <jack-AT-xiph.org>.
4520
4524
4521 * Documentation: included the notes about an ipython-based system
4525 * Documentation: included the notes about an ipython-based system
4522 shell (the hypothetical 'pysh') into the new_design.pdf document,
4526 shell (the hypothetical 'pysh') into the new_design.pdf document,
4523 so that these ideas get distributed to users along with the
4527 so that these ideas get distributed to users along with the
4524 official documentation.
4528 official documentation.
4525
4529
4526 2004-05-10 Fernando Perez <fperez@colorado.edu>
4530 2004-05-10 Fernando Perez <fperez@colorado.edu>
4527
4531
4528 * IPython/Logger.py (Logger.create_log): fix recently introduced
4532 * IPython/Logger.py (Logger.create_log): fix recently introduced
4529 bug (misindented line) where logstart would fail when not given an
4533 bug (misindented line) where logstart would fail when not given an
4530 explicit filename.
4534 explicit filename.
4531
4535
4532 2004-05-09 Fernando Perez <fperez@colorado.edu>
4536 2004-05-09 Fernando Perez <fperez@colorado.edu>
4533
4537
4534 * IPython/Magic.py (Magic.parse_options): skip system call when
4538 * IPython/Magic.py (Magic.parse_options): skip system call when
4535 there are no options to look for. Faster, cleaner for the common
4539 there are no options to look for. Faster, cleaner for the common
4536 case.
4540 case.
4537
4541
4538 * Documentation: many updates to the manual: describing Windows
4542 * Documentation: many updates to the manual: describing Windows
4539 support better, Gnuplot updates, credits, misc small stuff. Also
4543 support better, Gnuplot updates, credits, misc small stuff. Also
4540 updated the new_design doc a bit.
4544 updated the new_design doc a bit.
4541
4545
4542 2004-05-06 *** Released version 0.6.0.rc1
4546 2004-05-06 *** Released version 0.6.0.rc1
4543
4547
4544 2004-05-06 Fernando Perez <fperez@colorado.edu>
4548 2004-05-06 Fernando Perez <fperez@colorado.edu>
4545
4549
4546 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4550 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4547 operations to use the vastly more efficient list/''.join() method.
4551 operations to use the vastly more efficient list/''.join() method.
4548 (FormattedTB.text): Fix
4552 (FormattedTB.text): Fix
4549 http://www.scipy.net/roundup/ipython/issue12 - exception source
4553 http://www.scipy.net/roundup/ipython/issue12 - exception source
4550 extract not updated after reload. Thanks to Mike Salib
4554 extract not updated after reload. Thanks to Mike Salib
4551 <msalib-AT-mit.edu> for pinning the source of the problem.
4555 <msalib-AT-mit.edu> for pinning the source of the problem.
4552 Fortunately, the solution works inside ipython and doesn't require
4556 Fortunately, the solution works inside ipython and doesn't require
4553 any changes to python proper.
4557 any changes to python proper.
4554
4558
4555 * IPython/Magic.py (Magic.parse_options): Improved to process the
4559 * IPython/Magic.py (Magic.parse_options): Improved to process the
4556 argument list as a true shell would (by actually using the
4560 argument list as a true shell would (by actually using the
4557 underlying system shell). This way, all @magics automatically get
4561 underlying system shell). This way, all @magics automatically get
4558 shell expansion for variables. Thanks to a comment by Alex
4562 shell expansion for variables. Thanks to a comment by Alex
4559 Schmolck.
4563 Schmolck.
4560
4564
4561 2004-04-04 Fernando Perez <fperez@colorado.edu>
4565 2004-04-04 Fernando Perez <fperez@colorado.edu>
4562
4566
4563 * IPython/iplib.py (InteractiveShell.interact): Added a special
4567 * IPython/iplib.py (InteractiveShell.interact): Added a special
4564 trap for a debugger quit exception, which is basically impossible
4568 trap for a debugger quit exception, which is basically impossible
4565 to handle by normal mechanisms, given what pdb does to the stack.
4569 to handle by normal mechanisms, given what pdb does to the stack.
4566 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4570 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4567
4571
4568 2004-04-03 Fernando Perez <fperez@colorado.edu>
4572 2004-04-03 Fernando Perez <fperez@colorado.edu>
4569
4573
4570 * IPython/genutils.py (Term): Standardized the names of the Term
4574 * IPython/genutils.py (Term): Standardized the names of the Term
4571 class streams to cin/cout/cerr, following C++ naming conventions
4575 class streams to cin/cout/cerr, following C++ naming conventions
4572 (I can't use in/out/err because 'in' is not a valid attribute
4576 (I can't use in/out/err because 'in' is not a valid attribute
4573 name).
4577 name).
4574
4578
4575 * IPython/iplib.py (InteractiveShell.interact): don't increment
4579 * IPython/iplib.py (InteractiveShell.interact): don't increment
4576 the prompt if there's no user input. By Daniel 'Dang' Griffith
4580 the prompt if there's no user input. By Daniel 'Dang' Griffith
4577 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4581 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4578 Francois Pinard.
4582 Francois Pinard.
4579
4583
4580 2004-04-02 Fernando Perez <fperez@colorado.edu>
4584 2004-04-02 Fernando Perez <fperez@colorado.edu>
4581
4585
4582 * IPython/genutils.py (Stream.__init__): Modified to survive at
4586 * IPython/genutils.py (Stream.__init__): Modified to survive at
4583 least importing in contexts where stdin/out/err aren't true file
4587 least importing in contexts where stdin/out/err aren't true file
4584 objects, such as PyCrust (they lack fileno() and mode). However,
4588 objects, such as PyCrust (they lack fileno() and mode). However,
4585 the recovery facilities which rely on these things existing will
4589 the recovery facilities which rely on these things existing will
4586 not work.
4590 not work.
4587
4591
4588 2004-04-01 Fernando Perez <fperez@colorado.edu>
4592 2004-04-01 Fernando Perez <fperez@colorado.edu>
4589
4593
4590 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4594 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4591 use the new getoutputerror() function, so it properly
4595 use the new getoutputerror() function, so it properly
4592 distinguishes stdout/err.
4596 distinguishes stdout/err.
4593
4597
4594 * IPython/genutils.py (getoutputerror): added a function to
4598 * IPython/genutils.py (getoutputerror): added a function to
4595 capture separately the standard output and error of a command.
4599 capture separately the standard output and error of a command.
4596 After a comment from dang on the mailing lists. This code is
4600 After a comment from dang on the mailing lists. This code is
4597 basically a modified version of commands.getstatusoutput(), from
4601 basically a modified version of commands.getstatusoutput(), from
4598 the standard library.
4602 the standard library.
4599
4603
4600 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4604 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4601 '!!' as a special syntax (shorthand) to access @sx.
4605 '!!' as a special syntax (shorthand) to access @sx.
4602
4606
4603 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4607 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4604 command and return its output as a list split on '\n'.
4608 command and return its output as a list split on '\n'.
4605
4609
4606 2004-03-31 Fernando Perez <fperez@colorado.edu>
4610 2004-03-31 Fernando Perez <fperez@colorado.edu>
4607
4611
4608 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4612 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4609 method to dictionaries used as FakeModule instances if they lack
4613 method to dictionaries used as FakeModule instances if they lack
4610 it. At least pydoc in python2.3 breaks for runtime-defined
4614 it. At least pydoc in python2.3 breaks for runtime-defined
4611 functions without this hack. At some point I need to _really_
4615 functions without this hack. At some point I need to _really_
4612 understand what FakeModule is doing, because it's a gross hack.
4616 understand what FakeModule is doing, because it's a gross hack.
4613 But it solves Arnd's problem for now...
4617 But it solves Arnd's problem for now...
4614
4618
4615 2004-02-27 Fernando Perez <fperez@colorado.edu>
4619 2004-02-27 Fernando Perez <fperez@colorado.edu>
4616
4620
4617 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4621 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4618 mode would behave erratically. Also increased the number of
4622 mode would behave erratically. Also increased the number of
4619 possible logs in rotate mod to 999. Thanks to Rod Holland
4623 possible logs in rotate mod to 999. Thanks to Rod Holland
4620 <rhh@StructureLABS.com> for the report and fixes.
4624 <rhh@StructureLABS.com> for the report and fixes.
4621
4625
4622 2004-02-26 Fernando Perez <fperez@colorado.edu>
4626 2004-02-26 Fernando Perez <fperez@colorado.edu>
4623
4627
4624 * IPython/genutils.py (page): Check that the curses module really
4628 * IPython/genutils.py (page): Check that the curses module really
4625 has the initscr attribute before trying to use it. For some
4629 has the initscr attribute before trying to use it. For some
4626 reason, the Solaris curses module is missing this. I think this
4630 reason, the Solaris curses module is missing this. I think this
4627 should be considered a Solaris python bug, but I'm not sure.
4631 should be considered a Solaris python bug, but I'm not sure.
4628
4632
4629 2004-01-17 Fernando Perez <fperez@colorado.edu>
4633 2004-01-17 Fernando Perez <fperez@colorado.edu>
4630
4634
4631 * IPython/genutils.py (Stream.__init__): Changes to try to make
4635 * IPython/genutils.py (Stream.__init__): Changes to try to make
4632 ipython robust against stdin/out/err being closed by the user.
4636 ipython robust against stdin/out/err being closed by the user.
4633 This is 'user error' (and blocks a normal python session, at least
4637 This is 'user error' (and blocks a normal python session, at least
4634 the stdout case). However, Ipython should be able to survive such
4638 the stdout case). However, Ipython should be able to survive such
4635 instances of abuse as gracefully as possible. To simplify the
4639 instances of abuse as gracefully as possible. To simplify the
4636 coding and maintain compatibility with Gary Bishop's Term
4640 coding and maintain compatibility with Gary Bishop's Term
4637 contributions, I've made use of classmethods for this. I think
4641 contributions, I've made use of classmethods for this. I think
4638 this introduces a dependency on python 2.2.
4642 this introduces a dependency on python 2.2.
4639
4643
4640 2004-01-13 Fernando Perez <fperez@colorado.edu>
4644 2004-01-13 Fernando Perez <fperez@colorado.edu>
4641
4645
4642 * IPython/numutils.py (exp_safe): simplified the code a bit and
4646 * IPython/numutils.py (exp_safe): simplified the code a bit and
4643 removed the need for importing the kinds module altogether.
4647 removed the need for importing the kinds module altogether.
4644
4648
4645 2004-01-06 Fernando Perez <fperez@colorado.edu>
4649 2004-01-06 Fernando Perez <fperez@colorado.edu>
4646
4650
4647 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4651 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4648 a magic function instead, after some community feedback. No
4652 a magic function instead, after some community feedback. No
4649 special syntax will exist for it, but its name is deliberately
4653 special syntax will exist for it, but its name is deliberately
4650 very short.
4654 very short.
4651
4655
4652 2003-12-20 Fernando Perez <fperez@colorado.edu>
4656 2003-12-20 Fernando Perez <fperez@colorado.edu>
4653
4657
4654 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4658 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4655 new functionality, to automagically assign the result of a shell
4659 new functionality, to automagically assign the result of a shell
4656 command to a variable. I'll solicit some community feedback on
4660 command to a variable. I'll solicit some community feedback on
4657 this before making it permanent.
4661 this before making it permanent.
4658
4662
4659 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4663 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4660 requested about callables for which inspect couldn't obtain a
4664 requested about callables for which inspect couldn't obtain a
4661 proper argspec. Thanks to a crash report sent by Etienne
4665 proper argspec. Thanks to a crash report sent by Etienne
4662 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4666 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4663
4667
4664 2003-12-09 Fernando Perez <fperez@colorado.edu>
4668 2003-12-09 Fernando Perez <fperez@colorado.edu>
4665
4669
4666 * IPython/genutils.py (page): patch for the pager to work across
4670 * IPython/genutils.py (page): patch for the pager to work across
4667 various versions of Windows. By Gary Bishop.
4671 various versions of Windows. By Gary Bishop.
4668
4672
4669 2003-12-04 Fernando Perez <fperez@colorado.edu>
4673 2003-12-04 Fernando Perez <fperez@colorado.edu>
4670
4674
4671 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4675 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4672 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4676 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4673 While I tested this and it looks ok, there may still be corner
4677 While I tested this and it looks ok, there may still be corner
4674 cases I've missed.
4678 cases I've missed.
4675
4679
4676 2003-12-01 Fernando Perez <fperez@colorado.edu>
4680 2003-12-01 Fernando Perez <fperez@colorado.edu>
4677
4681
4678 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4682 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4679 where a line like 'p,q=1,2' would fail because the automagic
4683 where a line like 'p,q=1,2' would fail because the automagic
4680 system would be triggered for @p.
4684 system would be triggered for @p.
4681
4685
4682 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4686 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4683 cleanups, code unmodified.
4687 cleanups, code unmodified.
4684
4688
4685 * IPython/genutils.py (Term): added a class for IPython to handle
4689 * IPython/genutils.py (Term): added a class for IPython to handle
4686 output. In most cases it will just be a proxy for stdout/err, but
4690 output. In most cases it will just be a proxy for stdout/err, but
4687 having this allows modifications to be made for some platforms,
4691 having this allows modifications to be made for some platforms,
4688 such as handling color escapes under Windows. All of this code
4692 such as handling color escapes under Windows. All of this code
4689 was contributed by Gary Bishop, with minor modifications by me.
4693 was contributed by Gary Bishop, with minor modifications by me.
4690 The actual changes affect many files.
4694 The actual changes affect many files.
4691
4695
4692 2003-11-30 Fernando Perez <fperez@colorado.edu>
4696 2003-11-30 Fernando Perez <fperez@colorado.edu>
4693
4697
4694 * IPython/iplib.py (file_matches): new completion code, courtesy
4698 * IPython/iplib.py (file_matches): new completion code, courtesy
4695 of Jeff Collins. This enables filename completion again under
4699 of Jeff Collins. This enables filename completion again under
4696 python 2.3, which disabled it at the C level.
4700 python 2.3, which disabled it at the C level.
4697
4701
4698 2003-11-11 Fernando Perez <fperez@colorado.edu>
4702 2003-11-11 Fernando Perez <fperez@colorado.edu>
4699
4703
4700 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4704 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4701 for Numeric.array(map(...)), but often convenient.
4705 for Numeric.array(map(...)), but often convenient.
4702
4706
4703 2003-11-05 Fernando Perez <fperez@colorado.edu>
4707 2003-11-05 Fernando Perez <fperez@colorado.edu>
4704
4708
4705 * IPython/numutils.py (frange): Changed a call from int() to
4709 * IPython/numutils.py (frange): Changed a call from int() to
4706 int(round()) to prevent a problem reported with arange() in the
4710 int(round()) to prevent a problem reported with arange() in the
4707 numpy list.
4711 numpy list.
4708
4712
4709 2003-10-06 Fernando Perez <fperez@colorado.edu>
4713 2003-10-06 Fernando Perez <fperez@colorado.edu>
4710
4714
4711 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4715 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4712 prevent crashes if sys lacks an argv attribute (it happens with
4716 prevent crashes if sys lacks an argv attribute (it happens with
4713 embedded interpreters which build a bare-bones sys module).
4717 embedded interpreters which build a bare-bones sys module).
4714 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4718 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4715
4719
4716 2003-09-24 Fernando Perez <fperez@colorado.edu>
4720 2003-09-24 Fernando Perez <fperez@colorado.edu>
4717
4721
4718 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4722 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4719 to protect against poorly written user objects where __getattr__
4723 to protect against poorly written user objects where __getattr__
4720 raises exceptions other than AttributeError. Thanks to a bug
4724 raises exceptions other than AttributeError. Thanks to a bug
4721 report by Oliver Sander <osander-AT-gmx.de>.
4725 report by Oliver Sander <osander-AT-gmx.de>.
4722
4726
4723 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4727 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4724 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4728 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4725
4729
4726 2003-09-09 Fernando Perez <fperez@colorado.edu>
4730 2003-09-09 Fernando Perez <fperez@colorado.edu>
4727
4731
4728 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4732 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4729 unpacking a list whith a callable as first element would
4733 unpacking a list whith a callable as first element would
4730 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4734 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4731 Collins.
4735 Collins.
4732
4736
4733 2003-08-25 *** Released version 0.5.0
4737 2003-08-25 *** Released version 0.5.0
4734
4738
4735 2003-08-22 Fernando Perez <fperez@colorado.edu>
4739 2003-08-22 Fernando Perez <fperez@colorado.edu>
4736
4740
4737 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4741 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4738 improperly defined user exceptions. Thanks to feedback from Mark
4742 improperly defined user exceptions. Thanks to feedback from Mark
4739 Russell <mrussell-AT-verio.net>.
4743 Russell <mrussell-AT-verio.net>.
4740
4744
4741 2003-08-20 Fernando Perez <fperez@colorado.edu>
4745 2003-08-20 Fernando Perez <fperez@colorado.edu>
4742
4746
4743 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4747 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4744 printing so that it would print multi-line string forms starting
4748 printing so that it would print multi-line string forms starting
4745 with a new line. This way the formatting is better respected for
4749 with a new line. This way the formatting is better respected for
4746 objects which work hard to make nice string forms.
4750 objects which work hard to make nice string forms.
4747
4751
4748 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4752 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4749 autocall would overtake data access for objects with both
4753 autocall would overtake data access for objects with both
4750 __getitem__ and __call__.
4754 __getitem__ and __call__.
4751
4755
4752 2003-08-19 *** Released version 0.5.0-rc1
4756 2003-08-19 *** Released version 0.5.0-rc1
4753
4757
4754 2003-08-19 Fernando Perez <fperez@colorado.edu>
4758 2003-08-19 Fernando Perez <fperez@colorado.edu>
4755
4759
4756 * IPython/deep_reload.py (load_tail): single tiny change here
4760 * IPython/deep_reload.py (load_tail): single tiny change here
4757 seems to fix the long-standing bug of dreload() failing to work
4761 seems to fix the long-standing bug of dreload() failing to work
4758 for dotted names. But this module is pretty tricky, so I may have
4762 for dotted names. But this module is pretty tricky, so I may have
4759 missed some subtlety. Needs more testing!.
4763 missed some subtlety. Needs more testing!.
4760
4764
4761 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4765 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4762 exceptions which have badly implemented __str__ methods.
4766 exceptions which have badly implemented __str__ methods.
4763 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4767 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4764 which I've been getting reports about from Python 2.3 users. I
4768 which I've been getting reports about from Python 2.3 users. I
4765 wish I had a simple test case to reproduce the problem, so I could
4769 wish I had a simple test case to reproduce the problem, so I could
4766 either write a cleaner workaround or file a bug report if
4770 either write a cleaner workaround or file a bug report if
4767 necessary.
4771 necessary.
4768
4772
4769 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4773 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4770 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4774 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4771 a bug report by Tjabo Kloppenburg.
4775 a bug report by Tjabo Kloppenburg.
4772
4776
4773 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4777 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4774 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4778 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4775 seems rather unstable. Thanks to a bug report by Tjabo
4779 seems rather unstable. Thanks to a bug report by Tjabo
4776 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4780 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4777
4781
4778 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4782 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4779 this out soon because of the critical fixes in the inner loop for
4783 this out soon because of the critical fixes in the inner loop for
4780 generators.
4784 generators.
4781
4785
4782 * IPython/Magic.py (Magic.getargspec): removed. This (and
4786 * IPython/Magic.py (Magic.getargspec): removed. This (and
4783 _get_def) have been obsoleted by OInspect for a long time, I
4787 _get_def) have been obsoleted by OInspect for a long time, I
4784 hadn't noticed that they were dead code.
4788 hadn't noticed that they were dead code.
4785 (Magic._ofind): restored _ofind functionality for a few literals
4789 (Magic._ofind): restored _ofind functionality for a few literals
4786 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4790 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4787 for things like "hello".capitalize?, since that would require a
4791 for things like "hello".capitalize?, since that would require a
4788 potentially dangerous eval() again.
4792 potentially dangerous eval() again.
4789
4793
4790 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4794 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4791 logic a bit more to clean up the escapes handling and minimize the
4795 logic a bit more to clean up the escapes handling and minimize the
4792 use of _ofind to only necessary cases. The interactive 'feel' of
4796 use of _ofind to only necessary cases. The interactive 'feel' of
4793 IPython should have improved quite a bit with the changes in
4797 IPython should have improved quite a bit with the changes in
4794 _prefilter and _ofind (besides being far safer than before).
4798 _prefilter and _ofind (besides being far safer than before).
4795
4799
4796 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4800 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4797 obscure, never reported). Edit would fail to find the object to
4801 obscure, never reported). Edit would fail to find the object to
4798 edit under some circumstances.
4802 edit under some circumstances.
4799 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4803 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4800 which were causing double-calling of generators. Those eval calls
4804 which were causing double-calling of generators. Those eval calls
4801 were _very_ dangerous, since code with side effects could be
4805 were _very_ dangerous, since code with side effects could be
4802 triggered. As they say, 'eval is evil'... These were the
4806 triggered. As they say, 'eval is evil'... These were the
4803 nastiest evals in IPython. Besides, _ofind is now far simpler,
4807 nastiest evals in IPython. Besides, _ofind is now far simpler,
4804 and it should also be quite a bit faster. Its use of inspect is
4808 and it should also be quite a bit faster. Its use of inspect is
4805 also safer, so perhaps some of the inspect-related crashes I've
4809 also safer, so perhaps some of the inspect-related crashes I've
4806 seen lately with Python 2.3 might be taken care of. That will
4810 seen lately with Python 2.3 might be taken care of. That will
4807 need more testing.
4811 need more testing.
4808
4812
4809 2003-08-17 Fernando Perez <fperez@colorado.edu>
4813 2003-08-17 Fernando Perez <fperez@colorado.edu>
4810
4814
4811 * IPython/iplib.py (InteractiveShell._prefilter): significant
4815 * IPython/iplib.py (InteractiveShell._prefilter): significant
4812 simplifications to the logic for handling user escapes. Faster
4816 simplifications to the logic for handling user escapes. Faster
4813 and simpler code.
4817 and simpler code.
4814
4818
4815 2003-08-14 Fernando Perez <fperez@colorado.edu>
4819 2003-08-14 Fernando Perez <fperez@colorado.edu>
4816
4820
4817 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4821 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4818 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4822 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4819 but it should be quite a bit faster. And the recursive version
4823 but it should be quite a bit faster. And the recursive version
4820 generated O(log N) intermediate storage for all rank>1 arrays,
4824 generated O(log N) intermediate storage for all rank>1 arrays,
4821 even if they were contiguous.
4825 even if they were contiguous.
4822 (l1norm): Added this function.
4826 (l1norm): Added this function.
4823 (norm): Added this function for arbitrary norms (including
4827 (norm): Added this function for arbitrary norms (including
4824 l-infinity). l1 and l2 are still special cases for convenience
4828 l-infinity). l1 and l2 are still special cases for convenience
4825 and speed.
4829 and speed.
4826
4830
4827 2003-08-03 Fernando Perez <fperez@colorado.edu>
4831 2003-08-03 Fernando Perez <fperez@colorado.edu>
4828
4832
4829 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4833 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4830 exceptions, which now raise PendingDeprecationWarnings in Python
4834 exceptions, which now raise PendingDeprecationWarnings in Python
4831 2.3. There were some in Magic and some in Gnuplot2.
4835 2.3. There were some in Magic and some in Gnuplot2.
4832
4836
4833 2003-06-30 Fernando Perez <fperez@colorado.edu>
4837 2003-06-30 Fernando Perez <fperez@colorado.edu>
4834
4838
4835 * IPython/genutils.py (page): modified to call curses only for
4839 * IPython/genutils.py (page): modified to call curses only for
4836 terminals where TERM=='xterm'. After problems under many other
4840 terminals where TERM=='xterm'. After problems under many other
4837 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4841 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4838
4842
4839 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4843 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4840 would be triggered when readline was absent. This was just an old
4844 would be triggered when readline was absent. This was just an old
4841 debugging statement I'd forgotten to take out.
4845 debugging statement I'd forgotten to take out.
4842
4846
4843 2003-06-20 Fernando Perez <fperez@colorado.edu>
4847 2003-06-20 Fernando Perez <fperez@colorado.edu>
4844
4848
4845 * IPython/genutils.py (clock): modified to return only user time
4849 * IPython/genutils.py (clock): modified to return only user time
4846 (not counting system time), after a discussion on scipy. While
4850 (not counting system time), after a discussion on scipy. While
4847 system time may be a useful quantity occasionally, it may much
4851 system time may be a useful quantity occasionally, it may much
4848 more easily be skewed by occasional swapping or other similar
4852 more easily be skewed by occasional swapping or other similar
4849 activity.
4853 activity.
4850
4854
4851 2003-06-05 Fernando Perez <fperez@colorado.edu>
4855 2003-06-05 Fernando Perez <fperez@colorado.edu>
4852
4856
4853 * IPython/numutils.py (identity): new function, for building
4857 * IPython/numutils.py (identity): new function, for building
4854 arbitrary rank Kronecker deltas (mostly backwards compatible with
4858 arbitrary rank Kronecker deltas (mostly backwards compatible with
4855 Numeric.identity)
4859 Numeric.identity)
4856
4860
4857 2003-06-03 Fernando Perez <fperez@colorado.edu>
4861 2003-06-03 Fernando Perez <fperez@colorado.edu>
4858
4862
4859 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4863 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4860 arguments passed to magics with spaces, to allow trailing '\' to
4864 arguments passed to magics with spaces, to allow trailing '\' to
4861 work normally (mainly for Windows users).
4865 work normally (mainly for Windows users).
4862
4866
4863 2003-05-29 Fernando Perez <fperez@colorado.edu>
4867 2003-05-29 Fernando Perez <fperez@colorado.edu>
4864
4868
4865 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4869 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4866 instead of pydoc.help. This fixes a bizarre behavior where
4870 instead of pydoc.help. This fixes a bizarre behavior where
4867 printing '%s' % locals() would trigger the help system. Now
4871 printing '%s' % locals() would trigger the help system. Now
4868 ipython behaves like normal python does.
4872 ipython behaves like normal python does.
4869
4873
4870 Note that if one does 'from pydoc import help', the bizarre
4874 Note that if one does 'from pydoc import help', the bizarre
4871 behavior returns, but this will also happen in normal python, so
4875 behavior returns, but this will also happen in normal python, so
4872 it's not an ipython bug anymore (it has to do with how pydoc.help
4876 it's not an ipython bug anymore (it has to do with how pydoc.help
4873 is implemented).
4877 is implemented).
4874
4878
4875 2003-05-22 Fernando Perez <fperez@colorado.edu>
4879 2003-05-22 Fernando Perez <fperez@colorado.edu>
4876
4880
4877 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4881 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4878 return [] instead of None when nothing matches, also match to end
4882 return [] instead of None when nothing matches, also match to end
4879 of line. Patch by Gary Bishop.
4883 of line. Patch by Gary Bishop.
4880
4884
4881 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4885 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4882 protection as before, for files passed on the command line. This
4886 protection as before, for files passed on the command line. This
4883 prevents the CrashHandler from kicking in if user files call into
4887 prevents the CrashHandler from kicking in if user files call into
4884 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4888 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4885 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4889 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4886
4890
4887 2003-05-20 *** Released version 0.4.0
4891 2003-05-20 *** Released version 0.4.0
4888
4892
4889 2003-05-20 Fernando Perez <fperez@colorado.edu>
4893 2003-05-20 Fernando Perez <fperez@colorado.edu>
4890
4894
4891 * setup.py: added support for manpages. It's a bit hackish b/c of
4895 * setup.py: added support for manpages. It's a bit hackish b/c of
4892 a bug in the way the bdist_rpm distutils target handles gzipped
4896 a bug in the way the bdist_rpm distutils target handles gzipped
4893 manpages, but it works. After a patch by Jack.
4897 manpages, but it works. After a patch by Jack.
4894
4898
4895 2003-05-19 Fernando Perez <fperez@colorado.edu>
4899 2003-05-19 Fernando Perez <fperez@colorado.edu>
4896
4900
4897 * IPython/numutils.py: added a mockup of the kinds module, since
4901 * IPython/numutils.py: added a mockup of the kinds module, since
4898 it was recently removed from Numeric. This way, numutils will
4902 it was recently removed from Numeric. This way, numutils will
4899 work for all users even if they are missing kinds.
4903 work for all users even if they are missing kinds.
4900
4904
4901 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4905 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4902 failure, which can occur with SWIG-wrapped extensions. After a
4906 failure, which can occur with SWIG-wrapped extensions. After a
4903 crash report from Prabhu.
4907 crash report from Prabhu.
4904
4908
4905 2003-05-16 Fernando Perez <fperez@colorado.edu>
4909 2003-05-16 Fernando Perez <fperez@colorado.edu>
4906
4910
4907 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4911 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4908 protect ipython from user code which may call directly
4912 protect ipython from user code which may call directly
4909 sys.excepthook (this looks like an ipython crash to the user, even
4913 sys.excepthook (this looks like an ipython crash to the user, even
4910 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4914 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4911 This is especially important to help users of WxWindows, but may
4915 This is especially important to help users of WxWindows, but may
4912 also be useful in other cases.
4916 also be useful in other cases.
4913
4917
4914 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4918 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4915 an optional tb_offset to be specified, and to preserve exception
4919 an optional tb_offset to be specified, and to preserve exception
4916 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4920 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4917
4921
4918 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4922 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4919
4923
4920 2003-05-15 Fernando Perez <fperez@colorado.edu>
4924 2003-05-15 Fernando Perez <fperez@colorado.edu>
4921
4925
4922 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4926 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4923 installing for a new user under Windows.
4927 installing for a new user under Windows.
4924
4928
4925 2003-05-12 Fernando Perez <fperez@colorado.edu>
4929 2003-05-12 Fernando Perez <fperez@colorado.edu>
4926
4930
4927 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4931 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4928 handler for Emacs comint-based lines. Currently it doesn't do
4932 handler for Emacs comint-based lines. Currently it doesn't do
4929 much (but importantly, it doesn't update the history cache). In
4933 much (but importantly, it doesn't update the history cache). In
4930 the future it may be expanded if Alex needs more functionality
4934 the future it may be expanded if Alex needs more functionality
4931 there.
4935 there.
4932
4936
4933 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4937 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4934 info to crash reports.
4938 info to crash reports.
4935
4939
4936 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4940 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4937 just like Python's -c. Also fixed crash with invalid -color
4941 just like Python's -c. Also fixed crash with invalid -color
4938 option value at startup. Thanks to Will French
4942 option value at startup. Thanks to Will French
4939 <wfrench-AT-bestweb.net> for the bug report.
4943 <wfrench-AT-bestweb.net> for the bug report.
4940
4944
4941 2003-05-09 Fernando Perez <fperez@colorado.edu>
4945 2003-05-09 Fernando Perez <fperez@colorado.edu>
4942
4946
4943 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4947 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4944 to EvalDict (it's a mapping, after all) and simplified its code
4948 to EvalDict (it's a mapping, after all) and simplified its code
4945 quite a bit, after a nice discussion on c.l.py where Gustavo
4949 quite a bit, after a nice discussion on c.l.py where Gustavo
4946 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4950 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4947
4951
4948 2003-04-30 Fernando Perez <fperez@colorado.edu>
4952 2003-04-30 Fernando Perez <fperez@colorado.edu>
4949
4953
4950 * IPython/genutils.py (timings_out): modified it to reduce its
4954 * IPython/genutils.py (timings_out): modified it to reduce its
4951 overhead in the common reps==1 case.
4955 overhead in the common reps==1 case.
4952
4956
4953 2003-04-29 Fernando Perez <fperez@colorado.edu>
4957 2003-04-29 Fernando Perez <fperez@colorado.edu>
4954
4958
4955 * IPython/genutils.py (timings_out): Modified to use the resource
4959 * IPython/genutils.py (timings_out): Modified to use the resource
4956 module, which avoids the wraparound problems of time.clock().
4960 module, which avoids the wraparound problems of time.clock().
4957
4961
4958 2003-04-17 *** Released version 0.2.15pre4
4962 2003-04-17 *** Released version 0.2.15pre4
4959
4963
4960 2003-04-17 Fernando Perez <fperez@colorado.edu>
4964 2003-04-17 Fernando Perez <fperez@colorado.edu>
4961
4965
4962 * setup.py (scriptfiles): Split windows-specific stuff over to a
4966 * setup.py (scriptfiles): Split windows-specific stuff over to a
4963 separate file, in an attempt to have a Windows GUI installer.
4967 separate file, in an attempt to have a Windows GUI installer.
4964 That didn't work, but part of the groundwork is done.
4968 That didn't work, but part of the groundwork is done.
4965
4969
4966 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4970 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4967 indent/unindent with 4 spaces. Particularly useful in combination
4971 indent/unindent with 4 spaces. Particularly useful in combination
4968 with the new auto-indent option.
4972 with the new auto-indent option.
4969
4973
4970 2003-04-16 Fernando Perez <fperez@colorado.edu>
4974 2003-04-16 Fernando Perez <fperez@colorado.edu>
4971
4975
4972 * IPython/Magic.py: various replacements of self.rc for
4976 * IPython/Magic.py: various replacements of self.rc for
4973 self.shell.rc. A lot more remains to be done to fully disentangle
4977 self.shell.rc. A lot more remains to be done to fully disentangle
4974 this class from the main Shell class.
4978 this class from the main Shell class.
4975
4979
4976 * IPython/GnuplotRuntime.py: added checks for mouse support so
4980 * IPython/GnuplotRuntime.py: added checks for mouse support so
4977 that we don't try to enable it if the current gnuplot doesn't
4981 that we don't try to enable it if the current gnuplot doesn't
4978 really support it. Also added checks so that we don't try to
4982 really support it. Also added checks so that we don't try to
4979 enable persist under Windows (where Gnuplot doesn't recognize the
4983 enable persist under Windows (where Gnuplot doesn't recognize the
4980 option).
4984 option).
4981
4985
4982 * IPython/iplib.py (InteractiveShell.interact): Added optional
4986 * IPython/iplib.py (InteractiveShell.interact): Added optional
4983 auto-indenting code, after a patch by King C. Shu
4987 auto-indenting code, after a patch by King C. Shu
4984 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4988 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4985 get along well with pasting indented code. If I ever figure out
4989 get along well with pasting indented code. If I ever figure out
4986 how to make that part go well, it will become on by default.
4990 how to make that part go well, it will become on by default.
4987
4991
4988 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4992 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4989 crash ipython if there was an unmatched '%' in the user's prompt
4993 crash ipython if there was an unmatched '%' in the user's prompt
4990 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4994 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4991
4995
4992 * IPython/iplib.py (InteractiveShell.interact): removed the
4996 * IPython/iplib.py (InteractiveShell.interact): removed the
4993 ability to ask the user whether he wants to crash or not at the
4997 ability to ask the user whether he wants to crash or not at the
4994 'last line' exception handler. Calling functions at that point
4998 'last line' exception handler. Calling functions at that point
4995 changes the stack, and the error reports would have incorrect
4999 changes the stack, and the error reports would have incorrect
4996 tracebacks.
5000 tracebacks.
4997
5001
4998 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
5002 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4999 pass through a peger a pretty-printed form of any object. After a
5003 pass through a peger a pretty-printed form of any object. After a
5000 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
5004 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
5001
5005
5002 2003-04-14 Fernando Perez <fperez@colorado.edu>
5006 2003-04-14 Fernando Perez <fperez@colorado.edu>
5003
5007
5004 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
5008 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
5005 all files in ~ would be modified at first install (instead of
5009 all files in ~ would be modified at first install (instead of
5006 ~/.ipython). This could be potentially disastrous, as the
5010 ~/.ipython). This could be potentially disastrous, as the
5007 modification (make line-endings native) could damage binary files.
5011 modification (make line-endings native) could damage binary files.
5008
5012
5009 2003-04-10 Fernando Perez <fperez@colorado.edu>
5013 2003-04-10 Fernando Perez <fperez@colorado.edu>
5010
5014
5011 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
5015 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
5012 handle only lines which are invalid python. This now means that
5016 handle only lines which are invalid python. This now means that
5013 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
5017 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
5014 for the bug report.
5018 for the bug report.
5015
5019
5016 2003-04-01 Fernando Perez <fperez@colorado.edu>
5020 2003-04-01 Fernando Perez <fperez@colorado.edu>
5017
5021
5018 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
5022 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
5019 where failing to set sys.last_traceback would crash pdb.pm().
5023 where failing to set sys.last_traceback would crash pdb.pm().
5020 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
5024 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
5021 report.
5025 report.
5022
5026
5023 2003-03-25 Fernando Perez <fperez@colorado.edu>
5027 2003-03-25 Fernando Perez <fperez@colorado.edu>
5024
5028
5025 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
5029 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
5026 before printing it (it had a lot of spurious blank lines at the
5030 before printing it (it had a lot of spurious blank lines at the
5027 end).
5031 end).
5028
5032
5029 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
5033 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
5030 output would be sent 21 times! Obviously people don't use this
5034 output would be sent 21 times! Obviously people don't use this
5031 too often, or I would have heard about it.
5035 too often, or I would have heard about it.
5032
5036
5033 2003-03-24 Fernando Perez <fperez@colorado.edu>
5037 2003-03-24 Fernando Perez <fperez@colorado.edu>
5034
5038
5035 * setup.py (scriptfiles): renamed the data_files parameter from
5039 * setup.py (scriptfiles): renamed the data_files parameter from
5036 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
5040 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
5037 for the patch.
5041 for the patch.
5038
5042
5039 2003-03-20 Fernando Perez <fperez@colorado.edu>
5043 2003-03-20 Fernando Perez <fperez@colorado.edu>
5040
5044
5041 * IPython/genutils.py (error): added error() and fatal()
5045 * IPython/genutils.py (error): added error() and fatal()
5042 functions.
5046 functions.
5043
5047
5044 2003-03-18 *** Released version 0.2.15pre3
5048 2003-03-18 *** Released version 0.2.15pre3
5045
5049
5046 2003-03-18 Fernando Perez <fperez@colorado.edu>
5050 2003-03-18 Fernando Perez <fperez@colorado.edu>
5047
5051
5048 * setupext/install_data_ext.py
5052 * setupext/install_data_ext.py
5049 (install_data_ext.initialize_options): Class contributed by Jack
5053 (install_data_ext.initialize_options): Class contributed by Jack
5050 Moffit for fixing the old distutils hack. He is sending this to
5054 Moffit for fixing the old distutils hack. He is sending this to
5051 the distutils folks so in the future we may not need it as a
5055 the distutils folks so in the future we may not need it as a
5052 private fix.
5056 private fix.
5053
5057
5054 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
5058 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
5055 changes for Debian packaging. See his patch for full details.
5059 changes for Debian packaging. See his patch for full details.
5056 The old distutils hack of making the ipythonrc* files carry a
5060 The old distutils hack of making the ipythonrc* files carry a
5057 bogus .py extension is gone, at last. Examples were moved to a
5061 bogus .py extension is gone, at last. Examples were moved to a
5058 separate subdir under doc/, and the separate executable scripts
5062 separate subdir under doc/, and the separate executable scripts
5059 now live in their own directory. Overall a great cleanup. The
5063 now live in their own directory. Overall a great cleanup. The
5060 manual was updated to use the new files, and setup.py has been
5064 manual was updated to use the new files, and setup.py has been
5061 fixed for this setup.
5065 fixed for this setup.
5062
5066
5063 * IPython/PyColorize.py (Parser.usage): made non-executable and
5067 * IPython/PyColorize.py (Parser.usage): made non-executable and
5064 created a pycolor wrapper around it to be included as a script.
5068 created a pycolor wrapper around it to be included as a script.
5065
5069
5066 2003-03-12 *** Released version 0.2.15pre2
5070 2003-03-12 *** Released version 0.2.15pre2
5067
5071
5068 2003-03-12 Fernando Perez <fperez@colorado.edu>
5072 2003-03-12 Fernando Perez <fperez@colorado.edu>
5069
5073
5070 * IPython/ColorANSI.py (make_color_table): Finally fixed the
5074 * IPython/ColorANSI.py (make_color_table): Finally fixed the
5071 long-standing problem with garbage characters in some terminals.
5075 long-standing problem with garbage characters in some terminals.
5072 The issue was really that the \001 and \002 escapes must _only_ be
5076 The issue was really that the \001 and \002 escapes must _only_ be
5073 passed to input prompts (which call readline), but _never_ to
5077 passed to input prompts (which call readline), but _never_ to
5074 normal text to be printed on screen. I changed ColorANSI to have
5078 normal text to be printed on screen. I changed ColorANSI to have
5075 two classes: TermColors and InputTermColors, each with the
5079 two classes: TermColors and InputTermColors, each with the
5076 appropriate escapes for input prompts or normal text. The code in
5080 appropriate escapes for input prompts or normal text. The code in
5077 Prompts.py got slightly more complicated, but this very old and
5081 Prompts.py got slightly more complicated, but this very old and
5078 annoying bug is finally fixed.
5082 annoying bug is finally fixed.
5079
5083
5080 All the credit for nailing down the real origin of this problem
5084 All the credit for nailing down the real origin of this problem
5081 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
5085 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
5082 *Many* thanks to him for spending quite a bit of effort on this.
5086 *Many* thanks to him for spending quite a bit of effort on this.
5083
5087
5084 2003-03-05 *** Released version 0.2.15pre1
5088 2003-03-05 *** Released version 0.2.15pre1
5085
5089
5086 2003-03-03 Fernando Perez <fperez@colorado.edu>
5090 2003-03-03 Fernando Perez <fperez@colorado.edu>
5087
5091
5088 * IPython/FakeModule.py: Moved the former _FakeModule to a
5092 * IPython/FakeModule.py: Moved the former _FakeModule to a
5089 separate file, because it's also needed by Magic (to fix a similar
5093 separate file, because it's also needed by Magic (to fix a similar
5090 pickle-related issue in @run).
5094 pickle-related issue in @run).
5091
5095
5092 2003-03-02 Fernando Perez <fperez@colorado.edu>
5096 2003-03-02 Fernando Perez <fperez@colorado.edu>
5093
5097
5094 * IPython/Magic.py (Magic.magic_autocall): new magic to control
5098 * IPython/Magic.py (Magic.magic_autocall): new magic to control
5095 the autocall option at runtime.
5099 the autocall option at runtime.
5096 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
5100 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
5097 across Magic.py to start separating Magic from InteractiveShell.
5101 across Magic.py to start separating Magic from InteractiveShell.
5098 (Magic._ofind): Fixed to return proper namespace for dotted
5102 (Magic._ofind): Fixed to return proper namespace for dotted
5099 names. Before, a dotted name would always return 'not currently
5103 names. Before, a dotted name would always return 'not currently
5100 defined', because it would find the 'parent'. s.x would be found,
5104 defined', because it would find the 'parent'. s.x would be found,
5101 but since 'x' isn't defined by itself, it would get confused.
5105 but since 'x' isn't defined by itself, it would get confused.
5102 (Magic.magic_run): Fixed pickling problems reported by Ralf
5106 (Magic.magic_run): Fixed pickling problems reported by Ralf
5103 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
5107 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
5104 that I'd used when Mike Heeter reported similar issues at the
5108 that I'd used when Mike Heeter reported similar issues at the
5105 top-level, but now for @run. It boils down to injecting the
5109 top-level, but now for @run. It boils down to injecting the
5106 namespace where code is being executed with something that looks
5110 namespace where code is being executed with something that looks
5107 enough like a module to fool pickle.dump(). Since a pickle stores
5111 enough like a module to fool pickle.dump(). Since a pickle stores
5108 a named reference to the importing module, we need this for
5112 a named reference to the importing module, we need this for
5109 pickles to save something sensible.
5113 pickles to save something sensible.
5110
5114
5111 * IPython/ipmaker.py (make_IPython): added an autocall option.
5115 * IPython/ipmaker.py (make_IPython): added an autocall option.
5112
5116
5113 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
5117 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
5114 the auto-eval code. Now autocalling is an option, and the code is
5118 the auto-eval code. Now autocalling is an option, and the code is
5115 also vastly safer. There is no more eval() involved at all.
5119 also vastly safer. There is no more eval() involved at all.
5116
5120
5117 2003-03-01 Fernando Perez <fperez@colorado.edu>
5121 2003-03-01 Fernando Perez <fperez@colorado.edu>
5118
5122
5119 * IPython/Magic.py (Magic._ofind): Changed interface to return a
5123 * IPython/Magic.py (Magic._ofind): Changed interface to return a
5120 dict with named keys instead of a tuple.
5124 dict with named keys instead of a tuple.
5121
5125
5122 * IPython: Started using CVS for IPython as of 0.2.15pre1.
5126 * IPython: Started using CVS for IPython as of 0.2.15pre1.
5123
5127
5124 * setup.py (make_shortcut): Fixed message about directories
5128 * setup.py (make_shortcut): Fixed message about directories
5125 created during Windows installation (the directories were ok, just
5129 created during Windows installation (the directories were ok, just
5126 the printed message was misleading). Thanks to Chris Liechti
5130 the printed message was misleading). Thanks to Chris Liechti
5127 <cliechti-AT-gmx.net> for the heads up.
5131 <cliechti-AT-gmx.net> for the heads up.
5128
5132
5129 2003-02-21 Fernando Perez <fperez@colorado.edu>
5133 2003-02-21 Fernando Perez <fperez@colorado.edu>
5130
5134
5131 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
5135 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
5132 of ValueError exception when checking for auto-execution. This
5136 of ValueError exception when checking for auto-execution. This
5133 one is raised by things like Numeric arrays arr.flat when the
5137 one is raised by things like Numeric arrays arr.flat when the
5134 array is non-contiguous.
5138 array is non-contiguous.
5135
5139
5136 2003-01-31 Fernando Perez <fperez@colorado.edu>
5140 2003-01-31 Fernando Perez <fperez@colorado.edu>
5137
5141
5138 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
5142 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
5139 not return any value at all (even though the command would get
5143 not return any value at all (even though the command would get
5140 executed).
5144 executed).
5141 (xsys): Flush stdout right after printing the command to ensure
5145 (xsys): Flush stdout right after printing the command to ensure
5142 proper ordering of commands and command output in the total
5146 proper ordering of commands and command output in the total
5143 output.
5147 output.
5144 (SystemExec/xsys/bq): Switched the names of xsys/bq and
5148 (SystemExec/xsys/bq): Switched the names of xsys/bq and
5145 system/getoutput as defaults. The old ones are kept for
5149 system/getoutput as defaults. The old ones are kept for
5146 compatibility reasons, so no code which uses this library needs
5150 compatibility reasons, so no code which uses this library needs
5147 changing.
5151 changing.
5148
5152
5149 2003-01-27 *** Released version 0.2.14
5153 2003-01-27 *** Released version 0.2.14
5150
5154
5151 2003-01-25 Fernando Perez <fperez@colorado.edu>
5155 2003-01-25 Fernando Perez <fperez@colorado.edu>
5152
5156
5153 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
5157 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
5154 functions defined in previous edit sessions could not be re-edited
5158 functions defined in previous edit sessions could not be re-edited
5155 (because the temp files were immediately removed). Now temp files
5159 (because the temp files were immediately removed). Now temp files
5156 are removed only at IPython's exit.
5160 are removed only at IPython's exit.
5157 (Magic.magic_run): Improved @run to perform shell-like expansions
5161 (Magic.magic_run): Improved @run to perform shell-like expansions
5158 on its arguments (~users and $VARS). With this, @run becomes more
5162 on its arguments (~users and $VARS). With this, @run becomes more
5159 like a normal command-line.
5163 like a normal command-line.
5160
5164
5161 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
5165 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
5162 bugs related to embedding and cleaned up that code. A fairly
5166 bugs related to embedding and cleaned up that code. A fairly
5163 important one was the impossibility to access the global namespace
5167 important one was the impossibility to access the global namespace
5164 through the embedded IPython (only local variables were visible).
5168 through the embedded IPython (only local variables were visible).
5165
5169
5166 2003-01-14 Fernando Perez <fperez@colorado.edu>
5170 2003-01-14 Fernando Perez <fperez@colorado.edu>
5167
5171
5168 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
5172 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
5169 auto-calling to be a bit more conservative. Now it doesn't get
5173 auto-calling to be a bit more conservative. Now it doesn't get
5170 triggered if any of '!=()<>' are in the rest of the input line, to
5174 triggered if any of '!=()<>' are in the rest of the input line, to
5171 allow comparing callables. Thanks to Alex for the heads up.
5175 allow comparing callables. Thanks to Alex for the heads up.
5172
5176
5173 2003-01-07 Fernando Perez <fperez@colorado.edu>
5177 2003-01-07 Fernando Perez <fperez@colorado.edu>
5174
5178
5175 * IPython/genutils.py (page): fixed estimation of the number of
5179 * IPython/genutils.py (page): fixed estimation of the number of
5176 lines in a string to be paged to simply count newlines. This
5180 lines in a string to be paged to simply count newlines. This
5177 prevents over-guessing due to embedded escape sequences. A better
5181 prevents over-guessing due to embedded escape sequences. A better
5178 long-term solution would involve stripping out the control chars
5182 long-term solution would involve stripping out the control chars
5179 for the count, but it's potentially so expensive I just don't
5183 for the count, but it's potentially so expensive I just don't
5180 think it's worth doing.
5184 think it's worth doing.
5181
5185
5182 2002-12-19 *** Released version 0.2.14pre50
5186 2002-12-19 *** Released version 0.2.14pre50
5183
5187
5184 2002-12-19 Fernando Perez <fperez@colorado.edu>
5188 2002-12-19 Fernando Perez <fperez@colorado.edu>
5185
5189
5186 * tools/release (version): Changed release scripts to inform
5190 * tools/release (version): Changed release scripts to inform
5187 Andrea and build a NEWS file with a list of recent changes.
5191 Andrea and build a NEWS file with a list of recent changes.
5188
5192
5189 * IPython/ColorANSI.py (__all__): changed terminal detection
5193 * IPython/ColorANSI.py (__all__): changed terminal detection
5190 code. Seems to work better for xterms without breaking
5194 code. Seems to work better for xterms without breaking
5191 konsole. Will need more testing to determine if WinXP and Mac OSX
5195 konsole. Will need more testing to determine if WinXP and Mac OSX
5192 also work ok.
5196 also work ok.
5193
5197
5194 2002-12-18 *** Released version 0.2.14pre49
5198 2002-12-18 *** Released version 0.2.14pre49
5195
5199
5196 2002-12-18 Fernando Perez <fperez@colorado.edu>
5200 2002-12-18 Fernando Perez <fperez@colorado.edu>
5197
5201
5198 * Docs: added new info about Mac OSX, from Andrea.
5202 * Docs: added new info about Mac OSX, from Andrea.
5199
5203
5200 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5204 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5201 allow direct plotting of python strings whose format is the same
5205 allow direct plotting of python strings whose format is the same
5202 of gnuplot data files.
5206 of gnuplot data files.
5203
5207
5204 2002-12-16 Fernando Perez <fperez@colorado.edu>
5208 2002-12-16 Fernando Perez <fperez@colorado.edu>
5205
5209
5206 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5210 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5207 value of exit question to be acknowledged.
5211 value of exit question to be acknowledged.
5208
5212
5209 2002-12-03 Fernando Perez <fperez@colorado.edu>
5213 2002-12-03 Fernando Perez <fperez@colorado.edu>
5210
5214
5211 * IPython/ipmaker.py: removed generators, which had been added
5215 * IPython/ipmaker.py: removed generators, which had been added
5212 by mistake in an earlier debugging run. This was causing trouble
5216 by mistake in an earlier debugging run. This was causing trouble
5213 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5217 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5214 for pointing this out.
5218 for pointing this out.
5215
5219
5216 2002-11-17 Fernando Perez <fperez@colorado.edu>
5220 2002-11-17 Fernando Perez <fperez@colorado.edu>
5217
5221
5218 * Manual: updated the Gnuplot section.
5222 * Manual: updated the Gnuplot section.
5219
5223
5220 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5224 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5221 a much better split of what goes in Runtime and what goes in
5225 a much better split of what goes in Runtime and what goes in
5222 Interactive.
5226 Interactive.
5223
5227
5224 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5228 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5225 being imported from iplib.
5229 being imported from iplib.
5226
5230
5227 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5231 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5228 for command-passing. Now the global Gnuplot instance is called
5232 for command-passing. Now the global Gnuplot instance is called
5229 'gp' instead of 'g', which was really a far too fragile and
5233 'gp' instead of 'g', which was really a far too fragile and
5230 common name.
5234 common name.
5231
5235
5232 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5236 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5233 bounding boxes generated by Gnuplot for square plots.
5237 bounding boxes generated by Gnuplot for square plots.
5234
5238
5235 * IPython/genutils.py (popkey): new function added. I should
5239 * IPython/genutils.py (popkey): new function added. I should
5236 suggest this on c.l.py as a dict method, it seems useful.
5240 suggest this on c.l.py as a dict method, it seems useful.
5237
5241
5238 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5242 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5239 to transparently handle PostScript generation. MUCH better than
5243 to transparently handle PostScript generation. MUCH better than
5240 the previous plot_eps/replot_eps (which I removed now). The code
5244 the previous plot_eps/replot_eps (which I removed now). The code
5241 is also fairly clean and well documented now (including
5245 is also fairly clean and well documented now (including
5242 docstrings).
5246 docstrings).
5243
5247
5244 2002-11-13 Fernando Perez <fperez@colorado.edu>
5248 2002-11-13 Fernando Perez <fperez@colorado.edu>
5245
5249
5246 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5250 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5247 (inconsistent with options).
5251 (inconsistent with options).
5248
5252
5249 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5253 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5250 manually disabled, I don't know why. Fixed it.
5254 manually disabled, I don't know why. Fixed it.
5251 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5255 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5252 eps output.
5256 eps output.
5253
5257
5254 2002-11-12 Fernando Perez <fperez@colorado.edu>
5258 2002-11-12 Fernando Perez <fperez@colorado.edu>
5255
5259
5256 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5260 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5257 don't propagate up to caller. Fixes crash reported by François
5261 don't propagate up to caller. Fixes crash reported by François
5258 Pinard.
5262 Pinard.
5259
5263
5260 2002-11-09 Fernando Perez <fperez@colorado.edu>
5264 2002-11-09 Fernando Perez <fperez@colorado.edu>
5261
5265
5262 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5266 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5263 history file for new users.
5267 history file for new users.
5264 (make_IPython): fixed bug where initial install would leave the
5268 (make_IPython): fixed bug where initial install would leave the
5265 user running in the .ipython dir.
5269 user running in the .ipython dir.
5266 (make_IPython): fixed bug where config dir .ipython would be
5270 (make_IPython): fixed bug where config dir .ipython would be
5267 created regardless of the given -ipythondir option. Thanks to Cory
5271 created regardless of the given -ipythondir option. Thanks to Cory
5268 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5272 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5269
5273
5270 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5274 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5271 type confirmations. Will need to use it in all of IPython's code
5275 type confirmations. Will need to use it in all of IPython's code
5272 consistently.
5276 consistently.
5273
5277
5274 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5278 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5275 context to print 31 lines instead of the default 5. This will make
5279 context to print 31 lines instead of the default 5. This will make
5276 the crash reports extremely detailed in case the problem is in
5280 the crash reports extremely detailed in case the problem is in
5277 libraries I don't have access to.
5281 libraries I don't have access to.
5278
5282
5279 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5283 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5280 line of defense' code to still crash, but giving users fair
5284 line of defense' code to still crash, but giving users fair
5281 warning. I don't want internal errors to go unreported: if there's
5285 warning. I don't want internal errors to go unreported: if there's
5282 an internal problem, IPython should crash and generate a full
5286 an internal problem, IPython should crash and generate a full
5283 report.
5287 report.
5284
5288
5285 2002-11-08 Fernando Perez <fperez@colorado.edu>
5289 2002-11-08 Fernando Perez <fperez@colorado.edu>
5286
5290
5287 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5291 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5288 otherwise uncaught exceptions which can appear if people set
5292 otherwise uncaught exceptions which can appear if people set
5289 sys.stdout to something badly broken. Thanks to a crash report
5293 sys.stdout to something badly broken. Thanks to a crash report
5290 from henni-AT-mail.brainbot.com.
5294 from henni-AT-mail.brainbot.com.
5291
5295
5292 2002-11-04 Fernando Perez <fperez@colorado.edu>
5296 2002-11-04 Fernando Perez <fperez@colorado.edu>
5293
5297
5294 * IPython/iplib.py (InteractiveShell.interact): added
5298 * IPython/iplib.py (InteractiveShell.interact): added
5295 __IPYTHON__active to the builtins. It's a flag which goes on when
5299 __IPYTHON__active to the builtins. It's a flag which goes on when
5296 the interaction starts and goes off again when it stops. This
5300 the interaction starts and goes off again when it stops. This
5297 allows embedding code to detect being inside IPython. Before this
5301 allows embedding code to detect being inside IPython. Before this
5298 was done via __IPYTHON__, but that only shows that an IPython
5302 was done via __IPYTHON__, but that only shows that an IPython
5299 instance has been created.
5303 instance has been created.
5300
5304
5301 * IPython/Magic.py (Magic.magic_env): I realized that in a
5305 * IPython/Magic.py (Magic.magic_env): I realized that in a
5302 UserDict, instance.data holds the data as a normal dict. So I
5306 UserDict, instance.data holds the data as a normal dict. So I
5303 modified @env to return os.environ.data instead of rebuilding a
5307 modified @env to return os.environ.data instead of rebuilding a
5304 dict by hand.
5308 dict by hand.
5305
5309
5306 2002-11-02 Fernando Perez <fperez@colorado.edu>
5310 2002-11-02 Fernando Perez <fperez@colorado.edu>
5307
5311
5308 * IPython/genutils.py (warn): changed so that level 1 prints no
5312 * IPython/genutils.py (warn): changed so that level 1 prints no
5309 header. Level 2 is now the default (with 'WARNING' header, as
5313 header. Level 2 is now the default (with 'WARNING' header, as
5310 before). I think I tracked all places where changes were needed in
5314 before). I think I tracked all places where changes were needed in
5311 IPython, but outside code using the old level numbering may have
5315 IPython, but outside code using the old level numbering may have
5312 broken.
5316 broken.
5313
5317
5314 * IPython/iplib.py (InteractiveShell.runcode): added this to
5318 * IPython/iplib.py (InteractiveShell.runcode): added this to
5315 handle the tracebacks in SystemExit traps correctly. The previous
5319 handle the tracebacks in SystemExit traps correctly. The previous
5316 code (through interact) was printing more of the stack than
5320 code (through interact) was printing more of the stack than
5317 necessary, showing IPython internal code to the user.
5321 necessary, showing IPython internal code to the user.
5318
5322
5319 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5323 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5320 default. Now that the default at the confirmation prompt is yes,
5324 default. Now that the default at the confirmation prompt is yes,
5321 it's not so intrusive. François' argument that ipython sessions
5325 it's not so intrusive. François' argument that ipython sessions
5322 tend to be complex enough not to lose them from an accidental C-d,
5326 tend to be complex enough not to lose them from an accidental C-d,
5323 is a valid one.
5327 is a valid one.
5324
5328
5325 * IPython/iplib.py (InteractiveShell.interact): added a
5329 * IPython/iplib.py (InteractiveShell.interact): added a
5326 showtraceback() call to the SystemExit trap, and modified the exit
5330 showtraceback() call to the SystemExit trap, and modified the exit
5327 confirmation to have yes as the default.
5331 confirmation to have yes as the default.
5328
5332
5329 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5333 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5330 this file. It's been gone from the code for a long time, this was
5334 this file. It's been gone from the code for a long time, this was
5331 simply leftover junk.
5335 simply leftover junk.
5332
5336
5333 2002-11-01 Fernando Perez <fperez@colorado.edu>
5337 2002-11-01 Fernando Perez <fperez@colorado.edu>
5334
5338
5335 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5339 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5336 added. If set, IPython now traps EOF and asks for
5340 added. If set, IPython now traps EOF and asks for
5337 confirmation. After a request by François Pinard.
5341 confirmation. After a request by François Pinard.
5338
5342
5339 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5343 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5340 of @abort, and with a new (better) mechanism for handling the
5344 of @abort, and with a new (better) mechanism for handling the
5341 exceptions.
5345 exceptions.
5342
5346
5343 2002-10-27 Fernando Perez <fperez@colorado.edu>
5347 2002-10-27 Fernando Perez <fperez@colorado.edu>
5344
5348
5345 * IPython/usage.py (__doc__): updated the --help information and
5349 * IPython/usage.py (__doc__): updated the --help information and
5346 the ipythonrc file to indicate that -log generates
5350 the ipythonrc file to indicate that -log generates
5347 ./ipython.log. Also fixed the corresponding info in @logstart.
5351 ./ipython.log. Also fixed the corresponding info in @logstart.
5348 This and several other fixes in the manuals thanks to reports by
5352 This and several other fixes in the manuals thanks to reports by
5349 François Pinard <pinard-AT-iro.umontreal.ca>.
5353 François Pinard <pinard-AT-iro.umontreal.ca>.
5350
5354
5351 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5355 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5352 refer to @logstart (instead of @log, which doesn't exist).
5356 refer to @logstart (instead of @log, which doesn't exist).
5353
5357
5354 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5358 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5355 AttributeError crash. Thanks to Christopher Armstrong
5359 AttributeError crash. Thanks to Christopher Armstrong
5356 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5360 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5357 introduced recently (in 0.2.14pre37) with the fix to the eval
5361 introduced recently (in 0.2.14pre37) with the fix to the eval
5358 problem mentioned below.
5362 problem mentioned below.
5359
5363
5360 2002-10-17 Fernando Perez <fperez@colorado.edu>
5364 2002-10-17 Fernando Perez <fperez@colorado.edu>
5361
5365
5362 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5366 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5363 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5367 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5364
5368
5365 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5369 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5366 this function to fix a problem reported by Alex Schmolck. He saw
5370 this function to fix a problem reported by Alex Schmolck. He saw
5367 it with list comprehensions and generators, which were getting
5371 it with list comprehensions and generators, which were getting
5368 called twice. The real problem was an 'eval' call in testing for
5372 called twice. The real problem was an 'eval' call in testing for
5369 automagic which was evaluating the input line silently.
5373 automagic which was evaluating the input line silently.
5370
5374
5371 This is a potentially very nasty bug, if the input has side
5375 This is a potentially very nasty bug, if the input has side
5372 effects which must not be repeated. The code is much cleaner now,
5376 effects which must not be repeated. The code is much cleaner now,
5373 without any blanket 'except' left and with a regexp test for
5377 without any blanket 'except' left and with a regexp test for
5374 actual function names.
5378 actual function names.
5375
5379
5376 But an eval remains, which I'm not fully comfortable with. I just
5380 But an eval remains, which I'm not fully comfortable with. I just
5377 don't know how to find out if an expression could be a callable in
5381 don't know how to find out if an expression could be a callable in
5378 the user's namespace without doing an eval on the string. However
5382 the user's namespace without doing an eval on the string. However
5379 that string is now much more strictly checked so that no code
5383 that string is now much more strictly checked so that no code
5380 slips by, so the eval should only happen for things that can
5384 slips by, so the eval should only happen for things that can
5381 really be only function/method names.
5385 really be only function/method names.
5382
5386
5383 2002-10-15 Fernando Perez <fperez@colorado.edu>
5387 2002-10-15 Fernando Perez <fperez@colorado.edu>
5384
5388
5385 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5389 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5386 OSX information to main manual, removed README_Mac_OSX file from
5390 OSX information to main manual, removed README_Mac_OSX file from
5387 distribution. Also updated credits for recent additions.
5391 distribution. Also updated credits for recent additions.
5388
5392
5389 2002-10-10 Fernando Perez <fperez@colorado.edu>
5393 2002-10-10 Fernando Perez <fperez@colorado.edu>
5390
5394
5391 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5395 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5392 terminal-related issues. Many thanks to Andrea Riciputi
5396 terminal-related issues. Many thanks to Andrea Riciputi
5393 <andrea.riciputi-AT-libero.it> for writing it.
5397 <andrea.riciputi-AT-libero.it> for writing it.
5394
5398
5395 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5399 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5396 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5400 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5397
5401
5398 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5402 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5399 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5403 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5400 <syver-en-AT-online.no> who both submitted patches for this problem.
5404 <syver-en-AT-online.no> who both submitted patches for this problem.
5401
5405
5402 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5406 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5403 global embedding to make sure that things don't overwrite user
5407 global embedding to make sure that things don't overwrite user
5404 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5408 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5405
5409
5406 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5410 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5407 compatibility. Thanks to Hayden Callow
5411 compatibility. Thanks to Hayden Callow
5408 <h.callow-AT-elec.canterbury.ac.nz>
5412 <h.callow-AT-elec.canterbury.ac.nz>
5409
5413
5410 2002-10-04 Fernando Perez <fperez@colorado.edu>
5414 2002-10-04 Fernando Perez <fperez@colorado.edu>
5411
5415
5412 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5416 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5413 Gnuplot.File objects.
5417 Gnuplot.File objects.
5414
5418
5415 2002-07-23 Fernando Perez <fperez@colorado.edu>
5419 2002-07-23 Fernando Perez <fperez@colorado.edu>
5416
5420
5417 * IPython/genutils.py (timing): Added timings() and timing() for
5421 * IPython/genutils.py (timing): Added timings() and timing() for
5418 quick access to the most commonly needed data, the execution
5422 quick access to the most commonly needed data, the execution
5419 times. Old timing() renamed to timings_out().
5423 times. Old timing() renamed to timings_out().
5420
5424
5421 2002-07-18 Fernando Perez <fperez@colorado.edu>
5425 2002-07-18 Fernando Perez <fperez@colorado.edu>
5422
5426
5423 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5427 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5424 bug with nested instances disrupting the parent's tab completion.
5428 bug with nested instances disrupting the parent's tab completion.
5425
5429
5426 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5430 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5427 all_completions code to begin the emacs integration.
5431 all_completions code to begin the emacs integration.
5428
5432
5429 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5433 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5430 argument to allow titling individual arrays when plotting.
5434 argument to allow titling individual arrays when plotting.
5431
5435
5432 2002-07-15 Fernando Perez <fperez@colorado.edu>
5436 2002-07-15 Fernando Perez <fperez@colorado.edu>
5433
5437
5434 * setup.py (make_shortcut): changed to retrieve the value of
5438 * setup.py (make_shortcut): changed to retrieve the value of
5435 'Program Files' directory from the registry (this value changes in
5439 'Program Files' directory from the registry (this value changes in
5436 non-english versions of Windows). Thanks to Thomas Fanslau
5440 non-english versions of Windows). Thanks to Thomas Fanslau
5437 <tfanslau-AT-gmx.de> for the report.
5441 <tfanslau-AT-gmx.de> for the report.
5438
5442
5439 2002-07-10 Fernando Perez <fperez@colorado.edu>
5443 2002-07-10 Fernando Perez <fperez@colorado.edu>
5440
5444
5441 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5445 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5442 a bug in pdb, which crashes if a line with only whitespace is
5446 a bug in pdb, which crashes if a line with only whitespace is
5443 entered. Bug report submitted to sourceforge.
5447 entered. Bug report submitted to sourceforge.
5444
5448
5445 2002-07-09 Fernando Perez <fperez@colorado.edu>
5449 2002-07-09 Fernando Perez <fperez@colorado.edu>
5446
5450
5447 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5451 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5448 reporting exceptions (it's a bug in inspect.py, I just set a
5452 reporting exceptions (it's a bug in inspect.py, I just set a
5449 workaround).
5453 workaround).
5450
5454
5451 2002-07-08 Fernando Perez <fperez@colorado.edu>
5455 2002-07-08 Fernando Perez <fperez@colorado.edu>
5452
5456
5453 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5457 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5454 __IPYTHON__ in __builtins__ to show up in user_ns.
5458 __IPYTHON__ in __builtins__ to show up in user_ns.
5455
5459
5456 2002-07-03 Fernando Perez <fperez@colorado.edu>
5460 2002-07-03 Fernando Perez <fperez@colorado.edu>
5457
5461
5458 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5462 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5459 name from @gp_set_instance to @gp_set_default.
5463 name from @gp_set_instance to @gp_set_default.
5460
5464
5461 * IPython/ipmaker.py (make_IPython): default editor value set to
5465 * IPython/ipmaker.py (make_IPython): default editor value set to
5462 '0' (a string), to match the rc file. Otherwise will crash when
5466 '0' (a string), to match the rc file. Otherwise will crash when
5463 .strip() is called on it.
5467 .strip() is called on it.
5464
5468
5465
5469
5466 2002-06-28 Fernando Perez <fperez@colorado.edu>
5470 2002-06-28 Fernando Perez <fperez@colorado.edu>
5467
5471
5468 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5472 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5469 of files in current directory when a file is executed via
5473 of files in current directory when a file is executed via
5470 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5474 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5471
5475
5472 * setup.py (manfiles): fix for rpm builds, submitted by RA
5476 * setup.py (manfiles): fix for rpm builds, submitted by RA
5473 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5477 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5474
5478
5475 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5479 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5476 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5480 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5477 string!). A. Schmolck caught this one.
5481 string!). A. Schmolck caught this one.
5478
5482
5479 2002-06-27 Fernando Perez <fperez@colorado.edu>
5483 2002-06-27 Fernando Perez <fperez@colorado.edu>
5480
5484
5481 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5485 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5482 defined files at the cmd line. __name__ wasn't being set to
5486 defined files at the cmd line. __name__ wasn't being set to
5483 __main__.
5487 __main__.
5484
5488
5485 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5489 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5486 regular lists and tuples besides Numeric arrays.
5490 regular lists and tuples besides Numeric arrays.
5487
5491
5488 * IPython/Prompts.py (CachedOutput.__call__): Added output
5492 * IPython/Prompts.py (CachedOutput.__call__): Added output
5489 supression for input ending with ';'. Similar to Mathematica and
5493 supression for input ending with ';'. Similar to Mathematica and
5490 Matlab. The _* vars and Out[] list are still updated, just like
5494 Matlab. The _* vars and Out[] list are still updated, just like
5491 Mathematica behaves.
5495 Mathematica behaves.
5492
5496
5493 2002-06-25 Fernando Perez <fperez@colorado.edu>
5497 2002-06-25 Fernando Perez <fperez@colorado.edu>
5494
5498
5495 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5499 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5496 .ini extensions for profiels under Windows.
5500 .ini extensions for profiels under Windows.
5497
5501
5498 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5502 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5499 string form. Fix contributed by Alexander Schmolck
5503 string form. Fix contributed by Alexander Schmolck
5500 <a.schmolck-AT-gmx.net>
5504 <a.schmolck-AT-gmx.net>
5501
5505
5502 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5506 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5503 pre-configured Gnuplot instance.
5507 pre-configured Gnuplot instance.
5504
5508
5505 2002-06-21 Fernando Perez <fperez@colorado.edu>
5509 2002-06-21 Fernando Perez <fperez@colorado.edu>
5506
5510
5507 * IPython/numutils.py (exp_safe): new function, works around the
5511 * IPython/numutils.py (exp_safe): new function, works around the
5508 underflow problems in Numeric.
5512 underflow problems in Numeric.
5509 (log2): New fn. Safe log in base 2: returns exact integer answer
5513 (log2): New fn. Safe log in base 2: returns exact integer answer
5510 for exact integer powers of 2.
5514 for exact integer powers of 2.
5511
5515
5512 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5516 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5513 properly.
5517 properly.
5514
5518
5515 2002-06-20 Fernando Perez <fperez@colorado.edu>
5519 2002-06-20 Fernando Perez <fperez@colorado.edu>
5516
5520
5517 * IPython/genutils.py (timing): new function like
5521 * IPython/genutils.py (timing): new function like
5518 Mathematica's. Similar to time_test, but returns more info.
5522 Mathematica's. Similar to time_test, but returns more info.
5519
5523
5520 2002-06-18 Fernando Perez <fperez@colorado.edu>
5524 2002-06-18 Fernando Perez <fperez@colorado.edu>
5521
5525
5522 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5526 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5523 according to Mike Heeter's suggestions.
5527 according to Mike Heeter's suggestions.
5524
5528
5525 2002-06-16 Fernando Perez <fperez@colorado.edu>
5529 2002-06-16 Fernando Perez <fperez@colorado.edu>
5526
5530
5527 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5531 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5528 system. GnuplotMagic is gone as a user-directory option. New files
5532 system. GnuplotMagic is gone as a user-directory option. New files
5529 make it easier to use all the gnuplot stuff both from external
5533 make it easier to use all the gnuplot stuff both from external
5530 programs as well as from IPython. Had to rewrite part of
5534 programs as well as from IPython. Had to rewrite part of
5531 hardcopy() b/c of a strange bug: often the ps files simply don't
5535 hardcopy() b/c of a strange bug: often the ps files simply don't
5532 get created, and require a repeat of the command (often several
5536 get created, and require a repeat of the command (often several
5533 times).
5537 times).
5534
5538
5535 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5539 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5536 resolve output channel at call time, so that if sys.stderr has
5540 resolve output channel at call time, so that if sys.stderr has
5537 been redirected by user this gets honored.
5541 been redirected by user this gets honored.
5538
5542
5539 2002-06-13 Fernando Perez <fperez@colorado.edu>
5543 2002-06-13 Fernando Perez <fperez@colorado.edu>
5540
5544
5541 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5545 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5542 IPShell. Kept a copy with the old names to avoid breaking people's
5546 IPShell. Kept a copy with the old names to avoid breaking people's
5543 embedded code.
5547 embedded code.
5544
5548
5545 * IPython/ipython: simplified it to the bare minimum after
5549 * IPython/ipython: simplified it to the bare minimum after
5546 Holger's suggestions. Added info about how to use it in
5550 Holger's suggestions. Added info about how to use it in
5547 PYTHONSTARTUP.
5551 PYTHONSTARTUP.
5548
5552
5549 * IPython/Shell.py (IPythonShell): changed the options passing
5553 * IPython/Shell.py (IPythonShell): changed the options passing
5550 from a string with funky %s replacements to a straight list. Maybe
5554 from a string with funky %s replacements to a straight list. Maybe
5551 a bit more typing, but it follows sys.argv conventions, so there's
5555 a bit more typing, but it follows sys.argv conventions, so there's
5552 less special-casing to remember.
5556 less special-casing to remember.
5553
5557
5554 2002-06-12 Fernando Perez <fperez@colorado.edu>
5558 2002-06-12 Fernando Perez <fperez@colorado.edu>
5555
5559
5556 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5560 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5557 command. Thanks to a suggestion by Mike Heeter.
5561 command. Thanks to a suggestion by Mike Heeter.
5558 (Magic.magic_pfile): added behavior to look at filenames if given
5562 (Magic.magic_pfile): added behavior to look at filenames if given
5559 arg is not a defined object.
5563 arg is not a defined object.
5560 (Magic.magic_save): New @save function to save code snippets. Also
5564 (Magic.magic_save): New @save function to save code snippets. Also
5561 a Mike Heeter idea.
5565 a Mike Heeter idea.
5562
5566
5563 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5567 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5564 plot() and replot(). Much more convenient now, especially for
5568 plot() and replot(). Much more convenient now, especially for
5565 interactive use.
5569 interactive use.
5566
5570
5567 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5571 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5568 filenames.
5572 filenames.
5569
5573
5570 2002-06-02 Fernando Perez <fperez@colorado.edu>
5574 2002-06-02 Fernando Perez <fperez@colorado.edu>
5571
5575
5572 * IPython/Struct.py (Struct.__init__): modified to admit
5576 * IPython/Struct.py (Struct.__init__): modified to admit
5573 initialization via another struct.
5577 initialization via another struct.
5574
5578
5575 * IPython/genutils.py (SystemExec.__init__): New stateful
5579 * IPython/genutils.py (SystemExec.__init__): New stateful
5576 interface to xsys and bq. Useful for writing system scripts.
5580 interface to xsys and bq. Useful for writing system scripts.
5577
5581
5578 2002-05-30 Fernando Perez <fperez@colorado.edu>
5582 2002-05-30 Fernando Perez <fperez@colorado.edu>
5579
5583
5580 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5584 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5581 documents. This will make the user download smaller (it's getting
5585 documents. This will make the user download smaller (it's getting
5582 too big).
5586 too big).
5583
5587
5584 2002-05-29 Fernando Perez <fperez@colorado.edu>
5588 2002-05-29 Fernando Perez <fperez@colorado.edu>
5585
5589
5586 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5590 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5587 fix problems with shelve and pickle. Seems to work, but I don't
5591 fix problems with shelve and pickle. Seems to work, but I don't
5588 know if corner cases break it. Thanks to Mike Heeter
5592 know if corner cases break it. Thanks to Mike Heeter
5589 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5593 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5590
5594
5591 2002-05-24 Fernando Perez <fperez@colorado.edu>
5595 2002-05-24 Fernando Perez <fperez@colorado.edu>
5592
5596
5593 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5597 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5594 macros having broken.
5598 macros having broken.
5595
5599
5596 2002-05-21 Fernando Perez <fperez@colorado.edu>
5600 2002-05-21 Fernando Perez <fperez@colorado.edu>
5597
5601
5598 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5602 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5599 introduced logging bug: all history before logging started was
5603 introduced logging bug: all history before logging started was
5600 being written one character per line! This came from the redesign
5604 being written one character per line! This came from the redesign
5601 of the input history as a special list which slices to strings,
5605 of the input history as a special list which slices to strings,
5602 not to lists.
5606 not to lists.
5603
5607
5604 2002-05-20 Fernando Perez <fperez@colorado.edu>
5608 2002-05-20 Fernando Perez <fperez@colorado.edu>
5605
5609
5606 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5610 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5607 be an attribute of all classes in this module. The design of these
5611 be an attribute of all classes in this module. The design of these
5608 classes needs some serious overhauling.
5612 classes needs some serious overhauling.
5609
5613
5610 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5614 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5611 which was ignoring '_' in option names.
5615 which was ignoring '_' in option names.
5612
5616
5613 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5617 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5614 'Verbose_novars' to 'Context' and made it the new default. It's a
5618 'Verbose_novars' to 'Context' and made it the new default. It's a
5615 bit more readable and also safer than verbose.
5619 bit more readable and also safer than verbose.
5616
5620
5617 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5621 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5618 triple-quoted strings.
5622 triple-quoted strings.
5619
5623
5620 * IPython/OInspect.py (__all__): new module exposing the object
5624 * IPython/OInspect.py (__all__): new module exposing the object
5621 introspection facilities. Now the corresponding magics are dummy
5625 introspection facilities. Now the corresponding magics are dummy
5622 wrappers around this. Having this module will make it much easier
5626 wrappers around this. Having this module will make it much easier
5623 to put these functions into our modified pdb.
5627 to put these functions into our modified pdb.
5624 This new object inspector system uses the new colorizing module,
5628 This new object inspector system uses the new colorizing module,
5625 so source code and other things are nicely syntax highlighted.
5629 so source code and other things are nicely syntax highlighted.
5626
5630
5627 2002-05-18 Fernando Perez <fperez@colorado.edu>
5631 2002-05-18 Fernando Perez <fperez@colorado.edu>
5628
5632
5629 * IPython/ColorANSI.py: Split the coloring tools into a separate
5633 * IPython/ColorANSI.py: Split the coloring tools into a separate
5630 module so I can use them in other code easier (they were part of
5634 module so I can use them in other code easier (they were part of
5631 ultraTB).
5635 ultraTB).
5632
5636
5633 2002-05-17 Fernando Perez <fperez@colorado.edu>
5637 2002-05-17 Fernando Perez <fperez@colorado.edu>
5634
5638
5635 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5639 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5636 fixed it to set the global 'g' also to the called instance, as
5640 fixed it to set the global 'g' also to the called instance, as
5637 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5641 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5638 user's 'g' variables).
5642 user's 'g' variables).
5639
5643
5640 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5644 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5641 global variables (aliases to _ih,_oh) so that users which expect
5645 global variables (aliases to _ih,_oh) so that users which expect
5642 In[5] or Out[7] to work aren't unpleasantly surprised.
5646 In[5] or Out[7] to work aren't unpleasantly surprised.
5643 (InputList.__getslice__): new class to allow executing slices of
5647 (InputList.__getslice__): new class to allow executing slices of
5644 input history directly. Very simple class, complements the use of
5648 input history directly. Very simple class, complements the use of
5645 macros.
5649 macros.
5646
5650
5647 2002-05-16 Fernando Perez <fperez@colorado.edu>
5651 2002-05-16 Fernando Perez <fperez@colorado.edu>
5648
5652
5649 * setup.py (docdirbase): make doc directory be just doc/IPython
5653 * setup.py (docdirbase): make doc directory be just doc/IPython
5650 without version numbers, it will reduce clutter for users.
5654 without version numbers, it will reduce clutter for users.
5651
5655
5652 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5656 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5653 execfile call to prevent possible memory leak. See for details:
5657 execfile call to prevent possible memory leak. See for details:
5654 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5658 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5655
5659
5656 2002-05-15 Fernando Perez <fperez@colorado.edu>
5660 2002-05-15 Fernando Perez <fperez@colorado.edu>
5657
5661
5658 * IPython/Magic.py (Magic.magic_psource): made the object
5662 * IPython/Magic.py (Magic.magic_psource): made the object
5659 introspection names be more standard: pdoc, pdef, pfile and
5663 introspection names be more standard: pdoc, pdef, pfile and
5660 psource. They all print/page their output, and it makes
5664 psource. They all print/page their output, and it makes
5661 remembering them easier. Kept old names for compatibility as
5665 remembering them easier. Kept old names for compatibility as
5662 aliases.
5666 aliases.
5663
5667
5664 2002-05-14 Fernando Perez <fperez@colorado.edu>
5668 2002-05-14 Fernando Perez <fperez@colorado.edu>
5665
5669
5666 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5670 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5667 what the mouse problem was. The trick is to use gnuplot with temp
5671 what the mouse problem was. The trick is to use gnuplot with temp
5668 files and NOT with pipes (for data communication), because having
5672 files and NOT with pipes (for data communication), because having
5669 both pipes and the mouse on is bad news.
5673 both pipes and the mouse on is bad news.
5670
5674
5671 2002-05-13 Fernando Perez <fperez@colorado.edu>
5675 2002-05-13 Fernando Perez <fperez@colorado.edu>
5672
5676
5673 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5677 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5674 bug. Information would be reported about builtins even when
5678 bug. Information would be reported about builtins even when
5675 user-defined functions overrode them.
5679 user-defined functions overrode them.
5676
5680
5677 2002-05-11 Fernando Perez <fperez@colorado.edu>
5681 2002-05-11 Fernando Perez <fperez@colorado.edu>
5678
5682
5679 * IPython/__init__.py (__all__): removed FlexCompleter from
5683 * IPython/__init__.py (__all__): removed FlexCompleter from
5680 __all__ so that things don't fail in platforms without readline.
5684 __all__ so that things don't fail in platforms without readline.
5681
5685
5682 2002-05-10 Fernando Perez <fperez@colorado.edu>
5686 2002-05-10 Fernando Perez <fperez@colorado.edu>
5683
5687
5684 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5688 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5685 it requires Numeric, effectively making Numeric a dependency for
5689 it requires Numeric, effectively making Numeric a dependency for
5686 IPython.
5690 IPython.
5687
5691
5688 * Released 0.2.13
5692 * Released 0.2.13
5689
5693
5690 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5694 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5691 profiler interface. Now all the major options from the profiler
5695 profiler interface. Now all the major options from the profiler
5692 module are directly supported in IPython, both for single
5696 module are directly supported in IPython, both for single
5693 expressions (@prun) and for full programs (@run -p).
5697 expressions (@prun) and for full programs (@run -p).
5694
5698
5695 2002-05-09 Fernando Perez <fperez@colorado.edu>
5699 2002-05-09 Fernando Perez <fperez@colorado.edu>
5696
5700
5697 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5701 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5698 magic properly formatted for screen.
5702 magic properly formatted for screen.
5699
5703
5700 * setup.py (make_shortcut): Changed things to put pdf version in
5704 * setup.py (make_shortcut): Changed things to put pdf version in
5701 doc/ instead of doc/manual (had to change lyxport a bit).
5705 doc/ instead of doc/manual (had to change lyxport a bit).
5702
5706
5703 * IPython/Magic.py (Profile.string_stats): made profile runs go
5707 * IPython/Magic.py (Profile.string_stats): made profile runs go
5704 through pager (they are long and a pager allows searching, saving,
5708 through pager (they are long and a pager allows searching, saving,
5705 etc.)
5709 etc.)
5706
5710
5707 2002-05-08 Fernando Perez <fperez@colorado.edu>
5711 2002-05-08 Fernando Perez <fperez@colorado.edu>
5708
5712
5709 * Released 0.2.12
5713 * Released 0.2.12
5710
5714
5711 2002-05-06 Fernando Perez <fperez@colorado.edu>
5715 2002-05-06 Fernando Perez <fperez@colorado.edu>
5712
5716
5713 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5717 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5714 introduced); 'hist n1 n2' was broken.
5718 introduced); 'hist n1 n2' was broken.
5715 (Magic.magic_pdb): added optional on/off arguments to @pdb
5719 (Magic.magic_pdb): added optional on/off arguments to @pdb
5716 (Magic.magic_run): added option -i to @run, which executes code in
5720 (Magic.magic_run): added option -i to @run, which executes code in
5717 the IPython namespace instead of a clean one. Also added @irun as
5721 the IPython namespace instead of a clean one. Also added @irun as
5718 an alias to @run -i.
5722 an alias to @run -i.
5719
5723
5720 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5724 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5721 fixed (it didn't really do anything, the namespaces were wrong).
5725 fixed (it didn't really do anything, the namespaces were wrong).
5722
5726
5723 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5727 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5724
5728
5725 * IPython/__init__.py (__all__): Fixed package namespace, now
5729 * IPython/__init__.py (__all__): Fixed package namespace, now
5726 'import IPython' does give access to IPython.<all> as
5730 'import IPython' does give access to IPython.<all> as
5727 expected. Also renamed __release__ to Release.
5731 expected. Also renamed __release__ to Release.
5728
5732
5729 * IPython/Debugger.py (__license__): created new Pdb class which
5733 * IPython/Debugger.py (__license__): created new Pdb class which
5730 functions like a drop-in for the normal pdb.Pdb but does NOT
5734 functions like a drop-in for the normal pdb.Pdb but does NOT
5731 import readline by default. This way it doesn't muck up IPython's
5735 import readline by default. This way it doesn't muck up IPython's
5732 readline handling, and now tab-completion finally works in the
5736 readline handling, and now tab-completion finally works in the
5733 debugger -- sort of. It completes things globally visible, but the
5737 debugger -- sort of. It completes things globally visible, but the
5734 completer doesn't track the stack as pdb walks it. That's a bit
5738 completer doesn't track the stack as pdb walks it. That's a bit
5735 tricky, and I'll have to implement it later.
5739 tricky, and I'll have to implement it later.
5736
5740
5737 2002-05-05 Fernando Perez <fperez@colorado.edu>
5741 2002-05-05 Fernando Perez <fperez@colorado.edu>
5738
5742
5739 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5743 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5740 magic docstrings when printed via ? (explicit \'s were being
5744 magic docstrings when printed via ? (explicit \'s were being
5741 printed).
5745 printed).
5742
5746
5743 * IPython/ipmaker.py (make_IPython): fixed namespace
5747 * IPython/ipmaker.py (make_IPython): fixed namespace
5744 identification bug. Now variables loaded via logs or command-line
5748 identification bug. Now variables loaded via logs or command-line
5745 files are recognized in the interactive namespace by @who.
5749 files are recognized in the interactive namespace by @who.
5746
5750
5747 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5751 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5748 log replay system stemming from the string form of Structs.
5752 log replay system stemming from the string form of Structs.
5749
5753
5750 * IPython/Magic.py (Macro.__init__): improved macros to properly
5754 * IPython/Magic.py (Macro.__init__): improved macros to properly
5751 handle magic commands in them.
5755 handle magic commands in them.
5752 (Magic.magic_logstart): usernames are now expanded so 'logstart
5756 (Magic.magic_logstart): usernames are now expanded so 'logstart
5753 ~/mylog' now works.
5757 ~/mylog' now works.
5754
5758
5755 * IPython/iplib.py (complete): fixed bug where paths starting with
5759 * IPython/iplib.py (complete): fixed bug where paths starting with
5756 '/' would be completed as magic names.
5760 '/' would be completed as magic names.
5757
5761
5758 2002-05-04 Fernando Perez <fperez@colorado.edu>
5762 2002-05-04 Fernando Perez <fperez@colorado.edu>
5759
5763
5760 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5764 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5761 allow running full programs under the profiler's control.
5765 allow running full programs under the profiler's control.
5762
5766
5763 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5767 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5764 mode to report exceptions verbosely but without formatting
5768 mode to report exceptions verbosely but without formatting
5765 variables. This addresses the issue of ipython 'freezing' (it's
5769 variables. This addresses the issue of ipython 'freezing' (it's
5766 not frozen, but caught in an expensive formatting loop) when huge
5770 not frozen, but caught in an expensive formatting loop) when huge
5767 variables are in the context of an exception.
5771 variables are in the context of an exception.
5768 (VerboseTB.text): Added '--->' markers at line where exception was
5772 (VerboseTB.text): Added '--->' markers at line where exception was
5769 triggered. Much clearer to read, especially in NoColor modes.
5773 triggered. Much clearer to read, especially in NoColor modes.
5770
5774
5771 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5775 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5772 implemented in reverse when changing to the new parse_options().
5776 implemented in reverse when changing to the new parse_options().
5773
5777
5774 2002-05-03 Fernando Perez <fperez@colorado.edu>
5778 2002-05-03 Fernando Perez <fperez@colorado.edu>
5775
5779
5776 * IPython/Magic.py (Magic.parse_options): new function so that
5780 * IPython/Magic.py (Magic.parse_options): new function so that
5777 magics can parse options easier.
5781 magics can parse options easier.
5778 (Magic.magic_prun): new function similar to profile.run(),
5782 (Magic.magic_prun): new function similar to profile.run(),
5779 suggested by Chris Hart.
5783 suggested by Chris Hart.
5780 (Magic.magic_cd): fixed behavior so that it only changes if
5784 (Magic.magic_cd): fixed behavior so that it only changes if
5781 directory actually is in history.
5785 directory actually is in history.
5782
5786
5783 * IPython/usage.py (__doc__): added information about potential
5787 * IPython/usage.py (__doc__): added information about potential
5784 slowness of Verbose exception mode when there are huge data
5788 slowness of Verbose exception mode when there are huge data
5785 structures to be formatted (thanks to Archie Paulson).
5789 structures to be formatted (thanks to Archie Paulson).
5786
5790
5787 * IPython/ipmaker.py (make_IPython): Changed default logging
5791 * IPython/ipmaker.py (make_IPython): Changed default logging
5788 (when simply called with -log) to use curr_dir/ipython.log in
5792 (when simply called with -log) to use curr_dir/ipython.log in
5789 rotate mode. Fixed crash which was occuring with -log before
5793 rotate mode. Fixed crash which was occuring with -log before
5790 (thanks to Jim Boyle).
5794 (thanks to Jim Boyle).
5791
5795
5792 2002-05-01 Fernando Perez <fperez@colorado.edu>
5796 2002-05-01 Fernando Perez <fperez@colorado.edu>
5793
5797
5794 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5798 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5795 was nasty -- though somewhat of a corner case).
5799 was nasty -- though somewhat of a corner case).
5796
5800
5797 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5801 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5798 text (was a bug).
5802 text (was a bug).
5799
5803
5800 2002-04-30 Fernando Perez <fperez@colorado.edu>
5804 2002-04-30 Fernando Perez <fperez@colorado.edu>
5801
5805
5802 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5806 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5803 a print after ^D or ^C from the user so that the In[] prompt
5807 a print after ^D or ^C from the user so that the In[] prompt
5804 doesn't over-run the gnuplot one.
5808 doesn't over-run the gnuplot one.
5805
5809
5806 2002-04-29 Fernando Perez <fperez@colorado.edu>
5810 2002-04-29 Fernando Perez <fperez@colorado.edu>
5807
5811
5808 * Released 0.2.10
5812 * Released 0.2.10
5809
5813
5810 * IPython/__release__.py (version): get date dynamically.
5814 * IPython/__release__.py (version): get date dynamically.
5811
5815
5812 * Misc. documentation updates thanks to Arnd's comments. Also ran
5816 * Misc. documentation updates thanks to Arnd's comments. Also ran
5813 a full spellcheck on the manual (hadn't been done in a while).
5817 a full spellcheck on the manual (hadn't been done in a while).
5814
5818
5815 2002-04-27 Fernando Perez <fperez@colorado.edu>
5819 2002-04-27 Fernando Perez <fperez@colorado.edu>
5816
5820
5817 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5821 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5818 starting a log in mid-session would reset the input history list.
5822 starting a log in mid-session would reset the input history list.
5819
5823
5820 2002-04-26 Fernando Perez <fperez@colorado.edu>
5824 2002-04-26 Fernando Perez <fperez@colorado.edu>
5821
5825
5822 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5826 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5823 all files were being included in an update. Now anything in
5827 all files were being included in an update. Now anything in
5824 UserConfig that matches [A-Za-z]*.py will go (this excludes
5828 UserConfig that matches [A-Za-z]*.py will go (this excludes
5825 __init__.py)
5829 __init__.py)
5826
5830
5827 2002-04-25 Fernando Perez <fperez@colorado.edu>
5831 2002-04-25 Fernando Perez <fperez@colorado.edu>
5828
5832
5829 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5833 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5830 to __builtins__ so that any form of embedded or imported code can
5834 to __builtins__ so that any form of embedded or imported code can
5831 test for being inside IPython.
5835 test for being inside IPython.
5832
5836
5833 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5837 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5834 changed to GnuplotMagic because it's now an importable module,
5838 changed to GnuplotMagic because it's now an importable module,
5835 this makes the name follow that of the standard Gnuplot module.
5839 this makes the name follow that of the standard Gnuplot module.
5836 GnuplotMagic can now be loaded at any time in mid-session.
5840 GnuplotMagic can now be loaded at any time in mid-session.
5837
5841
5838 2002-04-24 Fernando Perez <fperez@colorado.edu>
5842 2002-04-24 Fernando Perez <fperez@colorado.edu>
5839
5843
5840 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5844 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5841 the globals (IPython has its own namespace) and the
5845 the globals (IPython has its own namespace) and the
5842 PhysicalQuantity stuff is much better anyway.
5846 PhysicalQuantity stuff is much better anyway.
5843
5847
5844 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5848 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5845 embedding example to standard user directory for
5849 embedding example to standard user directory for
5846 distribution. Also put it in the manual.
5850 distribution. Also put it in the manual.
5847
5851
5848 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5852 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5849 instance as first argument (so it doesn't rely on some obscure
5853 instance as first argument (so it doesn't rely on some obscure
5850 hidden global).
5854 hidden global).
5851
5855
5852 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5856 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5853 delimiters. While it prevents ().TAB from working, it allows
5857 delimiters. While it prevents ().TAB from working, it allows
5854 completions in open (... expressions. This is by far a more common
5858 completions in open (... expressions. This is by far a more common
5855 case.
5859 case.
5856
5860
5857 2002-04-23 Fernando Perez <fperez@colorado.edu>
5861 2002-04-23 Fernando Perez <fperez@colorado.edu>
5858
5862
5859 * IPython/Extensions/InterpreterPasteInput.py: new
5863 * IPython/Extensions/InterpreterPasteInput.py: new
5860 syntax-processing module for pasting lines with >>> or ... at the
5864 syntax-processing module for pasting lines with >>> or ... at the
5861 start.
5865 start.
5862
5866
5863 * IPython/Extensions/PhysicalQ_Interactive.py
5867 * IPython/Extensions/PhysicalQ_Interactive.py
5864 (PhysicalQuantityInteractive.__int__): fixed to work with either
5868 (PhysicalQuantityInteractive.__int__): fixed to work with either
5865 Numeric or math.
5869 Numeric or math.
5866
5870
5867 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5871 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5868 provided profiles. Now we have:
5872 provided profiles. Now we have:
5869 -math -> math module as * and cmath with its own namespace.
5873 -math -> math module as * and cmath with its own namespace.
5870 -numeric -> Numeric as *, plus gnuplot & grace
5874 -numeric -> Numeric as *, plus gnuplot & grace
5871 -physics -> same as before
5875 -physics -> same as before
5872
5876
5873 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5877 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5874 user-defined magics wouldn't be found by @magic if they were
5878 user-defined magics wouldn't be found by @magic if they were
5875 defined as class methods. Also cleaned up the namespace search
5879 defined as class methods. Also cleaned up the namespace search
5876 logic and the string building (to use %s instead of many repeated
5880 logic and the string building (to use %s instead of many repeated
5877 string adds).
5881 string adds).
5878
5882
5879 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5883 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5880 of user-defined magics to operate with class methods (cleaner, in
5884 of user-defined magics to operate with class methods (cleaner, in
5881 line with the gnuplot code).
5885 line with the gnuplot code).
5882
5886
5883 2002-04-22 Fernando Perez <fperez@colorado.edu>
5887 2002-04-22 Fernando Perez <fperez@colorado.edu>
5884
5888
5885 * setup.py: updated dependency list so that manual is updated when
5889 * setup.py: updated dependency list so that manual is updated when
5886 all included files change.
5890 all included files change.
5887
5891
5888 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5892 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5889 the delimiter removal option (the fix is ugly right now).
5893 the delimiter removal option (the fix is ugly right now).
5890
5894
5891 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5895 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5892 all of the math profile (quicker loading, no conflict between
5896 all of the math profile (quicker loading, no conflict between
5893 g-9.8 and g-gnuplot).
5897 g-9.8 and g-gnuplot).
5894
5898
5895 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5899 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5896 name of post-mortem files to IPython_crash_report.txt.
5900 name of post-mortem files to IPython_crash_report.txt.
5897
5901
5898 * Cleanup/update of the docs. Added all the new readline info and
5902 * Cleanup/update of the docs. Added all the new readline info and
5899 formatted all lists as 'real lists'.
5903 formatted all lists as 'real lists'.
5900
5904
5901 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5905 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5902 tab-completion options, since the full readline parse_and_bind is
5906 tab-completion options, since the full readline parse_and_bind is
5903 now accessible.
5907 now accessible.
5904
5908
5905 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5909 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5906 handling of readline options. Now users can specify any string to
5910 handling of readline options. Now users can specify any string to
5907 be passed to parse_and_bind(), as well as the delimiters to be
5911 be passed to parse_and_bind(), as well as the delimiters to be
5908 removed.
5912 removed.
5909 (InteractiveShell.__init__): Added __name__ to the global
5913 (InteractiveShell.__init__): Added __name__ to the global
5910 namespace so that things like Itpl which rely on its existence
5914 namespace so that things like Itpl which rely on its existence
5911 don't crash.
5915 don't crash.
5912 (InteractiveShell._prefilter): Defined the default with a _ so
5916 (InteractiveShell._prefilter): Defined the default with a _ so
5913 that prefilter() is easier to override, while the default one
5917 that prefilter() is easier to override, while the default one
5914 remains available.
5918 remains available.
5915
5919
5916 2002-04-18 Fernando Perez <fperez@colorado.edu>
5920 2002-04-18 Fernando Perez <fperez@colorado.edu>
5917
5921
5918 * Added information about pdb in the docs.
5922 * Added information about pdb in the docs.
5919
5923
5920 2002-04-17 Fernando Perez <fperez@colorado.edu>
5924 2002-04-17 Fernando Perez <fperez@colorado.edu>
5921
5925
5922 * IPython/ipmaker.py (make_IPython): added rc_override option to
5926 * IPython/ipmaker.py (make_IPython): added rc_override option to
5923 allow passing config options at creation time which may override
5927 allow passing config options at creation time which may override
5924 anything set in the config files or command line. This is
5928 anything set in the config files or command line. This is
5925 particularly useful for configuring embedded instances.
5929 particularly useful for configuring embedded instances.
5926
5930
5927 2002-04-15 Fernando Perez <fperez@colorado.edu>
5931 2002-04-15 Fernando Perez <fperez@colorado.edu>
5928
5932
5929 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5933 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5930 crash embedded instances because of the input cache falling out of
5934 crash embedded instances because of the input cache falling out of
5931 sync with the output counter.
5935 sync with the output counter.
5932
5936
5933 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5937 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5934 mode which calls pdb after an uncaught exception in IPython itself.
5938 mode which calls pdb after an uncaught exception in IPython itself.
5935
5939
5936 2002-04-14 Fernando Perez <fperez@colorado.edu>
5940 2002-04-14 Fernando Perez <fperez@colorado.edu>
5937
5941
5938 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5942 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5939 readline, fix it back after each call.
5943 readline, fix it back after each call.
5940
5944
5941 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5945 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5942 method to force all access via __call__(), which guarantees that
5946 method to force all access via __call__(), which guarantees that
5943 traceback references are properly deleted.
5947 traceback references are properly deleted.
5944
5948
5945 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5949 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5946 improve printing when pprint is in use.
5950 improve printing when pprint is in use.
5947
5951
5948 2002-04-13 Fernando Perez <fperez@colorado.edu>
5952 2002-04-13 Fernando Perez <fperez@colorado.edu>
5949
5953
5950 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5954 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5951 exceptions aren't caught anymore. If the user triggers one, he
5955 exceptions aren't caught anymore. If the user triggers one, he
5952 should know why he's doing it and it should go all the way up,
5956 should know why he's doing it and it should go all the way up,
5953 just like any other exception. So now @abort will fully kill the
5957 just like any other exception. So now @abort will fully kill the
5954 embedded interpreter and the embedding code (unless that happens
5958 embedded interpreter and the embedding code (unless that happens
5955 to catch SystemExit).
5959 to catch SystemExit).
5956
5960
5957 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5961 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5958 and a debugger() method to invoke the interactive pdb debugger
5962 and a debugger() method to invoke the interactive pdb debugger
5959 after printing exception information. Also added the corresponding
5963 after printing exception information. Also added the corresponding
5960 -pdb option and @pdb magic to control this feature, and updated
5964 -pdb option and @pdb magic to control this feature, and updated
5961 the docs. After a suggestion from Christopher Hart
5965 the docs. After a suggestion from Christopher Hart
5962 (hart-AT-caltech.edu).
5966 (hart-AT-caltech.edu).
5963
5967
5964 2002-04-12 Fernando Perez <fperez@colorado.edu>
5968 2002-04-12 Fernando Perez <fperez@colorado.edu>
5965
5969
5966 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5970 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5967 the exception handlers defined by the user (not the CrashHandler)
5971 the exception handlers defined by the user (not the CrashHandler)
5968 so that user exceptions don't trigger an ipython bug report.
5972 so that user exceptions don't trigger an ipython bug report.
5969
5973
5970 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5974 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5971 configurable (it should have always been so).
5975 configurable (it should have always been so).
5972
5976
5973 2002-03-26 Fernando Perez <fperez@colorado.edu>
5977 2002-03-26 Fernando Perez <fperez@colorado.edu>
5974
5978
5975 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5979 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5976 and there to fix embedding namespace issues. This should all be
5980 and there to fix embedding namespace issues. This should all be
5977 done in a more elegant way.
5981 done in a more elegant way.
5978
5982
5979 2002-03-25 Fernando Perez <fperez@colorado.edu>
5983 2002-03-25 Fernando Perez <fperez@colorado.edu>
5980
5984
5981 * IPython/genutils.py (get_home_dir): Try to make it work under
5985 * IPython/genutils.py (get_home_dir): Try to make it work under
5982 win9x also.
5986 win9x also.
5983
5987
5984 2002-03-20 Fernando Perez <fperez@colorado.edu>
5988 2002-03-20 Fernando Perez <fperez@colorado.edu>
5985
5989
5986 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5990 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5987 sys.displayhook untouched upon __init__.
5991 sys.displayhook untouched upon __init__.
5988
5992
5989 2002-03-19 Fernando Perez <fperez@colorado.edu>
5993 2002-03-19 Fernando Perez <fperez@colorado.edu>
5990
5994
5991 * Released 0.2.9 (for embedding bug, basically).
5995 * Released 0.2.9 (for embedding bug, basically).
5992
5996
5993 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5997 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5994 exceptions so that enclosing shell's state can be restored.
5998 exceptions so that enclosing shell's state can be restored.
5995
5999
5996 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
6000 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5997 naming conventions in the .ipython/ dir.
6001 naming conventions in the .ipython/ dir.
5998
6002
5999 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
6003 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
6000 from delimiters list so filenames with - in them get expanded.
6004 from delimiters list so filenames with - in them get expanded.
6001
6005
6002 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
6006 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
6003 sys.displayhook not being properly restored after an embedded call.
6007 sys.displayhook not being properly restored after an embedded call.
6004
6008
6005 2002-03-18 Fernando Perez <fperez@colorado.edu>
6009 2002-03-18 Fernando Perez <fperez@colorado.edu>
6006
6010
6007 * Released 0.2.8
6011 * Released 0.2.8
6008
6012
6009 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
6013 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
6010 some files weren't being included in a -upgrade.
6014 some files weren't being included in a -upgrade.
6011 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
6015 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
6012 on' so that the first tab completes.
6016 on' so that the first tab completes.
6013 (InteractiveShell.handle_magic): fixed bug with spaces around
6017 (InteractiveShell.handle_magic): fixed bug with spaces around
6014 quotes breaking many magic commands.
6018 quotes breaking many magic commands.
6015
6019
6016 * setup.py: added note about ignoring the syntax error messages at
6020 * setup.py: added note about ignoring the syntax error messages at
6017 installation.
6021 installation.
6018
6022
6019 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
6023 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
6020 streamlining the gnuplot interface, now there's only one magic @gp.
6024 streamlining the gnuplot interface, now there's only one magic @gp.
6021
6025
6022 2002-03-17 Fernando Perez <fperez@colorado.edu>
6026 2002-03-17 Fernando Perez <fperez@colorado.edu>
6023
6027
6024 * IPython/UserConfig/magic_gnuplot.py: new name for the
6028 * IPython/UserConfig/magic_gnuplot.py: new name for the
6025 example-magic_pm.py file. Much enhanced system, now with a shell
6029 example-magic_pm.py file. Much enhanced system, now with a shell
6026 for communicating directly with gnuplot, one command at a time.
6030 for communicating directly with gnuplot, one command at a time.
6027
6031
6028 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
6032 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
6029 setting __name__=='__main__'.
6033 setting __name__=='__main__'.
6030
6034
6031 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
6035 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
6032 mini-shell for accessing gnuplot from inside ipython. Should
6036 mini-shell for accessing gnuplot from inside ipython. Should
6033 extend it later for grace access too. Inspired by Arnd's
6037 extend it later for grace access too. Inspired by Arnd's
6034 suggestion.
6038 suggestion.
6035
6039
6036 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
6040 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
6037 calling magic functions with () in their arguments. Thanks to Arnd
6041 calling magic functions with () in their arguments. Thanks to Arnd
6038 Baecker for pointing this to me.
6042 Baecker for pointing this to me.
6039
6043
6040 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
6044 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
6041 infinitely for integer or complex arrays (only worked with floats).
6045 infinitely for integer or complex arrays (only worked with floats).
6042
6046
6043 2002-03-16 Fernando Perez <fperez@colorado.edu>
6047 2002-03-16 Fernando Perez <fperez@colorado.edu>
6044
6048
6045 * setup.py: Merged setup and setup_windows into a single script
6049 * setup.py: Merged setup and setup_windows into a single script
6046 which properly handles things for windows users.
6050 which properly handles things for windows users.
6047
6051
6048 2002-03-15 Fernando Perez <fperez@colorado.edu>
6052 2002-03-15 Fernando Perez <fperez@colorado.edu>
6049
6053
6050 * Big change to the manual: now the magics are all automatically
6054 * Big change to the manual: now the magics are all automatically
6051 documented. This information is generated from their docstrings
6055 documented. This information is generated from their docstrings
6052 and put in a latex file included by the manual lyx file. This way
6056 and put in a latex file included by the manual lyx file. This way
6053 we get always up to date information for the magics. The manual
6057 we get always up to date information for the magics. The manual
6054 now also has proper version information, also auto-synced.
6058 now also has proper version information, also auto-synced.
6055
6059
6056 For this to work, an undocumented --magic_docstrings option was added.
6060 For this to work, an undocumented --magic_docstrings option was added.
6057
6061
6058 2002-03-13 Fernando Perez <fperez@colorado.edu>
6062 2002-03-13 Fernando Perez <fperez@colorado.edu>
6059
6063
6060 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
6064 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
6061 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
6065 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
6062
6066
6063 2002-03-12 Fernando Perez <fperez@colorado.edu>
6067 2002-03-12 Fernando Perez <fperez@colorado.edu>
6064
6068
6065 * IPython/ultraTB.py (TermColors): changed color escapes again to
6069 * IPython/ultraTB.py (TermColors): changed color escapes again to
6066 fix the (old, reintroduced) line-wrapping bug. Basically, if
6070 fix the (old, reintroduced) line-wrapping bug. Basically, if
6067 \001..\002 aren't given in the color escapes, lines get wrapped
6071 \001..\002 aren't given in the color escapes, lines get wrapped
6068 weirdly. But giving those screws up old xterms and emacs terms. So
6072 weirdly. But giving those screws up old xterms and emacs terms. So
6069 I added some logic for emacs terms to be ok, but I can't identify old
6073 I added some logic for emacs terms to be ok, but I can't identify old
6070 xterms separately ($TERM=='xterm' for many terminals, like konsole).
6074 xterms separately ($TERM=='xterm' for many terminals, like konsole).
6071
6075
6072 2002-03-10 Fernando Perez <fperez@colorado.edu>
6076 2002-03-10 Fernando Perez <fperez@colorado.edu>
6073
6077
6074 * IPython/usage.py (__doc__): Various documentation cleanups and
6078 * IPython/usage.py (__doc__): Various documentation cleanups and
6075 updates, both in usage docstrings and in the manual.
6079 updates, both in usage docstrings and in the manual.
6076
6080
6077 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
6081 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
6078 handling of caching. Set minimum acceptabe value for having a
6082 handling of caching. Set minimum acceptabe value for having a
6079 cache at 20 values.
6083 cache at 20 values.
6080
6084
6081 * IPython/iplib.py (InteractiveShell.user_setup): moved the
6085 * IPython/iplib.py (InteractiveShell.user_setup): moved the
6082 install_first_time function to a method, renamed it and added an
6086 install_first_time function to a method, renamed it and added an
6083 'upgrade' mode. Now people can update their config directory with
6087 'upgrade' mode. Now people can update their config directory with
6084 a simple command line switch (-upgrade, also new).
6088 a simple command line switch (-upgrade, also new).
6085
6089
6086 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
6090 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
6087 @file (convenient for automagic users under Python >= 2.2).
6091 @file (convenient for automagic users under Python >= 2.2).
6088 Removed @files (it seemed more like a plural than an abbrev. of
6092 Removed @files (it seemed more like a plural than an abbrev. of
6089 'file show').
6093 'file show').
6090
6094
6091 * IPython/iplib.py (install_first_time): Fixed crash if there were
6095 * IPython/iplib.py (install_first_time): Fixed crash if there were
6092 backup files ('~') in .ipython/ install directory.
6096 backup files ('~') in .ipython/ install directory.
6093
6097
6094 * IPython/ipmaker.py (make_IPython): fixes for new prompt
6098 * IPython/ipmaker.py (make_IPython): fixes for new prompt
6095 system. Things look fine, but these changes are fairly
6099 system. Things look fine, but these changes are fairly
6096 intrusive. Test them for a few days.
6100 intrusive. Test them for a few days.
6097
6101
6098 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
6102 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
6099 the prompts system. Now all in/out prompt strings are user
6103 the prompts system. Now all in/out prompt strings are user
6100 controllable. This is particularly useful for embedding, as one
6104 controllable. This is particularly useful for embedding, as one
6101 can tag embedded instances with particular prompts.
6105 can tag embedded instances with particular prompts.
6102
6106
6103 Also removed global use of sys.ps1/2, which now allows nested
6107 Also removed global use of sys.ps1/2, which now allows nested
6104 embeddings without any problems. Added command-line options for
6108 embeddings without any problems. Added command-line options for
6105 the prompt strings.
6109 the prompt strings.
6106
6110
6107 2002-03-08 Fernando Perez <fperez@colorado.edu>
6111 2002-03-08 Fernando Perez <fperez@colorado.edu>
6108
6112
6109 * IPython/UserConfig/example-embed-short.py (ipshell): added
6113 * IPython/UserConfig/example-embed-short.py (ipshell): added
6110 example file with the bare minimum code for embedding.
6114 example file with the bare minimum code for embedding.
6111
6115
6112 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
6116 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
6113 functionality for the embeddable shell to be activated/deactivated
6117 functionality for the embeddable shell to be activated/deactivated
6114 either globally or at each call.
6118 either globally or at each call.
6115
6119
6116 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
6120 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
6117 rewriting the prompt with '--->' for auto-inputs with proper
6121 rewriting the prompt with '--->' for auto-inputs with proper
6118 coloring. Now the previous UGLY hack in handle_auto() is gone, and
6122 coloring. Now the previous UGLY hack in handle_auto() is gone, and
6119 this is handled by the prompts class itself, as it should.
6123 this is handled by the prompts class itself, as it should.
6120
6124
6121 2002-03-05 Fernando Perez <fperez@colorado.edu>
6125 2002-03-05 Fernando Perez <fperez@colorado.edu>
6122
6126
6123 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
6127 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
6124 @logstart to avoid name clashes with the math log function.
6128 @logstart to avoid name clashes with the math log function.
6125
6129
6126 * Big updates to X/Emacs section of the manual.
6130 * Big updates to X/Emacs section of the manual.
6127
6131
6128 * Removed ipython_emacs. Milan explained to me how to pass
6132 * Removed ipython_emacs. Milan explained to me how to pass
6129 arguments to ipython through Emacs. Some day I'm going to end up
6133 arguments to ipython through Emacs. Some day I'm going to end up
6130 learning some lisp...
6134 learning some lisp...
6131
6135
6132 2002-03-04 Fernando Perez <fperez@colorado.edu>
6136 2002-03-04 Fernando Perez <fperez@colorado.edu>
6133
6137
6134 * IPython/ipython_emacs: Created script to be used as the
6138 * IPython/ipython_emacs: Created script to be used as the
6135 py-python-command Emacs variable so we can pass IPython
6139 py-python-command Emacs variable so we can pass IPython
6136 parameters. I can't figure out how to tell Emacs directly to pass
6140 parameters. I can't figure out how to tell Emacs directly to pass
6137 parameters to IPython, so a dummy shell script will do it.
6141 parameters to IPython, so a dummy shell script will do it.
6138
6142
6139 Other enhancements made for things to work better under Emacs'
6143 Other enhancements made for things to work better under Emacs'
6140 various types of terminals. Many thanks to Milan Zamazal
6144 various types of terminals. Many thanks to Milan Zamazal
6141 <pdm-AT-zamazal.org> for all the suggestions and pointers.
6145 <pdm-AT-zamazal.org> for all the suggestions and pointers.
6142
6146
6143 2002-03-01 Fernando Perez <fperez@colorado.edu>
6147 2002-03-01 Fernando Perez <fperez@colorado.edu>
6144
6148
6145 * IPython/ipmaker.py (make_IPython): added a --readline! option so
6149 * IPython/ipmaker.py (make_IPython): added a --readline! option so
6146 that loading of readline is now optional. This gives better
6150 that loading of readline is now optional. This gives better
6147 control to emacs users.
6151 control to emacs users.
6148
6152
6149 * IPython/ultraTB.py (__date__): Modified color escape sequences
6153 * IPython/ultraTB.py (__date__): Modified color escape sequences
6150 and now things work fine under xterm and in Emacs' term buffers
6154 and now things work fine under xterm and in Emacs' term buffers
6151 (though not shell ones). Well, in emacs you get colors, but all
6155 (though not shell ones). Well, in emacs you get colors, but all
6152 seem to be 'light' colors (no difference between dark and light
6156 seem to be 'light' colors (no difference between dark and light
6153 ones). But the garbage chars are gone, and also in xterms. It
6157 ones). But the garbage chars are gone, and also in xterms. It
6154 seems that now I'm using 'cleaner' ansi sequences.
6158 seems that now I'm using 'cleaner' ansi sequences.
6155
6159
6156 2002-02-21 Fernando Perez <fperez@colorado.edu>
6160 2002-02-21 Fernando Perez <fperez@colorado.edu>
6157
6161
6158 * Released 0.2.7 (mainly to publish the scoping fix).
6162 * Released 0.2.7 (mainly to publish the scoping fix).
6159
6163
6160 * IPython/Logger.py (Logger.logstate): added. A corresponding
6164 * IPython/Logger.py (Logger.logstate): added. A corresponding
6161 @logstate magic was created.
6165 @logstate magic was created.
6162
6166
6163 * IPython/Magic.py: fixed nested scoping problem under Python
6167 * IPython/Magic.py: fixed nested scoping problem under Python
6164 2.1.x (automagic wasn't working).
6168 2.1.x (automagic wasn't working).
6165
6169
6166 2002-02-20 Fernando Perez <fperez@colorado.edu>
6170 2002-02-20 Fernando Perez <fperez@colorado.edu>
6167
6171
6168 * Released 0.2.6.
6172 * Released 0.2.6.
6169
6173
6170 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
6174 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
6171 option so that logs can come out without any headers at all.
6175 option so that logs can come out without any headers at all.
6172
6176
6173 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
6177 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
6174 SciPy.
6178 SciPy.
6175
6179
6176 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
6180 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
6177 that embedded IPython calls don't require vars() to be explicitly
6181 that embedded IPython calls don't require vars() to be explicitly
6178 passed. Now they are extracted from the caller's frame (code
6182 passed. Now they are extracted from the caller's frame (code
6179 snatched from Eric Jones' weave). Added better documentation to
6183 snatched from Eric Jones' weave). Added better documentation to
6180 the section on embedding and the example file.
6184 the section on embedding and the example file.
6181
6185
6182 * IPython/genutils.py (page): Changed so that under emacs, it just
6186 * IPython/genutils.py (page): Changed so that under emacs, it just
6183 prints the string. You can then page up and down in the emacs
6187 prints the string. You can then page up and down in the emacs
6184 buffer itself. This is how the builtin help() works.
6188 buffer itself. This is how the builtin help() works.
6185
6189
6186 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
6190 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
6187 macro scoping: macros need to be executed in the user's namespace
6191 macro scoping: macros need to be executed in the user's namespace
6188 to work as if they had been typed by the user.
6192 to work as if they had been typed by the user.
6189
6193
6190 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6194 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6191 execute automatically (no need to type 'exec...'). They then
6195 execute automatically (no need to type 'exec...'). They then
6192 behave like 'true macros'. The printing system was also modified
6196 behave like 'true macros'. The printing system was also modified
6193 for this to work.
6197 for this to work.
6194
6198
6195 2002-02-19 Fernando Perez <fperez@colorado.edu>
6199 2002-02-19 Fernando Perez <fperez@colorado.edu>
6196
6200
6197 * IPython/genutils.py (page_file): new function for paging files
6201 * IPython/genutils.py (page_file): new function for paging files
6198 in an OS-independent way. Also necessary for file viewing to work
6202 in an OS-independent way. Also necessary for file viewing to work
6199 well inside Emacs buffers.
6203 well inside Emacs buffers.
6200 (page): Added checks for being in an emacs buffer.
6204 (page): Added checks for being in an emacs buffer.
6201 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6205 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6202 same bug in iplib.
6206 same bug in iplib.
6203
6207
6204 2002-02-18 Fernando Perez <fperez@colorado.edu>
6208 2002-02-18 Fernando Perez <fperez@colorado.edu>
6205
6209
6206 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6210 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6207 of readline so that IPython can work inside an Emacs buffer.
6211 of readline so that IPython can work inside an Emacs buffer.
6208
6212
6209 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6213 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6210 method signatures (they weren't really bugs, but it looks cleaner
6214 method signatures (they weren't really bugs, but it looks cleaner
6211 and keeps PyChecker happy).
6215 and keeps PyChecker happy).
6212
6216
6213 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6217 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6214 for implementing various user-defined hooks. Currently only
6218 for implementing various user-defined hooks. Currently only
6215 display is done.
6219 display is done.
6216
6220
6217 * IPython/Prompts.py (CachedOutput._display): changed display
6221 * IPython/Prompts.py (CachedOutput._display): changed display
6218 functions so that they can be dynamically changed by users easily.
6222 functions so that they can be dynamically changed by users easily.
6219
6223
6220 * IPython/Extensions/numeric_formats.py (num_display): added an
6224 * IPython/Extensions/numeric_formats.py (num_display): added an
6221 extension for printing NumPy arrays in flexible manners. It
6225 extension for printing NumPy arrays in flexible manners. It
6222 doesn't do anything yet, but all the structure is in
6226 doesn't do anything yet, but all the structure is in
6223 place. Ultimately the plan is to implement output format control
6227 place. Ultimately the plan is to implement output format control
6224 like in Octave.
6228 like in Octave.
6225
6229
6226 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6230 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6227 methods are found at run-time by all the automatic machinery.
6231 methods are found at run-time by all the automatic machinery.
6228
6232
6229 2002-02-17 Fernando Perez <fperez@colorado.edu>
6233 2002-02-17 Fernando Perez <fperez@colorado.edu>
6230
6234
6231 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6235 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6232 whole file a little.
6236 whole file a little.
6233
6237
6234 * ToDo: closed this document. Now there's a new_design.lyx
6238 * ToDo: closed this document. Now there's a new_design.lyx
6235 document for all new ideas. Added making a pdf of it for the
6239 document for all new ideas. Added making a pdf of it for the
6236 end-user distro.
6240 end-user distro.
6237
6241
6238 * IPython/Logger.py (Logger.switch_log): Created this to replace
6242 * IPython/Logger.py (Logger.switch_log): Created this to replace
6239 logon() and logoff(). It also fixes a nasty crash reported by
6243 logon() and logoff(). It also fixes a nasty crash reported by
6240 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6244 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6241
6245
6242 * IPython/iplib.py (complete): got auto-completion to work with
6246 * IPython/iplib.py (complete): got auto-completion to work with
6243 automagic (I had wanted this for a long time).
6247 automagic (I had wanted this for a long time).
6244
6248
6245 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6249 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6246 to @file, since file() is now a builtin and clashes with automagic
6250 to @file, since file() is now a builtin and clashes with automagic
6247 for @file.
6251 for @file.
6248
6252
6249 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6253 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6250 of this was previously in iplib, which had grown to more than 2000
6254 of this was previously in iplib, which had grown to more than 2000
6251 lines, way too long. No new functionality, but it makes managing
6255 lines, way too long. No new functionality, but it makes managing
6252 the code a bit easier.
6256 the code a bit easier.
6253
6257
6254 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6258 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6255 information to crash reports.
6259 information to crash reports.
6256
6260
6257 2002-02-12 Fernando Perez <fperez@colorado.edu>
6261 2002-02-12 Fernando Perez <fperez@colorado.edu>
6258
6262
6259 * Released 0.2.5.
6263 * Released 0.2.5.
6260
6264
6261 2002-02-11 Fernando Perez <fperez@colorado.edu>
6265 2002-02-11 Fernando Perez <fperez@colorado.edu>
6262
6266
6263 * Wrote a relatively complete Windows installer. It puts
6267 * Wrote a relatively complete Windows installer. It puts
6264 everything in place, creates Start Menu entries and fixes the
6268 everything in place, creates Start Menu entries and fixes the
6265 color issues. Nothing fancy, but it works.
6269 color issues. Nothing fancy, but it works.
6266
6270
6267 2002-02-10 Fernando Perez <fperez@colorado.edu>
6271 2002-02-10 Fernando Perez <fperez@colorado.edu>
6268
6272
6269 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6273 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6270 os.path.expanduser() call so that we can type @run ~/myfile.py and
6274 os.path.expanduser() call so that we can type @run ~/myfile.py and
6271 have thigs work as expected.
6275 have thigs work as expected.
6272
6276
6273 * IPython/genutils.py (page): fixed exception handling so things
6277 * IPython/genutils.py (page): fixed exception handling so things
6274 work both in Unix and Windows correctly. Quitting a pager triggers
6278 work both in Unix and Windows correctly. Quitting a pager triggers
6275 an IOError/broken pipe in Unix, and in windows not finding a pager
6279 an IOError/broken pipe in Unix, and in windows not finding a pager
6276 is also an IOError, so I had to actually look at the return value
6280 is also an IOError, so I had to actually look at the return value
6277 of the exception, not just the exception itself. Should be ok now.
6281 of the exception, not just the exception itself. Should be ok now.
6278
6282
6279 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6283 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6280 modified to allow case-insensitive color scheme changes.
6284 modified to allow case-insensitive color scheme changes.
6281
6285
6282 2002-02-09 Fernando Perez <fperez@colorado.edu>
6286 2002-02-09 Fernando Perez <fperez@colorado.edu>
6283
6287
6284 * IPython/genutils.py (native_line_ends): new function to leave
6288 * IPython/genutils.py (native_line_ends): new function to leave
6285 user config files with os-native line-endings.
6289 user config files with os-native line-endings.
6286
6290
6287 * README and manual updates.
6291 * README and manual updates.
6288
6292
6289 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6293 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6290 instead of StringType to catch Unicode strings.
6294 instead of StringType to catch Unicode strings.
6291
6295
6292 * IPython/genutils.py (filefind): fixed bug for paths with
6296 * IPython/genutils.py (filefind): fixed bug for paths with
6293 embedded spaces (very common in Windows).
6297 embedded spaces (very common in Windows).
6294
6298
6295 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6299 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6296 files under Windows, so that they get automatically associated
6300 files under Windows, so that they get automatically associated
6297 with a text editor. Windows makes it a pain to handle
6301 with a text editor. Windows makes it a pain to handle
6298 extension-less files.
6302 extension-less files.
6299
6303
6300 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6304 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6301 warning about readline only occur for Posix. In Windows there's no
6305 warning about readline only occur for Posix. In Windows there's no
6302 way to get readline, so why bother with the warning.
6306 way to get readline, so why bother with the warning.
6303
6307
6304 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6308 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6305 for __str__ instead of dir(self), since dir() changed in 2.2.
6309 for __str__ instead of dir(self), since dir() changed in 2.2.
6306
6310
6307 * Ported to Windows! Tested on XP, I suspect it should work fine
6311 * Ported to Windows! Tested on XP, I suspect it should work fine
6308 on NT/2000, but I don't think it will work on 98 et al. That
6312 on NT/2000, but I don't think it will work on 98 et al. That
6309 series of Windows is such a piece of junk anyway that I won't try
6313 series of Windows is such a piece of junk anyway that I won't try
6310 porting it there. The XP port was straightforward, showed a few
6314 porting it there. The XP port was straightforward, showed a few
6311 bugs here and there (fixed all), in particular some string
6315 bugs here and there (fixed all), in particular some string
6312 handling stuff which required considering Unicode strings (which
6316 handling stuff which required considering Unicode strings (which
6313 Windows uses). This is good, but hasn't been too tested :) No
6317 Windows uses). This is good, but hasn't been too tested :) No
6314 fancy installer yet, I'll put a note in the manual so people at
6318 fancy installer yet, I'll put a note in the manual so people at
6315 least make manually a shortcut.
6319 least make manually a shortcut.
6316
6320
6317 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6321 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6318 into a single one, "colors". This now controls both prompt and
6322 into a single one, "colors". This now controls both prompt and
6319 exception color schemes, and can be changed both at startup
6323 exception color schemes, and can be changed both at startup
6320 (either via command-line switches or via ipythonrc files) and at
6324 (either via command-line switches or via ipythonrc files) and at
6321 runtime, with @colors.
6325 runtime, with @colors.
6322 (Magic.magic_run): renamed @prun to @run and removed the old
6326 (Magic.magic_run): renamed @prun to @run and removed the old
6323 @run. The two were too similar to warrant keeping both.
6327 @run. The two were too similar to warrant keeping both.
6324
6328
6325 2002-02-03 Fernando Perez <fperez@colorado.edu>
6329 2002-02-03 Fernando Perez <fperez@colorado.edu>
6326
6330
6327 * IPython/iplib.py (install_first_time): Added comment on how to
6331 * IPython/iplib.py (install_first_time): Added comment on how to
6328 configure the color options for first-time users. Put a <return>
6332 configure the color options for first-time users. Put a <return>
6329 request at the end so that small-terminal users get a chance to
6333 request at the end so that small-terminal users get a chance to
6330 read the startup info.
6334 read the startup info.
6331
6335
6332 2002-01-23 Fernando Perez <fperez@colorado.edu>
6336 2002-01-23 Fernando Perez <fperez@colorado.edu>
6333
6337
6334 * IPython/iplib.py (CachedOutput.update): Changed output memory
6338 * IPython/iplib.py (CachedOutput.update): Changed output memory
6335 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6339 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6336 input history we still use _i. Did this b/c these variable are
6340 input history we still use _i. Did this b/c these variable are
6337 very commonly used in interactive work, so the less we need to
6341 very commonly used in interactive work, so the less we need to
6338 type the better off we are.
6342 type the better off we are.
6339 (Magic.magic_prun): updated @prun to better handle the namespaces
6343 (Magic.magic_prun): updated @prun to better handle the namespaces
6340 the file will run in, including a fix for __name__ not being set
6344 the file will run in, including a fix for __name__ not being set
6341 before.
6345 before.
6342
6346
6343 2002-01-20 Fernando Perez <fperez@colorado.edu>
6347 2002-01-20 Fernando Perez <fperez@colorado.edu>
6344
6348
6345 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6349 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6346 extra garbage for Python 2.2. Need to look more carefully into
6350 extra garbage for Python 2.2. Need to look more carefully into
6347 this later.
6351 this later.
6348
6352
6349 2002-01-19 Fernando Perez <fperez@colorado.edu>
6353 2002-01-19 Fernando Perez <fperez@colorado.edu>
6350
6354
6351 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6355 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6352 display SyntaxError exceptions properly formatted when they occur
6356 display SyntaxError exceptions properly formatted when they occur
6353 (they can be triggered by imported code).
6357 (they can be triggered by imported code).
6354
6358
6355 2002-01-18 Fernando Perez <fperez@colorado.edu>
6359 2002-01-18 Fernando Perez <fperez@colorado.edu>
6356
6360
6357 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6361 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6358 SyntaxError exceptions are reported nicely formatted, instead of
6362 SyntaxError exceptions are reported nicely formatted, instead of
6359 spitting out only offset information as before.
6363 spitting out only offset information as before.
6360 (Magic.magic_prun): Added the @prun function for executing
6364 (Magic.magic_prun): Added the @prun function for executing
6361 programs with command line args inside IPython.
6365 programs with command line args inside IPython.
6362
6366
6363 2002-01-16 Fernando Perez <fperez@colorado.edu>
6367 2002-01-16 Fernando Perez <fperez@colorado.edu>
6364
6368
6365 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6369 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6366 to *not* include the last item given in a range. This brings their
6370 to *not* include the last item given in a range. This brings their
6367 behavior in line with Python's slicing:
6371 behavior in line with Python's slicing:
6368 a[n1:n2] -> a[n1]...a[n2-1]
6372 a[n1:n2] -> a[n1]...a[n2-1]
6369 It may be a bit less convenient, but I prefer to stick to Python's
6373 It may be a bit less convenient, but I prefer to stick to Python's
6370 conventions *everywhere*, so users never have to wonder.
6374 conventions *everywhere*, so users never have to wonder.
6371 (Magic.magic_macro): Added @macro function to ease the creation of
6375 (Magic.magic_macro): Added @macro function to ease the creation of
6372 macros.
6376 macros.
6373
6377
6374 2002-01-05 Fernando Perez <fperez@colorado.edu>
6378 2002-01-05 Fernando Perez <fperez@colorado.edu>
6375
6379
6376 * Released 0.2.4.
6380 * Released 0.2.4.
6377
6381
6378 * IPython/iplib.py (Magic.magic_pdef):
6382 * IPython/iplib.py (Magic.magic_pdef):
6379 (InteractiveShell.safe_execfile): report magic lines and error
6383 (InteractiveShell.safe_execfile): report magic lines and error
6380 lines without line numbers so one can easily copy/paste them for
6384 lines without line numbers so one can easily copy/paste them for
6381 re-execution.
6385 re-execution.
6382
6386
6383 * Updated manual with recent changes.
6387 * Updated manual with recent changes.
6384
6388
6385 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6389 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6386 docstring printing when class? is called. Very handy for knowing
6390 docstring printing when class? is called. Very handy for knowing
6387 how to create class instances (as long as __init__ is well
6391 how to create class instances (as long as __init__ is well
6388 documented, of course :)
6392 documented, of course :)
6389 (Magic.magic_doc): print both class and constructor docstrings.
6393 (Magic.magic_doc): print both class and constructor docstrings.
6390 (Magic.magic_pdef): give constructor info if passed a class and
6394 (Magic.magic_pdef): give constructor info if passed a class and
6391 __call__ info for callable object instances.
6395 __call__ info for callable object instances.
6392
6396
6393 2002-01-04 Fernando Perez <fperez@colorado.edu>
6397 2002-01-04 Fernando Perez <fperez@colorado.edu>
6394
6398
6395 * Made deep_reload() off by default. It doesn't always work
6399 * Made deep_reload() off by default. It doesn't always work
6396 exactly as intended, so it's probably safer to have it off. It's
6400 exactly as intended, so it's probably safer to have it off. It's
6397 still available as dreload() anyway, so nothing is lost.
6401 still available as dreload() anyway, so nothing is lost.
6398
6402
6399 2002-01-02 Fernando Perez <fperez@colorado.edu>
6403 2002-01-02 Fernando Perez <fperez@colorado.edu>
6400
6404
6401 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6405 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6402 so I wanted an updated release).
6406 so I wanted an updated release).
6403
6407
6404 2001-12-27 Fernando Perez <fperez@colorado.edu>
6408 2001-12-27 Fernando Perez <fperez@colorado.edu>
6405
6409
6406 * IPython/iplib.py (InteractiveShell.interact): Added the original
6410 * IPython/iplib.py (InteractiveShell.interact): Added the original
6407 code from 'code.py' for this module in order to change the
6411 code from 'code.py' for this module in order to change the
6408 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6412 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6409 the history cache would break when the user hit Ctrl-C, and
6413 the history cache would break when the user hit Ctrl-C, and
6410 interact() offers no way to add any hooks to it.
6414 interact() offers no way to add any hooks to it.
6411
6415
6412 2001-12-23 Fernando Perez <fperez@colorado.edu>
6416 2001-12-23 Fernando Perez <fperez@colorado.edu>
6413
6417
6414 * setup.py: added check for 'MANIFEST' before trying to remove
6418 * setup.py: added check for 'MANIFEST' before trying to remove
6415 it. Thanks to Sean Reifschneider.
6419 it. Thanks to Sean Reifschneider.
6416
6420
6417 2001-12-22 Fernando Perez <fperez@colorado.edu>
6421 2001-12-22 Fernando Perez <fperez@colorado.edu>
6418
6422
6419 * Released 0.2.2.
6423 * Released 0.2.2.
6420
6424
6421 * Finished (reasonably) writing the manual. Later will add the
6425 * Finished (reasonably) writing the manual. Later will add the
6422 python-standard navigation stylesheets, but for the time being
6426 python-standard navigation stylesheets, but for the time being
6423 it's fairly complete. Distribution will include html and pdf
6427 it's fairly complete. Distribution will include html and pdf
6424 versions.
6428 versions.
6425
6429
6426 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6430 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6427 (MayaVi author).
6431 (MayaVi author).
6428
6432
6429 2001-12-21 Fernando Perez <fperez@colorado.edu>
6433 2001-12-21 Fernando Perez <fperez@colorado.edu>
6430
6434
6431 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6435 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6432 good public release, I think (with the manual and the distutils
6436 good public release, I think (with the manual and the distutils
6433 installer). The manual can use some work, but that can go
6437 installer). The manual can use some work, but that can go
6434 slowly. Otherwise I think it's quite nice for end users. Next
6438 slowly. Otherwise I think it's quite nice for end users. Next
6435 summer, rewrite the guts of it...
6439 summer, rewrite the guts of it...
6436
6440
6437 * Changed format of ipythonrc files to use whitespace as the
6441 * Changed format of ipythonrc files to use whitespace as the
6438 separator instead of an explicit '='. Cleaner.
6442 separator instead of an explicit '='. Cleaner.
6439
6443
6440 2001-12-20 Fernando Perez <fperez@colorado.edu>
6444 2001-12-20 Fernando Perez <fperez@colorado.edu>
6441
6445
6442 * Started a manual in LyX. For now it's just a quick merge of the
6446 * Started a manual in LyX. For now it's just a quick merge of the
6443 various internal docstrings and READMEs. Later it may grow into a
6447 various internal docstrings and READMEs. Later it may grow into a
6444 nice, full-blown manual.
6448 nice, full-blown manual.
6445
6449
6446 * Set up a distutils based installer. Installation should now be
6450 * Set up a distutils based installer. Installation should now be
6447 trivially simple for end-users.
6451 trivially simple for end-users.
6448
6452
6449 2001-12-11 Fernando Perez <fperez@colorado.edu>
6453 2001-12-11 Fernando Perez <fperez@colorado.edu>
6450
6454
6451 * Released 0.2.0. First public release, announced it at
6455 * Released 0.2.0. First public release, announced it at
6452 comp.lang.python. From now on, just bugfixes...
6456 comp.lang.python. From now on, just bugfixes...
6453
6457
6454 * Went through all the files, set copyright/license notices and
6458 * Went through all the files, set copyright/license notices and
6455 cleaned up things. Ready for release.
6459 cleaned up things. Ready for release.
6456
6460
6457 2001-12-10 Fernando Perez <fperez@colorado.edu>
6461 2001-12-10 Fernando Perez <fperez@colorado.edu>
6458
6462
6459 * Changed the first-time installer not to use tarfiles. It's more
6463 * Changed the first-time installer not to use tarfiles. It's more
6460 robust now and less unix-dependent. Also makes it easier for
6464 robust now and less unix-dependent. Also makes it easier for
6461 people to later upgrade versions.
6465 people to later upgrade versions.
6462
6466
6463 * Changed @exit to @abort to reflect the fact that it's pretty
6467 * Changed @exit to @abort to reflect the fact that it's pretty
6464 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6468 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6465 becomes significant only when IPyhton is embedded: in that case,
6469 becomes significant only when IPyhton is embedded: in that case,
6466 C-D closes IPython only, but @abort kills the enclosing program
6470 C-D closes IPython only, but @abort kills the enclosing program
6467 too (unless it had called IPython inside a try catching
6471 too (unless it had called IPython inside a try catching
6468 SystemExit).
6472 SystemExit).
6469
6473
6470 * Created Shell module which exposes the actuall IPython Shell
6474 * Created Shell module which exposes the actuall IPython Shell
6471 classes, currently the normal and the embeddable one. This at
6475 classes, currently the normal and the embeddable one. This at
6472 least offers a stable interface we won't need to change when
6476 least offers a stable interface we won't need to change when
6473 (later) the internals are rewritten. That rewrite will be confined
6477 (later) the internals are rewritten. That rewrite will be confined
6474 to iplib and ipmaker, but the Shell interface should remain as is.
6478 to iplib and ipmaker, but the Shell interface should remain as is.
6475
6479
6476 * Added embed module which offers an embeddable IPShell object,
6480 * Added embed module which offers an embeddable IPShell object,
6477 useful to fire up IPython *inside* a running program. Great for
6481 useful to fire up IPython *inside* a running program. Great for
6478 debugging or dynamical data analysis.
6482 debugging or dynamical data analysis.
6479
6483
6480 2001-12-08 Fernando Perez <fperez@colorado.edu>
6484 2001-12-08 Fernando Perez <fperez@colorado.edu>
6481
6485
6482 * Fixed small bug preventing seeing info from methods of defined
6486 * Fixed small bug preventing seeing info from methods of defined
6483 objects (incorrect namespace in _ofind()).
6487 objects (incorrect namespace in _ofind()).
6484
6488
6485 * Documentation cleanup. Moved the main usage docstrings to a
6489 * Documentation cleanup. Moved the main usage docstrings to a
6486 separate file, usage.py (cleaner to maintain, and hopefully in the
6490 separate file, usage.py (cleaner to maintain, and hopefully in the
6487 future some perlpod-like way of producing interactive, man and
6491 future some perlpod-like way of producing interactive, man and
6488 html docs out of it will be found).
6492 html docs out of it will be found).
6489
6493
6490 * Added @profile to see your profile at any time.
6494 * Added @profile to see your profile at any time.
6491
6495
6492 * Added @p as an alias for 'print'. It's especially convenient if
6496 * Added @p as an alias for 'print'. It's especially convenient if
6493 using automagic ('p x' prints x).
6497 using automagic ('p x' prints x).
6494
6498
6495 * Small cleanups and fixes after a pychecker run.
6499 * Small cleanups and fixes after a pychecker run.
6496
6500
6497 * Changed the @cd command to handle @cd - and @cd -<n> for
6501 * Changed the @cd command to handle @cd - and @cd -<n> for
6498 visiting any directory in _dh.
6502 visiting any directory in _dh.
6499
6503
6500 * Introduced _dh, a history of visited directories. @dhist prints
6504 * Introduced _dh, a history of visited directories. @dhist prints
6501 it out with numbers.
6505 it out with numbers.
6502
6506
6503 2001-12-07 Fernando Perez <fperez@colorado.edu>
6507 2001-12-07 Fernando Perez <fperez@colorado.edu>
6504
6508
6505 * Released 0.1.22
6509 * Released 0.1.22
6506
6510
6507 * Made initialization a bit more robust against invalid color
6511 * Made initialization a bit more robust against invalid color
6508 options in user input (exit, not traceback-crash).
6512 options in user input (exit, not traceback-crash).
6509
6513
6510 * Changed the bug crash reporter to write the report only in the
6514 * Changed the bug crash reporter to write the report only in the
6511 user's .ipython directory. That way IPython won't litter people's
6515 user's .ipython directory. That way IPython won't litter people's
6512 hard disks with crash files all over the place. Also print on
6516 hard disks with crash files all over the place. Also print on
6513 screen the necessary mail command.
6517 screen the necessary mail command.
6514
6518
6515 * With the new ultraTB, implemented LightBG color scheme for light
6519 * With the new ultraTB, implemented LightBG color scheme for light
6516 background terminals. A lot of people like white backgrounds, so I
6520 background terminals. A lot of people like white backgrounds, so I
6517 guess we should at least give them something readable.
6521 guess we should at least give them something readable.
6518
6522
6519 2001-12-06 Fernando Perez <fperez@colorado.edu>
6523 2001-12-06 Fernando Perez <fperez@colorado.edu>
6520
6524
6521 * Modified the structure of ultraTB. Now there's a proper class
6525 * Modified the structure of ultraTB. Now there's a proper class
6522 for tables of color schemes which allow adding schemes easily and
6526 for tables of color schemes which allow adding schemes easily and
6523 switching the active scheme without creating a new instance every
6527 switching the active scheme without creating a new instance every
6524 time (which was ridiculous). The syntax for creating new schemes
6528 time (which was ridiculous). The syntax for creating new schemes
6525 is also cleaner. I think ultraTB is finally done, with a clean
6529 is also cleaner. I think ultraTB is finally done, with a clean
6526 class structure. Names are also much cleaner (now there's proper
6530 class structure. Names are also much cleaner (now there's proper
6527 color tables, no need for every variable to also have 'color' in
6531 color tables, no need for every variable to also have 'color' in
6528 its name).
6532 its name).
6529
6533
6530 * Broke down genutils into separate files. Now genutils only
6534 * Broke down genutils into separate files. Now genutils only
6531 contains utility functions, and classes have been moved to their
6535 contains utility functions, and classes have been moved to their
6532 own files (they had enough independent functionality to warrant
6536 own files (they had enough independent functionality to warrant
6533 it): ConfigLoader, OutputTrap, Struct.
6537 it): ConfigLoader, OutputTrap, Struct.
6534
6538
6535 2001-12-05 Fernando Perez <fperez@colorado.edu>
6539 2001-12-05 Fernando Perez <fperez@colorado.edu>
6536
6540
6537 * IPython turns 21! Released version 0.1.21, as a candidate for
6541 * IPython turns 21! Released version 0.1.21, as a candidate for
6538 public consumption. If all goes well, release in a few days.
6542 public consumption. If all goes well, release in a few days.
6539
6543
6540 * Fixed path bug (files in Extensions/ directory wouldn't be found
6544 * Fixed path bug (files in Extensions/ directory wouldn't be found
6541 unless IPython/ was explicitly in sys.path).
6545 unless IPython/ was explicitly in sys.path).
6542
6546
6543 * Extended the FlexCompleter class as MagicCompleter to allow
6547 * Extended the FlexCompleter class as MagicCompleter to allow
6544 completion of @-starting lines.
6548 completion of @-starting lines.
6545
6549
6546 * Created __release__.py file as a central repository for release
6550 * Created __release__.py file as a central repository for release
6547 info that other files can read from.
6551 info that other files can read from.
6548
6552
6549 * Fixed small bug in logging: when logging was turned on in
6553 * Fixed small bug in logging: when logging was turned on in
6550 mid-session, old lines with special meanings (!@?) were being
6554 mid-session, old lines with special meanings (!@?) were being
6551 logged without the prepended comment, which is necessary since
6555 logged without the prepended comment, which is necessary since
6552 they are not truly valid python syntax. This should make session
6556 they are not truly valid python syntax. This should make session
6553 restores produce less errors.
6557 restores produce less errors.
6554
6558
6555 * The namespace cleanup forced me to make a FlexCompleter class
6559 * The namespace cleanup forced me to make a FlexCompleter class
6556 which is nothing but a ripoff of rlcompleter, but with selectable
6560 which is nothing but a ripoff of rlcompleter, but with selectable
6557 namespace (rlcompleter only works in __main__.__dict__). I'll try
6561 namespace (rlcompleter only works in __main__.__dict__). I'll try
6558 to submit a note to the authors to see if this change can be
6562 to submit a note to the authors to see if this change can be
6559 incorporated in future rlcompleter releases (Dec.6: done)
6563 incorporated in future rlcompleter releases (Dec.6: done)
6560
6564
6561 * More fixes to namespace handling. It was a mess! Now all
6565 * More fixes to namespace handling. It was a mess! Now all
6562 explicit references to __main__.__dict__ are gone (except when
6566 explicit references to __main__.__dict__ are gone (except when
6563 really needed) and everything is handled through the namespace
6567 really needed) and everything is handled through the namespace
6564 dicts in the IPython instance. We seem to be getting somewhere
6568 dicts in the IPython instance. We seem to be getting somewhere
6565 with this, finally...
6569 with this, finally...
6566
6570
6567 * Small documentation updates.
6571 * Small documentation updates.
6568
6572
6569 * Created the Extensions directory under IPython (with an
6573 * Created the Extensions directory under IPython (with an
6570 __init__.py). Put the PhysicalQ stuff there. This directory should
6574 __init__.py). Put the PhysicalQ stuff there. This directory should
6571 be used for all special-purpose extensions.
6575 be used for all special-purpose extensions.
6572
6576
6573 * File renaming:
6577 * File renaming:
6574 ipythonlib --> ipmaker
6578 ipythonlib --> ipmaker
6575 ipplib --> iplib
6579 ipplib --> iplib
6576 This makes a bit more sense in terms of what these files actually do.
6580 This makes a bit more sense in terms of what these files actually do.
6577
6581
6578 * Moved all the classes and functions in ipythonlib to ipplib, so
6582 * Moved all the classes and functions in ipythonlib to ipplib, so
6579 now ipythonlib only has make_IPython(). This will ease up its
6583 now ipythonlib only has make_IPython(). This will ease up its
6580 splitting in smaller functional chunks later.
6584 splitting in smaller functional chunks later.
6581
6585
6582 * Cleaned up (done, I think) output of @whos. Better column
6586 * Cleaned up (done, I think) output of @whos. Better column
6583 formatting, and now shows str(var) for as much as it can, which is
6587 formatting, and now shows str(var) for as much as it can, which is
6584 typically what one gets with a 'print var'.
6588 typically what one gets with a 'print var'.
6585
6589
6586 2001-12-04 Fernando Perez <fperez@colorado.edu>
6590 2001-12-04 Fernando Perez <fperez@colorado.edu>
6587
6591
6588 * Fixed namespace problems. Now builtin/IPyhton/user names get
6592 * Fixed namespace problems. Now builtin/IPyhton/user names get
6589 properly reported in their namespace. Internal namespace handling
6593 properly reported in their namespace. Internal namespace handling
6590 is finally getting decent (not perfect yet, but much better than
6594 is finally getting decent (not perfect yet, but much better than
6591 the ad-hoc mess we had).
6595 the ad-hoc mess we had).
6592
6596
6593 * Removed -exit option. If people just want to run a python
6597 * Removed -exit option. If people just want to run a python
6594 script, that's what the normal interpreter is for. Less
6598 script, that's what the normal interpreter is for. Less
6595 unnecessary options, less chances for bugs.
6599 unnecessary options, less chances for bugs.
6596
6600
6597 * Added a crash handler which generates a complete post-mortem if
6601 * Added a crash handler which generates a complete post-mortem if
6598 IPython crashes. This will help a lot in tracking bugs down the
6602 IPython crashes. This will help a lot in tracking bugs down the
6599 road.
6603 road.
6600
6604
6601 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6605 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6602 which were boud to functions being reassigned would bypass the
6606 which were boud to functions being reassigned would bypass the
6603 logger, breaking the sync of _il with the prompt counter. This
6607 logger, breaking the sync of _il with the prompt counter. This
6604 would then crash IPython later when a new line was logged.
6608 would then crash IPython later when a new line was logged.
6605
6609
6606 2001-12-02 Fernando Perez <fperez@colorado.edu>
6610 2001-12-02 Fernando Perez <fperez@colorado.edu>
6607
6611
6608 * Made IPython a package. This means people don't have to clutter
6612 * Made IPython a package. This means people don't have to clutter
6609 their sys.path with yet another directory. Changed the INSTALL
6613 their sys.path with yet another directory. Changed the INSTALL
6610 file accordingly.
6614 file accordingly.
6611
6615
6612 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6616 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6613 sorts its output (so @who shows it sorted) and @whos formats the
6617 sorts its output (so @who shows it sorted) and @whos formats the
6614 table according to the width of the first column. Nicer, easier to
6618 table according to the width of the first column. Nicer, easier to
6615 read. Todo: write a generic table_format() which takes a list of
6619 read. Todo: write a generic table_format() which takes a list of
6616 lists and prints it nicely formatted, with optional row/column
6620 lists and prints it nicely formatted, with optional row/column
6617 separators and proper padding and justification.
6621 separators and proper padding and justification.
6618
6622
6619 * Released 0.1.20
6623 * Released 0.1.20
6620
6624
6621 * Fixed bug in @log which would reverse the inputcache list (a
6625 * Fixed bug in @log which would reverse the inputcache list (a
6622 copy operation was missing).
6626 copy operation was missing).
6623
6627
6624 * Code cleanup. @config was changed to use page(). Better, since
6628 * Code cleanup. @config was changed to use page(). Better, since
6625 its output is always quite long.
6629 its output is always quite long.
6626
6630
6627 * Itpl is back as a dependency. I was having too many problems
6631 * Itpl is back as a dependency. I was having too many problems
6628 getting the parametric aliases to work reliably, and it's just
6632 getting the parametric aliases to work reliably, and it's just
6629 easier to code weird string operations with it than playing %()s
6633 easier to code weird string operations with it than playing %()s
6630 games. It's only ~6k, so I don't think it's too big a deal.
6634 games. It's only ~6k, so I don't think it's too big a deal.
6631
6635
6632 * Found (and fixed) a very nasty bug with history. !lines weren't
6636 * Found (and fixed) a very nasty bug with history. !lines weren't
6633 getting cached, and the out of sync caches would crash
6637 getting cached, and the out of sync caches would crash
6634 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6638 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6635 division of labor a bit better. Bug fixed, cleaner structure.
6639 division of labor a bit better. Bug fixed, cleaner structure.
6636
6640
6637 2001-12-01 Fernando Perez <fperez@colorado.edu>
6641 2001-12-01 Fernando Perez <fperez@colorado.edu>
6638
6642
6639 * Released 0.1.19
6643 * Released 0.1.19
6640
6644
6641 * Added option -n to @hist to prevent line number printing. Much
6645 * Added option -n to @hist to prevent line number printing. Much
6642 easier to copy/paste code this way.
6646 easier to copy/paste code this way.
6643
6647
6644 * Created global _il to hold the input list. Allows easy
6648 * Created global _il to hold the input list. Allows easy
6645 re-execution of blocks of code by slicing it (inspired by Janko's
6649 re-execution of blocks of code by slicing it (inspired by Janko's
6646 comment on 'macros').
6650 comment on 'macros').
6647
6651
6648 * Small fixes and doc updates.
6652 * Small fixes and doc updates.
6649
6653
6650 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6654 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6651 much too fragile with automagic. Handles properly multi-line
6655 much too fragile with automagic. Handles properly multi-line
6652 statements and takes parameters.
6656 statements and takes parameters.
6653
6657
6654 2001-11-30 Fernando Perez <fperez@colorado.edu>
6658 2001-11-30 Fernando Perez <fperez@colorado.edu>
6655
6659
6656 * Version 0.1.18 released.
6660 * Version 0.1.18 released.
6657
6661
6658 * Fixed nasty namespace bug in initial module imports.
6662 * Fixed nasty namespace bug in initial module imports.
6659
6663
6660 * Added copyright/license notes to all code files (except
6664 * Added copyright/license notes to all code files (except
6661 DPyGetOpt). For the time being, LGPL. That could change.
6665 DPyGetOpt). For the time being, LGPL. That could change.
6662
6666
6663 * Rewrote a much nicer README, updated INSTALL, cleaned up
6667 * Rewrote a much nicer README, updated INSTALL, cleaned up
6664 ipythonrc-* samples.
6668 ipythonrc-* samples.
6665
6669
6666 * Overall code/documentation cleanup. Basically ready for
6670 * Overall code/documentation cleanup. Basically ready for
6667 release. Only remaining thing: licence decision (LGPL?).
6671 release. Only remaining thing: licence decision (LGPL?).
6668
6672
6669 * Converted load_config to a class, ConfigLoader. Now recursion
6673 * Converted load_config to a class, ConfigLoader. Now recursion
6670 control is better organized. Doesn't include the same file twice.
6674 control is better organized. Doesn't include the same file twice.
6671
6675
6672 2001-11-29 Fernando Perez <fperez@colorado.edu>
6676 2001-11-29 Fernando Perez <fperez@colorado.edu>
6673
6677
6674 * Got input history working. Changed output history variables from
6678 * Got input history working. Changed output history variables from
6675 _p to _o so that _i is for input and _o for output. Just cleaner
6679 _p to _o so that _i is for input and _o for output. Just cleaner
6676 convention.
6680 convention.
6677
6681
6678 * Implemented parametric aliases. This pretty much allows the
6682 * Implemented parametric aliases. This pretty much allows the
6679 alias system to offer full-blown shell convenience, I think.
6683 alias system to offer full-blown shell convenience, I think.
6680
6684
6681 * Version 0.1.17 released, 0.1.18 opened.
6685 * Version 0.1.17 released, 0.1.18 opened.
6682
6686
6683 * dot_ipython/ipythonrc (alias): added documentation.
6687 * dot_ipython/ipythonrc (alias): added documentation.
6684 (xcolor): Fixed small bug (xcolors -> xcolor)
6688 (xcolor): Fixed small bug (xcolors -> xcolor)
6685
6689
6686 * Changed the alias system. Now alias is a magic command to define
6690 * Changed the alias system. Now alias is a magic command to define
6687 aliases just like the shell. Rationale: the builtin magics should
6691 aliases just like the shell. Rationale: the builtin magics should
6688 be there for things deeply connected to IPython's
6692 be there for things deeply connected to IPython's
6689 architecture. And this is a much lighter system for what I think
6693 architecture. And this is a much lighter system for what I think
6690 is the really important feature: allowing users to define quickly
6694 is the really important feature: allowing users to define quickly
6691 magics that will do shell things for them, so they can customize
6695 magics that will do shell things for them, so they can customize
6692 IPython easily to match their work habits. If someone is really
6696 IPython easily to match their work habits. If someone is really
6693 desperate to have another name for a builtin alias, they can
6697 desperate to have another name for a builtin alias, they can
6694 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6698 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6695 works.
6699 works.
6696
6700
6697 2001-11-28 Fernando Perez <fperez@colorado.edu>
6701 2001-11-28 Fernando Perez <fperez@colorado.edu>
6698
6702
6699 * Changed @file so that it opens the source file at the proper
6703 * Changed @file so that it opens the source file at the proper
6700 line. Since it uses less, if your EDITOR environment is
6704 line. Since it uses less, if your EDITOR environment is
6701 configured, typing v will immediately open your editor of choice
6705 configured, typing v will immediately open your editor of choice
6702 right at the line where the object is defined. Not as quick as
6706 right at the line where the object is defined. Not as quick as
6703 having a direct @edit command, but for all intents and purposes it
6707 having a direct @edit command, but for all intents and purposes it
6704 works. And I don't have to worry about writing @edit to deal with
6708 works. And I don't have to worry about writing @edit to deal with
6705 all the editors, less does that.
6709 all the editors, less does that.
6706
6710
6707 * Version 0.1.16 released, 0.1.17 opened.
6711 * Version 0.1.16 released, 0.1.17 opened.
6708
6712
6709 * Fixed some nasty bugs in the page/page_dumb combo that could
6713 * Fixed some nasty bugs in the page/page_dumb combo that could
6710 crash IPython.
6714 crash IPython.
6711
6715
6712 2001-11-27 Fernando Perez <fperez@colorado.edu>
6716 2001-11-27 Fernando Perez <fperez@colorado.edu>
6713
6717
6714 * Version 0.1.15 released, 0.1.16 opened.
6718 * Version 0.1.15 released, 0.1.16 opened.
6715
6719
6716 * Finally got ? and ?? to work for undefined things: now it's
6720 * Finally got ? and ?? to work for undefined things: now it's
6717 possible to type {}.get? and get information about the get method
6721 possible to type {}.get? and get information about the get method
6718 of dicts, or os.path? even if only os is defined (so technically
6722 of dicts, or os.path? even if only os is defined (so technically
6719 os.path isn't). Works at any level. For example, after import os,
6723 os.path isn't). Works at any level. For example, after import os,
6720 os?, os.path?, os.path.abspath? all work. This is great, took some
6724 os?, os.path?, os.path.abspath? all work. This is great, took some
6721 work in _ofind.
6725 work in _ofind.
6722
6726
6723 * Fixed more bugs with logging. The sanest way to do it was to add
6727 * Fixed more bugs with logging. The sanest way to do it was to add
6724 to @log a 'mode' parameter. Killed two in one shot (this mode
6728 to @log a 'mode' parameter. Killed two in one shot (this mode
6725 option was a request of Janko's). I think it's finally clean
6729 option was a request of Janko's). I think it's finally clean
6726 (famous last words).
6730 (famous last words).
6727
6731
6728 * Added a page_dumb() pager which does a decent job of paging on
6732 * Added a page_dumb() pager which does a decent job of paging on
6729 screen, if better things (like less) aren't available. One less
6733 screen, if better things (like less) aren't available. One less
6730 unix dependency (someday maybe somebody will port this to
6734 unix dependency (someday maybe somebody will port this to
6731 windows).
6735 windows).
6732
6736
6733 * Fixed problem in magic_log: would lock of logging out if log
6737 * Fixed problem in magic_log: would lock of logging out if log
6734 creation failed (because it would still think it had succeeded).
6738 creation failed (because it would still think it had succeeded).
6735
6739
6736 * Improved the page() function using curses to auto-detect screen
6740 * Improved the page() function using curses to auto-detect screen
6737 size. Now it can make a much better decision on whether to print
6741 size. Now it can make a much better decision on whether to print
6738 or page a string. Option screen_length was modified: a value 0
6742 or page a string. Option screen_length was modified: a value 0
6739 means auto-detect, and that's the default now.
6743 means auto-detect, and that's the default now.
6740
6744
6741 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6745 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6742 go out. I'll test it for a few days, then talk to Janko about
6746 go out. I'll test it for a few days, then talk to Janko about
6743 licences and announce it.
6747 licences and announce it.
6744
6748
6745 * Fixed the length of the auto-generated ---> prompt which appears
6749 * Fixed the length of the auto-generated ---> prompt which appears
6746 for auto-parens and auto-quotes. Getting this right isn't trivial,
6750 for auto-parens and auto-quotes. Getting this right isn't trivial,
6747 with all the color escapes, different prompt types and optional
6751 with all the color escapes, different prompt types and optional
6748 separators. But it seems to be working in all the combinations.
6752 separators. But it seems to be working in all the combinations.
6749
6753
6750 2001-11-26 Fernando Perez <fperez@colorado.edu>
6754 2001-11-26 Fernando Perez <fperez@colorado.edu>
6751
6755
6752 * Wrote a regexp filter to get option types from the option names
6756 * Wrote a regexp filter to get option types from the option names
6753 string. This eliminates the need to manually keep two duplicate
6757 string. This eliminates the need to manually keep two duplicate
6754 lists.
6758 lists.
6755
6759
6756 * Removed the unneeded check_option_names. Now options are handled
6760 * Removed the unneeded check_option_names. Now options are handled
6757 in a much saner manner and it's easy to visually check that things
6761 in a much saner manner and it's easy to visually check that things
6758 are ok.
6762 are ok.
6759
6763
6760 * Updated version numbers on all files I modified to carry a
6764 * Updated version numbers on all files I modified to carry a
6761 notice so Janko and Nathan have clear version markers.
6765 notice so Janko and Nathan have clear version markers.
6762
6766
6763 * Updated docstring for ultraTB with my changes. I should send
6767 * Updated docstring for ultraTB with my changes. I should send
6764 this to Nathan.
6768 this to Nathan.
6765
6769
6766 * Lots of small fixes. Ran everything through pychecker again.
6770 * Lots of small fixes. Ran everything through pychecker again.
6767
6771
6768 * Made loading of deep_reload an cmd line option. If it's not too
6772 * Made loading of deep_reload an cmd line option. If it's not too
6769 kosher, now people can just disable it. With -nodeep_reload it's
6773 kosher, now people can just disable it. With -nodeep_reload it's
6770 still available as dreload(), it just won't overwrite reload().
6774 still available as dreload(), it just won't overwrite reload().
6771
6775
6772 * Moved many options to the no| form (-opt and -noopt
6776 * Moved many options to the no| form (-opt and -noopt
6773 accepted). Cleaner.
6777 accepted). Cleaner.
6774
6778
6775 * Changed magic_log so that if called with no parameters, it uses
6779 * Changed magic_log so that if called with no parameters, it uses
6776 'rotate' mode. That way auto-generated logs aren't automatically
6780 'rotate' mode. That way auto-generated logs aren't automatically
6777 over-written. For normal logs, now a backup is made if it exists
6781 over-written. For normal logs, now a backup is made if it exists
6778 (only 1 level of backups). A new 'backup' mode was added to the
6782 (only 1 level of backups). A new 'backup' mode was added to the
6779 Logger class to support this. This was a request by Janko.
6783 Logger class to support this. This was a request by Janko.
6780
6784
6781 * Added @logoff/@logon to stop/restart an active log.
6785 * Added @logoff/@logon to stop/restart an active log.
6782
6786
6783 * Fixed a lot of bugs in log saving/replay. It was pretty
6787 * Fixed a lot of bugs in log saving/replay. It was pretty
6784 broken. Now special lines (!@,/) appear properly in the command
6788 broken. Now special lines (!@,/) appear properly in the command
6785 history after a log replay.
6789 history after a log replay.
6786
6790
6787 * Tried and failed to implement full session saving via pickle. My
6791 * Tried and failed to implement full session saving via pickle. My
6788 idea was to pickle __main__.__dict__, but modules can't be
6792 idea was to pickle __main__.__dict__, but modules can't be
6789 pickled. This would be a better alternative to replaying logs, but
6793 pickled. This would be a better alternative to replaying logs, but
6790 seems quite tricky to get to work. Changed -session to be called
6794 seems quite tricky to get to work. Changed -session to be called
6791 -logplay, which more accurately reflects what it does. And if we
6795 -logplay, which more accurately reflects what it does. And if we
6792 ever get real session saving working, -session is now available.
6796 ever get real session saving working, -session is now available.
6793
6797
6794 * Implemented color schemes for prompts also. As for tracebacks,
6798 * Implemented color schemes for prompts also. As for tracebacks,
6795 currently only NoColor and Linux are supported. But now the
6799 currently only NoColor and Linux are supported. But now the
6796 infrastructure is in place, based on a generic ColorScheme
6800 infrastructure is in place, based on a generic ColorScheme
6797 class. So writing and activating new schemes both for the prompts
6801 class. So writing and activating new schemes both for the prompts
6798 and the tracebacks should be straightforward.
6802 and the tracebacks should be straightforward.
6799
6803
6800 * Version 0.1.13 released, 0.1.14 opened.
6804 * Version 0.1.13 released, 0.1.14 opened.
6801
6805
6802 * Changed handling of options for output cache. Now counter is
6806 * Changed handling of options for output cache. Now counter is
6803 hardwired starting at 1 and one specifies the maximum number of
6807 hardwired starting at 1 and one specifies the maximum number of
6804 entries *in the outcache* (not the max prompt counter). This is
6808 entries *in the outcache* (not the max prompt counter). This is
6805 much better, since many statements won't increase the cache
6809 much better, since many statements won't increase the cache
6806 count. It also eliminated some confusing options, now there's only
6810 count. It also eliminated some confusing options, now there's only
6807 one: cache_size.
6811 one: cache_size.
6808
6812
6809 * Added 'alias' magic function and magic_alias option in the
6813 * Added 'alias' magic function and magic_alias option in the
6810 ipythonrc file. Now the user can easily define whatever names he
6814 ipythonrc file. Now the user can easily define whatever names he
6811 wants for the magic functions without having to play weird
6815 wants for the magic functions without having to play weird
6812 namespace games. This gives IPython a real shell-like feel.
6816 namespace games. This gives IPython a real shell-like feel.
6813
6817
6814 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6818 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6815 @ or not).
6819 @ or not).
6816
6820
6817 This was one of the last remaining 'visible' bugs (that I know
6821 This was one of the last remaining 'visible' bugs (that I know
6818 of). I think if I can clean up the session loading so it works
6822 of). I think if I can clean up the session loading so it works
6819 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6823 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6820 about licensing).
6824 about licensing).
6821
6825
6822 2001-11-25 Fernando Perez <fperez@colorado.edu>
6826 2001-11-25 Fernando Perez <fperez@colorado.edu>
6823
6827
6824 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6828 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6825 there's a cleaner distinction between what ? and ?? show.
6829 there's a cleaner distinction between what ? and ?? show.
6826
6830
6827 * Added screen_length option. Now the user can define his own
6831 * Added screen_length option. Now the user can define his own
6828 screen size for page() operations.
6832 screen size for page() operations.
6829
6833
6830 * Implemented magic shell-like functions with automatic code
6834 * Implemented magic shell-like functions with automatic code
6831 generation. Now adding another function is just a matter of adding
6835 generation. Now adding another function is just a matter of adding
6832 an entry to a dict, and the function is dynamically generated at
6836 an entry to a dict, and the function is dynamically generated at
6833 run-time. Python has some really cool features!
6837 run-time. Python has some really cool features!
6834
6838
6835 * Renamed many options to cleanup conventions a little. Now all
6839 * Renamed many options to cleanup conventions a little. Now all
6836 are lowercase, and only underscores where needed. Also in the code
6840 are lowercase, and only underscores where needed. Also in the code
6837 option name tables are clearer.
6841 option name tables are clearer.
6838
6842
6839 * Changed prompts a little. Now input is 'In [n]:' instead of
6843 * Changed prompts a little. Now input is 'In [n]:' instead of
6840 'In[n]:='. This allows it the numbers to be aligned with the
6844 'In[n]:='. This allows it the numbers to be aligned with the
6841 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6845 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6842 Python (it was a Mathematica thing). The '...' continuation prompt
6846 Python (it was a Mathematica thing). The '...' continuation prompt
6843 was also changed a little to align better.
6847 was also changed a little to align better.
6844
6848
6845 * Fixed bug when flushing output cache. Not all _p<n> variables
6849 * Fixed bug when flushing output cache. Not all _p<n> variables
6846 exist, so their deletion needs to be wrapped in a try:
6850 exist, so their deletion needs to be wrapped in a try:
6847
6851
6848 * Figured out how to properly use inspect.formatargspec() (it
6852 * Figured out how to properly use inspect.formatargspec() (it
6849 requires the args preceded by *). So I removed all the code from
6853 requires the args preceded by *). So I removed all the code from
6850 _get_pdef in Magic, which was just replicating that.
6854 _get_pdef in Magic, which was just replicating that.
6851
6855
6852 * Added test to prefilter to allow redefining magic function names
6856 * Added test to prefilter to allow redefining magic function names
6853 as variables. This is ok, since the @ form is always available,
6857 as variables. This is ok, since the @ form is always available,
6854 but whe should allow the user to define a variable called 'ls' if
6858 but whe should allow the user to define a variable called 'ls' if
6855 he needs it.
6859 he needs it.
6856
6860
6857 * Moved the ToDo information from README into a separate ToDo.
6861 * Moved the ToDo information from README into a separate ToDo.
6858
6862
6859 * General code cleanup and small bugfixes. I think it's close to a
6863 * General code cleanup and small bugfixes. I think it's close to a
6860 state where it can be released, obviously with a big 'beta'
6864 state where it can be released, obviously with a big 'beta'
6861 warning on it.
6865 warning on it.
6862
6866
6863 * Got the magic function split to work. Now all magics are defined
6867 * Got the magic function split to work. Now all magics are defined
6864 in a separate class. It just organizes things a bit, and now
6868 in a separate class. It just organizes things a bit, and now
6865 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6869 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6866 was too long).
6870 was too long).
6867
6871
6868 * Changed @clear to @reset to avoid potential confusions with
6872 * Changed @clear to @reset to avoid potential confusions with
6869 the shell command clear. Also renamed @cl to @clear, which does
6873 the shell command clear. Also renamed @cl to @clear, which does
6870 exactly what people expect it to from their shell experience.
6874 exactly what people expect it to from their shell experience.
6871
6875
6872 Added a check to the @reset command (since it's so
6876 Added a check to the @reset command (since it's so
6873 destructive, it's probably a good idea to ask for confirmation).
6877 destructive, it's probably a good idea to ask for confirmation).
6874 But now reset only works for full namespace resetting. Since the
6878 But now reset only works for full namespace resetting. Since the
6875 del keyword is already there for deleting a few specific
6879 del keyword is already there for deleting a few specific
6876 variables, I don't see the point of having a redundant magic
6880 variables, I don't see the point of having a redundant magic
6877 function for the same task.
6881 function for the same task.
6878
6882
6879 2001-11-24 Fernando Perez <fperez@colorado.edu>
6883 2001-11-24 Fernando Perez <fperez@colorado.edu>
6880
6884
6881 * Updated the builtin docs (esp. the ? ones).
6885 * Updated the builtin docs (esp. the ? ones).
6882
6886
6883 * Ran all the code through pychecker. Not terribly impressed with
6887 * Ran all the code through pychecker. Not terribly impressed with
6884 it: lots of spurious warnings and didn't really find anything of
6888 it: lots of spurious warnings and didn't really find anything of
6885 substance (just a few modules being imported and not used).
6889 substance (just a few modules being imported and not used).
6886
6890
6887 * Implemented the new ultraTB functionality into IPython. New
6891 * Implemented the new ultraTB functionality into IPython. New
6888 option: xcolors. This chooses color scheme. xmode now only selects
6892 option: xcolors. This chooses color scheme. xmode now only selects
6889 between Plain and Verbose. Better orthogonality.
6893 between Plain and Verbose. Better orthogonality.
6890
6894
6891 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6895 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6892 mode and color scheme for the exception handlers. Now it's
6896 mode and color scheme for the exception handlers. Now it's
6893 possible to have the verbose traceback with no coloring.
6897 possible to have the verbose traceback with no coloring.
6894
6898
6895 2001-11-23 Fernando Perez <fperez@colorado.edu>
6899 2001-11-23 Fernando Perez <fperez@colorado.edu>
6896
6900
6897 * Version 0.1.12 released, 0.1.13 opened.
6901 * Version 0.1.12 released, 0.1.13 opened.
6898
6902
6899 * Removed option to set auto-quote and auto-paren escapes by
6903 * Removed option to set auto-quote and auto-paren escapes by
6900 user. The chances of breaking valid syntax are just too high. If
6904 user. The chances of breaking valid syntax are just too high. If
6901 someone *really* wants, they can always dig into the code.
6905 someone *really* wants, they can always dig into the code.
6902
6906
6903 * Made prompt separators configurable.
6907 * Made prompt separators configurable.
6904
6908
6905 2001-11-22 Fernando Perez <fperez@colorado.edu>
6909 2001-11-22 Fernando Perez <fperez@colorado.edu>
6906
6910
6907 * Small bugfixes in many places.
6911 * Small bugfixes in many places.
6908
6912
6909 * Removed the MyCompleter class from ipplib. It seemed redundant
6913 * Removed the MyCompleter class from ipplib. It seemed redundant
6910 with the C-p,C-n history search functionality. Less code to
6914 with the C-p,C-n history search functionality. Less code to
6911 maintain.
6915 maintain.
6912
6916
6913 * Moved all the original ipython.py code into ipythonlib.py. Right
6917 * Moved all the original ipython.py code into ipythonlib.py. Right
6914 now it's just one big dump into a function called make_IPython, so
6918 now it's just one big dump into a function called make_IPython, so
6915 no real modularity has been gained. But at least it makes the
6919 no real modularity has been gained. But at least it makes the
6916 wrapper script tiny, and since ipythonlib is a module, it gets
6920 wrapper script tiny, and since ipythonlib is a module, it gets
6917 compiled and startup is much faster.
6921 compiled and startup is much faster.
6918
6922
6919 This is a reasobably 'deep' change, so we should test it for a
6923 This is a reasobably 'deep' change, so we should test it for a
6920 while without messing too much more with the code.
6924 while without messing too much more with the code.
6921
6925
6922 2001-11-21 Fernando Perez <fperez@colorado.edu>
6926 2001-11-21 Fernando Perez <fperez@colorado.edu>
6923
6927
6924 * Version 0.1.11 released, 0.1.12 opened for further work.
6928 * Version 0.1.11 released, 0.1.12 opened for further work.
6925
6929
6926 * Removed dependency on Itpl. It was only needed in one place. It
6930 * Removed dependency on Itpl. It was only needed in one place. It
6927 would be nice if this became part of python, though. It makes life
6931 would be nice if this became part of python, though. It makes life
6928 *a lot* easier in some cases.
6932 *a lot* easier in some cases.
6929
6933
6930 * Simplified the prefilter code a bit. Now all handlers are
6934 * Simplified the prefilter code a bit. Now all handlers are
6931 expected to explicitly return a value (at least a blank string).
6935 expected to explicitly return a value (at least a blank string).
6932
6936
6933 * Heavy edits in ipplib. Removed the help system altogether. Now
6937 * Heavy edits in ipplib. Removed the help system altogether. Now
6934 obj?/?? is used for inspecting objects, a magic @doc prints
6938 obj?/?? is used for inspecting objects, a magic @doc prints
6935 docstrings, and full-blown Python help is accessed via the 'help'
6939 docstrings, and full-blown Python help is accessed via the 'help'
6936 keyword. This cleans up a lot of code (less to maintain) and does
6940 keyword. This cleans up a lot of code (less to maintain) and does
6937 the job. Since 'help' is now a standard Python component, might as
6941 the job. Since 'help' is now a standard Python component, might as
6938 well use it and remove duplicate functionality.
6942 well use it and remove duplicate functionality.
6939
6943
6940 Also removed the option to use ipplib as a standalone program. By
6944 Also removed the option to use ipplib as a standalone program. By
6941 now it's too dependent on other parts of IPython to function alone.
6945 now it's too dependent on other parts of IPython to function alone.
6942
6946
6943 * Fixed bug in genutils.pager. It would crash if the pager was
6947 * Fixed bug in genutils.pager. It would crash if the pager was
6944 exited immediately after opening (broken pipe).
6948 exited immediately after opening (broken pipe).
6945
6949
6946 * Trimmed down the VerboseTB reporting a little. The header is
6950 * Trimmed down the VerboseTB reporting a little. The header is
6947 much shorter now and the repeated exception arguments at the end
6951 much shorter now and the repeated exception arguments at the end
6948 have been removed. For interactive use the old header seemed a bit
6952 have been removed. For interactive use the old header seemed a bit
6949 excessive.
6953 excessive.
6950
6954
6951 * Fixed small bug in output of @whos for variables with multi-word
6955 * Fixed small bug in output of @whos for variables with multi-word
6952 types (only first word was displayed).
6956 types (only first word was displayed).
6953
6957
6954 2001-11-17 Fernando Perez <fperez@colorado.edu>
6958 2001-11-17 Fernando Perez <fperez@colorado.edu>
6955
6959
6956 * Version 0.1.10 released, 0.1.11 opened for further work.
6960 * Version 0.1.10 released, 0.1.11 opened for further work.
6957
6961
6958 * Modified dirs and friends. dirs now *returns* the stack (not
6962 * Modified dirs and friends. dirs now *returns* the stack (not
6959 prints), so one can manipulate it as a variable. Convenient to
6963 prints), so one can manipulate it as a variable. Convenient to
6960 travel along many directories.
6964 travel along many directories.
6961
6965
6962 * Fixed bug in magic_pdef: would only work with functions with
6966 * Fixed bug in magic_pdef: would only work with functions with
6963 arguments with default values.
6967 arguments with default values.
6964
6968
6965 2001-11-14 Fernando Perez <fperez@colorado.edu>
6969 2001-11-14 Fernando Perez <fperez@colorado.edu>
6966
6970
6967 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6971 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6968 example with IPython. Various other minor fixes and cleanups.
6972 example with IPython. Various other minor fixes and cleanups.
6969
6973
6970 * Version 0.1.9 released, 0.1.10 opened for further work.
6974 * Version 0.1.9 released, 0.1.10 opened for further work.
6971
6975
6972 * Added sys.path to the list of directories searched in the
6976 * Added sys.path to the list of directories searched in the
6973 execfile= option. It used to be the current directory and the
6977 execfile= option. It used to be the current directory and the
6974 user's IPYTHONDIR only.
6978 user's IPYTHONDIR only.
6975
6979
6976 2001-11-13 Fernando Perez <fperez@colorado.edu>
6980 2001-11-13 Fernando Perez <fperez@colorado.edu>
6977
6981
6978 * Reinstated the raw_input/prefilter separation that Janko had
6982 * Reinstated the raw_input/prefilter separation that Janko had
6979 initially. This gives a more convenient setup for extending the
6983 initially. This gives a more convenient setup for extending the
6980 pre-processor from the outside: raw_input always gets a string,
6984 pre-processor from the outside: raw_input always gets a string,
6981 and prefilter has to process it. We can then redefine prefilter
6985 and prefilter has to process it. We can then redefine prefilter
6982 from the outside and implement extensions for special
6986 from the outside and implement extensions for special
6983 purposes.
6987 purposes.
6984
6988
6985 Today I got one for inputting PhysicalQuantity objects
6989 Today I got one for inputting PhysicalQuantity objects
6986 (from Scientific) without needing any function calls at
6990 (from Scientific) without needing any function calls at
6987 all. Extremely convenient, and it's all done as a user-level
6991 all. Extremely convenient, and it's all done as a user-level
6988 extension (no IPython code was touched). Now instead of:
6992 extension (no IPython code was touched). Now instead of:
6989 a = PhysicalQuantity(4.2,'m/s**2')
6993 a = PhysicalQuantity(4.2,'m/s**2')
6990 one can simply say
6994 one can simply say
6991 a = 4.2 m/s**2
6995 a = 4.2 m/s**2
6992 or even
6996 or even
6993 a = 4.2 m/s^2
6997 a = 4.2 m/s^2
6994
6998
6995 I use this, but it's also a proof of concept: IPython really is
6999 I use this, but it's also a proof of concept: IPython really is
6996 fully user-extensible, even at the level of the parsing of the
7000 fully user-extensible, even at the level of the parsing of the
6997 command line. It's not trivial, but it's perfectly doable.
7001 command line. It's not trivial, but it's perfectly doable.
6998
7002
6999 * Added 'add_flip' method to inclusion conflict resolver. Fixes
7003 * Added 'add_flip' method to inclusion conflict resolver. Fixes
7000 the problem of modules being loaded in the inverse order in which
7004 the problem of modules being loaded in the inverse order in which
7001 they were defined in
7005 they were defined in
7002
7006
7003 * Version 0.1.8 released, 0.1.9 opened for further work.
7007 * Version 0.1.8 released, 0.1.9 opened for further work.
7004
7008
7005 * Added magics pdef, source and file. They respectively show the
7009 * Added magics pdef, source and file. They respectively show the
7006 definition line ('prototype' in C), source code and full python
7010 definition line ('prototype' in C), source code and full python
7007 file for any callable object. The object inspector oinfo uses
7011 file for any callable object. The object inspector oinfo uses
7008 these to show the same information.
7012 these to show the same information.
7009
7013
7010 * Version 0.1.7 released, 0.1.8 opened for further work.
7014 * Version 0.1.7 released, 0.1.8 opened for further work.
7011
7015
7012 * Separated all the magic functions into a class called Magic. The
7016 * Separated all the magic functions into a class called Magic. The
7013 InteractiveShell class was becoming too big for Xemacs to handle
7017 InteractiveShell class was becoming too big for Xemacs to handle
7014 (de-indenting a line would lock it up for 10 seconds while it
7018 (de-indenting a line would lock it up for 10 seconds while it
7015 backtracked on the whole class!)
7019 backtracked on the whole class!)
7016
7020
7017 FIXME: didn't work. It can be done, but right now namespaces are
7021 FIXME: didn't work. It can be done, but right now namespaces are
7018 all messed up. Do it later (reverted it for now, so at least
7022 all messed up. Do it later (reverted it for now, so at least
7019 everything works as before).
7023 everything works as before).
7020
7024
7021 * Got the object introspection system (magic_oinfo) working! I
7025 * Got the object introspection system (magic_oinfo) working! I
7022 think this is pretty much ready for release to Janko, so he can
7026 think this is pretty much ready for release to Janko, so he can
7023 test it for a while and then announce it. Pretty much 100% of what
7027 test it for a while and then announce it. Pretty much 100% of what
7024 I wanted for the 'phase 1' release is ready. Happy, tired.
7028 I wanted for the 'phase 1' release is ready. Happy, tired.
7025
7029
7026 2001-11-12 Fernando Perez <fperez@colorado.edu>
7030 2001-11-12 Fernando Perez <fperez@colorado.edu>
7027
7031
7028 * Version 0.1.6 released, 0.1.7 opened for further work.
7032 * Version 0.1.6 released, 0.1.7 opened for further work.
7029
7033
7030 * Fixed bug in printing: it used to test for truth before
7034 * Fixed bug in printing: it used to test for truth before
7031 printing, so 0 wouldn't print. Now checks for None.
7035 printing, so 0 wouldn't print. Now checks for None.
7032
7036
7033 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
7037 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
7034 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
7038 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
7035 reaches by hand into the outputcache. Think of a better way to do
7039 reaches by hand into the outputcache. Think of a better way to do
7036 this later.
7040 this later.
7037
7041
7038 * Various small fixes thanks to Nathan's comments.
7042 * Various small fixes thanks to Nathan's comments.
7039
7043
7040 * Changed magic_pprint to magic_Pprint. This way it doesn't
7044 * Changed magic_pprint to magic_Pprint. This way it doesn't
7041 collide with pprint() and the name is consistent with the command
7045 collide with pprint() and the name is consistent with the command
7042 line option.
7046 line option.
7043
7047
7044 * Changed prompt counter behavior to be fully like
7048 * Changed prompt counter behavior to be fully like
7045 Mathematica's. That is, even input that doesn't return a result
7049 Mathematica's. That is, even input that doesn't return a result
7046 raises the prompt counter. The old behavior was kind of confusing
7050 raises the prompt counter. The old behavior was kind of confusing
7047 (getting the same prompt number several times if the operation
7051 (getting the same prompt number several times if the operation
7048 didn't return a result).
7052 didn't return a result).
7049
7053
7050 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
7054 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
7051
7055
7052 * Fixed -Classic mode (wasn't working anymore).
7056 * Fixed -Classic mode (wasn't working anymore).
7053
7057
7054 * Added colored prompts using Nathan's new code. Colors are
7058 * Added colored prompts using Nathan's new code. Colors are
7055 currently hardwired, they can be user-configurable. For
7059 currently hardwired, they can be user-configurable. For
7056 developers, they can be chosen in file ipythonlib.py, at the
7060 developers, they can be chosen in file ipythonlib.py, at the
7057 beginning of the CachedOutput class def.
7061 beginning of the CachedOutput class def.
7058
7062
7059 2001-11-11 Fernando Perez <fperez@colorado.edu>
7063 2001-11-11 Fernando Perez <fperez@colorado.edu>
7060
7064
7061 * Version 0.1.5 released, 0.1.6 opened for further work.
7065 * Version 0.1.5 released, 0.1.6 opened for further work.
7062
7066
7063 * Changed magic_env to *return* the environment as a dict (not to
7067 * Changed magic_env to *return* the environment as a dict (not to
7064 print it). This way it prints, but it can also be processed.
7068 print it). This way it prints, but it can also be processed.
7065
7069
7066 * Added Verbose exception reporting to interactive
7070 * Added Verbose exception reporting to interactive
7067 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
7071 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
7068 traceback. Had to make some changes to the ultraTB file. This is
7072 traceback. Had to make some changes to the ultraTB file. This is
7069 probably the last 'big' thing in my mental todo list. This ties
7073 probably the last 'big' thing in my mental todo list. This ties
7070 in with the next entry:
7074 in with the next entry:
7071
7075
7072 * Changed -Xi and -Xf to a single -xmode option. Now all the user
7076 * Changed -Xi and -Xf to a single -xmode option. Now all the user
7073 has to specify is Plain, Color or Verbose for all exception
7077 has to specify is Plain, Color or Verbose for all exception
7074 handling.
7078 handling.
7075
7079
7076 * Removed ShellServices option. All this can really be done via
7080 * Removed ShellServices option. All this can really be done via
7077 the magic system. It's easier to extend, cleaner and has automatic
7081 the magic system. It's easier to extend, cleaner and has automatic
7078 namespace protection and documentation.
7082 namespace protection and documentation.
7079
7083
7080 2001-11-09 Fernando Perez <fperez@colorado.edu>
7084 2001-11-09 Fernando Perez <fperez@colorado.edu>
7081
7085
7082 * Fixed bug in output cache flushing (missing parameter to
7086 * Fixed bug in output cache flushing (missing parameter to
7083 __init__). Other small bugs fixed (found using pychecker).
7087 __init__). Other small bugs fixed (found using pychecker).
7084
7088
7085 * Version 0.1.4 opened for bugfixing.
7089 * Version 0.1.4 opened for bugfixing.
7086
7090
7087 2001-11-07 Fernando Perez <fperez@colorado.edu>
7091 2001-11-07 Fernando Perez <fperez@colorado.edu>
7088
7092
7089 * Version 0.1.3 released, mainly because of the raw_input bug.
7093 * Version 0.1.3 released, mainly because of the raw_input bug.
7090
7094
7091 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
7095 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
7092 and when testing for whether things were callable, a call could
7096 and when testing for whether things were callable, a call could
7093 actually be made to certain functions. They would get called again
7097 actually be made to certain functions. They would get called again
7094 once 'really' executed, with a resulting double call. A disaster
7098 once 'really' executed, with a resulting double call. A disaster
7095 in many cases (list.reverse() would never work!).
7099 in many cases (list.reverse() would never work!).
7096
7100
7097 * Removed prefilter() function, moved its code to raw_input (which
7101 * Removed prefilter() function, moved its code to raw_input (which
7098 after all was just a near-empty caller for prefilter). This saves
7102 after all was just a near-empty caller for prefilter). This saves
7099 a function call on every prompt, and simplifies the class a tiny bit.
7103 a function call on every prompt, and simplifies the class a tiny bit.
7100
7104
7101 * Fix _ip to __ip name in magic example file.
7105 * Fix _ip to __ip name in magic example file.
7102
7106
7103 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
7107 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
7104 work with non-gnu versions of tar.
7108 work with non-gnu versions of tar.
7105
7109
7106 2001-11-06 Fernando Perez <fperez@colorado.edu>
7110 2001-11-06 Fernando Perez <fperez@colorado.edu>
7107
7111
7108 * Version 0.1.2. Just to keep track of the recent changes.
7112 * Version 0.1.2. Just to keep track of the recent changes.
7109
7113
7110 * Fixed nasty bug in output prompt routine. It used to check 'if
7114 * Fixed nasty bug in output prompt routine. It used to check 'if
7111 arg != None...'. Problem is, this fails if arg implements a
7115 arg != None...'. Problem is, this fails if arg implements a
7112 special comparison (__cmp__) which disallows comparing to
7116 special comparison (__cmp__) which disallows comparing to
7113 None. Found it when trying to use the PhysicalQuantity module from
7117 None. Found it when trying to use the PhysicalQuantity module from
7114 ScientificPython.
7118 ScientificPython.
7115
7119
7116 2001-11-05 Fernando Perez <fperez@colorado.edu>
7120 2001-11-05 Fernando Perez <fperez@colorado.edu>
7117
7121
7118 * Also added dirs. Now the pushd/popd/dirs family functions
7122 * Also added dirs. Now the pushd/popd/dirs family functions
7119 basically like the shell, with the added convenience of going home
7123 basically like the shell, with the added convenience of going home
7120 when called with no args.
7124 when called with no args.
7121
7125
7122 * pushd/popd slightly modified to mimic shell behavior more
7126 * pushd/popd slightly modified to mimic shell behavior more
7123 closely.
7127 closely.
7124
7128
7125 * Added env,pushd,popd from ShellServices as magic functions. I
7129 * Added env,pushd,popd from ShellServices as magic functions. I
7126 think the cleanest will be to port all desired functions from
7130 think the cleanest will be to port all desired functions from
7127 ShellServices as magics and remove ShellServices altogether. This
7131 ShellServices as magics and remove ShellServices altogether. This
7128 will provide a single, clean way of adding functionality
7132 will provide a single, clean way of adding functionality
7129 (shell-type or otherwise) to IP.
7133 (shell-type or otherwise) to IP.
7130
7134
7131 2001-11-04 Fernando Perez <fperez@colorado.edu>
7135 2001-11-04 Fernando Perez <fperez@colorado.edu>
7132
7136
7133 * Added .ipython/ directory to sys.path. This way users can keep
7137 * Added .ipython/ directory to sys.path. This way users can keep
7134 customizations there and access them via import.
7138 customizations there and access them via import.
7135
7139
7136 2001-11-03 Fernando Perez <fperez@colorado.edu>
7140 2001-11-03 Fernando Perez <fperez@colorado.edu>
7137
7141
7138 * Opened version 0.1.1 for new changes.
7142 * Opened version 0.1.1 for new changes.
7139
7143
7140 * Changed version number to 0.1.0: first 'public' release, sent to
7144 * Changed version number to 0.1.0: first 'public' release, sent to
7141 Nathan and Janko.
7145 Nathan and Janko.
7142
7146
7143 * Lots of small fixes and tweaks.
7147 * Lots of small fixes and tweaks.
7144
7148
7145 * Minor changes to whos format. Now strings are shown, snipped if
7149 * Minor changes to whos format. Now strings are shown, snipped if
7146 too long.
7150 too long.
7147
7151
7148 * Changed ShellServices to work on __main__ so they show up in @who
7152 * Changed ShellServices to work on __main__ so they show up in @who
7149
7153
7150 * Help also works with ? at the end of a line:
7154 * Help also works with ? at the end of a line:
7151 ?sin and sin?
7155 ?sin and sin?
7152 both produce the same effect. This is nice, as often I use the
7156 both produce the same effect. This is nice, as often I use the
7153 tab-complete to find the name of a method, but I used to then have
7157 tab-complete to find the name of a method, but I used to then have
7154 to go to the beginning of the line to put a ? if I wanted more
7158 to go to the beginning of the line to put a ? if I wanted more
7155 info. Now I can just add the ? and hit return. Convenient.
7159 info. Now I can just add the ? and hit return. Convenient.
7156
7160
7157 2001-11-02 Fernando Perez <fperez@colorado.edu>
7161 2001-11-02 Fernando Perez <fperez@colorado.edu>
7158
7162
7159 * Python version check (>=2.1) added.
7163 * Python version check (>=2.1) added.
7160
7164
7161 * Added LazyPython documentation. At this point the docs are quite
7165 * Added LazyPython documentation. At this point the docs are quite
7162 a mess. A cleanup is in order.
7166 a mess. A cleanup is in order.
7163
7167
7164 * Auto-installer created. For some bizarre reason, the zipfiles
7168 * Auto-installer created. For some bizarre reason, the zipfiles
7165 module isn't working on my system. So I made a tar version
7169 module isn't working on my system. So I made a tar version
7166 (hopefully the command line options in various systems won't kill
7170 (hopefully the command line options in various systems won't kill
7167 me).
7171 me).
7168
7172
7169 * Fixes to Struct in genutils. Now all dictionary-like methods are
7173 * Fixes to Struct in genutils. Now all dictionary-like methods are
7170 protected (reasonably).
7174 protected (reasonably).
7171
7175
7172 * Added pager function to genutils and changed ? to print usage
7176 * Added pager function to genutils and changed ? to print usage
7173 note through it (it was too long).
7177 note through it (it was too long).
7174
7178
7175 * Added the LazyPython functionality. Works great! I changed the
7179 * Added the LazyPython functionality. Works great! I changed the
7176 auto-quote escape to ';', it's on home row and next to '. But
7180 auto-quote escape to ';', it's on home row and next to '. But
7177 both auto-quote and auto-paren (still /) escapes are command-line
7181 both auto-quote and auto-paren (still /) escapes are command-line
7178 parameters.
7182 parameters.
7179
7183
7180
7184
7181 2001-11-01 Fernando Perez <fperez@colorado.edu>
7185 2001-11-01 Fernando Perez <fperez@colorado.edu>
7182
7186
7183 * Version changed to 0.0.7. Fairly large change: configuration now
7187 * Version changed to 0.0.7. Fairly large change: configuration now
7184 is all stored in a directory, by default .ipython. There, all
7188 is all stored in a directory, by default .ipython. There, all
7185 config files have normal looking names (not .names)
7189 config files have normal looking names (not .names)
7186
7190
7187 * Version 0.0.6 Released first to Lucas and Archie as a test
7191 * Version 0.0.6 Released first to Lucas and Archie as a test
7188 run. Since it's the first 'semi-public' release, change version to
7192 run. Since it's the first 'semi-public' release, change version to
7189 > 0.0.6 for any changes now.
7193 > 0.0.6 for any changes now.
7190
7194
7191 * Stuff I had put in the ipplib.py changelog:
7195 * Stuff I had put in the ipplib.py changelog:
7192
7196
7193 Changes to InteractiveShell:
7197 Changes to InteractiveShell:
7194
7198
7195 - Made the usage message a parameter.
7199 - Made the usage message a parameter.
7196
7200
7197 - Require the name of the shell variable to be given. It's a bit
7201 - Require the name of the shell variable to be given. It's a bit
7198 of a hack, but allows the name 'shell' not to be hardwired in the
7202 of a hack, but allows the name 'shell' not to be hardwired in the
7199 magic (@) handler, which is problematic b/c it requires
7203 magic (@) handler, which is problematic b/c it requires
7200 polluting the global namespace with 'shell'. This in turn is
7204 polluting the global namespace with 'shell'. This in turn is
7201 fragile: if a user redefines a variable called shell, things
7205 fragile: if a user redefines a variable called shell, things
7202 break.
7206 break.
7203
7207
7204 - magic @: all functions available through @ need to be defined
7208 - magic @: all functions available through @ need to be defined
7205 as magic_<name>, even though they can be called simply as
7209 as magic_<name>, even though they can be called simply as
7206 @<name>. This allows the special command @magic to gather
7210 @<name>. This allows the special command @magic to gather
7207 information automatically about all existing magic functions,
7211 information automatically about all existing magic functions,
7208 even if they are run-time user extensions, by parsing the shell
7212 even if they are run-time user extensions, by parsing the shell
7209 instance __dict__ looking for special magic_ names.
7213 instance __dict__ looking for special magic_ names.
7210
7214
7211 - mainloop: added *two* local namespace parameters. This allows
7215 - mainloop: added *two* local namespace parameters. This allows
7212 the class to differentiate between parameters which were there
7216 the class to differentiate between parameters which were there
7213 before and after command line initialization was processed. This
7217 before and after command line initialization was processed. This
7214 way, later @who can show things loaded at startup by the
7218 way, later @who can show things loaded at startup by the
7215 user. This trick was necessary to make session saving/reloading
7219 user. This trick was necessary to make session saving/reloading
7216 really work: ideally after saving/exiting/reloading a session,
7220 really work: ideally after saving/exiting/reloading a session,
7217 *everything* should look the same, including the output of @who. I
7221 *everything* should look the same, including the output of @who. I
7218 was only able to make this work with this double namespace
7222 was only able to make this work with this double namespace
7219 trick.
7223 trick.
7220
7224
7221 - added a header to the logfile which allows (almost) full
7225 - added a header to the logfile which allows (almost) full
7222 session restoring.
7226 session restoring.
7223
7227
7224 - prepend lines beginning with @ or !, with a and log
7228 - prepend lines beginning with @ or !, with a and log
7225 them. Why? !lines: may be useful to know what you did @lines:
7229 them. Why? !lines: may be useful to know what you did @lines:
7226 they may affect session state. So when restoring a session, at
7230 they may affect session state. So when restoring a session, at
7227 least inform the user of their presence. I couldn't quite get
7231 least inform the user of their presence. I couldn't quite get
7228 them to properly re-execute, but at least the user is warned.
7232 them to properly re-execute, but at least the user is warned.
7229
7233
7230 * Started ChangeLog.
7234 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now