##// END OF EJS Templates
Fix comments in default rc file (@ -> %)
fperez -
Show More
@@ -1,597 +1,597 b''
1 # -*- Mode: Shell-Script -*- Not really, but shows comments correctly
1 # -*- Mode: Shell-Script -*- Not really, but shows comments correctly
2 # $Id: ipythonrc 998 2006-01-09 06:57:40Z fperez $
2 # $Id: ipythonrc 1155 2006-02-12 01:21:00Z fperez $
3
3
4 #***************************************************************************
4 #***************************************************************************
5 #
5 #
6 # Configuration file for IPython -- ipythonrc format
6 # Configuration file for IPython -- ipythonrc format
7 #
7 #
8 # The format of this file is simply one of 'key value' lines.
8 # The format of this file is simply one of 'key value' lines.
9 # Lines containing only whitespace at the beginning and then a # are ignored
9 # Lines containing only whitespace at the beginning and then a # are ignored
10 # as comments. But comments can NOT be put on lines with data.
10 # as comments. But comments can NOT be put on lines with data.
11
11
12 # The meaning and use of each key are explained below.
12 # The meaning and use of each key are explained below.
13
13
14 #---------------------------------------------------------------------------
14 #---------------------------------------------------------------------------
15 # Section: included files
15 # Section: included files
16
16
17 # Put one or more *config* files (with the syntax of this file) you want to
17 # Put one or more *config* files (with the syntax of this file) you want to
18 # include. For keys with a unique value the outermost file has precedence. For
18 # include. For keys with a unique value the outermost file has precedence. For
19 # keys with multiple values, they all get assembled into a list which then
19 # keys with multiple values, they all get assembled into a list which then
20 # gets loaded by IPython.
20 # gets loaded by IPython.
21
21
22 # In this file, all lists of things should simply be space-separated.
22 # In this file, all lists of things should simply be space-separated.
23
23
24 # This allows you to build hierarchies of files which recursively load
24 # This allows you to build hierarchies of files which recursively load
25 # lower-level services. If this is your main ~/.ipython/ipythonrc file, you
25 # lower-level services. If this is your main ~/.ipython/ipythonrc file, you
26 # should only keep here basic things you always want available. Then you can
26 # should only keep here basic things you always want available. Then you can
27 # include it in every other special-purpose config file you create.
27 # include it in every other special-purpose config file you create.
28 include
28 include
29
29
30 #---------------------------------------------------------------------------
30 #---------------------------------------------------------------------------
31 # Section: startup setup
31 # Section: startup setup
32
32
33 # These are mostly things which parallel a command line option of the same
33 # These are mostly things which parallel a command line option of the same
34 # name.
34 # name.
35
35
36 # Keys in this section should only appear once. If any key from this section
36 # Keys in this section should only appear once. If any key from this section
37 # is encountered more than once, the last value remains, all earlier ones get
37 # is encountered more than once, the last value remains, all earlier ones get
38 # discarded.
38 # discarded.
39
39
40
40
41 # Automatic calling of callable objects. If set to 1 or 2, callable objects
41 # Automatic calling of callable objects. If set to 1 or 2, callable objects
42 # are automatically called when invoked at the command line, even if you don't
42 # are automatically called when invoked at the command line, even if you don't
43 # type parentheses. IPython adds the parentheses for you. For example:
43 # type parentheses. IPython adds the parentheses for you. For example:
44
44
45 #In [1]: str 45
45 #In [1]: str 45
46 #------> str(45)
46 #------> str(45)
47 #Out[1]: '45'
47 #Out[1]: '45'
48
48
49 # IPython reprints your line with '---->' indicating that it added
49 # IPython reprints your line with '---->' indicating that it added
50 # parentheses. While this option is very convenient for interactive use, it
50 # parentheses. While this option is very convenient for interactive use, it
51 # may occasionally cause problems with objects which have side-effects if
51 # may occasionally cause problems with objects which have side-effects if
52 # called unexpectedly.
52 # called unexpectedly.
53
53
54 # The valid values for autocall are:
54 # The valid values for autocall are:
55
55
56 # autocall 0 -> disabled (you can toggle it at runtime with the %autocall magic)
56 # autocall 0 -> disabled (you can toggle it at runtime with the %autocall magic)
57
57
58 # autocall 1 -> active, but do not apply if there are no arguments on the line.
58 # autocall 1 -> active, but do not apply if there are no arguments on the line.
59
59
60 # In this mode, you get:
60 # In this mode, you get:
61
61
62 #In [1]: callable
62 #In [1]: callable
63 #Out[1]: <built-in function callable>
63 #Out[1]: <built-in function callable>
64
64
65 #In [2]: callable 'hello'
65 #In [2]: callable 'hello'
66 #------> callable('hello')
66 #------> callable('hello')
67 #Out[2]: False
67 #Out[2]: False
68
68
69 # 2 -> Active always. Even if no arguments are present, the callable object
69 # 2 -> Active always. Even if no arguments are present, the callable object
70 # is called:
70 # is called:
71
71
72 #In [4]: callable
72 #In [4]: callable
73 #------> callable()
73 #------> callable()
74
74
75 # Note that even with autocall off, you can still use '/' at the start of a
75 # Note that even with autocall off, you can still use '/' at the start of a
76 # line to treat the first argument on the command line as a function and add
76 # line to treat the first argument on the command line as a function and add
77 # parentheses to it:
77 # parentheses to it:
78
78
79 #In [8]: /str 43
79 #In [8]: /str 43
80 #------> str(43)
80 #------> str(43)
81 #Out[8]: '43'
81 #Out[8]: '43'
82
82
83 autocall 1
83 autocall 1
84
84
85 # Auto-edit syntax errors. When you use the %edit magic in ipython to edit
85 # Auto-edit syntax errors. When you use the %edit magic in ipython to edit
86 # source code (see the 'editor' variable below), it is possible that you save
86 # source code (see the 'editor' variable below), it is possible that you save
87 # a file with syntax errors in it. If this variable is true, IPython will ask
87 # a file with syntax errors in it. If this variable is true, IPython will ask
88 # you whether to re-open the editor immediately to correct such an error.
88 # you whether to re-open the editor immediately to correct such an error.
89
89
90 autoedit_syntax 1
90 autoedit_syntax 1
91
91
92 # Auto-indent. IPython can recognize lines ending in ':' and indent the next
92 # Auto-indent. IPython can recognize lines ending in ':' and indent the next
93 # line, while also un-indenting automatically after 'raise' or 'return'.
93 # line, while also un-indenting automatically after 'raise' or 'return'.
94
94
95 # This feature uses the readline library, so it will honor your ~/.inputrc
95 # This feature uses the readline library, so it will honor your ~/.inputrc
96 # configuration (or whatever file your INPUTRC variable points to). Adding
96 # configuration (or whatever file your INPUTRC variable points to). Adding
97 # the following lines to your .inputrc file can make indent/unindenting more
97 # the following lines to your .inputrc file can make indent/unindenting more
98 # convenient (M-i indents, M-u unindents):
98 # convenient (M-i indents, M-u unindents):
99
99
100 # $if Python
100 # $if Python
101 # "\M-i": " "
101 # "\M-i": " "
102 # "\M-u": "\d\d\d\d"
102 # "\M-u": "\d\d\d\d"
103 # $endif
103 # $endif
104
104
105 # The feature is potentially a bit dangerous, because it can cause problems
105 # The feature is potentially a bit dangerous, because it can cause problems
106 # with pasting of indented code (the pasted code gets re-indented on each
106 # with pasting of indented code (the pasted code gets re-indented on each
107 # line). But it's a huge time-saver when working interactively. The magic
107 # line). But it's a huge time-saver when working interactively. The magic
108 # function @autoindent allows you to toggle it on/off at runtime.
108 # function %autoindent allows you to toggle it on/off at runtime.
109
109
110 autoindent 1
110 autoindent 1
111
111
112 # Auto-magic. This gives you access to all the magic functions without having
112 # Auto-magic. This gives you access to all the magic functions without having
113 # to prepend them with an @ sign. If you define a variable with the same name
113 # to prepend them with an % sign. If you define a variable with the same name
114 # as a magic function (say who=1), you will need to access the magic function
114 # as a magic function (say who=1), you will need to access the magic function
115 # with @ (@who in this example). However, if later you delete your variable
115 # with % (%who in this example). However, if later you delete your variable
116 # (del who), you'll recover the automagic calling form.
116 # (del who), you'll recover the automagic calling form.
117
117
118 # Considering that many magic functions provide a lot of shell-like
118 # Considering that many magic functions provide a lot of shell-like
119 # functionality, automagic gives you something close to a full Python+system
119 # functionality, automagic gives you something close to a full Python+system
120 # shell environment (and you can extend it further if you want).
120 # shell environment (and you can extend it further if you want).
121
121
122 automagic 1
122 automagic 1
123
123
124 # Size of the output cache. After this many entries are stored, the cache will
124 # Size of the output cache. After this many entries are stored, the cache will
125 # get flushed. Depending on the size of your intermediate calculations, you
125 # get flushed. Depending on the size of your intermediate calculations, you
126 # may have memory problems if you make it too big, since keeping things in the
126 # may have memory problems if you make it too big, since keeping things in the
127 # cache prevents Python from reclaiming the memory for old results. Experiment
127 # cache prevents Python from reclaiming the memory for old results. Experiment
128 # with a value that works well for you.
128 # with a value that works well for you.
129
129
130 # If you choose cache_size 0 IPython will revert to python's regular >>>
130 # If you choose cache_size 0 IPython will revert to python's regular >>>
131 # unnumbered prompt. You will still have _, __ and ___ for your last three
131 # unnumbered prompt. You will still have _, __ and ___ for your last three
132 # results, but that will be it. No dynamic _1, _2, etc. will be created. If
132 # results, but that will be it. No dynamic _1, _2, etc. will be created. If
133 # you are running on a slow machine or with very limited memory, this may
133 # you are running on a slow machine or with very limited memory, this may
134 # help.
134 # help.
135
135
136 cache_size 1000
136 cache_size 1000
137
137
138 # Classic mode: Setting 'classic 1' you lose many of IPython niceties,
138 # Classic mode: Setting 'classic 1' you lose many of IPython niceties,
139 # but that's your choice! Classic 1 -> same as IPython -classic.
139 # but that's your choice! Classic 1 -> same as IPython -classic.
140 # Note that this is _not_ the normal python interpreter, it's simply
140 # Note that this is _not_ the normal python interpreter, it's simply
141 # IPython emulating most of the classic interpreter's behavior.
141 # IPython emulating most of the classic interpreter's behavior.
142 classic 0
142 classic 0
143
143
144 # colors - Coloring option for prompts and traceback printouts.
144 # colors - Coloring option for prompts and traceback printouts.
145
145
146 # Currently available schemes: NoColor, Linux, LightBG.
146 # Currently available schemes: NoColor, Linux, LightBG.
147
147
148 # This option allows coloring the prompts and traceback printouts. This
148 # This option allows coloring the prompts and traceback printouts. This
149 # requires a terminal which can properly handle color escape sequences. If you
149 # requires a terminal which can properly handle color escape sequences. If you
150 # are having problems with this, use the NoColor scheme (uses no color escapes
150 # are having problems with this, use the NoColor scheme (uses no color escapes
151 # at all).
151 # at all).
152
152
153 # The Linux option works well in linux console type environments: dark
153 # The Linux option works well in linux console type environments: dark
154 # background with light fonts.
154 # background with light fonts.
155
155
156 # LightBG is similar to Linux but swaps dark/light colors to be more readable
156 # LightBG is similar to Linux but swaps dark/light colors to be more readable
157 # in light background terminals.
157 # in light background terminals.
158
158
159 # keep uncommented only the one you want:
159 # keep uncommented only the one you want:
160 colors Linux
160 colors Linux
161 #colors LightBG
161 #colors LightBG
162 #colors NoColor
162 #colors NoColor
163
163
164 ########################
164 ########################
165 # Note to Windows users
165 # Note to Windows users
166 #
166 #
167 # Color and readline support is avaialble to Windows users via Gary Bishop's
167 # Color and readline support is avaialble to Windows users via Gary Bishop's
168 # readline library. You can find Gary's tools at
168 # readline library. You can find Gary's tools at
169 # http://sourceforge.net/projects/uncpythontools.
169 # http://sourceforge.net/projects/uncpythontools.
170 # Note that his readline module requires in turn the ctypes library, available
170 # Note that his readline module requires in turn the ctypes library, available
171 # at http://starship.python.net/crew/theller/ctypes.
171 # at http://starship.python.net/crew/theller/ctypes.
172 ########################
172 ########################
173
173
174 # color_info: IPython can display information about objects via a set of
174 # color_info: IPython can display information about objects via a set of
175 # functions, and optionally can use colors for this, syntax highlighting
175 # functions, and optionally can use colors for this, syntax highlighting
176 # source code and various other elements. This information is passed through a
176 # source code and various other elements. This information is passed through a
177 # pager (it defaults to 'less' if $PAGER is not set).
177 # pager (it defaults to 'less' if $PAGER is not set).
178
178
179 # If your pager has problems, try to setting it to properly handle escapes
179 # If your pager has problems, try to setting it to properly handle escapes
180 # (see the less manpage for detail), or disable this option. The magic
180 # (see the less manpage for detail), or disable this option. The magic
181 # function @color_info allows you to toggle this interactively for testing.
181 # function %color_info allows you to toggle this interactively for testing.
182
182
183 color_info 1
183 color_info 1
184
184
185 # confirm_exit: set to 1 if you want IPython to confirm when you try to exit
185 # confirm_exit: set to 1 if you want IPython to confirm when you try to exit
186 # with an EOF (Control-d in Unix, Control-Z/Enter in Windows). Note that using
186 # with an EOF (Control-d in Unix, Control-Z/Enter in Windows). Note that using
187 # the magic functions @Exit or @Quit you can force a direct exit, bypassing
187 # the magic functions %Exit or %Quit you can force a direct exit, bypassing
188 # any confirmation.
188 # any confirmation.
189
189
190 confirm_exit 1
190 confirm_exit 1
191
191
192 # Use deep_reload() as a substitute for reload() by default. deep_reload() is
192 # Use deep_reload() as a substitute for reload() by default. deep_reload() is
193 # still available as dreload() and appears as a builtin.
193 # still available as dreload() and appears as a builtin.
194
194
195 deep_reload 0
195 deep_reload 0
196
196
197 # Which editor to use with the @edit command. If you leave this at 0, IPython
197 # Which editor to use with the %edit command. If you leave this at 0, IPython
198 # will honor your EDITOR environment variable. Since this editor is invoked on
198 # will honor your EDITOR environment variable. Since this editor is invoked on
199 # the fly by ipython and is meant for editing small code snippets, you may
199 # the fly by ipython and is meant for editing small code snippets, you may
200 # want to use a small, lightweight editor here.
200 # want to use a small, lightweight editor here.
201
201
202 # For Emacs users, setting up your Emacs server properly as described in the
202 # For Emacs users, setting up your Emacs server properly as described in the
203 # manual is a good idea. An alternative is to use jed, a very light editor
203 # manual is a good idea. An alternative is to use jed, a very light editor
204 # with much of the feel of Emacs (though not as powerful for heavy-duty work).
204 # with much of the feel of Emacs (though not as powerful for heavy-duty work).
205
205
206 editor 0
206 editor 0
207
207
208 # log 1 -> same as ipython -log. This automatically logs to ./ipython.log
208 # log 1 -> same as ipython -log. This automatically logs to ./ipython.log
209 log 0
209 log 0
210
210
211 # Same as ipython -Logfile YourLogfileName.
211 # Same as ipython -Logfile YourLogfileName.
212 # Don't use with log 1 (use one or the other)
212 # Don't use with log 1 (use one or the other)
213 logfile ''
213 logfile ''
214
214
215 # banner 0 -> same as ipython -nobanner
215 # banner 0 -> same as ipython -nobanner
216 banner 1
216 banner 1
217
217
218 # messages 0 -> same as ipython -nomessages
218 # messages 0 -> same as ipython -nomessages
219 messages 1
219 messages 1
220
220
221 # Automatically call the pdb debugger after every uncaught exception. If you
221 # Automatically call the pdb debugger after every uncaught exception. If you
222 # are used to debugging using pdb, this puts you automatically inside of it
222 # are used to debugging using pdb, this puts you automatically inside of it
223 # after any call (either in IPython or in code called by it) which triggers an
223 # after any call (either in IPython or in code called by it) which triggers an
224 # exception which goes uncaught.
224 # exception which goes uncaught.
225 pdb 0
225 pdb 0
226
226
227 # Enable the pprint module for printing. pprint tends to give a more readable
227 # Enable the pprint module for printing. pprint tends to give a more readable
228 # display (than print) for complex nested data structures.
228 # display (than print) for complex nested data structures.
229 pprint 1
229 pprint 1
230
230
231 # Prompt strings
231 # Prompt strings
232
232
233 # Most bash-like escapes can be used to customize IPython's prompts, as well as
233 # Most bash-like escapes can be used to customize IPython's prompts, as well as
234 # a few additional ones which are IPython-specific. All valid prompt escapes
234 # a few additional ones which are IPython-specific. All valid prompt escapes
235 # are described in detail in the Customization section of the IPython HTML/PDF
235 # are described in detail in the Customization section of the IPython HTML/PDF
236 # manual.
236 # manual.
237
237
238 # Use \# to represent the current prompt number, and quote them to protect
238 # Use \# to represent the current prompt number, and quote them to protect
239 # spaces.
239 # spaces.
240 prompt_in1 'In [\#]: '
240 prompt_in1 'In [\#]: '
241
241
242 # \D is replaced by as many dots as there are digits in the
242 # \D is replaced by as many dots as there are digits in the
243 # current value of \#.
243 # current value of \#.
244 prompt_in2 ' .\D.: '
244 prompt_in2 ' .\D.: '
245
245
246 prompt_out 'Out[\#]: '
246 prompt_out 'Out[\#]: '
247
247
248 # Select whether to left-pad the output prompts to match the length of the
248 # Select whether to left-pad the output prompts to match the length of the
249 # input ones. This allows you for example to use a simple '>' as an output
249 # input ones. This allows you for example to use a simple '>' as an output
250 # prompt, and yet have the output line up with the input. If set to false,
250 # prompt, and yet have the output line up with the input. If set to false,
251 # the output prompts will be unpadded (flush left).
251 # the output prompts will be unpadded (flush left).
252 prompts_pad_left 1
252 prompts_pad_left 1
253
253
254 # quick 1 -> same as ipython -quick
254 # quick 1 -> same as ipython -quick
255 quick 0
255 quick 0
256
256
257 # Use the readline library (1) or not (0). Most users will want this on, but
257 # Use the readline library (1) or not (0). Most users will want this on, but
258 # if you experience strange problems with line management (mainly when using
258 # if you experience strange problems with line management (mainly when using
259 # IPython inside Emacs buffers) you may try disabling it. Not having it on
259 # IPython inside Emacs buffers) you may try disabling it. Not having it on
260 # prevents you from getting command history with the arrow keys, searching and
260 # prevents you from getting command history with the arrow keys, searching and
261 # name completion using TAB.
261 # name completion using TAB.
262
262
263 readline 1
263 readline 1
264
264
265 # Screen Length: number of lines of your screen. This is used to control
265 # Screen Length: number of lines of your screen. This is used to control
266 # printing of very long strings. Strings longer than this number of lines will
266 # printing of very long strings. Strings longer than this number of lines will
267 # be paged with the less command instead of directly printed.
267 # be paged with the less command instead of directly printed.
268
268
269 # The default value for this is 0, which means IPython will auto-detect your
269 # The default value for this is 0, which means IPython will auto-detect your
270 # screen size every time it needs to print. If for some reason this isn't
270 # screen size every time it needs to print. If for some reason this isn't
271 # working well (it needs curses support), specify it yourself. Otherwise don't
271 # working well (it needs curses support), specify it yourself. Otherwise don't
272 # change the default.
272 # change the default.
273
273
274 screen_length 0
274 screen_length 0
275
275
276 # Prompt separators for input and output.
276 # Prompt separators for input and output.
277 # Use \n for newline explicitly, without quotes.
277 # Use \n for newline explicitly, without quotes.
278 # Use 0 (like at the cmd line) to turn off a given separator.
278 # Use 0 (like at the cmd line) to turn off a given separator.
279
279
280 # The structure of prompt printing is:
280 # The structure of prompt printing is:
281 # (SeparateIn)Input....
281 # (SeparateIn)Input....
282 # (SeparateOut)Output...
282 # (SeparateOut)Output...
283 # (SeparateOut2), # that is, no newline is printed after Out2
283 # (SeparateOut2), # that is, no newline is printed after Out2
284 # By choosing these you can organize your output any way you want.
284 # By choosing these you can organize your output any way you want.
285
285
286 separate_in \n
286 separate_in \n
287 separate_out 0
287 separate_out 0
288 separate_out2 0
288 separate_out2 0
289
289
290 # 'nosep 1' is a shorthand for '-SeparateIn 0 -SeparateOut 0 -SeparateOut2 0'.
290 # 'nosep 1' is a shorthand for '-SeparateIn 0 -SeparateOut 0 -SeparateOut2 0'.
291 # Simply removes all input/output separators, overriding the choices above.
291 # Simply removes all input/output separators, overriding the choices above.
292 nosep 0
292 nosep 0
293
293
294 # Wildcard searches - IPython has a system for searching names using
294 # Wildcard searches - IPython has a system for searching names using
295 # shell-like wildcards; type %psearch? for details. This variables sets
295 # shell-like wildcards; type %psearch? for details. This variables sets
296 # whether by default such searches should be case sensitive or not. You can
296 # whether by default such searches should be case sensitive or not. You can
297 # always override the default at the system command line or the IPython
297 # always override the default at the system command line or the IPython
298 # prompt.
298 # prompt.
299
299
300 wildcards_case_sensitive 1
300 wildcards_case_sensitive 1
301
301
302 # xmode - Exception reporting mode.
302 # xmode - Exception reporting mode.
303
303
304 # Valid modes: Plain, Context and Verbose.
304 # Valid modes: Plain, Context and Verbose.
305
305
306 # Plain: similar to python's normal traceback printing.
306 # Plain: similar to python's normal traceback printing.
307
307
308 # Context: prints 5 lines of context source code around each line in the
308 # Context: prints 5 lines of context source code around each line in the
309 # traceback.
309 # traceback.
310
310
311 # Verbose: similar to Context, but additionally prints the variables currently
311 # Verbose: similar to Context, but additionally prints the variables currently
312 # visible where the exception happened (shortening their strings if too
312 # visible where the exception happened (shortening their strings if too
313 # long). This can potentially be very slow, if you happen to have a huge data
313 # long). This can potentially be very slow, if you happen to have a huge data
314 # structure whose string representation is complex to compute. Your computer
314 # structure whose string representation is complex to compute. Your computer
315 # may appear to freeze for a while with cpu usage at 100%. If this occurs, you
315 # may appear to freeze for a while with cpu usage at 100%. If this occurs, you
316 # can cancel the traceback with Ctrl-C (maybe hitting it more than once).
316 # can cancel the traceback with Ctrl-C (maybe hitting it more than once).
317
317
318 #xmode Plain
318 #xmode Plain
319 xmode Context
319 xmode Context
320 #xmode Verbose
320 #xmode Verbose
321
321
322 # multi_line_specials: if true, allow magics, aliases and shell escapes (via
322 # multi_line_specials: if true, allow magics, aliases and shell escapes (via
323 # !cmd) to be used in multi-line input (like for loops). For example, if you
323 # !cmd) to be used in multi-line input (like for loops). For example, if you
324 # have this active, the following is valid in IPython:
324 # have this active, the following is valid in IPython:
325 #
325 #
326 #In [17]: for i in range(3):
326 #In [17]: for i in range(3):
327 # ....: mkdir $i
327 # ....: mkdir $i
328 # ....: !touch $i/hello
328 # ....: !touch $i/hello
329 # ....: ls -l $i
329 # ....: ls -l $i
330
330
331 multi_line_specials 1
331 multi_line_specials 1
332
332
333 # wxversion: request a specific wxPython version (used for -wthread)
333 # wxversion: request a specific wxPython version (used for -wthread)
334
334
335 # Set this to the value of wxPython you want to use, but note that this
335 # Set this to the value of wxPython you want to use, but note that this
336 # feature requires you to have the wxversion Python module to work. If you
336 # feature requires you to have the wxversion Python module to work. If you
337 # don't have the wxversion module (try 'import wxversion' at the prompt to
337 # don't have the wxversion module (try 'import wxversion' at the prompt to
338 # check) or simply want to leave the system to pick up the default, leave this
338 # check) or simply want to leave the system to pick up the default, leave this
339 # variable at 0.
339 # variable at 0.
340
340
341 wxversion 0
341 wxversion 0
342
342
343 #---------------------------------------------------------------------------
343 #---------------------------------------------------------------------------
344 # Section: Readline configuration (readline is not available for MS-Windows)
344 # Section: Readline configuration (readline is not available for MS-Windows)
345
345
346 # This is done via the following options:
346 # This is done via the following options:
347
347
348 # (i) readline_parse_and_bind: this option can appear as many times as you
348 # (i) readline_parse_and_bind: this option can appear as many times as you
349 # want, each time defining a string to be executed via a
349 # want, each time defining a string to be executed via a
350 # readline.parse_and_bind() command. The syntax for valid commands of this
350 # readline.parse_and_bind() command. The syntax for valid commands of this
351 # kind can be found by reading the documentation for the GNU readline library,
351 # kind can be found by reading the documentation for the GNU readline library,
352 # as these commands are of the kind which readline accepts in its
352 # as these commands are of the kind which readline accepts in its
353 # configuration file.
353 # configuration file.
354
354
355 # The TAB key can be used to complete names at the command line in one of two
355 # The TAB key can be used to complete names at the command line in one of two
356 # ways: 'complete' and 'menu-complete'. The difference is that 'complete' only
356 # ways: 'complete' and 'menu-complete'. The difference is that 'complete' only
357 # completes as much as possible while 'menu-complete' cycles through all
357 # completes as much as possible while 'menu-complete' cycles through all
358 # possible completions. Leave the one you prefer uncommented.
358 # possible completions. Leave the one you prefer uncommented.
359
359
360 readline_parse_and_bind tab: complete
360 readline_parse_and_bind tab: complete
361 #readline_parse_and_bind tab: menu-complete
361 #readline_parse_and_bind tab: menu-complete
362
362
363 # This binds Control-l to printing the list of all possible completions when
363 # This binds Control-l to printing the list of all possible completions when
364 # there is more than one (what 'complete' does when hitting TAB twice, or at
364 # there is more than one (what 'complete' does when hitting TAB twice, or at
365 # the first TAB if show-all-if-ambiguous is on)
365 # the first TAB if show-all-if-ambiguous is on)
366 readline_parse_and_bind "\C-l": possible-completions
366 readline_parse_and_bind "\C-l": possible-completions
367
367
368 # This forces readline to automatically print the above list when tab
368 # This forces readline to automatically print the above list when tab
369 # completion is set to 'complete'. You can still get this list manually by
369 # completion is set to 'complete'. You can still get this list manually by
370 # using the key bound to 'possible-completions' (Control-l by default) or by
370 # using the key bound to 'possible-completions' (Control-l by default) or by
371 # hitting TAB twice. Turning this on makes the printing happen at the first
371 # hitting TAB twice. Turning this on makes the printing happen at the first
372 # TAB.
372 # TAB.
373 readline_parse_and_bind set show-all-if-ambiguous on
373 readline_parse_and_bind set show-all-if-ambiguous on
374
374
375 # If you have TAB set to complete names, you can rebind any key (Control-o by
375 # If you have TAB set to complete names, you can rebind any key (Control-o by
376 # default) to insert a true TAB character.
376 # default) to insert a true TAB character.
377 readline_parse_and_bind "\C-o": tab-insert
377 readline_parse_and_bind "\C-o": tab-insert
378
378
379 # These commands allow you to indent/unindent easily, with the 4-space
379 # These commands allow you to indent/unindent easily, with the 4-space
380 # convention of the Python coding standards. Since IPython's internal
380 # convention of the Python coding standards. Since IPython's internal
381 # auto-indent system also uses 4 spaces, you should not change the number of
381 # auto-indent system also uses 4 spaces, you should not change the number of
382 # spaces in the code below.
382 # spaces in the code below.
383 readline_parse_and_bind "\M-i": " "
383 readline_parse_and_bind "\M-i": " "
384 readline_parse_and_bind "\M-o": "\d\d\d\d"
384 readline_parse_and_bind "\M-o": "\d\d\d\d"
385 readline_parse_and_bind "\M-I": "\d\d\d\d"
385 readline_parse_and_bind "\M-I": "\d\d\d\d"
386
386
387 # Bindings for incremental searches in the history. These searches use the
387 # Bindings for incremental searches in the history. These searches use the
388 # string typed so far on the command line and search anything in the previous
388 # string typed so far on the command line and search anything in the previous
389 # input history containing them.
389 # input history containing them.
390 readline_parse_and_bind "\C-r": reverse-search-history
390 readline_parse_and_bind "\C-r": reverse-search-history
391 readline_parse_and_bind "\C-s": forward-search-history
391 readline_parse_and_bind "\C-s": forward-search-history
392
392
393 # Bindings for completing the current line in the history of previous
393 # Bindings for completing the current line in the history of previous
394 # commands. This allows you to recall any previous command by typing its first
394 # commands. This allows you to recall any previous command by typing its first
395 # few letters and hitting Control-p, bypassing all intermediate commands which
395 # few letters and hitting Control-p, bypassing all intermediate commands which
396 # may be in the history (much faster than hitting up-arrow 50 times!)
396 # may be in the history (much faster than hitting up-arrow 50 times!)
397 readline_parse_and_bind "\C-p": history-search-backward
397 readline_parse_and_bind "\C-p": history-search-backward
398 readline_parse_and_bind "\C-n": history-search-forward
398 readline_parse_and_bind "\C-n": history-search-forward
399
399
400 # I also like to have the same functionality on the plain arrow keys. If you'd
400 # I also like to have the same functionality on the plain arrow keys. If you'd
401 # rather have the arrows use all the history (and not just match what you've
401 # rather have the arrows use all the history (and not just match what you've
402 # typed so far), comment out or delete the next two lines.
402 # typed so far), comment out or delete the next two lines.
403 readline_parse_and_bind "\e[A": history-search-backward
403 readline_parse_and_bind "\e[A": history-search-backward
404 readline_parse_and_bind "\e[B": history-search-forward
404 readline_parse_and_bind "\e[B": history-search-forward
405
405
406 # These are typically on by default under *nix, but not win32.
406 # These are typically on by default under *nix, but not win32.
407 readline_parse_and_bind "\C-k": kill-line
407 readline_parse_and_bind "\C-k": kill-line
408 readline_parse_and_bind "\C-u": unix-line-discard
408 readline_parse_and_bind "\C-u": unix-line-discard
409
409
410 # (ii) readline_remove_delims: a string of characters to be removed from the
410 # (ii) readline_remove_delims: a string of characters to be removed from the
411 # default word-delimiters list used by readline, so that completions may be
411 # default word-delimiters list used by readline, so that completions may be
412 # performed on strings which contain them.
412 # performed on strings which contain them.
413
413
414 readline_remove_delims -/~
414 readline_remove_delims -/~
415
415
416 # (iii) readline_merge_completions: whether to merge the result of all
416 # (iii) readline_merge_completions: whether to merge the result of all
417 # possible completions or not. If true, IPython will complete filenames,
417 # possible completions or not. If true, IPython will complete filenames,
418 # python names and aliases and return all possible completions. If you set it
418 # python names and aliases and return all possible completions. If you set it
419 # to false, each completer is used at a time, and only if it doesn't return
419 # to false, each completer is used at a time, and only if it doesn't return
420 # any completions is the next one used.
420 # any completions is the next one used.
421
421
422 # The default order is: [python_matches, file_matches, alias_matches]
422 # The default order is: [python_matches, file_matches, alias_matches]
423
423
424 readline_merge_completions 1
424 readline_merge_completions 1
425
425
426 # (iv) readline_omit__names: normally hitting <tab> after a '.' in a name
426 # (iv) readline_omit__names: normally hitting <tab> after a '.' in a name
427 # will complete all attributes of an object, including all the special methods
427 # will complete all attributes of an object, including all the special methods
428 # whose names start with single or double underscores (like __getitem__ or
428 # whose names start with single or double underscores (like __getitem__ or
429 # __class__).
429 # __class__).
430
430
431 # This variable allows you to control this completion behavior:
431 # This variable allows you to control this completion behavior:
432
432
433 # readline_omit__names 1 -> completion will omit showing any names starting
433 # readline_omit__names 1 -> completion will omit showing any names starting
434 # with two __, but it will still show names starting with one _.
434 # with two __, but it will still show names starting with one _.
435
435
436 # readline_omit__names 2 -> completion will omit all names beginning with one
436 # readline_omit__names 2 -> completion will omit all names beginning with one
437 # _ (which obviously means filtering out the double __ ones).
437 # _ (which obviously means filtering out the double __ ones).
438
438
439 # Even when this option is set, you can still see those names by explicitly
439 # Even when this option is set, you can still see those names by explicitly
440 # typing a _ after the period and hitting <tab>: 'name._<tab>' will always
440 # typing a _ after the period and hitting <tab>: 'name._<tab>' will always
441 # complete attribute names starting with '_'.
441 # complete attribute names starting with '_'.
442
442
443 # This option is off by default so that new users see all attributes of any
443 # This option is off by default so that new users see all attributes of any
444 # objects they are dealing with.
444 # objects they are dealing with.
445
445
446 readline_omit__names 0
446 readline_omit__names 0
447
447
448 #---------------------------------------------------------------------------
448 #---------------------------------------------------------------------------
449 # Section: modules to be loaded with 'import ...'
449 # Section: modules to be loaded with 'import ...'
450
450
451 # List, separated by spaces, the names of the modules you want to import
451 # List, separated by spaces, the names of the modules you want to import
452
452
453 # Example:
453 # Example:
454 # import_mod sys os
454 # import_mod sys os
455 # will produce internally the statements
455 # will produce internally the statements
456 # import sys
456 # import sys
457 # import os
457 # import os
458
458
459 # Each import is executed in its own try/except block, so if one module
459 # Each import is executed in its own try/except block, so if one module
460 # fails to load the others will still be ok.
460 # fails to load the others will still be ok.
461
461
462 import_mod
462 import_mod
463
463
464 #---------------------------------------------------------------------------
464 #---------------------------------------------------------------------------
465 # Section: modules to import some functions from: 'from ... import ...'
465 # Section: modules to import some functions from: 'from ... import ...'
466
466
467 # List, one per line, the modules for which you want only to import some
467 # List, one per line, the modules for which you want only to import some
468 # functions. Give the module name first and then the name of functions to be
468 # functions. Give the module name first and then the name of functions to be
469 # imported from that module.
469 # imported from that module.
470
470
471 # Example:
471 # Example:
472
472
473 # import_some IPython.genutils timing timings
473 # import_some IPython.genutils timing timings
474 # will produce internally the statement
474 # will produce internally the statement
475 # from IPython.genutils import timing, timings
475 # from IPython.genutils import timing, timings
476
476
477 # timing() and timings() are two IPython utilities for timing the execution of
477 # timing() and timings() are two IPython utilities for timing the execution of
478 # your own functions, which you may find useful. Just commment out the above
478 # your own functions, which you may find useful. Just commment out the above
479 # line if you want to test them.
479 # line if you want to test them.
480
480
481 # If you have more than one modules_some line, each gets its own try/except
481 # If you have more than one modules_some line, each gets its own try/except
482 # block (like modules, see above).
482 # block (like modules, see above).
483
483
484 import_some
484 import_some
485
485
486 #---------------------------------------------------------------------------
486 #---------------------------------------------------------------------------
487 # Section: modules to import all from : 'from ... import *'
487 # Section: modules to import all from : 'from ... import *'
488
488
489 # List (same syntax as import_mod above) those modules for which you want to
489 # List (same syntax as import_mod above) those modules for which you want to
490 # import all functions. Remember, this is a potentially dangerous thing to do,
490 # import all functions. Remember, this is a potentially dangerous thing to do,
491 # since it is very easy to overwrite names of things you need. Use with
491 # since it is very easy to overwrite names of things you need. Use with
492 # caution.
492 # caution.
493
493
494 # Example:
494 # Example:
495 # import_all sys os
495 # import_all sys os
496 # will produce internally the statements
496 # will produce internally the statements
497 # from sys import *
497 # from sys import *
498 # from os import *
498 # from os import *
499
499
500 # As before, each will be called in a separate try/except block.
500 # As before, each will be called in a separate try/except block.
501
501
502 import_all
502 import_all
503
503
504 #---------------------------------------------------------------------------
504 #---------------------------------------------------------------------------
505 # Section: Python code to execute.
505 # Section: Python code to execute.
506
506
507 # Put here code to be explicitly executed (keep it simple!)
507 # Put here code to be explicitly executed (keep it simple!)
508 # Put one line of python code per line. All whitespace is removed (this is a
508 # Put one line of python code per line. All whitespace is removed (this is a
509 # feature, not a bug), so don't get fancy building loops here.
509 # feature, not a bug), so don't get fancy building loops here.
510 # This is just for quick convenient creation of things you want available.
510 # This is just for quick convenient creation of things you want available.
511
511
512 # Example:
512 # Example:
513 # execute x = 1
513 # execute x = 1
514 # execute print 'hello world'; y = z = 'a'
514 # execute print 'hello world'; y = z = 'a'
515 # will produce internally
515 # will produce internally
516 # x = 1
516 # x = 1
517 # print 'hello world'; y = z = 'a'
517 # print 'hello world'; y = z = 'a'
518 # and each *line* (not each statement, we don't do python syntax parsing) is
518 # and each *line* (not each statement, we don't do python syntax parsing) is
519 # executed in its own try/except block.
519 # executed in its own try/except block.
520
520
521 execute
521 execute
522
522
523 # Note for the adventurous: you can use this to define your own names for the
523 # Note for the adventurous: you can use this to define your own names for the
524 # magic functions, by playing some namespace tricks:
524 # magic functions, by playing some namespace tricks:
525
525
526 # execute __IPYTHON__.magic_pf = __IPYTHON__.magic_profile
526 # execute __IPYTHON__.magic_pf = __IPYTHON__.magic_profile
527
527
528 # defines @pf as a new name for @profile.
528 # defines %pf as a new name for %profile.
529
529
530 #---------------------------------------------------------------------------
530 #---------------------------------------------------------------------------
531 # Section: Pyhton files to load and execute.
531 # Section: Pyhton files to load and execute.
532
532
533 # Put here the full names of files you want executed with execfile(file). If
533 # Put here the full names of files you want executed with execfile(file). If
534 # you want complicated initialization, just write whatever you want in a
534 # you want complicated initialization, just write whatever you want in a
535 # regular python file and load it from here.
535 # regular python file and load it from here.
536
536
537 # Filenames defined here (which *must* include the extension) are searched for
537 # Filenames defined here (which *must* include the extension) are searched for
538 # through all of sys.path. Since IPython adds your .ipython directory to
538 # through all of sys.path. Since IPython adds your .ipython directory to
539 # sys.path, they can also be placed in your .ipython dir and will be
539 # sys.path, they can also be placed in your .ipython dir and will be
540 # found. Otherwise (if you want to execute things not in .ipyton nor in
540 # found. Otherwise (if you want to execute things not in .ipyton nor in
541 # sys.path) give a full path (you can use ~, it gets expanded)
541 # sys.path) give a full path (you can use ~, it gets expanded)
542
542
543 # Example:
543 # Example:
544 # execfile file1.py ~/file2.py
544 # execfile file1.py ~/file2.py
545 # will generate
545 # will generate
546 # execfile('file1.py')
546 # execfile('file1.py')
547 # execfile('_path_to_your_home/file2.py')
547 # execfile('_path_to_your_home/file2.py')
548
548
549 # As before, each file gets its own try/except block.
549 # As before, each file gets its own try/except block.
550
550
551 execfile
551 execfile
552
552
553 # If you are feeling adventurous, you can even add functionality to IPython
553 # If you are feeling adventurous, you can even add functionality to IPython
554 # through here. IPython works through a global variable called __ip which
554 # through here. IPython works through a global variable called __ip which
555 # exists at the time when these files are read. If you know what you are doing
555 # exists at the time when these files are read. If you know what you are doing
556 # (read the source) you can add functions to __ip in files loaded here.
556 # (read the source) you can add functions to __ip in files loaded here.
557
557
558 # The file example-magic.py contains a simple but correct example. Try it:
558 # The file example-magic.py contains a simple but correct example. Try it:
559
559
560 # execfile example-magic.py
560 # execfile example-magic.py
561
561
562 # Look at the examples in IPython/iplib.py for more details on how these magic
562 # Look at the examples in IPython/iplib.py for more details on how these magic
563 # functions need to process their arguments.
563 # functions need to process their arguments.
564
564
565 #---------------------------------------------------------------------------
565 #---------------------------------------------------------------------------
566 # Section: aliases for system shell commands
566 # Section: aliases for system shell commands
567
567
568 # Here you can define your own names for system commands. The syntax is
568 # Here you can define your own names for system commands. The syntax is
569 # similar to that of the builtin @alias function:
569 # similar to that of the builtin %alias function:
570
570
571 # alias alias_name command_string
571 # alias alias_name command_string
572
572
573 # The resulting aliases are auto-generated magic functions (hence usable as
573 # The resulting aliases are auto-generated magic functions (hence usable as
574 # @alias_name)
574 # %alias_name)
575
575
576 # For example:
576 # For example:
577
577
578 # alias myls ls -la
578 # alias myls ls -la
579
579
580 # will define 'myls' as an alias for executing the system command 'ls -la'.
580 # will define 'myls' as an alias for executing the system command 'ls -la'.
581 # This allows you to customize IPython's environment to have the same aliases
581 # This allows you to customize IPython's environment to have the same aliases
582 # you are accustomed to from your own shell.
582 # you are accustomed to from your own shell.
583
583
584 # You can also define aliases with parameters using %s specifiers (one per
584 # You can also define aliases with parameters using %s specifiers (one per
585 # parameter):
585 # parameter):
586
586
587 # alias parts echo first %s second %s
587 # alias parts echo first %s second %s
588
588
589 # will give you in IPython:
589 # will give you in IPython:
590 # >>> @parts A B
590 # >>> %parts A B
591 # first A second B
591 # first A second B
592
592
593 # Use one 'alias' statement per alias you wish to define.
593 # Use one 'alias' statement per alias you wish to define.
594
594
595 # alias
595 # alias
596
596
597 #************************* end of file <ipythonrc> ************************
597 #************************* end of file <ipythonrc> ************************
@@ -1,5204 +1,5207 b''
1 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
2
2
3 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
4 describing magics (we haven't used @ for a loong time).
5
3 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
6 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
4 contributed by marienz to close
7 contributed by marienz to close
5 http://www.scipy.net/roundup/ipython/issue53.
8 http://www.scipy.net/roundup/ipython/issue53.
6
9
7 2006-02-10 Ville Vainio <vivainio@gmail.com>
10 2006-02-10 Ville Vainio <vivainio@gmail.com>
8
11
9 * genutils.py: getoutput now works in win32 too
12 * genutils.py: getoutput now works in win32 too
10
13
11 * completer.py: alias and magic completion only invoked
14 * completer.py: alias and magic completion only invoked
12 at the first "item" in the line, to avoid "cd %store"
15 at the first "item" in the line, to avoid "cd %store"
13 nonsense.
16 nonsense.
14
17
15 2006-02-09 Ville Vainio <vivainio@gmail.com>
18 2006-02-09 Ville Vainio <vivainio@gmail.com>
16
19
17 * test/*: Added a unit testing framework (finally).
20 * test/*: Added a unit testing framework (finally).
18 '%run runtests.py' to run test_*.
21 '%run runtests.py' to run test_*.
19
22
20 * ipapi.py: Exposed runlines and set_custom_exc
23 * ipapi.py: Exposed runlines and set_custom_exc
21
24
22 2006-02-07 Ville Vainio <vivainio@gmail.com>
25 2006-02-07 Ville Vainio <vivainio@gmail.com>
23
26
24 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
27 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
25 instead use "f(1 2)" as before.
28 instead use "f(1 2)" as before.
26
29
27 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
30 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
28
31
29 * IPython/demo.py (IPythonDemo): Add new classes to the demo
32 * IPython/demo.py (IPythonDemo): Add new classes to the demo
30 facilities, for demos processed by the IPython input filter
33 facilities, for demos processed by the IPython input filter
31 (IPythonDemo), and for running a script one-line-at-a-time as a
34 (IPythonDemo), and for running a script one-line-at-a-time as a
32 demo, both for pure Python (LineDemo) and for IPython-processed
35 demo, both for pure Python (LineDemo) and for IPython-processed
33 input (IPythonLineDemo). After a request by Dave Kohel, from the
36 input (IPythonLineDemo). After a request by Dave Kohel, from the
34 SAGE team.
37 SAGE team.
35 (Demo.edit): added and edit() method to the demo objects, to edit
38 (Demo.edit): added and edit() method to the demo objects, to edit
36 the in-memory copy of the last executed block.
39 the in-memory copy of the last executed block.
37
40
38 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
41 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
39 processing to %edit, %macro and %save. These commands can now be
42 processing to %edit, %macro and %save. These commands can now be
40 invoked on the unprocessed input as it was typed by the user
43 invoked on the unprocessed input as it was typed by the user
41 (without any prefilters applied). After requests by the SAGE team
44 (without any prefilters applied). After requests by the SAGE team
42 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
45 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
43
46
44 2006-02-01 Ville Vainio <vivainio@gmail.com>
47 2006-02-01 Ville Vainio <vivainio@gmail.com>
45
48
46 * setup.py, eggsetup.py: easy_install ipython==dev works
49 * setup.py, eggsetup.py: easy_install ipython==dev works
47 correctly now (on Linux)
50 correctly now (on Linux)
48
51
49 * ipy_user_conf,ipmaker: user config changes, removed spurious
52 * ipy_user_conf,ipmaker: user config changes, removed spurious
50 warnings
53 warnings
51
54
52 * iplib: if rc.banner is string, use it as is.
55 * iplib: if rc.banner is string, use it as is.
53
56
54 * Magic: %pycat accepts a string argument and pages it's contents.
57 * Magic: %pycat accepts a string argument and pages it's contents.
55
58
56
59
57 2006-01-30 Ville Vainio <vivainio@gmail.com>
60 2006-01-30 Ville Vainio <vivainio@gmail.com>
58
61
59 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
62 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
60 Now %store and bookmarks work through PickleShare, meaning that
63 Now %store and bookmarks work through PickleShare, meaning that
61 concurrent access is possible and all ipython sessions see the
64 concurrent access is possible and all ipython sessions see the
62 same database situation all the time, instead of snapshot of
65 same database situation all the time, instead of snapshot of
63 the situation when the session was started. Hence, %bookmark
66 the situation when the session was started. Hence, %bookmark
64 results are immediately accessible from othes sessions. The database
67 results are immediately accessible from othes sessions. The database
65 is also available for use by user extensions. See:
68 is also available for use by user extensions. See:
66 http://www.python.org/pypi/pickleshare
69 http://www.python.org/pypi/pickleshare
67
70
68 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
71 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
69
72
70 * aliases can now be %store'd
73 * aliases can now be %store'd
71
74
72 * path.py move to Extensions so that pickleshare does not need
75 * path.py move to Extensions so that pickleshare does not need
73 IPython-specific import. Extensions added to pythonpath right
76 IPython-specific import. Extensions added to pythonpath right
74 at __init__.
77 at __init__.
75
78
76 * iplib.py: ipalias deprecated/redundant; aliases are converted and
79 * iplib.py: ipalias deprecated/redundant; aliases are converted and
77 called with _ip.system and the pre-transformed command string.
80 called with _ip.system and the pre-transformed command string.
78
81
79 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
82 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
80
83
81 * IPython/iplib.py (interact): Fix that we were not catching
84 * IPython/iplib.py (interact): Fix that we were not catching
82 KeyboardInterrupt exceptions properly. I'm not quite sure why the
85 KeyboardInterrupt exceptions properly. I'm not quite sure why the
83 logic here had to change, but it's fixed now.
86 logic here had to change, but it's fixed now.
84
87
85 2006-01-29 Ville Vainio <vivainio@gmail.com>
88 2006-01-29 Ville Vainio <vivainio@gmail.com>
86
89
87 * iplib.py: Try to import pyreadline on Windows.
90 * iplib.py: Try to import pyreadline on Windows.
88
91
89 2006-01-27 Ville Vainio <vivainio@gmail.com>
92 2006-01-27 Ville Vainio <vivainio@gmail.com>
90
93
91 * iplib.py: Expose ipapi as _ip in builtin namespace.
94 * iplib.py: Expose ipapi as _ip in builtin namespace.
92 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
95 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
93 and ip_set_hook (-> _ip.set_hook) redundant. % and !
96 and ip_set_hook (-> _ip.set_hook) redundant. % and !
94 syntax now produce _ip.* variant of the commands.
97 syntax now produce _ip.* variant of the commands.
95
98
96 * "_ip.options().autoedit_syntax = 2" automatically throws
99 * "_ip.options().autoedit_syntax = 2" automatically throws
97 user to editor for syntax error correction without prompting.
100 user to editor for syntax error correction without prompting.
98
101
99 2006-01-27 Ville Vainio <vivainio@gmail.com>
102 2006-01-27 Ville Vainio <vivainio@gmail.com>
100
103
101 * ipmaker.py: Give "realistic" sys.argv for scripts (without
104 * ipmaker.py: Give "realistic" sys.argv for scripts (without
102 'ipython' at argv[0]) executed through command line.
105 'ipython' at argv[0]) executed through command line.
103 NOTE: this DEPRECATES calling ipython with multiple scripts
106 NOTE: this DEPRECATES calling ipython with multiple scripts
104 ("ipython a.py b.py c.py")
107 ("ipython a.py b.py c.py")
105
108
106 * iplib.py, hooks.py: Added configurable input prefilter,
109 * iplib.py, hooks.py: Added configurable input prefilter,
107 named 'input_prefilter'. See ext_rescapture.py for example
110 named 'input_prefilter'. See ext_rescapture.py for example
108 usage.
111 usage.
109
112
110 * ext_rescapture.py, Magic.py: Better system command output capture
113 * ext_rescapture.py, Magic.py: Better system command output capture
111 through 'var = !ls' (deprecates user-visible %sc). Same notation
114 through 'var = !ls' (deprecates user-visible %sc). Same notation
112 applies for magics, 'var = %alias' assigns alias list to var.
115 applies for magics, 'var = %alias' assigns alias list to var.
113
116
114 * ipapi.py: added meta() for accessing extension-usable data store.
117 * ipapi.py: added meta() for accessing extension-usable data store.
115
118
116 * iplib.py: added InteractiveShell.getapi(). New magics should be
119 * iplib.py: added InteractiveShell.getapi(). New magics should be
117 written doing self.getapi() instead of using the shell directly.
120 written doing self.getapi() instead of using the shell directly.
118
121
119 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
122 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
120 %store foo >> ~/myfoo.txt to store variables to files (in clean
123 %store foo >> ~/myfoo.txt to store variables to files (in clean
121 textual form, not a restorable pickle).
124 textual form, not a restorable pickle).
122
125
123 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
126 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
124
127
125 * usage.py, Magic.py: added %quickref
128 * usage.py, Magic.py: added %quickref
126
129
127 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
130 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
128
131
129 * GetoptErrors when invoking magics etc. with wrong args
132 * GetoptErrors when invoking magics etc. with wrong args
130 are now more helpful:
133 are now more helpful:
131 GetoptError: option -l not recognized (allowed: "qb" )
134 GetoptError: option -l not recognized (allowed: "qb" )
132
135
133 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
136 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
134
137
135 * IPython/demo.py (Demo.show): Flush stdout after each block, so
138 * IPython/demo.py (Demo.show): Flush stdout after each block, so
136 computationally intensive blocks don't appear to stall the demo.
139 computationally intensive blocks don't appear to stall the demo.
137
140
138 2006-01-24 Ville Vainio <vivainio@gmail.com>
141 2006-01-24 Ville Vainio <vivainio@gmail.com>
139
142
140 * iplib.py, hooks.py: 'result_display' hook can return a non-None
143 * iplib.py, hooks.py: 'result_display' hook can return a non-None
141 value to manipulate resulting history entry.
144 value to manipulate resulting history entry.
142
145
143 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
146 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
144 to instance methods of IPApi class, to make extending an embedded
147 to instance methods of IPApi class, to make extending an embedded
145 IPython feasible. See ext_rehashdir.py for example usage.
148 IPython feasible. See ext_rehashdir.py for example usage.
146
149
147 * Merged 1071-1076 from banches/0.7.1
150 * Merged 1071-1076 from banches/0.7.1
148
151
149
152
150 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
153 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
151
154
152 * tools/release (daystamp): Fix build tools to use the new
155 * tools/release (daystamp): Fix build tools to use the new
153 eggsetup.py script to build lightweight eggs.
156 eggsetup.py script to build lightweight eggs.
154
157
155 * Applied changesets 1062 and 1064 before 0.7.1 release.
158 * Applied changesets 1062 and 1064 before 0.7.1 release.
156
159
157 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
160 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
158 see the raw input history (without conversions like %ls ->
161 see the raw input history (without conversions like %ls ->
159 ipmagic("ls")). After a request from W. Stein, SAGE
162 ipmagic("ls")). After a request from W. Stein, SAGE
160 (http://modular.ucsd.edu/sage) developer. This information is
163 (http://modular.ucsd.edu/sage) developer. This information is
161 stored in the input_hist_raw attribute of the IPython instance, so
164 stored in the input_hist_raw attribute of the IPython instance, so
162 developers can access it if needed (it's an InputList instance).
165 developers can access it if needed (it's an InputList instance).
163
166
164 * Versionstring = 0.7.2.svn
167 * Versionstring = 0.7.2.svn
165
168
166 * eggsetup.py: A separate script for constructing eggs, creates
169 * eggsetup.py: A separate script for constructing eggs, creates
167 proper launch scripts even on Windows (an .exe file in
170 proper launch scripts even on Windows (an .exe file in
168 \python24\scripts).
171 \python24\scripts).
169
172
170 * ipapi.py: launch_new_instance, launch entry point needed for the
173 * ipapi.py: launch_new_instance, launch entry point needed for the
171 egg.
174 egg.
172
175
173 2006-01-23 Ville Vainio <vivainio@gmail.com>
176 2006-01-23 Ville Vainio <vivainio@gmail.com>
174
177
175 * Added %cpaste magic for pasting python code
178 * Added %cpaste magic for pasting python code
176
179
177 2006-01-22 Ville Vainio <vivainio@gmail.com>
180 2006-01-22 Ville Vainio <vivainio@gmail.com>
178
181
179 * Merge from branches/0.7.1 into trunk, revs 1052-1057
182 * Merge from branches/0.7.1 into trunk, revs 1052-1057
180
183
181 * Versionstring = 0.7.2.svn
184 * Versionstring = 0.7.2.svn
182
185
183 * eggsetup.py: A separate script for constructing eggs, creates
186 * eggsetup.py: A separate script for constructing eggs, creates
184 proper launch scripts even on Windows (an .exe file in
187 proper launch scripts even on Windows (an .exe file in
185 \python24\scripts).
188 \python24\scripts).
186
189
187 * ipapi.py: launch_new_instance, launch entry point needed for the
190 * ipapi.py: launch_new_instance, launch entry point needed for the
188 egg.
191 egg.
189
192
190 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
193 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
191
194
192 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
195 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
193 %pfile foo would print the file for foo even if it was a binary.
196 %pfile foo would print the file for foo even if it was a binary.
194 Now, extensions '.so' and '.dll' are skipped.
197 Now, extensions '.so' and '.dll' are skipped.
195
198
196 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
199 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
197 bug, where macros would fail in all threaded modes. I'm not 100%
200 bug, where macros would fail in all threaded modes. I'm not 100%
198 sure, so I'm going to put out an rc instead of making a release
201 sure, so I'm going to put out an rc instead of making a release
199 today, and wait for feedback for at least a few days.
202 today, and wait for feedback for at least a few days.
200
203
201 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
204 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
202 it...) the handling of pasting external code with autoindent on.
205 it...) the handling of pasting external code with autoindent on.
203 To get out of a multiline input, the rule will appear for most
206 To get out of a multiline input, the rule will appear for most
204 users unchanged: two blank lines or change the indent level
207 users unchanged: two blank lines or change the indent level
205 proposed by IPython. But there is a twist now: you can
208 proposed by IPython. But there is a twist now: you can
206 add/subtract only *one or two spaces*. If you add/subtract three
209 add/subtract only *one or two spaces*. If you add/subtract three
207 or more (unless you completely delete the line), IPython will
210 or more (unless you completely delete the line), IPython will
208 accept that line, and you'll need to enter a second one of pure
211 accept that line, and you'll need to enter a second one of pure
209 whitespace. I know it sounds complicated, but I can't find a
212 whitespace. I know it sounds complicated, but I can't find a
210 different solution that covers all the cases, with the right
213 different solution that covers all the cases, with the right
211 heuristics. Hopefully in actual use, nobody will really notice
214 heuristics. Hopefully in actual use, nobody will really notice
212 all these strange rules and things will 'just work'.
215 all these strange rules and things will 'just work'.
213
216
214 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
217 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
215
218
216 * IPython/iplib.py (interact): catch exceptions which can be
219 * IPython/iplib.py (interact): catch exceptions which can be
217 triggered asynchronously by signal handlers. Thanks to an
220 triggered asynchronously by signal handlers. Thanks to an
218 automatic crash report, submitted by Colin Kingsley
221 automatic crash report, submitted by Colin Kingsley
219 <tercel-AT-gentoo.org>.
222 <tercel-AT-gentoo.org>.
220
223
221 2006-01-20 Ville Vainio <vivainio@gmail.com>
224 2006-01-20 Ville Vainio <vivainio@gmail.com>
222
225
223 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
226 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
224 (%rehashdir, very useful, try it out) of how to extend ipython
227 (%rehashdir, very useful, try it out) of how to extend ipython
225 with new magics. Also added Extensions dir to pythonpath to make
228 with new magics. Also added Extensions dir to pythonpath to make
226 importing extensions easy.
229 importing extensions easy.
227
230
228 * %store now complains when trying to store interactively declared
231 * %store now complains when trying to store interactively declared
229 classes / instances of those classes.
232 classes / instances of those classes.
230
233
231 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
234 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
232 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
235 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
233 if they exist, and ipy_user_conf.py with some defaults is created for
236 if they exist, and ipy_user_conf.py with some defaults is created for
234 the user.
237 the user.
235
238
236 * Startup rehashing done by the config file, not InterpreterExec.
239 * Startup rehashing done by the config file, not InterpreterExec.
237 This means system commands are available even without selecting the
240 This means system commands are available even without selecting the
238 pysh profile. It's the sensible default after all.
241 pysh profile. It's the sensible default after all.
239
242
240 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
243 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
241
244
242 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
245 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
243 multiline code with autoindent on working. But I am really not
246 multiline code with autoindent on working. But I am really not
244 sure, so this needs more testing. Will commit a debug-enabled
247 sure, so this needs more testing. Will commit a debug-enabled
245 version for now, while I test it some more, so that Ville and
248 version for now, while I test it some more, so that Ville and
246 others may also catch any problems. Also made
249 others may also catch any problems. Also made
247 self.indent_current_str() a method, to ensure that there's no
250 self.indent_current_str() a method, to ensure that there's no
248 chance of the indent space count and the corresponding string
251 chance of the indent space count and the corresponding string
249 falling out of sync. All code needing the string should just call
252 falling out of sync. All code needing the string should just call
250 the method.
253 the method.
251
254
252 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
255 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
253
256
254 * IPython/Magic.py (magic_edit): fix check for when users don't
257 * IPython/Magic.py (magic_edit): fix check for when users don't
255 save their output files, the try/except was in the wrong section.
258 save their output files, the try/except was in the wrong section.
256
259
257 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
260 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
258
261
259 * IPython/Magic.py (magic_run): fix __file__ global missing from
262 * IPython/Magic.py (magic_run): fix __file__ global missing from
260 script's namespace when executed via %run. After a report by
263 script's namespace when executed via %run. After a report by
261 Vivian.
264 Vivian.
262
265
263 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
266 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
264 when using python 2.4. The parent constructor changed in 2.4, and
267 when using python 2.4. The parent constructor changed in 2.4, and
265 we need to track it directly (we can't call it, as it messes up
268 we need to track it directly (we can't call it, as it messes up
266 readline and tab-completion inside our pdb would stop working).
269 readline and tab-completion inside our pdb would stop working).
267 After a bug report by R. Bernstein <rocky-AT-panix.com>.
270 After a bug report by R. Bernstein <rocky-AT-panix.com>.
268
271
269 2006-01-16 Ville Vainio <vivainio@gmail.com>
272 2006-01-16 Ville Vainio <vivainio@gmail.com>
270
273
271 * Ipython/magic.py:Reverted back to old %edit functionality
274 * Ipython/magic.py:Reverted back to old %edit functionality
272 that returns file contents on exit.
275 that returns file contents on exit.
273
276
274 * IPython/path.py: Added Jason Orendorff's "path" module to
277 * IPython/path.py: Added Jason Orendorff's "path" module to
275 IPython tree, http://www.jorendorff.com/articles/python/path/.
278 IPython tree, http://www.jorendorff.com/articles/python/path/.
276 You can get path objects conveniently through %sc, and !!, e.g.:
279 You can get path objects conveniently through %sc, and !!, e.g.:
277 sc files=ls
280 sc files=ls
278 for p in files.paths: # or files.p
281 for p in files.paths: # or files.p
279 print p,p.mtime
282 print p,p.mtime
280
283
281 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
284 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
282 now work again without considering the exclusion regexp -
285 now work again without considering the exclusion regexp -
283 hence, things like ',foo my/path' turn to 'foo("my/path")'
286 hence, things like ',foo my/path' turn to 'foo("my/path")'
284 instead of syntax error.
287 instead of syntax error.
285
288
286
289
287 2006-01-14 Ville Vainio <vivainio@gmail.com>
290 2006-01-14 Ville Vainio <vivainio@gmail.com>
288
291
289 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
292 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
290 ipapi decorators for python 2.4 users, options() provides access to rc
293 ipapi decorators for python 2.4 users, options() provides access to rc
291 data.
294 data.
292
295
293 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
296 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
294 as path separators (even on Linux ;-). Space character after
297 as path separators (even on Linux ;-). Space character after
295 backslash (as yielded by tab completer) is still space;
298 backslash (as yielded by tab completer) is still space;
296 "%cd long\ name" works as expected.
299 "%cd long\ name" works as expected.
297
300
298 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
301 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
299 as "chain of command", with priority. API stays the same,
302 as "chain of command", with priority. API stays the same,
300 TryNext exception raised by a hook function signals that
303 TryNext exception raised by a hook function signals that
301 current hook failed and next hook should try handling it, as
304 current hook failed and next hook should try handling it, as
302 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
305 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
303 requested configurable display hook, which is now implemented.
306 requested configurable display hook, which is now implemented.
304
307
305 2006-01-13 Ville Vainio <vivainio@gmail.com>
308 2006-01-13 Ville Vainio <vivainio@gmail.com>
306
309
307 * IPython/platutils*.py: platform specific utility functions,
310 * IPython/platutils*.py: platform specific utility functions,
308 so far only set_term_title is implemented (change terminal
311 so far only set_term_title is implemented (change terminal
309 label in windowing systems). %cd now changes the title to
312 label in windowing systems). %cd now changes the title to
310 current dir.
313 current dir.
311
314
312 * IPython/Release.py: Added myself to "authors" list,
315 * IPython/Release.py: Added myself to "authors" list,
313 had to create new files.
316 had to create new files.
314
317
315 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
318 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
316 shell escape; not a known bug but had potential to be one in the
319 shell escape; not a known bug but had potential to be one in the
317 future.
320 future.
318
321
319 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
322 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
320 extension API for IPython! See the module for usage example. Fix
323 extension API for IPython! See the module for usage example. Fix
321 OInspect for docstring-less magic functions.
324 OInspect for docstring-less magic functions.
322
325
323
326
324 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
327 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
325
328
326 * IPython/iplib.py (raw_input): temporarily deactivate all
329 * IPython/iplib.py (raw_input): temporarily deactivate all
327 attempts at allowing pasting of code with autoindent on. It
330 attempts at allowing pasting of code with autoindent on. It
328 introduced bugs (reported by Prabhu) and I can't seem to find a
331 introduced bugs (reported by Prabhu) and I can't seem to find a
329 robust combination which works in all cases. Will have to revisit
332 robust combination which works in all cases. Will have to revisit
330 later.
333 later.
331
334
332 * IPython/genutils.py: remove isspace() function. We've dropped
335 * IPython/genutils.py: remove isspace() function. We've dropped
333 2.2 compatibility, so it's OK to use the string method.
336 2.2 compatibility, so it's OK to use the string method.
334
337
335 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
338 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
336
339
337 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
340 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
338 matching what NOT to autocall on, to include all python binary
341 matching what NOT to autocall on, to include all python binary
339 operators (including things like 'and', 'or', 'is' and 'in').
342 operators (including things like 'and', 'or', 'is' and 'in').
340 Prompted by a bug report on 'foo & bar', but I realized we had
343 Prompted by a bug report on 'foo & bar', but I realized we had
341 many more potential bug cases with other operators. The regexp is
344 many more potential bug cases with other operators. The regexp is
342 self.re_exclude_auto, it's fairly commented.
345 self.re_exclude_auto, it's fairly commented.
343
346
344 2006-01-12 Ville Vainio <vivainio@gmail.com>
347 2006-01-12 Ville Vainio <vivainio@gmail.com>
345
348
346 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
349 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
347 Prettified and hardened string/backslash quoting with ipsystem(),
350 Prettified and hardened string/backslash quoting with ipsystem(),
348 ipalias() and ipmagic(). Now even \ characters are passed to
351 ipalias() and ipmagic(). Now even \ characters are passed to
349 %magics, !shell escapes and aliases exactly as they are in the
352 %magics, !shell escapes and aliases exactly as they are in the
350 ipython command line. Should improve backslash experience,
353 ipython command line. Should improve backslash experience,
351 particularly in Windows (path delimiter for some commands that
354 particularly in Windows (path delimiter for some commands that
352 won't understand '/'), but Unix benefits as well (regexps). %cd
355 won't understand '/'), but Unix benefits as well (regexps). %cd
353 magic still doesn't support backslash path delimiters, though. Also
356 magic still doesn't support backslash path delimiters, though. Also
354 deleted all pretense of supporting multiline command strings in
357 deleted all pretense of supporting multiline command strings in
355 !system or %magic commands. Thanks to Jerry McRae for suggestions.
358 !system or %magic commands. Thanks to Jerry McRae for suggestions.
356
359
357 * doc/build_doc_instructions.txt added. Documentation on how to
360 * doc/build_doc_instructions.txt added. Documentation on how to
358 use doc/update_manual.py, added yesterday. Both files contributed
361 use doc/update_manual.py, added yesterday. Both files contributed
359 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
362 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
360 doc/*.sh for deprecation at a later date.
363 doc/*.sh for deprecation at a later date.
361
364
362 * /ipython.py Added ipython.py to root directory for
365 * /ipython.py Added ipython.py to root directory for
363 zero-installation (tar xzvf ipython.tgz; cd ipython; python
366 zero-installation (tar xzvf ipython.tgz; cd ipython; python
364 ipython.py) and development convenience (no need to kee doing
367 ipython.py) and development convenience (no need to kee doing
365 "setup.py install" between changes).
368 "setup.py install" between changes).
366
369
367 * Made ! and !! shell escapes work (again) in multiline expressions:
370 * Made ! and !! shell escapes work (again) in multiline expressions:
368 if 1:
371 if 1:
369 !ls
372 !ls
370 !!ls
373 !!ls
371
374
372 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
375 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
373
376
374 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
377 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
375 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
378 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
376 module in case-insensitive installation. Was causing crashes
379 module in case-insensitive installation. Was causing crashes
377 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
380 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
378
381
379 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
382 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
380 <marienz-AT-gentoo.org>, closes
383 <marienz-AT-gentoo.org>, closes
381 http://www.scipy.net/roundup/ipython/issue51.
384 http://www.scipy.net/roundup/ipython/issue51.
382
385
383 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
386 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
384
387
385 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
388 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
386 problem of excessive CPU usage under *nix and keyboard lag under
389 problem of excessive CPU usage under *nix and keyboard lag under
387 win32.
390 win32.
388
391
389 2006-01-10 *** Released version 0.7.0
392 2006-01-10 *** Released version 0.7.0
390
393
391 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
394 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
392
395
393 * IPython/Release.py (revision): tag version number to 0.7.0,
396 * IPython/Release.py (revision): tag version number to 0.7.0,
394 ready for release.
397 ready for release.
395
398
396 * IPython/Magic.py (magic_edit): Add print statement to %edit so
399 * IPython/Magic.py (magic_edit): Add print statement to %edit so
397 it informs the user of the name of the temp. file used. This can
400 it informs the user of the name of the temp. file used. This can
398 help if you decide later to reuse that same file, so you know
401 help if you decide later to reuse that same file, so you know
399 where to copy the info from.
402 where to copy the info from.
400
403
401 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
404 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
402
405
403 * setup_bdist_egg.py: little script to build an egg. Added
406 * setup_bdist_egg.py: little script to build an egg. Added
404 support in the release tools as well.
407 support in the release tools as well.
405
408
406 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
409 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
407
410
408 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
411 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
409 version selection (new -wxversion command line and ipythonrc
412 version selection (new -wxversion command line and ipythonrc
410 parameter). Patch contributed by Arnd Baecker
413 parameter). Patch contributed by Arnd Baecker
411 <arnd.baecker-AT-web.de>.
414 <arnd.baecker-AT-web.de>.
412
415
413 * IPython/iplib.py (embed_mainloop): fix tab-completion in
416 * IPython/iplib.py (embed_mainloop): fix tab-completion in
414 embedded instances, for variables defined at the interactive
417 embedded instances, for variables defined at the interactive
415 prompt of the embedded ipython. Reported by Arnd.
418 prompt of the embedded ipython. Reported by Arnd.
416
419
417 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
420 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
418 it can be used as a (stateful) toggle, or with a direct parameter.
421 it can be used as a (stateful) toggle, or with a direct parameter.
419
422
420 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
423 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
421 could be triggered in certain cases and cause the traceback
424 could be triggered in certain cases and cause the traceback
422 printer not to work.
425 printer not to work.
423
426
424 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
427 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
425
428
426 * IPython/iplib.py (_should_recompile): Small fix, closes
429 * IPython/iplib.py (_should_recompile): Small fix, closes
427 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
430 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
428
431
429 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
432 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
430
433
431 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
434 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
432 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
435 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
433 Moad for help with tracking it down.
436 Moad for help with tracking it down.
434
437
435 * IPython/iplib.py (handle_auto): fix autocall handling for
438 * IPython/iplib.py (handle_auto): fix autocall handling for
436 objects which support BOTH __getitem__ and __call__ (so that f [x]
439 objects which support BOTH __getitem__ and __call__ (so that f [x]
437 is left alone, instead of becoming f([x]) automatically).
440 is left alone, instead of becoming f([x]) automatically).
438
441
439 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
442 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
440 Ville's patch.
443 Ville's patch.
441
444
442 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
445 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
443
446
444 * IPython/iplib.py (handle_auto): changed autocall semantics to
447 * IPython/iplib.py (handle_auto): changed autocall semantics to
445 include 'smart' mode, where the autocall transformation is NOT
448 include 'smart' mode, where the autocall transformation is NOT
446 applied if there are no arguments on the line. This allows you to
449 applied if there are no arguments on the line. This allows you to
447 just type 'foo' if foo is a callable to see its internal form,
450 just type 'foo' if foo is a callable to see its internal form,
448 instead of having it called with no arguments (typically a
451 instead of having it called with no arguments (typically a
449 mistake). The old 'full' autocall still exists: for that, you
452 mistake). The old 'full' autocall still exists: for that, you
450 need to set the 'autocall' parameter to 2 in your ipythonrc file.
453 need to set the 'autocall' parameter to 2 in your ipythonrc file.
451
454
452 * IPython/completer.py (Completer.attr_matches): add
455 * IPython/completer.py (Completer.attr_matches): add
453 tab-completion support for Enthoughts' traits. After a report by
456 tab-completion support for Enthoughts' traits. After a report by
454 Arnd and a patch by Prabhu.
457 Arnd and a patch by Prabhu.
455
458
456 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
459 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
457
460
458 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
461 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
459 Schmolck's patch to fix inspect.getinnerframes().
462 Schmolck's patch to fix inspect.getinnerframes().
460
463
461 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
464 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
462 for embedded instances, regarding handling of namespaces and items
465 for embedded instances, regarding handling of namespaces and items
463 added to the __builtin__ one. Multiple embedded instances and
466 added to the __builtin__ one. Multiple embedded instances and
464 recursive embeddings should work better now (though I'm not sure
467 recursive embeddings should work better now (though I'm not sure
465 I've got all the corner cases fixed, that code is a bit of a brain
468 I've got all the corner cases fixed, that code is a bit of a brain
466 twister).
469 twister).
467
470
468 * IPython/Magic.py (magic_edit): added support to edit in-memory
471 * IPython/Magic.py (magic_edit): added support to edit in-memory
469 macros (automatically creates the necessary temp files). %edit
472 macros (automatically creates the necessary temp files). %edit
470 also doesn't return the file contents anymore, it's just noise.
473 also doesn't return the file contents anymore, it's just noise.
471
474
472 * IPython/completer.py (Completer.attr_matches): revert change to
475 * IPython/completer.py (Completer.attr_matches): revert change to
473 complete only on attributes listed in __all__. I realized it
476 complete only on attributes listed in __all__. I realized it
474 cripples the tab-completion system as a tool for exploring the
477 cripples the tab-completion system as a tool for exploring the
475 internals of unknown libraries (it renders any non-__all__
478 internals of unknown libraries (it renders any non-__all__
476 attribute off-limits). I got bit by this when trying to see
479 attribute off-limits). I got bit by this when trying to see
477 something inside the dis module.
480 something inside the dis module.
478
481
479 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
482 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
480
483
481 * IPython/iplib.py (InteractiveShell.__init__): add .meta
484 * IPython/iplib.py (InteractiveShell.__init__): add .meta
482 namespace for users and extension writers to hold data in. This
485 namespace for users and extension writers to hold data in. This
483 follows the discussion in
486 follows the discussion in
484 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
487 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
485
488
486 * IPython/completer.py (IPCompleter.complete): small patch to help
489 * IPython/completer.py (IPCompleter.complete): small patch to help
487 tab-completion under Emacs, after a suggestion by John Barnard
490 tab-completion under Emacs, after a suggestion by John Barnard
488 <barnarj-AT-ccf.org>.
491 <barnarj-AT-ccf.org>.
489
492
490 * IPython/Magic.py (Magic.extract_input_slices): added support for
493 * IPython/Magic.py (Magic.extract_input_slices): added support for
491 the slice notation in magics to use N-M to represent numbers N...M
494 the slice notation in magics to use N-M to represent numbers N...M
492 (closed endpoints). This is used by %macro and %save.
495 (closed endpoints). This is used by %macro and %save.
493
496
494 * IPython/completer.py (Completer.attr_matches): for modules which
497 * IPython/completer.py (Completer.attr_matches): for modules which
495 define __all__, complete only on those. After a patch by Jeffrey
498 define __all__, complete only on those. After a patch by Jeffrey
496 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
499 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
497 speed up this routine.
500 speed up this routine.
498
501
499 * IPython/Logger.py (Logger.log): fix a history handling bug. I
502 * IPython/Logger.py (Logger.log): fix a history handling bug. I
500 don't know if this is the end of it, but the behavior now is
503 don't know if this is the end of it, but the behavior now is
501 certainly much more correct. Note that coupled with macros,
504 certainly much more correct. Note that coupled with macros,
502 slightly surprising (at first) behavior may occur: a macro will in
505 slightly surprising (at first) behavior may occur: a macro will in
503 general expand to multiple lines of input, so upon exiting, the
506 general expand to multiple lines of input, so upon exiting, the
504 in/out counters will both be bumped by the corresponding amount
507 in/out counters will both be bumped by the corresponding amount
505 (as if the macro's contents had been typed interactively). Typing
508 (as if the macro's contents had been typed interactively). Typing
506 %hist will reveal the intermediate (silently processed) lines.
509 %hist will reveal the intermediate (silently processed) lines.
507
510
508 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
511 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
509 pickle to fail (%run was overwriting __main__ and not restoring
512 pickle to fail (%run was overwriting __main__ and not restoring
510 it, but pickle relies on __main__ to operate).
513 it, but pickle relies on __main__ to operate).
511
514
512 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
515 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
513 using properties, but forgot to make the main InteractiveShell
516 using properties, but forgot to make the main InteractiveShell
514 class a new-style class. Properties fail silently, and
517 class a new-style class. Properties fail silently, and
515 misteriously, with old-style class (getters work, but
518 misteriously, with old-style class (getters work, but
516 setters don't do anything).
519 setters don't do anything).
517
520
518 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
521 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
519
522
520 * IPython/Magic.py (magic_history): fix history reporting bug (I
523 * IPython/Magic.py (magic_history): fix history reporting bug (I
521 know some nasties are still there, I just can't seem to find a
524 know some nasties are still there, I just can't seem to find a
522 reproducible test case to track them down; the input history is
525 reproducible test case to track them down; the input history is
523 falling out of sync...)
526 falling out of sync...)
524
527
525 * IPython/iplib.py (handle_shell_escape): fix bug where both
528 * IPython/iplib.py (handle_shell_escape): fix bug where both
526 aliases and system accesses where broken for indented code (such
529 aliases and system accesses where broken for indented code (such
527 as loops).
530 as loops).
528
531
529 * IPython/genutils.py (shell): fix small but critical bug for
532 * IPython/genutils.py (shell): fix small but critical bug for
530 win32 system access.
533 win32 system access.
531
534
532 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
535 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
533
536
534 * IPython/iplib.py (showtraceback): remove use of the
537 * IPython/iplib.py (showtraceback): remove use of the
535 sys.last_{type/value/traceback} structures, which are non
538 sys.last_{type/value/traceback} structures, which are non
536 thread-safe.
539 thread-safe.
537 (_prefilter): change control flow to ensure that we NEVER
540 (_prefilter): change control flow to ensure that we NEVER
538 introspect objects when autocall is off. This will guarantee that
541 introspect objects when autocall is off. This will guarantee that
539 having an input line of the form 'x.y', where access to attribute
542 having an input line of the form 'x.y', where access to attribute
540 'y' has side effects, doesn't trigger the side effect TWICE. It
543 'y' has side effects, doesn't trigger the side effect TWICE. It
541 is important to note that, with autocall on, these side effects
544 is important to note that, with autocall on, these side effects
542 can still happen.
545 can still happen.
543 (ipsystem): new builtin, to complete the ip{magic/alias/system}
546 (ipsystem): new builtin, to complete the ip{magic/alias/system}
544 trio. IPython offers these three kinds of special calls which are
547 trio. IPython offers these three kinds of special calls which are
545 not python code, and it's a good thing to have their call method
548 not python code, and it's a good thing to have their call method
546 be accessible as pure python functions (not just special syntax at
549 be accessible as pure python functions (not just special syntax at
547 the command line). It gives us a better internal implementation
550 the command line). It gives us a better internal implementation
548 structure, as well as exposing these for user scripting more
551 structure, as well as exposing these for user scripting more
549 cleanly.
552 cleanly.
550
553
551 * IPython/macro.py (Macro.__init__): moved macros to a standalone
554 * IPython/macro.py (Macro.__init__): moved macros to a standalone
552 file. Now that they'll be more likely to be used with the
555 file. Now that they'll be more likely to be used with the
553 persistance system (%store), I want to make sure their module path
556 persistance system (%store), I want to make sure their module path
554 doesn't change in the future, so that we don't break things for
557 doesn't change in the future, so that we don't break things for
555 users' persisted data.
558 users' persisted data.
556
559
557 * IPython/iplib.py (autoindent_update): move indentation
560 * IPython/iplib.py (autoindent_update): move indentation
558 management into the _text_ processing loop, not the keyboard
561 management into the _text_ processing loop, not the keyboard
559 interactive one. This is necessary to correctly process non-typed
562 interactive one. This is necessary to correctly process non-typed
560 multiline input (such as macros).
563 multiline input (such as macros).
561
564
562 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
565 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
563 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
566 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
564 which was producing problems in the resulting manual.
567 which was producing problems in the resulting manual.
565 (magic_whos): improve reporting of instances (show their class,
568 (magic_whos): improve reporting of instances (show their class,
566 instead of simply printing 'instance' which isn't terribly
569 instead of simply printing 'instance' which isn't terribly
567 informative).
570 informative).
568
571
569 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
572 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
570 (minor mods) to support network shares under win32.
573 (minor mods) to support network shares under win32.
571
574
572 * IPython/winconsole.py (get_console_size): add new winconsole
575 * IPython/winconsole.py (get_console_size): add new winconsole
573 module and fixes to page_dumb() to improve its behavior under
576 module and fixes to page_dumb() to improve its behavior under
574 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
577 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
575
578
576 * IPython/Magic.py (Macro): simplified Macro class to just
579 * IPython/Magic.py (Macro): simplified Macro class to just
577 subclass list. We've had only 2.2 compatibility for a very long
580 subclass list. We've had only 2.2 compatibility for a very long
578 time, yet I was still avoiding subclassing the builtin types. No
581 time, yet I was still avoiding subclassing the builtin types. No
579 more (I'm also starting to use properties, though I won't shift to
582 more (I'm also starting to use properties, though I won't shift to
580 2.3-specific features quite yet).
583 2.3-specific features quite yet).
581 (magic_store): added Ville's patch for lightweight variable
584 (magic_store): added Ville's patch for lightweight variable
582 persistence, after a request on the user list by Matt Wilkie
585 persistence, after a request on the user list by Matt Wilkie
583 <maphew-AT-gmail.com>. The new %store magic's docstring has full
586 <maphew-AT-gmail.com>. The new %store magic's docstring has full
584 details.
587 details.
585
588
586 * IPython/iplib.py (InteractiveShell.post_config_initialization):
589 * IPython/iplib.py (InteractiveShell.post_config_initialization):
587 changed the default logfile name from 'ipython.log' to
590 changed the default logfile name from 'ipython.log' to
588 'ipython_log.py'. These logs are real python files, and now that
591 'ipython_log.py'. These logs are real python files, and now that
589 we have much better multiline support, people are more likely to
592 we have much better multiline support, people are more likely to
590 want to use them as such. Might as well name them correctly.
593 want to use them as such. Might as well name them correctly.
591
594
592 * IPython/Magic.py: substantial cleanup. While we can't stop
595 * IPython/Magic.py: substantial cleanup. While we can't stop
593 using magics as mixins, due to the existing customizations 'out
596 using magics as mixins, due to the existing customizations 'out
594 there' which rely on the mixin naming conventions, at least I
597 there' which rely on the mixin naming conventions, at least I
595 cleaned out all cross-class name usage. So once we are OK with
598 cleaned out all cross-class name usage. So once we are OK with
596 breaking compatibility, the two systems can be separated.
599 breaking compatibility, the two systems can be separated.
597
600
598 * IPython/Logger.py: major cleanup. This one is NOT a mixin
601 * IPython/Logger.py: major cleanup. This one is NOT a mixin
599 anymore, and the class is a fair bit less hideous as well. New
602 anymore, and the class is a fair bit less hideous as well. New
600 features were also introduced: timestamping of input, and logging
603 features were also introduced: timestamping of input, and logging
601 of output results. These are user-visible with the -t and -o
604 of output results. These are user-visible with the -t and -o
602 options to %logstart. Closes
605 options to %logstart. Closes
603 http://www.scipy.net/roundup/ipython/issue11 and a request by
606 http://www.scipy.net/roundup/ipython/issue11 and a request by
604 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
607 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
605
608
606 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
609 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
607
610
608 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
611 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
609 better hadnle backslashes in paths. See the thread 'More Windows
612 better hadnle backslashes in paths. See the thread 'More Windows
610 questions part 2 - \/ characters revisited' on the iypthon user
613 questions part 2 - \/ characters revisited' on the iypthon user
611 list:
614 list:
612 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
615 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
613
616
614 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
617 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
615
618
616 (InteractiveShell.__init__): change threaded shells to not use the
619 (InteractiveShell.__init__): change threaded shells to not use the
617 ipython crash handler. This was causing more problems than not,
620 ipython crash handler. This was causing more problems than not,
618 as exceptions in the main thread (GUI code, typically) would
621 as exceptions in the main thread (GUI code, typically) would
619 always show up as a 'crash', when they really weren't.
622 always show up as a 'crash', when they really weren't.
620
623
621 The colors and exception mode commands (%colors/%xmode) have been
624 The colors and exception mode commands (%colors/%xmode) have been
622 synchronized to also take this into account, so users can get
625 synchronized to also take this into account, so users can get
623 verbose exceptions for their threaded code as well. I also added
626 verbose exceptions for their threaded code as well. I also added
624 support for activating pdb inside this exception handler as well,
627 support for activating pdb inside this exception handler as well,
625 so now GUI authors can use IPython's enhanced pdb at runtime.
628 so now GUI authors can use IPython's enhanced pdb at runtime.
626
629
627 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
630 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
628 true by default, and add it to the shipped ipythonrc file. Since
631 true by default, and add it to the shipped ipythonrc file. Since
629 this asks the user before proceeding, I think it's OK to make it
632 this asks the user before proceeding, I think it's OK to make it
630 true by default.
633 true by default.
631
634
632 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
635 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
633 of the previous special-casing of input in the eval loop. I think
636 of the previous special-casing of input in the eval loop. I think
634 this is cleaner, as they really are commands and shouldn't have
637 this is cleaner, as they really are commands and shouldn't have
635 a special role in the middle of the core code.
638 a special role in the middle of the core code.
636
639
637 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
640 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
638
641
639 * IPython/iplib.py (edit_syntax_error): added support for
642 * IPython/iplib.py (edit_syntax_error): added support for
640 automatically reopening the editor if the file had a syntax error
643 automatically reopening the editor if the file had a syntax error
641 in it. Thanks to scottt who provided the patch at:
644 in it. Thanks to scottt who provided the patch at:
642 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
645 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
643 version committed).
646 version committed).
644
647
645 * IPython/iplib.py (handle_normal): add suport for multi-line
648 * IPython/iplib.py (handle_normal): add suport for multi-line
646 input with emtpy lines. This fixes
649 input with emtpy lines. This fixes
647 http://www.scipy.net/roundup/ipython/issue43 and a similar
650 http://www.scipy.net/roundup/ipython/issue43 and a similar
648 discussion on the user list.
651 discussion on the user list.
649
652
650 WARNING: a behavior change is necessarily introduced to support
653 WARNING: a behavior change is necessarily introduced to support
651 blank lines: now a single blank line with whitespace does NOT
654 blank lines: now a single blank line with whitespace does NOT
652 break the input loop, which means that when autoindent is on, by
655 break the input loop, which means that when autoindent is on, by
653 default hitting return on the next (indented) line does NOT exit.
656 default hitting return on the next (indented) line does NOT exit.
654
657
655 Instead, to exit a multiline input you can either have:
658 Instead, to exit a multiline input you can either have:
656
659
657 - TWO whitespace lines (just hit return again), or
660 - TWO whitespace lines (just hit return again), or
658 - a single whitespace line of a different length than provided
661 - a single whitespace line of a different length than provided
659 by the autoindent (add or remove a space).
662 by the autoindent (add or remove a space).
660
663
661 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
664 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
662 module to better organize all readline-related functionality.
665 module to better organize all readline-related functionality.
663 I've deleted FlexCompleter and put all completion clases here.
666 I've deleted FlexCompleter and put all completion clases here.
664
667
665 * IPython/iplib.py (raw_input): improve indentation management.
668 * IPython/iplib.py (raw_input): improve indentation management.
666 It is now possible to paste indented code with autoindent on, and
669 It is now possible to paste indented code with autoindent on, and
667 the code is interpreted correctly (though it still looks bad on
670 the code is interpreted correctly (though it still looks bad on
668 screen, due to the line-oriented nature of ipython).
671 screen, due to the line-oriented nature of ipython).
669 (MagicCompleter.complete): change behavior so that a TAB key on an
672 (MagicCompleter.complete): change behavior so that a TAB key on an
670 otherwise empty line actually inserts a tab, instead of completing
673 otherwise empty line actually inserts a tab, instead of completing
671 on the entire global namespace. This makes it easier to use the
674 on the entire global namespace. This makes it easier to use the
672 TAB key for indentation. After a request by Hans Meine
675 TAB key for indentation. After a request by Hans Meine
673 <hans_meine-AT-gmx.net>
676 <hans_meine-AT-gmx.net>
674 (_prefilter): add support so that typing plain 'exit' or 'quit'
677 (_prefilter): add support so that typing plain 'exit' or 'quit'
675 does a sensible thing. Originally I tried to deviate as little as
678 does a sensible thing. Originally I tried to deviate as little as
676 possible from the default python behavior, but even that one may
679 possible from the default python behavior, but even that one may
677 change in this direction (thread on python-dev to that effect).
680 change in this direction (thread on python-dev to that effect).
678 Regardless, ipython should do the right thing even if CPython's
681 Regardless, ipython should do the right thing even if CPython's
679 '>>>' prompt doesn't.
682 '>>>' prompt doesn't.
680 (InteractiveShell): removed subclassing code.InteractiveConsole
683 (InteractiveShell): removed subclassing code.InteractiveConsole
681 class. By now we'd overridden just about all of its methods: I've
684 class. By now we'd overridden just about all of its methods: I've
682 copied the remaining two over, and now ipython is a standalone
685 copied the remaining two over, and now ipython is a standalone
683 class. This will provide a clearer picture for the chainsaw
686 class. This will provide a clearer picture for the chainsaw
684 branch refactoring.
687 branch refactoring.
685
688
686 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
689 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
687
690
688 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
691 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
689 failures for objects which break when dir() is called on them.
692 failures for objects which break when dir() is called on them.
690
693
691 * IPython/FlexCompleter.py (Completer.__init__): Added support for
694 * IPython/FlexCompleter.py (Completer.__init__): Added support for
692 distinct local and global namespaces in the completer API. This
695 distinct local and global namespaces in the completer API. This
693 change allows us top properly handle completion with distinct
696 change allows us top properly handle completion with distinct
694 scopes, including in embedded instances (this had never really
697 scopes, including in embedded instances (this had never really
695 worked correctly).
698 worked correctly).
696
699
697 Note: this introduces a change in the constructor for
700 Note: this introduces a change in the constructor for
698 MagicCompleter, as a new global_namespace parameter is now the
701 MagicCompleter, as a new global_namespace parameter is now the
699 second argument (the others were bumped one position).
702 second argument (the others were bumped one position).
700
703
701 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
704 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
702
705
703 * IPython/iplib.py (embed_mainloop): fix tab-completion in
706 * IPython/iplib.py (embed_mainloop): fix tab-completion in
704 embedded instances (which can be done now thanks to Vivian's
707 embedded instances (which can be done now thanks to Vivian's
705 frame-handling fixes for pdb).
708 frame-handling fixes for pdb).
706 (InteractiveShell.__init__): Fix namespace handling problem in
709 (InteractiveShell.__init__): Fix namespace handling problem in
707 embedded instances. We were overwriting __main__ unconditionally,
710 embedded instances. We were overwriting __main__ unconditionally,
708 and this should only be done for 'full' (non-embedded) IPython;
711 and this should only be done for 'full' (non-embedded) IPython;
709 embedded instances must respect the caller's __main__. Thanks to
712 embedded instances must respect the caller's __main__. Thanks to
710 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
713 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
711
714
712 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
715 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
713
716
714 * setup.py: added download_url to setup(). This registers the
717 * setup.py: added download_url to setup(). This registers the
715 download address at PyPI, which is not only useful to humans
718 download address at PyPI, which is not only useful to humans
716 browsing the site, but is also picked up by setuptools (the Eggs
719 browsing the site, but is also picked up by setuptools (the Eggs
717 machinery). Thanks to Ville and R. Kern for the info/discussion
720 machinery). Thanks to Ville and R. Kern for the info/discussion
718 on this.
721 on this.
719
722
720 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
723 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
721
724
722 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
725 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
723 This brings a lot of nice functionality to the pdb mode, which now
726 This brings a lot of nice functionality to the pdb mode, which now
724 has tab-completion, syntax highlighting, and better stack handling
727 has tab-completion, syntax highlighting, and better stack handling
725 than before. Many thanks to Vivian De Smedt
728 than before. Many thanks to Vivian De Smedt
726 <vivian-AT-vdesmedt.com> for the original patches.
729 <vivian-AT-vdesmedt.com> for the original patches.
727
730
728 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
731 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
729
732
730 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
733 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
731 sequence to consistently accept the banner argument. The
734 sequence to consistently accept the banner argument. The
732 inconsistency was tripping SAGE, thanks to Gary Zablackis
735 inconsistency was tripping SAGE, thanks to Gary Zablackis
733 <gzabl-AT-yahoo.com> for the report.
736 <gzabl-AT-yahoo.com> for the report.
734
737
735 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
738 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
736
739
737 * IPython/iplib.py (InteractiveShell.post_config_initialization):
740 * IPython/iplib.py (InteractiveShell.post_config_initialization):
738 Fix bug where a naked 'alias' call in the ipythonrc file would
741 Fix bug where a naked 'alias' call in the ipythonrc file would
739 cause a crash. Bug reported by Jorgen Stenarson.
742 cause a crash. Bug reported by Jorgen Stenarson.
740
743
741 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
744 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
742
745
743 * IPython/ipmaker.py (make_IPython): cleanups which should improve
746 * IPython/ipmaker.py (make_IPython): cleanups which should improve
744 startup time.
747 startup time.
745
748
746 * IPython/iplib.py (runcode): my globals 'fix' for embedded
749 * IPython/iplib.py (runcode): my globals 'fix' for embedded
747 instances had introduced a bug with globals in normal code. Now
750 instances had introduced a bug with globals in normal code. Now
748 it's working in all cases.
751 it's working in all cases.
749
752
750 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
753 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
751 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
754 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
752 has been introduced to set the default case sensitivity of the
755 has been introduced to set the default case sensitivity of the
753 searches. Users can still select either mode at runtime on a
756 searches. Users can still select either mode at runtime on a
754 per-search basis.
757 per-search basis.
755
758
756 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
759 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
757
760
758 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
761 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
759 attributes in wildcard searches for subclasses. Modified version
762 attributes in wildcard searches for subclasses. Modified version
760 of a patch by Jorgen.
763 of a patch by Jorgen.
761
764
762 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
765 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
763
766
764 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
767 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
765 embedded instances. I added a user_global_ns attribute to the
768 embedded instances. I added a user_global_ns attribute to the
766 InteractiveShell class to handle this.
769 InteractiveShell class to handle this.
767
770
768 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
771 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
769
772
770 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
773 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
771 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
774 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
772 (reported under win32, but may happen also in other platforms).
775 (reported under win32, but may happen also in other platforms).
773 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
776 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
774
777
775 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
778 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
776
779
777 * IPython/Magic.py (magic_psearch): new support for wildcard
780 * IPython/Magic.py (magic_psearch): new support for wildcard
778 patterns. Now, typing ?a*b will list all names which begin with a
781 patterns. Now, typing ?a*b will list all names which begin with a
779 and end in b, for example. The %psearch magic has full
782 and end in b, for example. The %psearch magic has full
780 docstrings. Many thanks to JΓΆrgen Stenarson
783 docstrings. Many thanks to JΓΆrgen Stenarson
781 <jorgen.stenarson-AT-bostream.nu>, author of the patches
784 <jorgen.stenarson-AT-bostream.nu>, author of the patches
782 implementing this functionality.
785 implementing this functionality.
783
786
784 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
787 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
785
788
786 * Manual: fixed long-standing annoyance of double-dashes (as in
789 * Manual: fixed long-standing annoyance of double-dashes (as in
787 --prefix=~, for example) being stripped in the HTML version. This
790 --prefix=~, for example) being stripped in the HTML version. This
788 is a latex2html bug, but a workaround was provided. Many thanks
791 is a latex2html bug, but a workaround was provided. Many thanks
789 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
792 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
790 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
793 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
791 rolling. This seemingly small issue had tripped a number of users
794 rolling. This seemingly small issue had tripped a number of users
792 when first installing, so I'm glad to see it gone.
795 when first installing, so I'm glad to see it gone.
793
796
794 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
797 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
795
798
796 * IPython/Extensions/numeric_formats.py: fix missing import,
799 * IPython/Extensions/numeric_formats.py: fix missing import,
797 reported by Stephen Walton.
800 reported by Stephen Walton.
798
801
799 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
802 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
800
803
801 * IPython/demo.py: finish demo module, fully documented now.
804 * IPython/demo.py: finish demo module, fully documented now.
802
805
803 * IPython/genutils.py (file_read): simple little utility to read a
806 * IPython/genutils.py (file_read): simple little utility to read a
804 file and ensure it's closed afterwards.
807 file and ensure it's closed afterwards.
805
808
806 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
809 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
807
810
808 * IPython/demo.py (Demo.__init__): added support for individually
811 * IPython/demo.py (Demo.__init__): added support for individually
809 tagging blocks for automatic execution.
812 tagging blocks for automatic execution.
810
813
811 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
814 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
812 syntax-highlighted python sources, requested by John.
815 syntax-highlighted python sources, requested by John.
813
816
814 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
817 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
815
818
816 * IPython/demo.py (Demo.again): fix bug where again() blocks after
819 * IPython/demo.py (Demo.again): fix bug where again() blocks after
817 finishing.
820 finishing.
818
821
819 * IPython/genutils.py (shlex_split): moved from Magic to here,
822 * IPython/genutils.py (shlex_split): moved from Magic to here,
820 where all 2.2 compatibility stuff lives. I needed it for demo.py.
823 where all 2.2 compatibility stuff lives. I needed it for demo.py.
821
824
822 * IPython/demo.py (Demo.__init__): added support for silent
825 * IPython/demo.py (Demo.__init__): added support for silent
823 blocks, improved marks as regexps, docstrings written.
826 blocks, improved marks as regexps, docstrings written.
824 (Demo.__init__): better docstring, added support for sys.argv.
827 (Demo.__init__): better docstring, added support for sys.argv.
825
828
826 * IPython/genutils.py (marquee): little utility used by the demo
829 * IPython/genutils.py (marquee): little utility used by the demo
827 code, handy in general.
830 code, handy in general.
828
831
829 * IPython/demo.py (Demo.__init__): new class for interactive
832 * IPython/demo.py (Demo.__init__): new class for interactive
830 demos. Not documented yet, I just wrote it in a hurry for
833 demos. Not documented yet, I just wrote it in a hurry for
831 scipy'05. Will docstring later.
834 scipy'05. Will docstring later.
832
835
833 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
836 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
834
837
835 * IPython/Shell.py (sigint_handler): Drastic simplification which
838 * IPython/Shell.py (sigint_handler): Drastic simplification which
836 also seems to make Ctrl-C work correctly across threads! This is
839 also seems to make Ctrl-C work correctly across threads! This is
837 so simple, that I can't beleive I'd missed it before. Needs more
840 so simple, that I can't beleive I'd missed it before. Needs more
838 testing, though.
841 testing, though.
839 (KBINT): Never mind, revert changes. I'm sure I'd tried something
842 (KBINT): Never mind, revert changes. I'm sure I'd tried something
840 like this before...
843 like this before...
841
844
842 * IPython/genutils.py (get_home_dir): add protection against
845 * IPython/genutils.py (get_home_dir): add protection against
843 non-dirs in win32 registry.
846 non-dirs in win32 registry.
844
847
845 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
848 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
846 bug where dict was mutated while iterating (pysh crash).
849 bug where dict was mutated while iterating (pysh crash).
847
850
848 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
851 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
849
852
850 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
853 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
851 spurious newlines added by this routine. After a report by
854 spurious newlines added by this routine. After a report by
852 F. Mantegazza.
855 F. Mantegazza.
853
856
854 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
857 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
855
858
856 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
859 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
857 calls. These were a leftover from the GTK 1.x days, and can cause
860 calls. These were a leftover from the GTK 1.x days, and can cause
858 problems in certain cases (after a report by John Hunter).
861 problems in certain cases (after a report by John Hunter).
859
862
860 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
863 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
861 os.getcwd() fails at init time. Thanks to patch from David Remahl
864 os.getcwd() fails at init time. Thanks to patch from David Remahl
862 <chmod007-AT-mac.com>.
865 <chmod007-AT-mac.com>.
863 (InteractiveShell.__init__): prevent certain special magics from
866 (InteractiveShell.__init__): prevent certain special magics from
864 being shadowed by aliases. Closes
867 being shadowed by aliases. Closes
865 http://www.scipy.net/roundup/ipython/issue41.
868 http://www.scipy.net/roundup/ipython/issue41.
866
869
867 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
870 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
868
871
869 * IPython/iplib.py (InteractiveShell.complete): Added new
872 * IPython/iplib.py (InteractiveShell.complete): Added new
870 top-level completion method to expose the completion mechanism
873 top-level completion method to expose the completion mechanism
871 beyond readline-based environments.
874 beyond readline-based environments.
872
875
873 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
876 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
874
877
875 * tools/ipsvnc (svnversion): fix svnversion capture.
878 * tools/ipsvnc (svnversion): fix svnversion capture.
876
879
877 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
880 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
878 attribute to self, which was missing. Before, it was set by a
881 attribute to self, which was missing. Before, it was set by a
879 routine which in certain cases wasn't being called, so the
882 routine which in certain cases wasn't being called, so the
880 instance could end up missing the attribute. This caused a crash.
883 instance could end up missing the attribute. This caused a crash.
881 Closes http://www.scipy.net/roundup/ipython/issue40.
884 Closes http://www.scipy.net/roundup/ipython/issue40.
882
885
883 2005-08-16 Fernando Perez <fperez@colorado.edu>
886 2005-08-16 Fernando Perez <fperez@colorado.edu>
884
887
885 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
888 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
886 contains non-string attribute. Closes
889 contains non-string attribute. Closes
887 http://www.scipy.net/roundup/ipython/issue38.
890 http://www.scipy.net/roundup/ipython/issue38.
888
891
889 2005-08-14 Fernando Perez <fperez@colorado.edu>
892 2005-08-14 Fernando Perez <fperez@colorado.edu>
890
893
891 * tools/ipsvnc: Minor improvements, to add changeset info.
894 * tools/ipsvnc: Minor improvements, to add changeset info.
892
895
893 2005-08-12 Fernando Perez <fperez@colorado.edu>
896 2005-08-12 Fernando Perez <fperez@colorado.edu>
894
897
895 * IPython/iplib.py (runsource): remove self.code_to_run_src
898 * IPython/iplib.py (runsource): remove self.code_to_run_src
896 attribute. I realized this is nothing more than
899 attribute. I realized this is nothing more than
897 '\n'.join(self.buffer), and having the same data in two different
900 '\n'.join(self.buffer), and having the same data in two different
898 places is just asking for synchronization bugs. This may impact
901 places is just asking for synchronization bugs. This may impact
899 people who have custom exception handlers, so I need to warn
902 people who have custom exception handlers, so I need to warn
900 ipython-dev about it (F. Mantegazza may use them).
903 ipython-dev about it (F. Mantegazza may use them).
901
904
902 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
905 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
903
906
904 * IPython/genutils.py: fix 2.2 compatibility (generators)
907 * IPython/genutils.py: fix 2.2 compatibility (generators)
905
908
906 2005-07-18 Fernando Perez <fperez@colorado.edu>
909 2005-07-18 Fernando Perez <fperez@colorado.edu>
907
910
908 * IPython/genutils.py (get_home_dir): fix to help users with
911 * IPython/genutils.py (get_home_dir): fix to help users with
909 invalid $HOME under win32.
912 invalid $HOME under win32.
910
913
911 2005-07-17 Fernando Perez <fperez@colorado.edu>
914 2005-07-17 Fernando Perez <fperez@colorado.edu>
912
915
913 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
916 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
914 some old hacks and clean up a bit other routines; code should be
917 some old hacks and clean up a bit other routines; code should be
915 simpler and a bit faster.
918 simpler and a bit faster.
916
919
917 * IPython/iplib.py (interact): removed some last-resort attempts
920 * IPython/iplib.py (interact): removed some last-resort attempts
918 to survive broken stdout/stderr. That code was only making it
921 to survive broken stdout/stderr. That code was only making it
919 harder to abstract out the i/o (necessary for gui integration),
922 harder to abstract out the i/o (necessary for gui integration),
920 and the crashes it could prevent were extremely rare in practice
923 and the crashes it could prevent were extremely rare in practice
921 (besides being fully user-induced in a pretty violent manner).
924 (besides being fully user-induced in a pretty violent manner).
922
925
923 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
926 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
924 Nothing major yet, but the code is simpler to read; this should
927 Nothing major yet, but the code is simpler to read; this should
925 make it easier to do more serious modifications in the future.
928 make it easier to do more serious modifications in the future.
926
929
927 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
930 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
928 which broke in .15 (thanks to a report by Ville).
931 which broke in .15 (thanks to a report by Ville).
929
932
930 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
933 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
931 be quite correct, I know next to nothing about unicode). This
934 be quite correct, I know next to nothing about unicode). This
932 will allow unicode strings to be used in prompts, amongst other
935 will allow unicode strings to be used in prompts, amongst other
933 cases. It also will prevent ipython from crashing when unicode
936 cases. It also will prevent ipython from crashing when unicode
934 shows up unexpectedly in many places. If ascii encoding fails, we
937 shows up unexpectedly in many places. If ascii encoding fails, we
935 assume utf_8. Currently the encoding is not a user-visible
938 assume utf_8. Currently the encoding is not a user-visible
936 setting, though it could be made so if there is demand for it.
939 setting, though it could be made so if there is demand for it.
937
940
938 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
941 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
939
942
940 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
943 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
941
944
942 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
945 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
943
946
944 * IPython/genutils.py: Add 2.2 compatibility here, so all other
947 * IPython/genutils.py: Add 2.2 compatibility here, so all other
945 code can work transparently for 2.2/2.3.
948 code can work transparently for 2.2/2.3.
946
949
947 2005-07-16 Fernando Perez <fperez@colorado.edu>
950 2005-07-16 Fernando Perez <fperez@colorado.edu>
948
951
949 * IPython/ultraTB.py (ExceptionColors): Make a global variable
952 * IPython/ultraTB.py (ExceptionColors): Make a global variable
950 out of the color scheme table used for coloring exception
953 out of the color scheme table used for coloring exception
951 tracebacks. This allows user code to add new schemes at runtime.
954 tracebacks. This allows user code to add new schemes at runtime.
952 This is a minimally modified version of the patch at
955 This is a minimally modified version of the patch at
953 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
956 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
954 for the contribution.
957 for the contribution.
955
958
956 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
959 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
957 slightly modified version of the patch in
960 slightly modified version of the patch in
958 http://www.scipy.net/roundup/ipython/issue34, which also allows me
961 http://www.scipy.net/roundup/ipython/issue34, which also allows me
959 to remove the previous try/except solution (which was costlier).
962 to remove the previous try/except solution (which was costlier).
960 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
963 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
961
964
962 2005-06-08 Fernando Perez <fperez@colorado.edu>
965 2005-06-08 Fernando Perez <fperez@colorado.edu>
963
966
964 * IPython/iplib.py (write/write_err): Add methods to abstract all
967 * IPython/iplib.py (write/write_err): Add methods to abstract all
965 I/O a bit more.
968 I/O a bit more.
966
969
967 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
970 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
968 warning, reported by Aric Hagberg, fix by JD Hunter.
971 warning, reported by Aric Hagberg, fix by JD Hunter.
969
972
970 2005-06-02 *** Released version 0.6.15
973 2005-06-02 *** Released version 0.6.15
971
974
972 2005-06-01 Fernando Perez <fperez@colorado.edu>
975 2005-06-01 Fernando Perez <fperez@colorado.edu>
973
976
974 * IPython/iplib.py (MagicCompleter.file_matches): Fix
977 * IPython/iplib.py (MagicCompleter.file_matches): Fix
975 tab-completion of filenames within open-quoted strings. Note that
978 tab-completion of filenames within open-quoted strings. Note that
976 this requires that in ~/.ipython/ipythonrc, users change the
979 this requires that in ~/.ipython/ipythonrc, users change the
977 readline delimiters configuration to read:
980 readline delimiters configuration to read:
978
981
979 readline_remove_delims -/~
982 readline_remove_delims -/~
980
983
981
984
982 2005-05-31 *** Released version 0.6.14
985 2005-05-31 *** Released version 0.6.14
983
986
984 2005-05-29 Fernando Perez <fperez@colorado.edu>
987 2005-05-29 Fernando Perez <fperez@colorado.edu>
985
988
986 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
989 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
987 with files not on the filesystem. Reported by Eliyahu Sandler
990 with files not on the filesystem. Reported by Eliyahu Sandler
988 <eli@gondolin.net>
991 <eli@gondolin.net>
989
992
990 2005-05-22 Fernando Perez <fperez@colorado.edu>
993 2005-05-22 Fernando Perez <fperez@colorado.edu>
991
994
992 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
995 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
993 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
996 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
994
997
995 2005-05-19 Fernando Perez <fperez@colorado.edu>
998 2005-05-19 Fernando Perez <fperez@colorado.edu>
996
999
997 * IPython/iplib.py (safe_execfile): close a file which could be
1000 * IPython/iplib.py (safe_execfile): close a file which could be
998 left open (causing problems in win32, which locks open files).
1001 left open (causing problems in win32, which locks open files).
999 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1002 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1000
1003
1001 2005-05-18 Fernando Perez <fperez@colorado.edu>
1004 2005-05-18 Fernando Perez <fperez@colorado.edu>
1002
1005
1003 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1006 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1004 keyword arguments correctly to safe_execfile().
1007 keyword arguments correctly to safe_execfile().
1005
1008
1006 2005-05-13 Fernando Perez <fperez@colorado.edu>
1009 2005-05-13 Fernando Perez <fperez@colorado.edu>
1007
1010
1008 * ipython.1: Added info about Qt to manpage, and threads warning
1011 * ipython.1: Added info about Qt to manpage, and threads warning
1009 to usage page (invoked with --help).
1012 to usage page (invoked with --help).
1010
1013
1011 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1014 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1012 new matcher (it goes at the end of the priority list) to do
1015 new matcher (it goes at the end of the priority list) to do
1013 tab-completion on named function arguments. Submitted by George
1016 tab-completion on named function arguments. Submitted by George
1014 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1017 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1015 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1018 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1016 for more details.
1019 for more details.
1017
1020
1018 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1021 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1019 SystemExit exceptions in the script being run. Thanks to a report
1022 SystemExit exceptions in the script being run. Thanks to a report
1020 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1023 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1021 producing very annoying behavior when running unit tests.
1024 producing very annoying behavior when running unit tests.
1022
1025
1023 2005-05-12 Fernando Perez <fperez@colorado.edu>
1026 2005-05-12 Fernando Perez <fperez@colorado.edu>
1024
1027
1025 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1028 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1026 which I'd broken (again) due to a changed regexp. In the process,
1029 which I'd broken (again) due to a changed regexp. In the process,
1027 added ';' as an escape to auto-quote the whole line without
1030 added ';' as an escape to auto-quote the whole line without
1028 splitting its arguments. Thanks to a report by Jerry McRae
1031 splitting its arguments. Thanks to a report by Jerry McRae
1029 <qrs0xyc02-AT-sneakemail.com>.
1032 <qrs0xyc02-AT-sneakemail.com>.
1030
1033
1031 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1034 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1032 possible crashes caused by a TokenError. Reported by Ed Schofield
1035 possible crashes caused by a TokenError. Reported by Ed Schofield
1033 <schofield-AT-ftw.at>.
1036 <schofield-AT-ftw.at>.
1034
1037
1035 2005-05-06 Fernando Perez <fperez@colorado.edu>
1038 2005-05-06 Fernando Perez <fperez@colorado.edu>
1036
1039
1037 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1040 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1038
1041
1039 2005-04-29 Fernando Perez <fperez@colorado.edu>
1042 2005-04-29 Fernando Perez <fperez@colorado.edu>
1040
1043
1041 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1044 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1042 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1045 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1043 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1046 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1044 which provides support for Qt interactive usage (similar to the
1047 which provides support for Qt interactive usage (similar to the
1045 existing one for WX and GTK). This had been often requested.
1048 existing one for WX and GTK). This had been often requested.
1046
1049
1047 2005-04-14 *** Released version 0.6.13
1050 2005-04-14 *** Released version 0.6.13
1048
1051
1049 2005-04-08 Fernando Perez <fperez@colorado.edu>
1052 2005-04-08 Fernando Perez <fperez@colorado.edu>
1050
1053
1051 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1054 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1052 from _ofind, which gets called on almost every input line. Now,
1055 from _ofind, which gets called on almost every input line. Now,
1053 we only try to get docstrings if they are actually going to be
1056 we only try to get docstrings if they are actually going to be
1054 used (the overhead of fetching unnecessary docstrings can be
1057 used (the overhead of fetching unnecessary docstrings can be
1055 noticeable for certain objects, such as Pyro proxies).
1058 noticeable for certain objects, such as Pyro proxies).
1056
1059
1057 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1060 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1058 for completers. For some reason I had been passing them the state
1061 for completers. For some reason I had been passing them the state
1059 variable, which completers never actually need, and was in
1062 variable, which completers never actually need, and was in
1060 conflict with the rlcompleter API. Custom completers ONLY need to
1063 conflict with the rlcompleter API. Custom completers ONLY need to
1061 take the text parameter.
1064 take the text parameter.
1062
1065
1063 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1066 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1064 work correctly in pysh. I've also moved all the logic which used
1067 work correctly in pysh. I've also moved all the logic which used
1065 to be in pysh.py here, which will prevent problems with future
1068 to be in pysh.py here, which will prevent problems with future
1066 upgrades. However, this time I must warn users to update their
1069 upgrades. However, this time I must warn users to update their
1067 pysh profile to include the line
1070 pysh profile to include the line
1068
1071
1069 import_all IPython.Extensions.InterpreterExec
1072 import_all IPython.Extensions.InterpreterExec
1070
1073
1071 because otherwise things won't work for them. They MUST also
1074 because otherwise things won't work for them. They MUST also
1072 delete pysh.py and the line
1075 delete pysh.py and the line
1073
1076
1074 execfile pysh.py
1077 execfile pysh.py
1075
1078
1076 from their ipythonrc-pysh.
1079 from their ipythonrc-pysh.
1077
1080
1078 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1081 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1079 robust in the face of objects whose dir() returns non-strings
1082 robust in the face of objects whose dir() returns non-strings
1080 (which it shouldn't, but some broken libs like ITK do). Thanks to
1083 (which it shouldn't, but some broken libs like ITK do). Thanks to
1081 a patch by John Hunter (implemented differently, though). Also
1084 a patch by John Hunter (implemented differently, though). Also
1082 minor improvements by using .extend instead of + on lists.
1085 minor improvements by using .extend instead of + on lists.
1083
1086
1084 * pysh.py:
1087 * pysh.py:
1085
1088
1086 2005-04-06 Fernando Perez <fperez@colorado.edu>
1089 2005-04-06 Fernando Perez <fperez@colorado.edu>
1087
1090
1088 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1091 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1089 by default, so that all users benefit from it. Those who don't
1092 by default, so that all users benefit from it. Those who don't
1090 want it can still turn it off.
1093 want it can still turn it off.
1091
1094
1092 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1095 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1093 config file, I'd forgotten about this, so users were getting it
1096 config file, I'd forgotten about this, so users were getting it
1094 off by default.
1097 off by default.
1095
1098
1096 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1099 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1097 consistency. Now magics can be called in multiline statements,
1100 consistency. Now magics can be called in multiline statements,
1098 and python variables can be expanded in magic calls via $var.
1101 and python variables can be expanded in magic calls via $var.
1099 This makes the magic system behave just like aliases or !system
1102 This makes the magic system behave just like aliases or !system
1100 calls.
1103 calls.
1101
1104
1102 2005-03-28 Fernando Perez <fperez@colorado.edu>
1105 2005-03-28 Fernando Perez <fperez@colorado.edu>
1103
1106
1104 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1107 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1105 expensive string additions for building command. Add support for
1108 expensive string additions for building command. Add support for
1106 trailing ';' when autocall is used.
1109 trailing ';' when autocall is used.
1107
1110
1108 2005-03-26 Fernando Perez <fperez@colorado.edu>
1111 2005-03-26 Fernando Perez <fperez@colorado.edu>
1109
1112
1110 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1113 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1111 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1114 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1112 ipython.el robust against prompts with any number of spaces
1115 ipython.el robust against prompts with any number of spaces
1113 (including 0) after the ':' character.
1116 (including 0) after the ':' character.
1114
1117
1115 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1118 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1116 continuation prompt, which misled users to think the line was
1119 continuation prompt, which misled users to think the line was
1117 already indented. Closes debian Bug#300847, reported to me by
1120 already indented. Closes debian Bug#300847, reported to me by
1118 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1121 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1119
1122
1120 2005-03-23 Fernando Perez <fperez@colorado.edu>
1123 2005-03-23 Fernando Perez <fperez@colorado.edu>
1121
1124
1122 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1125 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1123 properly aligned if they have embedded newlines.
1126 properly aligned if they have embedded newlines.
1124
1127
1125 * IPython/iplib.py (runlines): Add a public method to expose
1128 * IPython/iplib.py (runlines): Add a public method to expose
1126 IPython's code execution machinery, so that users can run strings
1129 IPython's code execution machinery, so that users can run strings
1127 as if they had been typed at the prompt interactively.
1130 as if they had been typed at the prompt interactively.
1128 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1131 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1129 methods which can call the system shell, but with python variable
1132 methods which can call the system shell, but with python variable
1130 expansion. The three such methods are: __IPYTHON__.system,
1133 expansion. The three such methods are: __IPYTHON__.system,
1131 .getoutput and .getoutputerror. These need to be documented in a
1134 .getoutput and .getoutputerror. These need to be documented in a
1132 'public API' section (to be written) of the manual.
1135 'public API' section (to be written) of the manual.
1133
1136
1134 2005-03-20 Fernando Perez <fperez@colorado.edu>
1137 2005-03-20 Fernando Perez <fperez@colorado.edu>
1135
1138
1136 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1139 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1137 for custom exception handling. This is quite powerful, and it
1140 for custom exception handling. This is quite powerful, and it
1138 allows for user-installable exception handlers which can trap
1141 allows for user-installable exception handlers which can trap
1139 custom exceptions at runtime and treat them separately from
1142 custom exceptions at runtime and treat them separately from
1140 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1143 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1141 Mantegazza <mantegazza-AT-ill.fr>.
1144 Mantegazza <mantegazza-AT-ill.fr>.
1142 (InteractiveShell.set_custom_completer): public API function to
1145 (InteractiveShell.set_custom_completer): public API function to
1143 add new completers at runtime.
1146 add new completers at runtime.
1144
1147
1145 2005-03-19 Fernando Perez <fperez@colorado.edu>
1148 2005-03-19 Fernando Perez <fperez@colorado.edu>
1146
1149
1147 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1150 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1148 allow objects which provide their docstrings via non-standard
1151 allow objects which provide their docstrings via non-standard
1149 mechanisms (like Pyro proxies) to still be inspected by ipython's
1152 mechanisms (like Pyro proxies) to still be inspected by ipython's
1150 ? system.
1153 ? system.
1151
1154
1152 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1155 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1153 automatic capture system. I tried quite hard to make it work
1156 automatic capture system. I tried quite hard to make it work
1154 reliably, and simply failed. I tried many combinations with the
1157 reliably, and simply failed. I tried many combinations with the
1155 subprocess module, but eventually nothing worked in all needed
1158 subprocess module, but eventually nothing worked in all needed
1156 cases (not blocking stdin for the child, duplicating stdout
1159 cases (not blocking stdin for the child, duplicating stdout
1157 without blocking, etc). The new %sc/%sx still do capture to these
1160 without blocking, etc). The new %sc/%sx still do capture to these
1158 magical list/string objects which make shell use much more
1161 magical list/string objects which make shell use much more
1159 conveninent, so not all is lost.
1162 conveninent, so not all is lost.
1160
1163
1161 XXX - FIX MANUAL for the change above!
1164 XXX - FIX MANUAL for the change above!
1162
1165
1163 (runsource): I copied code.py's runsource() into ipython to modify
1166 (runsource): I copied code.py's runsource() into ipython to modify
1164 it a bit. Now the code object and source to be executed are
1167 it a bit. Now the code object and source to be executed are
1165 stored in ipython. This makes this info accessible to third-party
1168 stored in ipython. This makes this info accessible to third-party
1166 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1169 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1167 Mantegazza <mantegazza-AT-ill.fr>.
1170 Mantegazza <mantegazza-AT-ill.fr>.
1168
1171
1169 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1172 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1170 history-search via readline (like C-p/C-n). I'd wanted this for a
1173 history-search via readline (like C-p/C-n). I'd wanted this for a
1171 long time, but only recently found out how to do it. For users
1174 long time, but only recently found out how to do it. For users
1172 who already have their ipythonrc files made and want this, just
1175 who already have their ipythonrc files made and want this, just
1173 add:
1176 add:
1174
1177
1175 readline_parse_and_bind "\e[A": history-search-backward
1178 readline_parse_and_bind "\e[A": history-search-backward
1176 readline_parse_and_bind "\e[B": history-search-forward
1179 readline_parse_and_bind "\e[B": history-search-forward
1177
1180
1178 2005-03-18 Fernando Perez <fperez@colorado.edu>
1181 2005-03-18 Fernando Perez <fperez@colorado.edu>
1179
1182
1180 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1183 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1181 LSString and SList classes which allow transparent conversions
1184 LSString and SList classes which allow transparent conversions
1182 between list mode and whitespace-separated string.
1185 between list mode and whitespace-separated string.
1183 (magic_r): Fix recursion problem in %r.
1186 (magic_r): Fix recursion problem in %r.
1184
1187
1185 * IPython/genutils.py (LSString): New class to be used for
1188 * IPython/genutils.py (LSString): New class to be used for
1186 automatic storage of the results of all alias/system calls in _o
1189 automatic storage of the results of all alias/system calls in _o
1187 and _e (stdout/err). These provide a .l/.list attribute which
1190 and _e (stdout/err). These provide a .l/.list attribute which
1188 does automatic splitting on newlines. This means that for most
1191 does automatic splitting on newlines. This means that for most
1189 uses, you'll never need to do capturing of output with %sc/%sx
1192 uses, you'll never need to do capturing of output with %sc/%sx
1190 anymore, since ipython keeps this always done for you. Note that
1193 anymore, since ipython keeps this always done for you. Note that
1191 only the LAST results are stored, the _o/e variables are
1194 only the LAST results are stored, the _o/e variables are
1192 overwritten on each call. If you need to save their contents
1195 overwritten on each call. If you need to save their contents
1193 further, simply bind them to any other name.
1196 further, simply bind them to any other name.
1194
1197
1195 2005-03-17 Fernando Perez <fperez@colorado.edu>
1198 2005-03-17 Fernando Perez <fperez@colorado.edu>
1196
1199
1197 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1200 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1198 prompt namespace handling.
1201 prompt namespace handling.
1199
1202
1200 2005-03-16 Fernando Perez <fperez@colorado.edu>
1203 2005-03-16 Fernando Perez <fperez@colorado.edu>
1201
1204
1202 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1205 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1203 classic prompts to be '>>> ' (final space was missing, and it
1206 classic prompts to be '>>> ' (final space was missing, and it
1204 trips the emacs python mode).
1207 trips the emacs python mode).
1205 (BasePrompt.__str__): Added safe support for dynamic prompt
1208 (BasePrompt.__str__): Added safe support for dynamic prompt
1206 strings. Now you can set your prompt string to be '$x', and the
1209 strings. Now you can set your prompt string to be '$x', and the
1207 value of x will be printed from your interactive namespace. The
1210 value of x will be printed from your interactive namespace. The
1208 interpolation syntax includes the full Itpl support, so
1211 interpolation syntax includes the full Itpl support, so
1209 ${foo()+x+bar()} is a valid prompt string now, and the function
1212 ${foo()+x+bar()} is a valid prompt string now, and the function
1210 calls will be made at runtime.
1213 calls will be made at runtime.
1211
1214
1212 2005-03-15 Fernando Perez <fperez@colorado.edu>
1215 2005-03-15 Fernando Perez <fperez@colorado.edu>
1213
1216
1214 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1217 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1215 avoid name clashes in pylab. %hist still works, it just forwards
1218 avoid name clashes in pylab. %hist still works, it just forwards
1216 the call to %history.
1219 the call to %history.
1217
1220
1218 2005-03-02 *** Released version 0.6.12
1221 2005-03-02 *** Released version 0.6.12
1219
1222
1220 2005-03-02 Fernando Perez <fperez@colorado.edu>
1223 2005-03-02 Fernando Perez <fperez@colorado.edu>
1221
1224
1222 * IPython/iplib.py (handle_magic): log magic calls properly as
1225 * IPython/iplib.py (handle_magic): log magic calls properly as
1223 ipmagic() function calls.
1226 ipmagic() function calls.
1224
1227
1225 * IPython/Magic.py (magic_time): Improved %time to support
1228 * IPython/Magic.py (magic_time): Improved %time to support
1226 statements and provide wall-clock as well as CPU time.
1229 statements and provide wall-clock as well as CPU time.
1227
1230
1228 2005-02-27 Fernando Perez <fperez@colorado.edu>
1231 2005-02-27 Fernando Perez <fperez@colorado.edu>
1229
1232
1230 * IPython/hooks.py: New hooks module, to expose user-modifiable
1233 * IPython/hooks.py: New hooks module, to expose user-modifiable
1231 IPython functionality in a clean manner. For now only the editor
1234 IPython functionality in a clean manner. For now only the editor
1232 hook is actually written, and other thigns which I intend to turn
1235 hook is actually written, and other thigns which I intend to turn
1233 into proper hooks aren't yet there. The display and prefilter
1236 into proper hooks aren't yet there. The display and prefilter
1234 stuff, for example, should be hooks. But at least now the
1237 stuff, for example, should be hooks. But at least now the
1235 framework is in place, and the rest can be moved here with more
1238 framework is in place, and the rest can be moved here with more
1236 time later. IPython had had a .hooks variable for a long time for
1239 time later. IPython had had a .hooks variable for a long time for
1237 this purpose, but I'd never actually used it for anything.
1240 this purpose, but I'd never actually used it for anything.
1238
1241
1239 2005-02-26 Fernando Perez <fperez@colorado.edu>
1242 2005-02-26 Fernando Perez <fperez@colorado.edu>
1240
1243
1241 * IPython/ipmaker.py (make_IPython): make the default ipython
1244 * IPython/ipmaker.py (make_IPython): make the default ipython
1242 directory be called _ipython under win32, to follow more the
1245 directory be called _ipython under win32, to follow more the
1243 naming peculiarities of that platform (where buggy software like
1246 naming peculiarities of that platform (where buggy software like
1244 Visual Sourcesafe breaks with .named directories). Reported by
1247 Visual Sourcesafe breaks with .named directories). Reported by
1245 Ville Vainio.
1248 Ville Vainio.
1246
1249
1247 2005-02-23 Fernando Perez <fperez@colorado.edu>
1250 2005-02-23 Fernando Perez <fperez@colorado.edu>
1248
1251
1249 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1252 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1250 auto_aliases for win32 which were causing problems. Users can
1253 auto_aliases for win32 which were causing problems. Users can
1251 define the ones they personally like.
1254 define the ones they personally like.
1252
1255
1253 2005-02-21 Fernando Perez <fperez@colorado.edu>
1256 2005-02-21 Fernando Perez <fperez@colorado.edu>
1254
1257
1255 * IPython/Magic.py (magic_time): new magic to time execution of
1258 * IPython/Magic.py (magic_time): new magic to time execution of
1256 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1259 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1257
1260
1258 2005-02-19 Fernando Perez <fperez@colorado.edu>
1261 2005-02-19 Fernando Perez <fperez@colorado.edu>
1259
1262
1260 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1263 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1261 into keys (for prompts, for example).
1264 into keys (for prompts, for example).
1262
1265
1263 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1266 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1264 prompts in case users want them. This introduces a small behavior
1267 prompts in case users want them. This introduces a small behavior
1265 change: ipython does not automatically add a space to all prompts
1268 change: ipython does not automatically add a space to all prompts
1266 anymore. To get the old prompts with a space, users should add it
1269 anymore. To get the old prompts with a space, users should add it
1267 manually to their ipythonrc file, so for example prompt_in1 should
1270 manually to their ipythonrc file, so for example prompt_in1 should
1268 now read 'In [\#]: ' instead of 'In [\#]:'.
1271 now read 'In [\#]: ' instead of 'In [\#]:'.
1269 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1272 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1270 file) to control left-padding of secondary prompts.
1273 file) to control left-padding of secondary prompts.
1271
1274
1272 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1275 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1273 the profiler can't be imported. Fix for Debian, which removed
1276 the profiler can't be imported. Fix for Debian, which removed
1274 profile.py because of License issues. I applied a slightly
1277 profile.py because of License issues. I applied a slightly
1275 modified version of the original Debian patch at
1278 modified version of the original Debian patch at
1276 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1279 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1277
1280
1278 2005-02-17 Fernando Perez <fperez@colorado.edu>
1281 2005-02-17 Fernando Perez <fperez@colorado.edu>
1279
1282
1280 * IPython/genutils.py (native_line_ends): Fix bug which would
1283 * IPython/genutils.py (native_line_ends): Fix bug which would
1281 cause improper line-ends under win32 b/c I was not opening files
1284 cause improper line-ends under win32 b/c I was not opening files
1282 in binary mode. Bug report and fix thanks to Ville.
1285 in binary mode. Bug report and fix thanks to Ville.
1283
1286
1284 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1287 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1285 trying to catch spurious foo[1] autocalls. My fix actually broke
1288 trying to catch spurious foo[1] autocalls. My fix actually broke
1286 ',/' autoquote/call with explicit escape (bad regexp).
1289 ',/' autoquote/call with explicit escape (bad regexp).
1287
1290
1288 2005-02-15 *** Released version 0.6.11
1291 2005-02-15 *** Released version 0.6.11
1289
1292
1290 2005-02-14 Fernando Perez <fperez@colorado.edu>
1293 2005-02-14 Fernando Perez <fperez@colorado.edu>
1291
1294
1292 * IPython/background_jobs.py: New background job management
1295 * IPython/background_jobs.py: New background job management
1293 subsystem. This is implemented via a new set of classes, and
1296 subsystem. This is implemented via a new set of classes, and
1294 IPython now provides a builtin 'jobs' object for background job
1297 IPython now provides a builtin 'jobs' object for background job
1295 execution. A convenience %bg magic serves as a lightweight
1298 execution. A convenience %bg magic serves as a lightweight
1296 frontend for starting the more common type of calls. This was
1299 frontend for starting the more common type of calls. This was
1297 inspired by discussions with B. Granger and the BackgroundCommand
1300 inspired by discussions with B. Granger and the BackgroundCommand
1298 class described in the book Python Scripting for Computational
1301 class described in the book Python Scripting for Computational
1299 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1302 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1300 (although ultimately no code from this text was used, as IPython's
1303 (although ultimately no code from this text was used, as IPython's
1301 system is a separate implementation).
1304 system is a separate implementation).
1302
1305
1303 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1306 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1304 to control the completion of single/double underscore names
1307 to control the completion of single/double underscore names
1305 separately. As documented in the example ipytonrc file, the
1308 separately. As documented in the example ipytonrc file, the
1306 readline_omit__names variable can now be set to 2, to omit even
1309 readline_omit__names variable can now be set to 2, to omit even
1307 single underscore names. Thanks to a patch by Brian Wong
1310 single underscore names. Thanks to a patch by Brian Wong
1308 <BrianWong-AT-AirgoNetworks.Com>.
1311 <BrianWong-AT-AirgoNetworks.Com>.
1309 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1312 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1310 be autocalled as foo([1]) if foo were callable. A problem for
1313 be autocalled as foo([1]) if foo were callable. A problem for
1311 things which are both callable and implement __getitem__.
1314 things which are both callable and implement __getitem__.
1312 (init_readline): Fix autoindentation for win32. Thanks to a patch
1315 (init_readline): Fix autoindentation for win32. Thanks to a patch
1313 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1316 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1314
1317
1315 2005-02-12 Fernando Perez <fperez@colorado.edu>
1318 2005-02-12 Fernando Perez <fperez@colorado.edu>
1316
1319
1317 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1320 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1318 which I had written long ago to sort out user error messages which
1321 which I had written long ago to sort out user error messages which
1319 may occur during startup. This seemed like a good idea initially,
1322 may occur during startup. This seemed like a good idea initially,
1320 but it has proven a disaster in retrospect. I don't want to
1323 but it has proven a disaster in retrospect. I don't want to
1321 change much code for now, so my fix is to set the internal 'debug'
1324 change much code for now, so my fix is to set the internal 'debug'
1322 flag to true everywhere, whose only job was precisely to control
1325 flag to true everywhere, whose only job was precisely to control
1323 this subsystem. This closes issue 28 (as well as avoiding all
1326 this subsystem. This closes issue 28 (as well as avoiding all
1324 sorts of strange hangups which occur from time to time).
1327 sorts of strange hangups which occur from time to time).
1325
1328
1326 2005-02-07 Fernando Perez <fperez@colorado.edu>
1329 2005-02-07 Fernando Perez <fperez@colorado.edu>
1327
1330
1328 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1331 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1329 previous call produced a syntax error.
1332 previous call produced a syntax error.
1330
1333
1331 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1334 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1332 classes without constructor.
1335 classes without constructor.
1333
1336
1334 2005-02-06 Fernando Perez <fperez@colorado.edu>
1337 2005-02-06 Fernando Perez <fperez@colorado.edu>
1335
1338
1336 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1339 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1337 completions with the results of each matcher, so we return results
1340 completions with the results of each matcher, so we return results
1338 to the user from all namespaces. This breaks with ipython
1341 to the user from all namespaces. This breaks with ipython
1339 tradition, but I think it's a nicer behavior. Now you get all
1342 tradition, but I think it's a nicer behavior. Now you get all
1340 possible completions listed, from all possible namespaces (python,
1343 possible completions listed, from all possible namespaces (python,
1341 filesystem, magics...) After a request by John Hunter
1344 filesystem, magics...) After a request by John Hunter
1342 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1345 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1343
1346
1344 2005-02-05 Fernando Perez <fperez@colorado.edu>
1347 2005-02-05 Fernando Perez <fperez@colorado.edu>
1345
1348
1346 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1349 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1347 the call had quote characters in it (the quotes were stripped).
1350 the call had quote characters in it (the quotes were stripped).
1348
1351
1349 2005-01-31 Fernando Perez <fperez@colorado.edu>
1352 2005-01-31 Fernando Perez <fperez@colorado.edu>
1350
1353
1351 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1354 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1352 Itpl.itpl() to make the code more robust against psyco
1355 Itpl.itpl() to make the code more robust against psyco
1353 optimizations.
1356 optimizations.
1354
1357
1355 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1358 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1356 of causing an exception. Quicker, cleaner.
1359 of causing an exception. Quicker, cleaner.
1357
1360
1358 2005-01-28 Fernando Perez <fperez@colorado.edu>
1361 2005-01-28 Fernando Perez <fperez@colorado.edu>
1359
1362
1360 * scripts/ipython_win_post_install.py (install): hardcode
1363 * scripts/ipython_win_post_install.py (install): hardcode
1361 sys.prefix+'python.exe' as the executable path. It turns out that
1364 sys.prefix+'python.exe' as the executable path. It turns out that
1362 during the post-installation run, sys.executable resolves to the
1365 during the post-installation run, sys.executable resolves to the
1363 name of the binary installer! I should report this as a distutils
1366 name of the binary installer! I should report this as a distutils
1364 bug, I think. I updated the .10 release with this tiny fix, to
1367 bug, I think. I updated the .10 release with this tiny fix, to
1365 avoid annoying the lists further.
1368 avoid annoying the lists further.
1366
1369
1367 2005-01-27 *** Released version 0.6.10
1370 2005-01-27 *** Released version 0.6.10
1368
1371
1369 2005-01-27 Fernando Perez <fperez@colorado.edu>
1372 2005-01-27 Fernando Perez <fperez@colorado.edu>
1370
1373
1371 * IPython/numutils.py (norm): Added 'inf' as optional name for
1374 * IPython/numutils.py (norm): Added 'inf' as optional name for
1372 L-infinity norm, included references to mathworld.com for vector
1375 L-infinity norm, included references to mathworld.com for vector
1373 norm definitions.
1376 norm definitions.
1374 (amin/amax): added amin/amax for array min/max. Similar to what
1377 (amin/amax): added amin/amax for array min/max. Similar to what
1375 pylab ships with after the recent reorganization of names.
1378 pylab ships with after the recent reorganization of names.
1376 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1379 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1377
1380
1378 * ipython.el: committed Alex's recent fixes and improvements.
1381 * ipython.el: committed Alex's recent fixes and improvements.
1379 Tested with python-mode from CVS, and it looks excellent. Since
1382 Tested with python-mode from CVS, and it looks excellent. Since
1380 python-mode hasn't released anything in a while, I'm temporarily
1383 python-mode hasn't released anything in a while, I'm temporarily
1381 putting a copy of today's CVS (v 4.70) of python-mode in:
1384 putting a copy of today's CVS (v 4.70) of python-mode in:
1382 http://ipython.scipy.org/tmp/python-mode.el
1385 http://ipython.scipy.org/tmp/python-mode.el
1383
1386
1384 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1387 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1385 sys.executable for the executable name, instead of assuming it's
1388 sys.executable for the executable name, instead of assuming it's
1386 called 'python.exe' (the post-installer would have produced broken
1389 called 'python.exe' (the post-installer would have produced broken
1387 setups on systems with a differently named python binary).
1390 setups on systems with a differently named python binary).
1388
1391
1389 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1392 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1390 references to os.linesep, to make the code more
1393 references to os.linesep, to make the code more
1391 platform-independent. This is also part of the win32 coloring
1394 platform-independent. This is also part of the win32 coloring
1392 fixes.
1395 fixes.
1393
1396
1394 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1397 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1395 lines, which actually cause coloring bugs because the length of
1398 lines, which actually cause coloring bugs because the length of
1396 the line is very difficult to correctly compute with embedded
1399 the line is very difficult to correctly compute with embedded
1397 escapes. This was the source of all the coloring problems under
1400 escapes. This was the source of all the coloring problems under
1398 Win32. I think that _finally_, Win32 users have a properly
1401 Win32. I think that _finally_, Win32 users have a properly
1399 working ipython in all respects. This would never have happened
1402 working ipython in all respects. This would never have happened
1400 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1403 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1401
1404
1402 2005-01-26 *** Released version 0.6.9
1405 2005-01-26 *** Released version 0.6.9
1403
1406
1404 2005-01-25 Fernando Perez <fperez@colorado.edu>
1407 2005-01-25 Fernando Perez <fperez@colorado.edu>
1405
1408
1406 * setup.py: finally, we have a true Windows installer, thanks to
1409 * setup.py: finally, we have a true Windows installer, thanks to
1407 the excellent work of Viktor Ransmayr
1410 the excellent work of Viktor Ransmayr
1408 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1411 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1409 Windows users. The setup routine is quite a bit cleaner thanks to
1412 Windows users. The setup routine is quite a bit cleaner thanks to
1410 this, and the post-install script uses the proper functions to
1413 this, and the post-install script uses the proper functions to
1411 allow a clean de-installation using the standard Windows Control
1414 allow a clean de-installation using the standard Windows Control
1412 Panel.
1415 Panel.
1413
1416
1414 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1417 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1415 environment variable under all OSes (including win32) if
1418 environment variable under all OSes (including win32) if
1416 available. This will give consistency to win32 users who have set
1419 available. This will give consistency to win32 users who have set
1417 this variable for any reason. If os.environ['HOME'] fails, the
1420 this variable for any reason. If os.environ['HOME'] fails, the
1418 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1421 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1419
1422
1420 2005-01-24 Fernando Perez <fperez@colorado.edu>
1423 2005-01-24 Fernando Perez <fperez@colorado.edu>
1421
1424
1422 * IPython/numutils.py (empty_like): add empty_like(), similar to
1425 * IPython/numutils.py (empty_like): add empty_like(), similar to
1423 zeros_like() but taking advantage of the new empty() Numeric routine.
1426 zeros_like() but taking advantage of the new empty() Numeric routine.
1424
1427
1425 2005-01-23 *** Released version 0.6.8
1428 2005-01-23 *** Released version 0.6.8
1426
1429
1427 2005-01-22 Fernando Perez <fperez@colorado.edu>
1430 2005-01-22 Fernando Perez <fperez@colorado.edu>
1428
1431
1429 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1432 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1430 automatic show() calls. After discussing things with JDH, it
1433 automatic show() calls. After discussing things with JDH, it
1431 turns out there are too many corner cases where this can go wrong.
1434 turns out there are too many corner cases where this can go wrong.
1432 It's best not to try to be 'too smart', and simply have ipython
1435 It's best not to try to be 'too smart', and simply have ipython
1433 reproduce as much as possible the default behavior of a normal
1436 reproduce as much as possible the default behavior of a normal
1434 python shell.
1437 python shell.
1435
1438
1436 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1439 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1437 line-splitting regexp and _prefilter() to avoid calling getattr()
1440 line-splitting regexp and _prefilter() to avoid calling getattr()
1438 on assignments. This closes
1441 on assignments. This closes
1439 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1442 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1440 readline uses getattr(), so a simple <TAB> keypress is still
1443 readline uses getattr(), so a simple <TAB> keypress is still
1441 enough to trigger getattr() calls on an object.
1444 enough to trigger getattr() calls on an object.
1442
1445
1443 2005-01-21 Fernando Perez <fperez@colorado.edu>
1446 2005-01-21 Fernando Perez <fperez@colorado.edu>
1444
1447
1445 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1448 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1446 docstring under pylab so it doesn't mask the original.
1449 docstring under pylab so it doesn't mask the original.
1447
1450
1448 2005-01-21 *** Released version 0.6.7
1451 2005-01-21 *** Released version 0.6.7
1449
1452
1450 2005-01-21 Fernando Perez <fperez@colorado.edu>
1453 2005-01-21 Fernando Perez <fperez@colorado.edu>
1451
1454
1452 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1455 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1453 signal handling for win32 users in multithreaded mode.
1456 signal handling for win32 users in multithreaded mode.
1454
1457
1455 2005-01-17 Fernando Perez <fperez@colorado.edu>
1458 2005-01-17 Fernando Perez <fperez@colorado.edu>
1456
1459
1457 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1460 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1458 instances with no __init__. After a crash report by Norbert Nemec
1461 instances with no __init__. After a crash report by Norbert Nemec
1459 <Norbert-AT-nemec-online.de>.
1462 <Norbert-AT-nemec-online.de>.
1460
1463
1461 2005-01-14 Fernando Perez <fperez@colorado.edu>
1464 2005-01-14 Fernando Perez <fperez@colorado.edu>
1462
1465
1463 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1466 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1464 names for verbose exceptions, when multiple dotted names and the
1467 names for verbose exceptions, when multiple dotted names and the
1465 'parent' object were present on the same line.
1468 'parent' object were present on the same line.
1466
1469
1467 2005-01-11 Fernando Perez <fperez@colorado.edu>
1470 2005-01-11 Fernando Perez <fperez@colorado.edu>
1468
1471
1469 * IPython/genutils.py (flag_calls): new utility to trap and flag
1472 * IPython/genutils.py (flag_calls): new utility to trap and flag
1470 calls in functions. I need it to clean up matplotlib support.
1473 calls in functions. I need it to clean up matplotlib support.
1471 Also removed some deprecated code in genutils.
1474 Also removed some deprecated code in genutils.
1472
1475
1473 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1476 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1474 that matplotlib scripts called with %run, which don't call show()
1477 that matplotlib scripts called with %run, which don't call show()
1475 themselves, still have their plotting windows open.
1478 themselves, still have their plotting windows open.
1476
1479
1477 2005-01-05 Fernando Perez <fperez@colorado.edu>
1480 2005-01-05 Fernando Perez <fperez@colorado.edu>
1478
1481
1479 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1482 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1480 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1483 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1481
1484
1482 2004-12-19 Fernando Perez <fperez@colorado.edu>
1485 2004-12-19 Fernando Perez <fperez@colorado.edu>
1483
1486
1484 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1487 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1485 parent_runcode, which was an eyesore. The same result can be
1488 parent_runcode, which was an eyesore. The same result can be
1486 obtained with Python's regular superclass mechanisms.
1489 obtained with Python's regular superclass mechanisms.
1487
1490
1488 2004-12-17 Fernando Perez <fperez@colorado.edu>
1491 2004-12-17 Fernando Perez <fperez@colorado.edu>
1489
1492
1490 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1493 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1491 reported by Prabhu.
1494 reported by Prabhu.
1492 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1495 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1493 sys.stderr) instead of explicitly calling sys.stderr. This helps
1496 sys.stderr) instead of explicitly calling sys.stderr. This helps
1494 maintain our I/O abstractions clean, for future GUI embeddings.
1497 maintain our I/O abstractions clean, for future GUI embeddings.
1495
1498
1496 * IPython/genutils.py (info): added new utility for sys.stderr
1499 * IPython/genutils.py (info): added new utility for sys.stderr
1497 unified info message handling (thin wrapper around warn()).
1500 unified info message handling (thin wrapper around warn()).
1498
1501
1499 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1502 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1500 composite (dotted) names on verbose exceptions.
1503 composite (dotted) names on verbose exceptions.
1501 (VerboseTB.nullrepr): harden against another kind of errors which
1504 (VerboseTB.nullrepr): harden against another kind of errors which
1502 Python's inspect module can trigger, and which were crashing
1505 Python's inspect module can trigger, and which were crashing
1503 IPython. Thanks to a report by Marco Lombardi
1506 IPython. Thanks to a report by Marco Lombardi
1504 <mlombard-AT-ma010192.hq.eso.org>.
1507 <mlombard-AT-ma010192.hq.eso.org>.
1505
1508
1506 2004-12-13 *** Released version 0.6.6
1509 2004-12-13 *** Released version 0.6.6
1507
1510
1508 2004-12-12 Fernando Perez <fperez@colorado.edu>
1511 2004-12-12 Fernando Perez <fperez@colorado.edu>
1509
1512
1510 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1513 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1511 generated by pygtk upon initialization if it was built without
1514 generated by pygtk upon initialization if it was built without
1512 threads (for matplotlib users). After a crash reported by
1515 threads (for matplotlib users). After a crash reported by
1513 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1516 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1514
1517
1515 * IPython/ipmaker.py (make_IPython): fix small bug in the
1518 * IPython/ipmaker.py (make_IPython): fix small bug in the
1516 import_some parameter for multiple imports.
1519 import_some parameter for multiple imports.
1517
1520
1518 * IPython/iplib.py (ipmagic): simplified the interface of
1521 * IPython/iplib.py (ipmagic): simplified the interface of
1519 ipmagic() to take a single string argument, just as it would be
1522 ipmagic() to take a single string argument, just as it would be
1520 typed at the IPython cmd line.
1523 typed at the IPython cmd line.
1521 (ipalias): Added new ipalias() with an interface identical to
1524 (ipalias): Added new ipalias() with an interface identical to
1522 ipmagic(). This completes exposing a pure python interface to the
1525 ipmagic(). This completes exposing a pure python interface to the
1523 alias and magic system, which can be used in loops or more complex
1526 alias and magic system, which can be used in loops or more complex
1524 code where IPython's automatic line mangling is not active.
1527 code where IPython's automatic line mangling is not active.
1525
1528
1526 * IPython/genutils.py (timing): changed interface of timing to
1529 * IPython/genutils.py (timing): changed interface of timing to
1527 simply run code once, which is the most common case. timings()
1530 simply run code once, which is the most common case. timings()
1528 remains unchanged, for the cases where you want multiple runs.
1531 remains unchanged, for the cases where you want multiple runs.
1529
1532
1530 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1533 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1531 bug where Python2.2 crashes with exec'ing code which does not end
1534 bug where Python2.2 crashes with exec'ing code which does not end
1532 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1535 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1533 before.
1536 before.
1534
1537
1535 2004-12-10 Fernando Perez <fperez@colorado.edu>
1538 2004-12-10 Fernando Perez <fperez@colorado.edu>
1536
1539
1537 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1540 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1538 -t to -T, to accomodate the new -t flag in %run (the %run and
1541 -t to -T, to accomodate the new -t flag in %run (the %run and
1539 %prun options are kind of intermixed, and it's not easy to change
1542 %prun options are kind of intermixed, and it's not easy to change
1540 this with the limitations of python's getopt).
1543 this with the limitations of python's getopt).
1541
1544
1542 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1545 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1543 the execution of scripts. It's not as fine-tuned as timeit.py,
1546 the execution of scripts. It's not as fine-tuned as timeit.py,
1544 but it works from inside ipython (and under 2.2, which lacks
1547 but it works from inside ipython (and under 2.2, which lacks
1545 timeit.py). Optionally a number of runs > 1 can be given for
1548 timeit.py). Optionally a number of runs > 1 can be given for
1546 timing very short-running code.
1549 timing very short-running code.
1547
1550
1548 * IPython/genutils.py (uniq_stable): new routine which returns a
1551 * IPython/genutils.py (uniq_stable): new routine which returns a
1549 list of unique elements in any iterable, but in stable order of
1552 list of unique elements in any iterable, but in stable order of
1550 appearance. I needed this for the ultraTB fixes, and it's a handy
1553 appearance. I needed this for the ultraTB fixes, and it's a handy
1551 utility.
1554 utility.
1552
1555
1553 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1556 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1554 dotted names in Verbose exceptions. This had been broken since
1557 dotted names in Verbose exceptions. This had been broken since
1555 the very start, now x.y will properly be printed in a Verbose
1558 the very start, now x.y will properly be printed in a Verbose
1556 traceback, instead of x being shown and y appearing always as an
1559 traceback, instead of x being shown and y appearing always as an
1557 'undefined global'. Getting this to work was a bit tricky,
1560 'undefined global'. Getting this to work was a bit tricky,
1558 because by default python tokenizers are stateless. Saved by
1561 because by default python tokenizers are stateless. Saved by
1559 python's ability to easily add a bit of state to an arbitrary
1562 python's ability to easily add a bit of state to an arbitrary
1560 function (without needing to build a full-blown callable object).
1563 function (without needing to build a full-blown callable object).
1561
1564
1562 Also big cleanup of this code, which had horrendous runtime
1565 Also big cleanup of this code, which had horrendous runtime
1563 lookups of zillions of attributes for colorization. Moved all
1566 lookups of zillions of attributes for colorization. Moved all
1564 this code into a few templates, which make it cleaner and quicker.
1567 this code into a few templates, which make it cleaner and quicker.
1565
1568
1566 Printout quality was also improved for Verbose exceptions: one
1569 Printout quality was also improved for Verbose exceptions: one
1567 variable per line, and memory addresses are printed (this can be
1570 variable per line, and memory addresses are printed (this can be
1568 quite handy in nasty debugging situations, which is what Verbose
1571 quite handy in nasty debugging situations, which is what Verbose
1569 is for).
1572 is for).
1570
1573
1571 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1574 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1572 the command line as scripts to be loaded by embedded instances.
1575 the command line as scripts to be loaded by embedded instances.
1573 Doing so has the potential for an infinite recursion if there are
1576 Doing so has the potential for an infinite recursion if there are
1574 exceptions thrown in the process. This fixes a strange crash
1577 exceptions thrown in the process. This fixes a strange crash
1575 reported by Philippe MULLER <muller-AT-irit.fr>.
1578 reported by Philippe MULLER <muller-AT-irit.fr>.
1576
1579
1577 2004-12-09 Fernando Perez <fperez@colorado.edu>
1580 2004-12-09 Fernando Perez <fperez@colorado.edu>
1578
1581
1579 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1582 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1580 to reflect new names in matplotlib, which now expose the
1583 to reflect new names in matplotlib, which now expose the
1581 matlab-compatible interface via a pylab module instead of the
1584 matlab-compatible interface via a pylab module instead of the
1582 'matlab' name. The new code is backwards compatible, so users of
1585 'matlab' name. The new code is backwards compatible, so users of
1583 all matplotlib versions are OK. Patch by J. Hunter.
1586 all matplotlib versions are OK. Patch by J. Hunter.
1584
1587
1585 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1588 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1586 of __init__ docstrings for instances (class docstrings are already
1589 of __init__ docstrings for instances (class docstrings are already
1587 automatically printed). Instances with customized docstrings
1590 automatically printed). Instances with customized docstrings
1588 (indep. of the class) are also recognized and all 3 separate
1591 (indep. of the class) are also recognized and all 3 separate
1589 docstrings are printed (instance, class, constructor). After some
1592 docstrings are printed (instance, class, constructor). After some
1590 comments/suggestions by J. Hunter.
1593 comments/suggestions by J. Hunter.
1591
1594
1592 2004-12-05 Fernando Perez <fperez@colorado.edu>
1595 2004-12-05 Fernando Perez <fperez@colorado.edu>
1593
1596
1594 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1597 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1595 warnings when tab-completion fails and triggers an exception.
1598 warnings when tab-completion fails and triggers an exception.
1596
1599
1597 2004-12-03 Fernando Perez <fperez@colorado.edu>
1600 2004-12-03 Fernando Perez <fperez@colorado.edu>
1598
1601
1599 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1602 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1600 be triggered when using 'run -p'. An incorrect option flag was
1603 be triggered when using 'run -p'. An incorrect option flag was
1601 being set ('d' instead of 'D').
1604 being set ('d' instead of 'D').
1602 (manpage): fix missing escaped \- sign.
1605 (manpage): fix missing escaped \- sign.
1603
1606
1604 2004-11-30 *** Released version 0.6.5
1607 2004-11-30 *** Released version 0.6.5
1605
1608
1606 2004-11-30 Fernando Perez <fperez@colorado.edu>
1609 2004-11-30 Fernando Perez <fperez@colorado.edu>
1607
1610
1608 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1611 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1609 setting with -d option.
1612 setting with -d option.
1610
1613
1611 * setup.py (docfiles): Fix problem where the doc glob I was using
1614 * setup.py (docfiles): Fix problem where the doc glob I was using
1612 was COMPLETELY BROKEN. It was giving the right files by pure
1615 was COMPLETELY BROKEN. It was giving the right files by pure
1613 accident, but failed once I tried to include ipython.el. Note:
1616 accident, but failed once I tried to include ipython.el. Note:
1614 glob() does NOT allow you to do exclusion on multiple endings!
1617 glob() does NOT allow you to do exclusion on multiple endings!
1615
1618
1616 2004-11-29 Fernando Perez <fperez@colorado.edu>
1619 2004-11-29 Fernando Perez <fperez@colorado.edu>
1617
1620
1618 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
1621 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
1619 the manpage as the source. Better formatting & consistency.
1622 the manpage as the source. Better formatting & consistency.
1620
1623
1621 * IPython/Magic.py (magic_run): Added new -d option, to run
1624 * IPython/Magic.py (magic_run): Added new -d option, to run
1622 scripts under the control of the python pdb debugger. Note that
1625 scripts under the control of the python pdb debugger. Note that
1623 this required changing the %prun option -d to -D, to avoid a clash
1626 this required changing the %prun option -d to -D, to avoid a clash
1624 (since %run must pass options to %prun, and getopt is too dumb to
1627 (since %run must pass options to %prun, and getopt is too dumb to
1625 handle options with string values with embedded spaces). Thanks
1628 handle options with string values with embedded spaces). Thanks
1626 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
1629 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
1627 (magic_who_ls): added type matching to %who and %whos, so that one
1630 (magic_who_ls): added type matching to %who and %whos, so that one
1628 can filter their output to only include variables of certain
1631 can filter their output to only include variables of certain
1629 types. Another suggestion by Matthew.
1632 types. Another suggestion by Matthew.
1630 (magic_whos): Added memory summaries in kb and Mb for arrays.
1633 (magic_whos): Added memory summaries in kb and Mb for arrays.
1631 (magic_who): Improve formatting (break lines every 9 vars).
1634 (magic_who): Improve formatting (break lines every 9 vars).
1632
1635
1633 2004-11-28 Fernando Perez <fperez@colorado.edu>
1636 2004-11-28 Fernando Perez <fperez@colorado.edu>
1634
1637
1635 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
1638 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
1636 cache when empty lines were present.
1639 cache when empty lines were present.
1637
1640
1638 2004-11-24 Fernando Perez <fperez@colorado.edu>
1641 2004-11-24 Fernando Perez <fperez@colorado.edu>
1639
1642
1640 * IPython/usage.py (__doc__): document the re-activated threading
1643 * IPython/usage.py (__doc__): document the re-activated threading
1641 options for WX and GTK.
1644 options for WX and GTK.
1642
1645
1643 2004-11-23 Fernando Perez <fperez@colorado.edu>
1646 2004-11-23 Fernando Perez <fperez@colorado.edu>
1644
1647
1645 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1648 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1646 the -wthread and -gthread options, along with a new -tk one to try
1649 the -wthread and -gthread options, along with a new -tk one to try
1647 and coordinate Tk threading with wx/gtk. The tk support is very
1650 and coordinate Tk threading with wx/gtk. The tk support is very
1648 platform dependent, since it seems to require Tcl and Tk to be
1651 platform dependent, since it seems to require Tcl and Tk to be
1649 built with threads (Fedora1/2 appears NOT to have it, but in
1652 built with threads (Fedora1/2 appears NOT to have it, but in
1650 Prabhu's Debian boxes it works OK). But even with some Tk
1653 Prabhu's Debian boxes it works OK). But even with some Tk
1651 limitations, this is a great improvement.
1654 limitations, this is a great improvement.
1652
1655
1653 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1656 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1654 info in user prompts. Patch by Prabhu.
1657 info in user prompts. Patch by Prabhu.
1655
1658
1656 2004-11-18 Fernando Perez <fperez@colorado.edu>
1659 2004-11-18 Fernando Perez <fperez@colorado.edu>
1657
1660
1658 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1661 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1659 EOFErrors and bail, to avoid infinite loops if a non-terminating
1662 EOFErrors and bail, to avoid infinite loops if a non-terminating
1660 file is fed into ipython. Patch submitted in issue 19 by user,
1663 file is fed into ipython. Patch submitted in issue 19 by user,
1661 many thanks.
1664 many thanks.
1662
1665
1663 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1666 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1664 autoquote/parens in continuation prompts, which can cause lots of
1667 autoquote/parens in continuation prompts, which can cause lots of
1665 problems. Closes roundup issue 20.
1668 problems. Closes roundup issue 20.
1666
1669
1667 2004-11-17 Fernando Perez <fperez@colorado.edu>
1670 2004-11-17 Fernando Perez <fperez@colorado.edu>
1668
1671
1669 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1672 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1670 reported as debian bug #280505. I'm not sure my local changelog
1673 reported as debian bug #280505. I'm not sure my local changelog
1671 entry has the proper debian format (Jack?).
1674 entry has the proper debian format (Jack?).
1672
1675
1673 2004-11-08 *** Released version 0.6.4
1676 2004-11-08 *** Released version 0.6.4
1674
1677
1675 2004-11-08 Fernando Perez <fperez@colorado.edu>
1678 2004-11-08 Fernando Perez <fperez@colorado.edu>
1676
1679
1677 * IPython/iplib.py (init_readline): Fix exit message for Windows
1680 * IPython/iplib.py (init_readline): Fix exit message for Windows
1678 when readline is active. Thanks to a report by Eric Jones
1681 when readline is active. Thanks to a report by Eric Jones
1679 <eric-AT-enthought.com>.
1682 <eric-AT-enthought.com>.
1680
1683
1681 2004-11-07 Fernando Perez <fperez@colorado.edu>
1684 2004-11-07 Fernando Perez <fperez@colorado.edu>
1682
1685
1683 * IPython/genutils.py (page): Add a trap for OSError exceptions,
1686 * IPython/genutils.py (page): Add a trap for OSError exceptions,
1684 sometimes seen by win2k/cygwin users.
1687 sometimes seen by win2k/cygwin users.
1685
1688
1686 2004-11-06 Fernando Perez <fperez@colorado.edu>
1689 2004-11-06 Fernando Perez <fperez@colorado.edu>
1687
1690
1688 * IPython/iplib.py (interact): Change the handling of %Exit from
1691 * IPython/iplib.py (interact): Change the handling of %Exit from
1689 trying to propagate a SystemExit to an internal ipython flag.
1692 trying to propagate a SystemExit to an internal ipython flag.
1690 This is less elegant than using Python's exception mechanism, but
1693 This is less elegant than using Python's exception mechanism, but
1691 I can't get that to work reliably with threads, so under -pylab
1694 I can't get that to work reliably with threads, so under -pylab
1692 %Exit was hanging IPython. Cross-thread exception handling is
1695 %Exit was hanging IPython. Cross-thread exception handling is
1693 really a bitch. Thaks to a bug report by Stephen Walton
1696 really a bitch. Thaks to a bug report by Stephen Walton
1694 <stephen.walton-AT-csun.edu>.
1697 <stephen.walton-AT-csun.edu>.
1695
1698
1696 2004-11-04 Fernando Perez <fperez@colorado.edu>
1699 2004-11-04 Fernando Perez <fperez@colorado.edu>
1697
1700
1698 * IPython/iplib.py (raw_input_original): store a pointer to the
1701 * IPython/iplib.py (raw_input_original): store a pointer to the
1699 true raw_input to harden against code which can modify it
1702 true raw_input to harden against code which can modify it
1700 (wx.py.PyShell does this and would otherwise crash ipython).
1703 (wx.py.PyShell does this and would otherwise crash ipython).
1701 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
1704 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
1702
1705
1703 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
1706 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
1704 Ctrl-C problem, which does not mess up the input line.
1707 Ctrl-C problem, which does not mess up the input line.
1705
1708
1706 2004-11-03 Fernando Perez <fperez@colorado.edu>
1709 2004-11-03 Fernando Perez <fperez@colorado.edu>
1707
1710
1708 * IPython/Release.py: Changed licensing to BSD, in all files.
1711 * IPython/Release.py: Changed licensing to BSD, in all files.
1709 (name): lowercase name for tarball/RPM release.
1712 (name): lowercase name for tarball/RPM release.
1710
1713
1711 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
1714 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
1712 use throughout ipython.
1715 use throughout ipython.
1713
1716
1714 * IPython/Magic.py (Magic._ofind): Switch to using the new
1717 * IPython/Magic.py (Magic._ofind): Switch to using the new
1715 OInspect.getdoc() function.
1718 OInspect.getdoc() function.
1716
1719
1717 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
1720 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
1718 of the line currently being canceled via Ctrl-C. It's extremely
1721 of the line currently being canceled via Ctrl-C. It's extremely
1719 ugly, but I don't know how to do it better (the problem is one of
1722 ugly, but I don't know how to do it better (the problem is one of
1720 handling cross-thread exceptions).
1723 handling cross-thread exceptions).
1721
1724
1722 2004-10-28 Fernando Perez <fperez@colorado.edu>
1725 2004-10-28 Fernando Perez <fperez@colorado.edu>
1723
1726
1724 * IPython/Shell.py (signal_handler): add signal handlers to trap
1727 * IPython/Shell.py (signal_handler): add signal handlers to trap
1725 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
1728 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
1726 report by Francesc Alted.
1729 report by Francesc Alted.
1727
1730
1728 2004-10-21 Fernando Perez <fperez@colorado.edu>
1731 2004-10-21 Fernando Perez <fperez@colorado.edu>
1729
1732
1730 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
1733 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
1731 to % for pysh syntax extensions.
1734 to % for pysh syntax extensions.
1732
1735
1733 2004-10-09 Fernando Perez <fperez@colorado.edu>
1736 2004-10-09 Fernando Perez <fperez@colorado.edu>
1734
1737
1735 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
1738 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
1736 arrays to print a more useful summary, without calling str(arr).
1739 arrays to print a more useful summary, without calling str(arr).
1737 This avoids the problem of extremely lengthy computations which
1740 This avoids the problem of extremely lengthy computations which
1738 occur if arr is large, and appear to the user as a system lockup
1741 occur if arr is large, and appear to the user as a system lockup
1739 with 100% cpu activity. After a suggestion by Kristian Sandberg
1742 with 100% cpu activity. After a suggestion by Kristian Sandberg
1740 <Kristian.Sandberg@colorado.edu>.
1743 <Kristian.Sandberg@colorado.edu>.
1741 (Magic.__init__): fix bug in global magic escapes not being
1744 (Magic.__init__): fix bug in global magic escapes not being
1742 correctly set.
1745 correctly set.
1743
1746
1744 2004-10-08 Fernando Perez <fperez@colorado.edu>
1747 2004-10-08 Fernando Perez <fperez@colorado.edu>
1745
1748
1746 * IPython/Magic.py (__license__): change to absolute imports of
1749 * IPython/Magic.py (__license__): change to absolute imports of
1747 ipython's own internal packages, to start adapting to the absolute
1750 ipython's own internal packages, to start adapting to the absolute
1748 import requirement of PEP-328.
1751 import requirement of PEP-328.
1749
1752
1750 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
1753 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
1751 files, and standardize author/license marks through the Release
1754 files, and standardize author/license marks through the Release
1752 module instead of having per/file stuff (except for files with
1755 module instead of having per/file stuff (except for files with
1753 particular licenses, like the MIT/PSF-licensed codes).
1756 particular licenses, like the MIT/PSF-licensed codes).
1754
1757
1755 * IPython/Debugger.py: remove dead code for python 2.1
1758 * IPython/Debugger.py: remove dead code for python 2.1
1756
1759
1757 2004-10-04 Fernando Perez <fperez@colorado.edu>
1760 2004-10-04 Fernando Perez <fperez@colorado.edu>
1758
1761
1759 * IPython/iplib.py (ipmagic): New function for accessing magics
1762 * IPython/iplib.py (ipmagic): New function for accessing magics
1760 via a normal python function call.
1763 via a normal python function call.
1761
1764
1762 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
1765 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
1763 from '@' to '%', to accomodate the new @decorator syntax of python
1766 from '@' to '%', to accomodate the new @decorator syntax of python
1764 2.4.
1767 2.4.
1765
1768
1766 2004-09-29 Fernando Perez <fperez@colorado.edu>
1769 2004-09-29 Fernando Perez <fperez@colorado.edu>
1767
1770
1768 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
1771 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
1769 matplotlib.use to prevent running scripts which try to switch
1772 matplotlib.use to prevent running scripts which try to switch
1770 interactive backends from within ipython. This will just crash
1773 interactive backends from within ipython. This will just crash
1771 the python interpreter, so we can't allow it (but a detailed error
1774 the python interpreter, so we can't allow it (but a detailed error
1772 is given to the user).
1775 is given to the user).
1773
1776
1774 2004-09-28 Fernando Perez <fperez@colorado.edu>
1777 2004-09-28 Fernando Perez <fperez@colorado.edu>
1775
1778
1776 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
1779 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
1777 matplotlib-related fixes so that using @run with non-matplotlib
1780 matplotlib-related fixes so that using @run with non-matplotlib
1778 scripts doesn't pop up spurious plot windows. This requires
1781 scripts doesn't pop up spurious plot windows. This requires
1779 matplotlib >= 0.63, where I had to make some changes as well.
1782 matplotlib >= 0.63, where I had to make some changes as well.
1780
1783
1781 * IPython/ipmaker.py (make_IPython): update version requirement to
1784 * IPython/ipmaker.py (make_IPython): update version requirement to
1782 python 2.2.
1785 python 2.2.
1783
1786
1784 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
1787 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
1785 banner arg for embedded customization.
1788 banner arg for embedded customization.
1786
1789
1787 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
1790 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
1788 explicit uses of __IP as the IPython's instance name. Now things
1791 explicit uses of __IP as the IPython's instance name. Now things
1789 are properly handled via the shell.name value. The actual code
1792 are properly handled via the shell.name value. The actual code
1790 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
1793 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
1791 is much better than before. I'll clean things completely when the
1794 is much better than before. I'll clean things completely when the
1792 magic stuff gets a real overhaul.
1795 magic stuff gets a real overhaul.
1793
1796
1794 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
1797 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
1795 minor changes to debian dir.
1798 minor changes to debian dir.
1796
1799
1797 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
1800 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
1798 pointer to the shell itself in the interactive namespace even when
1801 pointer to the shell itself in the interactive namespace even when
1799 a user-supplied dict is provided. This is needed for embedding
1802 a user-supplied dict is provided. This is needed for embedding
1800 purposes (found by tests with Michel Sanner).
1803 purposes (found by tests with Michel Sanner).
1801
1804
1802 2004-09-27 Fernando Perez <fperez@colorado.edu>
1805 2004-09-27 Fernando Perez <fperez@colorado.edu>
1803
1806
1804 * IPython/UserConfig/ipythonrc: remove []{} from
1807 * IPython/UserConfig/ipythonrc: remove []{} from
1805 readline_remove_delims, so that things like [modname.<TAB> do
1808 readline_remove_delims, so that things like [modname.<TAB> do
1806 proper completion. This disables [].TAB, but that's a less common
1809 proper completion. This disables [].TAB, but that's a less common
1807 case than module names in list comprehensions, for example.
1810 case than module names in list comprehensions, for example.
1808 Thanks to a report by Andrea Riciputi.
1811 Thanks to a report by Andrea Riciputi.
1809
1812
1810 2004-09-09 Fernando Perez <fperez@colorado.edu>
1813 2004-09-09 Fernando Perez <fperez@colorado.edu>
1811
1814
1812 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
1815 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
1813 blocking problems in win32 and osx. Fix by John.
1816 blocking problems in win32 and osx. Fix by John.
1814
1817
1815 2004-09-08 Fernando Perez <fperez@colorado.edu>
1818 2004-09-08 Fernando Perez <fperez@colorado.edu>
1816
1819
1817 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
1820 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
1818 for Win32 and OSX. Fix by John Hunter.
1821 for Win32 and OSX. Fix by John Hunter.
1819
1822
1820 2004-08-30 *** Released version 0.6.3
1823 2004-08-30 *** Released version 0.6.3
1821
1824
1822 2004-08-30 Fernando Perez <fperez@colorado.edu>
1825 2004-08-30 Fernando Perez <fperez@colorado.edu>
1823
1826
1824 * setup.py (isfile): Add manpages to list of dependent files to be
1827 * setup.py (isfile): Add manpages to list of dependent files to be
1825 updated.
1828 updated.
1826
1829
1827 2004-08-27 Fernando Perez <fperez@colorado.edu>
1830 2004-08-27 Fernando Perez <fperez@colorado.edu>
1828
1831
1829 * IPython/Shell.py (start): I've disabled -wthread and -gthread
1832 * IPython/Shell.py (start): I've disabled -wthread and -gthread
1830 for now. They don't really work with standalone WX/GTK code
1833 for now. They don't really work with standalone WX/GTK code
1831 (though matplotlib IS working fine with both of those backends).
1834 (though matplotlib IS working fine with both of those backends).
1832 This will neeed much more testing. I disabled most things with
1835 This will neeed much more testing. I disabled most things with
1833 comments, so turning it back on later should be pretty easy.
1836 comments, so turning it back on later should be pretty easy.
1834
1837
1835 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
1838 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
1836 autocalling of expressions like r'foo', by modifying the line
1839 autocalling of expressions like r'foo', by modifying the line
1837 split regexp. Closes
1840 split regexp. Closes
1838 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
1841 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
1839 Riley <ipythonbugs-AT-sabi.net>.
1842 Riley <ipythonbugs-AT-sabi.net>.
1840 (InteractiveShell.mainloop): honor --nobanner with banner
1843 (InteractiveShell.mainloop): honor --nobanner with banner
1841 extensions.
1844 extensions.
1842
1845
1843 * IPython/Shell.py: Significant refactoring of all classes, so
1846 * IPython/Shell.py: Significant refactoring of all classes, so
1844 that we can really support ALL matplotlib backends and threading
1847 that we can really support ALL matplotlib backends and threading
1845 models (John spotted a bug with Tk which required this). Now we
1848 models (John spotted a bug with Tk which required this). Now we
1846 should support single-threaded, WX-threads and GTK-threads, both
1849 should support single-threaded, WX-threads and GTK-threads, both
1847 for generic code and for matplotlib.
1850 for generic code and for matplotlib.
1848
1851
1849 * IPython/ipmaker.py (__call__): Changed -mpthread option to
1852 * IPython/ipmaker.py (__call__): Changed -mpthread option to
1850 -pylab, to simplify things for users. Will also remove the pylab
1853 -pylab, to simplify things for users. Will also remove the pylab
1851 profile, since now all of matplotlib configuration is directly
1854 profile, since now all of matplotlib configuration is directly
1852 handled here. This also reduces startup time.
1855 handled here. This also reduces startup time.
1853
1856
1854 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
1857 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
1855 shell wasn't being correctly called. Also in IPShellWX.
1858 shell wasn't being correctly called. Also in IPShellWX.
1856
1859
1857 * IPython/iplib.py (InteractiveShell.__init__): Added option to
1860 * IPython/iplib.py (InteractiveShell.__init__): Added option to
1858 fine-tune banner.
1861 fine-tune banner.
1859
1862
1860 * IPython/numutils.py (spike): Deprecate these spike functions,
1863 * IPython/numutils.py (spike): Deprecate these spike functions,
1861 delete (long deprecated) gnuplot_exec handler.
1864 delete (long deprecated) gnuplot_exec handler.
1862
1865
1863 2004-08-26 Fernando Perez <fperez@colorado.edu>
1866 2004-08-26 Fernando Perez <fperez@colorado.edu>
1864
1867
1865 * ipython.1: Update for threading options, plus some others which
1868 * ipython.1: Update for threading options, plus some others which
1866 were missing.
1869 were missing.
1867
1870
1868 * IPython/ipmaker.py (__call__): Added -wthread option for
1871 * IPython/ipmaker.py (__call__): Added -wthread option for
1869 wxpython thread handling. Make sure threading options are only
1872 wxpython thread handling. Make sure threading options are only
1870 valid at the command line.
1873 valid at the command line.
1871
1874
1872 * scripts/ipython: moved shell selection into a factory function
1875 * scripts/ipython: moved shell selection into a factory function
1873 in Shell.py, to keep the starter script to a minimum.
1876 in Shell.py, to keep the starter script to a minimum.
1874
1877
1875 2004-08-25 Fernando Perez <fperez@colorado.edu>
1878 2004-08-25 Fernando Perez <fperez@colorado.edu>
1876
1879
1877 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
1880 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
1878 John. Along with some recent changes he made to matplotlib, the
1881 John. Along with some recent changes he made to matplotlib, the
1879 next versions of both systems should work very well together.
1882 next versions of both systems should work very well together.
1880
1883
1881 2004-08-24 Fernando Perez <fperez@colorado.edu>
1884 2004-08-24 Fernando Perez <fperez@colorado.edu>
1882
1885
1883 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
1886 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
1884 tried to switch the profiling to using hotshot, but I'm getting
1887 tried to switch the profiling to using hotshot, but I'm getting
1885 strange errors from prof.runctx() there. I may be misreading the
1888 strange errors from prof.runctx() there. I may be misreading the
1886 docs, but it looks weird. For now the profiling code will
1889 docs, but it looks weird. For now the profiling code will
1887 continue to use the standard profiler.
1890 continue to use the standard profiler.
1888
1891
1889 2004-08-23 Fernando Perez <fperez@colorado.edu>
1892 2004-08-23 Fernando Perez <fperez@colorado.edu>
1890
1893
1891 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
1894 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
1892 threaded shell, by John Hunter. It's not quite ready yet, but
1895 threaded shell, by John Hunter. It's not quite ready yet, but
1893 close.
1896 close.
1894
1897
1895 2004-08-22 Fernando Perez <fperez@colorado.edu>
1898 2004-08-22 Fernando Perez <fperez@colorado.edu>
1896
1899
1897 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
1900 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
1898 in Magic and ultraTB.
1901 in Magic and ultraTB.
1899
1902
1900 * ipython.1: document threading options in manpage.
1903 * ipython.1: document threading options in manpage.
1901
1904
1902 * scripts/ipython: Changed name of -thread option to -gthread,
1905 * scripts/ipython: Changed name of -thread option to -gthread,
1903 since this is GTK specific. I want to leave the door open for a
1906 since this is GTK specific. I want to leave the door open for a
1904 -wthread option for WX, which will most likely be necessary. This
1907 -wthread option for WX, which will most likely be necessary. This
1905 change affects usage and ipmaker as well.
1908 change affects usage and ipmaker as well.
1906
1909
1907 * IPython/Shell.py (matplotlib_shell): Add a factory function to
1910 * IPython/Shell.py (matplotlib_shell): Add a factory function to
1908 handle the matplotlib shell issues. Code by John Hunter
1911 handle the matplotlib shell issues. Code by John Hunter
1909 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1912 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1910 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
1913 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
1911 broken (and disabled for end users) for now, but it puts the
1914 broken (and disabled for end users) for now, but it puts the
1912 infrastructure in place.
1915 infrastructure in place.
1913
1916
1914 2004-08-21 Fernando Perez <fperez@colorado.edu>
1917 2004-08-21 Fernando Perez <fperez@colorado.edu>
1915
1918
1916 * ipythonrc-pylab: Add matplotlib support.
1919 * ipythonrc-pylab: Add matplotlib support.
1917
1920
1918 * matplotlib_config.py: new files for matplotlib support, part of
1921 * matplotlib_config.py: new files for matplotlib support, part of
1919 the pylab profile.
1922 the pylab profile.
1920
1923
1921 * IPython/usage.py (__doc__): documented the threading options.
1924 * IPython/usage.py (__doc__): documented the threading options.
1922
1925
1923 2004-08-20 Fernando Perez <fperez@colorado.edu>
1926 2004-08-20 Fernando Perez <fperez@colorado.edu>
1924
1927
1925 * ipython: Modified the main calling routine to handle the -thread
1928 * ipython: Modified the main calling routine to handle the -thread
1926 and -mpthread options. This needs to be done as a top-level hack,
1929 and -mpthread options. This needs to be done as a top-level hack,
1927 because it determines which class to instantiate for IPython
1930 because it determines which class to instantiate for IPython
1928 itself.
1931 itself.
1929
1932
1930 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
1933 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
1931 classes to support multithreaded GTK operation without blocking,
1934 classes to support multithreaded GTK operation without blocking,
1932 and matplotlib with all backends. This is a lot of still very
1935 and matplotlib with all backends. This is a lot of still very
1933 experimental code, and threads are tricky. So it may still have a
1936 experimental code, and threads are tricky. So it may still have a
1934 few rough edges... This code owes a lot to
1937 few rough edges... This code owes a lot to
1935 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
1938 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
1936 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
1939 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
1937 to John Hunter for all the matplotlib work.
1940 to John Hunter for all the matplotlib work.
1938
1941
1939 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
1942 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
1940 options for gtk thread and matplotlib support.
1943 options for gtk thread and matplotlib support.
1941
1944
1942 2004-08-16 Fernando Perez <fperez@colorado.edu>
1945 2004-08-16 Fernando Perez <fperez@colorado.edu>
1943
1946
1944 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
1947 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
1945 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
1948 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
1946 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
1949 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
1947
1950
1948 2004-08-11 Fernando Perez <fperez@colorado.edu>
1951 2004-08-11 Fernando Perez <fperez@colorado.edu>
1949
1952
1950 * setup.py (isfile): Fix build so documentation gets updated for
1953 * setup.py (isfile): Fix build so documentation gets updated for
1951 rpms (it was only done for .tgz builds).
1954 rpms (it was only done for .tgz builds).
1952
1955
1953 2004-08-10 Fernando Perez <fperez@colorado.edu>
1956 2004-08-10 Fernando Perez <fperez@colorado.edu>
1954
1957
1955 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
1958 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
1956
1959
1957 * iplib.py : Silence syntax error exceptions in tab-completion.
1960 * iplib.py : Silence syntax error exceptions in tab-completion.
1958
1961
1959 2004-08-05 Fernando Perez <fperez@colorado.edu>
1962 2004-08-05 Fernando Perez <fperez@colorado.edu>
1960
1963
1961 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
1964 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
1962 'color off' mark for continuation prompts. This was causing long
1965 'color off' mark for continuation prompts. This was causing long
1963 continuation lines to mis-wrap.
1966 continuation lines to mis-wrap.
1964
1967
1965 2004-08-01 Fernando Perez <fperez@colorado.edu>
1968 2004-08-01 Fernando Perez <fperez@colorado.edu>
1966
1969
1967 * IPython/ipmaker.py (make_IPython): Allow the shell class used
1970 * IPython/ipmaker.py (make_IPython): Allow the shell class used
1968 for building ipython to be a parameter. All this is necessary
1971 for building ipython to be a parameter. All this is necessary
1969 right now to have a multithreaded version, but this insane
1972 right now to have a multithreaded version, but this insane
1970 non-design will be cleaned up soon. For now, it's a hack that
1973 non-design will be cleaned up soon. For now, it's a hack that
1971 works.
1974 works.
1972
1975
1973 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
1976 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
1974 args in various places. No bugs so far, but it's a dangerous
1977 args in various places. No bugs so far, but it's a dangerous
1975 practice.
1978 practice.
1976
1979
1977 2004-07-31 Fernando Perez <fperez@colorado.edu>
1980 2004-07-31 Fernando Perez <fperez@colorado.edu>
1978
1981
1979 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
1982 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
1980 fix completion of files with dots in their names under most
1983 fix completion of files with dots in their names under most
1981 profiles (pysh was OK because the completion order is different).
1984 profiles (pysh was OK because the completion order is different).
1982
1985
1983 2004-07-27 Fernando Perez <fperez@colorado.edu>
1986 2004-07-27 Fernando Perez <fperez@colorado.edu>
1984
1987
1985 * IPython/iplib.py (InteractiveShell.__init__): build dict of
1988 * IPython/iplib.py (InteractiveShell.__init__): build dict of
1986 keywords manually, b/c the one in keyword.py was removed in python
1989 keywords manually, b/c the one in keyword.py was removed in python
1987 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
1990 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
1988 This is NOT a bug under python 2.3 and earlier.
1991 This is NOT a bug under python 2.3 and earlier.
1989
1992
1990 2004-07-26 Fernando Perez <fperez@colorado.edu>
1993 2004-07-26 Fernando Perez <fperez@colorado.edu>
1991
1994
1992 * IPython/ultraTB.py (VerboseTB.text): Add another
1995 * IPython/ultraTB.py (VerboseTB.text): Add another
1993 linecache.checkcache() call to try to prevent inspect.py from
1996 linecache.checkcache() call to try to prevent inspect.py from
1994 crashing under python 2.3. I think this fixes
1997 crashing under python 2.3. I think this fixes
1995 http://www.scipy.net/roundup/ipython/issue17.
1998 http://www.scipy.net/roundup/ipython/issue17.
1996
1999
1997 2004-07-26 *** Released version 0.6.2
2000 2004-07-26 *** Released version 0.6.2
1998
2001
1999 2004-07-26 Fernando Perez <fperez@colorado.edu>
2002 2004-07-26 Fernando Perez <fperez@colorado.edu>
2000
2003
2001 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2004 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2002 fail for any number.
2005 fail for any number.
2003 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2006 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2004 empty bookmarks.
2007 empty bookmarks.
2005
2008
2006 2004-07-26 *** Released version 0.6.1
2009 2004-07-26 *** Released version 0.6.1
2007
2010
2008 2004-07-26 Fernando Perez <fperez@colorado.edu>
2011 2004-07-26 Fernando Perez <fperez@colorado.edu>
2009
2012
2010 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2013 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2011
2014
2012 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2015 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2013 escaping '()[]{}' in filenames.
2016 escaping '()[]{}' in filenames.
2014
2017
2015 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2018 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2016 Python 2.2 users who lack a proper shlex.split.
2019 Python 2.2 users who lack a proper shlex.split.
2017
2020
2018 2004-07-19 Fernando Perez <fperez@colorado.edu>
2021 2004-07-19 Fernando Perez <fperez@colorado.edu>
2019
2022
2020 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2023 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2021 for reading readline's init file. I follow the normal chain:
2024 for reading readline's init file. I follow the normal chain:
2022 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2025 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2023 report by Mike Heeter. This closes
2026 report by Mike Heeter. This closes
2024 http://www.scipy.net/roundup/ipython/issue16.
2027 http://www.scipy.net/roundup/ipython/issue16.
2025
2028
2026 2004-07-18 Fernando Perez <fperez@colorado.edu>
2029 2004-07-18 Fernando Perez <fperez@colorado.edu>
2027
2030
2028 * IPython/iplib.py (__init__): Add better handling of '\' under
2031 * IPython/iplib.py (__init__): Add better handling of '\' under
2029 Win32 for filenames. After a patch by Ville.
2032 Win32 for filenames. After a patch by Ville.
2030
2033
2031 2004-07-17 Fernando Perez <fperez@colorado.edu>
2034 2004-07-17 Fernando Perez <fperez@colorado.edu>
2032
2035
2033 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2036 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2034 autocalling would be triggered for 'foo is bar' if foo is
2037 autocalling would be triggered for 'foo is bar' if foo is
2035 callable. I also cleaned up the autocall detection code to use a
2038 callable. I also cleaned up the autocall detection code to use a
2036 regexp, which is faster. Bug reported by Alexander Schmolck.
2039 regexp, which is faster. Bug reported by Alexander Schmolck.
2037
2040
2038 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2041 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2039 '?' in them would confuse the help system. Reported by Alex
2042 '?' in them would confuse the help system. Reported by Alex
2040 Schmolck.
2043 Schmolck.
2041
2044
2042 2004-07-16 Fernando Perez <fperez@colorado.edu>
2045 2004-07-16 Fernando Perez <fperez@colorado.edu>
2043
2046
2044 * IPython/GnuplotInteractive.py (__all__): added plot2.
2047 * IPython/GnuplotInteractive.py (__all__): added plot2.
2045
2048
2046 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2049 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2047 plotting dictionaries, lists or tuples of 1d arrays.
2050 plotting dictionaries, lists or tuples of 1d arrays.
2048
2051
2049 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2052 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2050 optimizations.
2053 optimizations.
2051
2054
2052 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2055 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2053 the information which was there from Janko's original IPP code:
2056 the information which was there from Janko's original IPP code:
2054
2057
2055 03.05.99 20:53 porto.ifm.uni-kiel.de
2058 03.05.99 20:53 porto.ifm.uni-kiel.de
2056 --Started changelog.
2059 --Started changelog.
2057 --make clear do what it say it does
2060 --make clear do what it say it does
2058 --added pretty output of lines from inputcache
2061 --added pretty output of lines from inputcache
2059 --Made Logger a mixin class, simplifies handling of switches
2062 --Made Logger a mixin class, simplifies handling of switches
2060 --Added own completer class. .string<TAB> expands to last history
2063 --Added own completer class. .string<TAB> expands to last history
2061 line which starts with string. The new expansion is also present
2064 line which starts with string. The new expansion is also present
2062 with Ctrl-r from the readline library. But this shows, who this
2065 with Ctrl-r from the readline library. But this shows, who this
2063 can be done for other cases.
2066 can be done for other cases.
2064 --Added convention that all shell functions should accept a
2067 --Added convention that all shell functions should accept a
2065 parameter_string This opens the door for different behaviour for
2068 parameter_string This opens the door for different behaviour for
2066 each function. @cd is a good example of this.
2069 each function. @cd is a good example of this.
2067
2070
2068 04.05.99 12:12 porto.ifm.uni-kiel.de
2071 04.05.99 12:12 porto.ifm.uni-kiel.de
2069 --added logfile rotation
2072 --added logfile rotation
2070 --added new mainloop method which freezes first the namespace
2073 --added new mainloop method which freezes first the namespace
2071
2074
2072 07.05.99 21:24 porto.ifm.uni-kiel.de
2075 07.05.99 21:24 porto.ifm.uni-kiel.de
2073 --added the docreader classes. Now there is a help system.
2076 --added the docreader classes. Now there is a help system.
2074 -This is only a first try. Currently it's not easy to put new
2077 -This is only a first try. Currently it's not easy to put new
2075 stuff in the indices. But this is the way to go. Info would be
2078 stuff in the indices. But this is the way to go. Info would be
2076 better, but HTML is every where and not everybody has an info
2079 better, but HTML is every where and not everybody has an info
2077 system installed and it's not so easy to change html-docs to info.
2080 system installed and it's not so easy to change html-docs to info.
2078 --added global logfile option
2081 --added global logfile option
2079 --there is now a hook for object inspection method pinfo needs to
2082 --there is now a hook for object inspection method pinfo needs to
2080 be provided for this. Can be reached by two '??'.
2083 be provided for this. Can be reached by two '??'.
2081
2084
2082 08.05.99 20:51 porto.ifm.uni-kiel.de
2085 08.05.99 20:51 porto.ifm.uni-kiel.de
2083 --added a README
2086 --added a README
2084 --bug in rc file. Something has changed so functions in the rc
2087 --bug in rc file. Something has changed so functions in the rc
2085 file need to reference the shell and not self. Not clear if it's a
2088 file need to reference the shell and not self. Not clear if it's a
2086 bug or feature.
2089 bug or feature.
2087 --changed rc file for new behavior
2090 --changed rc file for new behavior
2088
2091
2089 2004-07-15 Fernando Perez <fperez@colorado.edu>
2092 2004-07-15 Fernando Perez <fperez@colorado.edu>
2090
2093
2091 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2094 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2092 cache was falling out of sync in bizarre manners when multi-line
2095 cache was falling out of sync in bizarre manners when multi-line
2093 input was present. Minor optimizations and cleanup.
2096 input was present. Minor optimizations and cleanup.
2094
2097
2095 (Logger): Remove old Changelog info for cleanup. This is the
2098 (Logger): Remove old Changelog info for cleanup. This is the
2096 information which was there from Janko's original code:
2099 information which was there from Janko's original code:
2097
2100
2098 Changes to Logger: - made the default log filename a parameter
2101 Changes to Logger: - made the default log filename a parameter
2099
2102
2100 - put a check for lines beginning with !@? in log(). Needed
2103 - put a check for lines beginning with !@? in log(). Needed
2101 (even if the handlers properly log their lines) for mid-session
2104 (even if the handlers properly log their lines) for mid-session
2102 logging activation to work properly. Without this, lines logged
2105 logging activation to work properly. Without this, lines logged
2103 in mid session, which get read from the cache, would end up
2106 in mid session, which get read from the cache, would end up
2104 'bare' (with !@? in the open) in the log. Now they are caught
2107 'bare' (with !@? in the open) in the log. Now they are caught
2105 and prepended with a #.
2108 and prepended with a #.
2106
2109
2107 * IPython/iplib.py (InteractiveShell.init_readline): added check
2110 * IPython/iplib.py (InteractiveShell.init_readline): added check
2108 in case MagicCompleter fails to be defined, so we don't crash.
2111 in case MagicCompleter fails to be defined, so we don't crash.
2109
2112
2110 2004-07-13 Fernando Perez <fperez@colorado.edu>
2113 2004-07-13 Fernando Perez <fperez@colorado.edu>
2111
2114
2112 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2115 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2113 of EPS if the requested filename ends in '.eps'.
2116 of EPS if the requested filename ends in '.eps'.
2114
2117
2115 2004-07-04 Fernando Perez <fperez@colorado.edu>
2118 2004-07-04 Fernando Perez <fperez@colorado.edu>
2116
2119
2117 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2120 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2118 escaping of quotes when calling the shell.
2121 escaping of quotes when calling the shell.
2119
2122
2120 2004-07-02 Fernando Perez <fperez@colorado.edu>
2123 2004-07-02 Fernando Perez <fperez@colorado.edu>
2121
2124
2122 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2125 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2123 gettext not working because we were clobbering '_'. Fixes
2126 gettext not working because we were clobbering '_'. Fixes
2124 http://www.scipy.net/roundup/ipython/issue6.
2127 http://www.scipy.net/roundup/ipython/issue6.
2125
2128
2126 2004-07-01 Fernando Perez <fperez@colorado.edu>
2129 2004-07-01 Fernando Perez <fperez@colorado.edu>
2127
2130
2128 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2131 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2129 into @cd. Patch by Ville.
2132 into @cd. Patch by Ville.
2130
2133
2131 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2134 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2132 new function to store things after ipmaker runs. Patch by Ville.
2135 new function to store things after ipmaker runs. Patch by Ville.
2133 Eventually this will go away once ipmaker is removed and the class
2136 Eventually this will go away once ipmaker is removed and the class
2134 gets cleaned up, but for now it's ok. Key functionality here is
2137 gets cleaned up, but for now it's ok. Key functionality here is
2135 the addition of the persistent storage mechanism, a dict for
2138 the addition of the persistent storage mechanism, a dict for
2136 keeping data across sessions (for now just bookmarks, but more can
2139 keeping data across sessions (for now just bookmarks, but more can
2137 be implemented later).
2140 be implemented later).
2138
2141
2139 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2142 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2140 persistent across sections. Patch by Ville, I modified it
2143 persistent across sections. Patch by Ville, I modified it
2141 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2144 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2142 added a '-l' option to list all bookmarks.
2145 added a '-l' option to list all bookmarks.
2143
2146
2144 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2147 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2145 center for cleanup. Registered with atexit.register(). I moved
2148 center for cleanup. Registered with atexit.register(). I moved
2146 here the old exit_cleanup(). After a patch by Ville.
2149 here the old exit_cleanup(). After a patch by Ville.
2147
2150
2148 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2151 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2149 characters in the hacked shlex_split for python 2.2.
2152 characters in the hacked shlex_split for python 2.2.
2150
2153
2151 * IPython/iplib.py (file_matches): more fixes to filenames with
2154 * IPython/iplib.py (file_matches): more fixes to filenames with
2152 whitespace in them. It's not perfect, but limitations in python's
2155 whitespace in them. It's not perfect, but limitations in python's
2153 readline make it impossible to go further.
2156 readline make it impossible to go further.
2154
2157
2155 2004-06-29 Fernando Perez <fperez@colorado.edu>
2158 2004-06-29 Fernando Perez <fperez@colorado.edu>
2156
2159
2157 * IPython/iplib.py (file_matches): escape whitespace correctly in
2160 * IPython/iplib.py (file_matches): escape whitespace correctly in
2158 filename completions. Bug reported by Ville.
2161 filename completions. Bug reported by Ville.
2159
2162
2160 2004-06-28 Fernando Perez <fperez@colorado.edu>
2163 2004-06-28 Fernando Perez <fperez@colorado.edu>
2161
2164
2162 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2165 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2163 the history file will be called 'history-PROFNAME' (or just
2166 the history file will be called 'history-PROFNAME' (or just
2164 'history' if no profile is loaded). I was getting annoyed at
2167 'history' if no profile is loaded). I was getting annoyed at
2165 getting my Numerical work history clobbered by pysh sessions.
2168 getting my Numerical work history clobbered by pysh sessions.
2166
2169
2167 * IPython/iplib.py (InteractiveShell.__init__): Internal
2170 * IPython/iplib.py (InteractiveShell.__init__): Internal
2168 getoutputerror() function so that we can honor the system_verbose
2171 getoutputerror() function so that we can honor the system_verbose
2169 flag for _all_ system calls. I also added escaping of #
2172 flag for _all_ system calls. I also added escaping of #
2170 characters here to avoid confusing Itpl.
2173 characters here to avoid confusing Itpl.
2171
2174
2172 * IPython/Magic.py (shlex_split): removed call to shell in
2175 * IPython/Magic.py (shlex_split): removed call to shell in
2173 parse_options and replaced it with shlex.split(). The annoying
2176 parse_options and replaced it with shlex.split(). The annoying
2174 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2177 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2175 to backport it from 2.3, with several frail hacks (the shlex
2178 to backport it from 2.3, with several frail hacks (the shlex
2176 module is rather limited in 2.2). Thanks to a suggestion by Ville
2179 module is rather limited in 2.2). Thanks to a suggestion by Ville
2177 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2180 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2178 problem.
2181 problem.
2179
2182
2180 (Magic.magic_system_verbose): new toggle to print the actual
2183 (Magic.magic_system_verbose): new toggle to print the actual
2181 system calls made by ipython. Mainly for debugging purposes.
2184 system calls made by ipython. Mainly for debugging purposes.
2182
2185
2183 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2186 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2184 doesn't support persistence. Reported (and fix suggested) by
2187 doesn't support persistence. Reported (and fix suggested) by
2185 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2188 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2186
2189
2187 2004-06-26 Fernando Perez <fperez@colorado.edu>
2190 2004-06-26 Fernando Perez <fperez@colorado.edu>
2188
2191
2189 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2192 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2190 continue prompts.
2193 continue prompts.
2191
2194
2192 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2195 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2193 function (basically a big docstring) and a few more things here to
2196 function (basically a big docstring) and a few more things here to
2194 speedup startup. pysh.py is now very lightweight. We want because
2197 speedup startup. pysh.py is now very lightweight. We want because
2195 it gets execfile'd, while InterpreterExec gets imported, so
2198 it gets execfile'd, while InterpreterExec gets imported, so
2196 byte-compilation saves time.
2199 byte-compilation saves time.
2197
2200
2198 2004-06-25 Fernando Perez <fperez@colorado.edu>
2201 2004-06-25 Fernando Perez <fperez@colorado.edu>
2199
2202
2200 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2203 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2201 -NUM', which was recently broken.
2204 -NUM', which was recently broken.
2202
2205
2203 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2206 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2204 in multi-line input (but not !!, which doesn't make sense there).
2207 in multi-line input (but not !!, which doesn't make sense there).
2205
2208
2206 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2209 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2207 It's just too useful, and people can turn it off in the less
2210 It's just too useful, and people can turn it off in the less
2208 common cases where it's a problem.
2211 common cases where it's a problem.
2209
2212
2210 2004-06-24 Fernando Perez <fperez@colorado.edu>
2213 2004-06-24 Fernando Perez <fperez@colorado.edu>
2211
2214
2212 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2215 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2213 special syntaxes (like alias calling) is now allied in multi-line
2216 special syntaxes (like alias calling) is now allied in multi-line
2214 input. This is still _very_ experimental, but it's necessary for
2217 input. This is still _very_ experimental, but it's necessary for
2215 efficient shell usage combining python looping syntax with system
2218 efficient shell usage combining python looping syntax with system
2216 calls. For now it's restricted to aliases, I don't think it
2219 calls. For now it's restricted to aliases, I don't think it
2217 really even makes sense to have this for magics.
2220 really even makes sense to have this for magics.
2218
2221
2219 2004-06-23 Fernando Perez <fperez@colorado.edu>
2222 2004-06-23 Fernando Perez <fperez@colorado.edu>
2220
2223
2221 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2224 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2222 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2225 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2223
2226
2224 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2227 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2225 extensions under Windows (after code sent by Gary Bishop). The
2228 extensions under Windows (after code sent by Gary Bishop). The
2226 extensions considered 'executable' are stored in IPython's rc
2229 extensions considered 'executable' are stored in IPython's rc
2227 structure as win_exec_ext.
2230 structure as win_exec_ext.
2228
2231
2229 * IPython/genutils.py (shell): new function, like system() but
2232 * IPython/genutils.py (shell): new function, like system() but
2230 without return value. Very useful for interactive shell work.
2233 without return value. Very useful for interactive shell work.
2231
2234
2232 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2235 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2233 delete aliases.
2236 delete aliases.
2234
2237
2235 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2238 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2236 sure that the alias table doesn't contain python keywords.
2239 sure that the alias table doesn't contain python keywords.
2237
2240
2238 2004-06-21 Fernando Perez <fperez@colorado.edu>
2241 2004-06-21 Fernando Perez <fperez@colorado.edu>
2239
2242
2240 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2243 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2241 non-existent items are found in $PATH. Reported by Thorsten.
2244 non-existent items are found in $PATH. Reported by Thorsten.
2242
2245
2243 2004-06-20 Fernando Perez <fperez@colorado.edu>
2246 2004-06-20 Fernando Perez <fperez@colorado.edu>
2244
2247
2245 * IPython/iplib.py (complete): modified the completer so that the
2248 * IPython/iplib.py (complete): modified the completer so that the
2246 order of priorities can be easily changed at runtime.
2249 order of priorities can be easily changed at runtime.
2247
2250
2248 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2251 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2249 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2252 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2250
2253
2251 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2254 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2252 expand Python variables prepended with $ in all system calls. The
2255 expand Python variables prepended with $ in all system calls. The
2253 same was done to InteractiveShell.handle_shell_escape. Now all
2256 same was done to InteractiveShell.handle_shell_escape. Now all
2254 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2257 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2255 expansion of python variables and expressions according to the
2258 expansion of python variables and expressions according to the
2256 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2259 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2257
2260
2258 Though PEP-215 has been rejected, a similar (but simpler) one
2261 Though PEP-215 has been rejected, a similar (but simpler) one
2259 seems like it will go into Python 2.4, PEP-292 -
2262 seems like it will go into Python 2.4, PEP-292 -
2260 http://www.python.org/peps/pep-0292.html.
2263 http://www.python.org/peps/pep-0292.html.
2261
2264
2262 I'll keep the full syntax of PEP-215, since IPython has since the
2265 I'll keep the full syntax of PEP-215, since IPython has since the
2263 start used Ka-Ping Yee's reference implementation discussed there
2266 start used Ka-Ping Yee's reference implementation discussed there
2264 (Itpl), and I actually like the powerful semantics it offers.
2267 (Itpl), and I actually like the powerful semantics it offers.
2265
2268
2266 In order to access normal shell variables, the $ has to be escaped
2269 In order to access normal shell variables, the $ has to be escaped
2267 via an extra $. For example:
2270 via an extra $. For example:
2268
2271
2269 In [7]: PATH='a python variable'
2272 In [7]: PATH='a python variable'
2270
2273
2271 In [8]: !echo $PATH
2274 In [8]: !echo $PATH
2272 a python variable
2275 a python variable
2273
2276
2274 In [9]: !echo $$PATH
2277 In [9]: !echo $$PATH
2275 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2278 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2276
2279
2277 (Magic.parse_options): escape $ so the shell doesn't evaluate
2280 (Magic.parse_options): escape $ so the shell doesn't evaluate
2278 things prematurely.
2281 things prematurely.
2279
2282
2280 * IPython/iplib.py (InteractiveShell.call_alias): added the
2283 * IPython/iplib.py (InteractiveShell.call_alias): added the
2281 ability for aliases to expand python variables via $.
2284 ability for aliases to expand python variables via $.
2282
2285
2283 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2286 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2284 system, now there's a @rehash/@rehashx pair of magics. These work
2287 system, now there's a @rehash/@rehashx pair of magics. These work
2285 like the csh rehash command, and can be invoked at any time. They
2288 like the csh rehash command, and can be invoked at any time. They
2286 build a table of aliases to everything in the user's $PATH
2289 build a table of aliases to everything in the user's $PATH
2287 (@rehash uses everything, @rehashx is slower but only adds
2290 (@rehash uses everything, @rehashx is slower but only adds
2288 executable files). With this, the pysh.py-based shell profile can
2291 executable files). With this, the pysh.py-based shell profile can
2289 now simply call rehash upon startup, and full access to all
2292 now simply call rehash upon startup, and full access to all
2290 programs in the user's path is obtained.
2293 programs in the user's path is obtained.
2291
2294
2292 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2295 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2293 functionality is now fully in place. I removed the old dynamic
2296 functionality is now fully in place. I removed the old dynamic
2294 code generation based approach, in favor of a much lighter one
2297 code generation based approach, in favor of a much lighter one
2295 based on a simple dict. The advantage is that this allows me to
2298 based on a simple dict. The advantage is that this allows me to
2296 now have thousands of aliases with negligible cost (unthinkable
2299 now have thousands of aliases with negligible cost (unthinkable
2297 with the old system).
2300 with the old system).
2298
2301
2299 2004-06-19 Fernando Perez <fperez@colorado.edu>
2302 2004-06-19 Fernando Perez <fperez@colorado.edu>
2300
2303
2301 * IPython/iplib.py (__init__): extended MagicCompleter class to
2304 * IPython/iplib.py (__init__): extended MagicCompleter class to
2302 also complete (last in priority) on user aliases.
2305 also complete (last in priority) on user aliases.
2303
2306
2304 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2307 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2305 call to eval.
2308 call to eval.
2306 (ItplNS.__init__): Added a new class which functions like Itpl,
2309 (ItplNS.__init__): Added a new class which functions like Itpl,
2307 but allows configuring the namespace for the evaluation to occur
2310 but allows configuring the namespace for the evaluation to occur
2308 in.
2311 in.
2309
2312
2310 2004-06-18 Fernando Perez <fperez@colorado.edu>
2313 2004-06-18 Fernando Perez <fperez@colorado.edu>
2311
2314
2312 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2315 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2313 better message when 'exit' or 'quit' are typed (a common newbie
2316 better message when 'exit' or 'quit' are typed (a common newbie
2314 confusion).
2317 confusion).
2315
2318
2316 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2319 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2317 check for Windows users.
2320 check for Windows users.
2318
2321
2319 * IPython/iplib.py (InteractiveShell.user_setup): removed
2322 * IPython/iplib.py (InteractiveShell.user_setup): removed
2320 disabling of colors for Windows. I'll test at runtime and issue a
2323 disabling of colors for Windows. I'll test at runtime and issue a
2321 warning if Gary's readline isn't found, as to nudge users to
2324 warning if Gary's readline isn't found, as to nudge users to
2322 download it.
2325 download it.
2323
2326
2324 2004-06-16 Fernando Perez <fperez@colorado.edu>
2327 2004-06-16 Fernando Perez <fperez@colorado.edu>
2325
2328
2326 * IPython/genutils.py (Stream.__init__): changed to print errors
2329 * IPython/genutils.py (Stream.__init__): changed to print errors
2327 to sys.stderr. I had a circular dependency here. Now it's
2330 to sys.stderr. I had a circular dependency here. Now it's
2328 possible to run ipython as IDLE's shell (consider this pre-alpha,
2331 possible to run ipython as IDLE's shell (consider this pre-alpha,
2329 since true stdout things end up in the starting terminal instead
2332 since true stdout things end up in the starting terminal instead
2330 of IDLE's out).
2333 of IDLE's out).
2331
2334
2332 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2335 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2333 users who haven't # updated their prompt_in2 definitions. Remove
2336 users who haven't # updated their prompt_in2 definitions. Remove
2334 eventually.
2337 eventually.
2335 (multiple_replace): added credit to original ASPN recipe.
2338 (multiple_replace): added credit to original ASPN recipe.
2336
2339
2337 2004-06-15 Fernando Perez <fperez@colorado.edu>
2340 2004-06-15 Fernando Perez <fperez@colorado.edu>
2338
2341
2339 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2342 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2340 list of auto-defined aliases.
2343 list of auto-defined aliases.
2341
2344
2342 2004-06-13 Fernando Perez <fperez@colorado.edu>
2345 2004-06-13 Fernando Perez <fperez@colorado.edu>
2343
2346
2344 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2347 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2345 install was really requested (so setup.py can be used for other
2348 install was really requested (so setup.py can be used for other
2346 things under Windows).
2349 things under Windows).
2347
2350
2348 2004-06-10 Fernando Perez <fperez@colorado.edu>
2351 2004-06-10 Fernando Perez <fperez@colorado.edu>
2349
2352
2350 * IPython/Logger.py (Logger.create_log): Manually remove any old
2353 * IPython/Logger.py (Logger.create_log): Manually remove any old
2351 backup, since os.remove may fail under Windows. Fixes bug
2354 backup, since os.remove may fail under Windows. Fixes bug
2352 reported by Thorsten.
2355 reported by Thorsten.
2353
2356
2354 2004-06-09 Fernando Perez <fperez@colorado.edu>
2357 2004-06-09 Fernando Perez <fperez@colorado.edu>
2355
2358
2356 * examples/example-embed.py: fixed all references to %n (replaced
2359 * examples/example-embed.py: fixed all references to %n (replaced
2357 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2360 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2358 for all examples and the manual as well.
2361 for all examples and the manual as well.
2359
2362
2360 2004-06-08 Fernando Perez <fperez@colorado.edu>
2363 2004-06-08 Fernando Perez <fperez@colorado.edu>
2361
2364
2362 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2365 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2363 alignment and color management. All 3 prompt subsystems now
2366 alignment and color management. All 3 prompt subsystems now
2364 inherit from BasePrompt.
2367 inherit from BasePrompt.
2365
2368
2366 * tools/release: updates for windows installer build and tag rpms
2369 * tools/release: updates for windows installer build and tag rpms
2367 with python version (since paths are fixed).
2370 with python version (since paths are fixed).
2368
2371
2369 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2372 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2370 which will become eventually obsolete. Also fixed the default
2373 which will become eventually obsolete. Also fixed the default
2371 prompt_in2 to use \D, so at least new users start with the correct
2374 prompt_in2 to use \D, so at least new users start with the correct
2372 defaults.
2375 defaults.
2373 WARNING: Users with existing ipythonrc files will need to apply
2376 WARNING: Users with existing ipythonrc files will need to apply
2374 this fix manually!
2377 this fix manually!
2375
2378
2376 * setup.py: make windows installer (.exe). This is finally the
2379 * setup.py: make windows installer (.exe). This is finally the
2377 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2380 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2378 which I hadn't included because it required Python 2.3 (or recent
2381 which I hadn't included because it required Python 2.3 (or recent
2379 distutils).
2382 distutils).
2380
2383
2381 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2384 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2382 usage of new '\D' escape.
2385 usage of new '\D' escape.
2383
2386
2384 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2387 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2385 lacks os.getuid())
2388 lacks os.getuid())
2386 (CachedOutput.set_colors): Added the ability to turn coloring
2389 (CachedOutput.set_colors): Added the ability to turn coloring
2387 on/off with @colors even for manually defined prompt colors. It
2390 on/off with @colors even for manually defined prompt colors. It
2388 uses a nasty global, but it works safely and via the generic color
2391 uses a nasty global, but it works safely and via the generic color
2389 handling mechanism.
2392 handling mechanism.
2390 (Prompt2.__init__): Introduced new escape '\D' for continuation
2393 (Prompt2.__init__): Introduced new escape '\D' for continuation
2391 prompts. It represents the counter ('\#') as dots.
2394 prompts. It represents the counter ('\#') as dots.
2392 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2395 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2393 need to update their ipythonrc files and replace '%n' with '\D' in
2396 need to update their ipythonrc files and replace '%n' with '\D' in
2394 their prompt_in2 settings everywhere. Sorry, but there's
2397 their prompt_in2 settings everywhere. Sorry, but there's
2395 otherwise no clean way to get all prompts to properly align. The
2398 otherwise no clean way to get all prompts to properly align. The
2396 ipythonrc shipped with IPython has been updated.
2399 ipythonrc shipped with IPython has been updated.
2397
2400
2398 2004-06-07 Fernando Perez <fperez@colorado.edu>
2401 2004-06-07 Fernando Perez <fperez@colorado.edu>
2399
2402
2400 * setup.py (isfile): Pass local_icons option to latex2html, so the
2403 * setup.py (isfile): Pass local_icons option to latex2html, so the
2401 resulting HTML file is self-contained. Thanks to
2404 resulting HTML file is self-contained. Thanks to
2402 dryice-AT-liu.com.cn for the tip.
2405 dryice-AT-liu.com.cn for the tip.
2403
2406
2404 * pysh.py: I created a new profile 'shell', which implements a
2407 * pysh.py: I created a new profile 'shell', which implements a
2405 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2408 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2406 system shell, nor will it become one anytime soon. It's mainly
2409 system shell, nor will it become one anytime soon. It's mainly
2407 meant to illustrate the use of the new flexible bash-like prompts.
2410 meant to illustrate the use of the new flexible bash-like prompts.
2408 I guess it could be used by hardy souls for true shell management,
2411 I guess it could be used by hardy souls for true shell management,
2409 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2412 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2410 profile. This uses the InterpreterExec extension provided by
2413 profile. This uses the InterpreterExec extension provided by
2411 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2414 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2412
2415
2413 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2416 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2414 auto-align itself with the length of the previous input prompt
2417 auto-align itself with the length of the previous input prompt
2415 (taking into account the invisible color escapes).
2418 (taking into account the invisible color escapes).
2416 (CachedOutput.__init__): Large restructuring of this class. Now
2419 (CachedOutput.__init__): Large restructuring of this class. Now
2417 all three prompts (primary1, primary2, output) are proper objects,
2420 all three prompts (primary1, primary2, output) are proper objects,
2418 managed by the 'parent' CachedOutput class. The code is still a
2421 managed by the 'parent' CachedOutput class. The code is still a
2419 bit hackish (all prompts share state via a pointer to the cache),
2422 bit hackish (all prompts share state via a pointer to the cache),
2420 but it's overall far cleaner than before.
2423 but it's overall far cleaner than before.
2421
2424
2422 * IPython/genutils.py (getoutputerror): modified to add verbose,
2425 * IPython/genutils.py (getoutputerror): modified to add verbose,
2423 debug and header options. This makes the interface of all getout*
2426 debug and header options. This makes the interface of all getout*
2424 functions uniform.
2427 functions uniform.
2425 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2428 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2426
2429
2427 * IPython/Magic.py (Magic.default_option): added a function to
2430 * IPython/Magic.py (Magic.default_option): added a function to
2428 allow registering default options for any magic command. This
2431 allow registering default options for any magic command. This
2429 makes it easy to have profiles which customize the magics globally
2432 makes it easy to have profiles which customize the magics globally
2430 for a certain use. The values set through this function are
2433 for a certain use. The values set through this function are
2431 picked up by the parse_options() method, which all magics should
2434 picked up by the parse_options() method, which all magics should
2432 use to parse their options.
2435 use to parse their options.
2433
2436
2434 * IPython/genutils.py (warn): modified the warnings framework to
2437 * IPython/genutils.py (warn): modified the warnings framework to
2435 use the Term I/O class. I'm trying to slowly unify all of
2438 use the Term I/O class. I'm trying to slowly unify all of
2436 IPython's I/O operations to pass through Term.
2439 IPython's I/O operations to pass through Term.
2437
2440
2438 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2441 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2439 the secondary prompt to correctly match the length of the primary
2442 the secondary prompt to correctly match the length of the primary
2440 one for any prompt. Now multi-line code will properly line up
2443 one for any prompt. Now multi-line code will properly line up
2441 even for path dependent prompts, such as the new ones available
2444 even for path dependent prompts, such as the new ones available
2442 via the prompt_specials.
2445 via the prompt_specials.
2443
2446
2444 2004-06-06 Fernando Perez <fperez@colorado.edu>
2447 2004-06-06 Fernando Perez <fperez@colorado.edu>
2445
2448
2446 * IPython/Prompts.py (prompt_specials): Added the ability to have
2449 * IPython/Prompts.py (prompt_specials): Added the ability to have
2447 bash-like special sequences in the prompts, which get
2450 bash-like special sequences in the prompts, which get
2448 automatically expanded. Things like hostname, current working
2451 automatically expanded. Things like hostname, current working
2449 directory and username are implemented already, but it's easy to
2452 directory and username are implemented already, but it's easy to
2450 add more in the future. Thanks to a patch by W.J. van der Laan
2453 add more in the future. Thanks to a patch by W.J. van der Laan
2451 <gnufnork-AT-hetdigitalegat.nl>
2454 <gnufnork-AT-hetdigitalegat.nl>
2452 (prompt_specials): Added color support for prompt strings, so
2455 (prompt_specials): Added color support for prompt strings, so
2453 users can define arbitrary color setups for their prompts.
2456 users can define arbitrary color setups for their prompts.
2454
2457
2455 2004-06-05 Fernando Perez <fperez@colorado.edu>
2458 2004-06-05 Fernando Perez <fperez@colorado.edu>
2456
2459
2457 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2460 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2458 code to load Gary Bishop's readline and configure it
2461 code to load Gary Bishop's readline and configure it
2459 automatically. Thanks to Gary for help on this.
2462 automatically. Thanks to Gary for help on this.
2460
2463
2461 2004-06-01 Fernando Perez <fperez@colorado.edu>
2464 2004-06-01 Fernando Perez <fperez@colorado.edu>
2462
2465
2463 * IPython/Logger.py (Logger.create_log): fix bug for logging
2466 * IPython/Logger.py (Logger.create_log): fix bug for logging
2464 with no filename (previous fix was incomplete).
2467 with no filename (previous fix was incomplete).
2465
2468
2466 2004-05-25 Fernando Perez <fperez@colorado.edu>
2469 2004-05-25 Fernando Perez <fperez@colorado.edu>
2467
2470
2468 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2471 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2469 parens would get passed to the shell.
2472 parens would get passed to the shell.
2470
2473
2471 2004-05-20 Fernando Perez <fperez@colorado.edu>
2474 2004-05-20 Fernando Perez <fperez@colorado.edu>
2472
2475
2473 * IPython/Magic.py (Magic.magic_prun): changed default profile
2476 * IPython/Magic.py (Magic.magic_prun): changed default profile
2474 sort order to 'time' (the more common profiling need).
2477 sort order to 'time' (the more common profiling need).
2475
2478
2476 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2479 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2477 so that source code shown is guaranteed in sync with the file on
2480 so that source code shown is guaranteed in sync with the file on
2478 disk (also changed in psource). Similar fix to the one for
2481 disk (also changed in psource). Similar fix to the one for
2479 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2482 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2480 <yann.ledu-AT-noos.fr>.
2483 <yann.ledu-AT-noos.fr>.
2481
2484
2482 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2485 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2483 with a single option would not be correctly parsed. Closes
2486 with a single option would not be correctly parsed. Closes
2484 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2487 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2485 introduced in 0.6.0 (on 2004-05-06).
2488 introduced in 0.6.0 (on 2004-05-06).
2486
2489
2487 2004-05-13 *** Released version 0.6.0
2490 2004-05-13 *** Released version 0.6.0
2488
2491
2489 2004-05-13 Fernando Perez <fperez@colorado.edu>
2492 2004-05-13 Fernando Perez <fperez@colorado.edu>
2490
2493
2491 * debian/: Added debian/ directory to CVS, so that debian support
2494 * debian/: Added debian/ directory to CVS, so that debian support
2492 is publicly accessible. The debian package is maintained by Jack
2495 is publicly accessible. The debian package is maintained by Jack
2493 Moffit <jack-AT-xiph.org>.
2496 Moffit <jack-AT-xiph.org>.
2494
2497
2495 * Documentation: included the notes about an ipython-based system
2498 * Documentation: included the notes about an ipython-based system
2496 shell (the hypothetical 'pysh') into the new_design.pdf document,
2499 shell (the hypothetical 'pysh') into the new_design.pdf document,
2497 so that these ideas get distributed to users along with the
2500 so that these ideas get distributed to users along with the
2498 official documentation.
2501 official documentation.
2499
2502
2500 2004-05-10 Fernando Perez <fperez@colorado.edu>
2503 2004-05-10 Fernando Perez <fperez@colorado.edu>
2501
2504
2502 * IPython/Logger.py (Logger.create_log): fix recently introduced
2505 * IPython/Logger.py (Logger.create_log): fix recently introduced
2503 bug (misindented line) where logstart would fail when not given an
2506 bug (misindented line) where logstart would fail when not given an
2504 explicit filename.
2507 explicit filename.
2505
2508
2506 2004-05-09 Fernando Perez <fperez@colorado.edu>
2509 2004-05-09 Fernando Perez <fperez@colorado.edu>
2507
2510
2508 * IPython/Magic.py (Magic.parse_options): skip system call when
2511 * IPython/Magic.py (Magic.parse_options): skip system call when
2509 there are no options to look for. Faster, cleaner for the common
2512 there are no options to look for. Faster, cleaner for the common
2510 case.
2513 case.
2511
2514
2512 * Documentation: many updates to the manual: describing Windows
2515 * Documentation: many updates to the manual: describing Windows
2513 support better, Gnuplot updates, credits, misc small stuff. Also
2516 support better, Gnuplot updates, credits, misc small stuff. Also
2514 updated the new_design doc a bit.
2517 updated the new_design doc a bit.
2515
2518
2516 2004-05-06 *** Released version 0.6.0.rc1
2519 2004-05-06 *** Released version 0.6.0.rc1
2517
2520
2518 2004-05-06 Fernando Perez <fperez@colorado.edu>
2521 2004-05-06 Fernando Perez <fperez@colorado.edu>
2519
2522
2520 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2523 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2521 operations to use the vastly more efficient list/''.join() method.
2524 operations to use the vastly more efficient list/''.join() method.
2522 (FormattedTB.text): Fix
2525 (FormattedTB.text): Fix
2523 http://www.scipy.net/roundup/ipython/issue12 - exception source
2526 http://www.scipy.net/roundup/ipython/issue12 - exception source
2524 extract not updated after reload. Thanks to Mike Salib
2527 extract not updated after reload. Thanks to Mike Salib
2525 <msalib-AT-mit.edu> for pinning the source of the problem.
2528 <msalib-AT-mit.edu> for pinning the source of the problem.
2526 Fortunately, the solution works inside ipython and doesn't require
2529 Fortunately, the solution works inside ipython and doesn't require
2527 any changes to python proper.
2530 any changes to python proper.
2528
2531
2529 * IPython/Magic.py (Magic.parse_options): Improved to process the
2532 * IPython/Magic.py (Magic.parse_options): Improved to process the
2530 argument list as a true shell would (by actually using the
2533 argument list as a true shell would (by actually using the
2531 underlying system shell). This way, all @magics automatically get
2534 underlying system shell). This way, all @magics automatically get
2532 shell expansion for variables. Thanks to a comment by Alex
2535 shell expansion for variables. Thanks to a comment by Alex
2533 Schmolck.
2536 Schmolck.
2534
2537
2535 2004-04-04 Fernando Perez <fperez@colorado.edu>
2538 2004-04-04 Fernando Perez <fperez@colorado.edu>
2536
2539
2537 * IPython/iplib.py (InteractiveShell.interact): Added a special
2540 * IPython/iplib.py (InteractiveShell.interact): Added a special
2538 trap for a debugger quit exception, which is basically impossible
2541 trap for a debugger quit exception, which is basically impossible
2539 to handle by normal mechanisms, given what pdb does to the stack.
2542 to handle by normal mechanisms, given what pdb does to the stack.
2540 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2543 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2541
2544
2542 2004-04-03 Fernando Perez <fperez@colorado.edu>
2545 2004-04-03 Fernando Perez <fperez@colorado.edu>
2543
2546
2544 * IPython/genutils.py (Term): Standardized the names of the Term
2547 * IPython/genutils.py (Term): Standardized the names of the Term
2545 class streams to cin/cout/cerr, following C++ naming conventions
2548 class streams to cin/cout/cerr, following C++ naming conventions
2546 (I can't use in/out/err because 'in' is not a valid attribute
2549 (I can't use in/out/err because 'in' is not a valid attribute
2547 name).
2550 name).
2548
2551
2549 * IPython/iplib.py (InteractiveShell.interact): don't increment
2552 * IPython/iplib.py (InteractiveShell.interact): don't increment
2550 the prompt if there's no user input. By Daniel 'Dang' Griffith
2553 the prompt if there's no user input. By Daniel 'Dang' Griffith
2551 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2554 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2552 Francois Pinard.
2555 Francois Pinard.
2553
2556
2554 2004-04-02 Fernando Perez <fperez@colorado.edu>
2557 2004-04-02 Fernando Perez <fperez@colorado.edu>
2555
2558
2556 * IPython/genutils.py (Stream.__init__): Modified to survive at
2559 * IPython/genutils.py (Stream.__init__): Modified to survive at
2557 least importing in contexts where stdin/out/err aren't true file
2560 least importing in contexts where stdin/out/err aren't true file
2558 objects, such as PyCrust (they lack fileno() and mode). However,
2561 objects, such as PyCrust (they lack fileno() and mode). However,
2559 the recovery facilities which rely on these things existing will
2562 the recovery facilities which rely on these things existing will
2560 not work.
2563 not work.
2561
2564
2562 2004-04-01 Fernando Perez <fperez@colorado.edu>
2565 2004-04-01 Fernando Perez <fperez@colorado.edu>
2563
2566
2564 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2567 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2565 use the new getoutputerror() function, so it properly
2568 use the new getoutputerror() function, so it properly
2566 distinguishes stdout/err.
2569 distinguishes stdout/err.
2567
2570
2568 * IPython/genutils.py (getoutputerror): added a function to
2571 * IPython/genutils.py (getoutputerror): added a function to
2569 capture separately the standard output and error of a command.
2572 capture separately the standard output and error of a command.
2570 After a comment from dang on the mailing lists. This code is
2573 After a comment from dang on the mailing lists. This code is
2571 basically a modified version of commands.getstatusoutput(), from
2574 basically a modified version of commands.getstatusoutput(), from
2572 the standard library.
2575 the standard library.
2573
2576
2574 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2577 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2575 '!!' as a special syntax (shorthand) to access @sx.
2578 '!!' as a special syntax (shorthand) to access @sx.
2576
2579
2577 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2580 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2578 command and return its output as a list split on '\n'.
2581 command and return its output as a list split on '\n'.
2579
2582
2580 2004-03-31 Fernando Perez <fperez@colorado.edu>
2583 2004-03-31 Fernando Perez <fperez@colorado.edu>
2581
2584
2582 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2585 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2583 method to dictionaries used as FakeModule instances if they lack
2586 method to dictionaries used as FakeModule instances if they lack
2584 it. At least pydoc in python2.3 breaks for runtime-defined
2587 it. At least pydoc in python2.3 breaks for runtime-defined
2585 functions without this hack. At some point I need to _really_
2588 functions without this hack. At some point I need to _really_
2586 understand what FakeModule is doing, because it's a gross hack.
2589 understand what FakeModule is doing, because it's a gross hack.
2587 But it solves Arnd's problem for now...
2590 But it solves Arnd's problem for now...
2588
2591
2589 2004-02-27 Fernando Perez <fperez@colorado.edu>
2592 2004-02-27 Fernando Perez <fperez@colorado.edu>
2590
2593
2591 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2594 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2592 mode would behave erratically. Also increased the number of
2595 mode would behave erratically. Also increased the number of
2593 possible logs in rotate mod to 999. Thanks to Rod Holland
2596 possible logs in rotate mod to 999. Thanks to Rod Holland
2594 <rhh@StructureLABS.com> for the report and fixes.
2597 <rhh@StructureLABS.com> for the report and fixes.
2595
2598
2596 2004-02-26 Fernando Perez <fperez@colorado.edu>
2599 2004-02-26 Fernando Perez <fperez@colorado.edu>
2597
2600
2598 * IPython/genutils.py (page): Check that the curses module really
2601 * IPython/genutils.py (page): Check that the curses module really
2599 has the initscr attribute before trying to use it. For some
2602 has the initscr attribute before trying to use it. For some
2600 reason, the Solaris curses module is missing this. I think this
2603 reason, the Solaris curses module is missing this. I think this
2601 should be considered a Solaris python bug, but I'm not sure.
2604 should be considered a Solaris python bug, but I'm not sure.
2602
2605
2603 2004-01-17 Fernando Perez <fperez@colorado.edu>
2606 2004-01-17 Fernando Perez <fperez@colorado.edu>
2604
2607
2605 * IPython/genutils.py (Stream.__init__): Changes to try to make
2608 * IPython/genutils.py (Stream.__init__): Changes to try to make
2606 ipython robust against stdin/out/err being closed by the user.
2609 ipython robust against stdin/out/err being closed by the user.
2607 This is 'user error' (and blocks a normal python session, at least
2610 This is 'user error' (and blocks a normal python session, at least
2608 the stdout case). However, Ipython should be able to survive such
2611 the stdout case). However, Ipython should be able to survive such
2609 instances of abuse as gracefully as possible. To simplify the
2612 instances of abuse as gracefully as possible. To simplify the
2610 coding and maintain compatibility with Gary Bishop's Term
2613 coding and maintain compatibility with Gary Bishop's Term
2611 contributions, I've made use of classmethods for this. I think
2614 contributions, I've made use of classmethods for this. I think
2612 this introduces a dependency on python 2.2.
2615 this introduces a dependency on python 2.2.
2613
2616
2614 2004-01-13 Fernando Perez <fperez@colorado.edu>
2617 2004-01-13 Fernando Perez <fperez@colorado.edu>
2615
2618
2616 * IPython/numutils.py (exp_safe): simplified the code a bit and
2619 * IPython/numutils.py (exp_safe): simplified the code a bit and
2617 removed the need for importing the kinds module altogether.
2620 removed the need for importing the kinds module altogether.
2618
2621
2619 2004-01-06 Fernando Perez <fperez@colorado.edu>
2622 2004-01-06 Fernando Perez <fperez@colorado.edu>
2620
2623
2621 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
2624 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
2622 a magic function instead, after some community feedback. No
2625 a magic function instead, after some community feedback. No
2623 special syntax will exist for it, but its name is deliberately
2626 special syntax will exist for it, but its name is deliberately
2624 very short.
2627 very short.
2625
2628
2626 2003-12-20 Fernando Perez <fperez@colorado.edu>
2629 2003-12-20 Fernando Perez <fperez@colorado.edu>
2627
2630
2628 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
2631 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
2629 new functionality, to automagically assign the result of a shell
2632 new functionality, to automagically assign the result of a shell
2630 command to a variable. I'll solicit some community feedback on
2633 command to a variable. I'll solicit some community feedback on
2631 this before making it permanent.
2634 this before making it permanent.
2632
2635
2633 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
2636 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
2634 requested about callables for which inspect couldn't obtain a
2637 requested about callables for which inspect couldn't obtain a
2635 proper argspec. Thanks to a crash report sent by Etienne
2638 proper argspec. Thanks to a crash report sent by Etienne
2636 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2639 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2637
2640
2638 2003-12-09 Fernando Perez <fperez@colorado.edu>
2641 2003-12-09 Fernando Perez <fperez@colorado.edu>
2639
2642
2640 * IPython/genutils.py (page): patch for the pager to work across
2643 * IPython/genutils.py (page): patch for the pager to work across
2641 various versions of Windows. By Gary Bishop.
2644 various versions of Windows. By Gary Bishop.
2642
2645
2643 2003-12-04 Fernando Perez <fperez@colorado.edu>
2646 2003-12-04 Fernando Perez <fperez@colorado.edu>
2644
2647
2645 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2648 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2646 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2649 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2647 While I tested this and it looks ok, there may still be corner
2650 While I tested this and it looks ok, there may still be corner
2648 cases I've missed.
2651 cases I've missed.
2649
2652
2650 2003-12-01 Fernando Perez <fperez@colorado.edu>
2653 2003-12-01 Fernando Perez <fperez@colorado.edu>
2651
2654
2652 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2655 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2653 where a line like 'p,q=1,2' would fail because the automagic
2656 where a line like 'p,q=1,2' would fail because the automagic
2654 system would be triggered for @p.
2657 system would be triggered for @p.
2655
2658
2656 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2659 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2657 cleanups, code unmodified.
2660 cleanups, code unmodified.
2658
2661
2659 * IPython/genutils.py (Term): added a class for IPython to handle
2662 * IPython/genutils.py (Term): added a class for IPython to handle
2660 output. In most cases it will just be a proxy for stdout/err, but
2663 output. In most cases it will just be a proxy for stdout/err, but
2661 having this allows modifications to be made for some platforms,
2664 having this allows modifications to be made for some platforms,
2662 such as handling color escapes under Windows. All of this code
2665 such as handling color escapes under Windows. All of this code
2663 was contributed by Gary Bishop, with minor modifications by me.
2666 was contributed by Gary Bishop, with minor modifications by me.
2664 The actual changes affect many files.
2667 The actual changes affect many files.
2665
2668
2666 2003-11-30 Fernando Perez <fperez@colorado.edu>
2669 2003-11-30 Fernando Perez <fperez@colorado.edu>
2667
2670
2668 * IPython/iplib.py (file_matches): new completion code, courtesy
2671 * IPython/iplib.py (file_matches): new completion code, courtesy
2669 of Jeff Collins. This enables filename completion again under
2672 of Jeff Collins. This enables filename completion again under
2670 python 2.3, which disabled it at the C level.
2673 python 2.3, which disabled it at the C level.
2671
2674
2672 2003-11-11 Fernando Perez <fperez@colorado.edu>
2675 2003-11-11 Fernando Perez <fperez@colorado.edu>
2673
2676
2674 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2677 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2675 for Numeric.array(map(...)), but often convenient.
2678 for Numeric.array(map(...)), but often convenient.
2676
2679
2677 2003-11-05 Fernando Perez <fperez@colorado.edu>
2680 2003-11-05 Fernando Perez <fperez@colorado.edu>
2678
2681
2679 * IPython/numutils.py (frange): Changed a call from int() to
2682 * IPython/numutils.py (frange): Changed a call from int() to
2680 int(round()) to prevent a problem reported with arange() in the
2683 int(round()) to prevent a problem reported with arange() in the
2681 numpy list.
2684 numpy list.
2682
2685
2683 2003-10-06 Fernando Perez <fperez@colorado.edu>
2686 2003-10-06 Fernando Perez <fperez@colorado.edu>
2684
2687
2685 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
2688 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
2686 prevent crashes if sys lacks an argv attribute (it happens with
2689 prevent crashes if sys lacks an argv attribute (it happens with
2687 embedded interpreters which build a bare-bones sys module).
2690 embedded interpreters which build a bare-bones sys module).
2688 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
2691 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
2689
2692
2690 2003-09-24 Fernando Perez <fperez@colorado.edu>
2693 2003-09-24 Fernando Perez <fperez@colorado.edu>
2691
2694
2692 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
2695 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
2693 to protect against poorly written user objects where __getattr__
2696 to protect against poorly written user objects where __getattr__
2694 raises exceptions other than AttributeError. Thanks to a bug
2697 raises exceptions other than AttributeError. Thanks to a bug
2695 report by Oliver Sander <osander-AT-gmx.de>.
2698 report by Oliver Sander <osander-AT-gmx.de>.
2696
2699
2697 * IPython/FakeModule.py (FakeModule.__repr__): this method was
2700 * IPython/FakeModule.py (FakeModule.__repr__): this method was
2698 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
2701 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
2699
2702
2700 2003-09-09 Fernando Perez <fperez@colorado.edu>
2703 2003-09-09 Fernando Perez <fperez@colorado.edu>
2701
2704
2702 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2705 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2703 unpacking a list whith a callable as first element would
2706 unpacking a list whith a callable as first element would
2704 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
2707 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
2705 Collins.
2708 Collins.
2706
2709
2707 2003-08-25 *** Released version 0.5.0
2710 2003-08-25 *** Released version 0.5.0
2708
2711
2709 2003-08-22 Fernando Perez <fperez@colorado.edu>
2712 2003-08-22 Fernando Perez <fperez@colorado.edu>
2710
2713
2711 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
2714 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
2712 improperly defined user exceptions. Thanks to feedback from Mark
2715 improperly defined user exceptions. Thanks to feedback from Mark
2713 Russell <mrussell-AT-verio.net>.
2716 Russell <mrussell-AT-verio.net>.
2714
2717
2715 2003-08-20 Fernando Perez <fperez@colorado.edu>
2718 2003-08-20 Fernando Perez <fperez@colorado.edu>
2716
2719
2717 * IPython/OInspect.py (Inspector.pinfo): changed String Form
2720 * IPython/OInspect.py (Inspector.pinfo): changed String Form
2718 printing so that it would print multi-line string forms starting
2721 printing so that it would print multi-line string forms starting
2719 with a new line. This way the formatting is better respected for
2722 with a new line. This way the formatting is better respected for
2720 objects which work hard to make nice string forms.
2723 objects which work hard to make nice string forms.
2721
2724
2722 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
2725 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
2723 autocall would overtake data access for objects with both
2726 autocall would overtake data access for objects with both
2724 __getitem__ and __call__.
2727 __getitem__ and __call__.
2725
2728
2726 2003-08-19 *** Released version 0.5.0-rc1
2729 2003-08-19 *** Released version 0.5.0-rc1
2727
2730
2728 2003-08-19 Fernando Perez <fperez@colorado.edu>
2731 2003-08-19 Fernando Perez <fperez@colorado.edu>
2729
2732
2730 * IPython/deep_reload.py (load_tail): single tiny change here
2733 * IPython/deep_reload.py (load_tail): single tiny change here
2731 seems to fix the long-standing bug of dreload() failing to work
2734 seems to fix the long-standing bug of dreload() failing to work
2732 for dotted names. But this module is pretty tricky, so I may have
2735 for dotted names. But this module is pretty tricky, so I may have
2733 missed some subtlety. Needs more testing!.
2736 missed some subtlety. Needs more testing!.
2734
2737
2735 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
2738 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
2736 exceptions which have badly implemented __str__ methods.
2739 exceptions which have badly implemented __str__ methods.
2737 (VerboseTB.text): harden against inspect.getinnerframes crashing,
2740 (VerboseTB.text): harden against inspect.getinnerframes crashing,
2738 which I've been getting reports about from Python 2.3 users. I
2741 which I've been getting reports about from Python 2.3 users. I
2739 wish I had a simple test case to reproduce the problem, so I could
2742 wish I had a simple test case to reproduce the problem, so I could
2740 either write a cleaner workaround or file a bug report if
2743 either write a cleaner workaround or file a bug report if
2741 necessary.
2744 necessary.
2742
2745
2743 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
2746 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
2744 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
2747 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
2745 a bug report by Tjabo Kloppenburg.
2748 a bug report by Tjabo Kloppenburg.
2746
2749
2747 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
2750 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
2748 crashes. Wrapped the pdb call in a blanket try/except, since pdb
2751 crashes. Wrapped the pdb call in a blanket try/except, since pdb
2749 seems rather unstable. Thanks to a bug report by Tjabo
2752 seems rather unstable. Thanks to a bug report by Tjabo
2750 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
2753 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
2751
2754
2752 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
2755 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
2753 this out soon because of the critical fixes in the inner loop for
2756 this out soon because of the critical fixes in the inner loop for
2754 generators.
2757 generators.
2755
2758
2756 * IPython/Magic.py (Magic.getargspec): removed. This (and
2759 * IPython/Magic.py (Magic.getargspec): removed. This (and
2757 _get_def) have been obsoleted by OInspect for a long time, I
2760 _get_def) have been obsoleted by OInspect for a long time, I
2758 hadn't noticed that they were dead code.
2761 hadn't noticed that they were dead code.
2759 (Magic._ofind): restored _ofind functionality for a few literals
2762 (Magic._ofind): restored _ofind functionality for a few literals
2760 (those in ["''",'""','[]','{}','()']). But it won't work anymore
2763 (those in ["''",'""','[]','{}','()']). But it won't work anymore
2761 for things like "hello".capitalize?, since that would require a
2764 for things like "hello".capitalize?, since that would require a
2762 potentially dangerous eval() again.
2765 potentially dangerous eval() again.
2763
2766
2764 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
2767 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
2765 logic a bit more to clean up the escapes handling and minimize the
2768 logic a bit more to clean up the escapes handling and minimize the
2766 use of _ofind to only necessary cases. The interactive 'feel' of
2769 use of _ofind to only necessary cases. The interactive 'feel' of
2767 IPython should have improved quite a bit with the changes in
2770 IPython should have improved quite a bit with the changes in
2768 _prefilter and _ofind (besides being far safer than before).
2771 _prefilter and _ofind (besides being far safer than before).
2769
2772
2770 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
2773 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
2771 obscure, never reported). Edit would fail to find the object to
2774 obscure, never reported). Edit would fail to find the object to
2772 edit under some circumstances.
2775 edit under some circumstances.
2773 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
2776 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
2774 which were causing double-calling of generators. Those eval calls
2777 which were causing double-calling of generators. Those eval calls
2775 were _very_ dangerous, since code with side effects could be
2778 were _very_ dangerous, since code with side effects could be
2776 triggered. As they say, 'eval is evil'... These were the
2779 triggered. As they say, 'eval is evil'... These were the
2777 nastiest evals in IPython. Besides, _ofind is now far simpler,
2780 nastiest evals in IPython. Besides, _ofind is now far simpler,
2778 and it should also be quite a bit faster. Its use of inspect is
2781 and it should also be quite a bit faster. Its use of inspect is
2779 also safer, so perhaps some of the inspect-related crashes I've
2782 also safer, so perhaps some of the inspect-related crashes I've
2780 seen lately with Python 2.3 might be taken care of. That will
2783 seen lately with Python 2.3 might be taken care of. That will
2781 need more testing.
2784 need more testing.
2782
2785
2783 2003-08-17 Fernando Perez <fperez@colorado.edu>
2786 2003-08-17 Fernando Perez <fperez@colorado.edu>
2784
2787
2785 * IPython/iplib.py (InteractiveShell._prefilter): significant
2788 * IPython/iplib.py (InteractiveShell._prefilter): significant
2786 simplifications to the logic for handling user escapes. Faster
2789 simplifications to the logic for handling user escapes. Faster
2787 and simpler code.
2790 and simpler code.
2788
2791
2789 2003-08-14 Fernando Perez <fperez@colorado.edu>
2792 2003-08-14 Fernando Perez <fperez@colorado.edu>
2790
2793
2791 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
2794 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
2792 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
2795 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
2793 but it should be quite a bit faster. And the recursive version
2796 but it should be quite a bit faster. And the recursive version
2794 generated O(log N) intermediate storage for all rank>1 arrays,
2797 generated O(log N) intermediate storage for all rank>1 arrays,
2795 even if they were contiguous.
2798 even if they were contiguous.
2796 (l1norm): Added this function.
2799 (l1norm): Added this function.
2797 (norm): Added this function for arbitrary norms (including
2800 (norm): Added this function for arbitrary norms (including
2798 l-infinity). l1 and l2 are still special cases for convenience
2801 l-infinity). l1 and l2 are still special cases for convenience
2799 and speed.
2802 and speed.
2800
2803
2801 2003-08-03 Fernando Perez <fperez@colorado.edu>
2804 2003-08-03 Fernando Perez <fperez@colorado.edu>
2802
2805
2803 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
2806 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
2804 exceptions, which now raise PendingDeprecationWarnings in Python
2807 exceptions, which now raise PendingDeprecationWarnings in Python
2805 2.3. There were some in Magic and some in Gnuplot2.
2808 2.3. There were some in Magic and some in Gnuplot2.
2806
2809
2807 2003-06-30 Fernando Perez <fperez@colorado.edu>
2810 2003-06-30 Fernando Perez <fperez@colorado.edu>
2808
2811
2809 * IPython/genutils.py (page): modified to call curses only for
2812 * IPython/genutils.py (page): modified to call curses only for
2810 terminals where TERM=='xterm'. After problems under many other
2813 terminals where TERM=='xterm'. After problems under many other
2811 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
2814 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
2812
2815
2813 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
2816 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
2814 would be triggered when readline was absent. This was just an old
2817 would be triggered when readline was absent. This was just an old
2815 debugging statement I'd forgotten to take out.
2818 debugging statement I'd forgotten to take out.
2816
2819
2817 2003-06-20 Fernando Perez <fperez@colorado.edu>
2820 2003-06-20 Fernando Perez <fperez@colorado.edu>
2818
2821
2819 * IPython/genutils.py (clock): modified to return only user time
2822 * IPython/genutils.py (clock): modified to return only user time
2820 (not counting system time), after a discussion on scipy. While
2823 (not counting system time), after a discussion on scipy. While
2821 system time may be a useful quantity occasionally, it may much
2824 system time may be a useful quantity occasionally, it may much
2822 more easily be skewed by occasional swapping or other similar
2825 more easily be skewed by occasional swapping or other similar
2823 activity.
2826 activity.
2824
2827
2825 2003-06-05 Fernando Perez <fperez@colorado.edu>
2828 2003-06-05 Fernando Perez <fperez@colorado.edu>
2826
2829
2827 * IPython/numutils.py (identity): new function, for building
2830 * IPython/numutils.py (identity): new function, for building
2828 arbitrary rank Kronecker deltas (mostly backwards compatible with
2831 arbitrary rank Kronecker deltas (mostly backwards compatible with
2829 Numeric.identity)
2832 Numeric.identity)
2830
2833
2831 2003-06-03 Fernando Perez <fperez@colorado.edu>
2834 2003-06-03 Fernando Perez <fperez@colorado.edu>
2832
2835
2833 * IPython/iplib.py (InteractiveShell.handle_magic): protect
2836 * IPython/iplib.py (InteractiveShell.handle_magic): protect
2834 arguments passed to magics with spaces, to allow trailing '\' to
2837 arguments passed to magics with spaces, to allow trailing '\' to
2835 work normally (mainly for Windows users).
2838 work normally (mainly for Windows users).
2836
2839
2837 2003-05-29 Fernando Perez <fperez@colorado.edu>
2840 2003-05-29 Fernando Perez <fperez@colorado.edu>
2838
2841
2839 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
2842 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
2840 instead of pydoc.help. This fixes a bizarre behavior where
2843 instead of pydoc.help. This fixes a bizarre behavior where
2841 printing '%s' % locals() would trigger the help system. Now
2844 printing '%s' % locals() would trigger the help system. Now
2842 ipython behaves like normal python does.
2845 ipython behaves like normal python does.
2843
2846
2844 Note that if one does 'from pydoc import help', the bizarre
2847 Note that if one does 'from pydoc import help', the bizarre
2845 behavior returns, but this will also happen in normal python, so
2848 behavior returns, but this will also happen in normal python, so
2846 it's not an ipython bug anymore (it has to do with how pydoc.help
2849 it's not an ipython bug anymore (it has to do with how pydoc.help
2847 is implemented).
2850 is implemented).
2848
2851
2849 2003-05-22 Fernando Perez <fperez@colorado.edu>
2852 2003-05-22 Fernando Perez <fperez@colorado.edu>
2850
2853
2851 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
2854 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
2852 return [] instead of None when nothing matches, also match to end
2855 return [] instead of None when nothing matches, also match to end
2853 of line. Patch by Gary Bishop.
2856 of line. Patch by Gary Bishop.
2854
2857
2855 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
2858 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
2856 protection as before, for files passed on the command line. This
2859 protection as before, for files passed on the command line. This
2857 prevents the CrashHandler from kicking in if user files call into
2860 prevents the CrashHandler from kicking in if user files call into
2858 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
2861 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
2859 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
2862 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
2860
2863
2861 2003-05-20 *** Released version 0.4.0
2864 2003-05-20 *** Released version 0.4.0
2862
2865
2863 2003-05-20 Fernando Perez <fperez@colorado.edu>
2866 2003-05-20 Fernando Perez <fperez@colorado.edu>
2864
2867
2865 * setup.py: added support for manpages. It's a bit hackish b/c of
2868 * setup.py: added support for manpages. It's a bit hackish b/c of
2866 a bug in the way the bdist_rpm distutils target handles gzipped
2869 a bug in the way the bdist_rpm distutils target handles gzipped
2867 manpages, but it works. After a patch by Jack.
2870 manpages, but it works. After a patch by Jack.
2868
2871
2869 2003-05-19 Fernando Perez <fperez@colorado.edu>
2872 2003-05-19 Fernando Perez <fperez@colorado.edu>
2870
2873
2871 * IPython/numutils.py: added a mockup of the kinds module, since
2874 * IPython/numutils.py: added a mockup of the kinds module, since
2872 it was recently removed from Numeric. This way, numutils will
2875 it was recently removed from Numeric. This way, numutils will
2873 work for all users even if they are missing kinds.
2876 work for all users even if they are missing kinds.
2874
2877
2875 * IPython/Magic.py (Magic._ofind): Harden against an inspect
2878 * IPython/Magic.py (Magic._ofind): Harden against an inspect
2876 failure, which can occur with SWIG-wrapped extensions. After a
2879 failure, which can occur with SWIG-wrapped extensions. After a
2877 crash report from Prabhu.
2880 crash report from Prabhu.
2878
2881
2879 2003-05-16 Fernando Perez <fperez@colorado.edu>
2882 2003-05-16 Fernando Perez <fperez@colorado.edu>
2880
2883
2881 * IPython/iplib.py (InteractiveShell.excepthook): New method to
2884 * IPython/iplib.py (InteractiveShell.excepthook): New method to
2882 protect ipython from user code which may call directly
2885 protect ipython from user code which may call directly
2883 sys.excepthook (this looks like an ipython crash to the user, even
2886 sys.excepthook (this looks like an ipython crash to the user, even
2884 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2887 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2885 This is especially important to help users of WxWindows, but may
2888 This is especially important to help users of WxWindows, but may
2886 also be useful in other cases.
2889 also be useful in other cases.
2887
2890
2888 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
2891 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
2889 an optional tb_offset to be specified, and to preserve exception
2892 an optional tb_offset to be specified, and to preserve exception
2890 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2893 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2891
2894
2892 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
2895 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
2893
2896
2894 2003-05-15 Fernando Perez <fperez@colorado.edu>
2897 2003-05-15 Fernando Perez <fperez@colorado.edu>
2895
2898
2896 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
2899 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
2897 installing for a new user under Windows.
2900 installing for a new user under Windows.
2898
2901
2899 2003-05-12 Fernando Perez <fperez@colorado.edu>
2902 2003-05-12 Fernando Perez <fperez@colorado.edu>
2900
2903
2901 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
2904 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
2902 handler for Emacs comint-based lines. Currently it doesn't do
2905 handler for Emacs comint-based lines. Currently it doesn't do
2903 much (but importantly, it doesn't update the history cache). In
2906 much (but importantly, it doesn't update the history cache). In
2904 the future it may be expanded if Alex needs more functionality
2907 the future it may be expanded if Alex needs more functionality
2905 there.
2908 there.
2906
2909
2907 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
2910 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
2908 info to crash reports.
2911 info to crash reports.
2909
2912
2910 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
2913 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
2911 just like Python's -c. Also fixed crash with invalid -color
2914 just like Python's -c. Also fixed crash with invalid -color
2912 option value at startup. Thanks to Will French
2915 option value at startup. Thanks to Will French
2913 <wfrench-AT-bestweb.net> for the bug report.
2916 <wfrench-AT-bestweb.net> for the bug report.
2914
2917
2915 2003-05-09 Fernando Perez <fperez@colorado.edu>
2918 2003-05-09 Fernando Perez <fperez@colorado.edu>
2916
2919
2917 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
2920 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
2918 to EvalDict (it's a mapping, after all) and simplified its code
2921 to EvalDict (it's a mapping, after all) and simplified its code
2919 quite a bit, after a nice discussion on c.l.py where Gustavo
2922 quite a bit, after a nice discussion on c.l.py where Gustavo
2920 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
2923 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
2921
2924
2922 2003-04-30 Fernando Perez <fperez@colorado.edu>
2925 2003-04-30 Fernando Perez <fperez@colorado.edu>
2923
2926
2924 * IPython/genutils.py (timings_out): modified it to reduce its
2927 * IPython/genutils.py (timings_out): modified it to reduce its
2925 overhead in the common reps==1 case.
2928 overhead in the common reps==1 case.
2926
2929
2927 2003-04-29 Fernando Perez <fperez@colorado.edu>
2930 2003-04-29 Fernando Perez <fperez@colorado.edu>
2928
2931
2929 * IPython/genutils.py (timings_out): Modified to use the resource
2932 * IPython/genutils.py (timings_out): Modified to use the resource
2930 module, which avoids the wraparound problems of time.clock().
2933 module, which avoids the wraparound problems of time.clock().
2931
2934
2932 2003-04-17 *** Released version 0.2.15pre4
2935 2003-04-17 *** Released version 0.2.15pre4
2933
2936
2934 2003-04-17 Fernando Perez <fperez@colorado.edu>
2937 2003-04-17 Fernando Perez <fperez@colorado.edu>
2935
2938
2936 * setup.py (scriptfiles): Split windows-specific stuff over to a
2939 * setup.py (scriptfiles): Split windows-specific stuff over to a
2937 separate file, in an attempt to have a Windows GUI installer.
2940 separate file, in an attempt to have a Windows GUI installer.
2938 That didn't work, but part of the groundwork is done.
2941 That didn't work, but part of the groundwork is done.
2939
2942
2940 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
2943 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
2941 indent/unindent with 4 spaces. Particularly useful in combination
2944 indent/unindent with 4 spaces. Particularly useful in combination
2942 with the new auto-indent option.
2945 with the new auto-indent option.
2943
2946
2944 2003-04-16 Fernando Perez <fperez@colorado.edu>
2947 2003-04-16 Fernando Perez <fperez@colorado.edu>
2945
2948
2946 * IPython/Magic.py: various replacements of self.rc for
2949 * IPython/Magic.py: various replacements of self.rc for
2947 self.shell.rc. A lot more remains to be done to fully disentangle
2950 self.shell.rc. A lot more remains to be done to fully disentangle
2948 this class from the main Shell class.
2951 this class from the main Shell class.
2949
2952
2950 * IPython/GnuplotRuntime.py: added checks for mouse support so
2953 * IPython/GnuplotRuntime.py: added checks for mouse support so
2951 that we don't try to enable it if the current gnuplot doesn't
2954 that we don't try to enable it if the current gnuplot doesn't
2952 really support it. Also added checks so that we don't try to
2955 really support it. Also added checks so that we don't try to
2953 enable persist under Windows (where Gnuplot doesn't recognize the
2956 enable persist under Windows (where Gnuplot doesn't recognize the
2954 option).
2957 option).
2955
2958
2956 * IPython/iplib.py (InteractiveShell.interact): Added optional
2959 * IPython/iplib.py (InteractiveShell.interact): Added optional
2957 auto-indenting code, after a patch by King C. Shu
2960 auto-indenting code, after a patch by King C. Shu
2958 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
2961 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
2959 get along well with pasting indented code. If I ever figure out
2962 get along well with pasting indented code. If I ever figure out
2960 how to make that part go well, it will become on by default.
2963 how to make that part go well, it will become on by default.
2961
2964
2962 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
2965 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
2963 crash ipython if there was an unmatched '%' in the user's prompt
2966 crash ipython if there was an unmatched '%' in the user's prompt
2964 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
2967 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
2965
2968
2966 * IPython/iplib.py (InteractiveShell.interact): removed the
2969 * IPython/iplib.py (InteractiveShell.interact): removed the
2967 ability to ask the user whether he wants to crash or not at the
2970 ability to ask the user whether he wants to crash or not at the
2968 'last line' exception handler. Calling functions at that point
2971 'last line' exception handler. Calling functions at that point
2969 changes the stack, and the error reports would have incorrect
2972 changes the stack, and the error reports would have incorrect
2970 tracebacks.
2973 tracebacks.
2971
2974
2972 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
2975 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
2973 pass through a peger a pretty-printed form of any object. After a
2976 pass through a peger a pretty-printed form of any object. After a
2974 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
2977 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
2975
2978
2976 2003-04-14 Fernando Perez <fperez@colorado.edu>
2979 2003-04-14 Fernando Perez <fperez@colorado.edu>
2977
2980
2978 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
2981 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
2979 all files in ~ would be modified at first install (instead of
2982 all files in ~ would be modified at first install (instead of
2980 ~/.ipython). This could be potentially disastrous, as the
2983 ~/.ipython). This could be potentially disastrous, as the
2981 modification (make line-endings native) could damage binary files.
2984 modification (make line-endings native) could damage binary files.
2982
2985
2983 2003-04-10 Fernando Perez <fperez@colorado.edu>
2986 2003-04-10 Fernando Perez <fperez@colorado.edu>
2984
2987
2985 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
2988 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
2986 handle only lines which are invalid python. This now means that
2989 handle only lines which are invalid python. This now means that
2987 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
2990 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
2988 for the bug report.
2991 for the bug report.
2989
2992
2990 2003-04-01 Fernando Perez <fperez@colorado.edu>
2993 2003-04-01 Fernando Perez <fperez@colorado.edu>
2991
2994
2992 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
2995 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
2993 where failing to set sys.last_traceback would crash pdb.pm().
2996 where failing to set sys.last_traceback would crash pdb.pm().
2994 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
2997 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
2995 report.
2998 report.
2996
2999
2997 2003-03-25 Fernando Perez <fperez@colorado.edu>
3000 2003-03-25 Fernando Perez <fperez@colorado.edu>
2998
3001
2999 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3002 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3000 before printing it (it had a lot of spurious blank lines at the
3003 before printing it (it had a lot of spurious blank lines at the
3001 end).
3004 end).
3002
3005
3003 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3006 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3004 output would be sent 21 times! Obviously people don't use this
3007 output would be sent 21 times! Obviously people don't use this
3005 too often, or I would have heard about it.
3008 too often, or I would have heard about it.
3006
3009
3007 2003-03-24 Fernando Perez <fperez@colorado.edu>
3010 2003-03-24 Fernando Perez <fperez@colorado.edu>
3008
3011
3009 * setup.py (scriptfiles): renamed the data_files parameter from
3012 * setup.py (scriptfiles): renamed the data_files parameter from
3010 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3013 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3011 for the patch.
3014 for the patch.
3012
3015
3013 2003-03-20 Fernando Perez <fperez@colorado.edu>
3016 2003-03-20 Fernando Perez <fperez@colorado.edu>
3014
3017
3015 * IPython/genutils.py (error): added error() and fatal()
3018 * IPython/genutils.py (error): added error() and fatal()
3016 functions.
3019 functions.
3017
3020
3018 2003-03-18 *** Released version 0.2.15pre3
3021 2003-03-18 *** Released version 0.2.15pre3
3019
3022
3020 2003-03-18 Fernando Perez <fperez@colorado.edu>
3023 2003-03-18 Fernando Perez <fperez@colorado.edu>
3021
3024
3022 * setupext/install_data_ext.py
3025 * setupext/install_data_ext.py
3023 (install_data_ext.initialize_options): Class contributed by Jack
3026 (install_data_ext.initialize_options): Class contributed by Jack
3024 Moffit for fixing the old distutils hack. He is sending this to
3027 Moffit for fixing the old distutils hack. He is sending this to
3025 the distutils folks so in the future we may not need it as a
3028 the distutils folks so in the future we may not need it as a
3026 private fix.
3029 private fix.
3027
3030
3028 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3031 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3029 changes for Debian packaging. See his patch for full details.
3032 changes for Debian packaging. See his patch for full details.
3030 The old distutils hack of making the ipythonrc* files carry a
3033 The old distutils hack of making the ipythonrc* files carry a
3031 bogus .py extension is gone, at last. Examples were moved to a
3034 bogus .py extension is gone, at last. Examples were moved to a
3032 separate subdir under doc/, and the separate executable scripts
3035 separate subdir under doc/, and the separate executable scripts
3033 now live in their own directory. Overall a great cleanup. The
3036 now live in their own directory. Overall a great cleanup. The
3034 manual was updated to use the new files, and setup.py has been
3037 manual was updated to use the new files, and setup.py has been
3035 fixed for this setup.
3038 fixed for this setup.
3036
3039
3037 * IPython/PyColorize.py (Parser.usage): made non-executable and
3040 * IPython/PyColorize.py (Parser.usage): made non-executable and
3038 created a pycolor wrapper around it to be included as a script.
3041 created a pycolor wrapper around it to be included as a script.
3039
3042
3040 2003-03-12 *** Released version 0.2.15pre2
3043 2003-03-12 *** Released version 0.2.15pre2
3041
3044
3042 2003-03-12 Fernando Perez <fperez@colorado.edu>
3045 2003-03-12 Fernando Perez <fperez@colorado.edu>
3043
3046
3044 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3047 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3045 long-standing problem with garbage characters in some terminals.
3048 long-standing problem with garbage characters in some terminals.
3046 The issue was really that the \001 and \002 escapes must _only_ be
3049 The issue was really that the \001 and \002 escapes must _only_ be
3047 passed to input prompts (which call readline), but _never_ to
3050 passed to input prompts (which call readline), but _never_ to
3048 normal text to be printed on screen. I changed ColorANSI to have
3051 normal text to be printed on screen. I changed ColorANSI to have
3049 two classes: TermColors and InputTermColors, each with the
3052 two classes: TermColors and InputTermColors, each with the
3050 appropriate escapes for input prompts or normal text. The code in
3053 appropriate escapes for input prompts or normal text. The code in
3051 Prompts.py got slightly more complicated, but this very old and
3054 Prompts.py got slightly more complicated, but this very old and
3052 annoying bug is finally fixed.
3055 annoying bug is finally fixed.
3053
3056
3054 All the credit for nailing down the real origin of this problem
3057 All the credit for nailing down the real origin of this problem
3055 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3058 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3056 *Many* thanks to him for spending quite a bit of effort on this.
3059 *Many* thanks to him for spending quite a bit of effort on this.
3057
3060
3058 2003-03-05 *** Released version 0.2.15pre1
3061 2003-03-05 *** Released version 0.2.15pre1
3059
3062
3060 2003-03-03 Fernando Perez <fperez@colorado.edu>
3063 2003-03-03 Fernando Perez <fperez@colorado.edu>
3061
3064
3062 * IPython/FakeModule.py: Moved the former _FakeModule to a
3065 * IPython/FakeModule.py: Moved the former _FakeModule to a
3063 separate file, because it's also needed by Magic (to fix a similar
3066 separate file, because it's also needed by Magic (to fix a similar
3064 pickle-related issue in @run).
3067 pickle-related issue in @run).
3065
3068
3066 2003-03-02 Fernando Perez <fperez@colorado.edu>
3069 2003-03-02 Fernando Perez <fperez@colorado.edu>
3067
3070
3068 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3071 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3069 the autocall option at runtime.
3072 the autocall option at runtime.
3070 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3073 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3071 across Magic.py to start separating Magic from InteractiveShell.
3074 across Magic.py to start separating Magic from InteractiveShell.
3072 (Magic._ofind): Fixed to return proper namespace for dotted
3075 (Magic._ofind): Fixed to return proper namespace for dotted
3073 names. Before, a dotted name would always return 'not currently
3076 names. Before, a dotted name would always return 'not currently
3074 defined', because it would find the 'parent'. s.x would be found,
3077 defined', because it would find the 'parent'. s.x would be found,
3075 but since 'x' isn't defined by itself, it would get confused.
3078 but since 'x' isn't defined by itself, it would get confused.
3076 (Magic.magic_run): Fixed pickling problems reported by Ralf
3079 (Magic.magic_run): Fixed pickling problems reported by Ralf
3077 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3080 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3078 that I'd used when Mike Heeter reported similar issues at the
3081 that I'd used when Mike Heeter reported similar issues at the
3079 top-level, but now for @run. It boils down to injecting the
3082 top-level, but now for @run. It boils down to injecting the
3080 namespace where code is being executed with something that looks
3083 namespace where code is being executed with something that looks
3081 enough like a module to fool pickle.dump(). Since a pickle stores
3084 enough like a module to fool pickle.dump(). Since a pickle stores
3082 a named reference to the importing module, we need this for
3085 a named reference to the importing module, we need this for
3083 pickles to save something sensible.
3086 pickles to save something sensible.
3084
3087
3085 * IPython/ipmaker.py (make_IPython): added an autocall option.
3088 * IPython/ipmaker.py (make_IPython): added an autocall option.
3086
3089
3087 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3090 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3088 the auto-eval code. Now autocalling is an option, and the code is
3091 the auto-eval code. Now autocalling is an option, and the code is
3089 also vastly safer. There is no more eval() involved at all.
3092 also vastly safer. There is no more eval() involved at all.
3090
3093
3091 2003-03-01 Fernando Perez <fperez@colorado.edu>
3094 2003-03-01 Fernando Perez <fperez@colorado.edu>
3092
3095
3093 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3096 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3094 dict with named keys instead of a tuple.
3097 dict with named keys instead of a tuple.
3095
3098
3096 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3099 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3097
3100
3098 * setup.py (make_shortcut): Fixed message about directories
3101 * setup.py (make_shortcut): Fixed message about directories
3099 created during Windows installation (the directories were ok, just
3102 created during Windows installation (the directories were ok, just
3100 the printed message was misleading). Thanks to Chris Liechti
3103 the printed message was misleading). Thanks to Chris Liechti
3101 <cliechti-AT-gmx.net> for the heads up.
3104 <cliechti-AT-gmx.net> for the heads up.
3102
3105
3103 2003-02-21 Fernando Perez <fperez@colorado.edu>
3106 2003-02-21 Fernando Perez <fperez@colorado.edu>
3104
3107
3105 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3108 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3106 of ValueError exception when checking for auto-execution. This
3109 of ValueError exception when checking for auto-execution. This
3107 one is raised by things like Numeric arrays arr.flat when the
3110 one is raised by things like Numeric arrays arr.flat when the
3108 array is non-contiguous.
3111 array is non-contiguous.
3109
3112
3110 2003-01-31 Fernando Perez <fperez@colorado.edu>
3113 2003-01-31 Fernando Perez <fperez@colorado.edu>
3111
3114
3112 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3115 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3113 not return any value at all (even though the command would get
3116 not return any value at all (even though the command would get
3114 executed).
3117 executed).
3115 (xsys): Flush stdout right after printing the command to ensure
3118 (xsys): Flush stdout right after printing the command to ensure
3116 proper ordering of commands and command output in the total
3119 proper ordering of commands and command output in the total
3117 output.
3120 output.
3118 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3121 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3119 system/getoutput as defaults. The old ones are kept for
3122 system/getoutput as defaults. The old ones are kept for
3120 compatibility reasons, so no code which uses this library needs
3123 compatibility reasons, so no code which uses this library needs
3121 changing.
3124 changing.
3122
3125
3123 2003-01-27 *** Released version 0.2.14
3126 2003-01-27 *** Released version 0.2.14
3124
3127
3125 2003-01-25 Fernando Perez <fperez@colorado.edu>
3128 2003-01-25 Fernando Perez <fperez@colorado.edu>
3126
3129
3127 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3130 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3128 functions defined in previous edit sessions could not be re-edited
3131 functions defined in previous edit sessions could not be re-edited
3129 (because the temp files were immediately removed). Now temp files
3132 (because the temp files were immediately removed). Now temp files
3130 are removed only at IPython's exit.
3133 are removed only at IPython's exit.
3131 (Magic.magic_run): Improved @run to perform shell-like expansions
3134 (Magic.magic_run): Improved @run to perform shell-like expansions
3132 on its arguments (~users and $VARS). With this, @run becomes more
3135 on its arguments (~users and $VARS). With this, @run becomes more
3133 like a normal command-line.
3136 like a normal command-line.
3134
3137
3135 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3138 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3136 bugs related to embedding and cleaned up that code. A fairly
3139 bugs related to embedding and cleaned up that code. A fairly
3137 important one was the impossibility to access the global namespace
3140 important one was the impossibility to access the global namespace
3138 through the embedded IPython (only local variables were visible).
3141 through the embedded IPython (only local variables were visible).
3139
3142
3140 2003-01-14 Fernando Perez <fperez@colorado.edu>
3143 2003-01-14 Fernando Perez <fperez@colorado.edu>
3141
3144
3142 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3145 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3143 auto-calling to be a bit more conservative. Now it doesn't get
3146 auto-calling to be a bit more conservative. Now it doesn't get
3144 triggered if any of '!=()<>' are in the rest of the input line, to
3147 triggered if any of '!=()<>' are in the rest of the input line, to
3145 allow comparing callables. Thanks to Alex for the heads up.
3148 allow comparing callables. Thanks to Alex for the heads up.
3146
3149
3147 2003-01-07 Fernando Perez <fperez@colorado.edu>
3150 2003-01-07 Fernando Perez <fperez@colorado.edu>
3148
3151
3149 * IPython/genutils.py (page): fixed estimation of the number of
3152 * IPython/genutils.py (page): fixed estimation of the number of
3150 lines in a string to be paged to simply count newlines. This
3153 lines in a string to be paged to simply count newlines. This
3151 prevents over-guessing due to embedded escape sequences. A better
3154 prevents over-guessing due to embedded escape sequences. A better
3152 long-term solution would involve stripping out the control chars
3155 long-term solution would involve stripping out the control chars
3153 for the count, but it's potentially so expensive I just don't
3156 for the count, but it's potentially so expensive I just don't
3154 think it's worth doing.
3157 think it's worth doing.
3155
3158
3156 2002-12-19 *** Released version 0.2.14pre50
3159 2002-12-19 *** Released version 0.2.14pre50
3157
3160
3158 2002-12-19 Fernando Perez <fperez@colorado.edu>
3161 2002-12-19 Fernando Perez <fperez@colorado.edu>
3159
3162
3160 * tools/release (version): Changed release scripts to inform
3163 * tools/release (version): Changed release scripts to inform
3161 Andrea and build a NEWS file with a list of recent changes.
3164 Andrea and build a NEWS file with a list of recent changes.
3162
3165
3163 * IPython/ColorANSI.py (__all__): changed terminal detection
3166 * IPython/ColorANSI.py (__all__): changed terminal detection
3164 code. Seems to work better for xterms without breaking
3167 code. Seems to work better for xterms without breaking
3165 konsole. Will need more testing to determine if WinXP and Mac OSX
3168 konsole. Will need more testing to determine if WinXP and Mac OSX
3166 also work ok.
3169 also work ok.
3167
3170
3168 2002-12-18 *** Released version 0.2.14pre49
3171 2002-12-18 *** Released version 0.2.14pre49
3169
3172
3170 2002-12-18 Fernando Perez <fperez@colorado.edu>
3173 2002-12-18 Fernando Perez <fperez@colorado.edu>
3171
3174
3172 * Docs: added new info about Mac OSX, from Andrea.
3175 * Docs: added new info about Mac OSX, from Andrea.
3173
3176
3174 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3177 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3175 allow direct plotting of python strings whose format is the same
3178 allow direct plotting of python strings whose format is the same
3176 of gnuplot data files.
3179 of gnuplot data files.
3177
3180
3178 2002-12-16 Fernando Perez <fperez@colorado.edu>
3181 2002-12-16 Fernando Perez <fperez@colorado.edu>
3179
3182
3180 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3183 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3181 value of exit question to be acknowledged.
3184 value of exit question to be acknowledged.
3182
3185
3183 2002-12-03 Fernando Perez <fperez@colorado.edu>
3186 2002-12-03 Fernando Perez <fperez@colorado.edu>
3184
3187
3185 * IPython/ipmaker.py: removed generators, which had been added
3188 * IPython/ipmaker.py: removed generators, which had been added
3186 by mistake in an earlier debugging run. This was causing trouble
3189 by mistake in an earlier debugging run. This was causing trouble
3187 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3190 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3188 for pointing this out.
3191 for pointing this out.
3189
3192
3190 2002-11-17 Fernando Perez <fperez@colorado.edu>
3193 2002-11-17 Fernando Perez <fperez@colorado.edu>
3191
3194
3192 * Manual: updated the Gnuplot section.
3195 * Manual: updated the Gnuplot section.
3193
3196
3194 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3197 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3195 a much better split of what goes in Runtime and what goes in
3198 a much better split of what goes in Runtime and what goes in
3196 Interactive.
3199 Interactive.
3197
3200
3198 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3201 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3199 being imported from iplib.
3202 being imported from iplib.
3200
3203
3201 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3204 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3202 for command-passing. Now the global Gnuplot instance is called
3205 for command-passing. Now the global Gnuplot instance is called
3203 'gp' instead of 'g', which was really a far too fragile and
3206 'gp' instead of 'g', which was really a far too fragile and
3204 common name.
3207 common name.
3205
3208
3206 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3209 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3207 bounding boxes generated by Gnuplot for square plots.
3210 bounding boxes generated by Gnuplot for square plots.
3208
3211
3209 * IPython/genutils.py (popkey): new function added. I should
3212 * IPython/genutils.py (popkey): new function added. I should
3210 suggest this on c.l.py as a dict method, it seems useful.
3213 suggest this on c.l.py as a dict method, it seems useful.
3211
3214
3212 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3215 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3213 to transparently handle PostScript generation. MUCH better than
3216 to transparently handle PostScript generation. MUCH better than
3214 the previous plot_eps/replot_eps (which I removed now). The code
3217 the previous plot_eps/replot_eps (which I removed now). The code
3215 is also fairly clean and well documented now (including
3218 is also fairly clean and well documented now (including
3216 docstrings).
3219 docstrings).
3217
3220
3218 2002-11-13 Fernando Perez <fperez@colorado.edu>
3221 2002-11-13 Fernando Perez <fperez@colorado.edu>
3219
3222
3220 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3223 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3221 (inconsistent with options).
3224 (inconsistent with options).
3222
3225
3223 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3226 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3224 manually disabled, I don't know why. Fixed it.
3227 manually disabled, I don't know why. Fixed it.
3225 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3228 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3226 eps output.
3229 eps output.
3227
3230
3228 2002-11-12 Fernando Perez <fperez@colorado.edu>
3231 2002-11-12 Fernando Perez <fperez@colorado.edu>
3229
3232
3230 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3233 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3231 don't propagate up to caller. Fixes crash reported by François
3234 don't propagate up to caller. Fixes crash reported by François
3232 Pinard.
3235 Pinard.
3233
3236
3234 2002-11-09 Fernando Perez <fperez@colorado.edu>
3237 2002-11-09 Fernando Perez <fperez@colorado.edu>
3235
3238
3236 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3239 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3237 history file for new users.
3240 history file for new users.
3238 (make_IPython): fixed bug where initial install would leave the
3241 (make_IPython): fixed bug where initial install would leave the
3239 user running in the .ipython dir.
3242 user running in the .ipython dir.
3240 (make_IPython): fixed bug where config dir .ipython would be
3243 (make_IPython): fixed bug where config dir .ipython would be
3241 created regardless of the given -ipythondir option. Thanks to Cory
3244 created regardless of the given -ipythondir option. Thanks to Cory
3242 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3245 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3243
3246
3244 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3247 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3245 type confirmations. Will need to use it in all of IPython's code
3248 type confirmations. Will need to use it in all of IPython's code
3246 consistently.
3249 consistently.
3247
3250
3248 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3251 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3249 context to print 31 lines instead of the default 5. This will make
3252 context to print 31 lines instead of the default 5. This will make
3250 the crash reports extremely detailed in case the problem is in
3253 the crash reports extremely detailed in case the problem is in
3251 libraries I don't have access to.
3254 libraries I don't have access to.
3252
3255
3253 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3256 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3254 line of defense' code to still crash, but giving users fair
3257 line of defense' code to still crash, but giving users fair
3255 warning. I don't want internal errors to go unreported: if there's
3258 warning. I don't want internal errors to go unreported: if there's
3256 an internal problem, IPython should crash and generate a full
3259 an internal problem, IPython should crash and generate a full
3257 report.
3260 report.
3258
3261
3259 2002-11-08 Fernando Perez <fperez@colorado.edu>
3262 2002-11-08 Fernando Perez <fperez@colorado.edu>
3260
3263
3261 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3264 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3262 otherwise uncaught exceptions which can appear if people set
3265 otherwise uncaught exceptions which can appear if people set
3263 sys.stdout to something badly broken. Thanks to a crash report
3266 sys.stdout to something badly broken. Thanks to a crash report
3264 from henni-AT-mail.brainbot.com.
3267 from henni-AT-mail.brainbot.com.
3265
3268
3266 2002-11-04 Fernando Perez <fperez@colorado.edu>
3269 2002-11-04 Fernando Perez <fperez@colorado.edu>
3267
3270
3268 * IPython/iplib.py (InteractiveShell.interact): added
3271 * IPython/iplib.py (InteractiveShell.interact): added
3269 __IPYTHON__active to the builtins. It's a flag which goes on when
3272 __IPYTHON__active to the builtins. It's a flag which goes on when
3270 the interaction starts and goes off again when it stops. This
3273 the interaction starts and goes off again when it stops. This
3271 allows embedding code to detect being inside IPython. Before this
3274 allows embedding code to detect being inside IPython. Before this
3272 was done via __IPYTHON__, but that only shows that an IPython
3275 was done via __IPYTHON__, but that only shows that an IPython
3273 instance has been created.
3276 instance has been created.
3274
3277
3275 * IPython/Magic.py (Magic.magic_env): I realized that in a
3278 * IPython/Magic.py (Magic.magic_env): I realized that in a
3276 UserDict, instance.data holds the data as a normal dict. So I
3279 UserDict, instance.data holds the data as a normal dict. So I
3277 modified @env to return os.environ.data instead of rebuilding a
3280 modified @env to return os.environ.data instead of rebuilding a
3278 dict by hand.
3281 dict by hand.
3279
3282
3280 2002-11-02 Fernando Perez <fperez@colorado.edu>
3283 2002-11-02 Fernando Perez <fperez@colorado.edu>
3281
3284
3282 * IPython/genutils.py (warn): changed so that level 1 prints no
3285 * IPython/genutils.py (warn): changed so that level 1 prints no
3283 header. Level 2 is now the default (with 'WARNING' header, as
3286 header. Level 2 is now the default (with 'WARNING' header, as
3284 before). I think I tracked all places where changes were needed in
3287 before). I think I tracked all places where changes were needed in
3285 IPython, but outside code using the old level numbering may have
3288 IPython, but outside code using the old level numbering may have
3286 broken.
3289 broken.
3287
3290
3288 * IPython/iplib.py (InteractiveShell.runcode): added this to
3291 * IPython/iplib.py (InteractiveShell.runcode): added this to
3289 handle the tracebacks in SystemExit traps correctly. The previous
3292 handle the tracebacks in SystemExit traps correctly. The previous
3290 code (through interact) was printing more of the stack than
3293 code (through interact) was printing more of the stack than
3291 necessary, showing IPython internal code to the user.
3294 necessary, showing IPython internal code to the user.
3292
3295
3293 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3296 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3294 default. Now that the default at the confirmation prompt is yes,
3297 default. Now that the default at the confirmation prompt is yes,
3295 it's not so intrusive. François' argument that ipython sessions
3298 it's not so intrusive. François' argument that ipython sessions
3296 tend to be complex enough not to lose them from an accidental C-d,
3299 tend to be complex enough not to lose them from an accidental C-d,
3297 is a valid one.
3300 is a valid one.
3298
3301
3299 * IPython/iplib.py (InteractiveShell.interact): added a
3302 * IPython/iplib.py (InteractiveShell.interact): added a
3300 showtraceback() call to the SystemExit trap, and modified the exit
3303 showtraceback() call to the SystemExit trap, and modified the exit
3301 confirmation to have yes as the default.
3304 confirmation to have yes as the default.
3302
3305
3303 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3306 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3304 this file. It's been gone from the code for a long time, this was
3307 this file. It's been gone from the code for a long time, this was
3305 simply leftover junk.
3308 simply leftover junk.
3306
3309
3307 2002-11-01 Fernando Perez <fperez@colorado.edu>
3310 2002-11-01 Fernando Perez <fperez@colorado.edu>
3308
3311
3309 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3312 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3310 added. If set, IPython now traps EOF and asks for
3313 added. If set, IPython now traps EOF and asks for
3311 confirmation. After a request by François Pinard.
3314 confirmation. After a request by François Pinard.
3312
3315
3313 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3316 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3314 of @abort, and with a new (better) mechanism for handling the
3317 of @abort, and with a new (better) mechanism for handling the
3315 exceptions.
3318 exceptions.
3316
3319
3317 2002-10-27 Fernando Perez <fperez@colorado.edu>
3320 2002-10-27 Fernando Perez <fperez@colorado.edu>
3318
3321
3319 * IPython/usage.py (__doc__): updated the --help information and
3322 * IPython/usage.py (__doc__): updated the --help information and
3320 the ipythonrc file to indicate that -log generates
3323 the ipythonrc file to indicate that -log generates
3321 ./ipython.log. Also fixed the corresponding info in @logstart.
3324 ./ipython.log. Also fixed the corresponding info in @logstart.
3322 This and several other fixes in the manuals thanks to reports by
3325 This and several other fixes in the manuals thanks to reports by
3323 François Pinard <pinard-AT-iro.umontreal.ca>.
3326 François Pinard <pinard-AT-iro.umontreal.ca>.
3324
3327
3325 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3328 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3326 refer to @logstart (instead of @log, which doesn't exist).
3329 refer to @logstart (instead of @log, which doesn't exist).
3327
3330
3328 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3331 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3329 AttributeError crash. Thanks to Christopher Armstrong
3332 AttributeError crash. Thanks to Christopher Armstrong
3330 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3333 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3331 introduced recently (in 0.2.14pre37) with the fix to the eval
3334 introduced recently (in 0.2.14pre37) with the fix to the eval
3332 problem mentioned below.
3335 problem mentioned below.
3333
3336
3334 2002-10-17 Fernando Perez <fperez@colorado.edu>
3337 2002-10-17 Fernando Perez <fperez@colorado.edu>
3335
3338
3336 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3339 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3337 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3340 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3338
3341
3339 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3342 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3340 this function to fix a problem reported by Alex Schmolck. He saw
3343 this function to fix a problem reported by Alex Schmolck. He saw
3341 it with list comprehensions and generators, which were getting
3344 it with list comprehensions and generators, which were getting
3342 called twice. The real problem was an 'eval' call in testing for
3345 called twice. The real problem was an 'eval' call in testing for
3343 automagic which was evaluating the input line silently.
3346 automagic which was evaluating the input line silently.
3344
3347
3345 This is a potentially very nasty bug, if the input has side
3348 This is a potentially very nasty bug, if the input has side
3346 effects which must not be repeated. The code is much cleaner now,
3349 effects which must not be repeated. The code is much cleaner now,
3347 without any blanket 'except' left and with a regexp test for
3350 without any blanket 'except' left and with a regexp test for
3348 actual function names.
3351 actual function names.
3349
3352
3350 But an eval remains, which I'm not fully comfortable with. I just
3353 But an eval remains, which I'm not fully comfortable with. I just
3351 don't know how to find out if an expression could be a callable in
3354 don't know how to find out if an expression could be a callable in
3352 the user's namespace without doing an eval on the string. However
3355 the user's namespace without doing an eval on the string. However
3353 that string is now much more strictly checked so that no code
3356 that string is now much more strictly checked so that no code
3354 slips by, so the eval should only happen for things that can
3357 slips by, so the eval should only happen for things that can
3355 really be only function/method names.
3358 really be only function/method names.
3356
3359
3357 2002-10-15 Fernando Perez <fperez@colorado.edu>
3360 2002-10-15 Fernando Perez <fperez@colorado.edu>
3358
3361
3359 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3362 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3360 OSX information to main manual, removed README_Mac_OSX file from
3363 OSX information to main manual, removed README_Mac_OSX file from
3361 distribution. Also updated credits for recent additions.
3364 distribution. Also updated credits for recent additions.
3362
3365
3363 2002-10-10 Fernando Perez <fperez@colorado.edu>
3366 2002-10-10 Fernando Perez <fperez@colorado.edu>
3364
3367
3365 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3368 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3366 terminal-related issues. Many thanks to Andrea Riciputi
3369 terminal-related issues. Many thanks to Andrea Riciputi
3367 <andrea.riciputi-AT-libero.it> for writing it.
3370 <andrea.riciputi-AT-libero.it> for writing it.
3368
3371
3369 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3372 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3370 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3373 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3371
3374
3372 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3375 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3373 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3376 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3374 <syver-en-AT-online.no> who both submitted patches for this problem.
3377 <syver-en-AT-online.no> who both submitted patches for this problem.
3375
3378
3376 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3379 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3377 global embedding to make sure that things don't overwrite user
3380 global embedding to make sure that things don't overwrite user
3378 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3381 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3379
3382
3380 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3383 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3381 compatibility. Thanks to Hayden Callow
3384 compatibility. Thanks to Hayden Callow
3382 <h.callow-AT-elec.canterbury.ac.nz>
3385 <h.callow-AT-elec.canterbury.ac.nz>
3383
3386
3384 2002-10-04 Fernando Perez <fperez@colorado.edu>
3387 2002-10-04 Fernando Perez <fperez@colorado.edu>
3385
3388
3386 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3389 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3387 Gnuplot.File objects.
3390 Gnuplot.File objects.
3388
3391
3389 2002-07-23 Fernando Perez <fperez@colorado.edu>
3392 2002-07-23 Fernando Perez <fperez@colorado.edu>
3390
3393
3391 * IPython/genutils.py (timing): Added timings() and timing() for
3394 * IPython/genutils.py (timing): Added timings() and timing() for
3392 quick access to the most commonly needed data, the execution
3395 quick access to the most commonly needed data, the execution
3393 times. Old timing() renamed to timings_out().
3396 times. Old timing() renamed to timings_out().
3394
3397
3395 2002-07-18 Fernando Perez <fperez@colorado.edu>
3398 2002-07-18 Fernando Perez <fperez@colorado.edu>
3396
3399
3397 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3400 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3398 bug with nested instances disrupting the parent's tab completion.
3401 bug with nested instances disrupting the parent's tab completion.
3399
3402
3400 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3403 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3401 all_completions code to begin the emacs integration.
3404 all_completions code to begin the emacs integration.
3402
3405
3403 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3406 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3404 argument to allow titling individual arrays when plotting.
3407 argument to allow titling individual arrays when plotting.
3405
3408
3406 2002-07-15 Fernando Perez <fperez@colorado.edu>
3409 2002-07-15 Fernando Perez <fperez@colorado.edu>
3407
3410
3408 * setup.py (make_shortcut): changed to retrieve the value of
3411 * setup.py (make_shortcut): changed to retrieve the value of
3409 'Program Files' directory from the registry (this value changes in
3412 'Program Files' directory from the registry (this value changes in
3410 non-english versions of Windows). Thanks to Thomas Fanslau
3413 non-english versions of Windows). Thanks to Thomas Fanslau
3411 <tfanslau-AT-gmx.de> for the report.
3414 <tfanslau-AT-gmx.de> for the report.
3412
3415
3413 2002-07-10 Fernando Perez <fperez@colorado.edu>
3416 2002-07-10 Fernando Perez <fperez@colorado.edu>
3414
3417
3415 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3418 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3416 a bug in pdb, which crashes if a line with only whitespace is
3419 a bug in pdb, which crashes if a line with only whitespace is
3417 entered. Bug report submitted to sourceforge.
3420 entered. Bug report submitted to sourceforge.
3418
3421
3419 2002-07-09 Fernando Perez <fperez@colorado.edu>
3422 2002-07-09 Fernando Perez <fperez@colorado.edu>
3420
3423
3421 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3424 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3422 reporting exceptions (it's a bug in inspect.py, I just set a
3425 reporting exceptions (it's a bug in inspect.py, I just set a
3423 workaround).
3426 workaround).
3424
3427
3425 2002-07-08 Fernando Perez <fperez@colorado.edu>
3428 2002-07-08 Fernando Perez <fperez@colorado.edu>
3426
3429
3427 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3430 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3428 __IPYTHON__ in __builtins__ to show up in user_ns.
3431 __IPYTHON__ in __builtins__ to show up in user_ns.
3429
3432
3430 2002-07-03 Fernando Perez <fperez@colorado.edu>
3433 2002-07-03 Fernando Perez <fperez@colorado.edu>
3431
3434
3432 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3435 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3433 name from @gp_set_instance to @gp_set_default.
3436 name from @gp_set_instance to @gp_set_default.
3434
3437
3435 * IPython/ipmaker.py (make_IPython): default editor value set to
3438 * IPython/ipmaker.py (make_IPython): default editor value set to
3436 '0' (a string), to match the rc file. Otherwise will crash when
3439 '0' (a string), to match the rc file. Otherwise will crash when
3437 .strip() is called on it.
3440 .strip() is called on it.
3438
3441
3439
3442
3440 2002-06-28 Fernando Perez <fperez@colorado.edu>
3443 2002-06-28 Fernando Perez <fperez@colorado.edu>
3441
3444
3442 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3445 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3443 of files in current directory when a file is executed via
3446 of files in current directory when a file is executed via
3444 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3447 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3445
3448
3446 * setup.py (manfiles): fix for rpm builds, submitted by RA
3449 * setup.py (manfiles): fix for rpm builds, submitted by RA
3447 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3450 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3448
3451
3449 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3452 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3450 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3453 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3451 string!). A. Schmolck caught this one.
3454 string!). A. Schmolck caught this one.
3452
3455
3453 2002-06-27 Fernando Perez <fperez@colorado.edu>
3456 2002-06-27 Fernando Perez <fperez@colorado.edu>
3454
3457
3455 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3458 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3456 defined files at the cmd line. __name__ wasn't being set to
3459 defined files at the cmd line. __name__ wasn't being set to
3457 __main__.
3460 __main__.
3458
3461
3459 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3462 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3460 regular lists and tuples besides Numeric arrays.
3463 regular lists and tuples besides Numeric arrays.
3461
3464
3462 * IPython/Prompts.py (CachedOutput.__call__): Added output
3465 * IPython/Prompts.py (CachedOutput.__call__): Added output
3463 supression for input ending with ';'. Similar to Mathematica and
3466 supression for input ending with ';'. Similar to Mathematica and
3464 Matlab. The _* vars and Out[] list are still updated, just like
3467 Matlab. The _* vars and Out[] list are still updated, just like
3465 Mathematica behaves.
3468 Mathematica behaves.
3466
3469
3467 2002-06-25 Fernando Perez <fperez@colorado.edu>
3470 2002-06-25 Fernando Perez <fperez@colorado.edu>
3468
3471
3469 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3472 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3470 .ini extensions for profiels under Windows.
3473 .ini extensions for profiels under Windows.
3471
3474
3472 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3475 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3473 string form. Fix contributed by Alexander Schmolck
3476 string form. Fix contributed by Alexander Schmolck
3474 <a.schmolck-AT-gmx.net>
3477 <a.schmolck-AT-gmx.net>
3475
3478
3476 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3479 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3477 pre-configured Gnuplot instance.
3480 pre-configured Gnuplot instance.
3478
3481
3479 2002-06-21 Fernando Perez <fperez@colorado.edu>
3482 2002-06-21 Fernando Perez <fperez@colorado.edu>
3480
3483
3481 * IPython/numutils.py (exp_safe): new function, works around the
3484 * IPython/numutils.py (exp_safe): new function, works around the
3482 underflow problems in Numeric.
3485 underflow problems in Numeric.
3483 (log2): New fn. Safe log in base 2: returns exact integer answer
3486 (log2): New fn. Safe log in base 2: returns exact integer answer
3484 for exact integer powers of 2.
3487 for exact integer powers of 2.
3485
3488
3486 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3489 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3487 properly.
3490 properly.
3488
3491
3489 2002-06-20 Fernando Perez <fperez@colorado.edu>
3492 2002-06-20 Fernando Perez <fperez@colorado.edu>
3490
3493
3491 * IPython/genutils.py (timing): new function like
3494 * IPython/genutils.py (timing): new function like
3492 Mathematica's. Similar to time_test, but returns more info.
3495 Mathematica's. Similar to time_test, but returns more info.
3493
3496
3494 2002-06-18 Fernando Perez <fperez@colorado.edu>
3497 2002-06-18 Fernando Perez <fperez@colorado.edu>
3495
3498
3496 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3499 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3497 according to Mike Heeter's suggestions.
3500 according to Mike Heeter's suggestions.
3498
3501
3499 2002-06-16 Fernando Perez <fperez@colorado.edu>
3502 2002-06-16 Fernando Perez <fperez@colorado.edu>
3500
3503
3501 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3504 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3502 system. GnuplotMagic is gone as a user-directory option. New files
3505 system. GnuplotMagic is gone as a user-directory option. New files
3503 make it easier to use all the gnuplot stuff both from external
3506 make it easier to use all the gnuplot stuff both from external
3504 programs as well as from IPython. Had to rewrite part of
3507 programs as well as from IPython. Had to rewrite part of
3505 hardcopy() b/c of a strange bug: often the ps files simply don't
3508 hardcopy() b/c of a strange bug: often the ps files simply don't
3506 get created, and require a repeat of the command (often several
3509 get created, and require a repeat of the command (often several
3507 times).
3510 times).
3508
3511
3509 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3512 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3510 resolve output channel at call time, so that if sys.stderr has
3513 resolve output channel at call time, so that if sys.stderr has
3511 been redirected by user this gets honored.
3514 been redirected by user this gets honored.
3512
3515
3513 2002-06-13 Fernando Perez <fperez@colorado.edu>
3516 2002-06-13 Fernando Perez <fperez@colorado.edu>
3514
3517
3515 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3518 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3516 IPShell. Kept a copy with the old names to avoid breaking people's
3519 IPShell. Kept a copy with the old names to avoid breaking people's
3517 embedded code.
3520 embedded code.
3518
3521
3519 * IPython/ipython: simplified it to the bare minimum after
3522 * IPython/ipython: simplified it to the bare minimum after
3520 Holger's suggestions. Added info about how to use it in
3523 Holger's suggestions. Added info about how to use it in
3521 PYTHONSTARTUP.
3524 PYTHONSTARTUP.
3522
3525
3523 * IPython/Shell.py (IPythonShell): changed the options passing
3526 * IPython/Shell.py (IPythonShell): changed the options passing
3524 from a string with funky %s replacements to a straight list. Maybe
3527 from a string with funky %s replacements to a straight list. Maybe
3525 a bit more typing, but it follows sys.argv conventions, so there's
3528 a bit more typing, but it follows sys.argv conventions, so there's
3526 less special-casing to remember.
3529 less special-casing to remember.
3527
3530
3528 2002-06-12 Fernando Perez <fperez@colorado.edu>
3531 2002-06-12 Fernando Perez <fperez@colorado.edu>
3529
3532
3530 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3533 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3531 command. Thanks to a suggestion by Mike Heeter.
3534 command. Thanks to a suggestion by Mike Heeter.
3532 (Magic.magic_pfile): added behavior to look at filenames if given
3535 (Magic.magic_pfile): added behavior to look at filenames if given
3533 arg is not a defined object.
3536 arg is not a defined object.
3534 (Magic.magic_save): New @save function to save code snippets. Also
3537 (Magic.magic_save): New @save function to save code snippets. Also
3535 a Mike Heeter idea.
3538 a Mike Heeter idea.
3536
3539
3537 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3540 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3538 plot() and replot(). Much more convenient now, especially for
3541 plot() and replot(). Much more convenient now, especially for
3539 interactive use.
3542 interactive use.
3540
3543
3541 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3544 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3542 filenames.
3545 filenames.
3543
3546
3544 2002-06-02 Fernando Perez <fperez@colorado.edu>
3547 2002-06-02 Fernando Perez <fperez@colorado.edu>
3545
3548
3546 * IPython/Struct.py (Struct.__init__): modified to admit
3549 * IPython/Struct.py (Struct.__init__): modified to admit
3547 initialization via another struct.
3550 initialization via another struct.
3548
3551
3549 * IPython/genutils.py (SystemExec.__init__): New stateful
3552 * IPython/genutils.py (SystemExec.__init__): New stateful
3550 interface to xsys and bq. Useful for writing system scripts.
3553 interface to xsys and bq. Useful for writing system scripts.
3551
3554
3552 2002-05-30 Fernando Perez <fperez@colorado.edu>
3555 2002-05-30 Fernando Perez <fperez@colorado.edu>
3553
3556
3554 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3557 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3555 documents. This will make the user download smaller (it's getting
3558 documents. This will make the user download smaller (it's getting
3556 too big).
3559 too big).
3557
3560
3558 2002-05-29 Fernando Perez <fperez@colorado.edu>
3561 2002-05-29 Fernando Perez <fperez@colorado.edu>
3559
3562
3560 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3563 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3561 fix problems with shelve and pickle. Seems to work, but I don't
3564 fix problems with shelve and pickle. Seems to work, but I don't
3562 know if corner cases break it. Thanks to Mike Heeter
3565 know if corner cases break it. Thanks to Mike Heeter
3563 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3566 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3564
3567
3565 2002-05-24 Fernando Perez <fperez@colorado.edu>
3568 2002-05-24 Fernando Perez <fperez@colorado.edu>
3566
3569
3567 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3570 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3568 macros having broken.
3571 macros having broken.
3569
3572
3570 2002-05-21 Fernando Perez <fperez@colorado.edu>
3573 2002-05-21 Fernando Perez <fperez@colorado.edu>
3571
3574
3572 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3575 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3573 introduced logging bug: all history before logging started was
3576 introduced logging bug: all history before logging started was
3574 being written one character per line! This came from the redesign
3577 being written one character per line! This came from the redesign
3575 of the input history as a special list which slices to strings,
3578 of the input history as a special list which slices to strings,
3576 not to lists.
3579 not to lists.
3577
3580
3578 2002-05-20 Fernando Perez <fperez@colorado.edu>
3581 2002-05-20 Fernando Perez <fperez@colorado.edu>
3579
3582
3580 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3583 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3581 be an attribute of all classes in this module. The design of these
3584 be an attribute of all classes in this module. The design of these
3582 classes needs some serious overhauling.
3585 classes needs some serious overhauling.
3583
3586
3584 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3587 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3585 which was ignoring '_' in option names.
3588 which was ignoring '_' in option names.
3586
3589
3587 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3590 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3588 'Verbose_novars' to 'Context' and made it the new default. It's a
3591 'Verbose_novars' to 'Context' and made it the new default. It's a
3589 bit more readable and also safer than verbose.
3592 bit more readable and also safer than verbose.
3590
3593
3591 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3594 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3592 triple-quoted strings.
3595 triple-quoted strings.
3593
3596
3594 * IPython/OInspect.py (__all__): new module exposing the object
3597 * IPython/OInspect.py (__all__): new module exposing the object
3595 introspection facilities. Now the corresponding magics are dummy
3598 introspection facilities. Now the corresponding magics are dummy
3596 wrappers around this. Having this module will make it much easier
3599 wrappers around this. Having this module will make it much easier
3597 to put these functions into our modified pdb.
3600 to put these functions into our modified pdb.
3598 This new object inspector system uses the new colorizing module,
3601 This new object inspector system uses the new colorizing module,
3599 so source code and other things are nicely syntax highlighted.
3602 so source code and other things are nicely syntax highlighted.
3600
3603
3601 2002-05-18 Fernando Perez <fperez@colorado.edu>
3604 2002-05-18 Fernando Perez <fperez@colorado.edu>
3602
3605
3603 * IPython/ColorANSI.py: Split the coloring tools into a separate
3606 * IPython/ColorANSI.py: Split the coloring tools into a separate
3604 module so I can use them in other code easier (they were part of
3607 module so I can use them in other code easier (they were part of
3605 ultraTB).
3608 ultraTB).
3606
3609
3607 2002-05-17 Fernando Perez <fperez@colorado.edu>
3610 2002-05-17 Fernando Perez <fperez@colorado.edu>
3608
3611
3609 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3612 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3610 fixed it to set the global 'g' also to the called instance, as
3613 fixed it to set the global 'g' also to the called instance, as
3611 long as 'g' was still a gnuplot instance (so it doesn't overwrite
3614 long as 'g' was still a gnuplot instance (so it doesn't overwrite
3612 user's 'g' variables).
3615 user's 'g' variables).
3613
3616
3614 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
3617 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
3615 global variables (aliases to _ih,_oh) so that users which expect
3618 global variables (aliases to _ih,_oh) so that users which expect
3616 In[5] or Out[7] to work aren't unpleasantly surprised.
3619 In[5] or Out[7] to work aren't unpleasantly surprised.
3617 (InputList.__getslice__): new class to allow executing slices of
3620 (InputList.__getslice__): new class to allow executing slices of
3618 input history directly. Very simple class, complements the use of
3621 input history directly. Very simple class, complements the use of
3619 macros.
3622 macros.
3620
3623
3621 2002-05-16 Fernando Perez <fperez@colorado.edu>
3624 2002-05-16 Fernando Perez <fperez@colorado.edu>
3622
3625
3623 * setup.py (docdirbase): make doc directory be just doc/IPython
3626 * setup.py (docdirbase): make doc directory be just doc/IPython
3624 without version numbers, it will reduce clutter for users.
3627 without version numbers, it will reduce clutter for users.
3625
3628
3626 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
3629 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
3627 execfile call to prevent possible memory leak. See for details:
3630 execfile call to prevent possible memory leak. See for details:
3628 http://mail.python.org/pipermail/python-list/2002-February/088476.html
3631 http://mail.python.org/pipermail/python-list/2002-February/088476.html
3629
3632
3630 2002-05-15 Fernando Perez <fperez@colorado.edu>
3633 2002-05-15 Fernando Perez <fperez@colorado.edu>
3631
3634
3632 * IPython/Magic.py (Magic.magic_psource): made the object
3635 * IPython/Magic.py (Magic.magic_psource): made the object
3633 introspection names be more standard: pdoc, pdef, pfile and
3636 introspection names be more standard: pdoc, pdef, pfile and
3634 psource. They all print/page their output, and it makes
3637 psource. They all print/page their output, and it makes
3635 remembering them easier. Kept old names for compatibility as
3638 remembering them easier. Kept old names for compatibility as
3636 aliases.
3639 aliases.
3637
3640
3638 2002-05-14 Fernando Perez <fperez@colorado.edu>
3641 2002-05-14 Fernando Perez <fperez@colorado.edu>
3639
3642
3640 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3643 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3641 what the mouse problem was. The trick is to use gnuplot with temp
3644 what the mouse problem was. The trick is to use gnuplot with temp
3642 files and NOT with pipes (for data communication), because having
3645 files and NOT with pipes (for data communication), because having
3643 both pipes and the mouse on is bad news.
3646 both pipes and the mouse on is bad news.
3644
3647
3645 2002-05-13 Fernando Perez <fperez@colorado.edu>
3648 2002-05-13 Fernando Perez <fperez@colorado.edu>
3646
3649
3647 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3650 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3648 bug. Information would be reported about builtins even when
3651 bug. Information would be reported about builtins even when
3649 user-defined functions overrode them.
3652 user-defined functions overrode them.
3650
3653
3651 2002-05-11 Fernando Perez <fperez@colorado.edu>
3654 2002-05-11 Fernando Perez <fperez@colorado.edu>
3652
3655
3653 * IPython/__init__.py (__all__): removed FlexCompleter from
3656 * IPython/__init__.py (__all__): removed FlexCompleter from
3654 __all__ so that things don't fail in platforms without readline.
3657 __all__ so that things don't fail in platforms without readline.
3655
3658
3656 2002-05-10 Fernando Perez <fperez@colorado.edu>
3659 2002-05-10 Fernando Perez <fperez@colorado.edu>
3657
3660
3658 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3661 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3659 it requires Numeric, effectively making Numeric a dependency for
3662 it requires Numeric, effectively making Numeric a dependency for
3660 IPython.
3663 IPython.
3661
3664
3662 * Released 0.2.13
3665 * Released 0.2.13
3663
3666
3664 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3667 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3665 profiler interface. Now all the major options from the profiler
3668 profiler interface. Now all the major options from the profiler
3666 module are directly supported in IPython, both for single
3669 module are directly supported in IPython, both for single
3667 expressions (@prun) and for full programs (@run -p).
3670 expressions (@prun) and for full programs (@run -p).
3668
3671
3669 2002-05-09 Fernando Perez <fperez@colorado.edu>
3672 2002-05-09 Fernando Perez <fperez@colorado.edu>
3670
3673
3671 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3674 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3672 magic properly formatted for screen.
3675 magic properly formatted for screen.
3673
3676
3674 * setup.py (make_shortcut): Changed things to put pdf version in
3677 * setup.py (make_shortcut): Changed things to put pdf version in
3675 doc/ instead of doc/manual (had to change lyxport a bit).
3678 doc/ instead of doc/manual (had to change lyxport a bit).
3676
3679
3677 * IPython/Magic.py (Profile.string_stats): made profile runs go
3680 * IPython/Magic.py (Profile.string_stats): made profile runs go
3678 through pager (they are long and a pager allows searching, saving,
3681 through pager (they are long and a pager allows searching, saving,
3679 etc.)
3682 etc.)
3680
3683
3681 2002-05-08 Fernando Perez <fperez@colorado.edu>
3684 2002-05-08 Fernando Perez <fperez@colorado.edu>
3682
3685
3683 * Released 0.2.12
3686 * Released 0.2.12
3684
3687
3685 2002-05-06 Fernando Perez <fperez@colorado.edu>
3688 2002-05-06 Fernando Perez <fperez@colorado.edu>
3686
3689
3687 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
3690 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
3688 introduced); 'hist n1 n2' was broken.
3691 introduced); 'hist n1 n2' was broken.
3689 (Magic.magic_pdb): added optional on/off arguments to @pdb
3692 (Magic.magic_pdb): added optional on/off arguments to @pdb
3690 (Magic.magic_run): added option -i to @run, which executes code in
3693 (Magic.magic_run): added option -i to @run, which executes code in
3691 the IPython namespace instead of a clean one. Also added @irun as
3694 the IPython namespace instead of a clean one. Also added @irun as
3692 an alias to @run -i.
3695 an alias to @run -i.
3693
3696
3694 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3697 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3695 fixed (it didn't really do anything, the namespaces were wrong).
3698 fixed (it didn't really do anything, the namespaces were wrong).
3696
3699
3697 * IPython/Debugger.py (__init__): Added workaround for python 2.1
3700 * IPython/Debugger.py (__init__): Added workaround for python 2.1
3698
3701
3699 * IPython/__init__.py (__all__): Fixed package namespace, now
3702 * IPython/__init__.py (__all__): Fixed package namespace, now
3700 'import IPython' does give access to IPython.<all> as
3703 'import IPython' does give access to IPython.<all> as
3701 expected. Also renamed __release__ to Release.
3704 expected. Also renamed __release__ to Release.
3702
3705
3703 * IPython/Debugger.py (__license__): created new Pdb class which
3706 * IPython/Debugger.py (__license__): created new Pdb class which
3704 functions like a drop-in for the normal pdb.Pdb but does NOT
3707 functions like a drop-in for the normal pdb.Pdb but does NOT
3705 import readline by default. This way it doesn't muck up IPython's
3708 import readline by default. This way it doesn't muck up IPython's
3706 readline handling, and now tab-completion finally works in the
3709 readline handling, and now tab-completion finally works in the
3707 debugger -- sort of. It completes things globally visible, but the
3710 debugger -- sort of. It completes things globally visible, but the
3708 completer doesn't track the stack as pdb walks it. That's a bit
3711 completer doesn't track the stack as pdb walks it. That's a bit
3709 tricky, and I'll have to implement it later.
3712 tricky, and I'll have to implement it later.
3710
3713
3711 2002-05-05 Fernando Perez <fperez@colorado.edu>
3714 2002-05-05 Fernando Perez <fperez@colorado.edu>
3712
3715
3713 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
3716 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
3714 magic docstrings when printed via ? (explicit \'s were being
3717 magic docstrings when printed via ? (explicit \'s were being
3715 printed).
3718 printed).
3716
3719
3717 * IPython/ipmaker.py (make_IPython): fixed namespace
3720 * IPython/ipmaker.py (make_IPython): fixed namespace
3718 identification bug. Now variables loaded via logs or command-line
3721 identification bug. Now variables loaded via logs or command-line
3719 files are recognized in the interactive namespace by @who.
3722 files are recognized in the interactive namespace by @who.
3720
3723
3721 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
3724 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
3722 log replay system stemming from the string form of Structs.
3725 log replay system stemming from the string form of Structs.
3723
3726
3724 * IPython/Magic.py (Macro.__init__): improved macros to properly
3727 * IPython/Magic.py (Macro.__init__): improved macros to properly
3725 handle magic commands in them.
3728 handle magic commands in them.
3726 (Magic.magic_logstart): usernames are now expanded so 'logstart
3729 (Magic.magic_logstart): usernames are now expanded so 'logstart
3727 ~/mylog' now works.
3730 ~/mylog' now works.
3728
3731
3729 * IPython/iplib.py (complete): fixed bug where paths starting with
3732 * IPython/iplib.py (complete): fixed bug where paths starting with
3730 '/' would be completed as magic names.
3733 '/' would be completed as magic names.
3731
3734
3732 2002-05-04 Fernando Perez <fperez@colorado.edu>
3735 2002-05-04 Fernando Perez <fperez@colorado.edu>
3733
3736
3734 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
3737 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
3735 allow running full programs under the profiler's control.
3738 allow running full programs under the profiler's control.
3736
3739
3737 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
3740 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
3738 mode to report exceptions verbosely but without formatting
3741 mode to report exceptions verbosely but without formatting
3739 variables. This addresses the issue of ipython 'freezing' (it's
3742 variables. This addresses the issue of ipython 'freezing' (it's
3740 not frozen, but caught in an expensive formatting loop) when huge
3743 not frozen, but caught in an expensive formatting loop) when huge
3741 variables are in the context of an exception.
3744 variables are in the context of an exception.
3742 (VerboseTB.text): Added '--->' markers at line where exception was
3745 (VerboseTB.text): Added '--->' markers at line where exception was
3743 triggered. Much clearer to read, especially in NoColor modes.
3746 triggered. Much clearer to read, especially in NoColor modes.
3744
3747
3745 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
3748 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
3746 implemented in reverse when changing to the new parse_options().
3749 implemented in reverse when changing to the new parse_options().
3747
3750
3748 2002-05-03 Fernando Perez <fperez@colorado.edu>
3751 2002-05-03 Fernando Perez <fperez@colorado.edu>
3749
3752
3750 * IPython/Magic.py (Magic.parse_options): new function so that
3753 * IPython/Magic.py (Magic.parse_options): new function so that
3751 magics can parse options easier.
3754 magics can parse options easier.
3752 (Magic.magic_prun): new function similar to profile.run(),
3755 (Magic.magic_prun): new function similar to profile.run(),
3753 suggested by Chris Hart.
3756 suggested by Chris Hart.
3754 (Magic.magic_cd): fixed behavior so that it only changes if
3757 (Magic.magic_cd): fixed behavior so that it only changes if
3755 directory actually is in history.
3758 directory actually is in history.
3756
3759
3757 * IPython/usage.py (__doc__): added information about potential
3760 * IPython/usage.py (__doc__): added information about potential
3758 slowness of Verbose exception mode when there are huge data
3761 slowness of Verbose exception mode when there are huge data
3759 structures to be formatted (thanks to Archie Paulson).
3762 structures to be formatted (thanks to Archie Paulson).
3760
3763
3761 * IPython/ipmaker.py (make_IPython): Changed default logging
3764 * IPython/ipmaker.py (make_IPython): Changed default logging
3762 (when simply called with -log) to use curr_dir/ipython.log in
3765 (when simply called with -log) to use curr_dir/ipython.log in
3763 rotate mode. Fixed crash which was occuring with -log before
3766 rotate mode. Fixed crash which was occuring with -log before
3764 (thanks to Jim Boyle).
3767 (thanks to Jim Boyle).
3765
3768
3766 2002-05-01 Fernando Perez <fperez@colorado.edu>
3769 2002-05-01 Fernando Perez <fperez@colorado.edu>
3767
3770
3768 * Released 0.2.11 for these fixes (mainly the ultraTB one which
3771 * Released 0.2.11 for these fixes (mainly the ultraTB one which
3769 was nasty -- though somewhat of a corner case).
3772 was nasty -- though somewhat of a corner case).
3770
3773
3771 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
3774 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
3772 text (was a bug).
3775 text (was a bug).
3773
3776
3774 2002-04-30 Fernando Perez <fperez@colorado.edu>
3777 2002-04-30 Fernando Perez <fperez@colorado.edu>
3775
3778
3776 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
3779 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
3777 a print after ^D or ^C from the user so that the In[] prompt
3780 a print after ^D or ^C from the user so that the In[] prompt
3778 doesn't over-run the gnuplot one.
3781 doesn't over-run the gnuplot one.
3779
3782
3780 2002-04-29 Fernando Perez <fperez@colorado.edu>
3783 2002-04-29 Fernando Perez <fperez@colorado.edu>
3781
3784
3782 * Released 0.2.10
3785 * Released 0.2.10
3783
3786
3784 * IPython/__release__.py (version): get date dynamically.
3787 * IPython/__release__.py (version): get date dynamically.
3785
3788
3786 * Misc. documentation updates thanks to Arnd's comments. Also ran
3789 * Misc. documentation updates thanks to Arnd's comments. Also ran
3787 a full spellcheck on the manual (hadn't been done in a while).
3790 a full spellcheck on the manual (hadn't been done in a while).
3788
3791
3789 2002-04-27 Fernando Perez <fperez@colorado.edu>
3792 2002-04-27 Fernando Perez <fperez@colorado.edu>
3790
3793
3791 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
3794 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
3792 starting a log in mid-session would reset the input history list.
3795 starting a log in mid-session would reset the input history list.
3793
3796
3794 2002-04-26 Fernando Perez <fperez@colorado.edu>
3797 2002-04-26 Fernando Perez <fperez@colorado.edu>
3795
3798
3796 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
3799 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
3797 all files were being included in an update. Now anything in
3800 all files were being included in an update. Now anything in
3798 UserConfig that matches [A-Za-z]*.py will go (this excludes
3801 UserConfig that matches [A-Za-z]*.py will go (this excludes
3799 __init__.py)
3802 __init__.py)
3800
3803
3801 2002-04-25 Fernando Perez <fperez@colorado.edu>
3804 2002-04-25 Fernando Perez <fperez@colorado.edu>
3802
3805
3803 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
3806 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
3804 to __builtins__ so that any form of embedded or imported code can
3807 to __builtins__ so that any form of embedded or imported code can
3805 test for being inside IPython.
3808 test for being inside IPython.
3806
3809
3807 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
3810 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
3808 changed to GnuplotMagic because it's now an importable module,
3811 changed to GnuplotMagic because it's now an importable module,
3809 this makes the name follow that of the standard Gnuplot module.
3812 this makes the name follow that of the standard Gnuplot module.
3810 GnuplotMagic can now be loaded at any time in mid-session.
3813 GnuplotMagic can now be loaded at any time in mid-session.
3811
3814
3812 2002-04-24 Fernando Perez <fperez@colorado.edu>
3815 2002-04-24 Fernando Perez <fperez@colorado.edu>
3813
3816
3814 * IPython/numutils.py: removed SIUnits. It doesn't properly set
3817 * IPython/numutils.py: removed SIUnits. It doesn't properly set
3815 the globals (IPython has its own namespace) and the
3818 the globals (IPython has its own namespace) and the
3816 PhysicalQuantity stuff is much better anyway.
3819 PhysicalQuantity stuff is much better anyway.
3817
3820
3818 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
3821 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
3819 embedding example to standard user directory for
3822 embedding example to standard user directory for
3820 distribution. Also put it in the manual.
3823 distribution. Also put it in the manual.
3821
3824
3822 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
3825 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
3823 instance as first argument (so it doesn't rely on some obscure
3826 instance as first argument (so it doesn't rely on some obscure
3824 hidden global).
3827 hidden global).
3825
3828
3826 * IPython/UserConfig/ipythonrc.py: put () back in accepted
3829 * IPython/UserConfig/ipythonrc.py: put () back in accepted
3827 delimiters. While it prevents ().TAB from working, it allows
3830 delimiters. While it prevents ().TAB from working, it allows
3828 completions in open (... expressions. This is by far a more common
3831 completions in open (... expressions. This is by far a more common
3829 case.
3832 case.
3830
3833
3831 2002-04-23 Fernando Perez <fperez@colorado.edu>
3834 2002-04-23 Fernando Perez <fperez@colorado.edu>
3832
3835
3833 * IPython/Extensions/InterpreterPasteInput.py: new
3836 * IPython/Extensions/InterpreterPasteInput.py: new
3834 syntax-processing module for pasting lines with >>> or ... at the
3837 syntax-processing module for pasting lines with >>> or ... at the
3835 start.
3838 start.
3836
3839
3837 * IPython/Extensions/PhysicalQ_Interactive.py
3840 * IPython/Extensions/PhysicalQ_Interactive.py
3838 (PhysicalQuantityInteractive.__int__): fixed to work with either
3841 (PhysicalQuantityInteractive.__int__): fixed to work with either
3839 Numeric or math.
3842 Numeric or math.
3840
3843
3841 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
3844 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
3842 provided profiles. Now we have:
3845 provided profiles. Now we have:
3843 -math -> math module as * and cmath with its own namespace.
3846 -math -> math module as * and cmath with its own namespace.
3844 -numeric -> Numeric as *, plus gnuplot & grace
3847 -numeric -> Numeric as *, plus gnuplot & grace
3845 -physics -> same as before
3848 -physics -> same as before
3846
3849
3847 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
3850 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
3848 user-defined magics wouldn't be found by @magic if they were
3851 user-defined magics wouldn't be found by @magic if they were
3849 defined as class methods. Also cleaned up the namespace search
3852 defined as class methods. Also cleaned up the namespace search
3850 logic and the string building (to use %s instead of many repeated
3853 logic and the string building (to use %s instead of many repeated
3851 string adds).
3854 string adds).
3852
3855
3853 * IPython/UserConfig/example-magic.py (magic_foo): updated example
3856 * IPython/UserConfig/example-magic.py (magic_foo): updated example
3854 of user-defined magics to operate with class methods (cleaner, in
3857 of user-defined magics to operate with class methods (cleaner, in
3855 line with the gnuplot code).
3858 line with the gnuplot code).
3856
3859
3857 2002-04-22 Fernando Perez <fperez@colorado.edu>
3860 2002-04-22 Fernando Perez <fperez@colorado.edu>
3858
3861
3859 * setup.py: updated dependency list so that manual is updated when
3862 * setup.py: updated dependency list so that manual is updated when
3860 all included files change.
3863 all included files change.
3861
3864
3862 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
3865 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
3863 the delimiter removal option (the fix is ugly right now).
3866 the delimiter removal option (the fix is ugly right now).
3864
3867
3865 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
3868 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
3866 all of the math profile (quicker loading, no conflict between
3869 all of the math profile (quicker loading, no conflict between
3867 g-9.8 and g-gnuplot).
3870 g-9.8 and g-gnuplot).
3868
3871
3869 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
3872 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
3870 name of post-mortem files to IPython_crash_report.txt.
3873 name of post-mortem files to IPython_crash_report.txt.
3871
3874
3872 * Cleanup/update of the docs. Added all the new readline info and
3875 * Cleanup/update of the docs. Added all the new readline info and
3873 formatted all lists as 'real lists'.
3876 formatted all lists as 'real lists'.
3874
3877
3875 * IPython/ipmaker.py (make_IPython): removed now-obsolete
3878 * IPython/ipmaker.py (make_IPython): removed now-obsolete
3876 tab-completion options, since the full readline parse_and_bind is
3879 tab-completion options, since the full readline parse_and_bind is
3877 now accessible.
3880 now accessible.
3878
3881
3879 * IPython/iplib.py (InteractiveShell.init_readline): Changed
3882 * IPython/iplib.py (InteractiveShell.init_readline): Changed
3880 handling of readline options. Now users can specify any string to
3883 handling of readline options. Now users can specify any string to
3881 be passed to parse_and_bind(), as well as the delimiters to be
3884 be passed to parse_and_bind(), as well as the delimiters to be
3882 removed.
3885 removed.
3883 (InteractiveShell.__init__): Added __name__ to the global
3886 (InteractiveShell.__init__): Added __name__ to the global
3884 namespace so that things like Itpl which rely on its existence
3887 namespace so that things like Itpl which rely on its existence
3885 don't crash.
3888 don't crash.
3886 (InteractiveShell._prefilter): Defined the default with a _ so
3889 (InteractiveShell._prefilter): Defined the default with a _ so
3887 that prefilter() is easier to override, while the default one
3890 that prefilter() is easier to override, while the default one
3888 remains available.
3891 remains available.
3889
3892
3890 2002-04-18 Fernando Perez <fperez@colorado.edu>
3893 2002-04-18 Fernando Perez <fperez@colorado.edu>
3891
3894
3892 * Added information about pdb in the docs.
3895 * Added information about pdb in the docs.
3893
3896
3894 2002-04-17 Fernando Perez <fperez@colorado.edu>
3897 2002-04-17 Fernando Perez <fperez@colorado.edu>
3895
3898
3896 * IPython/ipmaker.py (make_IPython): added rc_override option to
3899 * IPython/ipmaker.py (make_IPython): added rc_override option to
3897 allow passing config options at creation time which may override
3900 allow passing config options at creation time which may override
3898 anything set in the config files or command line. This is
3901 anything set in the config files or command line. This is
3899 particularly useful for configuring embedded instances.
3902 particularly useful for configuring embedded instances.
3900
3903
3901 2002-04-15 Fernando Perez <fperez@colorado.edu>
3904 2002-04-15 Fernando Perez <fperez@colorado.edu>
3902
3905
3903 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
3906 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
3904 crash embedded instances because of the input cache falling out of
3907 crash embedded instances because of the input cache falling out of
3905 sync with the output counter.
3908 sync with the output counter.
3906
3909
3907 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
3910 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
3908 mode which calls pdb after an uncaught exception in IPython itself.
3911 mode which calls pdb after an uncaught exception in IPython itself.
3909
3912
3910 2002-04-14 Fernando Perez <fperez@colorado.edu>
3913 2002-04-14 Fernando Perez <fperez@colorado.edu>
3911
3914
3912 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
3915 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
3913 readline, fix it back after each call.
3916 readline, fix it back after each call.
3914
3917
3915 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
3918 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
3916 method to force all access via __call__(), which guarantees that
3919 method to force all access via __call__(), which guarantees that
3917 traceback references are properly deleted.
3920 traceback references are properly deleted.
3918
3921
3919 * IPython/Prompts.py (CachedOutput._display): minor fixes to
3922 * IPython/Prompts.py (CachedOutput._display): minor fixes to
3920 improve printing when pprint is in use.
3923 improve printing when pprint is in use.
3921
3924
3922 2002-04-13 Fernando Perez <fperez@colorado.edu>
3925 2002-04-13 Fernando Perez <fperez@colorado.edu>
3923
3926
3924 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
3927 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
3925 exceptions aren't caught anymore. If the user triggers one, he
3928 exceptions aren't caught anymore. If the user triggers one, he
3926 should know why he's doing it and it should go all the way up,
3929 should know why he's doing it and it should go all the way up,
3927 just like any other exception. So now @abort will fully kill the
3930 just like any other exception. So now @abort will fully kill the
3928 embedded interpreter and the embedding code (unless that happens
3931 embedded interpreter and the embedding code (unless that happens
3929 to catch SystemExit).
3932 to catch SystemExit).
3930
3933
3931 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
3934 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
3932 and a debugger() method to invoke the interactive pdb debugger
3935 and a debugger() method to invoke the interactive pdb debugger
3933 after printing exception information. Also added the corresponding
3936 after printing exception information. Also added the corresponding
3934 -pdb option and @pdb magic to control this feature, and updated
3937 -pdb option and @pdb magic to control this feature, and updated
3935 the docs. After a suggestion from Christopher Hart
3938 the docs. After a suggestion from Christopher Hart
3936 (hart-AT-caltech.edu).
3939 (hart-AT-caltech.edu).
3937
3940
3938 2002-04-12 Fernando Perez <fperez@colorado.edu>
3941 2002-04-12 Fernando Perez <fperez@colorado.edu>
3939
3942
3940 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
3943 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
3941 the exception handlers defined by the user (not the CrashHandler)
3944 the exception handlers defined by the user (not the CrashHandler)
3942 so that user exceptions don't trigger an ipython bug report.
3945 so that user exceptions don't trigger an ipython bug report.
3943
3946
3944 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
3947 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
3945 configurable (it should have always been so).
3948 configurable (it should have always been so).
3946
3949
3947 2002-03-26 Fernando Perez <fperez@colorado.edu>
3950 2002-03-26 Fernando Perez <fperez@colorado.edu>
3948
3951
3949 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
3952 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
3950 and there to fix embedding namespace issues. This should all be
3953 and there to fix embedding namespace issues. This should all be
3951 done in a more elegant way.
3954 done in a more elegant way.
3952
3955
3953 2002-03-25 Fernando Perez <fperez@colorado.edu>
3956 2002-03-25 Fernando Perez <fperez@colorado.edu>
3954
3957
3955 * IPython/genutils.py (get_home_dir): Try to make it work under
3958 * IPython/genutils.py (get_home_dir): Try to make it work under
3956 win9x also.
3959 win9x also.
3957
3960
3958 2002-03-20 Fernando Perez <fperez@colorado.edu>
3961 2002-03-20 Fernando Perez <fperez@colorado.edu>
3959
3962
3960 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
3963 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
3961 sys.displayhook untouched upon __init__.
3964 sys.displayhook untouched upon __init__.
3962
3965
3963 2002-03-19 Fernando Perez <fperez@colorado.edu>
3966 2002-03-19 Fernando Perez <fperez@colorado.edu>
3964
3967
3965 * Released 0.2.9 (for embedding bug, basically).
3968 * Released 0.2.9 (for embedding bug, basically).
3966
3969
3967 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
3970 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
3968 exceptions so that enclosing shell's state can be restored.
3971 exceptions so that enclosing shell's state can be restored.
3969
3972
3970 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
3973 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
3971 naming conventions in the .ipython/ dir.
3974 naming conventions in the .ipython/ dir.
3972
3975
3973 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
3976 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
3974 from delimiters list so filenames with - in them get expanded.
3977 from delimiters list so filenames with - in them get expanded.
3975
3978
3976 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
3979 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
3977 sys.displayhook not being properly restored after an embedded call.
3980 sys.displayhook not being properly restored after an embedded call.
3978
3981
3979 2002-03-18 Fernando Perez <fperez@colorado.edu>
3982 2002-03-18 Fernando Perez <fperez@colorado.edu>
3980
3983
3981 * Released 0.2.8
3984 * Released 0.2.8
3982
3985
3983 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
3986 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
3984 some files weren't being included in a -upgrade.
3987 some files weren't being included in a -upgrade.
3985 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
3988 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
3986 on' so that the first tab completes.
3989 on' so that the first tab completes.
3987 (InteractiveShell.handle_magic): fixed bug with spaces around
3990 (InteractiveShell.handle_magic): fixed bug with spaces around
3988 quotes breaking many magic commands.
3991 quotes breaking many magic commands.
3989
3992
3990 * setup.py: added note about ignoring the syntax error messages at
3993 * setup.py: added note about ignoring the syntax error messages at
3991 installation.
3994 installation.
3992
3995
3993 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
3996 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
3994 streamlining the gnuplot interface, now there's only one magic @gp.
3997 streamlining the gnuplot interface, now there's only one magic @gp.
3995
3998
3996 2002-03-17 Fernando Perez <fperez@colorado.edu>
3999 2002-03-17 Fernando Perez <fperez@colorado.edu>
3997
4000
3998 * IPython/UserConfig/magic_gnuplot.py: new name for the
4001 * IPython/UserConfig/magic_gnuplot.py: new name for the
3999 example-magic_pm.py file. Much enhanced system, now with a shell
4002 example-magic_pm.py file. Much enhanced system, now with a shell
4000 for communicating directly with gnuplot, one command at a time.
4003 for communicating directly with gnuplot, one command at a time.
4001
4004
4002 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4005 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4003 setting __name__=='__main__'.
4006 setting __name__=='__main__'.
4004
4007
4005 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4008 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4006 mini-shell for accessing gnuplot from inside ipython. Should
4009 mini-shell for accessing gnuplot from inside ipython. Should
4007 extend it later for grace access too. Inspired by Arnd's
4010 extend it later for grace access too. Inspired by Arnd's
4008 suggestion.
4011 suggestion.
4009
4012
4010 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4013 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4011 calling magic functions with () in their arguments. Thanks to Arnd
4014 calling magic functions with () in their arguments. Thanks to Arnd
4012 Baecker for pointing this to me.
4015 Baecker for pointing this to me.
4013
4016
4014 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4017 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4015 infinitely for integer or complex arrays (only worked with floats).
4018 infinitely for integer or complex arrays (only worked with floats).
4016
4019
4017 2002-03-16 Fernando Perez <fperez@colorado.edu>
4020 2002-03-16 Fernando Perez <fperez@colorado.edu>
4018
4021
4019 * setup.py: Merged setup and setup_windows into a single script
4022 * setup.py: Merged setup and setup_windows into a single script
4020 which properly handles things for windows users.
4023 which properly handles things for windows users.
4021
4024
4022 2002-03-15 Fernando Perez <fperez@colorado.edu>
4025 2002-03-15 Fernando Perez <fperez@colorado.edu>
4023
4026
4024 * Big change to the manual: now the magics are all automatically
4027 * Big change to the manual: now the magics are all automatically
4025 documented. This information is generated from their docstrings
4028 documented. This information is generated from their docstrings
4026 and put in a latex file included by the manual lyx file. This way
4029 and put in a latex file included by the manual lyx file. This way
4027 we get always up to date information for the magics. The manual
4030 we get always up to date information for the magics. The manual
4028 now also has proper version information, also auto-synced.
4031 now also has proper version information, also auto-synced.
4029
4032
4030 For this to work, an undocumented --magic_docstrings option was added.
4033 For this to work, an undocumented --magic_docstrings option was added.
4031
4034
4032 2002-03-13 Fernando Perez <fperez@colorado.edu>
4035 2002-03-13 Fernando Perez <fperez@colorado.edu>
4033
4036
4034 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4037 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4035 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4038 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4036
4039
4037 2002-03-12 Fernando Perez <fperez@colorado.edu>
4040 2002-03-12 Fernando Perez <fperez@colorado.edu>
4038
4041
4039 * IPython/ultraTB.py (TermColors): changed color escapes again to
4042 * IPython/ultraTB.py (TermColors): changed color escapes again to
4040 fix the (old, reintroduced) line-wrapping bug. Basically, if
4043 fix the (old, reintroduced) line-wrapping bug. Basically, if
4041 \001..\002 aren't given in the color escapes, lines get wrapped
4044 \001..\002 aren't given in the color escapes, lines get wrapped
4042 weirdly. But giving those screws up old xterms and emacs terms. So
4045 weirdly. But giving those screws up old xterms and emacs terms. So
4043 I added some logic for emacs terms to be ok, but I can't identify old
4046 I added some logic for emacs terms to be ok, but I can't identify old
4044 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4047 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4045
4048
4046 2002-03-10 Fernando Perez <fperez@colorado.edu>
4049 2002-03-10 Fernando Perez <fperez@colorado.edu>
4047
4050
4048 * IPython/usage.py (__doc__): Various documentation cleanups and
4051 * IPython/usage.py (__doc__): Various documentation cleanups and
4049 updates, both in usage docstrings and in the manual.
4052 updates, both in usage docstrings and in the manual.
4050
4053
4051 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4054 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4052 handling of caching. Set minimum acceptabe value for having a
4055 handling of caching. Set minimum acceptabe value for having a
4053 cache at 20 values.
4056 cache at 20 values.
4054
4057
4055 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4058 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4056 install_first_time function to a method, renamed it and added an
4059 install_first_time function to a method, renamed it and added an
4057 'upgrade' mode. Now people can update their config directory with
4060 'upgrade' mode. Now people can update their config directory with
4058 a simple command line switch (-upgrade, also new).
4061 a simple command line switch (-upgrade, also new).
4059
4062
4060 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4063 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4061 @file (convenient for automagic users under Python >= 2.2).
4064 @file (convenient for automagic users under Python >= 2.2).
4062 Removed @files (it seemed more like a plural than an abbrev. of
4065 Removed @files (it seemed more like a plural than an abbrev. of
4063 'file show').
4066 'file show').
4064
4067
4065 * IPython/iplib.py (install_first_time): Fixed crash if there were
4068 * IPython/iplib.py (install_first_time): Fixed crash if there were
4066 backup files ('~') in .ipython/ install directory.
4069 backup files ('~') in .ipython/ install directory.
4067
4070
4068 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4071 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4069 system. Things look fine, but these changes are fairly
4072 system. Things look fine, but these changes are fairly
4070 intrusive. Test them for a few days.
4073 intrusive. Test them for a few days.
4071
4074
4072 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4075 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4073 the prompts system. Now all in/out prompt strings are user
4076 the prompts system. Now all in/out prompt strings are user
4074 controllable. This is particularly useful for embedding, as one
4077 controllable. This is particularly useful for embedding, as one
4075 can tag embedded instances with particular prompts.
4078 can tag embedded instances with particular prompts.
4076
4079
4077 Also removed global use of sys.ps1/2, which now allows nested
4080 Also removed global use of sys.ps1/2, which now allows nested
4078 embeddings without any problems. Added command-line options for
4081 embeddings without any problems. Added command-line options for
4079 the prompt strings.
4082 the prompt strings.
4080
4083
4081 2002-03-08 Fernando Perez <fperez@colorado.edu>
4084 2002-03-08 Fernando Perez <fperez@colorado.edu>
4082
4085
4083 * IPython/UserConfig/example-embed-short.py (ipshell): added
4086 * IPython/UserConfig/example-embed-short.py (ipshell): added
4084 example file with the bare minimum code for embedding.
4087 example file with the bare minimum code for embedding.
4085
4088
4086 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4089 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4087 functionality for the embeddable shell to be activated/deactivated
4090 functionality for the embeddable shell to be activated/deactivated
4088 either globally or at each call.
4091 either globally or at each call.
4089
4092
4090 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4093 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4091 rewriting the prompt with '--->' for auto-inputs with proper
4094 rewriting the prompt with '--->' for auto-inputs with proper
4092 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4095 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4093 this is handled by the prompts class itself, as it should.
4096 this is handled by the prompts class itself, as it should.
4094
4097
4095 2002-03-05 Fernando Perez <fperez@colorado.edu>
4098 2002-03-05 Fernando Perez <fperez@colorado.edu>
4096
4099
4097 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4100 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4098 @logstart to avoid name clashes with the math log function.
4101 @logstart to avoid name clashes with the math log function.
4099
4102
4100 * Big updates to X/Emacs section of the manual.
4103 * Big updates to X/Emacs section of the manual.
4101
4104
4102 * Removed ipython_emacs. Milan explained to me how to pass
4105 * Removed ipython_emacs. Milan explained to me how to pass
4103 arguments to ipython through Emacs. Some day I'm going to end up
4106 arguments to ipython through Emacs. Some day I'm going to end up
4104 learning some lisp...
4107 learning some lisp...
4105
4108
4106 2002-03-04 Fernando Perez <fperez@colorado.edu>
4109 2002-03-04 Fernando Perez <fperez@colorado.edu>
4107
4110
4108 * IPython/ipython_emacs: Created script to be used as the
4111 * IPython/ipython_emacs: Created script to be used as the
4109 py-python-command Emacs variable so we can pass IPython
4112 py-python-command Emacs variable so we can pass IPython
4110 parameters. I can't figure out how to tell Emacs directly to pass
4113 parameters. I can't figure out how to tell Emacs directly to pass
4111 parameters to IPython, so a dummy shell script will do it.
4114 parameters to IPython, so a dummy shell script will do it.
4112
4115
4113 Other enhancements made for things to work better under Emacs'
4116 Other enhancements made for things to work better under Emacs'
4114 various types of terminals. Many thanks to Milan Zamazal
4117 various types of terminals. Many thanks to Milan Zamazal
4115 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4118 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4116
4119
4117 2002-03-01 Fernando Perez <fperez@colorado.edu>
4120 2002-03-01 Fernando Perez <fperez@colorado.edu>
4118
4121
4119 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4122 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4120 that loading of readline is now optional. This gives better
4123 that loading of readline is now optional. This gives better
4121 control to emacs users.
4124 control to emacs users.
4122
4125
4123 * IPython/ultraTB.py (__date__): Modified color escape sequences
4126 * IPython/ultraTB.py (__date__): Modified color escape sequences
4124 and now things work fine under xterm and in Emacs' term buffers
4127 and now things work fine under xterm and in Emacs' term buffers
4125 (though not shell ones). Well, in emacs you get colors, but all
4128 (though not shell ones). Well, in emacs you get colors, but all
4126 seem to be 'light' colors (no difference between dark and light
4129 seem to be 'light' colors (no difference between dark and light
4127 ones). But the garbage chars are gone, and also in xterms. It
4130 ones). But the garbage chars are gone, and also in xterms. It
4128 seems that now I'm using 'cleaner' ansi sequences.
4131 seems that now I'm using 'cleaner' ansi sequences.
4129
4132
4130 2002-02-21 Fernando Perez <fperez@colorado.edu>
4133 2002-02-21 Fernando Perez <fperez@colorado.edu>
4131
4134
4132 * Released 0.2.7 (mainly to publish the scoping fix).
4135 * Released 0.2.7 (mainly to publish the scoping fix).
4133
4136
4134 * IPython/Logger.py (Logger.logstate): added. A corresponding
4137 * IPython/Logger.py (Logger.logstate): added. A corresponding
4135 @logstate magic was created.
4138 @logstate magic was created.
4136
4139
4137 * IPython/Magic.py: fixed nested scoping problem under Python
4140 * IPython/Magic.py: fixed nested scoping problem under Python
4138 2.1.x (automagic wasn't working).
4141 2.1.x (automagic wasn't working).
4139
4142
4140 2002-02-20 Fernando Perez <fperez@colorado.edu>
4143 2002-02-20 Fernando Perez <fperez@colorado.edu>
4141
4144
4142 * Released 0.2.6.
4145 * Released 0.2.6.
4143
4146
4144 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4147 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4145 option so that logs can come out without any headers at all.
4148 option so that logs can come out without any headers at all.
4146
4149
4147 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4150 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4148 SciPy.
4151 SciPy.
4149
4152
4150 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4153 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4151 that embedded IPython calls don't require vars() to be explicitly
4154 that embedded IPython calls don't require vars() to be explicitly
4152 passed. Now they are extracted from the caller's frame (code
4155 passed. Now they are extracted from the caller's frame (code
4153 snatched from Eric Jones' weave). Added better documentation to
4156 snatched from Eric Jones' weave). Added better documentation to
4154 the section on embedding and the example file.
4157 the section on embedding and the example file.
4155
4158
4156 * IPython/genutils.py (page): Changed so that under emacs, it just
4159 * IPython/genutils.py (page): Changed so that under emacs, it just
4157 prints the string. You can then page up and down in the emacs
4160 prints the string. You can then page up and down in the emacs
4158 buffer itself. This is how the builtin help() works.
4161 buffer itself. This is how the builtin help() works.
4159
4162
4160 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4163 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4161 macro scoping: macros need to be executed in the user's namespace
4164 macro scoping: macros need to be executed in the user's namespace
4162 to work as if they had been typed by the user.
4165 to work as if they had been typed by the user.
4163
4166
4164 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4167 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4165 execute automatically (no need to type 'exec...'). They then
4168 execute automatically (no need to type 'exec...'). They then
4166 behave like 'true macros'. The printing system was also modified
4169 behave like 'true macros'. The printing system was also modified
4167 for this to work.
4170 for this to work.
4168
4171
4169 2002-02-19 Fernando Perez <fperez@colorado.edu>
4172 2002-02-19 Fernando Perez <fperez@colorado.edu>
4170
4173
4171 * IPython/genutils.py (page_file): new function for paging files
4174 * IPython/genutils.py (page_file): new function for paging files
4172 in an OS-independent way. Also necessary for file viewing to work
4175 in an OS-independent way. Also necessary for file viewing to work
4173 well inside Emacs buffers.
4176 well inside Emacs buffers.
4174 (page): Added checks for being in an emacs buffer.
4177 (page): Added checks for being in an emacs buffer.
4175 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4178 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4176 same bug in iplib.
4179 same bug in iplib.
4177
4180
4178 2002-02-18 Fernando Perez <fperez@colorado.edu>
4181 2002-02-18 Fernando Perez <fperez@colorado.edu>
4179
4182
4180 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4183 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4181 of readline so that IPython can work inside an Emacs buffer.
4184 of readline so that IPython can work inside an Emacs buffer.
4182
4185
4183 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4186 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4184 method signatures (they weren't really bugs, but it looks cleaner
4187 method signatures (they weren't really bugs, but it looks cleaner
4185 and keeps PyChecker happy).
4188 and keeps PyChecker happy).
4186
4189
4187 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4190 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4188 for implementing various user-defined hooks. Currently only
4191 for implementing various user-defined hooks. Currently only
4189 display is done.
4192 display is done.
4190
4193
4191 * IPython/Prompts.py (CachedOutput._display): changed display
4194 * IPython/Prompts.py (CachedOutput._display): changed display
4192 functions so that they can be dynamically changed by users easily.
4195 functions so that they can be dynamically changed by users easily.
4193
4196
4194 * IPython/Extensions/numeric_formats.py (num_display): added an
4197 * IPython/Extensions/numeric_formats.py (num_display): added an
4195 extension for printing NumPy arrays in flexible manners. It
4198 extension for printing NumPy arrays in flexible manners. It
4196 doesn't do anything yet, but all the structure is in
4199 doesn't do anything yet, but all the structure is in
4197 place. Ultimately the plan is to implement output format control
4200 place. Ultimately the plan is to implement output format control
4198 like in Octave.
4201 like in Octave.
4199
4202
4200 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4203 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4201 methods are found at run-time by all the automatic machinery.
4204 methods are found at run-time by all the automatic machinery.
4202
4205
4203 2002-02-17 Fernando Perez <fperez@colorado.edu>
4206 2002-02-17 Fernando Perez <fperez@colorado.edu>
4204
4207
4205 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4208 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4206 whole file a little.
4209 whole file a little.
4207
4210
4208 * ToDo: closed this document. Now there's a new_design.lyx
4211 * ToDo: closed this document. Now there's a new_design.lyx
4209 document for all new ideas. Added making a pdf of it for the
4212 document for all new ideas. Added making a pdf of it for the
4210 end-user distro.
4213 end-user distro.
4211
4214
4212 * IPython/Logger.py (Logger.switch_log): Created this to replace
4215 * IPython/Logger.py (Logger.switch_log): Created this to replace
4213 logon() and logoff(). It also fixes a nasty crash reported by
4216 logon() and logoff(). It also fixes a nasty crash reported by
4214 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4217 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4215
4218
4216 * IPython/iplib.py (complete): got auto-completion to work with
4219 * IPython/iplib.py (complete): got auto-completion to work with
4217 automagic (I had wanted this for a long time).
4220 automagic (I had wanted this for a long time).
4218
4221
4219 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4222 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4220 to @file, since file() is now a builtin and clashes with automagic
4223 to @file, since file() is now a builtin and clashes with automagic
4221 for @file.
4224 for @file.
4222
4225
4223 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4226 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4224 of this was previously in iplib, which had grown to more than 2000
4227 of this was previously in iplib, which had grown to more than 2000
4225 lines, way too long. No new functionality, but it makes managing
4228 lines, way too long. No new functionality, but it makes managing
4226 the code a bit easier.
4229 the code a bit easier.
4227
4230
4228 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4231 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4229 information to crash reports.
4232 information to crash reports.
4230
4233
4231 2002-02-12 Fernando Perez <fperez@colorado.edu>
4234 2002-02-12 Fernando Perez <fperez@colorado.edu>
4232
4235
4233 * Released 0.2.5.
4236 * Released 0.2.5.
4234
4237
4235 2002-02-11 Fernando Perez <fperez@colorado.edu>
4238 2002-02-11 Fernando Perez <fperez@colorado.edu>
4236
4239
4237 * Wrote a relatively complete Windows installer. It puts
4240 * Wrote a relatively complete Windows installer. It puts
4238 everything in place, creates Start Menu entries and fixes the
4241 everything in place, creates Start Menu entries and fixes the
4239 color issues. Nothing fancy, but it works.
4242 color issues. Nothing fancy, but it works.
4240
4243
4241 2002-02-10 Fernando Perez <fperez@colorado.edu>
4244 2002-02-10 Fernando Perez <fperez@colorado.edu>
4242
4245
4243 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4246 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4244 os.path.expanduser() call so that we can type @run ~/myfile.py and
4247 os.path.expanduser() call so that we can type @run ~/myfile.py and
4245 have thigs work as expected.
4248 have thigs work as expected.
4246
4249
4247 * IPython/genutils.py (page): fixed exception handling so things
4250 * IPython/genutils.py (page): fixed exception handling so things
4248 work both in Unix and Windows correctly. Quitting a pager triggers
4251 work both in Unix and Windows correctly. Quitting a pager triggers
4249 an IOError/broken pipe in Unix, and in windows not finding a pager
4252 an IOError/broken pipe in Unix, and in windows not finding a pager
4250 is also an IOError, so I had to actually look at the return value
4253 is also an IOError, so I had to actually look at the return value
4251 of the exception, not just the exception itself. Should be ok now.
4254 of the exception, not just the exception itself. Should be ok now.
4252
4255
4253 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4256 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4254 modified to allow case-insensitive color scheme changes.
4257 modified to allow case-insensitive color scheme changes.
4255
4258
4256 2002-02-09 Fernando Perez <fperez@colorado.edu>
4259 2002-02-09 Fernando Perez <fperez@colorado.edu>
4257
4260
4258 * IPython/genutils.py (native_line_ends): new function to leave
4261 * IPython/genutils.py (native_line_ends): new function to leave
4259 user config files with os-native line-endings.
4262 user config files with os-native line-endings.
4260
4263
4261 * README and manual updates.
4264 * README and manual updates.
4262
4265
4263 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4266 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4264 instead of StringType to catch Unicode strings.
4267 instead of StringType to catch Unicode strings.
4265
4268
4266 * IPython/genutils.py (filefind): fixed bug for paths with
4269 * IPython/genutils.py (filefind): fixed bug for paths with
4267 embedded spaces (very common in Windows).
4270 embedded spaces (very common in Windows).
4268
4271
4269 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4272 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4270 files under Windows, so that they get automatically associated
4273 files under Windows, so that they get automatically associated
4271 with a text editor. Windows makes it a pain to handle
4274 with a text editor. Windows makes it a pain to handle
4272 extension-less files.
4275 extension-less files.
4273
4276
4274 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4277 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4275 warning about readline only occur for Posix. In Windows there's no
4278 warning about readline only occur for Posix. In Windows there's no
4276 way to get readline, so why bother with the warning.
4279 way to get readline, so why bother with the warning.
4277
4280
4278 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4281 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4279 for __str__ instead of dir(self), since dir() changed in 2.2.
4282 for __str__ instead of dir(self), since dir() changed in 2.2.
4280
4283
4281 * Ported to Windows! Tested on XP, I suspect it should work fine
4284 * Ported to Windows! Tested on XP, I suspect it should work fine
4282 on NT/2000, but I don't think it will work on 98 et al. That
4285 on NT/2000, but I don't think it will work on 98 et al. That
4283 series of Windows is such a piece of junk anyway that I won't try
4286 series of Windows is such a piece of junk anyway that I won't try
4284 porting it there. The XP port was straightforward, showed a few
4287 porting it there. The XP port was straightforward, showed a few
4285 bugs here and there (fixed all), in particular some string
4288 bugs here and there (fixed all), in particular some string
4286 handling stuff which required considering Unicode strings (which
4289 handling stuff which required considering Unicode strings (which
4287 Windows uses). This is good, but hasn't been too tested :) No
4290 Windows uses). This is good, but hasn't been too tested :) No
4288 fancy installer yet, I'll put a note in the manual so people at
4291 fancy installer yet, I'll put a note in the manual so people at
4289 least make manually a shortcut.
4292 least make manually a shortcut.
4290
4293
4291 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4294 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4292 into a single one, "colors". This now controls both prompt and
4295 into a single one, "colors". This now controls both prompt and
4293 exception color schemes, and can be changed both at startup
4296 exception color schemes, and can be changed both at startup
4294 (either via command-line switches or via ipythonrc files) and at
4297 (either via command-line switches or via ipythonrc files) and at
4295 runtime, with @colors.
4298 runtime, with @colors.
4296 (Magic.magic_run): renamed @prun to @run and removed the old
4299 (Magic.magic_run): renamed @prun to @run and removed the old
4297 @run. The two were too similar to warrant keeping both.
4300 @run. The two were too similar to warrant keeping both.
4298
4301
4299 2002-02-03 Fernando Perez <fperez@colorado.edu>
4302 2002-02-03 Fernando Perez <fperez@colorado.edu>
4300
4303
4301 * IPython/iplib.py (install_first_time): Added comment on how to
4304 * IPython/iplib.py (install_first_time): Added comment on how to
4302 configure the color options for first-time users. Put a <return>
4305 configure the color options for first-time users. Put a <return>
4303 request at the end so that small-terminal users get a chance to
4306 request at the end so that small-terminal users get a chance to
4304 read the startup info.
4307 read the startup info.
4305
4308
4306 2002-01-23 Fernando Perez <fperez@colorado.edu>
4309 2002-01-23 Fernando Perez <fperez@colorado.edu>
4307
4310
4308 * IPython/iplib.py (CachedOutput.update): Changed output memory
4311 * IPython/iplib.py (CachedOutput.update): Changed output memory
4309 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4312 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4310 input history we still use _i. Did this b/c these variable are
4313 input history we still use _i. Did this b/c these variable are
4311 very commonly used in interactive work, so the less we need to
4314 very commonly used in interactive work, so the less we need to
4312 type the better off we are.
4315 type the better off we are.
4313 (Magic.magic_prun): updated @prun to better handle the namespaces
4316 (Magic.magic_prun): updated @prun to better handle the namespaces
4314 the file will run in, including a fix for __name__ not being set
4317 the file will run in, including a fix for __name__ not being set
4315 before.
4318 before.
4316
4319
4317 2002-01-20 Fernando Perez <fperez@colorado.edu>
4320 2002-01-20 Fernando Perez <fperez@colorado.edu>
4318
4321
4319 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4322 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4320 extra garbage for Python 2.2. Need to look more carefully into
4323 extra garbage for Python 2.2. Need to look more carefully into
4321 this later.
4324 this later.
4322
4325
4323 2002-01-19 Fernando Perez <fperez@colorado.edu>
4326 2002-01-19 Fernando Perez <fperez@colorado.edu>
4324
4327
4325 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4328 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4326 display SyntaxError exceptions properly formatted when they occur
4329 display SyntaxError exceptions properly formatted when they occur
4327 (they can be triggered by imported code).
4330 (they can be triggered by imported code).
4328
4331
4329 2002-01-18 Fernando Perez <fperez@colorado.edu>
4332 2002-01-18 Fernando Perez <fperez@colorado.edu>
4330
4333
4331 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4334 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4332 SyntaxError exceptions are reported nicely formatted, instead of
4335 SyntaxError exceptions are reported nicely formatted, instead of
4333 spitting out only offset information as before.
4336 spitting out only offset information as before.
4334 (Magic.magic_prun): Added the @prun function for executing
4337 (Magic.magic_prun): Added the @prun function for executing
4335 programs with command line args inside IPython.
4338 programs with command line args inside IPython.
4336
4339
4337 2002-01-16 Fernando Perez <fperez@colorado.edu>
4340 2002-01-16 Fernando Perez <fperez@colorado.edu>
4338
4341
4339 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4342 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4340 to *not* include the last item given in a range. This brings their
4343 to *not* include the last item given in a range. This brings their
4341 behavior in line with Python's slicing:
4344 behavior in line with Python's slicing:
4342 a[n1:n2] -> a[n1]...a[n2-1]
4345 a[n1:n2] -> a[n1]...a[n2-1]
4343 It may be a bit less convenient, but I prefer to stick to Python's
4346 It may be a bit less convenient, but I prefer to stick to Python's
4344 conventions *everywhere*, so users never have to wonder.
4347 conventions *everywhere*, so users never have to wonder.
4345 (Magic.magic_macro): Added @macro function to ease the creation of
4348 (Magic.magic_macro): Added @macro function to ease the creation of
4346 macros.
4349 macros.
4347
4350
4348 2002-01-05 Fernando Perez <fperez@colorado.edu>
4351 2002-01-05 Fernando Perez <fperez@colorado.edu>
4349
4352
4350 * Released 0.2.4.
4353 * Released 0.2.4.
4351
4354
4352 * IPython/iplib.py (Magic.magic_pdef):
4355 * IPython/iplib.py (Magic.magic_pdef):
4353 (InteractiveShell.safe_execfile): report magic lines and error
4356 (InteractiveShell.safe_execfile): report magic lines and error
4354 lines without line numbers so one can easily copy/paste them for
4357 lines without line numbers so one can easily copy/paste them for
4355 re-execution.
4358 re-execution.
4356
4359
4357 * Updated manual with recent changes.
4360 * Updated manual with recent changes.
4358
4361
4359 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4362 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4360 docstring printing when class? is called. Very handy for knowing
4363 docstring printing when class? is called. Very handy for knowing
4361 how to create class instances (as long as __init__ is well
4364 how to create class instances (as long as __init__ is well
4362 documented, of course :)
4365 documented, of course :)
4363 (Magic.magic_doc): print both class and constructor docstrings.
4366 (Magic.magic_doc): print both class and constructor docstrings.
4364 (Magic.magic_pdef): give constructor info if passed a class and
4367 (Magic.magic_pdef): give constructor info if passed a class and
4365 __call__ info for callable object instances.
4368 __call__ info for callable object instances.
4366
4369
4367 2002-01-04 Fernando Perez <fperez@colorado.edu>
4370 2002-01-04 Fernando Perez <fperez@colorado.edu>
4368
4371
4369 * Made deep_reload() off by default. It doesn't always work
4372 * Made deep_reload() off by default. It doesn't always work
4370 exactly as intended, so it's probably safer to have it off. It's
4373 exactly as intended, so it's probably safer to have it off. It's
4371 still available as dreload() anyway, so nothing is lost.
4374 still available as dreload() anyway, so nothing is lost.
4372
4375
4373 2002-01-02 Fernando Perez <fperez@colorado.edu>
4376 2002-01-02 Fernando Perez <fperez@colorado.edu>
4374
4377
4375 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4378 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4376 so I wanted an updated release).
4379 so I wanted an updated release).
4377
4380
4378 2001-12-27 Fernando Perez <fperez@colorado.edu>
4381 2001-12-27 Fernando Perez <fperez@colorado.edu>
4379
4382
4380 * IPython/iplib.py (InteractiveShell.interact): Added the original
4383 * IPython/iplib.py (InteractiveShell.interact): Added the original
4381 code from 'code.py' for this module in order to change the
4384 code from 'code.py' for this module in order to change the
4382 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4385 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4383 the history cache would break when the user hit Ctrl-C, and
4386 the history cache would break when the user hit Ctrl-C, and
4384 interact() offers no way to add any hooks to it.
4387 interact() offers no way to add any hooks to it.
4385
4388
4386 2001-12-23 Fernando Perez <fperez@colorado.edu>
4389 2001-12-23 Fernando Perez <fperez@colorado.edu>
4387
4390
4388 * setup.py: added check for 'MANIFEST' before trying to remove
4391 * setup.py: added check for 'MANIFEST' before trying to remove
4389 it. Thanks to Sean Reifschneider.
4392 it. Thanks to Sean Reifschneider.
4390
4393
4391 2001-12-22 Fernando Perez <fperez@colorado.edu>
4394 2001-12-22 Fernando Perez <fperez@colorado.edu>
4392
4395
4393 * Released 0.2.2.
4396 * Released 0.2.2.
4394
4397
4395 * Finished (reasonably) writing the manual. Later will add the
4398 * Finished (reasonably) writing the manual. Later will add the
4396 python-standard navigation stylesheets, but for the time being
4399 python-standard navigation stylesheets, but for the time being
4397 it's fairly complete. Distribution will include html and pdf
4400 it's fairly complete. Distribution will include html and pdf
4398 versions.
4401 versions.
4399
4402
4400 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4403 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4401 (MayaVi author).
4404 (MayaVi author).
4402
4405
4403 2001-12-21 Fernando Perez <fperez@colorado.edu>
4406 2001-12-21 Fernando Perez <fperez@colorado.edu>
4404
4407
4405 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4408 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4406 good public release, I think (with the manual and the distutils
4409 good public release, I think (with the manual and the distutils
4407 installer). The manual can use some work, but that can go
4410 installer). The manual can use some work, but that can go
4408 slowly. Otherwise I think it's quite nice for end users. Next
4411 slowly. Otherwise I think it's quite nice for end users. Next
4409 summer, rewrite the guts of it...
4412 summer, rewrite the guts of it...
4410
4413
4411 * Changed format of ipythonrc files to use whitespace as the
4414 * Changed format of ipythonrc files to use whitespace as the
4412 separator instead of an explicit '='. Cleaner.
4415 separator instead of an explicit '='. Cleaner.
4413
4416
4414 2001-12-20 Fernando Perez <fperez@colorado.edu>
4417 2001-12-20 Fernando Perez <fperez@colorado.edu>
4415
4418
4416 * Started a manual in LyX. For now it's just a quick merge of the
4419 * Started a manual in LyX. For now it's just a quick merge of the
4417 various internal docstrings and READMEs. Later it may grow into a
4420 various internal docstrings and READMEs. Later it may grow into a
4418 nice, full-blown manual.
4421 nice, full-blown manual.
4419
4422
4420 * Set up a distutils based installer. Installation should now be
4423 * Set up a distutils based installer. Installation should now be
4421 trivially simple for end-users.
4424 trivially simple for end-users.
4422
4425
4423 2001-12-11 Fernando Perez <fperez@colorado.edu>
4426 2001-12-11 Fernando Perez <fperez@colorado.edu>
4424
4427
4425 * Released 0.2.0. First public release, announced it at
4428 * Released 0.2.0. First public release, announced it at
4426 comp.lang.python. From now on, just bugfixes...
4429 comp.lang.python. From now on, just bugfixes...
4427
4430
4428 * Went through all the files, set copyright/license notices and
4431 * Went through all the files, set copyright/license notices and
4429 cleaned up things. Ready for release.
4432 cleaned up things. Ready for release.
4430
4433
4431 2001-12-10 Fernando Perez <fperez@colorado.edu>
4434 2001-12-10 Fernando Perez <fperez@colorado.edu>
4432
4435
4433 * Changed the first-time installer not to use tarfiles. It's more
4436 * Changed the first-time installer not to use tarfiles. It's more
4434 robust now and less unix-dependent. Also makes it easier for
4437 robust now and less unix-dependent. Also makes it easier for
4435 people to later upgrade versions.
4438 people to later upgrade versions.
4436
4439
4437 * Changed @exit to @abort to reflect the fact that it's pretty
4440 * Changed @exit to @abort to reflect the fact that it's pretty
4438 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4441 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4439 becomes significant only when IPyhton is embedded: in that case,
4442 becomes significant only when IPyhton is embedded: in that case,
4440 C-D closes IPython only, but @abort kills the enclosing program
4443 C-D closes IPython only, but @abort kills the enclosing program
4441 too (unless it had called IPython inside a try catching
4444 too (unless it had called IPython inside a try catching
4442 SystemExit).
4445 SystemExit).
4443
4446
4444 * Created Shell module which exposes the actuall IPython Shell
4447 * Created Shell module which exposes the actuall IPython Shell
4445 classes, currently the normal and the embeddable one. This at
4448 classes, currently the normal and the embeddable one. This at
4446 least offers a stable interface we won't need to change when
4449 least offers a stable interface we won't need to change when
4447 (later) the internals are rewritten. That rewrite will be confined
4450 (later) the internals are rewritten. That rewrite will be confined
4448 to iplib and ipmaker, but the Shell interface should remain as is.
4451 to iplib and ipmaker, but the Shell interface should remain as is.
4449
4452
4450 * Added embed module which offers an embeddable IPShell object,
4453 * Added embed module which offers an embeddable IPShell object,
4451 useful to fire up IPython *inside* a running program. Great for
4454 useful to fire up IPython *inside* a running program. Great for
4452 debugging or dynamical data analysis.
4455 debugging or dynamical data analysis.
4453
4456
4454 2001-12-08 Fernando Perez <fperez@colorado.edu>
4457 2001-12-08 Fernando Perez <fperez@colorado.edu>
4455
4458
4456 * Fixed small bug preventing seeing info from methods of defined
4459 * Fixed small bug preventing seeing info from methods of defined
4457 objects (incorrect namespace in _ofind()).
4460 objects (incorrect namespace in _ofind()).
4458
4461
4459 * Documentation cleanup. Moved the main usage docstrings to a
4462 * Documentation cleanup. Moved the main usage docstrings to a
4460 separate file, usage.py (cleaner to maintain, and hopefully in the
4463 separate file, usage.py (cleaner to maintain, and hopefully in the
4461 future some perlpod-like way of producing interactive, man and
4464 future some perlpod-like way of producing interactive, man and
4462 html docs out of it will be found).
4465 html docs out of it will be found).
4463
4466
4464 * Added @profile to see your profile at any time.
4467 * Added @profile to see your profile at any time.
4465
4468
4466 * Added @p as an alias for 'print'. It's especially convenient if
4469 * Added @p as an alias for 'print'. It's especially convenient if
4467 using automagic ('p x' prints x).
4470 using automagic ('p x' prints x).
4468
4471
4469 * Small cleanups and fixes after a pychecker run.
4472 * Small cleanups and fixes after a pychecker run.
4470
4473
4471 * Changed the @cd command to handle @cd - and @cd -<n> for
4474 * Changed the @cd command to handle @cd - and @cd -<n> for
4472 visiting any directory in _dh.
4475 visiting any directory in _dh.
4473
4476
4474 * Introduced _dh, a history of visited directories. @dhist prints
4477 * Introduced _dh, a history of visited directories. @dhist prints
4475 it out with numbers.
4478 it out with numbers.
4476
4479
4477 2001-12-07 Fernando Perez <fperez@colorado.edu>
4480 2001-12-07 Fernando Perez <fperez@colorado.edu>
4478
4481
4479 * Released 0.1.22
4482 * Released 0.1.22
4480
4483
4481 * Made initialization a bit more robust against invalid color
4484 * Made initialization a bit more robust against invalid color
4482 options in user input (exit, not traceback-crash).
4485 options in user input (exit, not traceback-crash).
4483
4486
4484 * Changed the bug crash reporter to write the report only in the
4487 * Changed the bug crash reporter to write the report only in the
4485 user's .ipython directory. That way IPython won't litter people's
4488 user's .ipython directory. That way IPython won't litter people's
4486 hard disks with crash files all over the place. Also print on
4489 hard disks with crash files all over the place. Also print on
4487 screen the necessary mail command.
4490 screen the necessary mail command.
4488
4491
4489 * With the new ultraTB, implemented LightBG color scheme for light
4492 * With the new ultraTB, implemented LightBG color scheme for light
4490 background terminals. A lot of people like white backgrounds, so I
4493 background terminals. A lot of people like white backgrounds, so I
4491 guess we should at least give them something readable.
4494 guess we should at least give them something readable.
4492
4495
4493 2001-12-06 Fernando Perez <fperez@colorado.edu>
4496 2001-12-06 Fernando Perez <fperez@colorado.edu>
4494
4497
4495 * Modified the structure of ultraTB. Now there's a proper class
4498 * Modified the structure of ultraTB. Now there's a proper class
4496 for tables of color schemes which allow adding schemes easily and
4499 for tables of color schemes which allow adding schemes easily and
4497 switching the active scheme without creating a new instance every
4500 switching the active scheme without creating a new instance every
4498 time (which was ridiculous). The syntax for creating new schemes
4501 time (which was ridiculous). The syntax for creating new schemes
4499 is also cleaner. I think ultraTB is finally done, with a clean
4502 is also cleaner. I think ultraTB is finally done, with a clean
4500 class structure. Names are also much cleaner (now there's proper
4503 class structure. Names are also much cleaner (now there's proper
4501 color tables, no need for every variable to also have 'color' in
4504 color tables, no need for every variable to also have 'color' in
4502 its name).
4505 its name).
4503
4506
4504 * Broke down genutils into separate files. Now genutils only
4507 * Broke down genutils into separate files. Now genutils only
4505 contains utility functions, and classes have been moved to their
4508 contains utility functions, and classes have been moved to their
4506 own files (they had enough independent functionality to warrant
4509 own files (they had enough independent functionality to warrant
4507 it): ConfigLoader, OutputTrap, Struct.
4510 it): ConfigLoader, OutputTrap, Struct.
4508
4511
4509 2001-12-05 Fernando Perez <fperez@colorado.edu>
4512 2001-12-05 Fernando Perez <fperez@colorado.edu>
4510
4513
4511 * IPython turns 21! Released version 0.1.21, as a candidate for
4514 * IPython turns 21! Released version 0.1.21, as a candidate for
4512 public consumption. If all goes well, release in a few days.
4515 public consumption. If all goes well, release in a few days.
4513
4516
4514 * Fixed path bug (files in Extensions/ directory wouldn't be found
4517 * Fixed path bug (files in Extensions/ directory wouldn't be found
4515 unless IPython/ was explicitly in sys.path).
4518 unless IPython/ was explicitly in sys.path).
4516
4519
4517 * Extended the FlexCompleter class as MagicCompleter to allow
4520 * Extended the FlexCompleter class as MagicCompleter to allow
4518 completion of @-starting lines.
4521 completion of @-starting lines.
4519
4522
4520 * Created __release__.py file as a central repository for release
4523 * Created __release__.py file as a central repository for release
4521 info that other files can read from.
4524 info that other files can read from.
4522
4525
4523 * Fixed small bug in logging: when logging was turned on in
4526 * Fixed small bug in logging: when logging was turned on in
4524 mid-session, old lines with special meanings (!@?) were being
4527 mid-session, old lines with special meanings (!@?) were being
4525 logged without the prepended comment, which is necessary since
4528 logged without the prepended comment, which is necessary since
4526 they are not truly valid python syntax. This should make session
4529 they are not truly valid python syntax. This should make session
4527 restores produce less errors.
4530 restores produce less errors.
4528
4531
4529 * The namespace cleanup forced me to make a FlexCompleter class
4532 * The namespace cleanup forced me to make a FlexCompleter class
4530 which is nothing but a ripoff of rlcompleter, but with selectable
4533 which is nothing but a ripoff of rlcompleter, but with selectable
4531 namespace (rlcompleter only works in __main__.__dict__). I'll try
4534 namespace (rlcompleter only works in __main__.__dict__). I'll try
4532 to submit a note to the authors to see if this change can be
4535 to submit a note to the authors to see if this change can be
4533 incorporated in future rlcompleter releases (Dec.6: done)
4536 incorporated in future rlcompleter releases (Dec.6: done)
4534
4537
4535 * More fixes to namespace handling. It was a mess! Now all
4538 * More fixes to namespace handling. It was a mess! Now all
4536 explicit references to __main__.__dict__ are gone (except when
4539 explicit references to __main__.__dict__ are gone (except when
4537 really needed) and everything is handled through the namespace
4540 really needed) and everything is handled through the namespace
4538 dicts in the IPython instance. We seem to be getting somewhere
4541 dicts in the IPython instance. We seem to be getting somewhere
4539 with this, finally...
4542 with this, finally...
4540
4543
4541 * Small documentation updates.
4544 * Small documentation updates.
4542
4545
4543 * Created the Extensions directory under IPython (with an
4546 * Created the Extensions directory under IPython (with an
4544 __init__.py). Put the PhysicalQ stuff there. This directory should
4547 __init__.py). Put the PhysicalQ stuff there. This directory should
4545 be used for all special-purpose extensions.
4548 be used for all special-purpose extensions.
4546
4549
4547 * File renaming:
4550 * File renaming:
4548 ipythonlib --> ipmaker
4551 ipythonlib --> ipmaker
4549 ipplib --> iplib
4552 ipplib --> iplib
4550 This makes a bit more sense in terms of what these files actually do.
4553 This makes a bit more sense in terms of what these files actually do.
4551
4554
4552 * Moved all the classes and functions in ipythonlib to ipplib, so
4555 * Moved all the classes and functions in ipythonlib to ipplib, so
4553 now ipythonlib only has make_IPython(). This will ease up its
4556 now ipythonlib only has make_IPython(). This will ease up its
4554 splitting in smaller functional chunks later.
4557 splitting in smaller functional chunks later.
4555
4558
4556 * Cleaned up (done, I think) output of @whos. Better column
4559 * Cleaned up (done, I think) output of @whos. Better column
4557 formatting, and now shows str(var) for as much as it can, which is
4560 formatting, and now shows str(var) for as much as it can, which is
4558 typically what one gets with a 'print var'.
4561 typically what one gets with a 'print var'.
4559
4562
4560 2001-12-04 Fernando Perez <fperez@colorado.edu>
4563 2001-12-04 Fernando Perez <fperez@colorado.edu>
4561
4564
4562 * Fixed namespace problems. Now builtin/IPyhton/user names get
4565 * Fixed namespace problems. Now builtin/IPyhton/user names get
4563 properly reported in their namespace. Internal namespace handling
4566 properly reported in their namespace. Internal namespace handling
4564 is finally getting decent (not perfect yet, but much better than
4567 is finally getting decent (not perfect yet, but much better than
4565 the ad-hoc mess we had).
4568 the ad-hoc mess we had).
4566
4569
4567 * Removed -exit option. If people just want to run a python
4570 * Removed -exit option. If people just want to run a python
4568 script, that's what the normal interpreter is for. Less
4571 script, that's what the normal interpreter is for. Less
4569 unnecessary options, less chances for bugs.
4572 unnecessary options, less chances for bugs.
4570
4573
4571 * Added a crash handler which generates a complete post-mortem if
4574 * Added a crash handler which generates a complete post-mortem if
4572 IPython crashes. This will help a lot in tracking bugs down the
4575 IPython crashes. This will help a lot in tracking bugs down the
4573 road.
4576 road.
4574
4577
4575 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4578 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4576 which were boud to functions being reassigned would bypass the
4579 which were boud to functions being reassigned would bypass the
4577 logger, breaking the sync of _il with the prompt counter. This
4580 logger, breaking the sync of _il with the prompt counter. This
4578 would then crash IPython later when a new line was logged.
4581 would then crash IPython later when a new line was logged.
4579
4582
4580 2001-12-02 Fernando Perez <fperez@colorado.edu>
4583 2001-12-02 Fernando Perez <fperez@colorado.edu>
4581
4584
4582 * Made IPython a package. This means people don't have to clutter
4585 * Made IPython a package. This means people don't have to clutter
4583 their sys.path with yet another directory. Changed the INSTALL
4586 their sys.path with yet another directory. Changed the INSTALL
4584 file accordingly.
4587 file accordingly.
4585
4588
4586 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4589 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4587 sorts its output (so @who shows it sorted) and @whos formats the
4590 sorts its output (so @who shows it sorted) and @whos formats the
4588 table according to the width of the first column. Nicer, easier to
4591 table according to the width of the first column. Nicer, easier to
4589 read. Todo: write a generic table_format() which takes a list of
4592 read. Todo: write a generic table_format() which takes a list of
4590 lists and prints it nicely formatted, with optional row/column
4593 lists and prints it nicely formatted, with optional row/column
4591 separators and proper padding and justification.
4594 separators and proper padding and justification.
4592
4595
4593 * Released 0.1.20
4596 * Released 0.1.20
4594
4597
4595 * Fixed bug in @log which would reverse the inputcache list (a
4598 * Fixed bug in @log which would reverse the inputcache list (a
4596 copy operation was missing).
4599 copy operation was missing).
4597
4600
4598 * Code cleanup. @config was changed to use page(). Better, since
4601 * Code cleanup. @config was changed to use page(). Better, since
4599 its output is always quite long.
4602 its output is always quite long.
4600
4603
4601 * Itpl is back as a dependency. I was having too many problems
4604 * Itpl is back as a dependency. I was having too many problems
4602 getting the parametric aliases to work reliably, and it's just
4605 getting the parametric aliases to work reliably, and it's just
4603 easier to code weird string operations with it than playing %()s
4606 easier to code weird string operations with it than playing %()s
4604 games. It's only ~6k, so I don't think it's too big a deal.
4607 games. It's only ~6k, so I don't think it's too big a deal.
4605
4608
4606 * Found (and fixed) a very nasty bug with history. !lines weren't
4609 * Found (and fixed) a very nasty bug with history. !lines weren't
4607 getting cached, and the out of sync caches would crash
4610 getting cached, and the out of sync caches would crash
4608 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4611 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4609 division of labor a bit better. Bug fixed, cleaner structure.
4612 division of labor a bit better. Bug fixed, cleaner structure.
4610
4613
4611 2001-12-01 Fernando Perez <fperez@colorado.edu>
4614 2001-12-01 Fernando Perez <fperez@colorado.edu>
4612
4615
4613 * Released 0.1.19
4616 * Released 0.1.19
4614
4617
4615 * Added option -n to @hist to prevent line number printing. Much
4618 * Added option -n to @hist to prevent line number printing. Much
4616 easier to copy/paste code this way.
4619 easier to copy/paste code this way.
4617
4620
4618 * Created global _il to hold the input list. Allows easy
4621 * Created global _il to hold the input list. Allows easy
4619 re-execution of blocks of code by slicing it (inspired by Janko's
4622 re-execution of blocks of code by slicing it (inspired by Janko's
4620 comment on 'macros').
4623 comment on 'macros').
4621
4624
4622 * Small fixes and doc updates.
4625 * Small fixes and doc updates.
4623
4626
4624 * Rewrote @history function (was @h). Renamed it to @hist, @h is
4627 * Rewrote @history function (was @h). Renamed it to @hist, @h is
4625 much too fragile with automagic. Handles properly multi-line
4628 much too fragile with automagic. Handles properly multi-line
4626 statements and takes parameters.
4629 statements and takes parameters.
4627
4630
4628 2001-11-30 Fernando Perez <fperez@colorado.edu>
4631 2001-11-30 Fernando Perez <fperez@colorado.edu>
4629
4632
4630 * Version 0.1.18 released.
4633 * Version 0.1.18 released.
4631
4634
4632 * Fixed nasty namespace bug in initial module imports.
4635 * Fixed nasty namespace bug in initial module imports.
4633
4636
4634 * Added copyright/license notes to all code files (except
4637 * Added copyright/license notes to all code files (except
4635 DPyGetOpt). For the time being, LGPL. That could change.
4638 DPyGetOpt). For the time being, LGPL. That could change.
4636
4639
4637 * Rewrote a much nicer README, updated INSTALL, cleaned up
4640 * Rewrote a much nicer README, updated INSTALL, cleaned up
4638 ipythonrc-* samples.
4641 ipythonrc-* samples.
4639
4642
4640 * Overall code/documentation cleanup. Basically ready for
4643 * Overall code/documentation cleanup. Basically ready for
4641 release. Only remaining thing: licence decision (LGPL?).
4644 release. Only remaining thing: licence decision (LGPL?).
4642
4645
4643 * Converted load_config to a class, ConfigLoader. Now recursion
4646 * Converted load_config to a class, ConfigLoader. Now recursion
4644 control is better organized. Doesn't include the same file twice.
4647 control is better organized. Doesn't include the same file twice.
4645
4648
4646 2001-11-29 Fernando Perez <fperez@colorado.edu>
4649 2001-11-29 Fernando Perez <fperez@colorado.edu>
4647
4650
4648 * Got input history working. Changed output history variables from
4651 * Got input history working. Changed output history variables from
4649 _p to _o so that _i is for input and _o for output. Just cleaner
4652 _p to _o so that _i is for input and _o for output. Just cleaner
4650 convention.
4653 convention.
4651
4654
4652 * Implemented parametric aliases. This pretty much allows the
4655 * Implemented parametric aliases. This pretty much allows the
4653 alias system to offer full-blown shell convenience, I think.
4656 alias system to offer full-blown shell convenience, I think.
4654
4657
4655 * Version 0.1.17 released, 0.1.18 opened.
4658 * Version 0.1.17 released, 0.1.18 opened.
4656
4659
4657 * dot_ipython/ipythonrc (alias): added documentation.
4660 * dot_ipython/ipythonrc (alias): added documentation.
4658 (xcolor): Fixed small bug (xcolors -> xcolor)
4661 (xcolor): Fixed small bug (xcolors -> xcolor)
4659
4662
4660 * Changed the alias system. Now alias is a magic command to define
4663 * Changed the alias system. Now alias is a magic command to define
4661 aliases just like the shell. Rationale: the builtin magics should
4664 aliases just like the shell. Rationale: the builtin magics should
4662 be there for things deeply connected to IPython's
4665 be there for things deeply connected to IPython's
4663 architecture. And this is a much lighter system for what I think
4666 architecture. And this is a much lighter system for what I think
4664 is the really important feature: allowing users to define quickly
4667 is the really important feature: allowing users to define quickly
4665 magics that will do shell things for them, so they can customize
4668 magics that will do shell things for them, so they can customize
4666 IPython easily to match their work habits. If someone is really
4669 IPython easily to match their work habits. If someone is really
4667 desperate to have another name for a builtin alias, they can
4670 desperate to have another name for a builtin alias, they can
4668 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4671 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4669 works.
4672 works.
4670
4673
4671 2001-11-28 Fernando Perez <fperez@colorado.edu>
4674 2001-11-28 Fernando Perez <fperez@colorado.edu>
4672
4675
4673 * Changed @file so that it opens the source file at the proper
4676 * Changed @file so that it opens the source file at the proper
4674 line. Since it uses less, if your EDITOR environment is
4677 line. Since it uses less, if your EDITOR environment is
4675 configured, typing v will immediately open your editor of choice
4678 configured, typing v will immediately open your editor of choice
4676 right at the line where the object is defined. Not as quick as
4679 right at the line where the object is defined. Not as quick as
4677 having a direct @edit command, but for all intents and purposes it
4680 having a direct @edit command, but for all intents and purposes it
4678 works. And I don't have to worry about writing @edit to deal with
4681 works. And I don't have to worry about writing @edit to deal with
4679 all the editors, less does that.
4682 all the editors, less does that.
4680
4683
4681 * Version 0.1.16 released, 0.1.17 opened.
4684 * Version 0.1.16 released, 0.1.17 opened.
4682
4685
4683 * Fixed some nasty bugs in the page/page_dumb combo that could
4686 * Fixed some nasty bugs in the page/page_dumb combo that could
4684 crash IPython.
4687 crash IPython.
4685
4688
4686 2001-11-27 Fernando Perez <fperez@colorado.edu>
4689 2001-11-27 Fernando Perez <fperez@colorado.edu>
4687
4690
4688 * Version 0.1.15 released, 0.1.16 opened.
4691 * Version 0.1.15 released, 0.1.16 opened.
4689
4692
4690 * Finally got ? and ?? to work for undefined things: now it's
4693 * Finally got ? and ?? to work for undefined things: now it's
4691 possible to type {}.get? and get information about the get method
4694 possible to type {}.get? and get information about the get method
4692 of dicts, or os.path? even if only os is defined (so technically
4695 of dicts, or os.path? even if only os is defined (so technically
4693 os.path isn't). Works at any level. For example, after import os,
4696 os.path isn't). Works at any level. For example, after import os,
4694 os?, os.path?, os.path.abspath? all work. This is great, took some
4697 os?, os.path?, os.path.abspath? all work. This is great, took some
4695 work in _ofind.
4698 work in _ofind.
4696
4699
4697 * Fixed more bugs with logging. The sanest way to do it was to add
4700 * Fixed more bugs with logging. The sanest way to do it was to add
4698 to @log a 'mode' parameter. Killed two in one shot (this mode
4701 to @log a 'mode' parameter. Killed two in one shot (this mode
4699 option was a request of Janko's). I think it's finally clean
4702 option was a request of Janko's). I think it's finally clean
4700 (famous last words).
4703 (famous last words).
4701
4704
4702 * Added a page_dumb() pager which does a decent job of paging on
4705 * Added a page_dumb() pager which does a decent job of paging on
4703 screen, if better things (like less) aren't available. One less
4706 screen, if better things (like less) aren't available. One less
4704 unix dependency (someday maybe somebody will port this to
4707 unix dependency (someday maybe somebody will port this to
4705 windows).
4708 windows).
4706
4709
4707 * Fixed problem in magic_log: would lock of logging out if log
4710 * Fixed problem in magic_log: would lock of logging out if log
4708 creation failed (because it would still think it had succeeded).
4711 creation failed (because it would still think it had succeeded).
4709
4712
4710 * Improved the page() function using curses to auto-detect screen
4713 * Improved the page() function using curses to auto-detect screen
4711 size. Now it can make a much better decision on whether to print
4714 size. Now it can make a much better decision on whether to print
4712 or page a string. Option screen_length was modified: a value 0
4715 or page a string. Option screen_length was modified: a value 0
4713 means auto-detect, and that's the default now.
4716 means auto-detect, and that's the default now.
4714
4717
4715 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
4718 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
4716 go out. I'll test it for a few days, then talk to Janko about
4719 go out. I'll test it for a few days, then talk to Janko about
4717 licences and announce it.
4720 licences and announce it.
4718
4721
4719 * Fixed the length of the auto-generated ---> prompt which appears
4722 * Fixed the length of the auto-generated ---> prompt which appears
4720 for auto-parens and auto-quotes. Getting this right isn't trivial,
4723 for auto-parens and auto-quotes. Getting this right isn't trivial,
4721 with all the color escapes, different prompt types and optional
4724 with all the color escapes, different prompt types and optional
4722 separators. But it seems to be working in all the combinations.
4725 separators. But it seems to be working in all the combinations.
4723
4726
4724 2001-11-26 Fernando Perez <fperez@colorado.edu>
4727 2001-11-26 Fernando Perez <fperez@colorado.edu>
4725
4728
4726 * Wrote a regexp filter to get option types from the option names
4729 * Wrote a regexp filter to get option types from the option names
4727 string. This eliminates the need to manually keep two duplicate
4730 string. This eliminates the need to manually keep two duplicate
4728 lists.
4731 lists.
4729
4732
4730 * Removed the unneeded check_option_names. Now options are handled
4733 * Removed the unneeded check_option_names. Now options are handled
4731 in a much saner manner and it's easy to visually check that things
4734 in a much saner manner and it's easy to visually check that things
4732 are ok.
4735 are ok.
4733
4736
4734 * Updated version numbers on all files I modified to carry a
4737 * Updated version numbers on all files I modified to carry a
4735 notice so Janko and Nathan have clear version markers.
4738 notice so Janko and Nathan have clear version markers.
4736
4739
4737 * Updated docstring for ultraTB with my changes. I should send
4740 * Updated docstring for ultraTB with my changes. I should send
4738 this to Nathan.
4741 this to Nathan.
4739
4742
4740 * Lots of small fixes. Ran everything through pychecker again.
4743 * Lots of small fixes. Ran everything through pychecker again.
4741
4744
4742 * Made loading of deep_reload an cmd line option. If it's not too
4745 * Made loading of deep_reload an cmd line option. If it's not too
4743 kosher, now people can just disable it. With -nodeep_reload it's
4746 kosher, now people can just disable it. With -nodeep_reload it's
4744 still available as dreload(), it just won't overwrite reload().
4747 still available as dreload(), it just won't overwrite reload().
4745
4748
4746 * Moved many options to the no| form (-opt and -noopt
4749 * Moved many options to the no| form (-opt and -noopt
4747 accepted). Cleaner.
4750 accepted). Cleaner.
4748
4751
4749 * Changed magic_log so that if called with no parameters, it uses
4752 * Changed magic_log so that if called with no parameters, it uses
4750 'rotate' mode. That way auto-generated logs aren't automatically
4753 'rotate' mode. That way auto-generated logs aren't automatically
4751 over-written. For normal logs, now a backup is made if it exists
4754 over-written. For normal logs, now a backup is made if it exists
4752 (only 1 level of backups). A new 'backup' mode was added to the
4755 (only 1 level of backups). A new 'backup' mode was added to the
4753 Logger class to support this. This was a request by Janko.
4756 Logger class to support this. This was a request by Janko.
4754
4757
4755 * Added @logoff/@logon to stop/restart an active log.
4758 * Added @logoff/@logon to stop/restart an active log.
4756
4759
4757 * Fixed a lot of bugs in log saving/replay. It was pretty
4760 * Fixed a lot of bugs in log saving/replay. It was pretty
4758 broken. Now special lines (!@,/) appear properly in the command
4761 broken. Now special lines (!@,/) appear properly in the command
4759 history after a log replay.
4762 history after a log replay.
4760
4763
4761 * Tried and failed to implement full session saving via pickle. My
4764 * Tried and failed to implement full session saving via pickle. My
4762 idea was to pickle __main__.__dict__, but modules can't be
4765 idea was to pickle __main__.__dict__, but modules can't be
4763 pickled. This would be a better alternative to replaying logs, but
4766 pickled. This would be a better alternative to replaying logs, but
4764 seems quite tricky to get to work. Changed -session to be called
4767 seems quite tricky to get to work. Changed -session to be called
4765 -logplay, which more accurately reflects what it does. And if we
4768 -logplay, which more accurately reflects what it does. And if we
4766 ever get real session saving working, -session is now available.
4769 ever get real session saving working, -session is now available.
4767
4770
4768 * Implemented color schemes for prompts also. As for tracebacks,
4771 * Implemented color schemes for prompts also. As for tracebacks,
4769 currently only NoColor and Linux are supported. But now the
4772 currently only NoColor and Linux are supported. But now the
4770 infrastructure is in place, based on a generic ColorScheme
4773 infrastructure is in place, based on a generic ColorScheme
4771 class. So writing and activating new schemes both for the prompts
4774 class. So writing and activating new schemes both for the prompts
4772 and the tracebacks should be straightforward.
4775 and the tracebacks should be straightforward.
4773
4776
4774 * Version 0.1.13 released, 0.1.14 opened.
4777 * Version 0.1.13 released, 0.1.14 opened.
4775
4778
4776 * Changed handling of options for output cache. Now counter is
4779 * Changed handling of options for output cache. Now counter is
4777 hardwired starting at 1 and one specifies the maximum number of
4780 hardwired starting at 1 and one specifies the maximum number of
4778 entries *in the outcache* (not the max prompt counter). This is
4781 entries *in the outcache* (not the max prompt counter). This is
4779 much better, since many statements won't increase the cache
4782 much better, since many statements won't increase the cache
4780 count. It also eliminated some confusing options, now there's only
4783 count. It also eliminated some confusing options, now there's only
4781 one: cache_size.
4784 one: cache_size.
4782
4785
4783 * Added 'alias' magic function and magic_alias option in the
4786 * Added 'alias' magic function and magic_alias option in the
4784 ipythonrc file. Now the user can easily define whatever names he
4787 ipythonrc file. Now the user can easily define whatever names he
4785 wants for the magic functions without having to play weird
4788 wants for the magic functions without having to play weird
4786 namespace games. This gives IPython a real shell-like feel.
4789 namespace games. This gives IPython a real shell-like feel.
4787
4790
4788 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
4791 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
4789 @ or not).
4792 @ or not).
4790
4793
4791 This was one of the last remaining 'visible' bugs (that I know
4794 This was one of the last remaining 'visible' bugs (that I know
4792 of). I think if I can clean up the session loading so it works
4795 of). I think if I can clean up the session loading so it works
4793 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
4796 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
4794 about licensing).
4797 about licensing).
4795
4798
4796 2001-11-25 Fernando Perez <fperez@colorado.edu>
4799 2001-11-25 Fernando Perez <fperez@colorado.edu>
4797
4800
4798 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
4801 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
4799 there's a cleaner distinction between what ? and ?? show.
4802 there's a cleaner distinction between what ? and ?? show.
4800
4803
4801 * Added screen_length option. Now the user can define his own
4804 * Added screen_length option. Now the user can define his own
4802 screen size for page() operations.
4805 screen size for page() operations.
4803
4806
4804 * Implemented magic shell-like functions with automatic code
4807 * Implemented magic shell-like functions with automatic code
4805 generation. Now adding another function is just a matter of adding
4808 generation. Now adding another function is just a matter of adding
4806 an entry to a dict, and the function is dynamically generated at
4809 an entry to a dict, and the function is dynamically generated at
4807 run-time. Python has some really cool features!
4810 run-time. Python has some really cool features!
4808
4811
4809 * Renamed many options to cleanup conventions a little. Now all
4812 * Renamed many options to cleanup conventions a little. Now all
4810 are lowercase, and only underscores where needed. Also in the code
4813 are lowercase, and only underscores where needed. Also in the code
4811 option name tables are clearer.
4814 option name tables are clearer.
4812
4815
4813 * Changed prompts a little. Now input is 'In [n]:' instead of
4816 * Changed prompts a little. Now input is 'In [n]:' instead of
4814 'In[n]:='. This allows it the numbers to be aligned with the
4817 'In[n]:='. This allows it the numbers to be aligned with the
4815 Out[n] numbers, and removes usage of ':=' which doesn't exist in
4818 Out[n] numbers, and removes usage of ':=' which doesn't exist in
4816 Python (it was a Mathematica thing). The '...' continuation prompt
4819 Python (it was a Mathematica thing). The '...' continuation prompt
4817 was also changed a little to align better.
4820 was also changed a little to align better.
4818
4821
4819 * Fixed bug when flushing output cache. Not all _p<n> variables
4822 * Fixed bug when flushing output cache. Not all _p<n> variables
4820 exist, so their deletion needs to be wrapped in a try:
4823 exist, so their deletion needs to be wrapped in a try:
4821
4824
4822 * Figured out how to properly use inspect.formatargspec() (it
4825 * Figured out how to properly use inspect.formatargspec() (it
4823 requires the args preceded by *). So I removed all the code from
4826 requires the args preceded by *). So I removed all the code from
4824 _get_pdef in Magic, which was just replicating that.
4827 _get_pdef in Magic, which was just replicating that.
4825
4828
4826 * Added test to prefilter to allow redefining magic function names
4829 * Added test to prefilter to allow redefining magic function names
4827 as variables. This is ok, since the @ form is always available,
4830 as variables. This is ok, since the @ form is always available,
4828 but whe should allow the user to define a variable called 'ls' if
4831 but whe should allow the user to define a variable called 'ls' if
4829 he needs it.
4832 he needs it.
4830
4833
4831 * Moved the ToDo information from README into a separate ToDo.
4834 * Moved the ToDo information from README into a separate ToDo.
4832
4835
4833 * General code cleanup and small bugfixes. I think it's close to a
4836 * General code cleanup and small bugfixes. I think it's close to a
4834 state where it can be released, obviously with a big 'beta'
4837 state where it can be released, obviously with a big 'beta'
4835 warning on it.
4838 warning on it.
4836
4839
4837 * Got the magic function split to work. Now all magics are defined
4840 * Got the magic function split to work. Now all magics are defined
4838 in a separate class. It just organizes things a bit, and now
4841 in a separate class. It just organizes things a bit, and now
4839 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
4842 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
4840 was too long).
4843 was too long).
4841
4844
4842 * Changed @clear to @reset to avoid potential confusions with
4845 * Changed @clear to @reset to avoid potential confusions with
4843 the shell command clear. Also renamed @cl to @clear, which does
4846 the shell command clear. Also renamed @cl to @clear, which does
4844 exactly what people expect it to from their shell experience.
4847 exactly what people expect it to from their shell experience.
4845
4848
4846 Added a check to the @reset command (since it's so
4849 Added a check to the @reset command (since it's so
4847 destructive, it's probably a good idea to ask for confirmation).
4850 destructive, it's probably a good idea to ask for confirmation).
4848 But now reset only works for full namespace resetting. Since the
4851 But now reset only works for full namespace resetting. Since the
4849 del keyword is already there for deleting a few specific
4852 del keyword is already there for deleting a few specific
4850 variables, I don't see the point of having a redundant magic
4853 variables, I don't see the point of having a redundant magic
4851 function for the same task.
4854 function for the same task.
4852
4855
4853 2001-11-24 Fernando Perez <fperez@colorado.edu>
4856 2001-11-24 Fernando Perez <fperez@colorado.edu>
4854
4857
4855 * Updated the builtin docs (esp. the ? ones).
4858 * Updated the builtin docs (esp. the ? ones).
4856
4859
4857 * Ran all the code through pychecker. Not terribly impressed with
4860 * Ran all the code through pychecker. Not terribly impressed with
4858 it: lots of spurious warnings and didn't really find anything of
4861 it: lots of spurious warnings and didn't really find anything of
4859 substance (just a few modules being imported and not used).
4862 substance (just a few modules being imported and not used).
4860
4863
4861 * Implemented the new ultraTB functionality into IPython. New
4864 * Implemented the new ultraTB functionality into IPython. New
4862 option: xcolors. This chooses color scheme. xmode now only selects
4865 option: xcolors. This chooses color scheme. xmode now only selects
4863 between Plain and Verbose. Better orthogonality.
4866 between Plain and Verbose. Better orthogonality.
4864
4867
4865 * Large rewrite of ultraTB. Much cleaner now, with a separation of
4868 * Large rewrite of ultraTB. Much cleaner now, with a separation of
4866 mode and color scheme for the exception handlers. Now it's
4869 mode and color scheme for the exception handlers. Now it's
4867 possible to have the verbose traceback with no coloring.
4870 possible to have the verbose traceback with no coloring.
4868
4871
4869 2001-11-23 Fernando Perez <fperez@colorado.edu>
4872 2001-11-23 Fernando Perez <fperez@colorado.edu>
4870
4873
4871 * Version 0.1.12 released, 0.1.13 opened.
4874 * Version 0.1.12 released, 0.1.13 opened.
4872
4875
4873 * Removed option to set auto-quote and auto-paren escapes by
4876 * Removed option to set auto-quote and auto-paren escapes by
4874 user. The chances of breaking valid syntax are just too high. If
4877 user. The chances of breaking valid syntax are just too high. If
4875 someone *really* wants, they can always dig into the code.
4878 someone *really* wants, they can always dig into the code.
4876
4879
4877 * Made prompt separators configurable.
4880 * Made prompt separators configurable.
4878
4881
4879 2001-11-22 Fernando Perez <fperez@colorado.edu>
4882 2001-11-22 Fernando Perez <fperez@colorado.edu>
4880
4883
4881 * Small bugfixes in many places.
4884 * Small bugfixes in many places.
4882
4885
4883 * Removed the MyCompleter class from ipplib. It seemed redundant
4886 * Removed the MyCompleter class from ipplib. It seemed redundant
4884 with the C-p,C-n history search functionality. Less code to
4887 with the C-p,C-n history search functionality. Less code to
4885 maintain.
4888 maintain.
4886
4889
4887 * Moved all the original ipython.py code into ipythonlib.py. Right
4890 * Moved all the original ipython.py code into ipythonlib.py. Right
4888 now it's just one big dump into a function called make_IPython, so
4891 now it's just one big dump into a function called make_IPython, so
4889 no real modularity has been gained. But at least it makes the
4892 no real modularity has been gained. But at least it makes the
4890 wrapper script tiny, and since ipythonlib is a module, it gets
4893 wrapper script tiny, and since ipythonlib is a module, it gets
4891 compiled and startup is much faster.
4894 compiled and startup is much faster.
4892
4895
4893 This is a reasobably 'deep' change, so we should test it for a
4896 This is a reasobably 'deep' change, so we should test it for a
4894 while without messing too much more with the code.
4897 while without messing too much more with the code.
4895
4898
4896 2001-11-21 Fernando Perez <fperez@colorado.edu>
4899 2001-11-21 Fernando Perez <fperez@colorado.edu>
4897
4900
4898 * Version 0.1.11 released, 0.1.12 opened for further work.
4901 * Version 0.1.11 released, 0.1.12 opened for further work.
4899
4902
4900 * Removed dependency on Itpl. It was only needed in one place. It
4903 * Removed dependency on Itpl. It was only needed in one place. It
4901 would be nice if this became part of python, though. It makes life
4904 would be nice if this became part of python, though. It makes life
4902 *a lot* easier in some cases.
4905 *a lot* easier in some cases.
4903
4906
4904 * Simplified the prefilter code a bit. Now all handlers are
4907 * Simplified the prefilter code a bit. Now all handlers are
4905 expected to explicitly return a value (at least a blank string).
4908 expected to explicitly return a value (at least a blank string).
4906
4909
4907 * Heavy edits in ipplib. Removed the help system altogether. Now
4910 * Heavy edits in ipplib. Removed the help system altogether. Now
4908 obj?/?? is used for inspecting objects, a magic @doc prints
4911 obj?/?? is used for inspecting objects, a magic @doc prints
4909 docstrings, and full-blown Python help is accessed via the 'help'
4912 docstrings, and full-blown Python help is accessed via the 'help'
4910 keyword. This cleans up a lot of code (less to maintain) and does
4913 keyword. This cleans up a lot of code (less to maintain) and does
4911 the job. Since 'help' is now a standard Python component, might as
4914 the job. Since 'help' is now a standard Python component, might as
4912 well use it and remove duplicate functionality.
4915 well use it and remove duplicate functionality.
4913
4916
4914 Also removed the option to use ipplib as a standalone program. By
4917 Also removed the option to use ipplib as a standalone program. By
4915 now it's too dependent on other parts of IPython to function alone.
4918 now it's too dependent on other parts of IPython to function alone.
4916
4919
4917 * Fixed bug in genutils.pager. It would crash if the pager was
4920 * Fixed bug in genutils.pager. It would crash if the pager was
4918 exited immediately after opening (broken pipe).
4921 exited immediately after opening (broken pipe).
4919
4922
4920 * Trimmed down the VerboseTB reporting a little. The header is
4923 * Trimmed down the VerboseTB reporting a little. The header is
4921 much shorter now and the repeated exception arguments at the end
4924 much shorter now and the repeated exception arguments at the end
4922 have been removed. For interactive use the old header seemed a bit
4925 have been removed. For interactive use the old header seemed a bit
4923 excessive.
4926 excessive.
4924
4927
4925 * Fixed small bug in output of @whos for variables with multi-word
4928 * Fixed small bug in output of @whos for variables with multi-word
4926 types (only first word was displayed).
4929 types (only first word was displayed).
4927
4930
4928 2001-11-17 Fernando Perez <fperez@colorado.edu>
4931 2001-11-17 Fernando Perez <fperez@colorado.edu>
4929
4932
4930 * Version 0.1.10 released, 0.1.11 opened for further work.
4933 * Version 0.1.10 released, 0.1.11 opened for further work.
4931
4934
4932 * Modified dirs and friends. dirs now *returns* the stack (not
4935 * Modified dirs and friends. dirs now *returns* the stack (not
4933 prints), so one can manipulate it as a variable. Convenient to
4936 prints), so one can manipulate it as a variable. Convenient to
4934 travel along many directories.
4937 travel along many directories.
4935
4938
4936 * Fixed bug in magic_pdef: would only work with functions with
4939 * Fixed bug in magic_pdef: would only work with functions with
4937 arguments with default values.
4940 arguments with default values.
4938
4941
4939 2001-11-14 Fernando Perez <fperez@colorado.edu>
4942 2001-11-14 Fernando Perez <fperez@colorado.edu>
4940
4943
4941 * Added the PhysicsInput stuff to dot_ipython so it ships as an
4944 * Added the PhysicsInput stuff to dot_ipython so it ships as an
4942 example with IPython. Various other minor fixes and cleanups.
4945 example with IPython. Various other minor fixes and cleanups.
4943
4946
4944 * Version 0.1.9 released, 0.1.10 opened for further work.
4947 * Version 0.1.9 released, 0.1.10 opened for further work.
4945
4948
4946 * Added sys.path to the list of directories searched in the
4949 * Added sys.path to the list of directories searched in the
4947 execfile= option. It used to be the current directory and the
4950 execfile= option. It used to be the current directory and the
4948 user's IPYTHONDIR only.
4951 user's IPYTHONDIR only.
4949
4952
4950 2001-11-13 Fernando Perez <fperez@colorado.edu>
4953 2001-11-13 Fernando Perez <fperez@colorado.edu>
4951
4954
4952 * Reinstated the raw_input/prefilter separation that Janko had
4955 * Reinstated the raw_input/prefilter separation that Janko had
4953 initially. This gives a more convenient setup for extending the
4956 initially. This gives a more convenient setup for extending the
4954 pre-processor from the outside: raw_input always gets a string,
4957 pre-processor from the outside: raw_input always gets a string,
4955 and prefilter has to process it. We can then redefine prefilter
4958 and prefilter has to process it. We can then redefine prefilter
4956 from the outside and implement extensions for special
4959 from the outside and implement extensions for special
4957 purposes.
4960 purposes.
4958
4961
4959 Today I got one for inputting PhysicalQuantity objects
4962 Today I got one for inputting PhysicalQuantity objects
4960 (from Scientific) without needing any function calls at
4963 (from Scientific) without needing any function calls at
4961 all. Extremely convenient, and it's all done as a user-level
4964 all. Extremely convenient, and it's all done as a user-level
4962 extension (no IPython code was touched). Now instead of:
4965 extension (no IPython code was touched). Now instead of:
4963 a = PhysicalQuantity(4.2,'m/s**2')
4966 a = PhysicalQuantity(4.2,'m/s**2')
4964 one can simply say
4967 one can simply say
4965 a = 4.2 m/s**2
4968 a = 4.2 m/s**2
4966 or even
4969 or even
4967 a = 4.2 m/s^2
4970 a = 4.2 m/s^2
4968
4971
4969 I use this, but it's also a proof of concept: IPython really is
4972 I use this, but it's also a proof of concept: IPython really is
4970 fully user-extensible, even at the level of the parsing of the
4973 fully user-extensible, even at the level of the parsing of the
4971 command line. It's not trivial, but it's perfectly doable.
4974 command line. It's not trivial, but it's perfectly doable.
4972
4975
4973 * Added 'add_flip' method to inclusion conflict resolver. Fixes
4976 * Added 'add_flip' method to inclusion conflict resolver. Fixes
4974 the problem of modules being loaded in the inverse order in which
4977 the problem of modules being loaded in the inverse order in which
4975 they were defined in
4978 they were defined in
4976
4979
4977 * Version 0.1.8 released, 0.1.9 opened for further work.
4980 * Version 0.1.8 released, 0.1.9 opened for further work.
4978
4981
4979 * Added magics pdef, source and file. They respectively show the
4982 * Added magics pdef, source and file. They respectively show the
4980 definition line ('prototype' in C), source code and full python
4983 definition line ('prototype' in C), source code and full python
4981 file for any callable object. The object inspector oinfo uses
4984 file for any callable object. The object inspector oinfo uses
4982 these to show the same information.
4985 these to show the same information.
4983
4986
4984 * Version 0.1.7 released, 0.1.8 opened for further work.
4987 * Version 0.1.7 released, 0.1.8 opened for further work.
4985
4988
4986 * Separated all the magic functions into a class called Magic. The
4989 * Separated all the magic functions into a class called Magic. The
4987 InteractiveShell class was becoming too big for Xemacs to handle
4990 InteractiveShell class was becoming too big for Xemacs to handle
4988 (de-indenting a line would lock it up for 10 seconds while it
4991 (de-indenting a line would lock it up for 10 seconds while it
4989 backtracked on the whole class!)
4992 backtracked on the whole class!)
4990
4993
4991 FIXME: didn't work. It can be done, but right now namespaces are
4994 FIXME: didn't work. It can be done, but right now namespaces are
4992 all messed up. Do it later (reverted it for now, so at least
4995 all messed up. Do it later (reverted it for now, so at least
4993 everything works as before).
4996 everything works as before).
4994
4997
4995 * Got the object introspection system (magic_oinfo) working! I
4998 * Got the object introspection system (magic_oinfo) working! I
4996 think this is pretty much ready for release to Janko, so he can
4999 think this is pretty much ready for release to Janko, so he can
4997 test it for a while and then announce it. Pretty much 100% of what
5000 test it for a while and then announce it. Pretty much 100% of what
4998 I wanted for the 'phase 1' release is ready. Happy, tired.
5001 I wanted for the 'phase 1' release is ready. Happy, tired.
4999
5002
5000 2001-11-12 Fernando Perez <fperez@colorado.edu>
5003 2001-11-12 Fernando Perez <fperez@colorado.edu>
5001
5004
5002 * Version 0.1.6 released, 0.1.7 opened for further work.
5005 * Version 0.1.6 released, 0.1.7 opened for further work.
5003
5006
5004 * Fixed bug in printing: it used to test for truth before
5007 * Fixed bug in printing: it used to test for truth before
5005 printing, so 0 wouldn't print. Now checks for None.
5008 printing, so 0 wouldn't print. Now checks for None.
5006
5009
5007 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5010 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5008 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5011 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5009 reaches by hand into the outputcache. Think of a better way to do
5012 reaches by hand into the outputcache. Think of a better way to do
5010 this later.
5013 this later.
5011
5014
5012 * Various small fixes thanks to Nathan's comments.
5015 * Various small fixes thanks to Nathan's comments.
5013
5016
5014 * Changed magic_pprint to magic_Pprint. This way it doesn't
5017 * Changed magic_pprint to magic_Pprint. This way it doesn't
5015 collide with pprint() and the name is consistent with the command
5018 collide with pprint() and the name is consistent with the command
5016 line option.
5019 line option.
5017
5020
5018 * Changed prompt counter behavior to be fully like
5021 * Changed prompt counter behavior to be fully like
5019 Mathematica's. That is, even input that doesn't return a result
5022 Mathematica's. That is, even input that doesn't return a result
5020 raises the prompt counter. The old behavior was kind of confusing
5023 raises the prompt counter. The old behavior was kind of confusing
5021 (getting the same prompt number several times if the operation
5024 (getting the same prompt number several times if the operation
5022 didn't return a result).
5025 didn't return a result).
5023
5026
5024 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5027 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5025
5028
5026 * Fixed -Classic mode (wasn't working anymore).
5029 * Fixed -Classic mode (wasn't working anymore).
5027
5030
5028 * Added colored prompts using Nathan's new code. Colors are
5031 * Added colored prompts using Nathan's new code. Colors are
5029 currently hardwired, they can be user-configurable. For
5032 currently hardwired, they can be user-configurable. For
5030 developers, they can be chosen in file ipythonlib.py, at the
5033 developers, they can be chosen in file ipythonlib.py, at the
5031 beginning of the CachedOutput class def.
5034 beginning of the CachedOutput class def.
5032
5035
5033 2001-11-11 Fernando Perez <fperez@colorado.edu>
5036 2001-11-11 Fernando Perez <fperez@colorado.edu>
5034
5037
5035 * Version 0.1.5 released, 0.1.6 opened for further work.
5038 * Version 0.1.5 released, 0.1.6 opened for further work.
5036
5039
5037 * Changed magic_env to *return* the environment as a dict (not to
5040 * Changed magic_env to *return* the environment as a dict (not to
5038 print it). This way it prints, but it can also be processed.
5041 print it). This way it prints, but it can also be processed.
5039
5042
5040 * Added Verbose exception reporting to interactive
5043 * Added Verbose exception reporting to interactive
5041 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5044 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5042 traceback. Had to make some changes to the ultraTB file. This is
5045 traceback. Had to make some changes to the ultraTB file. This is
5043 probably the last 'big' thing in my mental todo list. This ties
5046 probably the last 'big' thing in my mental todo list. This ties
5044 in with the next entry:
5047 in with the next entry:
5045
5048
5046 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5049 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5047 has to specify is Plain, Color or Verbose for all exception
5050 has to specify is Plain, Color or Verbose for all exception
5048 handling.
5051 handling.
5049
5052
5050 * Removed ShellServices option. All this can really be done via
5053 * Removed ShellServices option. All this can really be done via
5051 the magic system. It's easier to extend, cleaner and has automatic
5054 the magic system. It's easier to extend, cleaner and has automatic
5052 namespace protection and documentation.
5055 namespace protection and documentation.
5053
5056
5054 2001-11-09 Fernando Perez <fperez@colorado.edu>
5057 2001-11-09 Fernando Perez <fperez@colorado.edu>
5055
5058
5056 * Fixed bug in output cache flushing (missing parameter to
5059 * Fixed bug in output cache flushing (missing parameter to
5057 __init__). Other small bugs fixed (found using pychecker).
5060 __init__). Other small bugs fixed (found using pychecker).
5058
5061
5059 * Version 0.1.4 opened for bugfixing.
5062 * Version 0.1.4 opened for bugfixing.
5060
5063
5061 2001-11-07 Fernando Perez <fperez@colorado.edu>
5064 2001-11-07 Fernando Perez <fperez@colorado.edu>
5062
5065
5063 * Version 0.1.3 released, mainly because of the raw_input bug.
5066 * Version 0.1.3 released, mainly because of the raw_input bug.
5064
5067
5065 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5068 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5066 and when testing for whether things were callable, a call could
5069 and when testing for whether things were callable, a call could
5067 actually be made to certain functions. They would get called again
5070 actually be made to certain functions. They would get called again
5068 once 'really' executed, with a resulting double call. A disaster
5071 once 'really' executed, with a resulting double call. A disaster
5069 in many cases (list.reverse() would never work!).
5072 in many cases (list.reverse() would never work!).
5070
5073
5071 * Removed prefilter() function, moved its code to raw_input (which
5074 * Removed prefilter() function, moved its code to raw_input (which
5072 after all was just a near-empty caller for prefilter). This saves
5075 after all was just a near-empty caller for prefilter). This saves
5073 a function call on every prompt, and simplifies the class a tiny bit.
5076 a function call on every prompt, and simplifies the class a tiny bit.
5074
5077
5075 * Fix _ip to __ip name in magic example file.
5078 * Fix _ip to __ip name in magic example file.
5076
5079
5077 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5080 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5078 work with non-gnu versions of tar.
5081 work with non-gnu versions of tar.
5079
5082
5080 2001-11-06 Fernando Perez <fperez@colorado.edu>
5083 2001-11-06 Fernando Perez <fperez@colorado.edu>
5081
5084
5082 * Version 0.1.2. Just to keep track of the recent changes.
5085 * Version 0.1.2. Just to keep track of the recent changes.
5083
5086
5084 * Fixed nasty bug in output prompt routine. It used to check 'if
5087 * Fixed nasty bug in output prompt routine. It used to check 'if
5085 arg != None...'. Problem is, this fails if arg implements a
5088 arg != None...'. Problem is, this fails if arg implements a
5086 special comparison (__cmp__) which disallows comparing to
5089 special comparison (__cmp__) which disallows comparing to
5087 None. Found it when trying to use the PhysicalQuantity module from
5090 None. Found it when trying to use the PhysicalQuantity module from
5088 ScientificPython.
5091 ScientificPython.
5089
5092
5090 2001-11-05 Fernando Perez <fperez@colorado.edu>
5093 2001-11-05 Fernando Perez <fperez@colorado.edu>
5091
5094
5092 * Also added dirs. Now the pushd/popd/dirs family functions
5095 * Also added dirs. Now the pushd/popd/dirs family functions
5093 basically like the shell, with the added convenience of going home
5096 basically like the shell, with the added convenience of going home
5094 when called with no args.
5097 when called with no args.
5095
5098
5096 * pushd/popd slightly modified to mimic shell behavior more
5099 * pushd/popd slightly modified to mimic shell behavior more
5097 closely.
5100 closely.
5098
5101
5099 * Added env,pushd,popd from ShellServices as magic functions. I
5102 * Added env,pushd,popd from ShellServices as magic functions. I
5100 think the cleanest will be to port all desired functions from
5103 think the cleanest will be to port all desired functions from
5101 ShellServices as magics and remove ShellServices altogether. This
5104 ShellServices as magics and remove ShellServices altogether. This
5102 will provide a single, clean way of adding functionality
5105 will provide a single, clean way of adding functionality
5103 (shell-type or otherwise) to IP.
5106 (shell-type or otherwise) to IP.
5104
5107
5105 2001-11-04 Fernando Perez <fperez@colorado.edu>
5108 2001-11-04 Fernando Perez <fperez@colorado.edu>
5106
5109
5107 * Added .ipython/ directory to sys.path. This way users can keep
5110 * Added .ipython/ directory to sys.path. This way users can keep
5108 customizations there and access them via import.
5111 customizations there and access them via import.
5109
5112
5110 2001-11-03 Fernando Perez <fperez@colorado.edu>
5113 2001-11-03 Fernando Perez <fperez@colorado.edu>
5111
5114
5112 * Opened version 0.1.1 for new changes.
5115 * Opened version 0.1.1 for new changes.
5113
5116
5114 * Changed version number to 0.1.0: first 'public' release, sent to
5117 * Changed version number to 0.1.0: first 'public' release, sent to
5115 Nathan and Janko.
5118 Nathan and Janko.
5116
5119
5117 * Lots of small fixes and tweaks.
5120 * Lots of small fixes and tweaks.
5118
5121
5119 * Minor changes to whos format. Now strings are shown, snipped if
5122 * Minor changes to whos format. Now strings are shown, snipped if
5120 too long.
5123 too long.
5121
5124
5122 * Changed ShellServices to work on __main__ so they show up in @who
5125 * Changed ShellServices to work on __main__ so they show up in @who
5123
5126
5124 * Help also works with ? at the end of a line:
5127 * Help also works with ? at the end of a line:
5125 ?sin and sin?
5128 ?sin and sin?
5126 both produce the same effect. This is nice, as often I use the
5129 both produce the same effect. This is nice, as often I use the
5127 tab-complete to find the name of a method, but I used to then have
5130 tab-complete to find the name of a method, but I used to then have
5128 to go to the beginning of the line to put a ? if I wanted more
5131 to go to the beginning of the line to put a ? if I wanted more
5129 info. Now I can just add the ? and hit return. Convenient.
5132 info. Now I can just add the ? and hit return. Convenient.
5130
5133
5131 2001-11-02 Fernando Perez <fperez@colorado.edu>
5134 2001-11-02 Fernando Perez <fperez@colorado.edu>
5132
5135
5133 * Python version check (>=2.1) added.
5136 * Python version check (>=2.1) added.
5134
5137
5135 * Added LazyPython documentation. At this point the docs are quite
5138 * Added LazyPython documentation. At this point the docs are quite
5136 a mess. A cleanup is in order.
5139 a mess. A cleanup is in order.
5137
5140
5138 * Auto-installer created. For some bizarre reason, the zipfiles
5141 * Auto-installer created. For some bizarre reason, the zipfiles
5139 module isn't working on my system. So I made a tar version
5142 module isn't working on my system. So I made a tar version
5140 (hopefully the command line options in various systems won't kill
5143 (hopefully the command line options in various systems won't kill
5141 me).
5144 me).
5142
5145
5143 * Fixes to Struct in genutils. Now all dictionary-like methods are
5146 * Fixes to Struct in genutils. Now all dictionary-like methods are
5144 protected (reasonably).
5147 protected (reasonably).
5145
5148
5146 * Added pager function to genutils and changed ? to print usage
5149 * Added pager function to genutils and changed ? to print usage
5147 note through it (it was too long).
5150 note through it (it was too long).
5148
5151
5149 * Added the LazyPython functionality. Works great! I changed the
5152 * Added the LazyPython functionality. Works great! I changed the
5150 auto-quote escape to ';', it's on home row and next to '. But
5153 auto-quote escape to ';', it's on home row and next to '. But
5151 both auto-quote and auto-paren (still /) escapes are command-line
5154 both auto-quote and auto-paren (still /) escapes are command-line
5152 parameters.
5155 parameters.
5153
5156
5154
5157
5155 2001-11-01 Fernando Perez <fperez@colorado.edu>
5158 2001-11-01 Fernando Perez <fperez@colorado.edu>
5156
5159
5157 * Version changed to 0.0.7. Fairly large change: configuration now
5160 * Version changed to 0.0.7. Fairly large change: configuration now
5158 is all stored in a directory, by default .ipython. There, all
5161 is all stored in a directory, by default .ipython. There, all
5159 config files have normal looking names (not .names)
5162 config files have normal looking names (not .names)
5160
5163
5161 * Version 0.0.6 Released first to Lucas and Archie as a test
5164 * Version 0.0.6 Released first to Lucas and Archie as a test
5162 run. Since it's the first 'semi-public' release, change version to
5165 run. Since it's the first 'semi-public' release, change version to
5163 > 0.0.6 for any changes now.
5166 > 0.0.6 for any changes now.
5164
5167
5165 * Stuff I had put in the ipplib.py changelog:
5168 * Stuff I had put in the ipplib.py changelog:
5166
5169
5167 Changes to InteractiveShell:
5170 Changes to InteractiveShell:
5168
5171
5169 - Made the usage message a parameter.
5172 - Made the usage message a parameter.
5170
5173
5171 - Require the name of the shell variable to be given. It's a bit
5174 - Require the name of the shell variable to be given. It's a bit
5172 of a hack, but allows the name 'shell' not to be hardwire in the
5175 of a hack, but allows the name 'shell' not to be hardwire in the
5173 magic (@) handler, which is problematic b/c it requires
5176 magic (@) handler, which is problematic b/c it requires
5174 polluting the global namespace with 'shell'. This in turn is
5177 polluting the global namespace with 'shell'. This in turn is
5175 fragile: if a user redefines a variable called shell, things
5178 fragile: if a user redefines a variable called shell, things
5176 break.
5179 break.
5177
5180
5178 - magic @: all functions available through @ need to be defined
5181 - magic @: all functions available through @ need to be defined
5179 as magic_<name>, even though they can be called simply as
5182 as magic_<name>, even though they can be called simply as
5180 @<name>. This allows the special command @magic to gather
5183 @<name>. This allows the special command @magic to gather
5181 information automatically about all existing magic functions,
5184 information automatically about all existing magic functions,
5182 even if they are run-time user extensions, by parsing the shell
5185 even if they are run-time user extensions, by parsing the shell
5183 instance __dict__ looking for special magic_ names.
5186 instance __dict__ looking for special magic_ names.
5184
5187
5185 - mainloop: added *two* local namespace parameters. This allows
5188 - mainloop: added *two* local namespace parameters. This allows
5186 the class to differentiate between parameters which were there
5189 the class to differentiate between parameters which were there
5187 before and after command line initialization was processed. This
5190 before and after command line initialization was processed. This
5188 way, later @who can show things loaded at startup by the
5191 way, later @who can show things loaded at startup by the
5189 user. This trick was necessary to make session saving/reloading
5192 user. This trick was necessary to make session saving/reloading
5190 really work: ideally after saving/exiting/reloading a session,
5193 really work: ideally after saving/exiting/reloading a session,
5191 *everythin* should look the same, including the output of @who. I
5194 *everythin* should look the same, including the output of @who. I
5192 was only able to make this work with this double namespace
5195 was only able to make this work with this double namespace
5193 trick.
5196 trick.
5194
5197
5195 - added a header to the logfile which allows (almost) full
5198 - added a header to the logfile which allows (almost) full
5196 session restoring.
5199 session restoring.
5197
5200
5198 - prepend lines beginning with @ or !, with a and log
5201 - prepend lines beginning with @ or !, with a and log
5199 them. Why? !lines: may be useful to know what you did @lines:
5202 them. Why? !lines: may be useful to know what you did @lines:
5200 they may affect session state. So when restoring a session, at
5203 they may affect session state. So when restoring a session, at
5201 least inform the user of their presence. I couldn't quite get
5204 least inform the user of their presence. I couldn't quite get
5202 them to properly re-execute, but at least the user is warned.
5205 them to properly re-execute, but at least the user is warned.
5203
5206
5204 * Started ChangeLog.
5207 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now