##// END OF EJS Templates
- Small extension bug fix (irunner would fail to automatically recognize...
fperez -
Show More
@@ -1,314 +1,314 b''
1 #!/usr/bin/env python
1 #!/usr/bin/env python
2 """Module for interactively running scripts.
2 """Module for interactively running scripts.
3
3
4 This module implements classes for interactively running scripts written for
4 This module implements classes for interactively running scripts written for
5 any system with a prompt which can be matched by a regexp suitable for
5 any system with a prompt which can be matched by a regexp suitable for
6 pexpect. It can be used to run as if they had been typed up interactively, an
6 pexpect. It can be used to run as if they had been typed up interactively, an
7 arbitrary series of commands for the target system.
7 arbitrary series of commands for the target system.
8
8
9 The module includes classes ready for IPython (with the default prompts),
9 The module includes classes ready for IPython (with the default prompts),
10 plain Python and SAGE, but making a new one is trivial. To see how to use it,
10 plain Python and SAGE, but making a new one is trivial. To see how to use it,
11 simply run the module as a script:
11 simply run the module as a script:
12
12
13 ./irunner.py --help
13 ./irunner.py --help
14
14
15
15
16 This is an extension of Ken Schutte <kschutte-AT-csail.mit.edu>'s script
16 This is an extension of Ken Schutte <kschutte-AT-csail.mit.edu>'s script
17 contributed on the ipython-user list:
17 contributed on the ipython-user list:
18
18
19 http://scipy.net/pipermail/ipython-user/2006-May/001705.html
19 http://scipy.net/pipermail/ipython-user/2006-May/001705.html
20
20
21
21
22 NOTES:
22 NOTES:
23
23
24 - This module requires pexpect, available in most linux distros, or which can
24 - This module requires pexpect, available in most linux distros, or which can
25 be downloaded from
25 be downloaded from
26
26
27 http://pexpect.sourceforge.net
27 http://pexpect.sourceforge.net
28
28
29 - Because pexpect only works under Unix or Windows-Cygwin, this has the same
29 - Because pexpect only works under Unix or Windows-Cygwin, this has the same
30 limitations. This means that it will NOT work under native windows Python.
30 limitations. This means that it will NOT work under native windows Python.
31 """
31 """
32
32
33 # Stdlib imports
33 # Stdlib imports
34 import optparse
34 import optparse
35 import os
35 import os
36 import sys
36 import sys
37
37
38 # Third-party modules.
38 # Third-party modules.
39 import pexpect
39 import pexpect
40
40
41 # Global usage strings, to avoid indentation issues when typing it below.
41 # Global usage strings, to avoid indentation issues when typing it below.
42 USAGE = """
42 USAGE = """
43 Interactive script runner, type: %s
43 Interactive script runner, type: %s
44
44
45 runner [opts] script_name
45 runner [opts] script_name
46 """
46 """
47
47
48 # The generic runner class
48 # The generic runner class
49 class InteractiveRunner(object):
49 class InteractiveRunner(object):
50 """Class to run a sequence of commands through an interactive program."""
50 """Class to run a sequence of commands through an interactive program."""
51
51
52 def __init__(self,program,prompts,args=None):
52 def __init__(self,program,prompts,args=None):
53 """Construct a runner.
53 """Construct a runner.
54
54
55 Inputs:
55 Inputs:
56
56
57 - program: command to execute the given program.
57 - program: command to execute the given program.
58
58
59 - prompts: a list of patterns to match as valid prompts, in the
59 - prompts: a list of patterns to match as valid prompts, in the
60 format used by pexpect. This basically means that it can be either
60 format used by pexpect. This basically means that it can be either
61 a string (to be compiled as a regular expression) or a list of such
61 a string (to be compiled as a regular expression) or a list of such
62 (it must be a true list, as pexpect does type checks).
62 (it must be a true list, as pexpect does type checks).
63
63
64 If more than one prompt is given, the first is treated as the main
64 If more than one prompt is given, the first is treated as the main
65 program prompt and the others as 'continuation' prompts, like
65 program prompt and the others as 'continuation' prompts, like
66 python's. This means that blank lines in the input source are
66 python's. This means that blank lines in the input source are
67 ommitted when the first prompt is matched, but are NOT ommitted when
67 ommitted when the first prompt is matched, but are NOT ommitted when
68 the continuation one matches, since this is how python signals the
68 the continuation one matches, since this is how python signals the
69 end of multiline input interactively.
69 end of multiline input interactively.
70
70
71 Optional inputs:
71 Optional inputs:
72
72
73 - args(None): optional list of strings to pass as arguments to the
73 - args(None): optional list of strings to pass as arguments to the
74 child program.
74 child program.
75
75
76 Public members not parameterized in the constructor:
76 Public members not parameterized in the constructor:
77
77
78 - delaybeforesend(0): Newer versions of pexpect have a delay before
78 - delaybeforesend(0): Newer versions of pexpect have a delay before
79 sending each new input. For our purposes here, it's typically best
79 sending each new input. For our purposes here, it's typically best
80 to just set this to zero, but if you encounter reliability problems
80 to just set this to zero, but if you encounter reliability problems
81 or want an interactive run to pause briefly at each prompt, just
81 or want an interactive run to pause briefly at each prompt, just
82 increase this value (it is measured in seconds). Note that this
82 increase this value (it is measured in seconds). Note that this
83 variable is not honored at all by older versions of pexpect.
83 variable is not honored at all by older versions of pexpect.
84 """
84 """
85
85
86 self.program = program
86 self.program = program
87 self.prompts = prompts
87 self.prompts = prompts
88 if args is None: args = []
88 if args is None: args = []
89 self.args = args
89 self.args = args
90 # Other public members which we don't make as parameters, but which
90 # Other public members which we don't make as parameters, but which
91 # users may occasionally want to tweak
91 # users may occasionally want to tweak
92 self.delaybeforesend = 0
92 self.delaybeforesend = 0
93
93
94 def run_file(self,fname,interact=False):
94 def run_file(self,fname,interact=False):
95 """Run the given file interactively.
95 """Run the given file interactively.
96
96
97 Inputs:
97 Inputs:
98
98
99 -fname: name of the file to execute.
99 -fname: name of the file to execute.
100
100
101 See the run_source docstring for the meaning of the optional
101 See the run_source docstring for the meaning of the optional
102 arguments."""
102 arguments."""
103
103
104 fobj = open(fname,'r')
104 fobj = open(fname,'r')
105 try:
105 try:
106 self.run_source(fobj,interact)
106 self.run_source(fobj,interact)
107 finally:
107 finally:
108 fobj.close()
108 fobj.close()
109
109
110 def run_source(self,source,interact=False):
110 def run_source(self,source,interact=False):
111 """Run the given source code interactively.
111 """Run the given source code interactively.
112
112
113 Inputs:
113 Inputs:
114
114
115 - source: a string of code to be executed, or an open file object we
115 - source: a string of code to be executed, or an open file object we
116 can iterate over.
116 can iterate over.
117
117
118 Optional inputs:
118 Optional inputs:
119
119
120 - interact(False): if true, start to interact with the running
120 - interact(False): if true, start to interact with the running
121 program at the end of the script. Otherwise, just exit.
121 program at the end of the script. Otherwise, just exit.
122 """
122 """
123
123
124 # if the source is a string, chop it up in lines so we can iterate
124 # if the source is a string, chop it up in lines so we can iterate
125 # over it just as if it were an open file.
125 # over it just as if it were an open file.
126 if not isinstance(source,file):
126 if not isinstance(source,file):
127 source = source.splitlines(True)
127 source = source.splitlines(True)
128
128
129 # grab the true write method of stdout, in case anything later
129 # grab the true write method of stdout, in case anything later
130 # reassigns sys.stdout, so that we really are writing to the true
130 # reassigns sys.stdout, so that we really are writing to the true
131 # stdout and not to something else. We also normalize all strings we
131 # stdout and not to something else. We also normalize all strings we
132 # write to use the native OS line separators.
132 # write to use the native OS line separators.
133 linesep = os.linesep
133 linesep = os.linesep
134 stdwrite = sys.stdout.write
134 stdwrite = sys.stdout.write
135 write = lambda s: stdwrite(s.replace('\r\n',linesep))
135 write = lambda s: stdwrite(s.replace('\r\n',linesep))
136
136
137 c = pexpect.spawn(self.program,self.args,timeout=None)
137 c = pexpect.spawn(self.program,self.args,timeout=None)
138 c.delaybeforesend = self.delaybeforesend
138 c.delaybeforesend = self.delaybeforesend
139
139
140 # pexpect hard-codes the terminal size as (24,80) (rows,columns).
140 # pexpect hard-codes the terminal size as (24,80) (rows,columns).
141 # This causes problems because any line longer than 80 characters gets
141 # This causes problems because any line longer than 80 characters gets
142 # completely overwrapped on the printed outptut (even though
142 # completely overwrapped on the printed outptut (even though
143 # internally the code runs fine). We reset this to 99 rows X 200
143 # internally the code runs fine). We reset this to 99 rows X 200
144 # columns (arbitrarily chosen), which should avoid problems in all
144 # columns (arbitrarily chosen), which should avoid problems in all
145 # reasonable cases.
145 # reasonable cases.
146 c.setwinsize(99,200)
146 c.setwinsize(99,200)
147
147
148 prompts = c.compile_pattern_list(self.prompts)
148 prompts = c.compile_pattern_list(self.prompts)
149
149
150 prompt_idx = c.expect_list(prompts)
150 prompt_idx = c.expect_list(prompts)
151 # Flag whether the script ends normally or not, to know whether we can
151 # Flag whether the script ends normally or not, to know whether we can
152 # do anything further with the underlying process.
152 # do anything further with the underlying process.
153 end_normal = True
153 end_normal = True
154 for cmd in source:
154 for cmd in source:
155 # skip blank lines for all matches to the 'main' prompt, while the
155 # skip blank lines for all matches to the 'main' prompt, while the
156 # secondary prompts do not
156 # secondary prompts do not
157 if prompt_idx==0 and \
157 if prompt_idx==0 and \
158 (cmd.isspace() or cmd.lstrip().startswith('#')):
158 (cmd.isspace() or cmd.lstrip().startswith('#')):
159 print cmd,
159 print cmd,
160 continue
160 continue
161
161
162 write(c.after)
162 write(c.after)
163 c.send(cmd)
163 c.send(cmd)
164 try:
164 try:
165 prompt_idx = c.expect_list(prompts)
165 prompt_idx = c.expect_list(prompts)
166 except pexpect.EOF:
166 except pexpect.EOF:
167 # this will happen if the child dies unexpectedly
167 # this will happen if the child dies unexpectedly
168 write(c.before)
168 write(c.before)
169 end_normal = False
169 end_normal = False
170 break
170 break
171 write(c.before)
171 write(c.before)
172
172
173 if end_normal:
173 if end_normal:
174 if interact:
174 if interact:
175 c.send('\n')
175 c.send('\n')
176 print '<< Starting interactive mode >>',
176 print '<< Starting interactive mode >>',
177 try:
177 try:
178 c.interact()
178 c.interact()
179 except OSError:
179 except OSError:
180 # This is what fires when the child stops. Simply print a
180 # This is what fires when the child stops. Simply print a
181 # newline so the system prompt is aligned. The extra
181 # newline so the system prompt is aligned. The extra
182 # space is there to make sure it gets printed, otherwise
182 # space is there to make sure it gets printed, otherwise
183 # OS buffering sometimes just suppresses it.
183 # OS buffering sometimes just suppresses it.
184 write(' \n')
184 write(' \n')
185 sys.stdout.flush()
185 sys.stdout.flush()
186 else:
186 else:
187 c.close()
187 c.close()
188 else:
188 else:
189 if interact:
189 if interact:
190 e="Further interaction is not possible: child process is dead."
190 e="Further interaction is not possible: child process is dead."
191 print >> sys.stderr, e
191 print >> sys.stderr, e
192
192
193 def main(self,argv=None):
193 def main(self,argv=None):
194 """Run as a command-line script."""
194 """Run as a command-line script."""
195
195
196 parser = optparse.OptionParser(usage=USAGE % self.__class__.__name__)
196 parser = optparse.OptionParser(usage=USAGE % self.__class__.__name__)
197 newopt = parser.add_option
197 newopt = parser.add_option
198 newopt('-i','--interact',action='store_true',default=False,
198 newopt('-i','--interact',action='store_true',default=False,
199 help='Interact with the program after the script is run.')
199 help='Interact with the program after the script is run.')
200
200
201 opts,args = parser.parse_args(argv)
201 opts,args = parser.parse_args(argv)
202
202
203 if len(args) != 1:
203 if len(args) != 1:
204 print >> sys.stderr,"You must supply exactly one file to run."
204 print >> sys.stderr,"You must supply exactly one file to run."
205 sys.exit(1)
205 sys.exit(1)
206
206
207 self.run_file(args[0],opts.interact)
207 self.run_file(args[0],opts.interact)
208
208
209
209
210 # Specific runners for particular programs
210 # Specific runners for particular programs
211 class IPythonRunner(InteractiveRunner):
211 class IPythonRunner(InteractiveRunner):
212 """Interactive IPython runner.
212 """Interactive IPython runner.
213
213
214 This initalizes IPython in 'nocolor' mode for simplicity. This lets us
214 This initalizes IPython in 'nocolor' mode for simplicity. This lets us
215 avoid having to write a regexp that matches ANSI sequences, though pexpect
215 avoid having to write a regexp that matches ANSI sequences, though pexpect
216 does support them. If anyone contributes patches for ANSI color support,
216 does support them. If anyone contributes patches for ANSI color support,
217 they will be welcome.
217 they will be welcome.
218
218
219 It also sets the prompts manually, since the prompt regexps for
219 It also sets the prompts manually, since the prompt regexps for
220 pexpect need to be matched to the actual prompts, so user-customized
220 pexpect need to be matched to the actual prompts, so user-customized
221 prompts would break this.
221 prompts would break this.
222 """
222 """
223
223
224 def __init__(self,program = 'ipython',args=None):
224 def __init__(self,program = 'ipython',args=None):
225 """New runner, optionally passing the ipython command to use."""
225 """New runner, optionally passing the ipython command to use."""
226
226
227 args0 = ['-colors','NoColor',
227 args0 = ['-colors','NoColor',
228 '-pi1','In [\\#]: ',
228 '-pi1','In [\\#]: ',
229 '-pi2',' .\\D.: ']
229 '-pi2',' .\\D.: ']
230 if args is None: args = args0
230 if args is None: args = args0
231 else: args = args0 + args
231 else: args = args0 + args
232 prompts = [r'In \[\d+\]: ',r' \.*: ']
232 prompts = [r'In \[\d+\]: ',r' \.*: ']
233 InteractiveRunner.__init__(self,program,prompts,args)
233 InteractiveRunner.__init__(self,program,prompts,args)
234
234
235
235
236 class PythonRunner(InteractiveRunner):
236 class PythonRunner(InteractiveRunner):
237 """Interactive Python runner."""
237 """Interactive Python runner."""
238
238
239 def __init__(self,program='python',args=None):
239 def __init__(self,program='python',args=None):
240 """New runner, optionally passing the python command to use."""
240 """New runner, optionally passing the python command to use."""
241
241
242 prompts = [r'>>> ',r'\.\.\. ']
242 prompts = [r'>>> ',r'\.\.\. ']
243 InteractiveRunner.__init__(self,program,prompts,args)
243 InteractiveRunner.__init__(self,program,prompts,args)
244
244
245
245
246 class SAGERunner(InteractiveRunner):
246 class SAGERunner(InteractiveRunner):
247 """Interactive SAGE runner.
247 """Interactive SAGE runner.
248
248
249 WARNING: this runner only works if you manually configure your SAGE copy
249 WARNING: this runner only works if you manually configure your SAGE copy
250 to use 'colors NoColor' in the ipythonrc config file, since currently the
250 to use 'colors NoColor' in the ipythonrc config file, since currently the
251 prompt matching regexp does not identify color sequences."""
251 prompt matching regexp does not identify color sequences."""
252
252
253 def __init__(self,program='sage',args=None):
253 def __init__(self,program='sage',args=None):
254 """New runner, optionally passing the sage command to use."""
254 """New runner, optionally passing the sage command to use."""
255
255
256 prompts = ['sage: ',r'\s*\.\.\. ']
256 prompts = ['sage: ',r'\s*\.\.\. ']
257 InteractiveRunner.__init__(self,program,prompts,args)
257 InteractiveRunner.__init__(self,program,prompts,args)
258
258
259 # Global usage string, to avoid indentation issues if typed in a function def.
259 # Global usage string, to avoid indentation issues if typed in a function def.
260 MAIN_USAGE = """
260 MAIN_USAGE = """
261 %prog [options] file_to_run
261 %prog [options] file_to_run
262
262
263 This is an interface to the various interactive runners available in this
263 This is an interface to the various interactive runners available in this
264 module. If you want to pass specific options to one of the runners, you need
264 module. If you want to pass specific options to one of the runners, you need
265 to first terminate the main options with a '--', and then provide the runner's
265 to first terminate the main options with a '--', and then provide the runner's
266 options. For example:
266 options. For example:
267
267
268 irunner.py --python -- --help
268 irunner.py --python -- --help
269
269
270 will pass --help to the python runner. Similarly,
270 will pass --help to the python runner. Similarly,
271
271
272 irunner.py --ipython -- --interact script.ipy
272 irunner.py --ipython -- --interact script.ipy
273
273
274 will run the script.ipy file under the IPython runner, and then will start to
274 will run the script.ipy file under the IPython runner, and then will start to
275 interact with IPython at the end of the script (instead of exiting).
275 interact with IPython at the end of the script (instead of exiting).
276
276
277 The already implemented runners are listed below; adding one for a new program
277 The already implemented runners are listed below; adding one for a new program
278 is a trivial task, see the source for examples.
278 is a trivial task, see the source for examples.
279
279
280 WARNING: the SAGE runner only works if you manually configure your SAGE copy
280 WARNING: the SAGE runner only works if you manually configure your SAGE copy
281 to use 'colors NoColor' in the ipythonrc config file, since currently the
281 to use 'colors NoColor' in the ipythonrc config file, since currently the
282 prompt matching regexp does not identify color sequences.
282 prompt matching regexp does not identify color sequences.
283 """
283 """
284
284
285 def main():
285 def main():
286 """Run as a command-line script."""
286 """Run as a command-line script."""
287
287
288 parser = optparse.OptionParser(usage=MAIN_USAGE)
288 parser = optparse.OptionParser(usage=MAIN_USAGE)
289 newopt = parser.add_option
289 newopt = parser.add_option
290 parser.set_defaults(mode='ipython')
290 parser.set_defaults(mode='ipython')
291 newopt('--ipython',action='store_const',dest='mode',const='ipython',
291 newopt('--ipython',action='store_const',dest='mode',const='ipython',
292 help='IPython interactive runner (default).')
292 help='IPython interactive runner (default).')
293 newopt('--python',action='store_const',dest='mode',const='python',
293 newopt('--python',action='store_const',dest='mode',const='python',
294 help='Python interactive runner.')
294 help='Python interactive runner.')
295 newopt('--sage',action='store_const',dest='mode',const='sage',
295 newopt('--sage',action='store_const',dest='mode',const='sage',
296 help='SAGE interactive runner.')
296 help='SAGE interactive runner.')
297
297
298 opts,args = parser.parse_args()
298 opts,args = parser.parse_args()
299 runners = dict(ipython=IPythonRunner,
299 runners = dict(ipython=IPythonRunner,
300 python=PythonRunner,
300 python=PythonRunner,
301 sage=SAGERunner)
301 sage=SAGERunner)
302
302
303 try:
303 try:
304 ext = os.path.splitext(args[0])
304 ext = os.path.splitext(args[0])[-1]
305 except IndexError:
305 except IndexError:
306 ext = ''
306 ext = ''
307 modes = {'.ipy':'ipython',
307 modes = {'.ipy':'ipython',
308 '.py':'python',
308 '.py':'python',
309 '.sage':'sage'}
309 '.sage':'sage'}
310 mode = modes.get(ext,opts.mode)
310 mode = modes.get(ext,opts.mode)
311 runners[mode]().main(args)
311 runners[mode]().main(args)
312
312
313 if __name__ == '__main__':
313 if __name__ == '__main__':
314 main()
314 main()
@@ -1,6172 +1,6177 b''
1 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
2
3 * IPython/irunner.py (main): fix small bug where extensions were
4 not being correctly recognized.
5
1 2007-01-23 Walter Doerwald <walter@livinglogic.de>
6 2007-01-23 Walter Doerwald <walter@livinglogic.de>
2
7
3 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
8 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
4 a string containing a single line yields the string itself as the
9 a string containing a single line yields the string itself as the
5 only item.
10 only item.
6
11
7 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
12 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
8 object if it's the same as the one on the last level (This avoids
13 object if it's the same as the one on the last level (This avoids
9 infinite recursion for one line strings).
14 infinite recursion for one line strings).
10
15
11 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
16 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
12
17
13 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
18 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
14 all output streams before printing tracebacks. This ensures that
19 all output streams before printing tracebacks. This ensures that
15 user output doesn't end up interleaved with traceback output.
20 user output doesn't end up interleaved with traceback output.
16
21
17 2007-01-10 Ville Vainio <vivainio@gmail.com>
22 2007-01-10 Ville Vainio <vivainio@gmail.com>
18
23
19 * Extensions/envpersist.py: Turbocharged %env that remembers
24 * Extensions/envpersist.py: Turbocharged %env that remembers
20 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
25 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
21 "%env VISUAL=jed".
26 "%env VISUAL=jed".
22
27
23 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
28 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
24
29
25 * IPython/iplib.py (showtraceback): ensure that we correctly call
30 * IPython/iplib.py (showtraceback): ensure that we correctly call
26 custom handlers in all cases (some with pdb were slipping through,
31 custom handlers in all cases (some with pdb were slipping through,
27 but I'm not exactly sure why).
32 but I'm not exactly sure why).
28
33
29 * IPython/Debugger.py (Tracer.__init__): added new class to
34 * IPython/Debugger.py (Tracer.__init__): added new class to
30 support set_trace-like usage of IPython's enhanced debugger.
35 support set_trace-like usage of IPython's enhanced debugger.
31
36
32 2006-12-24 Ville Vainio <vivainio@gmail.com>
37 2006-12-24 Ville Vainio <vivainio@gmail.com>
33
38
34 * ipmaker.py: more informative message when ipy_user_conf
39 * ipmaker.py: more informative message when ipy_user_conf
35 import fails (suggest running %upgrade).
40 import fails (suggest running %upgrade).
36
41
37 * tools/run_ipy_in_profiler.py: Utility to see where
42 * tools/run_ipy_in_profiler.py: Utility to see where
38 the time during IPython startup is spent.
43 the time during IPython startup is spent.
39
44
40 2006-12-20 Ville Vainio <vivainio@gmail.com>
45 2006-12-20 Ville Vainio <vivainio@gmail.com>
41
46
42 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
47 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
43
48
44 * ipapi.py: Add new ipapi method, expand_alias.
49 * ipapi.py: Add new ipapi method, expand_alias.
45
50
46 * Release.py: Bump up version to 0.7.4.svn
51 * Release.py: Bump up version to 0.7.4.svn
47
52
48 2006-12-17 Ville Vainio <vivainio@gmail.com>
53 2006-12-17 Ville Vainio <vivainio@gmail.com>
49
54
50 * Extensions/jobctrl.py: Fixed &cmd arg arg...
55 * Extensions/jobctrl.py: Fixed &cmd arg arg...
51 to work properly on posix too
56 to work properly on posix too
52
57
53 * Release.py: Update revnum (version is still just 0.7.3).
58 * Release.py: Update revnum (version is still just 0.7.3).
54
59
55 2006-12-15 Ville Vainio <vivainio@gmail.com>
60 2006-12-15 Ville Vainio <vivainio@gmail.com>
56
61
57 * scripts/ipython_win_post_install: create ipython.py in
62 * scripts/ipython_win_post_install: create ipython.py in
58 prefix + "/scripts".
63 prefix + "/scripts".
59
64
60 * Release.py: Update version to 0.7.3.
65 * Release.py: Update version to 0.7.3.
61
66
62 2006-12-14 Ville Vainio <vivainio@gmail.com>
67 2006-12-14 Ville Vainio <vivainio@gmail.com>
63
68
64 * scripts/ipython_win_post_install: Overwrite old shortcuts
69 * scripts/ipython_win_post_install: Overwrite old shortcuts
65 if they already exist
70 if they already exist
66
71
67 * Release.py: release 0.7.3rc2
72 * Release.py: release 0.7.3rc2
68
73
69 2006-12-13 Ville Vainio <vivainio@gmail.com>
74 2006-12-13 Ville Vainio <vivainio@gmail.com>
70
75
71 * Branch and update Release.py for 0.7.3rc1
76 * Branch and update Release.py for 0.7.3rc1
72
77
73 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
78 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
74
79
75 * IPython/Shell.py (IPShellWX): update for current WX naming
80 * IPython/Shell.py (IPShellWX): update for current WX naming
76 conventions, to avoid a deprecation warning with current WX
81 conventions, to avoid a deprecation warning with current WX
77 versions. Thanks to a report by Danny Shevitz.
82 versions. Thanks to a report by Danny Shevitz.
78
83
79 2006-12-12 Ville Vainio <vivainio@gmail.com>
84 2006-12-12 Ville Vainio <vivainio@gmail.com>
80
85
81 * ipmaker.py: apply david cournapeau's patch to make
86 * ipmaker.py: apply david cournapeau's patch to make
82 import_some work properly even when ipythonrc does
87 import_some work properly even when ipythonrc does
83 import_some on empty list (it was an old bug!).
88 import_some on empty list (it was an old bug!).
84
89
85 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
90 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
86 Add deprecation note to ipythonrc and a url to wiki
91 Add deprecation note to ipythonrc and a url to wiki
87 in ipy_user_conf.py
92 in ipy_user_conf.py
88
93
89
94
90 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
95 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
91 as if it was typed on IPython command prompt, i.e.
96 as if it was typed on IPython command prompt, i.e.
92 as IPython script.
97 as IPython script.
93
98
94 * example-magic.py, magic_grepl.py: remove outdated examples
99 * example-magic.py, magic_grepl.py: remove outdated examples
95
100
96 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
101 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
97
102
98 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
103 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
99 is called before any exception has occurred.
104 is called before any exception has occurred.
100
105
101 2006-12-08 Ville Vainio <vivainio@gmail.com>
106 2006-12-08 Ville Vainio <vivainio@gmail.com>
102
107
103 * Extensions/ipy_stock_completers.py.py: fix cd completer
108 * Extensions/ipy_stock_completers.py.py: fix cd completer
104 to translate /'s to \'s again.
109 to translate /'s to \'s again.
105
110
106 * completer.py: prevent traceback on file completions w/
111 * completer.py: prevent traceback on file completions w/
107 backslash.
112 backslash.
108
113
109 * Release.py: Update release number to 0.7.3b3 for release
114 * Release.py: Update release number to 0.7.3b3 for release
110
115
111 2006-12-07 Ville Vainio <vivainio@gmail.com>
116 2006-12-07 Ville Vainio <vivainio@gmail.com>
112
117
113 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
118 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
114 while executing external code. Provides more shell-like behaviour
119 while executing external code. Provides more shell-like behaviour
115 and overall better response to ctrl + C / ctrl + break.
120 and overall better response to ctrl + C / ctrl + break.
116
121
117 * tools/make_tarball.py: new script to create tarball straight from svn
122 * tools/make_tarball.py: new script to create tarball straight from svn
118 (setup.py sdist doesn't work on win32).
123 (setup.py sdist doesn't work on win32).
119
124
120 * Extensions/ipy_stock_completers.py: fix cd completer to give up
125 * Extensions/ipy_stock_completers.py: fix cd completer to give up
121 on dirnames with spaces and use the default completer instead.
126 on dirnames with spaces and use the default completer instead.
122
127
123 * Revision.py: Change version to 0.7.3b2 for release.
128 * Revision.py: Change version to 0.7.3b2 for release.
124
129
125 2006-12-05 Ville Vainio <vivainio@gmail.com>
130 2006-12-05 Ville Vainio <vivainio@gmail.com>
126
131
127 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
132 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
128 pydb patch 4 (rm debug printing, py 2.5 checking)
133 pydb patch 4 (rm debug printing, py 2.5 checking)
129
134
130 2006-11-30 Walter Doerwald <walter@livinglogic.de>
135 2006-11-30 Walter Doerwald <walter@livinglogic.de>
131 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
136 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
132 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
137 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
133 "refreshfind" (mapped to "R") does the same but tries to go back to the same
138 "refreshfind" (mapped to "R") does the same but tries to go back to the same
134 object the cursor was on before the refresh. The command "markrange" is
139 object the cursor was on before the refresh. The command "markrange" is
135 mapped to "%" now.
140 mapped to "%" now.
136 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
141 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
137
142
138 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
143 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
139
144
140 * IPython/Magic.py (magic_debug): new %debug magic to activate the
145 * IPython/Magic.py (magic_debug): new %debug magic to activate the
141 interactive debugger on the last traceback, without having to call
146 interactive debugger on the last traceback, without having to call
142 %pdb and rerun your code. Made minor changes in various modules,
147 %pdb and rerun your code. Made minor changes in various modules,
143 should automatically recognize pydb if available.
148 should automatically recognize pydb if available.
144
149
145 2006-11-28 Ville Vainio <vivainio@gmail.com>
150 2006-11-28 Ville Vainio <vivainio@gmail.com>
146
151
147 * completer.py: If the text start with !, show file completions
152 * completer.py: If the text start with !, show file completions
148 properly. This helps when trying to complete command name
153 properly. This helps when trying to complete command name
149 for shell escapes.
154 for shell escapes.
150
155
151 2006-11-27 Ville Vainio <vivainio@gmail.com>
156 2006-11-27 Ville Vainio <vivainio@gmail.com>
152
157
153 * ipy_stock_completers.py: bzr completer submitted by Stefan van
158 * ipy_stock_completers.py: bzr completer submitted by Stefan van
154 der Walt. Clean up svn and hg completers by using a common
159 der Walt. Clean up svn and hg completers by using a common
155 vcs_completer.
160 vcs_completer.
156
161
157 2006-11-26 Ville Vainio <vivainio@gmail.com>
162 2006-11-26 Ville Vainio <vivainio@gmail.com>
158
163
159 * Remove ipconfig and %config; you should use _ip.options structure
164 * Remove ipconfig and %config; you should use _ip.options structure
160 directly instead!
165 directly instead!
161
166
162 * genutils.py: add wrap_deprecated function for deprecating callables
167 * genutils.py: add wrap_deprecated function for deprecating callables
163
168
164 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
169 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
165 _ip.system instead. ipalias is redundant.
170 _ip.system instead. ipalias is redundant.
166
171
167 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
172 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
168 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
173 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
169 explicit.
174 explicit.
170
175
171 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
176 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
172 completer. Try it by entering 'hg ' and pressing tab.
177 completer. Try it by entering 'hg ' and pressing tab.
173
178
174 * macro.py: Give Macro a useful __repr__ method
179 * macro.py: Give Macro a useful __repr__ method
175
180
176 * Magic.py: %whos abbreviates the typename of Macro for brevity.
181 * Magic.py: %whos abbreviates the typename of Macro for brevity.
177
182
178 2006-11-24 Walter Doerwald <walter@livinglogic.de>
183 2006-11-24 Walter Doerwald <walter@livinglogic.de>
179 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
184 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
180 we don't get a duplicate ipipe module, where registration of the xrepr
185 we don't get a duplicate ipipe module, where registration of the xrepr
181 implementation for Text is useless.
186 implementation for Text is useless.
182
187
183 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
188 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
184
189
185 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
190 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
186
191
187 2006-11-24 Ville Vainio <vivainio@gmail.com>
192 2006-11-24 Ville Vainio <vivainio@gmail.com>
188
193
189 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
194 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
190 try to use "cProfile" instead of the slower pure python
195 try to use "cProfile" instead of the slower pure python
191 "profile"
196 "profile"
192
197
193 2006-11-23 Ville Vainio <vivainio@gmail.com>
198 2006-11-23 Ville Vainio <vivainio@gmail.com>
194
199
195 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
200 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
196 Qt+IPython+Designer link in documentation.
201 Qt+IPython+Designer link in documentation.
197
202
198 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
203 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
199 correct Pdb object to %pydb.
204 correct Pdb object to %pydb.
200
205
201
206
202 2006-11-22 Walter Doerwald <walter@livinglogic.de>
207 2006-11-22 Walter Doerwald <walter@livinglogic.de>
203 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
208 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
204 generic xrepr(), otherwise the list implementation would kick in.
209 generic xrepr(), otherwise the list implementation would kick in.
205
210
206 2006-11-21 Ville Vainio <vivainio@gmail.com>
211 2006-11-21 Ville Vainio <vivainio@gmail.com>
207
212
208 * upgrade_dir.py: Now actually overwrites a nonmodified user file
213 * upgrade_dir.py: Now actually overwrites a nonmodified user file
209 with one from UserConfig.
214 with one from UserConfig.
210
215
211 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
216 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
212 it was missing which broke the sh profile.
217 it was missing which broke the sh profile.
213
218
214 * completer.py: file completer now uses explicit '/' instead
219 * completer.py: file completer now uses explicit '/' instead
215 of os.path.join, expansion of 'foo' was broken on win32
220 of os.path.join, expansion of 'foo' was broken on win32
216 if there was one directory with name 'foobar'.
221 if there was one directory with name 'foobar'.
217
222
218 * A bunch of patches from Kirill Smelkov:
223 * A bunch of patches from Kirill Smelkov:
219
224
220 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
225 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
221
226
222 * [patch 7/9] Implement %page -r (page in raw mode) -
227 * [patch 7/9] Implement %page -r (page in raw mode) -
223
228
224 * [patch 5/9] ScientificPython webpage has moved
229 * [patch 5/9] ScientificPython webpage has moved
225
230
226 * [patch 4/9] The manual mentions %ds, should be %dhist
231 * [patch 4/9] The manual mentions %ds, should be %dhist
227
232
228 * [patch 3/9] Kill old bits from %prun doc.
233 * [patch 3/9] Kill old bits from %prun doc.
229
234
230 * [patch 1/9] Fix typos here and there.
235 * [patch 1/9] Fix typos here and there.
231
236
232 2006-11-08 Ville Vainio <vivainio@gmail.com>
237 2006-11-08 Ville Vainio <vivainio@gmail.com>
233
238
234 * completer.py (attr_matches): catch all exceptions raised
239 * completer.py (attr_matches): catch all exceptions raised
235 by eval of expr with dots.
240 by eval of expr with dots.
236
241
237 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
242 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
238
243
239 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
244 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
240 input if it starts with whitespace. This allows you to paste
245 input if it starts with whitespace. This allows you to paste
241 indented input from any editor without manually having to type in
246 indented input from any editor without manually having to type in
242 the 'if 1:', which is convenient when working interactively.
247 the 'if 1:', which is convenient when working interactively.
243 Slightly modifed version of a patch by Bo Peng
248 Slightly modifed version of a patch by Bo Peng
244 <bpeng-AT-rice.edu>.
249 <bpeng-AT-rice.edu>.
245
250
246 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
251 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
247
252
248 * IPython/irunner.py (main): modified irunner so it automatically
253 * IPython/irunner.py (main): modified irunner so it automatically
249 recognizes the right runner to use based on the extension (.py for
254 recognizes the right runner to use based on the extension (.py for
250 python, .ipy for ipython and .sage for sage).
255 python, .ipy for ipython and .sage for sage).
251
256
252 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
257 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
253 visible in ipapi as ip.config(), to programatically control the
258 visible in ipapi as ip.config(), to programatically control the
254 internal rc object. There's an accompanying %config magic for
259 internal rc object. There's an accompanying %config magic for
255 interactive use, which has been enhanced to match the
260 interactive use, which has been enhanced to match the
256 funtionality in ipconfig.
261 funtionality in ipconfig.
257
262
258 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
263 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
259 so it's not just a toggle, it now takes an argument. Add support
264 so it's not just a toggle, it now takes an argument. Add support
260 for a customizable header when making system calls, as the new
265 for a customizable header when making system calls, as the new
261 system_header variable in the ipythonrc file.
266 system_header variable in the ipythonrc file.
262
267
263 2006-11-03 Walter Doerwald <walter@livinglogic.de>
268 2006-11-03 Walter Doerwald <walter@livinglogic.de>
264
269
265 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
270 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
266 generic functions (using Philip J. Eby's simplegeneric package).
271 generic functions (using Philip J. Eby's simplegeneric package).
267 This makes it possible to customize the display of third-party classes
272 This makes it possible to customize the display of third-party classes
268 without having to monkeypatch them. xiter() no longer supports a mode
273 without having to monkeypatch them. xiter() no longer supports a mode
269 argument and the XMode class has been removed. The same functionality can
274 argument and the XMode class has been removed. The same functionality can
270 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
275 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
271 One consequence of the switch to generic functions is that xrepr() and
276 One consequence of the switch to generic functions is that xrepr() and
272 xattrs() implementation must define the default value for the mode
277 xattrs() implementation must define the default value for the mode
273 argument themselves and xattrs() implementations must return real
278 argument themselves and xattrs() implementations must return real
274 descriptors.
279 descriptors.
275
280
276 * IPython/external: This new subpackage will contain all third-party
281 * IPython/external: This new subpackage will contain all third-party
277 packages that are bundled with IPython. (The first one is simplegeneric).
282 packages that are bundled with IPython. (The first one is simplegeneric).
278
283
279 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
284 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
280 directory which as been dropped in r1703.
285 directory which as been dropped in r1703.
281
286
282 * IPython/Extensions/ipipe.py (iless): Fixed.
287 * IPython/Extensions/ipipe.py (iless): Fixed.
283
288
284 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
289 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
285
290
286 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
291 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
287
292
288 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
293 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
289 handling in variable expansion so that shells and magics recognize
294 handling in variable expansion so that shells and magics recognize
290 function local scopes correctly. Bug reported by Brian.
295 function local scopes correctly. Bug reported by Brian.
291
296
292 * scripts/ipython: remove the very first entry in sys.path which
297 * scripts/ipython: remove the very first entry in sys.path which
293 Python auto-inserts for scripts, so that sys.path under IPython is
298 Python auto-inserts for scripts, so that sys.path under IPython is
294 as similar as possible to that under plain Python.
299 as similar as possible to that under plain Python.
295
300
296 * IPython/completer.py (IPCompleter.file_matches): Fix
301 * IPython/completer.py (IPCompleter.file_matches): Fix
297 tab-completion so that quotes are not closed unless the completion
302 tab-completion so that quotes are not closed unless the completion
298 is unambiguous. After a request by Stefan. Minor cleanups in
303 is unambiguous. After a request by Stefan. Minor cleanups in
299 ipy_stock_completers.
304 ipy_stock_completers.
300
305
301 2006-11-02 Ville Vainio <vivainio@gmail.com>
306 2006-11-02 Ville Vainio <vivainio@gmail.com>
302
307
303 * ipy_stock_completers.py: Add %run and %cd completers.
308 * ipy_stock_completers.py: Add %run and %cd completers.
304
309
305 * completer.py: Try running custom completer for both
310 * completer.py: Try running custom completer for both
306 "foo" and "%foo" if the command is just "foo". Ignore case
311 "foo" and "%foo" if the command is just "foo". Ignore case
307 when filtering possible completions.
312 when filtering possible completions.
308
313
309 * UserConfig/ipy_user_conf.py: install stock completers as default
314 * UserConfig/ipy_user_conf.py: install stock completers as default
310
315
311 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
316 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
312 simplified readline history save / restore through a wrapper
317 simplified readline history save / restore through a wrapper
313 function
318 function
314
319
315
320
316 2006-10-31 Ville Vainio <vivainio@gmail.com>
321 2006-10-31 Ville Vainio <vivainio@gmail.com>
317
322
318 * strdispatch.py, completer.py, ipy_stock_completers.py:
323 * strdispatch.py, completer.py, ipy_stock_completers.py:
319 Allow str_key ("command") in completer hooks. Implement
324 Allow str_key ("command") in completer hooks. Implement
320 trivial completer for 'import' (stdlib modules only). Rename
325 trivial completer for 'import' (stdlib modules only). Rename
321 ipy_linux_package_managers.py to ipy_stock_completers.py.
326 ipy_linux_package_managers.py to ipy_stock_completers.py.
322 SVN completer.
327 SVN completer.
323
328
324 * Extensions/ledit.py: %magic line editor for easily and
329 * Extensions/ledit.py: %magic line editor for easily and
325 incrementally manipulating lists of strings. The magic command
330 incrementally manipulating lists of strings. The magic command
326 name is %led.
331 name is %led.
327
332
328 2006-10-30 Ville Vainio <vivainio@gmail.com>
333 2006-10-30 Ville Vainio <vivainio@gmail.com>
329
334
330 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
335 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
331 Bernsteins's patches for pydb integration.
336 Bernsteins's patches for pydb integration.
332 http://bashdb.sourceforge.net/pydb/
337 http://bashdb.sourceforge.net/pydb/
333
338
334 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
339 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
335 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
340 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
336 custom completer hook to allow the users to implement their own
341 custom completer hook to allow the users to implement their own
337 completers. See ipy_linux_package_managers.py for example. The
342 completers. See ipy_linux_package_managers.py for example. The
338 hook name is 'complete_command'.
343 hook name is 'complete_command'.
339
344
340 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
345 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
341
346
342 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
347 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
343 Numeric leftovers.
348 Numeric leftovers.
344
349
345 * ipython.el (py-execute-region): apply Stefan's patch to fix
350 * ipython.el (py-execute-region): apply Stefan's patch to fix
346 garbled results if the python shell hasn't been previously started.
351 garbled results if the python shell hasn't been previously started.
347
352
348 * IPython/genutils.py (arg_split): moved to genutils, since it's a
353 * IPython/genutils.py (arg_split): moved to genutils, since it's a
349 pretty generic function and useful for other things.
354 pretty generic function and useful for other things.
350
355
351 * IPython/OInspect.py (getsource): Add customizable source
356 * IPython/OInspect.py (getsource): Add customizable source
352 extractor. After a request/patch form W. Stein (SAGE).
357 extractor. After a request/patch form W. Stein (SAGE).
353
358
354 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
359 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
355 window size to a more reasonable value from what pexpect does,
360 window size to a more reasonable value from what pexpect does,
356 since their choice causes wrapping bugs with long input lines.
361 since their choice causes wrapping bugs with long input lines.
357
362
358 2006-10-28 Ville Vainio <vivainio@gmail.com>
363 2006-10-28 Ville Vainio <vivainio@gmail.com>
359
364
360 * Magic.py (%run): Save and restore the readline history from
365 * Magic.py (%run): Save and restore the readline history from
361 file around %run commands to prevent side effects from
366 file around %run commands to prevent side effects from
362 %runned programs that might use readline (e.g. pydb).
367 %runned programs that might use readline (e.g. pydb).
363
368
364 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
369 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
365 invoking the pydb enhanced debugger.
370 invoking the pydb enhanced debugger.
366
371
367 2006-10-23 Walter Doerwald <walter@livinglogic.de>
372 2006-10-23 Walter Doerwald <walter@livinglogic.de>
368
373
369 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
374 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
370 call the base class method and propagate the return value to
375 call the base class method and propagate the return value to
371 ifile. This is now done by path itself.
376 ifile. This is now done by path itself.
372
377
373 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
378 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
374
379
375 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
380 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
376 api: set_crash_handler(), to expose the ability to change the
381 api: set_crash_handler(), to expose the ability to change the
377 internal crash handler.
382 internal crash handler.
378
383
379 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
384 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
380 the various parameters of the crash handler so that apps using
385 the various parameters of the crash handler so that apps using
381 IPython as their engine can customize crash handling. Ipmlemented
386 IPython as their engine can customize crash handling. Ipmlemented
382 at the request of SAGE.
387 at the request of SAGE.
383
388
384 2006-10-14 Ville Vainio <vivainio@gmail.com>
389 2006-10-14 Ville Vainio <vivainio@gmail.com>
385
390
386 * Magic.py, ipython.el: applied first "safe" part of Rocky
391 * Magic.py, ipython.el: applied first "safe" part of Rocky
387 Bernstein's patch set for pydb integration.
392 Bernstein's patch set for pydb integration.
388
393
389 * Magic.py (%unalias, %alias): %store'd aliases can now be
394 * Magic.py (%unalias, %alias): %store'd aliases can now be
390 removed with '%unalias'. %alias w/o args now shows most
395 removed with '%unalias'. %alias w/o args now shows most
391 interesting (stored / manually defined) aliases last
396 interesting (stored / manually defined) aliases last
392 where they catch the eye w/o scrolling.
397 where they catch the eye w/o scrolling.
393
398
394 * Magic.py (%rehashx), ext_rehashdir.py: files with
399 * Magic.py (%rehashx), ext_rehashdir.py: files with
395 'py' extension are always considered executable, even
400 'py' extension are always considered executable, even
396 when not in PATHEXT environment variable.
401 when not in PATHEXT environment variable.
397
402
398 2006-10-12 Ville Vainio <vivainio@gmail.com>
403 2006-10-12 Ville Vainio <vivainio@gmail.com>
399
404
400 * jobctrl.py: Add new "jobctrl" extension for spawning background
405 * jobctrl.py: Add new "jobctrl" extension for spawning background
401 processes with "&find /". 'import jobctrl' to try it out. Requires
406 processes with "&find /". 'import jobctrl' to try it out. Requires
402 'subprocess' module, standard in python 2.4+.
407 'subprocess' module, standard in python 2.4+.
403
408
404 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
409 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
405 so if foo -> bar and bar -> baz, then foo -> baz.
410 so if foo -> bar and bar -> baz, then foo -> baz.
406
411
407 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
412 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
408
413
409 * IPython/Magic.py (Magic.parse_options): add a new posix option
414 * IPython/Magic.py (Magic.parse_options): add a new posix option
410 to allow parsing of input args in magics that doesn't strip quotes
415 to allow parsing of input args in magics that doesn't strip quotes
411 (if posix=False). This also closes %timeit bug reported by
416 (if posix=False). This also closes %timeit bug reported by
412 Stefan.
417 Stefan.
413
418
414 2006-10-03 Ville Vainio <vivainio@gmail.com>
419 2006-10-03 Ville Vainio <vivainio@gmail.com>
415
420
416 * iplib.py (raw_input, interact): Return ValueError catching for
421 * iplib.py (raw_input, interact): Return ValueError catching for
417 raw_input. Fixes infinite loop for sys.stdin.close() or
422 raw_input. Fixes infinite loop for sys.stdin.close() or
418 sys.stdout.close().
423 sys.stdout.close().
419
424
420 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
425 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
421
426
422 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
427 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
423 to help in handling doctests. irunner is now pretty useful for
428 to help in handling doctests. irunner is now pretty useful for
424 running standalone scripts and simulate a full interactive session
429 running standalone scripts and simulate a full interactive session
425 in a format that can be then pasted as a doctest.
430 in a format that can be then pasted as a doctest.
426
431
427 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
432 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
428 on top of the default (useless) ones. This also fixes the nasty
433 on top of the default (useless) ones. This also fixes the nasty
429 way in which 2.5's Quitter() exits (reverted [1785]).
434 way in which 2.5's Quitter() exits (reverted [1785]).
430
435
431 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
436 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
432 2.5.
437 2.5.
433
438
434 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
439 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
435 color scheme is updated as well when color scheme is changed
440 color scheme is updated as well when color scheme is changed
436 interactively.
441 interactively.
437
442
438 2006-09-27 Ville Vainio <vivainio@gmail.com>
443 2006-09-27 Ville Vainio <vivainio@gmail.com>
439
444
440 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
445 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
441 infinite loop and just exit. It's a hack, but will do for a while.
446 infinite loop and just exit. It's a hack, but will do for a while.
442
447
443 2006-08-25 Walter Doerwald <walter@livinglogic.de>
448 2006-08-25 Walter Doerwald <walter@livinglogic.de>
444
449
445 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
450 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
446 the constructor, this makes it possible to get a list of only directories
451 the constructor, this makes it possible to get a list of only directories
447 or only files.
452 or only files.
448
453
449 2006-08-12 Ville Vainio <vivainio@gmail.com>
454 2006-08-12 Ville Vainio <vivainio@gmail.com>
450
455
451 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
456 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
452 they broke unittest
457 they broke unittest
453
458
454 2006-08-11 Ville Vainio <vivainio@gmail.com>
459 2006-08-11 Ville Vainio <vivainio@gmail.com>
455
460
456 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
461 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
457 by resolving issue properly, i.e. by inheriting FakeModule
462 by resolving issue properly, i.e. by inheriting FakeModule
458 from types.ModuleType. Pickling ipython interactive data
463 from types.ModuleType. Pickling ipython interactive data
459 should still work as usual (testing appreciated).
464 should still work as usual (testing appreciated).
460
465
461 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
466 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
462
467
463 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
468 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
464 running under python 2.3 with code from 2.4 to fix a bug with
469 running under python 2.3 with code from 2.4 to fix a bug with
465 help(). Reported by the Debian maintainers, Norbert Tretkowski
470 help(). Reported by the Debian maintainers, Norbert Tretkowski
466 <norbert-AT-tretkowski.de> and Alexandre Fayolle
471 <norbert-AT-tretkowski.de> and Alexandre Fayolle
467 <afayolle-AT-debian.org>.
472 <afayolle-AT-debian.org>.
468
473
469 2006-08-04 Walter Doerwald <walter@livinglogic.de>
474 2006-08-04 Walter Doerwald <walter@livinglogic.de>
470
475
471 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
476 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
472 (which was displaying "quit" twice).
477 (which was displaying "quit" twice).
473
478
474 2006-07-28 Walter Doerwald <walter@livinglogic.de>
479 2006-07-28 Walter Doerwald <walter@livinglogic.de>
475
480
476 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
481 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
477 the mode argument).
482 the mode argument).
478
483
479 2006-07-27 Walter Doerwald <walter@livinglogic.de>
484 2006-07-27 Walter Doerwald <walter@livinglogic.de>
480
485
481 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
486 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
482 not running under IPython.
487 not running under IPython.
483
488
484 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
489 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
485 and make it iterable (iterating over the attribute itself). Add two new
490 and make it iterable (iterating over the attribute itself). Add two new
486 magic strings for __xattrs__(): If the string starts with "-", the attribute
491 magic strings for __xattrs__(): If the string starts with "-", the attribute
487 will not be displayed in ibrowse's detail view (but it can still be
492 will not be displayed in ibrowse's detail view (but it can still be
488 iterated over). This makes it possible to add attributes that are large
493 iterated over). This makes it possible to add attributes that are large
489 lists or generator methods to the detail view. Replace magic attribute names
494 lists or generator methods to the detail view. Replace magic attribute names
490 and _attrname() and _getattr() with "descriptors": For each type of magic
495 and _attrname() and _getattr() with "descriptors": For each type of magic
491 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
496 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
492 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
497 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
493 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
498 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
494 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
499 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
495 are still supported.
500 are still supported.
496
501
497 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
502 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
498 fails in ibrowse.fetch(), the exception object is added as the last item
503 fails in ibrowse.fetch(), the exception object is added as the last item
499 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
504 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
500 a generator throws an exception midway through execution.
505 a generator throws an exception midway through execution.
501
506
502 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
507 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
503 encoding into methods.
508 encoding into methods.
504
509
505 2006-07-26 Ville Vainio <vivainio@gmail.com>
510 2006-07-26 Ville Vainio <vivainio@gmail.com>
506
511
507 * iplib.py: history now stores multiline input as single
512 * iplib.py: history now stores multiline input as single
508 history entries. Patch by Jorgen Cederlof.
513 history entries. Patch by Jorgen Cederlof.
509
514
510 2006-07-18 Walter Doerwald <walter@livinglogic.de>
515 2006-07-18 Walter Doerwald <walter@livinglogic.de>
511
516
512 * IPython/Extensions/ibrowse.py: Make cursor visible over
517 * IPython/Extensions/ibrowse.py: Make cursor visible over
513 non existing attributes.
518 non existing attributes.
514
519
515 2006-07-14 Walter Doerwald <walter@livinglogic.de>
520 2006-07-14 Walter Doerwald <walter@livinglogic.de>
516
521
517 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
522 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
518 error output of the running command doesn't mess up the screen.
523 error output of the running command doesn't mess up the screen.
519
524
520 2006-07-13 Walter Doerwald <walter@livinglogic.de>
525 2006-07-13 Walter Doerwald <walter@livinglogic.de>
521
526
522 * IPython/Extensions/ipipe.py (isort): Make isort usable without
527 * IPython/Extensions/ipipe.py (isort): Make isort usable without
523 argument. This sorts the items themselves.
528 argument. This sorts the items themselves.
524
529
525 2006-07-12 Walter Doerwald <walter@livinglogic.de>
530 2006-07-12 Walter Doerwald <walter@livinglogic.de>
526
531
527 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
532 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
528 Compile expression strings into code objects. This should speed
533 Compile expression strings into code objects. This should speed
529 up ifilter and friends somewhat.
534 up ifilter and friends somewhat.
530
535
531 2006-07-08 Ville Vainio <vivainio@gmail.com>
536 2006-07-08 Ville Vainio <vivainio@gmail.com>
532
537
533 * Magic.py: %cpaste now strips > from the beginning of lines
538 * Magic.py: %cpaste now strips > from the beginning of lines
534 to ease pasting quoted code from emails. Contributed by
539 to ease pasting quoted code from emails. Contributed by
535 Stefan van der Walt.
540 Stefan van der Walt.
536
541
537 2006-06-29 Ville Vainio <vivainio@gmail.com>
542 2006-06-29 Ville Vainio <vivainio@gmail.com>
538
543
539 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
544 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
540 mode, patch contributed by Darren Dale. NEEDS TESTING!
545 mode, patch contributed by Darren Dale. NEEDS TESTING!
541
546
542 2006-06-28 Walter Doerwald <walter@livinglogic.de>
547 2006-06-28 Walter Doerwald <walter@livinglogic.de>
543
548
544 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
549 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
545 a blue background. Fix fetching new display rows when the browser
550 a blue background. Fix fetching new display rows when the browser
546 scrolls more than a screenful (e.g. by using the goto command).
551 scrolls more than a screenful (e.g. by using the goto command).
547
552
548 2006-06-27 Ville Vainio <vivainio@gmail.com>
553 2006-06-27 Ville Vainio <vivainio@gmail.com>
549
554
550 * Magic.py (_inspect, _ofind) Apply David Huard's
555 * Magic.py (_inspect, _ofind) Apply David Huard's
551 patch for displaying the correct docstring for 'property'
556 patch for displaying the correct docstring for 'property'
552 attributes.
557 attributes.
553
558
554 2006-06-23 Walter Doerwald <walter@livinglogic.de>
559 2006-06-23 Walter Doerwald <walter@livinglogic.de>
555
560
556 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
561 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
557 commands into the methods implementing them.
562 commands into the methods implementing them.
558
563
559 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
564 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
560
565
561 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
566 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
562 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
567 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
563 autoindent support was authored by Jin Liu.
568 autoindent support was authored by Jin Liu.
564
569
565 2006-06-22 Walter Doerwald <walter@livinglogic.de>
570 2006-06-22 Walter Doerwald <walter@livinglogic.de>
566
571
567 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
572 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
568 for keymaps with a custom class that simplifies handling.
573 for keymaps with a custom class that simplifies handling.
569
574
570 2006-06-19 Walter Doerwald <walter@livinglogic.de>
575 2006-06-19 Walter Doerwald <walter@livinglogic.de>
571
576
572 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
577 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
573 resizing. This requires Python 2.5 to work.
578 resizing. This requires Python 2.5 to work.
574
579
575 2006-06-16 Walter Doerwald <walter@livinglogic.de>
580 2006-06-16 Walter Doerwald <walter@livinglogic.de>
576
581
577 * IPython/Extensions/ibrowse.py: Add two new commands to
582 * IPython/Extensions/ibrowse.py: Add two new commands to
578 ibrowse: "hideattr" (mapped to "h") hides the attribute under
583 ibrowse: "hideattr" (mapped to "h") hides the attribute under
579 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
584 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
580 attributes again. Remapped the help command to "?". Display
585 attributes again. Remapped the help command to "?". Display
581 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
586 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
582 as keys for the "home" and "end" commands. Add three new commands
587 as keys for the "home" and "end" commands. Add three new commands
583 to the input mode for "find" and friends: "delend" (CTRL-K)
588 to the input mode for "find" and friends: "delend" (CTRL-K)
584 deletes to the end of line. "incsearchup" searches upwards in the
589 deletes to the end of line. "incsearchup" searches upwards in the
585 command history for an input that starts with the text before the cursor.
590 command history for an input that starts with the text before the cursor.
586 "incsearchdown" does the same downwards. Removed a bogus mapping of
591 "incsearchdown" does the same downwards. Removed a bogus mapping of
587 the x key to "delete".
592 the x key to "delete".
588
593
589 2006-06-15 Ville Vainio <vivainio@gmail.com>
594 2006-06-15 Ville Vainio <vivainio@gmail.com>
590
595
591 * iplib.py, hooks.py: Added new generate_prompt hook that can be
596 * iplib.py, hooks.py: Added new generate_prompt hook that can be
592 used to create prompts dynamically, instead of the "old" way of
597 used to create prompts dynamically, instead of the "old" way of
593 assigning "magic" strings to prompt_in1 and prompt_in2. The old
598 assigning "magic" strings to prompt_in1 and prompt_in2. The old
594 way still works (it's invoked by the default hook), of course.
599 way still works (it's invoked by the default hook), of course.
595
600
596 * Prompts.py: added generate_output_prompt hook for altering output
601 * Prompts.py: added generate_output_prompt hook for altering output
597 prompt
602 prompt
598
603
599 * Release.py: Changed version string to 0.7.3.svn.
604 * Release.py: Changed version string to 0.7.3.svn.
600
605
601 2006-06-15 Walter Doerwald <walter@livinglogic.de>
606 2006-06-15 Walter Doerwald <walter@livinglogic.de>
602
607
603 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
608 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
604 the call to fetch() always tries to fetch enough data for at least one
609 the call to fetch() always tries to fetch enough data for at least one
605 full screen. This makes it possible to simply call moveto(0,0,True) in
610 full screen. This makes it possible to simply call moveto(0,0,True) in
606 the constructor. Fix typos and removed the obsolete goto attribute.
611 the constructor. Fix typos and removed the obsolete goto attribute.
607
612
608 2006-06-12 Ville Vainio <vivainio@gmail.com>
613 2006-06-12 Ville Vainio <vivainio@gmail.com>
609
614
610 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
615 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
611 allowing $variable interpolation within multiline statements,
616 allowing $variable interpolation within multiline statements,
612 though so far only with "sh" profile for a testing period.
617 though so far only with "sh" profile for a testing period.
613 The patch also enables splitting long commands with \ but it
618 The patch also enables splitting long commands with \ but it
614 doesn't work properly yet.
619 doesn't work properly yet.
615
620
616 2006-06-12 Walter Doerwald <walter@livinglogic.de>
621 2006-06-12 Walter Doerwald <walter@livinglogic.de>
617
622
618 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
623 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
619 input history and the position of the cursor in the input history for
624 input history and the position of the cursor in the input history for
620 the find, findbackwards and goto command.
625 the find, findbackwards and goto command.
621
626
622 2006-06-10 Walter Doerwald <walter@livinglogic.de>
627 2006-06-10 Walter Doerwald <walter@livinglogic.de>
623
628
624 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
629 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
625 implements the basic functionality of browser commands that require
630 implements the basic functionality of browser commands that require
626 input. Reimplement the goto, find and findbackwards commands as
631 input. Reimplement the goto, find and findbackwards commands as
627 subclasses of _CommandInput. Add an input history and keymaps to those
632 subclasses of _CommandInput. Add an input history and keymaps to those
628 commands. Add "\r" as a keyboard shortcut for the enterdefault and
633 commands. Add "\r" as a keyboard shortcut for the enterdefault and
629 execute commands.
634 execute commands.
630
635
631 2006-06-07 Ville Vainio <vivainio@gmail.com>
636 2006-06-07 Ville Vainio <vivainio@gmail.com>
632
637
633 * iplib.py: ipython mybatch.ipy exits ipython immediately after
638 * iplib.py: ipython mybatch.ipy exits ipython immediately after
634 running the batch files instead of leaving the session open.
639 running the batch files instead of leaving the session open.
635
640
636 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
641 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
637
642
638 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
643 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
639 the original fix was incomplete. Patch submitted by W. Maier.
644 the original fix was incomplete. Patch submitted by W. Maier.
640
645
641 2006-06-07 Ville Vainio <vivainio@gmail.com>
646 2006-06-07 Ville Vainio <vivainio@gmail.com>
642
647
643 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
648 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
644 Confirmation prompts can be supressed by 'quiet' option.
649 Confirmation prompts can be supressed by 'quiet' option.
645 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
650 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
646
651
647 2006-06-06 *** Released version 0.7.2
652 2006-06-06 *** Released version 0.7.2
648
653
649 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
654 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
650
655
651 * IPython/Release.py (version): Made 0.7.2 final for release.
656 * IPython/Release.py (version): Made 0.7.2 final for release.
652 Repo tagged and release cut.
657 Repo tagged and release cut.
653
658
654 2006-06-05 Ville Vainio <vivainio@gmail.com>
659 2006-06-05 Ville Vainio <vivainio@gmail.com>
655
660
656 * Magic.py (magic_rehashx): Honor no_alias list earlier in
661 * Magic.py (magic_rehashx): Honor no_alias list earlier in
657 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
662 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
658
663
659 * upgrade_dir.py: try import 'path' module a bit harder
664 * upgrade_dir.py: try import 'path' module a bit harder
660 (for %upgrade)
665 (for %upgrade)
661
666
662 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
667 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
663
668
664 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
669 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
665 instead of looping 20 times.
670 instead of looping 20 times.
666
671
667 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
672 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
668 correctly at initialization time. Bug reported by Krishna Mohan
673 correctly at initialization time. Bug reported by Krishna Mohan
669 Gundu <gkmohan-AT-gmail.com> on the user list.
674 Gundu <gkmohan-AT-gmail.com> on the user list.
670
675
671 * IPython/Release.py (version): Mark 0.7.2 version to start
676 * IPython/Release.py (version): Mark 0.7.2 version to start
672 testing for release on 06/06.
677 testing for release on 06/06.
673
678
674 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
679 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
675
680
676 * scripts/irunner: thin script interface so users don't have to
681 * scripts/irunner: thin script interface so users don't have to
677 find the module and call it as an executable, since modules rarely
682 find the module and call it as an executable, since modules rarely
678 live in people's PATH.
683 live in people's PATH.
679
684
680 * IPython/irunner.py (InteractiveRunner.__init__): added
685 * IPython/irunner.py (InteractiveRunner.__init__): added
681 delaybeforesend attribute to control delays with newer versions of
686 delaybeforesend attribute to control delays with newer versions of
682 pexpect. Thanks to detailed help from pexpect's author, Noah
687 pexpect. Thanks to detailed help from pexpect's author, Noah
683 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
688 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
684 correctly (it works in NoColor mode).
689 correctly (it works in NoColor mode).
685
690
686 * IPython/iplib.py (handle_normal): fix nasty crash reported on
691 * IPython/iplib.py (handle_normal): fix nasty crash reported on
687 SAGE list, from improper log() calls.
692 SAGE list, from improper log() calls.
688
693
689 2006-05-31 Ville Vainio <vivainio@gmail.com>
694 2006-05-31 Ville Vainio <vivainio@gmail.com>
690
695
691 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
696 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
692 with args in parens to work correctly with dirs that have spaces.
697 with args in parens to work correctly with dirs that have spaces.
693
698
694 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
699 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
695
700
696 * IPython/Logger.py (Logger.logstart): add option to log raw input
701 * IPython/Logger.py (Logger.logstart): add option to log raw input
697 instead of the processed one. A -r flag was added to the
702 instead of the processed one. A -r flag was added to the
698 %logstart magic used for controlling logging.
703 %logstart magic used for controlling logging.
699
704
700 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
705 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
701
706
702 * IPython/iplib.py (InteractiveShell.__init__): add check for the
707 * IPython/iplib.py (InteractiveShell.__init__): add check for the
703 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
708 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
704 recognize the option. After a bug report by Will Maier. This
709 recognize the option. After a bug report by Will Maier. This
705 closes #64 (will do it after confirmation from W. Maier).
710 closes #64 (will do it after confirmation from W. Maier).
706
711
707 * IPython/irunner.py: New module to run scripts as if manually
712 * IPython/irunner.py: New module to run scripts as if manually
708 typed into an interactive environment, based on pexpect. After a
713 typed into an interactive environment, based on pexpect. After a
709 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
714 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
710 ipython-user list. Simple unittests in the tests/ directory.
715 ipython-user list. Simple unittests in the tests/ directory.
711
716
712 * tools/release: add Will Maier, OpenBSD port maintainer, to
717 * tools/release: add Will Maier, OpenBSD port maintainer, to
713 recepients list. We are now officially part of the OpenBSD ports:
718 recepients list. We are now officially part of the OpenBSD ports:
714 http://www.openbsd.org/ports.html ! Many thanks to Will for the
719 http://www.openbsd.org/ports.html ! Many thanks to Will for the
715 work.
720 work.
716
721
717 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
722 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
718
723
719 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
724 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
720 so that it doesn't break tkinter apps.
725 so that it doesn't break tkinter apps.
721
726
722 * IPython/iplib.py (_prefilter): fix bug where aliases would
727 * IPython/iplib.py (_prefilter): fix bug where aliases would
723 shadow variables when autocall was fully off. Reported by SAGE
728 shadow variables when autocall was fully off. Reported by SAGE
724 author William Stein.
729 author William Stein.
725
730
726 * IPython/OInspect.py (Inspector.__init__): add a flag to control
731 * IPython/OInspect.py (Inspector.__init__): add a flag to control
727 at what detail level strings are computed when foo? is requested.
732 at what detail level strings are computed when foo? is requested.
728 This allows users to ask for example that the string form of an
733 This allows users to ask for example that the string form of an
729 object is only computed when foo?? is called, or even never, by
734 object is only computed when foo?? is called, or even never, by
730 setting the object_info_string_level >= 2 in the configuration
735 setting the object_info_string_level >= 2 in the configuration
731 file. This new option has been added and documented. After a
736 file. This new option has been added and documented. After a
732 request by SAGE to be able to control the printing of very large
737 request by SAGE to be able to control the printing of very large
733 objects more easily.
738 objects more easily.
734
739
735 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
740 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
736
741
737 * IPython/ipmaker.py (make_IPython): remove the ipython call path
742 * IPython/ipmaker.py (make_IPython): remove the ipython call path
738 from sys.argv, to be 100% consistent with how Python itself works
743 from sys.argv, to be 100% consistent with how Python itself works
739 (as seen for example with python -i file.py). After a bug report
744 (as seen for example with python -i file.py). After a bug report
740 by Jeffrey Collins.
745 by Jeffrey Collins.
741
746
742 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
747 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
743 nasty bug which was preventing custom namespaces with -pylab,
748 nasty bug which was preventing custom namespaces with -pylab,
744 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
749 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
745 compatibility (long gone from mpl).
750 compatibility (long gone from mpl).
746
751
747 * IPython/ipapi.py (make_session): name change: create->make. We
752 * IPython/ipapi.py (make_session): name change: create->make. We
748 use make in other places (ipmaker,...), it's shorter and easier to
753 use make in other places (ipmaker,...), it's shorter and easier to
749 type and say, etc. I'm trying to clean things before 0.7.2 so
754 type and say, etc. I'm trying to clean things before 0.7.2 so
750 that I can keep things stable wrt to ipapi in the chainsaw branch.
755 that I can keep things stable wrt to ipapi in the chainsaw branch.
751
756
752 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
757 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
753 python-mode recognizes our debugger mode. Add support for
758 python-mode recognizes our debugger mode. Add support for
754 autoindent inside (X)emacs. After a patch sent in by Jin Liu
759 autoindent inside (X)emacs. After a patch sent in by Jin Liu
755 <m.liu.jin-AT-gmail.com> originally written by
760 <m.liu.jin-AT-gmail.com> originally written by
756 doxgen-AT-newsmth.net (with minor modifications for xemacs
761 doxgen-AT-newsmth.net (with minor modifications for xemacs
757 compatibility)
762 compatibility)
758
763
759 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
764 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
760 tracebacks when walking the stack so that the stack tracking system
765 tracebacks when walking the stack so that the stack tracking system
761 in emacs' python-mode can identify the frames correctly.
766 in emacs' python-mode can identify the frames correctly.
762
767
763 * IPython/ipmaker.py (make_IPython): make the internal (and
768 * IPython/ipmaker.py (make_IPython): make the internal (and
764 default config) autoedit_syntax value false by default. Too many
769 default config) autoedit_syntax value false by default. Too many
765 users have complained to me (both on and off-list) about problems
770 users have complained to me (both on and off-list) about problems
766 with this option being on by default, so I'm making it default to
771 with this option being on by default, so I'm making it default to
767 off. It can still be enabled by anyone via the usual mechanisms.
772 off. It can still be enabled by anyone via the usual mechanisms.
768
773
769 * IPython/completer.py (Completer.attr_matches): add support for
774 * IPython/completer.py (Completer.attr_matches): add support for
770 PyCrust-style _getAttributeNames magic method. Patch contributed
775 PyCrust-style _getAttributeNames magic method. Patch contributed
771 by <mscott-AT-goldenspud.com>. Closes #50.
776 by <mscott-AT-goldenspud.com>. Closes #50.
772
777
773 * IPython/iplib.py (InteractiveShell.__init__): remove the
778 * IPython/iplib.py (InteractiveShell.__init__): remove the
774 deletion of exit/quit from __builtin__, which can break
779 deletion of exit/quit from __builtin__, which can break
775 third-party tools like the Zope debugging console. The
780 third-party tools like the Zope debugging console. The
776 %exit/%quit magics remain. In general, it's probably a good idea
781 %exit/%quit magics remain. In general, it's probably a good idea
777 not to delete anything from __builtin__, since we never know what
782 not to delete anything from __builtin__, since we never know what
778 that will break. In any case, python now (for 2.5) will support
783 that will break. In any case, python now (for 2.5) will support
779 'real' exit/quit, so this issue is moot. Closes #55.
784 'real' exit/quit, so this issue is moot. Closes #55.
780
785
781 * IPython/genutils.py (with_obj): rename the 'with' function to
786 * IPython/genutils.py (with_obj): rename the 'with' function to
782 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
787 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
783 becomes a language keyword. Closes #53.
788 becomes a language keyword. Closes #53.
784
789
785 * IPython/FakeModule.py (FakeModule.__init__): add a proper
790 * IPython/FakeModule.py (FakeModule.__init__): add a proper
786 __file__ attribute to this so it fools more things into thinking
791 __file__ attribute to this so it fools more things into thinking
787 it is a real module. Closes #59.
792 it is a real module. Closes #59.
788
793
789 * IPython/Magic.py (magic_edit): add -n option to open the editor
794 * IPython/Magic.py (magic_edit): add -n option to open the editor
790 at a specific line number. After a patch by Stefan van der Walt.
795 at a specific line number. After a patch by Stefan van der Walt.
791
796
792 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
797 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
793
798
794 * IPython/iplib.py (edit_syntax_error): fix crash when for some
799 * IPython/iplib.py (edit_syntax_error): fix crash when for some
795 reason the file could not be opened. After automatic crash
800 reason the file could not be opened. After automatic crash
796 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
801 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
797 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
802 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
798 (_should_recompile): Don't fire editor if using %bg, since there
803 (_should_recompile): Don't fire editor if using %bg, since there
799 is no file in the first place. From the same report as above.
804 is no file in the first place. From the same report as above.
800 (raw_input): protect against faulty third-party prefilters. After
805 (raw_input): protect against faulty third-party prefilters. After
801 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
806 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
802 while running under SAGE.
807 while running under SAGE.
803
808
804 2006-05-23 Ville Vainio <vivainio@gmail.com>
809 2006-05-23 Ville Vainio <vivainio@gmail.com>
805
810
806 * ipapi.py: Stripped down ip.to_user_ns() to work only as
811 * ipapi.py: Stripped down ip.to_user_ns() to work only as
807 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
812 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
808 now returns None (again), unless dummy is specifically allowed by
813 now returns None (again), unless dummy is specifically allowed by
809 ipapi.get(allow_dummy=True).
814 ipapi.get(allow_dummy=True).
810
815
811 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
816 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
812
817
813 * IPython: remove all 2.2-compatibility objects and hacks from
818 * IPython: remove all 2.2-compatibility objects and hacks from
814 everywhere, since we only support 2.3 at this point. Docs
819 everywhere, since we only support 2.3 at this point. Docs
815 updated.
820 updated.
816
821
817 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
822 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
818 Anything requiring extra validation can be turned into a Python
823 Anything requiring extra validation can be turned into a Python
819 property in the future. I used a property for the db one b/c
824 property in the future. I used a property for the db one b/c
820 there was a nasty circularity problem with the initialization
825 there was a nasty circularity problem with the initialization
821 order, which right now I don't have time to clean up.
826 order, which right now I don't have time to clean up.
822
827
823 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
828 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
824 another locking bug reported by Jorgen. I'm not 100% sure though,
829 another locking bug reported by Jorgen. I'm not 100% sure though,
825 so more testing is needed...
830 so more testing is needed...
826
831
827 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
832 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
828
833
829 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
834 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
830 local variables from any routine in user code (typically executed
835 local variables from any routine in user code (typically executed
831 with %run) directly into the interactive namespace. Very useful
836 with %run) directly into the interactive namespace. Very useful
832 when doing complex debugging.
837 when doing complex debugging.
833 (IPythonNotRunning): Changed the default None object to a dummy
838 (IPythonNotRunning): Changed the default None object to a dummy
834 whose attributes can be queried as well as called without
839 whose attributes can be queried as well as called without
835 exploding, to ease writing code which works transparently both in
840 exploding, to ease writing code which works transparently both in
836 and out of ipython and uses some of this API.
841 and out of ipython and uses some of this API.
837
842
838 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
843 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
839
844
840 * IPython/hooks.py (result_display): Fix the fact that our display
845 * IPython/hooks.py (result_display): Fix the fact that our display
841 hook was using str() instead of repr(), as the default python
846 hook was using str() instead of repr(), as the default python
842 console does. This had gone unnoticed b/c it only happened if
847 console does. This had gone unnoticed b/c it only happened if
843 %Pprint was off, but the inconsistency was there.
848 %Pprint was off, but the inconsistency was there.
844
849
845 2006-05-15 Ville Vainio <vivainio@gmail.com>
850 2006-05-15 Ville Vainio <vivainio@gmail.com>
846
851
847 * Oinspect.py: Only show docstring for nonexisting/binary files
852 * Oinspect.py: Only show docstring for nonexisting/binary files
848 when doing object??, closing ticket #62
853 when doing object??, closing ticket #62
849
854
850 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
855 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
851
856
852 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
857 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
853 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
858 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
854 was being released in a routine which hadn't checked if it had
859 was being released in a routine which hadn't checked if it had
855 been the one to acquire it.
860 been the one to acquire it.
856
861
857 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
862 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
858
863
859 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
864 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
860
865
861 2006-04-11 Ville Vainio <vivainio@gmail.com>
866 2006-04-11 Ville Vainio <vivainio@gmail.com>
862
867
863 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
868 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
864 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
869 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
865 prefilters, allowing stuff like magics and aliases in the file.
870 prefilters, allowing stuff like magics and aliases in the file.
866
871
867 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
872 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
868 added. Supported now are "%clear in" and "%clear out" (clear input and
873 added. Supported now are "%clear in" and "%clear out" (clear input and
869 output history, respectively). Also fixed CachedOutput.flush to
874 output history, respectively). Also fixed CachedOutput.flush to
870 properly flush the output cache.
875 properly flush the output cache.
871
876
872 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
877 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
873 half-success (and fail explicitly).
878 half-success (and fail explicitly).
874
879
875 2006-03-28 Ville Vainio <vivainio@gmail.com>
880 2006-03-28 Ville Vainio <vivainio@gmail.com>
876
881
877 * iplib.py: Fix quoting of aliases so that only argless ones
882 * iplib.py: Fix quoting of aliases so that only argless ones
878 are quoted
883 are quoted
879
884
880 2006-03-28 Ville Vainio <vivainio@gmail.com>
885 2006-03-28 Ville Vainio <vivainio@gmail.com>
881
886
882 * iplib.py: Quote aliases with spaces in the name.
887 * iplib.py: Quote aliases with spaces in the name.
883 "c:\program files\blah\bin" is now legal alias target.
888 "c:\program files\blah\bin" is now legal alias target.
884
889
885 * ext_rehashdir.py: Space no longer allowed as arg
890 * ext_rehashdir.py: Space no longer allowed as arg
886 separator, since space is legal in path names.
891 separator, since space is legal in path names.
887
892
888 2006-03-16 Ville Vainio <vivainio@gmail.com>
893 2006-03-16 Ville Vainio <vivainio@gmail.com>
889
894
890 * upgrade_dir.py: Take path.py from Extensions, correcting
895 * upgrade_dir.py: Take path.py from Extensions, correcting
891 %upgrade magic
896 %upgrade magic
892
897
893 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
898 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
894
899
895 * hooks.py: Only enclose editor binary in quotes if legal and
900 * hooks.py: Only enclose editor binary in quotes if legal and
896 necessary (space in the name, and is an existing file). Fixes a bug
901 necessary (space in the name, and is an existing file). Fixes a bug
897 reported by Zachary Pincus.
902 reported by Zachary Pincus.
898
903
899 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
904 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
900
905
901 * Manual: thanks to a tip on proper color handling for Emacs, by
906 * Manual: thanks to a tip on proper color handling for Emacs, by
902 Eric J Haywiser <ejh1-AT-MIT.EDU>.
907 Eric J Haywiser <ejh1-AT-MIT.EDU>.
903
908
904 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
909 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
905 by applying the provided patch. Thanks to Liu Jin
910 by applying the provided patch. Thanks to Liu Jin
906 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
911 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
907 XEmacs/Linux, I'm trusting the submitter that it actually helps
912 XEmacs/Linux, I'm trusting the submitter that it actually helps
908 under win32/GNU Emacs. Will revisit if any problems are reported.
913 under win32/GNU Emacs. Will revisit if any problems are reported.
909
914
910 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
915 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
911
916
912 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
917 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
913 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
918 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
914
919
915 2006-03-12 Ville Vainio <vivainio@gmail.com>
920 2006-03-12 Ville Vainio <vivainio@gmail.com>
916
921
917 * Magic.py (magic_timeit): Added %timeit magic, contributed by
922 * Magic.py (magic_timeit): Added %timeit magic, contributed by
918 Torsten Marek.
923 Torsten Marek.
919
924
920 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
925 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
921
926
922 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
927 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
923 line ranges works again.
928 line ranges works again.
924
929
925 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
930 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
926
931
927 * IPython/iplib.py (showtraceback): add back sys.last_traceback
932 * IPython/iplib.py (showtraceback): add back sys.last_traceback
928 and friends, after a discussion with Zach Pincus on ipython-user.
933 and friends, after a discussion with Zach Pincus on ipython-user.
929 I'm not 100% sure, but after thinking about it quite a bit, it may
934 I'm not 100% sure, but after thinking about it quite a bit, it may
930 be OK. Testing with the multithreaded shells didn't reveal any
935 be OK. Testing with the multithreaded shells didn't reveal any
931 problems, but let's keep an eye out.
936 problems, but let's keep an eye out.
932
937
933 In the process, I fixed a few things which were calling
938 In the process, I fixed a few things which were calling
934 self.InteractiveTB() directly (like safe_execfile), which is a
939 self.InteractiveTB() directly (like safe_execfile), which is a
935 mistake: ALL exception reporting should be done by calling
940 mistake: ALL exception reporting should be done by calling
936 self.showtraceback(), which handles state and tab-completion and
941 self.showtraceback(), which handles state and tab-completion and
937 more.
942 more.
938
943
939 2006-03-01 Ville Vainio <vivainio@gmail.com>
944 2006-03-01 Ville Vainio <vivainio@gmail.com>
940
945
941 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
946 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
942 To use, do "from ipipe import *".
947 To use, do "from ipipe import *".
943
948
944 2006-02-24 Ville Vainio <vivainio@gmail.com>
949 2006-02-24 Ville Vainio <vivainio@gmail.com>
945
950
946 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
951 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
947 "cleanly" and safely than the older upgrade mechanism.
952 "cleanly" and safely than the older upgrade mechanism.
948
953
949 2006-02-21 Ville Vainio <vivainio@gmail.com>
954 2006-02-21 Ville Vainio <vivainio@gmail.com>
950
955
951 * Magic.py: %save works again.
956 * Magic.py: %save works again.
952
957
953 2006-02-15 Ville Vainio <vivainio@gmail.com>
958 2006-02-15 Ville Vainio <vivainio@gmail.com>
954
959
955 * Magic.py: %Pprint works again
960 * Magic.py: %Pprint works again
956
961
957 * Extensions/ipy_sane_defaults.py: Provide everything provided
962 * Extensions/ipy_sane_defaults.py: Provide everything provided
958 in default ipythonrc, to make it possible to have a completely empty
963 in default ipythonrc, to make it possible to have a completely empty
959 ipythonrc (and thus completely rc-file free configuration)
964 ipythonrc (and thus completely rc-file free configuration)
960
965
961 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
966 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
962
967
963 * IPython/hooks.py (editor): quote the call to the editor command,
968 * IPython/hooks.py (editor): quote the call to the editor command,
964 to allow commands with spaces in them. Problem noted by watching
969 to allow commands with spaces in them. Problem noted by watching
965 Ian Oswald's video about textpad under win32 at
970 Ian Oswald's video about textpad under win32 at
966 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
971 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
967
972
968 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
973 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
969 describing magics (we haven't used @ for a loong time).
974 describing magics (we haven't used @ for a loong time).
970
975
971 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
976 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
972 contributed by marienz to close
977 contributed by marienz to close
973 http://www.scipy.net/roundup/ipython/issue53.
978 http://www.scipy.net/roundup/ipython/issue53.
974
979
975 2006-02-10 Ville Vainio <vivainio@gmail.com>
980 2006-02-10 Ville Vainio <vivainio@gmail.com>
976
981
977 * genutils.py: getoutput now works in win32 too
982 * genutils.py: getoutput now works in win32 too
978
983
979 * completer.py: alias and magic completion only invoked
984 * completer.py: alias and magic completion only invoked
980 at the first "item" in the line, to avoid "cd %store"
985 at the first "item" in the line, to avoid "cd %store"
981 nonsense.
986 nonsense.
982
987
983 2006-02-09 Ville Vainio <vivainio@gmail.com>
988 2006-02-09 Ville Vainio <vivainio@gmail.com>
984
989
985 * test/*: Added a unit testing framework (finally).
990 * test/*: Added a unit testing framework (finally).
986 '%run runtests.py' to run test_*.
991 '%run runtests.py' to run test_*.
987
992
988 * ipapi.py: Exposed runlines and set_custom_exc
993 * ipapi.py: Exposed runlines and set_custom_exc
989
994
990 2006-02-07 Ville Vainio <vivainio@gmail.com>
995 2006-02-07 Ville Vainio <vivainio@gmail.com>
991
996
992 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
997 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
993 instead use "f(1 2)" as before.
998 instead use "f(1 2)" as before.
994
999
995 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1000 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
996
1001
997 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1002 * IPython/demo.py (IPythonDemo): Add new classes to the demo
998 facilities, for demos processed by the IPython input filter
1003 facilities, for demos processed by the IPython input filter
999 (IPythonDemo), and for running a script one-line-at-a-time as a
1004 (IPythonDemo), and for running a script one-line-at-a-time as a
1000 demo, both for pure Python (LineDemo) and for IPython-processed
1005 demo, both for pure Python (LineDemo) and for IPython-processed
1001 input (IPythonLineDemo). After a request by Dave Kohel, from the
1006 input (IPythonLineDemo). After a request by Dave Kohel, from the
1002 SAGE team.
1007 SAGE team.
1003 (Demo.edit): added an edit() method to the demo objects, to edit
1008 (Demo.edit): added an edit() method to the demo objects, to edit
1004 the in-memory copy of the last executed block.
1009 the in-memory copy of the last executed block.
1005
1010
1006 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1011 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1007 processing to %edit, %macro and %save. These commands can now be
1012 processing to %edit, %macro and %save. These commands can now be
1008 invoked on the unprocessed input as it was typed by the user
1013 invoked on the unprocessed input as it was typed by the user
1009 (without any prefilters applied). After requests by the SAGE team
1014 (without any prefilters applied). After requests by the SAGE team
1010 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1015 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1011
1016
1012 2006-02-01 Ville Vainio <vivainio@gmail.com>
1017 2006-02-01 Ville Vainio <vivainio@gmail.com>
1013
1018
1014 * setup.py, eggsetup.py: easy_install ipython==dev works
1019 * setup.py, eggsetup.py: easy_install ipython==dev works
1015 correctly now (on Linux)
1020 correctly now (on Linux)
1016
1021
1017 * ipy_user_conf,ipmaker: user config changes, removed spurious
1022 * ipy_user_conf,ipmaker: user config changes, removed spurious
1018 warnings
1023 warnings
1019
1024
1020 * iplib: if rc.banner is string, use it as is.
1025 * iplib: if rc.banner is string, use it as is.
1021
1026
1022 * Magic: %pycat accepts a string argument and pages it's contents.
1027 * Magic: %pycat accepts a string argument and pages it's contents.
1023
1028
1024
1029
1025 2006-01-30 Ville Vainio <vivainio@gmail.com>
1030 2006-01-30 Ville Vainio <vivainio@gmail.com>
1026
1031
1027 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1032 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1028 Now %store and bookmarks work through PickleShare, meaning that
1033 Now %store and bookmarks work through PickleShare, meaning that
1029 concurrent access is possible and all ipython sessions see the
1034 concurrent access is possible and all ipython sessions see the
1030 same database situation all the time, instead of snapshot of
1035 same database situation all the time, instead of snapshot of
1031 the situation when the session was started. Hence, %bookmark
1036 the situation when the session was started. Hence, %bookmark
1032 results are immediately accessible from othes sessions. The database
1037 results are immediately accessible from othes sessions. The database
1033 is also available for use by user extensions. See:
1038 is also available for use by user extensions. See:
1034 http://www.python.org/pypi/pickleshare
1039 http://www.python.org/pypi/pickleshare
1035
1040
1036 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1041 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1037
1042
1038 * aliases can now be %store'd
1043 * aliases can now be %store'd
1039
1044
1040 * path.py moved to Extensions so that pickleshare does not need
1045 * path.py moved to Extensions so that pickleshare does not need
1041 IPython-specific import. Extensions added to pythonpath right
1046 IPython-specific import. Extensions added to pythonpath right
1042 at __init__.
1047 at __init__.
1043
1048
1044 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1049 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1045 called with _ip.system and the pre-transformed command string.
1050 called with _ip.system and the pre-transformed command string.
1046
1051
1047 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1052 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1048
1053
1049 * IPython/iplib.py (interact): Fix that we were not catching
1054 * IPython/iplib.py (interact): Fix that we were not catching
1050 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1055 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1051 logic here had to change, but it's fixed now.
1056 logic here had to change, but it's fixed now.
1052
1057
1053 2006-01-29 Ville Vainio <vivainio@gmail.com>
1058 2006-01-29 Ville Vainio <vivainio@gmail.com>
1054
1059
1055 * iplib.py: Try to import pyreadline on Windows.
1060 * iplib.py: Try to import pyreadline on Windows.
1056
1061
1057 2006-01-27 Ville Vainio <vivainio@gmail.com>
1062 2006-01-27 Ville Vainio <vivainio@gmail.com>
1058
1063
1059 * iplib.py: Expose ipapi as _ip in builtin namespace.
1064 * iplib.py: Expose ipapi as _ip in builtin namespace.
1060 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1065 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1061 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1066 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1062 syntax now produce _ip.* variant of the commands.
1067 syntax now produce _ip.* variant of the commands.
1063
1068
1064 * "_ip.options().autoedit_syntax = 2" automatically throws
1069 * "_ip.options().autoedit_syntax = 2" automatically throws
1065 user to editor for syntax error correction without prompting.
1070 user to editor for syntax error correction without prompting.
1066
1071
1067 2006-01-27 Ville Vainio <vivainio@gmail.com>
1072 2006-01-27 Ville Vainio <vivainio@gmail.com>
1068
1073
1069 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1074 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1070 'ipython' at argv[0]) executed through command line.
1075 'ipython' at argv[0]) executed through command line.
1071 NOTE: this DEPRECATES calling ipython with multiple scripts
1076 NOTE: this DEPRECATES calling ipython with multiple scripts
1072 ("ipython a.py b.py c.py")
1077 ("ipython a.py b.py c.py")
1073
1078
1074 * iplib.py, hooks.py: Added configurable input prefilter,
1079 * iplib.py, hooks.py: Added configurable input prefilter,
1075 named 'input_prefilter'. See ext_rescapture.py for example
1080 named 'input_prefilter'. See ext_rescapture.py for example
1076 usage.
1081 usage.
1077
1082
1078 * ext_rescapture.py, Magic.py: Better system command output capture
1083 * ext_rescapture.py, Magic.py: Better system command output capture
1079 through 'var = !ls' (deprecates user-visible %sc). Same notation
1084 through 'var = !ls' (deprecates user-visible %sc). Same notation
1080 applies for magics, 'var = %alias' assigns alias list to var.
1085 applies for magics, 'var = %alias' assigns alias list to var.
1081
1086
1082 * ipapi.py: added meta() for accessing extension-usable data store.
1087 * ipapi.py: added meta() for accessing extension-usable data store.
1083
1088
1084 * iplib.py: added InteractiveShell.getapi(). New magics should be
1089 * iplib.py: added InteractiveShell.getapi(). New magics should be
1085 written doing self.getapi() instead of using the shell directly.
1090 written doing self.getapi() instead of using the shell directly.
1086
1091
1087 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1092 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1088 %store foo >> ~/myfoo.txt to store variables to files (in clean
1093 %store foo >> ~/myfoo.txt to store variables to files (in clean
1089 textual form, not a restorable pickle).
1094 textual form, not a restorable pickle).
1090
1095
1091 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1096 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1092
1097
1093 * usage.py, Magic.py: added %quickref
1098 * usage.py, Magic.py: added %quickref
1094
1099
1095 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1100 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1096
1101
1097 * GetoptErrors when invoking magics etc. with wrong args
1102 * GetoptErrors when invoking magics etc. with wrong args
1098 are now more helpful:
1103 are now more helpful:
1099 GetoptError: option -l not recognized (allowed: "qb" )
1104 GetoptError: option -l not recognized (allowed: "qb" )
1100
1105
1101 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1106 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1102
1107
1103 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1108 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1104 computationally intensive blocks don't appear to stall the demo.
1109 computationally intensive blocks don't appear to stall the demo.
1105
1110
1106 2006-01-24 Ville Vainio <vivainio@gmail.com>
1111 2006-01-24 Ville Vainio <vivainio@gmail.com>
1107
1112
1108 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1113 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1109 value to manipulate resulting history entry.
1114 value to manipulate resulting history entry.
1110
1115
1111 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1116 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1112 to instance methods of IPApi class, to make extending an embedded
1117 to instance methods of IPApi class, to make extending an embedded
1113 IPython feasible. See ext_rehashdir.py for example usage.
1118 IPython feasible. See ext_rehashdir.py for example usage.
1114
1119
1115 * Merged 1071-1076 from branches/0.7.1
1120 * Merged 1071-1076 from branches/0.7.1
1116
1121
1117
1122
1118 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1123 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1119
1124
1120 * tools/release (daystamp): Fix build tools to use the new
1125 * tools/release (daystamp): Fix build tools to use the new
1121 eggsetup.py script to build lightweight eggs.
1126 eggsetup.py script to build lightweight eggs.
1122
1127
1123 * Applied changesets 1062 and 1064 before 0.7.1 release.
1128 * Applied changesets 1062 and 1064 before 0.7.1 release.
1124
1129
1125 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1130 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1126 see the raw input history (without conversions like %ls ->
1131 see the raw input history (without conversions like %ls ->
1127 ipmagic("ls")). After a request from W. Stein, SAGE
1132 ipmagic("ls")). After a request from W. Stein, SAGE
1128 (http://modular.ucsd.edu/sage) developer. This information is
1133 (http://modular.ucsd.edu/sage) developer. This information is
1129 stored in the input_hist_raw attribute of the IPython instance, so
1134 stored in the input_hist_raw attribute of the IPython instance, so
1130 developers can access it if needed (it's an InputList instance).
1135 developers can access it if needed (it's an InputList instance).
1131
1136
1132 * Versionstring = 0.7.2.svn
1137 * Versionstring = 0.7.2.svn
1133
1138
1134 * eggsetup.py: A separate script for constructing eggs, creates
1139 * eggsetup.py: A separate script for constructing eggs, creates
1135 proper launch scripts even on Windows (an .exe file in
1140 proper launch scripts even on Windows (an .exe file in
1136 \python24\scripts).
1141 \python24\scripts).
1137
1142
1138 * ipapi.py: launch_new_instance, launch entry point needed for the
1143 * ipapi.py: launch_new_instance, launch entry point needed for the
1139 egg.
1144 egg.
1140
1145
1141 2006-01-23 Ville Vainio <vivainio@gmail.com>
1146 2006-01-23 Ville Vainio <vivainio@gmail.com>
1142
1147
1143 * Added %cpaste magic for pasting python code
1148 * Added %cpaste magic for pasting python code
1144
1149
1145 2006-01-22 Ville Vainio <vivainio@gmail.com>
1150 2006-01-22 Ville Vainio <vivainio@gmail.com>
1146
1151
1147 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1152 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1148
1153
1149 * Versionstring = 0.7.2.svn
1154 * Versionstring = 0.7.2.svn
1150
1155
1151 * eggsetup.py: A separate script for constructing eggs, creates
1156 * eggsetup.py: A separate script for constructing eggs, creates
1152 proper launch scripts even on Windows (an .exe file in
1157 proper launch scripts even on Windows (an .exe file in
1153 \python24\scripts).
1158 \python24\scripts).
1154
1159
1155 * ipapi.py: launch_new_instance, launch entry point needed for the
1160 * ipapi.py: launch_new_instance, launch entry point needed for the
1156 egg.
1161 egg.
1157
1162
1158 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1163 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1159
1164
1160 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1165 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1161 %pfile foo would print the file for foo even if it was a binary.
1166 %pfile foo would print the file for foo even if it was a binary.
1162 Now, extensions '.so' and '.dll' are skipped.
1167 Now, extensions '.so' and '.dll' are skipped.
1163
1168
1164 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1169 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1165 bug, where macros would fail in all threaded modes. I'm not 100%
1170 bug, where macros would fail in all threaded modes. I'm not 100%
1166 sure, so I'm going to put out an rc instead of making a release
1171 sure, so I'm going to put out an rc instead of making a release
1167 today, and wait for feedback for at least a few days.
1172 today, and wait for feedback for at least a few days.
1168
1173
1169 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1174 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1170 it...) the handling of pasting external code with autoindent on.
1175 it...) the handling of pasting external code with autoindent on.
1171 To get out of a multiline input, the rule will appear for most
1176 To get out of a multiline input, the rule will appear for most
1172 users unchanged: two blank lines or change the indent level
1177 users unchanged: two blank lines or change the indent level
1173 proposed by IPython. But there is a twist now: you can
1178 proposed by IPython. But there is a twist now: you can
1174 add/subtract only *one or two spaces*. If you add/subtract three
1179 add/subtract only *one or two spaces*. If you add/subtract three
1175 or more (unless you completely delete the line), IPython will
1180 or more (unless you completely delete the line), IPython will
1176 accept that line, and you'll need to enter a second one of pure
1181 accept that line, and you'll need to enter a second one of pure
1177 whitespace. I know it sounds complicated, but I can't find a
1182 whitespace. I know it sounds complicated, but I can't find a
1178 different solution that covers all the cases, with the right
1183 different solution that covers all the cases, with the right
1179 heuristics. Hopefully in actual use, nobody will really notice
1184 heuristics. Hopefully in actual use, nobody will really notice
1180 all these strange rules and things will 'just work'.
1185 all these strange rules and things will 'just work'.
1181
1186
1182 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1187 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1183
1188
1184 * IPython/iplib.py (interact): catch exceptions which can be
1189 * IPython/iplib.py (interact): catch exceptions which can be
1185 triggered asynchronously by signal handlers. Thanks to an
1190 triggered asynchronously by signal handlers. Thanks to an
1186 automatic crash report, submitted by Colin Kingsley
1191 automatic crash report, submitted by Colin Kingsley
1187 <tercel-AT-gentoo.org>.
1192 <tercel-AT-gentoo.org>.
1188
1193
1189 2006-01-20 Ville Vainio <vivainio@gmail.com>
1194 2006-01-20 Ville Vainio <vivainio@gmail.com>
1190
1195
1191 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1196 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1192 (%rehashdir, very useful, try it out) of how to extend ipython
1197 (%rehashdir, very useful, try it out) of how to extend ipython
1193 with new magics. Also added Extensions dir to pythonpath to make
1198 with new magics. Also added Extensions dir to pythonpath to make
1194 importing extensions easy.
1199 importing extensions easy.
1195
1200
1196 * %store now complains when trying to store interactively declared
1201 * %store now complains when trying to store interactively declared
1197 classes / instances of those classes.
1202 classes / instances of those classes.
1198
1203
1199 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1204 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1200 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1205 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1201 if they exist, and ipy_user_conf.py with some defaults is created for
1206 if they exist, and ipy_user_conf.py with some defaults is created for
1202 the user.
1207 the user.
1203
1208
1204 * Startup rehashing done by the config file, not InterpreterExec.
1209 * Startup rehashing done by the config file, not InterpreterExec.
1205 This means system commands are available even without selecting the
1210 This means system commands are available even without selecting the
1206 pysh profile. It's the sensible default after all.
1211 pysh profile. It's the sensible default after all.
1207
1212
1208 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1213 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1209
1214
1210 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1215 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1211 multiline code with autoindent on working. But I am really not
1216 multiline code with autoindent on working. But I am really not
1212 sure, so this needs more testing. Will commit a debug-enabled
1217 sure, so this needs more testing. Will commit a debug-enabled
1213 version for now, while I test it some more, so that Ville and
1218 version for now, while I test it some more, so that Ville and
1214 others may also catch any problems. Also made
1219 others may also catch any problems. Also made
1215 self.indent_current_str() a method, to ensure that there's no
1220 self.indent_current_str() a method, to ensure that there's no
1216 chance of the indent space count and the corresponding string
1221 chance of the indent space count and the corresponding string
1217 falling out of sync. All code needing the string should just call
1222 falling out of sync. All code needing the string should just call
1218 the method.
1223 the method.
1219
1224
1220 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1225 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1221
1226
1222 * IPython/Magic.py (magic_edit): fix check for when users don't
1227 * IPython/Magic.py (magic_edit): fix check for when users don't
1223 save their output files, the try/except was in the wrong section.
1228 save their output files, the try/except was in the wrong section.
1224
1229
1225 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1230 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1226
1231
1227 * IPython/Magic.py (magic_run): fix __file__ global missing from
1232 * IPython/Magic.py (magic_run): fix __file__ global missing from
1228 script's namespace when executed via %run. After a report by
1233 script's namespace when executed via %run. After a report by
1229 Vivian.
1234 Vivian.
1230
1235
1231 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1236 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1232 when using python 2.4. The parent constructor changed in 2.4, and
1237 when using python 2.4. The parent constructor changed in 2.4, and
1233 we need to track it directly (we can't call it, as it messes up
1238 we need to track it directly (we can't call it, as it messes up
1234 readline and tab-completion inside our pdb would stop working).
1239 readline and tab-completion inside our pdb would stop working).
1235 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1240 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1236
1241
1237 2006-01-16 Ville Vainio <vivainio@gmail.com>
1242 2006-01-16 Ville Vainio <vivainio@gmail.com>
1238
1243
1239 * Ipython/magic.py: Reverted back to old %edit functionality
1244 * Ipython/magic.py: Reverted back to old %edit functionality
1240 that returns file contents on exit.
1245 that returns file contents on exit.
1241
1246
1242 * IPython/path.py: Added Jason Orendorff's "path" module to
1247 * IPython/path.py: Added Jason Orendorff's "path" module to
1243 IPython tree, http://www.jorendorff.com/articles/python/path/.
1248 IPython tree, http://www.jorendorff.com/articles/python/path/.
1244 You can get path objects conveniently through %sc, and !!, e.g.:
1249 You can get path objects conveniently through %sc, and !!, e.g.:
1245 sc files=ls
1250 sc files=ls
1246 for p in files.paths: # or files.p
1251 for p in files.paths: # or files.p
1247 print p,p.mtime
1252 print p,p.mtime
1248
1253
1249 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1254 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1250 now work again without considering the exclusion regexp -
1255 now work again without considering the exclusion regexp -
1251 hence, things like ',foo my/path' turn to 'foo("my/path")'
1256 hence, things like ',foo my/path' turn to 'foo("my/path")'
1252 instead of syntax error.
1257 instead of syntax error.
1253
1258
1254
1259
1255 2006-01-14 Ville Vainio <vivainio@gmail.com>
1260 2006-01-14 Ville Vainio <vivainio@gmail.com>
1256
1261
1257 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1262 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1258 ipapi decorators for python 2.4 users, options() provides access to rc
1263 ipapi decorators for python 2.4 users, options() provides access to rc
1259 data.
1264 data.
1260
1265
1261 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1266 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1262 as path separators (even on Linux ;-). Space character after
1267 as path separators (even on Linux ;-). Space character after
1263 backslash (as yielded by tab completer) is still space;
1268 backslash (as yielded by tab completer) is still space;
1264 "%cd long\ name" works as expected.
1269 "%cd long\ name" works as expected.
1265
1270
1266 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1271 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1267 as "chain of command", with priority. API stays the same,
1272 as "chain of command", with priority. API stays the same,
1268 TryNext exception raised by a hook function signals that
1273 TryNext exception raised by a hook function signals that
1269 current hook failed and next hook should try handling it, as
1274 current hook failed and next hook should try handling it, as
1270 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1275 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1271 requested configurable display hook, which is now implemented.
1276 requested configurable display hook, which is now implemented.
1272
1277
1273 2006-01-13 Ville Vainio <vivainio@gmail.com>
1278 2006-01-13 Ville Vainio <vivainio@gmail.com>
1274
1279
1275 * IPython/platutils*.py: platform specific utility functions,
1280 * IPython/platutils*.py: platform specific utility functions,
1276 so far only set_term_title is implemented (change terminal
1281 so far only set_term_title is implemented (change terminal
1277 label in windowing systems). %cd now changes the title to
1282 label in windowing systems). %cd now changes the title to
1278 current dir.
1283 current dir.
1279
1284
1280 * IPython/Release.py: Added myself to "authors" list,
1285 * IPython/Release.py: Added myself to "authors" list,
1281 had to create new files.
1286 had to create new files.
1282
1287
1283 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1288 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1284 shell escape; not a known bug but had potential to be one in the
1289 shell escape; not a known bug but had potential to be one in the
1285 future.
1290 future.
1286
1291
1287 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1292 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1288 extension API for IPython! See the module for usage example. Fix
1293 extension API for IPython! See the module for usage example. Fix
1289 OInspect for docstring-less magic functions.
1294 OInspect for docstring-less magic functions.
1290
1295
1291
1296
1292 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1297 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1293
1298
1294 * IPython/iplib.py (raw_input): temporarily deactivate all
1299 * IPython/iplib.py (raw_input): temporarily deactivate all
1295 attempts at allowing pasting of code with autoindent on. It
1300 attempts at allowing pasting of code with autoindent on. It
1296 introduced bugs (reported by Prabhu) and I can't seem to find a
1301 introduced bugs (reported by Prabhu) and I can't seem to find a
1297 robust combination which works in all cases. Will have to revisit
1302 robust combination which works in all cases. Will have to revisit
1298 later.
1303 later.
1299
1304
1300 * IPython/genutils.py: remove isspace() function. We've dropped
1305 * IPython/genutils.py: remove isspace() function. We've dropped
1301 2.2 compatibility, so it's OK to use the string method.
1306 2.2 compatibility, so it's OK to use the string method.
1302
1307
1303 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1308 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1304
1309
1305 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1310 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1306 matching what NOT to autocall on, to include all python binary
1311 matching what NOT to autocall on, to include all python binary
1307 operators (including things like 'and', 'or', 'is' and 'in').
1312 operators (including things like 'and', 'or', 'is' and 'in').
1308 Prompted by a bug report on 'foo & bar', but I realized we had
1313 Prompted by a bug report on 'foo & bar', but I realized we had
1309 many more potential bug cases with other operators. The regexp is
1314 many more potential bug cases with other operators. The regexp is
1310 self.re_exclude_auto, it's fairly commented.
1315 self.re_exclude_auto, it's fairly commented.
1311
1316
1312 2006-01-12 Ville Vainio <vivainio@gmail.com>
1317 2006-01-12 Ville Vainio <vivainio@gmail.com>
1313
1318
1314 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1319 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1315 Prettified and hardened string/backslash quoting with ipsystem(),
1320 Prettified and hardened string/backslash quoting with ipsystem(),
1316 ipalias() and ipmagic(). Now even \ characters are passed to
1321 ipalias() and ipmagic(). Now even \ characters are passed to
1317 %magics, !shell escapes and aliases exactly as they are in the
1322 %magics, !shell escapes and aliases exactly as they are in the
1318 ipython command line. Should improve backslash experience,
1323 ipython command line. Should improve backslash experience,
1319 particularly in Windows (path delimiter for some commands that
1324 particularly in Windows (path delimiter for some commands that
1320 won't understand '/'), but Unix benefits as well (regexps). %cd
1325 won't understand '/'), but Unix benefits as well (regexps). %cd
1321 magic still doesn't support backslash path delimiters, though. Also
1326 magic still doesn't support backslash path delimiters, though. Also
1322 deleted all pretense of supporting multiline command strings in
1327 deleted all pretense of supporting multiline command strings in
1323 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1328 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1324
1329
1325 * doc/build_doc_instructions.txt added. Documentation on how to
1330 * doc/build_doc_instructions.txt added. Documentation on how to
1326 use doc/update_manual.py, added yesterday. Both files contributed
1331 use doc/update_manual.py, added yesterday. Both files contributed
1327 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1332 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1328 doc/*.sh for deprecation at a later date.
1333 doc/*.sh for deprecation at a later date.
1329
1334
1330 * /ipython.py Added ipython.py to root directory for
1335 * /ipython.py Added ipython.py to root directory for
1331 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1336 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1332 ipython.py) and development convenience (no need to keep doing
1337 ipython.py) and development convenience (no need to keep doing
1333 "setup.py install" between changes).
1338 "setup.py install" between changes).
1334
1339
1335 * Made ! and !! shell escapes work (again) in multiline expressions:
1340 * Made ! and !! shell escapes work (again) in multiline expressions:
1336 if 1:
1341 if 1:
1337 !ls
1342 !ls
1338 !!ls
1343 !!ls
1339
1344
1340 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1345 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1341
1346
1342 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1347 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1343 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1348 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1344 module in case-insensitive installation. Was causing crashes
1349 module in case-insensitive installation. Was causing crashes
1345 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1350 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1346
1351
1347 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1352 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1348 <marienz-AT-gentoo.org>, closes
1353 <marienz-AT-gentoo.org>, closes
1349 http://www.scipy.net/roundup/ipython/issue51.
1354 http://www.scipy.net/roundup/ipython/issue51.
1350
1355
1351 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1356 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1352
1357
1353 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1358 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1354 problem of excessive CPU usage under *nix and keyboard lag under
1359 problem of excessive CPU usage under *nix and keyboard lag under
1355 win32.
1360 win32.
1356
1361
1357 2006-01-10 *** Released version 0.7.0
1362 2006-01-10 *** Released version 0.7.0
1358
1363
1359 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1364 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1360
1365
1361 * IPython/Release.py (revision): tag version number to 0.7.0,
1366 * IPython/Release.py (revision): tag version number to 0.7.0,
1362 ready for release.
1367 ready for release.
1363
1368
1364 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1369 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1365 it informs the user of the name of the temp. file used. This can
1370 it informs the user of the name of the temp. file used. This can
1366 help if you decide later to reuse that same file, so you know
1371 help if you decide later to reuse that same file, so you know
1367 where to copy the info from.
1372 where to copy the info from.
1368
1373
1369 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1374 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1370
1375
1371 * setup_bdist_egg.py: little script to build an egg. Added
1376 * setup_bdist_egg.py: little script to build an egg. Added
1372 support in the release tools as well.
1377 support in the release tools as well.
1373
1378
1374 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1379 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1375
1380
1376 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1381 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1377 version selection (new -wxversion command line and ipythonrc
1382 version selection (new -wxversion command line and ipythonrc
1378 parameter). Patch contributed by Arnd Baecker
1383 parameter). Patch contributed by Arnd Baecker
1379 <arnd.baecker-AT-web.de>.
1384 <arnd.baecker-AT-web.de>.
1380
1385
1381 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1386 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1382 embedded instances, for variables defined at the interactive
1387 embedded instances, for variables defined at the interactive
1383 prompt of the embedded ipython. Reported by Arnd.
1388 prompt of the embedded ipython. Reported by Arnd.
1384
1389
1385 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1390 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1386 it can be used as a (stateful) toggle, or with a direct parameter.
1391 it can be used as a (stateful) toggle, or with a direct parameter.
1387
1392
1388 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1393 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1389 could be triggered in certain cases and cause the traceback
1394 could be triggered in certain cases and cause the traceback
1390 printer not to work.
1395 printer not to work.
1391
1396
1392 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1397 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1393
1398
1394 * IPython/iplib.py (_should_recompile): Small fix, closes
1399 * IPython/iplib.py (_should_recompile): Small fix, closes
1395 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1400 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1396
1401
1397 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1402 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1398
1403
1399 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1404 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1400 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1405 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1401 Moad for help with tracking it down.
1406 Moad for help with tracking it down.
1402
1407
1403 * IPython/iplib.py (handle_auto): fix autocall handling for
1408 * IPython/iplib.py (handle_auto): fix autocall handling for
1404 objects which support BOTH __getitem__ and __call__ (so that f [x]
1409 objects which support BOTH __getitem__ and __call__ (so that f [x]
1405 is left alone, instead of becoming f([x]) automatically).
1410 is left alone, instead of becoming f([x]) automatically).
1406
1411
1407 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1412 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1408 Ville's patch.
1413 Ville's patch.
1409
1414
1410 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1415 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1411
1416
1412 * IPython/iplib.py (handle_auto): changed autocall semantics to
1417 * IPython/iplib.py (handle_auto): changed autocall semantics to
1413 include 'smart' mode, where the autocall transformation is NOT
1418 include 'smart' mode, where the autocall transformation is NOT
1414 applied if there are no arguments on the line. This allows you to
1419 applied if there are no arguments on the line. This allows you to
1415 just type 'foo' if foo is a callable to see its internal form,
1420 just type 'foo' if foo is a callable to see its internal form,
1416 instead of having it called with no arguments (typically a
1421 instead of having it called with no arguments (typically a
1417 mistake). The old 'full' autocall still exists: for that, you
1422 mistake). The old 'full' autocall still exists: for that, you
1418 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1423 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1419
1424
1420 * IPython/completer.py (Completer.attr_matches): add
1425 * IPython/completer.py (Completer.attr_matches): add
1421 tab-completion support for Enthoughts' traits. After a report by
1426 tab-completion support for Enthoughts' traits. After a report by
1422 Arnd and a patch by Prabhu.
1427 Arnd and a patch by Prabhu.
1423
1428
1424 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1429 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1425
1430
1426 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1431 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1427 Schmolck's patch to fix inspect.getinnerframes().
1432 Schmolck's patch to fix inspect.getinnerframes().
1428
1433
1429 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1434 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1430 for embedded instances, regarding handling of namespaces and items
1435 for embedded instances, regarding handling of namespaces and items
1431 added to the __builtin__ one. Multiple embedded instances and
1436 added to the __builtin__ one. Multiple embedded instances and
1432 recursive embeddings should work better now (though I'm not sure
1437 recursive embeddings should work better now (though I'm not sure
1433 I've got all the corner cases fixed, that code is a bit of a brain
1438 I've got all the corner cases fixed, that code is a bit of a brain
1434 twister).
1439 twister).
1435
1440
1436 * IPython/Magic.py (magic_edit): added support to edit in-memory
1441 * IPython/Magic.py (magic_edit): added support to edit in-memory
1437 macros (automatically creates the necessary temp files). %edit
1442 macros (automatically creates the necessary temp files). %edit
1438 also doesn't return the file contents anymore, it's just noise.
1443 also doesn't return the file contents anymore, it's just noise.
1439
1444
1440 * IPython/completer.py (Completer.attr_matches): revert change to
1445 * IPython/completer.py (Completer.attr_matches): revert change to
1441 complete only on attributes listed in __all__. I realized it
1446 complete only on attributes listed in __all__. I realized it
1442 cripples the tab-completion system as a tool for exploring the
1447 cripples the tab-completion system as a tool for exploring the
1443 internals of unknown libraries (it renders any non-__all__
1448 internals of unknown libraries (it renders any non-__all__
1444 attribute off-limits). I got bit by this when trying to see
1449 attribute off-limits). I got bit by this when trying to see
1445 something inside the dis module.
1450 something inside the dis module.
1446
1451
1447 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1452 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1448
1453
1449 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1454 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1450 namespace for users and extension writers to hold data in. This
1455 namespace for users and extension writers to hold data in. This
1451 follows the discussion in
1456 follows the discussion in
1452 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1457 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1453
1458
1454 * IPython/completer.py (IPCompleter.complete): small patch to help
1459 * IPython/completer.py (IPCompleter.complete): small patch to help
1455 tab-completion under Emacs, after a suggestion by John Barnard
1460 tab-completion under Emacs, after a suggestion by John Barnard
1456 <barnarj-AT-ccf.org>.
1461 <barnarj-AT-ccf.org>.
1457
1462
1458 * IPython/Magic.py (Magic.extract_input_slices): added support for
1463 * IPython/Magic.py (Magic.extract_input_slices): added support for
1459 the slice notation in magics to use N-M to represent numbers N...M
1464 the slice notation in magics to use N-M to represent numbers N...M
1460 (closed endpoints). This is used by %macro and %save.
1465 (closed endpoints). This is used by %macro and %save.
1461
1466
1462 * IPython/completer.py (Completer.attr_matches): for modules which
1467 * IPython/completer.py (Completer.attr_matches): for modules which
1463 define __all__, complete only on those. After a patch by Jeffrey
1468 define __all__, complete only on those. After a patch by Jeffrey
1464 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1469 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1465 speed up this routine.
1470 speed up this routine.
1466
1471
1467 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1472 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1468 don't know if this is the end of it, but the behavior now is
1473 don't know if this is the end of it, but the behavior now is
1469 certainly much more correct. Note that coupled with macros,
1474 certainly much more correct. Note that coupled with macros,
1470 slightly surprising (at first) behavior may occur: a macro will in
1475 slightly surprising (at first) behavior may occur: a macro will in
1471 general expand to multiple lines of input, so upon exiting, the
1476 general expand to multiple lines of input, so upon exiting, the
1472 in/out counters will both be bumped by the corresponding amount
1477 in/out counters will both be bumped by the corresponding amount
1473 (as if the macro's contents had been typed interactively). Typing
1478 (as if the macro's contents had been typed interactively). Typing
1474 %hist will reveal the intermediate (silently processed) lines.
1479 %hist will reveal the intermediate (silently processed) lines.
1475
1480
1476 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1481 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1477 pickle to fail (%run was overwriting __main__ and not restoring
1482 pickle to fail (%run was overwriting __main__ and not restoring
1478 it, but pickle relies on __main__ to operate).
1483 it, but pickle relies on __main__ to operate).
1479
1484
1480 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1485 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1481 using properties, but forgot to make the main InteractiveShell
1486 using properties, but forgot to make the main InteractiveShell
1482 class a new-style class. Properties fail silently, and
1487 class a new-style class. Properties fail silently, and
1483 mysteriously, with old-style class (getters work, but
1488 mysteriously, with old-style class (getters work, but
1484 setters don't do anything).
1489 setters don't do anything).
1485
1490
1486 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1491 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1487
1492
1488 * IPython/Magic.py (magic_history): fix history reporting bug (I
1493 * IPython/Magic.py (magic_history): fix history reporting bug (I
1489 know some nasties are still there, I just can't seem to find a
1494 know some nasties are still there, I just can't seem to find a
1490 reproducible test case to track them down; the input history is
1495 reproducible test case to track them down; the input history is
1491 falling out of sync...)
1496 falling out of sync...)
1492
1497
1493 * IPython/iplib.py (handle_shell_escape): fix bug where both
1498 * IPython/iplib.py (handle_shell_escape): fix bug where both
1494 aliases and system accesses where broken for indented code (such
1499 aliases and system accesses where broken for indented code (such
1495 as loops).
1500 as loops).
1496
1501
1497 * IPython/genutils.py (shell): fix small but critical bug for
1502 * IPython/genutils.py (shell): fix small but critical bug for
1498 win32 system access.
1503 win32 system access.
1499
1504
1500 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1505 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1501
1506
1502 * IPython/iplib.py (showtraceback): remove use of the
1507 * IPython/iplib.py (showtraceback): remove use of the
1503 sys.last_{type/value/traceback} structures, which are non
1508 sys.last_{type/value/traceback} structures, which are non
1504 thread-safe.
1509 thread-safe.
1505 (_prefilter): change control flow to ensure that we NEVER
1510 (_prefilter): change control flow to ensure that we NEVER
1506 introspect objects when autocall is off. This will guarantee that
1511 introspect objects when autocall is off. This will guarantee that
1507 having an input line of the form 'x.y', where access to attribute
1512 having an input line of the form 'x.y', where access to attribute
1508 'y' has side effects, doesn't trigger the side effect TWICE. It
1513 'y' has side effects, doesn't trigger the side effect TWICE. It
1509 is important to note that, with autocall on, these side effects
1514 is important to note that, with autocall on, these side effects
1510 can still happen.
1515 can still happen.
1511 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1516 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1512 trio. IPython offers these three kinds of special calls which are
1517 trio. IPython offers these three kinds of special calls which are
1513 not python code, and it's a good thing to have their call method
1518 not python code, and it's a good thing to have their call method
1514 be accessible as pure python functions (not just special syntax at
1519 be accessible as pure python functions (not just special syntax at
1515 the command line). It gives us a better internal implementation
1520 the command line). It gives us a better internal implementation
1516 structure, as well as exposing these for user scripting more
1521 structure, as well as exposing these for user scripting more
1517 cleanly.
1522 cleanly.
1518
1523
1519 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1524 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1520 file. Now that they'll be more likely to be used with the
1525 file. Now that they'll be more likely to be used with the
1521 persistance system (%store), I want to make sure their module path
1526 persistance system (%store), I want to make sure their module path
1522 doesn't change in the future, so that we don't break things for
1527 doesn't change in the future, so that we don't break things for
1523 users' persisted data.
1528 users' persisted data.
1524
1529
1525 * IPython/iplib.py (autoindent_update): move indentation
1530 * IPython/iplib.py (autoindent_update): move indentation
1526 management into the _text_ processing loop, not the keyboard
1531 management into the _text_ processing loop, not the keyboard
1527 interactive one. This is necessary to correctly process non-typed
1532 interactive one. This is necessary to correctly process non-typed
1528 multiline input (such as macros).
1533 multiline input (such as macros).
1529
1534
1530 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1535 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1531 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1536 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1532 which was producing problems in the resulting manual.
1537 which was producing problems in the resulting manual.
1533 (magic_whos): improve reporting of instances (show their class,
1538 (magic_whos): improve reporting of instances (show their class,
1534 instead of simply printing 'instance' which isn't terribly
1539 instead of simply printing 'instance' which isn't terribly
1535 informative).
1540 informative).
1536
1541
1537 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1542 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1538 (minor mods) to support network shares under win32.
1543 (minor mods) to support network shares under win32.
1539
1544
1540 * IPython/winconsole.py (get_console_size): add new winconsole
1545 * IPython/winconsole.py (get_console_size): add new winconsole
1541 module and fixes to page_dumb() to improve its behavior under
1546 module and fixes to page_dumb() to improve its behavior under
1542 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1547 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1543
1548
1544 * IPython/Magic.py (Macro): simplified Macro class to just
1549 * IPython/Magic.py (Macro): simplified Macro class to just
1545 subclass list. We've had only 2.2 compatibility for a very long
1550 subclass list. We've had only 2.2 compatibility for a very long
1546 time, yet I was still avoiding subclassing the builtin types. No
1551 time, yet I was still avoiding subclassing the builtin types. No
1547 more (I'm also starting to use properties, though I won't shift to
1552 more (I'm also starting to use properties, though I won't shift to
1548 2.3-specific features quite yet).
1553 2.3-specific features quite yet).
1549 (magic_store): added Ville's patch for lightweight variable
1554 (magic_store): added Ville's patch for lightweight variable
1550 persistence, after a request on the user list by Matt Wilkie
1555 persistence, after a request on the user list by Matt Wilkie
1551 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1556 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1552 details.
1557 details.
1553
1558
1554 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1559 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1555 changed the default logfile name from 'ipython.log' to
1560 changed the default logfile name from 'ipython.log' to
1556 'ipython_log.py'. These logs are real python files, and now that
1561 'ipython_log.py'. These logs are real python files, and now that
1557 we have much better multiline support, people are more likely to
1562 we have much better multiline support, people are more likely to
1558 want to use them as such. Might as well name them correctly.
1563 want to use them as such. Might as well name them correctly.
1559
1564
1560 * IPython/Magic.py: substantial cleanup. While we can't stop
1565 * IPython/Magic.py: substantial cleanup. While we can't stop
1561 using magics as mixins, due to the existing customizations 'out
1566 using magics as mixins, due to the existing customizations 'out
1562 there' which rely on the mixin naming conventions, at least I
1567 there' which rely on the mixin naming conventions, at least I
1563 cleaned out all cross-class name usage. So once we are OK with
1568 cleaned out all cross-class name usage. So once we are OK with
1564 breaking compatibility, the two systems can be separated.
1569 breaking compatibility, the two systems can be separated.
1565
1570
1566 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1571 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1567 anymore, and the class is a fair bit less hideous as well. New
1572 anymore, and the class is a fair bit less hideous as well. New
1568 features were also introduced: timestamping of input, and logging
1573 features were also introduced: timestamping of input, and logging
1569 of output results. These are user-visible with the -t and -o
1574 of output results. These are user-visible with the -t and -o
1570 options to %logstart. Closes
1575 options to %logstart. Closes
1571 http://www.scipy.net/roundup/ipython/issue11 and a request by
1576 http://www.scipy.net/roundup/ipython/issue11 and a request by
1572 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1577 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1573
1578
1574 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1579 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1575
1580
1576 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1581 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1577 better handle backslashes in paths. See the thread 'More Windows
1582 better handle backslashes in paths. See the thread 'More Windows
1578 questions part 2 - \/ characters revisited' on the iypthon user
1583 questions part 2 - \/ characters revisited' on the iypthon user
1579 list:
1584 list:
1580 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1585 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1581
1586
1582 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1587 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1583
1588
1584 (InteractiveShell.__init__): change threaded shells to not use the
1589 (InteractiveShell.__init__): change threaded shells to not use the
1585 ipython crash handler. This was causing more problems than not,
1590 ipython crash handler. This was causing more problems than not,
1586 as exceptions in the main thread (GUI code, typically) would
1591 as exceptions in the main thread (GUI code, typically) would
1587 always show up as a 'crash', when they really weren't.
1592 always show up as a 'crash', when they really weren't.
1588
1593
1589 The colors and exception mode commands (%colors/%xmode) have been
1594 The colors and exception mode commands (%colors/%xmode) have been
1590 synchronized to also take this into account, so users can get
1595 synchronized to also take this into account, so users can get
1591 verbose exceptions for their threaded code as well. I also added
1596 verbose exceptions for their threaded code as well. I also added
1592 support for activating pdb inside this exception handler as well,
1597 support for activating pdb inside this exception handler as well,
1593 so now GUI authors can use IPython's enhanced pdb at runtime.
1598 so now GUI authors can use IPython's enhanced pdb at runtime.
1594
1599
1595 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1600 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1596 true by default, and add it to the shipped ipythonrc file. Since
1601 true by default, and add it to the shipped ipythonrc file. Since
1597 this asks the user before proceeding, I think it's OK to make it
1602 this asks the user before proceeding, I think it's OK to make it
1598 true by default.
1603 true by default.
1599
1604
1600 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1605 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1601 of the previous special-casing of input in the eval loop. I think
1606 of the previous special-casing of input in the eval loop. I think
1602 this is cleaner, as they really are commands and shouldn't have
1607 this is cleaner, as they really are commands and shouldn't have
1603 a special role in the middle of the core code.
1608 a special role in the middle of the core code.
1604
1609
1605 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1610 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1606
1611
1607 * IPython/iplib.py (edit_syntax_error): added support for
1612 * IPython/iplib.py (edit_syntax_error): added support for
1608 automatically reopening the editor if the file had a syntax error
1613 automatically reopening the editor if the file had a syntax error
1609 in it. Thanks to scottt who provided the patch at:
1614 in it. Thanks to scottt who provided the patch at:
1610 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1615 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1611 version committed).
1616 version committed).
1612
1617
1613 * IPython/iplib.py (handle_normal): add suport for multi-line
1618 * IPython/iplib.py (handle_normal): add suport for multi-line
1614 input with emtpy lines. This fixes
1619 input with emtpy lines. This fixes
1615 http://www.scipy.net/roundup/ipython/issue43 and a similar
1620 http://www.scipy.net/roundup/ipython/issue43 and a similar
1616 discussion on the user list.
1621 discussion on the user list.
1617
1622
1618 WARNING: a behavior change is necessarily introduced to support
1623 WARNING: a behavior change is necessarily introduced to support
1619 blank lines: now a single blank line with whitespace does NOT
1624 blank lines: now a single blank line with whitespace does NOT
1620 break the input loop, which means that when autoindent is on, by
1625 break the input loop, which means that when autoindent is on, by
1621 default hitting return on the next (indented) line does NOT exit.
1626 default hitting return on the next (indented) line does NOT exit.
1622
1627
1623 Instead, to exit a multiline input you can either have:
1628 Instead, to exit a multiline input you can either have:
1624
1629
1625 - TWO whitespace lines (just hit return again), or
1630 - TWO whitespace lines (just hit return again), or
1626 - a single whitespace line of a different length than provided
1631 - a single whitespace line of a different length than provided
1627 by the autoindent (add or remove a space).
1632 by the autoindent (add or remove a space).
1628
1633
1629 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1634 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1630 module to better organize all readline-related functionality.
1635 module to better organize all readline-related functionality.
1631 I've deleted FlexCompleter and put all completion clases here.
1636 I've deleted FlexCompleter and put all completion clases here.
1632
1637
1633 * IPython/iplib.py (raw_input): improve indentation management.
1638 * IPython/iplib.py (raw_input): improve indentation management.
1634 It is now possible to paste indented code with autoindent on, and
1639 It is now possible to paste indented code with autoindent on, and
1635 the code is interpreted correctly (though it still looks bad on
1640 the code is interpreted correctly (though it still looks bad on
1636 screen, due to the line-oriented nature of ipython).
1641 screen, due to the line-oriented nature of ipython).
1637 (MagicCompleter.complete): change behavior so that a TAB key on an
1642 (MagicCompleter.complete): change behavior so that a TAB key on an
1638 otherwise empty line actually inserts a tab, instead of completing
1643 otherwise empty line actually inserts a tab, instead of completing
1639 on the entire global namespace. This makes it easier to use the
1644 on the entire global namespace. This makes it easier to use the
1640 TAB key for indentation. After a request by Hans Meine
1645 TAB key for indentation. After a request by Hans Meine
1641 <hans_meine-AT-gmx.net>
1646 <hans_meine-AT-gmx.net>
1642 (_prefilter): add support so that typing plain 'exit' or 'quit'
1647 (_prefilter): add support so that typing plain 'exit' or 'quit'
1643 does a sensible thing. Originally I tried to deviate as little as
1648 does a sensible thing. Originally I tried to deviate as little as
1644 possible from the default python behavior, but even that one may
1649 possible from the default python behavior, but even that one may
1645 change in this direction (thread on python-dev to that effect).
1650 change in this direction (thread on python-dev to that effect).
1646 Regardless, ipython should do the right thing even if CPython's
1651 Regardless, ipython should do the right thing even if CPython's
1647 '>>>' prompt doesn't.
1652 '>>>' prompt doesn't.
1648 (InteractiveShell): removed subclassing code.InteractiveConsole
1653 (InteractiveShell): removed subclassing code.InteractiveConsole
1649 class. By now we'd overridden just about all of its methods: I've
1654 class. By now we'd overridden just about all of its methods: I've
1650 copied the remaining two over, and now ipython is a standalone
1655 copied the remaining two over, and now ipython is a standalone
1651 class. This will provide a clearer picture for the chainsaw
1656 class. This will provide a clearer picture for the chainsaw
1652 branch refactoring.
1657 branch refactoring.
1653
1658
1654 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1659 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1655
1660
1656 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1661 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1657 failures for objects which break when dir() is called on them.
1662 failures for objects which break when dir() is called on them.
1658
1663
1659 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1664 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1660 distinct local and global namespaces in the completer API. This
1665 distinct local and global namespaces in the completer API. This
1661 change allows us to properly handle completion with distinct
1666 change allows us to properly handle completion with distinct
1662 scopes, including in embedded instances (this had never really
1667 scopes, including in embedded instances (this had never really
1663 worked correctly).
1668 worked correctly).
1664
1669
1665 Note: this introduces a change in the constructor for
1670 Note: this introduces a change in the constructor for
1666 MagicCompleter, as a new global_namespace parameter is now the
1671 MagicCompleter, as a new global_namespace parameter is now the
1667 second argument (the others were bumped one position).
1672 second argument (the others were bumped one position).
1668
1673
1669 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1674 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1670
1675
1671 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1676 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1672 embedded instances (which can be done now thanks to Vivian's
1677 embedded instances (which can be done now thanks to Vivian's
1673 frame-handling fixes for pdb).
1678 frame-handling fixes for pdb).
1674 (InteractiveShell.__init__): Fix namespace handling problem in
1679 (InteractiveShell.__init__): Fix namespace handling problem in
1675 embedded instances. We were overwriting __main__ unconditionally,
1680 embedded instances. We were overwriting __main__ unconditionally,
1676 and this should only be done for 'full' (non-embedded) IPython;
1681 and this should only be done for 'full' (non-embedded) IPython;
1677 embedded instances must respect the caller's __main__. Thanks to
1682 embedded instances must respect the caller's __main__. Thanks to
1678 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1683 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1679
1684
1680 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1685 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1681
1686
1682 * setup.py: added download_url to setup(). This registers the
1687 * setup.py: added download_url to setup(). This registers the
1683 download address at PyPI, which is not only useful to humans
1688 download address at PyPI, which is not only useful to humans
1684 browsing the site, but is also picked up by setuptools (the Eggs
1689 browsing the site, but is also picked up by setuptools (the Eggs
1685 machinery). Thanks to Ville and R. Kern for the info/discussion
1690 machinery). Thanks to Ville and R. Kern for the info/discussion
1686 on this.
1691 on this.
1687
1692
1688 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1693 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1689
1694
1690 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1695 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1691 This brings a lot of nice functionality to the pdb mode, which now
1696 This brings a lot of nice functionality to the pdb mode, which now
1692 has tab-completion, syntax highlighting, and better stack handling
1697 has tab-completion, syntax highlighting, and better stack handling
1693 than before. Many thanks to Vivian De Smedt
1698 than before. Many thanks to Vivian De Smedt
1694 <vivian-AT-vdesmedt.com> for the original patches.
1699 <vivian-AT-vdesmedt.com> for the original patches.
1695
1700
1696 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1701 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1697
1702
1698 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1703 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1699 sequence to consistently accept the banner argument. The
1704 sequence to consistently accept the banner argument. The
1700 inconsistency was tripping SAGE, thanks to Gary Zablackis
1705 inconsistency was tripping SAGE, thanks to Gary Zablackis
1701 <gzabl-AT-yahoo.com> for the report.
1706 <gzabl-AT-yahoo.com> for the report.
1702
1707
1703 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1708 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1704
1709
1705 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1710 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1706 Fix bug where a naked 'alias' call in the ipythonrc file would
1711 Fix bug where a naked 'alias' call in the ipythonrc file would
1707 cause a crash. Bug reported by Jorgen Stenarson.
1712 cause a crash. Bug reported by Jorgen Stenarson.
1708
1713
1709 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1714 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1710
1715
1711 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1716 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1712 startup time.
1717 startup time.
1713
1718
1714 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1719 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1715 instances had introduced a bug with globals in normal code. Now
1720 instances had introduced a bug with globals in normal code. Now
1716 it's working in all cases.
1721 it's working in all cases.
1717
1722
1718 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1723 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1719 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1724 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1720 has been introduced to set the default case sensitivity of the
1725 has been introduced to set the default case sensitivity of the
1721 searches. Users can still select either mode at runtime on a
1726 searches. Users can still select either mode at runtime on a
1722 per-search basis.
1727 per-search basis.
1723
1728
1724 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1729 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1725
1730
1726 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1731 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1727 attributes in wildcard searches for subclasses. Modified version
1732 attributes in wildcard searches for subclasses. Modified version
1728 of a patch by Jorgen.
1733 of a patch by Jorgen.
1729
1734
1730 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1735 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1731
1736
1732 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1737 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1733 embedded instances. I added a user_global_ns attribute to the
1738 embedded instances. I added a user_global_ns attribute to the
1734 InteractiveShell class to handle this.
1739 InteractiveShell class to handle this.
1735
1740
1736 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1741 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1737
1742
1738 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1743 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1739 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1744 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1740 (reported under win32, but may happen also in other platforms).
1745 (reported under win32, but may happen also in other platforms).
1741 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1746 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1742
1747
1743 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1748 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1744
1749
1745 * IPython/Magic.py (magic_psearch): new support for wildcard
1750 * IPython/Magic.py (magic_psearch): new support for wildcard
1746 patterns. Now, typing ?a*b will list all names which begin with a
1751 patterns. Now, typing ?a*b will list all names which begin with a
1747 and end in b, for example. The %psearch magic has full
1752 and end in b, for example. The %psearch magic has full
1748 docstrings. Many thanks to JΓΆrgen Stenarson
1753 docstrings. Many thanks to JΓΆrgen Stenarson
1749 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1754 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1750 implementing this functionality.
1755 implementing this functionality.
1751
1756
1752 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1757 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1753
1758
1754 * Manual: fixed long-standing annoyance of double-dashes (as in
1759 * Manual: fixed long-standing annoyance of double-dashes (as in
1755 --prefix=~, for example) being stripped in the HTML version. This
1760 --prefix=~, for example) being stripped in the HTML version. This
1756 is a latex2html bug, but a workaround was provided. Many thanks
1761 is a latex2html bug, but a workaround was provided. Many thanks
1757 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1762 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1758 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1763 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1759 rolling. This seemingly small issue had tripped a number of users
1764 rolling. This seemingly small issue had tripped a number of users
1760 when first installing, so I'm glad to see it gone.
1765 when first installing, so I'm glad to see it gone.
1761
1766
1762 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1767 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1763
1768
1764 * IPython/Extensions/numeric_formats.py: fix missing import,
1769 * IPython/Extensions/numeric_formats.py: fix missing import,
1765 reported by Stephen Walton.
1770 reported by Stephen Walton.
1766
1771
1767 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1772 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1768
1773
1769 * IPython/demo.py: finish demo module, fully documented now.
1774 * IPython/demo.py: finish demo module, fully documented now.
1770
1775
1771 * IPython/genutils.py (file_read): simple little utility to read a
1776 * IPython/genutils.py (file_read): simple little utility to read a
1772 file and ensure it's closed afterwards.
1777 file and ensure it's closed afterwards.
1773
1778
1774 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1779 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1775
1780
1776 * IPython/demo.py (Demo.__init__): added support for individually
1781 * IPython/demo.py (Demo.__init__): added support for individually
1777 tagging blocks for automatic execution.
1782 tagging blocks for automatic execution.
1778
1783
1779 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1784 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1780 syntax-highlighted python sources, requested by John.
1785 syntax-highlighted python sources, requested by John.
1781
1786
1782 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1787 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1783
1788
1784 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1789 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1785 finishing.
1790 finishing.
1786
1791
1787 * IPython/genutils.py (shlex_split): moved from Magic to here,
1792 * IPython/genutils.py (shlex_split): moved from Magic to here,
1788 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1793 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1789
1794
1790 * IPython/demo.py (Demo.__init__): added support for silent
1795 * IPython/demo.py (Demo.__init__): added support for silent
1791 blocks, improved marks as regexps, docstrings written.
1796 blocks, improved marks as regexps, docstrings written.
1792 (Demo.__init__): better docstring, added support for sys.argv.
1797 (Demo.__init__): better docstring, added support for sys.argv.
1793
1798
1794 * IPython/genutils.py (marquee): little utility used by the demo
1799 * IPython/genutils.py (marquee): little utility used by the demo
1795 code, handy in general.
1800 code, handy in general.
1796
1801
1797 * IPython/demo.py (Demo.__init__): new class for interactive
1802 * IPython/demo.py (Demo.__init__): new class for interactive
1798 demos. Not documented yet, I just wrote it in a hurry for
1803 demos. Not documented yet, I just wrote it in a hurry for
1799 scipy'05. Will docstring later.
1804 scipy'05. Will docstring later.
1800
1805
1801 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1806 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1802
1807
1803 * IPython/Shell.py (sigint_handler): Drastic simplification which
1808 * IPython/Shell.py (sigint_handler): Drastic simplification which
1804 also seems to make Ctrl-C work correctly across threads! This is
1809 also seems to make Ctrl-C work correctly across threads! This is
1805 so simple, that I can't beleive I'd missed it before. Needs more
1810 so simple, that I can't beleive I'd missed it before. Needs more
1806 testing, though.
1811 testing, though.
1807 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1812 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1808 like this before...
1813 like this before...
1809
1814
1810 * IPython/genutils.py (get_home_dir): add protection against
1815 * IPython/genutils.py (get_home_dir): add protection against
1811 non-dirs in win32 registry.
1816 non-dirs in win32 registry.
1812
1817
1813 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1818 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1814 bug where dict was mutated while iterating (pysh crash).
1819 bug where dict was mutated while iterating (pysh crash).
1815
1820
1816 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1821 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1817
1822
1818 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1823 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1819 spurious newlines added by this routine. After a report by
1824 spurious newlines added by this routine. After a report by
1820 F. Mantegazza.
1825 F. Mantegazza.
1821
1826
1822 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1827 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1823
1828
1824 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1829 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1825 calls. These were a leftover from the GTK 1.x days, and can cause
1830 calls. These were a leftover from the GTK 1.x days, and can cause
1826 problems in certain cases (after a report by John Hunter).
1831 problems in certain cases (after a report by John Hunter).
1827
1832
1828 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1833 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1829 os.getcwd() fails at init time. Thanks to patch from David Remahl
1834 os.getcwd() fails at init time. Thanks to patch from David Remahl
1830 <chmod007-AT-mac.com>.
1835 <chmod007-AT-mac.com>.
1831 (InteractiveShell.__init__): prevent certain special magics from
1836 (InteractiveShell.__init__): prevent certain special magics from
1832 being shadowed by aliases. Closes
1837 being shadowed by aliases. Closes
1833 http://www.scipy.net/roundup/ipython/issue41.
1838 http://www.scipy.net/roundup/ipython/issue41.
1834
1839
1835 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1840 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1836
1841
1837 * IPython/iplib.py (InteractiveShell.complete): Added new
1842 * IPython/iplib.py (InteractiveShell.complete): Added new
1838 top-level completion method to expose the completion mechanism
1843 top-level completion method to expose the completion mechanism
1839 beyond readline-based environments.
1844 beyond readline-based environments.
1840
1845
1841 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1846 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1842
1847
1843 * tools/ipsvnc (svnversion): fix svnversion capture.
1848 * tools/ipsvnc (svnversion): fix svnversion capture.
1844
1849
1845 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1850 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1846 attribute to self, which was missing. Before, it was set by a
1851 attribute to self, which was missing. Before, it was set by a
1847 routine which in certain cases wasn't being called, so the
1852 routine which in certain cases wasn't being called, so the
1848 instance could end up missing the attribute. This caused a crash.
1853 instance could end up missing the attribute. This caused a crash.
1849 Closes http://www.scipy.net/roundup/ipython/issue40.
1854 Closes http://www.scipy.net/roundup/ipython/issue40.
1850
1855
1851 2005-08-16 Fernando Perez <fperez@colorado.edu>
1856 2005-08-16 Fernando Perez <fperez@colorado.edu>
1852
1857
1853 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1858 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1854 contains non-string attribute. Closes
1859 contains non-string attribute. Closes
1855 http://www.scipy.net/roundup/ipython/issue38.
1860 http://www.scipy.net/roundup/ipython/issue38.
1856
1861
1857 2005-08-14 Fernando Perez <fperez@colorado.edu>
1862 2005-08-14 Fernando Perez <fperez@colorado.edu>
1858
1863
1859 * tools/ipsvnc: Minor improvements, to add changeset info.
1864 * tools/ipsvnc: Minor improvements, to add changeset info.
1860
1865
1861 2005-08-12 Fernando Perez <fperez@colorado.edu>
1866 2005-08-12 Fernando Perez <fperez@colorado.edu>
1862
1867
1863 * IPython/iplib.py (runsource): remove self.code_to_run_src
1868 * IPython/iplib.py (runsource): remove self.code_to_run_src
1864 attribute. I realized this is nothing more than
1869 attribute. I realized this is nothing more than
1865 '\n'.join(self.buffer), and having the same data in two different
1870 '\n'.join(self.buffer), and having the same data in two different
1866 places is just asking for synchronization bugs. This may impact
1871 places is just asking for synchronization bugs. This may impact
1867 people who have custom exception handlers, so I need to warn
1872 people who have custom exception handlers, so I need to warn
1868 ipython-dev about it (F. Mantegazza may use them).
1873 ipython-dev about it (F. Mantegazza may use them).
1869
1874
1870 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1875 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1871
1876
1872 * IPython/genutils.py: fix 2.2 compatibility (generators)
1877 * IPython/genutils.py: fix 2.2 compatibility (generators)
1873
1878
1874 2005-07-18 Fernando Perez <fperez@colorado.edu>
1879 2005-07-18 Fernando Perez <fperez@colorado.edu>
1875
1880
1876 * IPython/genutils.py (get_home_dir): fix to help users with
1881 * IPython/genutils.py (get_home_dir): fix to help users with
1877 invalid $HOME under win32.
1882 invalid $HOME under win32.
1878
1883
1879 2005-07-17 Fernando Perez <fperez@colorado.edu>
1884 2005-07-17 Fernando Perez <fperez@colorado.edu>
1880
1885
1881 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1886 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1882 some old hacks and clean up a bit other routines; code should be
1887 some old hacks and clean up a bit other routines; code should be
1883 simpler and a bit faster.
1888 simpler and a bit faster.
1884
1889
1885 * IPython/iplib.py (interact): removed some last-resort attempts
1890 * IPython/iplib.py (interact): removed some last-resort attempts
1886 to survive broken stdout/stderr. That code was only making it
1891 to survive broken stdout/stderr. That code was only making it
1887 harder to abstract out the i/o (necessary for gui integration),
1892 harder to abstract out the i/o (necessary for gui integration),
1888 and the crashes it could prevent were extremely rare in practice
1893 and the crashes it could prevent were extremely rare in practice
1889 (besides being fully user-induced in a pretty violent manner).
1894 (besides being fully user-induced in a pretty violent manner).
1890
1895
1891 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1896 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1892 Nothing major yet, but the code is simpler to read; this should
1897 Nothing major yet, but the code is simpler to read; this should
1893 make it easier to do more serious modifications in the future.
1898 make it easier to do more serious modifications in the future.
1894
1899
1895 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1900 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1896 which broke in .15 (thanks to a report by Ville).
1901 which broke in .15 (thanks to a report by Ville).
1897
1902
1898 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1903 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1899 be quite correct, I know next to nothing about unicode). This
1904 be quite correct, I know next to nothing about unicode). This
1900 will allow unicode strings to be used in prompts, amongst other
1905 will allow unicode strings to be used in prompts, amongst other
1901 cases. It also will prevent ipython from crashing when unicode
1906 cases. It also will prevent ipython from crashing when unicode
1902 shows up unexpectedly in many places. If ascii encoding fails, we
1907 shows up unexpectedly in many places. If ascii encoding fails, we
1903 assume utf_8. Currently the encoding is not a user-visible
1908 assume utf_8. Currently the encoding is not a user-visible
1904 setting, though it could be made so if there is demand for it.
1909 setting, though it could be made so if there is demand for it.
1905
1910
1906 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1911 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1907
1912
1908 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1913 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1909
1914
1910 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1915 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1911
1916
1912 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1917 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1913 code can work transparently for 2.2/2.3.
1918 code can work transparently for 2.2/2.3.
1914
1919
1915 2005-07-16 Fernando Perez <fperez@colorado.edu>
1920 2005-07-16 Fernando Perez <fperez@colorado.edu>
1916
1921
1917 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1922 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1918 out of the color scheme table used for coloring exception
1923 out of the color scheme table used for coloring exception
1919 tracebacks. This allows user code to add new schemes at runtime.
1924 tracebacks. This allows user code to add new schemes at runtime.
1920 This is a minimally modified version of the patch at
1925 This is a minimally modified version of the patch at
1921 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1926 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1922 for the contribution.
1927 for the contribution.
1923
1928
1924 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1929 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1925 slightly modified version of the patch in
1930 slightly modified version of the patch in
1926 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1931 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1927 to remove the previous try/except solution (which was costlier).
1932 to remove the previous try/except solution (which was costlier).
1928 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1933 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1929
1934
1930 2005-06-08 Fernando Perez <fperez@colorado.edu>
1935 2005-06-08 Fernando Perez <fperez@colorado.edu>
1931
1936
1932 * IPython/iplib.py (write/write_err): Add methods to abstract all
1937 * IPython/iplib.py (write/write_err): Add methods to abstract all
1933 I/O a bit more.
1938 I/O a bit more.
1934
1939
1935 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1940 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1936 warning, reported by Aric Hagberg, fix by JD Hunter.
1941 warning, reported by Aric Hagberg, fix by JD Hunter.
1937
1942
1938 2005-06-02 *** Released version 0.6.15
1943 2005-06-02 *** Released version 0.6.15
1939
1944
1940 2005-06-01 Fernando Perez <fperez@colorado.edu>
1945 2005-06-01 Fernando Perez <fperez@colorado.edu>
1941
1946
1942 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1947 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1943 tab-completion of filenames within open-quoted strings. Note that
1948 tab-completion of filenames within open-quoted strings. Note that
1944 this requires that in ~/.ipython/ipythonrc, users change the
1949 this requires that in ~/.ipython/ipythonrc, users change the
1945 readline delimiters configuration to read:
1950 readline delimiters configuration to read:
1946
1951
1947 readline_remove_delims -/~
1952 readline_remove_delims -/~
1948
1953
1949
1954
1950 2005-05-31 *** Released version 0.6.14
1955 2005-05-31 *** Released version 0.6.14
1951
1956
1952 2005-05-29 Fernando Perez <fperez@colorado.edu>
1957 2005-05-29 Fernando Perez <fperez@colorado.edu>
1953
1958
1954 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1959 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1955 with files not on the filesystem. Reported by Eliyahu Sandler
1960 with files not on the filesystem. Reported by Eliyahu Sandler
1956 <eli@gondolin.net>
1961 <eli@gondolin.net>
1957
1962
1958 2005-05-22 Fernando Perez <fperez@colorado.edu>
1963 2005-05-22 Fernando Perez <fperez@colorado.edu>
1959
1964
1960 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1965 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1961 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1966 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1962
1967
1963 2005-05-19 Fernando Perez <fperez@colorado.edu>
1968 2005-05-19 Fernando Perez <fperez@colorado.edu>
1964
1969
1965 * IPython/iplib.py (safe_execfile): close a file which could be
1970 * IPython/iplib.py (safe_execfile): close a file which could be
1966 left open (causing problems in win32, which locks open files).
1971 left open (causing problems in win32, which locks open files).
1967 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1972 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1968
1973
1969 2005-05-18 Fernando Perez <fperez@colorado.edu>
1974 2005-05-18 Fernando Perez <fperez@colorado.edu>
1970
1975
1971 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1976 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1972 keyword arguments correctly to safe_execfile().
1977 keyword arguments correctly to safe_execfile().
1973
1978
1974 2005-05-13 Fernando Perez <fperez@colorado.edu>
1979 2005-05-13 Fernando Perez <fperez@colorado.edu>
1975
1980
1976 * ipython.1: Added info about Qt to manpage, and threads warning
1981 * ipython.1: Added info about Qt to manpage, and threads warning
1977 to usage page (invoked with --help).
1982 to usage page (invoked with --help).
1978
1983
1979 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1984 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1980 new matcher (it goes at the end of the priority list) to do
1985 new matcher (it goes at the end of the priority list) to do
1981 tab-completion on named function arguments. Submitted by George
1986 tab-completion on named function arguments. Submitted by George
1982 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1987 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1983 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1988 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1984 for more details.
1989 for more details.
1985
1990
1986 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1991 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1987 SystemExit exceptions in the script being run. Thanks to a report
1992 SystemExit exceptions in the script being run. Thanks to a report
1988 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1993 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1989 producing very annoying behavior when running unit tests.
1994 producing very annoying behavior when running unit tests.
1990
1995
1991 2005-05-12 Fernando Perez <fperez@colorado.edu>
1996 2005-05-12 Fernando Perez <fperez@colorado.edu>
1992
1997
1993 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1998 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1994 which I'd broken (again) due to a changed regexp. In the process,
1999 which I'd broken (again) due to a changed regexp. In the process,
1995 added ';' as an escape to auto-quote the whole line without
2000 added ';' as an escape to auto-quote the whole line without
1996 splitting its arguments. Thanks to a report by Jerry McRae
2001 splitting its arguments. Thanks to a report by Jerry McRae
1997 <qrs0xyc02-AT-sneakemail.com>.
2002 <qrs0xyc02-AT-sneakemail.com>.
1998
2003
1999 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2004 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2000 possible crashes caused by a TokenError. Reported by Ed Schofield
2005 possible crashes caused by a TokenError. Reported by Ed Schofield
2001 <schofield-AT-ftw.at>.
2006 <schofield-AT-ftw.at>.
2002
2007
2003 2005-05-06 Fernando Perez <fperez@colorado.edu>
2008 2005-05-06 Fernando Perez <fperez@colorado.edu>
2004
2009
2005 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2010 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2006
2011
2007 2005-04-29 Fernando Perez <fperez@colorado.edu>
2012 2005-04-29 Fernando Perez <fperez@colorado.edu>
2008
2013
2009 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2014 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2010 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2015 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2011 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2016 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2012 which provides support for Qt interactive usage (similar to the
2017 which provides support for Qt interactive usage (similar to the
2013 existing one for WX and GTK). This had been often requested.
2018 existing one for WX and GTK). This had been often requested.
2014
2019
2015 2005-04-14 *** Released version 0.6.13
2020 2005-04-14 *** Released version 0.6.13
2016
2021
2017 2005-04-08 Fernando Perez <fperez@colorado.edu>
2022 2005-04-08 Fernando Perez <fperez@colorado.edu>
2018
2023
2019 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2024 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2020 from _ofind, which gets called on almost every input line. Now,
2025 from _ofind, which gets called on almost every input line. Now,
2021 we only try to get docstrings if they are actually going to be
2026 we only try to get docstrings if they are actually going to be
2022 used (the overhead of fetching unnecessary docstrings can be
2027 used (the overhead of fetching unnecessary docstrings can be
2023 noticeable for certain objects, such as Pyro proxies).
2028 noticeable for certain objects, such as Pyro proxies).
2024
2029
2025 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2030 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2026 for completers. For some reason I had been passing them the state
2031 for completers. For some reason I had been passing them the state
2027 variable, which completers never actually need, and was in
2032 variable, which completers never actually need, and was in
2028 conflict with the rlcompleter API. Custom completers ONLY need to
2033 conflict with the rlcompleter API. Custom completers ONLY need to
2029 take the text parameter.
2034 take the text parameter.
2030
2035
2031 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2036 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2032 work correctly in pysh. I've also moved all the logic which used
2037 work correctly in pysh. I've also moved all the logic which used
2033 to be in pysh.py here, which will prevent problems with future
2038 to be in pysh.py here, which will prevent problems with future
2034 upgrades. However, this time I must warn users to update their
2039 upgrades. However, this time I must warn users to update their
2035 pysh profile to include the line
2040 pysh profile to include the line
2036
2041
2037 import_all IPython.Extensions.InterpreterExec
2042 import_all IPython.Extensions.InterpreterExec
2038
2043
2039 because otherwise things won't work for them. They MUST also
2044 because otherwise things won't work for them. They MUST also
2040 delete pysh.py and the line
2045 delete pysh.py and the line
2041
2046
2042 execfile pysh.py
2047 execfile pysh.py
2043
2048
2044 from their ipythonrc-pysh.
2049 from their ipythonrc-pysh.
2045
2050
2046 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2051 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2047 robust in the face of objects whose dir() returns non-strings
2052 robust in the face of objects whose dir() returns non-strings
2048 (which it shouldn't, but some broken libs like ITK do). Thanks to
2053 (which it shouldn't, but some broken libs like ITK do). Thanks to
2049 a patch by John Hunter (implemented differently, though). Also
2054 a patch by John Hunter (implemented differently, though). Also
2050 minor improvements by using .extend instead of + on lists.
2055 minor improvements by using .extend instead of + on lists.
2051
2056
2052 * pysh.py:
2057 * pysh.py:
2053
2058
2054 2005-04-06 Fernando Perez <fperez@colorado.edu>
2059 2005-04-06 Fernando Perez <fperez@colorado.edu>
2055
2060
2056 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2061 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2057 by default, so that all users benefit from it. Those who don't
2062 by default, so that all users benefit from it. Those who don't
2058 want it can still turn it off.
2063 want it can still turn it off.
2059
2064
2060 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2065 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2061 config file, I'd forgotten about this, so users were getting it
2066 config file, I'd forgotten about this, so users were getting it
2062 off by default.
2067 off by default.
2063
2068
2064 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2069 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2065 consistency. Now magics can be called in multiline statements,
2070 consistency. Now magics can be called in multiline statements,
2066 and python variables can be expanded in magic calls via $var.
2071 and python variables can be expanded in magic calls via $var.
2067 This makes the magic system behave just like aliases or !system
2072 This makes the magic system behave just like aliases or !system
2068 calls.
2073 calls.
2069
2074
2070 2005-03-28 Fernando Perez <fperez@colorado.edu>
2075 2005-03-28 Fernando Perez <fperez@colorado.edu>
2071
2076
2072 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2077 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2073 expensive string additions for building command. Add support for
2078 expensive string additions for building command. Add support for
2074 trailing ';' when autocall is used.
2079 trailing ';' when autocall is used.
2075
2080
2076 2005-03-26 Fernando Perez <fperez@colorado.edu>
2081 2005-03-26 Fernando Perez <fperez@colorado.edu>
2077
2082
2078 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2083 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2079 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2084 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2080 ipython.el robust against prompts with any number of spaces
2085 ipython.el robust against prompts with any number of spaces
2081 (including 0) after the ':' character.
2086 (including 0) after the ':' character.
2082
2087
2083 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2088 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2084 continuation prompt, which misled users to think the line was
2089 continuation prompt, which misled users to think the line was
2085 already indented. Closes debian Bug#300847, reported to me by
2090 already indented. Closes debian Bug#300847, reported to me by
2086 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2091 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2087
2092
2088 2005-03-23 Fernando Perez <fperez@colorado.edu>
2093 2005-03-23 Fernando Perez <fperez@colorado.edu>
2089
2094
2090 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2095 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2091 properly aligned if they have embedded newlines.
2096 properly aligned if they have embedded newlines.
2092
2097
2093 * IPython/iplib.py (runlines): Add a public method to expose
2098 * IPython/iplib.py (runlines): Add a public method to expose
2094 IPython's code execution machinery, so that users can run strings
2099 IPython's code execution machinery, so that users can run strings
2095 as if they had been typed at the prompt interactively.
2100 as if they had been typed at the prompt interactively.
2096 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2101 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2097 methods which can call the system shell, but with python variable
2102 methods which can call the system shell, but with python variable
2098 expansion. The three such methods are: __IPYTHON__.system,
2103 expansion. The three such methods are: __IPYTHON__.system,
2099 .getoutput and .getoutputerror. These need to be documented in a
2104 .getoutput and .getoutputerror. These need to be documented in a
2100 'public API' section (to be written) of the manual.
2105 'public API' section (to be written) of the manual.
2101
2106
2102 2005-03-20 Fernando Perez <fperez@colorado.edu>
2107 2005-03-20 Fernando Perez <fperez@colorado.edu>
2103
2108
2104 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2109 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2105 for custom exception handling. This is quite powerful, and it
2110 for custom exception handling. This is quite powerful, and it
2106 allows for user-installable exception handlers which can trap
2111 allows for user-installable exception handlers which can trap
2107 custom exceptions at runtime and treat them separately from
2112 custom exceptions at runtime and treat them separately from
2108 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2113 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2109 Mantegazza <mantegazza-AT-ill.fr>.
2114 Mantegazza <mantegazza-AT-ill.fr>.
2110 (InteractiveShell.set_custom_completer): public API function to
2115 (InteractiveShell.set_custom_completer): public API function to
2111 add new completers at runtime.
2116 add new completers at runtime.
2112
2117
2113 2005-03-19 Fernando Perez <fperez@colorado.edu>
2118 2005-03-19 Fernando Perez <fperez@colorado.edu>
2114
2119
2115 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2120 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2116 allow objects which provide their docstrings via non-standard
2121 allow objects which provide their docstrings via non-standard
2117 mechanisms (like Pyro proxies) to still be inspected by ipython's
2122 mechanisms (like Pyro proxies) to still be inspected by ipython's
2118 ? system.
2123 ? system.
2119
2124
2120 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2125 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2121 automatic capture system. I tried quite hard to make it work
2126 automatic capture system. I tried quite hard to make it work
2122 reliably, and simply failed. I tried many combinations with the
2127 reliably, and simply failed. I tried many combinations with the
2123 subprocess module, but eventually nothing worked in all needed
2128 subprocess module, but eventually nothing worked in all needed
2124 cases (not blocking stdin for the child, duplicating stdout
2129 cases (not blocking stdin for the child, duplicating stdout
2125 without blocking, etc). The new %sc/%sx still do capture to these
2130 without blocking, etc). The new %sc/%sx still do capture to these
2126 magical list/string objects which make shell use much more
2131 magical list/string objects which make shell use much more
2127 conveninent, so not all is lost.
2132 conveninent, so not all is lost.
2128
2133
2129 XXX - FIX MANUAL for the change above!
2134 XXX - FIX MANUAL for the change above!
2130
2135
2131 (runsource): I copied code.py's runsource() into ipython to modify
2136 (runsource): I copied code.py's runsource() into ipython to modify
2132 it a bit. Now the code object and source to be executed are
2137 it a bit. Now the code object and source to be executed are
2133 stored in ipython. This makes this info accessible to third-party
2138 stored in ipython. This makes this info accessible to third-party
2134 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2139 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2135 Mantegazza <mantegazza-AT-ill.fr>.
2140 Mantegazza <mantegazza-AT-ill.fr>.
2136
2141
2137 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2142 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2138 history-search via readline (like C-p/C-n). I'd wanted this for a
2143 history-search via readline (like C-p/C-n). I'd wanted this for a
2139 long time, but only recently found out how to do it. For users
2144 long time, but only recently found out how to do it. For users
2140 who already have their ipythonrc files made and want this, just
2145 who already have their ipythonrc files made and want this, just
2141 add:
2146 add:
2142
2147
2143 readline_parse_and_bind "\e[A": history-search-backward
2148 readline_parse_and_bind "\e[A": history-search-backward
2144 readline_parse_and_bind "\e[B": history-search-forward
2149 readline_parse_and_bind "\e[B": history-search-forward
2145
2150
2146 2005-03-18 Fernando Perez <fperez@colorado.edu>
2151 2005-03-18 Fernando Perez <fperez@colorado.edu>
2147
2152
2148 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2153 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2149 LSString and SList classes which allow transparent conversions
2154 LSString and SList classes which allow transparent conversions
2150 between list mode and whitespace-separated string.
2155 between list mode and whitespace-separated string.
2151 (magic_r): Fix recursion problem in %r.
2156 (magic_r): Fix recursion problem in %r.
2152
2157
2153 * IPython/genutils.py (LSString): New class to be used for
2158 * IPython/genutils.py (LSString): New class to be used for
2154 automatic storage of the results of all alias/system calls in _o
2159 automatic storage of the results of all alias/system calls in _o
2155 and _e (stdout/err). These provide a .l/.list attribute which
2160 and _e (stdout/err). These provide a .l/.list attribute which
2156 does automatic splitting on newlines. This means that for most
2161 does automatic splitting on newlines. This means that for most
2157 uses, you'll never need to do capturing of output with %sc/%sx
2162 uses, you'll never need to do capturing of output with %sc/%sx
2158 anymore, since ipython keeps this always done for you. Note that
2163 anymore, since ipython keeps this always done for you. Note that
2159 only the LAST results are stored, the _o/e variables are
2164 only the LAST results are stored, the _o/e variables are
2160 overwritten on each call. If you need to save their contents
2165 overwritten on each call. If you need to save their contents
2161 further, simply bind them to any other name.
2166 further, simply bind them to any other name.
2162
2167
2163 2005-03-17 Fernando Perez <fperez@colorado.edu>
2168 2005-03-17 Fernando Perez <fperez@colorado.edu>
2164
2169
2165 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2170 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2166 prompt namespace handling.
2171 prompt namespace handling.
2167
2172
2168 2005-03-16 Fernando Perez <fperez@colorado.edu>
2173 2005-03-16 Fernando Perez <fperez@colorado.edu>
2169
2174
2170 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2175 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2171 classic prompts to be '>>> ' (final space was missing, and it
2176 classic prompts to be '>>> ' (final space was missing, and it
2172 trips the emacs python mode).
2177 trips the emacs python mode).
2173 (BasePrompt.__str__): Added safe support for dynamic prompt
2178 (BasePrompt.__str__): Added safe support for dynamic prompt
2174 strings. Now you can set your prompt string to be '$x', and the
2179 strings. Now you can set your prompt string to be '$x', and the
2175 value of x will be printed from your interactive namespace. The
2180 value of x will be printed from your interactive namespace. The
2176 interpolation syntax includes the full Itpl support, so
2181 interpolation syntax includes the full Itpl support, so
2177 ${foo()+x+bar()} is a valid prompt string now, and the function
2182 ${foo()+x+bar()} is a valid prompt string now, and the function
2178 calls will be made at runtime.
2183 calls will be made at runtime.
2179
2184
2180 2005-03-15 Fernando Perez <fperez@colorado.edu>
2185 2005-03-15 Fernando Perez <fperez@colorado.edu>
2181
2186
2182 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2187 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2183 avoid name clashes in pylab. %hist still works, it just forwards
2188 avoid name clashes in pylab. %hist still works, it just forwards
2184 the call to %history.
2189 the call to %history.
2185
2190
2186 2005-03-02 *** Released version 0.6.12
2191 2005-03-02 *** Released version 0.6.12
2187
2192
2188 2005-03-02 Fernando Perez <fperez@colorado.edu>
2193 2005-03-02 Fernando Perez <fperez@colorado.edu>
2189
2194
2190 * IPython/iplib.py (handle_magic): log magic calls properly as
2195 * IPython/iplib.py (handle_magic): log magic calls properly as
2191 ipmagic() function calls.
2196 ipmagic() function calls.
2192
2197
2193 * IPython/Magic.py (magic_time): Improved %time to support
2198 * IPython/Magic.py (magic_time): Improved %time to support
2194 statements and provide wall-clock as well as CPU time.
2199 statements and provide wall-clock as well as CPU time.
2195
2200
2196 2005-02-27 Fernando Perez <fperez@colorado.edu>
2201 2005-02-27 Fernando Perez <fperez@colorado.edu>
2197
2202
2198 * IPython/hooks.py: New hooks module, to expose user-modifiable
2203 * IPython/hooks.py: New hooks module, to expose user-modifiable
2199 IPython functionality in a clean manner. For now only the editor
2204 IPython functionality in a clean manner. For now only the editor
2200 hook is actually written, and other thigns which I intend to turn
2205 hook is actually written, and other thigns which I intend to turn
2201 into proper hooks aren't yet there. The display and prefilter
2206 into proper hooks aren't yet there. The display and prefilter
2202 stuff, for example, should be hooks. But at least now the
2207 stuff, for example, should be hooks. But at least now the
2203 framework is in place, and the rest can be moved here with more
2208 framework is in place, and the rest can be moved here with more
2204 time later. IPython had had a .hooks variable for a long time for
2209 time later. IPython had had a .hooks variable for a long time for
2205 this purpose, but I'd never actually used it for anything.
2210 this purpose, but I'd never actually used it for anything.
2206
2211
2207 2005-02-26 Fernando Perez <fperez@colorado.edu>
2212 2005-02-26 Fernando Perez <fperez@colorado.edu>
2208
2213
2209 * IPython/ipmaker.py (make_IPython): make the default ipython
2214 * IPython/ipmaker.py (make_IPython): make the default ipython
2210 directory be called _ipython under win32, to follow more the
2215 directory be called _ipython under win32, to follow more the
2211 naming peculiarities of that platform (where buggy software like
2216 naming peculiarities of that platform (where buggy software like
2212 Visual Sourcesafe breaks with .named directories). Reported by
2217 Visual Sourcesafe breaks with .named directories). Reported by
2213 Ville Vainio.
2218 Ville Vainio.
2214
2219
2215 2005-02-23 Fernando Perez <fperez@colorado.edu>
2220 2005-02-23 Fernando Perez <fperez@colorado.edu>
2216
2221
2217 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2222 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2218 auto_aliases for win32 which were causing problems. Users can
2223 auto_aliases for win32 which were causing problems. Users can
2219 define the ones they personally like.
2224 define the ones they personally like.
2220
2225
2221 2005-02-21 Fernando Perez <fperez@colorado.edu>
2226 2005-02-21 Fernando Perez <fperez@colorado.edu>
2222
2227
2223 * IPython/Magic.py (magic_time): new magic to time execution of
2228 * IPython/Magic.py (magic_time): new magic to time execution of
2224 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2229 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2225
2230
2226 2005-02-19 Fernando Perez <fperez@colorado.edu>
2231 2005-02-19 Fernando Perez <fperez@colorado.edu>
2227
2232
2228 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2233 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2229 into keys (for prompts, for example).
2234 into keys (for prompts, for example).
2230
2235
2231 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2236 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2232 prompts in case users want them. This introduces a small behavior
2237 prompts in case users want them. This introduces a small behavior
2233 change: ipython does not automatically add a space to all prompts
2238 change: ipython does not automatically add a space to all prompts
2234 anymore. To get the old prompts with a space, users should add it
2239 anymore. To get the old prompts with a space, users should add it
2235 manually to their ipythonrc file, so for example prompt_in1 should
2240 manually to their ipythonrc file, so for example prompt_in1 should
2236 now read 'In [\#]: ' instead of 'In [\#]:'.
2241 now read 'In [\#]: ' instead of 'In [\#]:'.
2237 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2242 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2238 file) to control left-padding of secondary prompts.
2243 file) to control left-padding of secondary prompts.
2239
2244
2240 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2245 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2241 the profiler can't be imported. Fix for Debian, which removed
2246 the profiler can't be imported. Fix for Debian, which removed
2242 profile.py because of License issues. I applied a slightly
2247 profile.py because of License issues. I applied a slightly
2243 modified version of the original Debian patch at
2248 modified version of the original Debian patch at
2244 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2249 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2245
2250
2246 2005-02-17 Fernando Perez <fperez@colorado.edu>
2251 2005-02-17 Fernando Perez <fperez@colorado.edu>
2247
2252
2248 * IPython/genutils.py (native_line_ends): Fix bug which would
2253 * IPython/genutils.py (native_line_ends): Fix bug which would
2249 cause improper line-ends under win32 b/c I was not opening files
2254 cause improper line-ends under win32 b/c I was not opening files
2250 in binary mode. Bug report and fix thanks to Ville.
2255 in binary mode. Bug report and fix thanks to Ville.
2251
2256
2252 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2257 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2253 trying to catch spurious foo[1] autocalls. My fix actually broke
2258 trying to catch spurious foo[1] autocalls. My fix actually broke
2254 ',/' autoquote/call with explicit escape (bad regexp).
2259 ',/' autoquote/call with explicit escape (bad regexp).
2255
2260
2256 2005-02-15 *** Released version 0.6.11
2261 2005-02-15 *** Released version 0.6.11
2257
2262
2258 2005-02-14 Fernando Perez <fperez@colorado.edu>
2263 2005-02-14 Fernando Perez <fperez@colorado.edu>
2259
2264
2260 * IPython/background_jobs.py: New background job management
2265 * IPython/background_jobs.py: New background job management
2261 subsystem. This is implemented via a new set of classes, and
2266 subsystem. This is implemented via a new set of classes, and
2262 IPython now provides a builtin 'jobs' object for background job
2267 IPython now provides a builtin 'jobs' object for background job
2263 execution. A convenience %bg magic serves as a lightweight
2268 execution. A convenience %bg magic serves as a lightweight
2264 frontend for starting the more common type of calls. This was
2269 frontend for starting the more common type of calls. This was
2265 inspired by discussions with B. Granger and the BackgroundCommand
2270 inspired by discussions with B. Granger and the BackgroundCommand
2266 class described in the book Python Scripting for Computational
2271 class described in the book Python Scripting for Computational
2267 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2272 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2268 (although ultimately no code from this text was used, as IPython's
2273 (although ultimately no code from this text was used, as IPython's
2269 system is a separate implementation).
2274 system is a separate implementation).
2270
2275
2271 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2276 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2272 to control the completion of single/double underscore names
2277 to control the completion of single/double underscore names
2273 separately. As documented in the example ipytonrc file, the
2278 separately. As documented in the example ipytonrc file, the
2274 readline_omit__names variable can now be set to 2, to omit even
2279 readline_omit__names variable can now be set to 2, to omit even
2275 single underscore names. Thanks to a patch by Brian Wong
2280 single underscore names. Thanks to a patch by Brian Wong
2276 <BrianWong-AT-AirgoNetworks.Com>.
2281 <BrianWong-AT-AirgoNetworks.Com>.
2277 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2282 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2278 be autocalled as foo([1]) if foo were callable. A problem for
2283 be autocalled as foo([1]) if foo were callable. A problem for
2279 things which are both callable and implement __getitem__.
2284 things which are both callable and implement __getitem__.
2280 (init_readline): Fix autoindentation for win32. Thanks to a patch
2285 (init_readline): Fix autoindentation for win32. Thanks to a patch
2281 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2286 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2282
2287
2283 2005-02-12 Fernando Perez <fperez@colorado.edu>
2288 2005-02-12 Fernando Perez <fperez@colorado.edu>
2284
2289
2285 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2290 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2286 which I had written long ago to sort out user error messages which
2291 which I had written long ago to sort out user error messages which
2287 may occur during startup. This seemed like a good idea initially,
2292 may occur during startup. This seemed like a good idea initially,
2288 but it has proven a disaster in retrospect. I don't want to
2293 but it has proven a disaster in retrospect. I don't want to
2289 change much code for now, so my fix is to set the internal 'debug'
2294 change much code for now, so my fix is to set the internal 'debug'
2290 flag to true everywhere, whose only job was precisely to control
2295 flag to true everywhere, whose only job was precisely to control
2291 this subsystem. This closes issue 28 (as well as avoiding all
2296 this subsystem. This closes issue 28 (as well as avoiding all
2292 sorts of strange hangups which occur from time to time).
2297 sorts of strange hangups which occur from time to time).
2293
2298
2294 2005-02-07 Fernando Perez <fperez@colorado.edu>
2299 2005-02-07 Fernando Perez <fperez@colorado.edu>
2295
2300
2296 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2301 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2297 previous call produced a syntax error.
2302 previous call produced a syntax error.
2298
2303
2299 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2304 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2300 classes without constructor.
2305 classes without constructor.
2301
2306
2302 2005-02-06 Fernando Perez <fperez@colorado.edu>
2307 2005-02-06 Fernando Perez <fperez@colorado.edu>
2303
2308
2304 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2309 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2305 completions with the results of each matcher, so we return results
2310 completions with the results of each matcher, so we return results
2306 to the user from all namespaces. This breaks with ipython
2311 to the user from all namespaces. This breaks with ipython
2307 tradition, but I think it's a nicer behavior. Now you get all
2312 tradition, but I think it's a nicer behavior. Now you get all
2308 possible completions listed, from all possible namespaces (python,
2313 possible completions listed, from all possible namespaces (python,
2309 filesystem, magics...) After a request by John Hunter
2314 filesystem, magics...) After a request by John Hunter
2310 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2315 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2311
2316
2312 2005-02-05 Fernando Perez <fperez@colorado.edu>
2317 2005-02-05 Fernando Perez <fperez@colorado.edu>
2313
2318
2314 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2319 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2315 the call had quote characters in it (the quotes were stripped).
2320 the call had quote characters in it (the quotes were stripped).
2316
2321
2317 2005-01-31 Fernando Perez <fperez@colorado.edu>
2322 2005-01-31 Fernando Perez <fperez@colorado.edu>
2318
2323
2319 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2324 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2320 Itpl.itpl() to make the code more robust against psyco
2325 Itpl.itpl() to make the code more robust against psyco
2321 optimizations.
2326 optimizations.
2322
2327
2323 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2328 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2324 of causing an exception. Quicker, cleaner.
2329 of causing an exception. Quicker, cleaner.
2325
2330
2326 2005-01-28 Fernando Perez <fperez@colorado.edu>
2331 2005-01-28 Fernando Perez <fperez@colorado.edu>
2327
2332
2328 * scripts/ipython_win_post_install.py (install): hardcode
2333 * scripts/ipython_win_post_install.py (install): hardcode
2329 sys.prefix+'python.exe' as the executable path. It turns out that
2334 sys.prefix+'python.exe' as the executable path. It turns out that
2330 during the post-installation run, sys.executable resolves to the
2335 during the post-installation run, sys.executable resolves to the
2331 name of the binary installer! I should report this as a distutils
2336 name of the binary installer! I should report this as a distutils
2332 bug, I think. I updated the .10 release with this tiny fix, to
2337 bug, I think. I updated the .10 release with this tiny fix, to
2333 avoid annoying the lists further.
2338 avoid annoying the lists further.
2334
2339
2335 2005-01-27 *** Released version 0.6.10
2340 2005-01-27 *** Released version 0.6.10
2336
2341
2337 2005-01-27 Fernando Perez <fperez@colorado.edu>
2342 2005-01-27 Fernando Perez <fperez@colorado.edu>
2338
2343
2339 * IPython/numutils.py (norm): Added 'inf' as optional name for
2344 * IPython/numutils.py (norm): Added 'inf' as optional name for
2340 L-infinity norm, included references to mathworld.com for vector
2345 L-infinity norm, included references to mathworld.com for vector
2341 norm definitions.
2346 norm definitions.
2342 (amin/amax): added amin/amax for array min/max. Similar to what
2347 (amin/amax): added amin/amax for array min/max. Similar to what
2343 pylab ships with after the recent reorganization of names.
2348 pylab ships with after the recent reorganization of names.
2344 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2349 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2345
2350
2346 * ipython.el: committed Alex's recent fixes and improvements.
2351 * ipython.el: committed Alex's recent fixes and improvements.
2347 Tested with python-mode from CVS, and it looks excellent. Since
2352 Tested with python-mode from CVS, and it looks excellent. Since
2348 python-mode hasn't released anything in a while, I'm temporarily
2353 python-mode hasn't released anything in a while, I'm temporarily
2349 putting a copy of today's CVS (v 4.70) of python-mode in:
2354 putting a copy of today's CVS (v 4.70) of python-mode in:
2350 http://ipython.scipy.org/tmp/python-mode.el
2355 http://ipython.scipy.org/tmp/python-mode.el
2351
2356
2352 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2357 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2353 sys.executable for the executable name, instead of assuming it's
2358 sys.executable for the executable name, instead of assuming it's
2354 called 'python.exe' (the post-installer would have produced broken
2359 called 'python.exe' (the post-installer would have produced broken
2355 setups on systems with a differently named python binary).
2360 setups on systems with a differently named python binary).
2356
2361
2357 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2362 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2358 references to os.linesep, to make the code more
2363 references to os.linesep, to make the code more
2359 platform-independent. This is also part of the win32 coloring
2364 platform-independent. This is also part of the win32 coloring
2360 fixes.
2365 fixes.
2361
2366
2362 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2367 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2363 lines, which actually cause coloring bugs because the length of
2368 lines, which actually cause coloring bugs because the length of
2364 the line is very difficult to correctly compute with embedded
2369 the line is very difficult to correctly compute with embedded
2365 escapes. This was the source of all the coloring problems under
2370 escapes. This was the source of all the coloring problems under
2366 Win32. I think that _finally_, Win32 users have a properly
2371 Win32. I think that _finally_, Win32 users have a properly
2367 working ipython in all respects. This would never have happened
2372 working ipython in all respects. This would never have happened
2368 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2373 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2369
2374
2370 2005-01-26 *** Released version 0.6.9
2375 2005-01-26 *** Released version 0.6.9
2371
2376
2372 2005-01-25 Fernando Perez <fperez@colorado.edu>
2377 2005-01-25 Fernando Perez <fperez@colorado.edu>
2373
2378
2374 * setup.py: finally, we have a true Windows installer, thanks to
2379 * setup.py: finally, we have a true Windows installer, thanks to
2375 the excellent work of Viktor Ransmayr
2380 the excellent work of Viktor Ransmayr
2376 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2381 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2377 Windows users. The setup routine is quite a bit cleaner thanks to
2382 Windows users. The setup routine is quite a bit cleaner thanks to
2378 this, and the post-install script uses the proper functions to
2383 this, and the post-install script uses the proper functions to
2379 allow a clean de-installation using the standard Windows Control
2384 allow a clean de-installation using the standard Windows Control
2380 Panel.
2385 Panel.
2381
2386
2382 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2387 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2383 environment variable under all OSes (including win32) if
2388 environment variable under all OSes (including win32) if
2384 available. This will give consistency to win32 users who have set
2389 available. This will give consistency to win32 users who have set
2385 this variable for any reason. If os.environ['HOME'] fails, the
2390 this variable for any reason. If os.environ['HOME'] fails, the
2386 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2391 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2387
2392
2388 2005-01-24 Fernando Perez <fperez@colorado.edu>
2393 2005-01-24 Fernando Perez <fperez@colorado.edu>
2389
2394
2390 * IPython/numutils.py (empty_like): add empty_like(), similar to
2395 * IPython/numutils.py (empty_like): add empty_like(), similar to
2391 zeros_like() but taking advantage of the new empty() Numeric routine.
2396 zeros_like() but taking advantage of the new empty() Numeric routine.
2392
2397
2393 2005-01-23 *** Released version 0.6.8
2398 2005-01-23 *** Released version 0.6.8
2394
2399
2395 2005-01-22 Fernando Perez <fperez@colorado.edu>
2400 2005-01-22 Fernando Perez <fperez@colorado.edu>
2396
2401
2397 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2402 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2398 automatic show() calls. After discussing things with JDH, it
2403 automatic show() calls. After discussing things with JDH, it
2399 turns out there are too many corner cases where this can go wrong.
2404 turns out there are too many corner cases where this can go wrong.
2400 It's best not to try to be 'too smart', and simply have ipython
2405 It's best not to try to be 'too smart', and simply have ipython
2401 reproduce as much as possible the default behavior of a normal
2406 reproduce as much as possible the default behavior of a normal
2402 python shell.
2407 python shell.
2403
2408
2404 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2409 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2405 line-splitting regexp and _prefilter() to avoid calling getattr()
2410 line-splitting regexp and _prefilter() to avoid calling getattr()
2406 on assignments. This closes
2411 on assignments. This closes
2407 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2412 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2408 readline uses getattr(), so a simple <TAB> keypress is still
2413 readline uses getattr(), so a simple <TAB> keypress is still
2409 enough to trigger getattr() calls on an object.
2414 enough to trigger getattr() calls on an object.
2410
2415
2411 2005-01-21 Fernando Perez <fperez@colorado.edu>
2416 2005-01-21 Fernando Perez <fperez@colorado.edu>
2412
2417
2413 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2418 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2414 docstring under pylab so it doesn't mask the original.
2419 docstring under pylab so it doesn't mask the original.
2415
2420
2416 2005-01-21 *** Released version 0.6.7
2421 2005-01-21 *** Released version 0.6.7
2417
2422
2418 2005-01-21 Fernando Perez <fperez@colorado.edu>
2423 2005-01-21 Fernando Perez <fperez@colorado.edu>
2419
2424
2420 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2425 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2421 signal handling for win32 users in multithreaded mode.
2426 signal handling for win32 users in multithreaded mode.
2422
2427
2423 2005-01-17 Fernando Perez <fperez@colorado.edu>
2428 2005-01-17 Fernando Perez <fperez@colorado.edu>
2424
2429
2425 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2430 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2426 instances with no __init__. After a crash report by Norbert Nemec
2431 instances with no __init__. After a crash report by Norbert Nemec
2427 <Norbert-AT-nemec-online.de>.
2432 <Norbert-AT-nemec-online.de>.
2428
2433
2429 2005-01-14 Fernando Perez <fperez@colorado.edu>
2434 2005-01-14 Fernando Perez <fperez@colorado.edu>
2430
2435
2431 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2436 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2432 names for verbose exceptions, when multiple dotted names and the
2437 names for verbose exceptions, when multiple dotted names and the
2433 'parent' object were present on the same line.
2438 'parent' object were present on the same line.
2434
2439
2435 2005-01-11 Fernando Perez <fperez@colorado.edu>
2440 2005-01-11 Fernando Perez <fperez@colorado.edu>
2436
2441
2437 * IPython/genutils.py (flag_calls): new utility to trap and flag
2442 * IPython/genutils.py (flag_calls): new utility to trap and flag
2438 calls in functions. I need it to clean up matplotlib support.
2443 calls in functions. I need it to clean up matplotlib support.
2439 Also removed some deprecated code in genutils.
2444 Also removed some deprecated code in genutils.
2440
2445
2441 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2446 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2442 that matplotlib scripts called with %run, which don't call show()
2447 that matplotlib scripts called with %run, which don't call show()
2443 themselves, still have their plotting windows open.
2448 themselves, still have their plotting windows open.
2444
2449
2445 2005-01-05 Fernando Perez <fperez@colorado.edu>
2450 2005-01-05 Fernando Perez <fperez@colorado.edu>
2446
2451
2447 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2452 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2448 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2453 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2449
2454
2450 2004-12-19 Fernando Perez <fperez@colorado.edu>
2455 2004-12-19 Fernando Perez <fperez@colorado.edu>
2451
2456
2452 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2457 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2453 parent_runcode, which was an eyesore. The same result can be
2458 parent_runcode, which was an eyesore. The same result can be
2454 obtained with Python's regular superclass mechanisms.
2459 obtained with Python's regular superclass mechanisms.
2455
2460
2456 2004-12-17 Fernando Perez <fperez@colorado.edu>
2461 2004-12-17 Fernando Perez <fperez@colorado.edu>
2457
2462
2458 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2463 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2459 reported by Prabhu.
2464 reported by Prabhu.
2460 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2465 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2461 sys.stderr) instead of explicitly calling sys.stderr. This helps
2466 sys.stderr) instead of explicitly calling sys.stderr. This helps
2462 maintain our I/O abstractions clean, for future GUI embeddings.
2467 maintain our I/O abstractions clean, for future GUI embeddings.
2463
2468
2464 * IPython/genutils.py (info): added new utility for sys.stderr
2469 * IPython/genutils.py (info): added new utility for sys.stderr
2465 unified info message handling (thin wrapper around warn()).
2470 unified info message handling (thin wrapper around warn()).
2466
2471
2467 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2472 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2468 composite (dotted) names on verbose exceptions.
2473 composite (dotted) names on verbose exceptions.
2469 (VerboseTB.nullrepr): harden against another kind of errors which
2474 (VerboseTB.nullrepr): harden against another kind of errors which
2470 Python's inspect module can trigger, and which were crashing
2475 Python's inspect module can trigger, and which were crashing
2471 IPython. Thanks to a report by Marco Lombardi
2476 IPython. Thanks to a report by Marco Lombardi
2472 <mlombard-AT-ma010192.hq.eso.org>.
2477 <mlombard-AT-ma010192.hq.eso.org>.
2473
2478
2474 2004-12-13 *** Released version 0.6.6
2479 2004-12-13 *** Released version 0.6.6
2475
2480
2476 2004-12-12 Fernando Perez <fperez@colorado.edu>
2481 2004-12-12 Fernando Perez <fperez@colorado.edu>
2477
2482
2478 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2483 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2479 generated by pygtk upon initialization if it was built without
2484 generated by pygtk upon initialization if it was built without
2480 threads (for matplotlib users). After a crash reported by
2485 threads (for matplotlib users). After a crash reported by
2481 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2486 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2482
2487
2483 * IPython/ipmaker.py (make_IPython): fix small bug in the
2488 * IPython/ipmaker.py (make_IPython): fix small bug in the
2484 import_some parameter for multiple imports.
2489 import_some parameter for multiple imports.
2485
2490
2486 * IPython/iplib.py (ipmagic): simplified the interface of
2491 * IPython/iplib.py (ipmagic): simplified the interface of
2487 ipmagic() to take a single string argument, just as it would be
2492 ipmagic() to take a single string argument, just as it would be
2488 typed at the IPython cmd line.
2493 typed at the IPython cmd line.
2489 (ipalias): Added new ipalias() with an interface identical to
2494 (ipalias): Added new ipalias() with an interface identical to
2490 ipmagic(). This completes exposing a pure python interface to the
2495 ipmagic(). This completes exposing a pure python interface to the
2491 alias and magic system, which can be used in loops or more complex
2496 alias and magic system, which can be used in loops or more complex
2492 code where IPython's automatic line mangling is not active.
2497 code where IPython's automatic line mangling is not active.
2493
2498
2494 * IPython/genutils.py (timing): changed interface of timing to
2499 * IPython/genutils.py (timing): changed interface of timing to
2495 simply run code once, which is the most common case. timings()
2500 simply run code once, which is the most common case. timings()
2496 remains unchanged, for the cases where you want multiple runs.
2501 remains unchanged, for the cases where you want multiple runs.
2497
2502
2498 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2503 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2499 bug where Python2.2 crashes with exec'ing code which does not end
2504 bug where Python2.2 crashes with exec'ing code which does not end
2500 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2505 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2501 before.
2506 before.
2502
2507
2503 2004-12-10 Fernando Perez <fperez@colorado.edu>
2508 2004-12-10 Fernando Perez <fperez@colorado.edu>
2504
2509
2505 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2510 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2506 -t to -T, to accomodate the new -t flag in %run (the %run and
2511 -t to -T, to accomodate the new -t flag in %run (the %run and
2507 %prun options are kind of intermixed, and it's not easy to change
2512 %prun options are kind of intermixed, and it's not easy to change
2508 this with the limitations of python's getopt).
2513 this with the limitations of python's getopt).
2509
2514
2510 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2515 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2511 the execution of scripts. It's not as fine-tuned as timeit.py,
2516 the execution of scripts. It's not as fine-tuned as timeit.py,
2512 but it works from inside ipython (and under 2.2, which lacks
2517 but it works from inside ipython (and under 2.2, which lacks
2513 timeit.py). Optionally a number of runs > 1 can be given for
2518 timeit.py). Optionally a number of runs > 1 can be given for
2514 timing very short-running code.
2519 timing very short-running code.
2515
2520
2516 * IPython/genutils.py (uniq_stable): new routine which returns a
2521 * IPython/genutils.py (uniq_stable): new routine which returns a
2517 list of unique elements in any iterable, but in stable order of
2522 list of unique elements in any iterable, but in stable order of
2518 appearance. I needed this for the ultraTB fixes, and it's a handy
2523 appearance. I needed this for the ultraTB fixes, and it's a handy
2519 utility.
2524 utility.
2520
2525
2521 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2526 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2522 dotted names in Verbose exceptions. This had been broken since
2527 dotted names in Verbose exceptions. This had been broken since
2523 the very start, now x.y will properly be printed in a Verbose
2528 the very start, now x.y will properly be printed in a Verbose
2524 traceback, instead of x being shown and y appearing always as an
2529 traceback, instead of x being shown and y appearing always as an
2525 'undefined global'. Getting this to work was a bit tricky,
2530 'undefined global'. Getting this to work was a bit tricky,
2526 because by default python tokenizers are stateless. Saved by
2531 because by default python tokenizers are stateless. Saved by
2527 python's ability to easily add a bit of state to an arbitrary
2532 python's ability to easily add a bit of state to an arbitrary
2528 function (without needing to build a full-blown callable object).
2533 function (without needing to build a full-blown callable object).
2529
2534
2530 Also big cleanup of this code, which had horrendous runtime
2535 Also big cleanup of this code, which had horrendous runtime
2531 lookups of zillions of attributes for colorization. Moved all
2536 lookups of zillions of attributes for colorization. Moved all
2532 this code into a few templates, which make it cleaner and quicker.
2537 this code into a few templates, which make it cleaner and quicker.
2533
2538
2534 Printout quality was also improved for Verbose exceptions: one
2539 Printout quality was also improved for Verbose exceptions: one
2535 variable per line, and memory addresses are printed (this can be
2540 variable per line, and memory addresses are printed (this can be
2536 quite handy in nasty debugging situations, which is what Verbose
2541 quite handy in nasty debugging situations, which is what Verbose
2537 is for).
2542 is for).
2538
2543
2539 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2544 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2540 the command line as scripts to be loaded by embedded instances.
2545 the command line as scripts to be loaded by embedded instances.
2541 Doing so has the potential for an infinite recursion if there are
2546 Doing so has the potential for an infinite recursion if there are
2542 exceptions thrown in the process. This fixes a strange crash
2547 exceptions thrown in the process. This fixes a strange crash
2543 reported by Philippe MULLER <muller-AT-irit.fr>.
2548 reported by Philippe MULLER <muller-AT-irit.fr>.
2544
2549
2545 2004-12-09 Fernando Perez <fperez@colorado.edu>
2550 2004-12-09 Fernando Perez <fperez@colorado.edu>
2546
2551
2547 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2552 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2548 to reflect new names in matplotlib, which now expose the
2553 to reflect new names in matplotlib, which now expose the
2549 matlab-compatible interface via a pylab module instead of the
2554 matlab-compatible interface via a pylab module instead of the
2550 'matlab' name. The new code is backwards compatible, so users of
2555 'matlab' name. The new code is backwards compatible, so users of
2551 all matplotlib versions are OK. Patch by J. Hunter.
2556 all matplotlib versions are OK. Patch by J. Hunter.
2552
2557
2553 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2558 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2554 of __init__ docstrings for instances (class docstrings are already
2559 of __init__ docstrings for instances (class docstrings are already
2555 automatically printed). Instances with customized docstrings
2560 automatically printed). Instances with customized docstrings
2556 (indep. of the class) are also recognized and all 3 separate
2561 (indep. of the class) are also recognized and all 3 separate
2557 docstrings are printed (instance, class, constructor). After some
2562 docstrings are printed (instance, class, constructor). After some
2558 comments/suggestions by J. Hunter.
2563 comments/suggestions by J. Hunter.
2559
2564
2560 2004-12-05 Fernando Perez <fperez@colorado.edu>
2565 2004-12-05 Fernando Perez <fperez@colorado.edu>
2561
2566
2562 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2567 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2563 warnings when tab-completion fails and triggers an exception.
2568 warnings when tab-completion fails and triggers an exception.
2564
2569
2565 2004-12-03 Fernando Perez <fperez@colorado.edu>
2570 2004-12-03 Fernando Perez <fperez@colorado.edu>
2566
2571
2567 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2572 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2568 be triggered when using 'run -p'. An incorrect option flag was
2573 be triggered when using 'run -p'. An incorrect option flag was
2569 being set ('d' instead of 'D').
2574 being set ('d' instead of 'D').
2570 (manpage): fix missing escaped \- sign.
2575 (manpage): fix missing escaped \- sign.
2571
2576
2572 2004-11-30 *** Released version 0.6.5
2577 2004-11-30 *** Released version 0.6.5
2573
2578
2574 2004-11-30 Fernando Perez <fperez@colorado.edu>
2579 2004-11-30 Fernando Perez <fperez@colorado.edu>
2575
2580
2576 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2581 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2577 setting with -d option.
2582 setting with -d option.
2578
2583
2579 * setup.py (docfiles): Fix problem where the doc glob I was using
2584 * setup.py (docfiles): Fix problem where the doc glob I was using
2580 was COMPLETELY BROKEN. It was giving the right files by pure
2585 was COMPLETELY BROKEN. It was giving the right files by pure
2581 accident, but failed once I tried to include ipython.el. Note:
2586 accident, but failed once I tried to include ipython.el. Note:
2582 glob() does NOT allow you to do exclusion on multiple endings!
2587 glob() does NOT allow you to do exclusion on multiple endings!
2583
2588
2584 2004-11-29 Fernando Perez <fperez@colorado.edu>
2589 2004-11-29 Fernando Perez <fperez@colorado.edu>
2585
2590
2586 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2591 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2587 the manpage as the source. Better formatting & consistency.
2592 the manpage as the source. Better formatting & consistency.
2588
2593
2589 * IPython/Magic.py (magic_run): Added new -d option, to run
2594 * IPython/Magic.py (magic_run): Added new -d option, to run
2590 scripts under the control of the python pdb debugger. Note that
2595 scripts under the control of the python pdb debugger. Note that
2591 this required changing the %prun option -d to -D, to avoid a clash
2596 this required changing the %prun option -d to -D, to avoid a clash
2592 (since %run must pass options to %prun, and getopt is too dumb to
2597 (since %run must pass options to %prun, and getopt is too dumb to
2593 handle options with string values with embedded spaces). Thanks
2598 handle options with string values with embedded spaces). Thanks
2594 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2599 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2595 (magic_who_ls): added type matching to %who and %whos, so that one
2600 (magic_who_ls): added type matching to %who and %whos, so that one
2596 can filter their output to only include variables of certain
2601 can filter their output to only include variables of certain
2597 types. Another suggestion by Matthew.
2602 types. Another suggestion by Matthew.
2598 (magic_whos): Added memory summaries in kb and Mb for arrays.
2603 (magic_whos): Added memory summaries in kb and Mb for arrays.
2599 (magic_who): Improve formatting (break lines every 9 vars).
2604 (magic_who): Improve formatting (break lines every 9 vars).
2600
2605
2601 2004-11-28 Fernando Perez <fperez@colorado.edu>
2606 2004-11-28 Fernando Perez <fperez@colorado.edu>
2602
2607
2603 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2608 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2604 cache when empty lines were present.
2609 cache when empty lines were present.
2605
2610
2606 2004-11-24 Fernando Perez <fperez@colorado.edu>
2611 2004-11-24 Fernando Perez <fperez@colorado.edu>
2607
2612
2608 * IPython/usage.py (__doc__): document the re-activated threading
2613 * IPython/usage.py (__doc__): document the re-activated threading
2609 options for WX and GTK.
2614 options for WX and GTK.
2610
2615
2611 2004-11-23 Fernando Perez <fperez@colorado.edu>
2616 2004-11-23 Fernando Perez <fperez@colorado.edu>
2612
2617
2613 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2618 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2614 the -wthread and -gthread options, along with a new -tk one to try
2619 the -wthread and -gthread options, along with a new -tk one to try
2615 and coordinate Tk threading with wx/gtk. The tk support is very
2620 and coordinate Tk threading with wx/gtk. The tk support is very
2616 platform dependent, since it seems to require Tcl and Tk to be
2621 platform dependent, since it seems to require Tcl and Tk to be
2617 built with threads (Fedora1/2 appears NOT to have it, but in
2622 built with threads (Fedora1/2 appears NOT to have it, but in
2618 Prabhu's Debian boxes it works OK). But even with some Tk
2623 Prabhu's Debian boxes it works OK). But even with some Tk
2619 limitations, this is a great improvement.
2624 limitations, this is a great improvement.
2620
2625
2621 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2626 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2622 info in user prompts. Patch by Prabhu.
2627 info in user prompts. Patch by Prabhu.
2623
2628
2624 2004-11-18 Fernando Perez <fperez@colorado.edu>
2629 2004-11-18 Fernando Perez <fperez@colorado.edu>
2625
2630
2626 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2631 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2627 EOFErrors and bail, to avoid infinite loops if a non-terminating
2632 EOFErrors and bail, to avoid infinite loops if a non-terminating
2628 file is fed into ipython. Patch submitted in issue 19 by user,
2633 file is fed into ipython. Patch submitted in issue 19 by user,
2629 many thanks.
2634 many thanks.
2630
2635
2631 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2636 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2632 autoquote/parens in continuation prompts, which can cause lots of
2637 autoquote/parens in continuation prompts, which can cause lots of
2633 problems. Closes roundup issue 20.
2638 problems. Closes roundup issue 20.
2634
2639
2635 2004-11-17 Fernando Perez <fperez@colorado.edu>
2640 2004-11-17 Fernando Perez <fperez@colorado.edu>
2636
2641
2637 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2642 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2638 reported as debian bug #280505. I'm not sure my local changelog
2643 reported as debian bug #280505. I'm not sure my local changelog
2639 entry has the proper debian format (Jack?).
2644 entry has the proper debian format (Jack?).
2640
2645
2641 2004-11-08 *** Released version 0.6.4
2646 2004-11-08 *** Released version 0.6.4
2642
2647
2643 2004-11-08 Fernando Perez <fperez@colorado.edu>
2648 2004-11-08 Fernando Perez <fperez@colorado.edu>
2644
2649
2645 * IPython/iplib.py (init_readline): Fix exit message for Windows
2650 * IPython/iplib.py (init_readline): Fix exit message for Windows
2646 when readline is active. Thanks to a report by Eric Jones
2651 when readline is active. Thanks to a report by Eric Jones
2647 <eric-AT-enthought.com>.
2652 <eric-AT-enthought.com>.
2648
2653
2649 2004-11-07 Fernando Perez <fperez@colorado.edu>
2654 2004-11-07 Fernando Perez <fperez@colorado.edu>
2650
2655
2651 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2656 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2652 sometimes seen by win2k/cygwin users.
2657 sometimes seen by win2k/cygwin users.
2653
2658
2654 2004-11-06 Fernando Perez <fperez@colorado.edu>
2659 2004-11-06 Fernando Perez <fperez@colorado.edu>
2655
2660
2656 * IPython/iplib.py (interact): Change the handling of %Exit from
2661 * IPython/iplib.py (interact): Change the handling of %Exit from
2657 trying to propagate a SystemExit to an internal ipython flag.
2662 trying to propagate a SystemExit to an internal ipython flag.
2658 This is less elegant than using Python's exception mechanism, but
2663 This is less elegant than using Python's exception mechanism, but
2659 I can't get that to work reliably with threads, so under -pylab
2664 I can't get that to work reliably with threads, so under -pylab
2660 %Exit was hanging IPython. Cross-thread exception handling is
2665 %Exit was hanging IPython. Cross-thread exception handling is
2661 really a bitch. Thaks to a bug report by Stephen Walton
2666 really a bitch. Thaks to a bug report by Stephen Walton
2662 <stephen.walton-AT-csun.edu>.
2667 <stephen.walton-AT-csun.edu>.
2663
2668
2664 2004-11-04 Fernando Perez <fperez@colorado.edu>
2669 2004-11-04 Fernando Perez <fperez@colorado.edu>
2665
2670
2666 * IPython/iplib.py (raw_input_original): store a pointer to the
2671 * IPython/iplib.py (raw_input_original): store a pointer to the
2667 true raw_input to harden against code which can modify it
2672 true raw_input to harden against code which can modify it
2668 (wx.py.PyShell does this and would otherwise crash ipython).
2673 (wx.py.PyShell does this and would otherwise crash ipython).
2669 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2674 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2670
2675
2671 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2676 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2672 Ctrl-C problem, which does not mess up the input line.
2677 Ctrl-C problem, which does not mess up the input line.
2673
2678
2674 2004-11-03 Fernando Perez <fperez@colorado.edu>
2679 2004-11-03 Fernando Perez <fperez@colorado.edu>
2675
2680
2676 * IPython/Release.py: Changed licensing to BSD, in all files.
2681 * IPython/Release.py: Changed licensing to BSD, in all files.
2677 (name): lowercase name for tarball/RPM release.
2682 (name): lowercase name for tarball/RPM release.
2678
2683
2679 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2684 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2680 use throughout ipython.
2685 use throughout ipython.
2681
2686
2682 * IPython/Magic.py (Magic._ofind): Switch to using the new
2687 * IPython/Magic.py (Magic._ofind): Switch to using the new
2683 OInspect.getdoc() function.
2688 OInspect.getdoc() function.
2684
2689
2685 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2690 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2686 of the line currently being canceled via Ctrl-C. It's extremely
2691 of the line currently being canceled via Ctrl-C. It's extremely
2687 ugly, but I don't know how to do it better (the problem is one of
2692 ugly, but I don't know how to do it better (the problem is one of
2688 handling cross-thread exceptions).
2693 handling cross-thread exceptions).
2689
2694
2690 2004-10-28 Fernando Perez <fperez@colorado.edu>
2695 2004-10-28 Fernando Perez <fperez@colorado.edu>
2691
2696
2692 * IPython/Shell.py (signal_handler): add signal handlers to trap
2697 * IPython/Shell.py (signal_handler): add signal handlers to trap
2693 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2698 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2694 report by Francesc Alted.
2699 report by Francesc Alted.
2695
2700
2696 2004-10-21 Fernando Perez <fperez@colorado.edu>
2701 2004-10-21 Fernando Perez <fperez@colorado.edu>
2697
2702
2698 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2703 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2699 to % for pysh syntax extensions.
2704 to % for pysh syntax extensions.
2700
2705
2701 2004-10-09 Fernando Perez <fperez@colorado.edu>
2706 2004-10-09 Fernando Perez <fperez@colorado.edu>
2702
2707
2703 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2708 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2704 arrays to print a more useful summary, without calling str(arr).
2709 arrays to print a more useful summary, without calling str(arr).
2705 This avoids the problem of extremely lengthy computations which
2710 This avoids the problem of extremely lengthy computations which
2706 occur if arr is large, and appear to the user as a system lockup
2711 occur if arr is large, and appear to the user as a system lockup
2707 with 100% cpu activity. After a suggestion by Kristian Sandberg
2712 with 100% cpu activity. After a suggestion by Kristian Sandberg
2708 <Kristian.Sandberg@colorado.edu>.
2713 <Kristian.Sandberg@colorado.edu>.
2709 (Magic.__init__): fix bug in global magic escapes not being
2714 (Magic.__init__): fix bug in global magic escapes not being
2710 correctly set.
2715 correctly set.
2711
2716
2712 2004-10-08 Fernando Perez <fperez@colorado.edu>
2717 2004-10-08 Fernando Perez <fperez@colorado.edu>
2713
2718
2714 * IPython/Magic.py (__license__): change to absolute imports of
2719 * IPython/Magic.py (__license__): change to absolute imports of
2715 ipython's own internal packages, to start adapting to the absolute
2720 ipython's own internal packages, to start adapting to the absolute
2716 import requirement of PEP-328.
2721 import requirement of PEP-328.
2717
2722
2718 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2723 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2719 files, and standardize author/license marks through the Release
2724 files, and standardize author/license marks through the Release
2720 module instead of having per/file stuff (except for files with
2725 module instead of having per/file stuff (except for files with
2721 particular licenses, like the MIT/PSF-licensed codes).
2726 particular licenses, like the MIT/PSF-licensed codes).
2722
2727
2723 * IPython/Debugger.py: remove dead code for python 2.1
2728 * IPython/Debugger.py: remove dead code for python 2.1
2724
2729
2725 2004-10-04 Fernando Perez <fperez@colorado.edu>
2730 2004-10-04 Fernando Perez <fperez@colorado.edu>
2726
2731
2727 * IPython/iplib.py (ipmagic): New function for accessing magics
2732 * IPython/iplib.py (ipmagic): New function for accessing magics
2728 via a normal python function call.
2733 via a normal python function call.
2729
2734
2730 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2735 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2731 from '@' to '%', to accomodate the new @decorator syntax of python
2736 from '@' to '%', to accomodate the new @decorator syntax of python
2732 2.4.
2737 2.4.
2733
2738
2734 2004-09-29 Fernando Perez <fperez@colorado.edu>
2739 2004-09-29 Fernando Perez <fperez@colorado.edu>
2735
2740
2736 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2741 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2737 matplotlib.use to prevent running scripts which try to switch
2742 matplotlib.use to prevent running scripts which try to switch
2738 interactive backends from within ipython. This will just crash
2743 interactive backends from within ipython. This will just crash
2739 the python interpreter, so we can't allow it (but a detailed error
2744 the python interpreter, so we can't allow it (but a detailed error
2740 is given to the user).
2745 is given to the user).
2741
2746
2742 2004-09-28 Fernando Perez <fperez@colorado.edu>
2747 2004-09-28 Fernando Perez <fperez@colorado.edu>
2743
2748
2744 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2749 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2745 matplotlib-related fixes so that using @run with non-matplotlib
2750 matplotlib-related fixes so that using @run with non-matplotlib
2746 scripts doesn't pop up spurious plot windows. This requires
2751 scripts doesn't pop up spurious plot windows. This requires
2747 matplotlib >= 0.63, where I had to make some changes as well.
2752 matplotlib >= 0.63, where I had to make some changes as well.
2748
2753
2749 * IPython/ipmaker.py (make_IPython): update version requirement to
2754 * IPython/ipmaker.py (make_IPython): update version requirement to
2750 python 2.2.
2755 python 2.2.
2751
2756
2752 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2757 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2753 banner arg for embedded customization.
2758 banner arg for embedded customization.
2754
2759
2755 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2760 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2756 explicit uses of __IP as the IPython's instance name. Now things
2761 explicit uses of __IP as the IPython's instance name. Now things
2757 are properly handled via the shell.name value. The actual code
2762 are properly handled via the shell.name value. The actual code
2758 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2763 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2759 is much better than before. I'll clean things completely when the
2764 is much better than before. I'll clean things completely when the
2760 magic stuff gets a real overhaul.
2765 magic stuff gets a real overhaul.
2761
2766
2762 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2767 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2763 minor changes to debian dir.
2768 minor changes to debian dir.
2764
2769
2765 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2770 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2766 pointer to the shell itself in the interactive namespace even when
2771 pointer to the shell itself in the interactive namespace even when
2767 a user-supplied dict is provided. This is needed for embedding
2772 a user-supplied dict is provided. This is needed for embedding
2768 purposes (found by tests with Michel Sanner).
2773 purposes (found by tests with Michel Sanner).
2769
2774
2770 2004-09-27 Fernando Perez <fperez@colorado.edu>
2775 2004-09-27 Fernando Perez <fperez@colorado.edu>
2771
2776
2772 * IPython/UserConfig/ipythonrc: remove []{} from
2777 * IPython/UserConfig/ipythonrc: remove []{} from
2773 readline_remove_delims, so that things like [modname.<TAB> do
2778 readline_remove_delims, so that things like [modname.<TAB> do
2774 proper completion. This disables [].TAB, but that's a less common
2779 proper completion. This disables [].TAB, but that's a less common
2775 case than module names in list comprehensions, for example.
2780 case than module names in list comprehensions, for example.
2776 Thanks to a report by Andrea Riciputi.
2781 Thanks to a report by Andrea Riciputi.
2777
2782
2778 2004-09-09 Fernando Perez <fperez@colorado.edu>
2783 2004-09-09 Fernando Perez <fperez@colorado.edu>
2779
2784
2780 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2785 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2781 blocking problems in win32 and osx. Fix by John.
2786 blocking problems in win32 and osx. Fix by John.
2782
2787
2783 2004-09-08 Fernando Perez <fperez@colorado.edu>
2788 2004-09-08 Fernando Perez <fperez@colorado.edu>
2784
2789
2785 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2790 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2786 for Win32 and OSX. Fix by John Hunter.
2791 for Win32 and OSX. Fix by John Hunter.
2787
2792
2788 2004-08-30 *** Released version 0.6.3
2793 2004-08-30 *** Released version 0.6.3
2789
2794
2790 2004-08-30 Fernando Perez <fperez@colorado.edu>
2795 2004-08-30 Fernando Perez <fperez@colorado.edu>
2791
2796
2792 * setup.py (isfile): Add manpages to list of dependent files to be
2797 * setup.py (isfile): Add manpages to list of dependent files to be
2793 updated.
2798 updated.
2794
2799
2795 2004-08-27 Fernando Perez <fperez@colorado.edu>
2800 2004-08-27 Fernando Perez <fperez@colorado.edu>
2796
2801
2797 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2802 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2798 for now. They don't really work with standalone WX/GTK code
2803 for now. They don't really work with standalone WX/GTK code
2799 (though matplotlib IS working fine with both of those backends).
2804 (though matplotlib IS working fine with both of those backends).
2800 This will neeed much more testing. I disabled most things with
2805 This will neeed much more testing. I disabled most things with
2801 comments, so turning it back on later should be pretty easy.
2806 comments, so turning it back on later should be pretty easy.
2802
2807
2803 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2808 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2804 autocalling of expressions like r'foo', by modifying the line
2809 autocalling of expressions like r'foo', by modifying the line
2805 split regexp. Closes
2810 split regexp. Closes
2806 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2811 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2807 Riley <ipythonbugs-AT-sabi.net>.
2812 Riley <ipythonbugs-AT-sabi.net>.
2808 (InteractiveShell.mainloop): honor --nobanner with banner
2813 (InteractiveShell.mainloop): honor --nobanner with banner
2809 extensions.
2814 extensions.
2810
2815
2811 * IPython/Shell.py: Significant refactoring of all classes, so
2816 * IPython/Shell.py: Significant refactoring of all classes, so
2812 that we can really support ALL matplotlib backends and threading
2817 that we can really support ALL matplotlib backends and threading
2813 models (John spotted a bug with Tk which required this). Now we
2818 models (John spotted a bug with Tk which required this). Now we
2814 should support single-threaded, WX-threads and GTK-threads, both
2819 should support single-threaded, WX-threads and GTK-threads, both
2815 for generic code and for matplotlib.
2820 for generic code and for matplotlib.
2816
2821
2817 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2822 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2818 -pylab, to simplify things for users. Will also remove the pylab
2823 -pylab, to simplify things for users. Will also remove the pylab
2819 profile, since now all of matplotlib configuration is directly
2824 profile, since now all of matplotlib configuration is directly
2820 handled here. This also reduces startup time.
2825 handled here. This also reduces startup time.
2821
2826
2822 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2827 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2823 shell wasn't being correctly called. Also in IPShellWX.
2828 shell wasn't being correctly called. Also in IPShellWX.
2824
2829
2825 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2830 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2826 fine-tune banner.
2831 fine-tune banner.
2827
2832
2828 * IPython/numutils.py (spike): Deprecate these spike functions,
2833 * IPython/numutils.py (spike): Deprecate these spike functions,
2829 delete (long deprecated) gnuplot_exec handler.
2834 delete (long deprecated) gnuplot_exec handler.
2830
2835
2831 2004-08-26 Fernando Perez <fperez@colorado.edu>
2836 2004-08-26 Fernando Perez <fperez@colorado.edu>
2832
2837
2833 * ipython.1: Update for threading options, plus some others which
2838 * ipython.1: Update for threading options, plus some others which
2834 were missing.
2839 were missing.
2835
2840
2836 * IPython/ipmaker.py (__call__): Added -wthread option for
2841 * IPython/ipmaker.py (__call__): Added -wthread option for
2837 wxpython thread handling. Make sure threading options are only
2842 wxpython thread handling. Make sure threading options are only
2838 valid at the command line.
2843 valid at the command line.
2839
2844
2840 * scripts/ipython: moved shell selection into a factory function
2845 * scripts/ipython: moved shell selection into a factory function
2841 in Shell.py, to keep the starter script to a minimum.
2846 in Shell.py, to keep the starter script to a minimum.
2842
2847
2843 2004-08-25 Fernando Perez <fperez@colorado.edu>
2848 2004-08-25 Fernando Perez <fperez@colorado.edu>
2844
2849
2845 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2850 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2846 John. Along with some recent changes he made to matplotlib, the
2851 John. Along with some recent changes he made to matplotlib, the
2847 next versions of both systems should work very well together.
2852 next versions of both systems should work very well together.
2848
2853
2849 2004-08-24 Fernando Perez <fperez@colorado.edu>
2854 2004-08-24 Fernando Perez <fperez@colorado.edu>
2850
2855
2851 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2856 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2852 tried to switch the profiling to using hotshot, but I'm getting
2857 tried to switch the profiling to using hotshot, but I'm getting
2853 strange errors from prof.runctx() there. I may be misreading the
2858 strange errors from prof.runctx() there. I may be misreading the
2854 docs, but it looks weird. For now the profiling code will
2859 docs, but it looks weird. For now the profiling code will
2855 continue to use the standard profiler.
2860 continue to use the standard profiler.
2856
2861
2857 2004-08-23 Fernando Perez <fperez@colorado.edu>
2862 2004-08-23 Fernando Perez <fperez@colorado.edu>
2858
2863
2859 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2864 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2860 threaded shell, by John Hunter. It's not quite ready yet, but
2865 threaded shell, by John Hunter. It's not quite ready yet, but
2861 close.
2866 close.
2862
2867
2863 2004-08-22 Fernando Perez <fperez@colorado.edu>
2868 2004-08-22 Fernando Perez <fperez@colorado.edu>
2864
2869
2865 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2870 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2866 in Magic and ultraTB.
2871 in Magic and ultraTB.
2867
2872
2868 * ipython.1: document threading options in manpage.
2873 * ipython.1: document threading options in manpage.
2869
2874
2870 * scripts/ipython: Changed name of -thread option to -gthread,
2875 * scripts/ipython: Changed name of -thread option to -gthread,
2871 since this is GTK specific. I want to leave the door open for a
2876 since this is GTK specific. I want to leave the door open for a
2872 -wthread option for WX, which will most likely be necessary. This
2877 -wthread option for WX, which will most likely be necessary. This
2873 change affects usage and ipmaker as well.
2878 change affects usage and ipmaker as well.
2874
2879
2875 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2880 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2876 handle the matplotlib shell issues. Code by John Hunter
2881 handle the matplotlib shell issues. Code by John Hunter
2877 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2882 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2878 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2883 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2879 broken (and disabled for end users) for now, but it puts the
2884 broken (and disabled for end users) for now, but it puts the
2880 infrastructure in place.
2885 infrastructure in place.
2881
2886
2882 2004-08-21 Fernando Perez <fperez@colorado.edu>
2887 2004-08-21 Fernando Perez <fperez@colorado.edu>
2883
2888
2884 * ipythonrc-pylab: Add matplotlib support.
2889 * ipythonrc-pylab: Add matplotlib support.
2885
2890
2886 * matplotlib_config.py: new files for matplotlib support, part of
2891 * matplotlib_config.py: new files for matplotlib support, part of
2887 the pylab profile.
2892 the pylab profile.
2888
2893
2889 * IPython/usage.py (__doc__): documented the threading options.
2894 * IPython/usage.py (__doc__): documented the threading options.
2890
2895
2891 2004-08-20 Fernando Perez <fperez@colorado.edu>
2896 2004-08-20 Fernando Perez <fperez@colorado.edu>
2892
2897
2893 * ipython: Modified the main calling routine to handle the -thread
2898 * ipython: Modified the main calling routine to handle the -thread
2894 and -mpthread options. This needs to be done as a top-level hack,
2899 and -mpthread options. This needs to be done as a top-level hack,
2895 because it determines which class to instantiate for IPython
2900 because it determines which class to instantiate for IPython
2896 itself.
2901 itself.
2897
2902
2898 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2903 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2899 classes to support multithreaded GTK operation without blocking,
2904 classes to support multithreaded GTK operation without blocking,
2900 and matplotlib with all backends. This is a lot of still very
2905 and matplotlib with all backends. This is a lot of still very
2901 experimental code, and threads are tricky. So it may still have a
2906 experimental code, and threads are tricky. So it may still have a
2902 few rough edges... This code owes a lot to
2907 few rough edges... This code owes a lot to
2903 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2908 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2904 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2909 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2905 to John Hunter for all the matplotlib work.
2910 to John Hunter for all the matplotlib work.
2906
2911
2907 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2912 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2908 options for gtk thread and matplotlib support.
2913 options for gtk thread and matplotlib support.
2909
2914
2910 2004-08-16 Fernando Perez <fperez@colorado.edu>
2915 2004-08-16 Fernando Perez <fperez@colorado.edu>
2911
2916
2912 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2917 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2913 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2918 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2914 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2919 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2915
2920
2916 2004-08-11 Fernando Perez <fperez@colorado.edu>
2921 2004-08-11 Fernando Perez <fperez@colorado.edu>
2917
2922
2918 * setup.py (isfile): Fix build so documentation gets updated for
2923 * setup.py (isfile): Fix build so documentation gets updated for
2919 rpms (it was only done for .tgz builds).
2924 rpms (it was only done for .tgz builds).
2920
2925
2921 2004-08-10 Fernando Perez <fperez@colorado.edu>
2926 2004-08-10 Fernando Perez <fperez@colorado.edu>
2922
2927
2923 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2928 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2924
2929
2925 * iplib.py : Silence syntax error exceptions in tab-completion.
2930 * iplib.py : Silence syntax error exceptions in tab-completion.
2926
2931
2927 2004-08-05 Fernando Perez <fperez@colorado.edu>
2932 2004-08-05 Fernando Perez <fperez@colorado.edu>
2928
2933
2929 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2934 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2930 'color off' mark for continuation prompts. This was causing long
2935 'color off' mark for continuation prompts. This was causing long
2931 continuation lines to mis-wrap.
2936 continuation lines to mis-wrap.
2932
2937
2933 2004-08-01 Fernando Perez <fperez@colorado.edu>
2938 2004-08-01 Fernando Perez <fperez@colorado.edu>
2934
2939
2935 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2940 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2936 for building ipython to be a parameter. All this is necessary
2941 for building ipython to be a parameter. All this is necessary
2937 right now to have a multithreaded version, but this insane
2942 right now to have a multithreaded version, but this insane
2938 non-design will be cleaned up soon. For now, it's a hack that
2943 non-design will be cleaned up soon. For now, it's a hack that
2939 works.
2944 works.
2940
2945
2941 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2946 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2942 args in various places. No bugs so far, but it's a dangerous
2947 args in various places. No bugs so far, but it's a dangerous
2943 practice.
2948 practice.
2944
2949
2945 2004-07-31 Fernando Perez <fperez@colorado.edu>
2950 2004-07-31 Fernando Perez <fperez@colorado.edu>
2946
2951
2947 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2952 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2948 fix completion of files with dots in their names under most
2953 fix completion of files with dots in their names under most
2949 profiles (pysh was OK because the completion order is different).
2954 profiles (pysh was OK because the completion order is different).
2950
2955
2951 2004-07-27 Fernando Perez <fperez@colorado.edu>
2956 2004-07-27 Fernando Perez <fperez@colorado.edu>
2952
2957
2953 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2958 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2954 keywords manually, b/c the one in keyword.py was removed in python
2959 keywords manually, b/c the one in keyword.py was removed in python
2955 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2960 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2956 This is NOT a bug under python 2.3 and earlier.
2961 This is NOT a bug under python 2.3 and earlier.
2957
2962
2958 2004-07-26 Fernando Perez <fperez@colorado.edu>
2963 2004-07-26 Fernando Perez <fperez@colorado.edu>
2959
2964
2960 * IPython/ultraTB.py (VerboseTB.text): Add another
2965 * IPython/ultraTB.py (VerboseTB.text): Add another
2961 linecache.checkcache() call to try to prevent inspect.py from
2966 linecache.checkcache() call to try to prevent inspect.py from
2962 crashing under python 2.3. I think this fixes
2967 crashing under python 2.3. I think this fixes
2963 http://www.scipy.net/roundup/ipython/issue17.
2968 http://www.scipy.net/roundup/ipython/issue17.
2964
2969
2965 2004-07-26 *** Released version 0.6.2
2970 2004-07-26 *** Released version 0.6.2
2966
2971
2967 2004-07-26 Fernando Perez <fperez@colorado.edu>
2972 2004-07-26 Fernando Perez <fperez@colorado.edu>
2968
2973
2969 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2974 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2970 fail for any number.
2975 fail for any number.
2971 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2976 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2972 empty bookmarks.
2977 empty bookmarks.
2973
2978
2974 2004-07-26 *** Released version 0.6.1
2979 2004-07-26 *** Released version 0.6.1
2975
2980
2976 2004-07-26 Fernando Perez <fperez@colorado.edu>
2981 2004-07-26 Fernando Perez <fperez@colorado.edu>
2977
2982
2978 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2983 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2979
2984
2980 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2985 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2981 escaping '()[]{}' in filenames.
2986 escaping '()[]{}' in filenames.
2982
2987
2983 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2988 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2984 Python 2.2 users who lack a proper shlex.split.
2989 Python 2.2 users who lack a proper shlex.split.
2985
2990
2986 2004-07-19 Fernando Perez <fperez@colorado.edu>
2991 2004-07-19 Fernando Perez <fperez@colorado.edu>
2987
2992
2988 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2993 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2989 for reading readline's init file. I follow the normal chain:
2994 for reading readline's init file. I follow the normal chain:
2990 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2995 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2991 report by Mike Heeter. This closes
2996 report by Mike Heeter. This closes
2992 http://www.scipy.net/roundup/ipython/issue16.
2997 http://www.scipy.net/roundup/ipython/issue16.
2993
2998
2994 2004-07-18 Fernando Perez <fperez@colorado.edu>
2999 2004-07-18 Fernando Perez <fperez@colorado.edu>
2995
3000
2996 * IPython/iplib.py (__init__): Add better handling of '\' under
3001 * IPython/iplib.py (__init__): Add better handling of '\' under
2997 Win32 for filenames. After a patch by Ville.
3002 Win32 for filenames. After a patch by Ville.
2998
3003
2999 2004-07-17 Fernando Perez <fperez@colorado.edu>
3004 2004-07-17 Fernando Perez <fperez@colorado.edu>
3000
3005
3001 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3006 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3002 autocalling would be triggered for 'foo is bar' if foo is
3007 autocalling would be triggered for 'foo is bar' if foo is
3003 callable. I also cleaned up the autocall detection code to use a
3008 callable. I also cleaned up the autocall detection code to use a
3004 regexp, which is faster. Bug reported by Alexander Schmolck.
3009 regexp, which is faster. Bug reported by Alexander Schmolck.
3005
3010
3006 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3011 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3007 '?' in them would confuse the help system. Reported by Alex
3012 '?' in them would confuse the help system. Reported by Alex
3008 Schmolck.
3013 Schmolck.
3009
3014
3010 2004-07-16 Fernando Perez <fperez@colorado.edu>
3015 2004-07-16 Fernando Perez <fperez@colorado.edu>
3011
3016
3012 * IPython/GnuplotInteractive.py (__all__): added plot2.
3017 * IPython/GnuplotInteractive.py (__all__): added plot2.
3013
3018
3014 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3019 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3015 plotting dictionaries, lists or tuples of 1d arrays.
3020 plotting dictionaries, lists or tuples of 1d arrays.
3016
3021
3017 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3022 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3018 optimizations.
3023 optimizations.
3019
3024
3020 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3025 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3021 the information which was there from Janko's original IPP code:
3026 the information which was there from Janko's original IPP code:
3022
3027
3023 03.05.99 20:53 porto.ifm.uni-kiel.de
3028 03.05.99 20:53 porto.ifm.uni-kiel.de
3024 --Started changelog.
3029 --Started changelog.
3025 --make clear do what it say it does
3030 --make clear do what it say it does
3026 --added pretty output of lines from inputcache
3031 --added pretty output of lines from inputcache
3027 --Made Logger a mixin class, simplifies handling of switches
3032 --Made Logger a mixin class, simplifies handling of switches
3028 --Added own completer class. .string<TAB> expands to last history
3033 --Added own completer class. .string<TAB> expands to last history
3029 line which starts with string. The new expansion is also present
3034 line which starts with string. The new expansion is also present
3030 with Ctrl-r from the readline library. But this shows, who this
3035 with Ctrl-r from the readline library. But this shows, who this
3031 can be done for other cases.
3036 can be done for other cases.
3032 --Added convention that all shell functions should accept a
3037 --Added convention that all shell functions should accept a
3033 parameter_string This opens the door for different behaviour for
3038 parameter_string This opens the door for different behaviour for
3034 each function. @cd is a good example of this.
3039 each function. @cd is a good example of this.
3035
3040
3036 04.05.99 12:12 porto.ifm.uni-kiel.de
3041 04.05.99 12:12 porto.ifm.uni-kiel.de
3037 --added logfile rotation
3042 --added logfile rotation
3038 --added new mainloop method which freezes first the namespace
3043 --added new mainloop method which freezes first the namespace
3039
3044
3040 07.05.99 21:24 porto.ifm.uni-kiel.de
3045 07.05.99 21:24 porto.ifm.uni-kiel.de
3041 --added the docreader classes. Now there is a help system.
3046 --added the docreader classes. Now there is a help system.
3042 -This is only a first try. Currently it's not easy to put new
3047 -This is only a first try. Currently it's not easy to put new
3043 stuff in the indices. But this is the way to go. Info would be
3048 stuff in the indices. But this is the way to go. Info would be
3044 better, but HTML is every where and not everybody has an info
3049 better, but HTML is every where and not everybody has an info
3045 system installed and it's not so easy to change html-docs to info.
3050 system installed and it's not so easy to change html-docs to info.
3046 --added global logfile option
3051 --added global logfile option
3047 --there is now a hook for object inspection method pinfo needs to
3052 --there is now a hook for object inspection method pinfo needs to
3048 be provided for this. Can be reached by two '??'.
3053 be provided for this. Can be reached by two '??'.
3049
3054
3050 08.05.99 20:51 porto.ifm.uni-kiel.de
3055 08.05.99 20:51 porto.ifm.uni-kiel.de
3051 --added a README
3056 --added a README
3052 --bug in rc file. Something has changed so functions in the rc
3057 --bug in rc file. Something has changed so functions in the rc
3053 file need to reference the shell and not self. Not clear if it's a
3058 file need to reference the shell and not self. Not clear if it's a
3054 bug or feature.
3059 bug or feature.
3055 --changed rc file for new behavior
3060 --changed rc file for new behavior
3056
3061
3057 2004-07-15 Fernando Perez <fperez@colorado.edu>
3062 2004-07-15 Fernando Perez <fperez@colorado.edu>
3058
3063
3059 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3064 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3060 cache was falling out of sync in bizarre manners when multi-line
3065 cache was falling out of sync in bizarre manners when multi-line
3061 input was present. Minor optimizations and cleanup.
3066 input was present. Minor optimizations and cleanup.
3062
3067
3063 (Logger): Remove old Changelog info for cleanup. This is the
3068 (Logger): Remove old Changelog info for cleanup. This is the
3064 information which was there from Janko's original code:
3069 information which was there from Janko's original code:
3065
3070
3066 Changes to Logger: - made the default log filename a parameter
3071 Changes to Logger: - made the default log filename a parameter
3067
3072
3068 - put a check for lines beginning with !@? in log(). Needed
3073 - put a check for lines beginning with !@? in log(). Needed
3069 (even if the handlers properly log their lines) for mid-session
3074 (even if the handlers properly log their lines) for mid-session
3070 logging activation to work properly. Without this, lines logged
3075 logging activation to work properly. Without this, lines logged
3071 in mid session, which get read from the cache, would end up
3076 in mid session, which get read from the cache, would end up
3072 'bare' (with !@? in the open) in the log. Now they are caught
3077 'bare' (with !@? in the open) in the log. Now they are caught
3073 and prepended with a #.
3078 and prepended with a #.
3074
3079
3075 * IPython/iplib.py (InteractiveShell.init_readline): added check
3080 * IPython/iplib.py (InteractiveShell.init_readline): added check
3076 in case MagicCompleter fails to be defined, so we don't crash.
3081 in case MagicCompleter fails to be defined, so we don't crash.
3077
3082
3078 2004-07-13 Fernando Perez <fperez@colorado.edu>
3083 2004-07-13 Fernando Perez <fperez@colorado.edu>
3079
3084
3080 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3085 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3081 of EPS if the requested filename ends in '.eps'.
3086 of EPS if the requested filename ends in '.eps'.
3082
3087
3083 2004-07-04 Fernando Perez <fperez@colorado.edu>
3088 2004-07-04 Fernando Perez <fperez@colorado.edu>
3084
3089
3085 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3090 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3086 escaping of quotes when calling the shell.
3091 escaping of quotes when calling the shell.
3087
3092
3088 2004-07-02 Fernando Perez <fperez@colorado.edu>
3093 2004-07-02 Fernando Perez <fperez@colorado.edu>
3089
3094
3090 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3095 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3091 gettext not working because we were clobbering '_'. Fixes
3096 gettext not working because we were clobbering '_'. Fixes
3092 http://www.scipy.net/roundup/ipython/issue6.
3097 http://www.scipy.net/roundup/ipython/issue6.
3093
3098
3094 2004-07-01 Fernando Perez <fperez@colorado.edu>
3099 2004-07-01 Fernando Perez <fperez@colorado.edu>
3095
3100
3096 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3101 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3097 into @cd. Patch by Ville.
3102 into @cd. Patch by Ville.
3098
3103
3099 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3104 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3100 new function to store things after ipmaker runs. Patch by Ville.
3105 new function to store things after ipmaker runs. Patch by Ville.
3101 Eventually this will go away once ipmaker is removed and the class
3106 Eventually this will go away once ipmaker is removed and the class
3102 gets cleaned up, but for now it's ok. Key functionality here is
3107 gets cleaned up, but for now it's ok. Key functionality here is
3103 the addition of the persistent storage mechanism, a dict for
3108 the addition of the persistent storage mechanism, a dict for
3104 keeping data across sessions (for now just bookmarks, but more can
3109 keeping data across sessions (for now just bookmarks, but more can
3105 be implemented later).
3110 be implemented later).
3106
3111
3107 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3112 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3108 persistent across sections. Patch by Ville, I modified it
3113 persistent across sections. Patch by Ville, I modified it
3109 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3114 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3110 added a '-l' option to list all bookmarks.
3115 added a '-l' option to list all bookmarks.
3111
3116
3112 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3117 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3113 center for cleanup. Registered with atexit.register(). I moved
3118 center for cleanup. Registered with atexit.register(). I moved
3114 here the old exit_cleanup(). After a patch by Ville.
3119 here the old exit_cleanup(). After a patch by Ville.
3115
3120
3116 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3121 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3117 characters in the hacked shlex_split for python 2.2.
3122 characters in the hacked shlex_split for python 2.2.
3118
3123
3119 * IPython/iplib.py (file_matches): more fixes to filenames with
3124 * IPython/iplib.py (file_matches): more fixes to filenames with
3120 whitespace in them. It's not perfect, but limitations in python's
3125 whitespace in them. It's not perfect, but limitations in python's
3121 readline make it impossible to go further.
3126 readline make it impossible to go further.
3122
3127
3123 2004-06-29 Fernando Perez <fperez@colorado.edu>
3128 2004-06-29 Fernando Perez <fperez@colorado.edu>
3124
3129
3125 * IPython/iplib.py (file_matches): escape whitespace correctly in
3130 * IPython/iplib.py (file_matches): escape whitespace correctly in
3126 filename completions. Bug reported by Ville.
3131 filename completions. Bug reported by Ville.
3127
3132
3128 2004-06-28 Fernando Perez <fperez@colorado.edu>
3133 2004-06-28 Fernando Perez <fperez@colorado.edu>
3129
3134
3130 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3135 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3131 the history file will be called 'history-PROFNAME' (or just
3136 the history file will be called 'history-PROFNAME' (or just
3132 'history' if no profile is loaded). I was getting annoyed at
3137 'history' if no profile is loaded). I was getting annoyed at
3133 getting my Numerical work history clobbered by pysh sessions.
3138 getting my Numerical work history clobbered by pysh sessions.
3134
3139
3135 * IPython/iplib.py (InteractiveShell.__init__): Internal
3140 * IPython/iplib.py (InteractiveShell.__init__): Internal
3136 getoutputerror() function so that we can honor the system_verbose
3141 getoutputerror() function so that we can honor the system_verbose
3137 flag for _all_ system calls. I also added escaping of #
3142 flag for _all_ system calls. I also added escaping of #
3138 characters here to avoid confusing Itpl.
3143 characters here to avoid confusing Itpl.
3139
3144
3140 * IPython/Magic.py (shlex_split): removed call to shell in
3145 * IPython/Magic.py (shlex_split): removed call to shell in
3141 parse_options and replaced it with shlex.split(). The annoying
3146 parse_options and replaced it with shlex.split(). The annoying
3142 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3147 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3143 to backport it from 2.3, with several frail hacks (the shlex
3148 to backport it from 2.3, with several frail hacks (the shlex
3144 module is rather limited in 2.2). Thanks to a suggestion by Ville
3149 module is rather limited in 2.2). Thanks to a suggestion by Ville
3145 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3150 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3146 problem.
3151 problem.
3147
3152
3148 (Magic.magic_system_verbose): new toggle to print the actual
3153 (Magic.magic_system_verbose): new toggle to print the actual
3149 system calls made by ipython. Mainly for debugging purposes.
3154 system calls made by ipython. Mainly for debugging purposes.
3150
3155
3151 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3156 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3152 doesn't support persistence. Reported (and fix suggested) by
3157 doesn't support persistence. Reported (and fix suggested) by
3153 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3158 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3154
3159
3155 2004-06-26 Fernando Perez <fperez@colorado.edu>
3160 2004-06-26 Fernando Perez <fperez@colorado.edu>
3156
3161
3157 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3162 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3158 continue prompts.
3163 continue prompts.
3159
3164
3160 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3165 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3161 function (basically a big docstring) and a few more things here to
3166 function (basically a big docstring) and a few more things here to
3162 speedup startup. pysh.py is now very lightweight. We want because
3167 speedup startup. pysh.py is now very lightweight. We want because
3163 it gets execfile'd, while InterpreterExec gets imported, so
3168 it gets execfile'd, while InterpreterExec gets imported, so
3164 byte-compilation saves time.
3169 byte-compilation saves time.
3165
3170
3166 2004-06-25 Fernando Perez <fperez@colorado.edu>
3171 2004-06-25 Fernando Perez <fperez@colorado.edu>
3167
3172
3168 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3173 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3169 -NUM', which was recently broken.
3174 -NUM', which was recently broken.
3170
3175
3171 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3176 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3172 in multi-line input (but not !!, which doesn't make sense there).
3177 in multi-line input (but not !!, which doesn't make sense there).
3173
3178
3174 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3179 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3175 It's just too useful, and people can turn it off in the less
3180 It's just too useful, and people can turn it off in the less
3176 common cases where it's a problem.
3181 common cases where it's a problem.
3177
3182
3178 2004-06-24 Fernando Perez <fperez@colorado.edu>
3183 2004-06-24 Fernando Perez <fperez@colorado.edu>
3179
3184
3180 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3185 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3181 special syntaxes (like alias calling) is now allied in multi-line
3186 special syntaxes (like alias calling) is now allied in multi-line
3182 input. This is still _very_ experimental, but it's necessary for
3187 input. This is still _very_ experimental, but it's necessary for
3183 efficient shell usage combining python looping syntax with system
3188 efficient shell usage combining python looping syntax with system
3184 calls. For now it's restricted to aliases, I don't think it
3189 calls. For now it's restricted to aliases, I don't think it
3185 really even makes sense to have this for magics.
3190 really even makes sense to have this for magics.
3186
3191
3187 2004-06-23 Fernando Perez <fperez@colorado.edu>
3192 2004-06-23 Fernando Perez <fperez@colorado.edu>
3188
3193
3189 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3194 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3190 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3195 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3191
3196
3192 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3197 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3193 extensions under Windows (after code sent by Gary Bishop). The
3198 extensions under Windows (after code sent by Gary Bishop). The
3194 extensions considered 'executable' are stored in IPython's rc
3199 extensions considered 'executable' are stored in IPython's rc
3195 structure as win_exec_ext.
3200 structure as win_exec_ext.
3196
3201
3197 * IPython/genutils.py (shell): new function, like system() but
3202 * IPython/genutils.py (shell): new function, like system() but
3198 without return value. Very useful for interactive shell work.
3203 without return value. Very useful for interactive shell work.
3199
3204
3200 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3205 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3201 delete aliases.
3206 delete aliases.
3202
3207
3203 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3208 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3204 sure that the alias table doesn't contain python keywords.
3209 sure that the alias table doesn't contain python keywords.
3205
3210
3206 2004-06-21 Fernando Perez <fperez@colorado.edu>
3211 2004-06-21 Fernando Perez <fperez@colorado.edu>
3207
3212
3208 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3213 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3209 non-existent items are found in $PATH. Reported by Thorsten.
3214 non-existent items are found in $PATH. Reported by Thorsten.
3210
3215
3211 2004-06-20 Fernando Perez <fperez@colorado.edu>
3216 2004-06-20 Fernando Perez <fperez@colorado.edu>
3212
3217
3213 * IPython/iplib.py (complete): modified the completer so that the
3218 * IPython/iplib.py (complete): modified the completer so that the
3214 order of priorities can be easily changed at runtime.
3219 order of priorities can be easily changed at runtime.
3215
3220
3216 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3221 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3217 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3222 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3218
3223
3219 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3224 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3220 expand Python variables prepended with $ in all system calls. The
3225 expand Python variables prepended with $ in all system calls. The
3221 same was done to InteractiveShell.handle_shell_escape. Now all
3226 same was done to InteractiveShell.handle_shell_escape. Now all
3222 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3227 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3223 expansion of python variables and expressions according to the
3228 expansion of python variables and expressions according to the
3224 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3229 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3225
3230
3226 Though PEP-215 has been rejected, a similar (but simpler) one
3231 Though PEP-215 has been rejected, a similar (but simpler) one
3227 seems like it will go into Python 2.4, PEP-292 -
3232 seems like it will go into Python 2.4, PEP-292 -
3228 http://www.python.org/peps/pep-0292.html.
3233 http://www.python.org/peps/pep-0292.html.
3229
3234
3230 I'll keep the full syntax of PEP-215, since IPython has since the
3235 I'll keep the full syntax of PEP-215, since IPython has since the
3231 start used Ka-Ping Yee's reference implementation discussed there
3236 start used Ka-Ping Yee's reference implementation discussed there
3232 (Itpl), and I actually like the powerful semantics it offers.
3237 (Itpl), and I actually like the powerful semantics it offers.
3233
3238
3234 In order to access normal shell variables, the $ has to be escaped
3239 In order to access normal shell variables, the $ has to be escaped
3235 via an extra $. For example:
3240 via an extra $. For example:
3236
3241
3237 In [7]: PATH='a python variable'
3242 In [7]: PATH='a python variable'
3238
3243
3239 In [8]: !echo $PATH
3244 In [8]: !echo $PATH
3240 a python variable
3245 a python variable
3241
3246
3242 In [9]: !echo $$PATH
3247 In [9]: !echo $$PATH
3243 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3248 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3244
3249
3245 (Magic.parse_options): escape $ so the shell doesn't evaluate
3250 (Magic.parse_options): escape $ so the shell doesn't evaluate
3246 things prematurely.
3251 things prematurely.
3247
3252
3248 * IPython/iplib.py (InteractiveShell.call_alias): added the
3253 * IPython/iplib.py (InteractiveShell.call_alias): added the
3249 ability for aliases to expand python variables via $.
3254 ability for aliases to expand python variables via $.
3250
3255
3251 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3256 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3252 system, now there's a @rehash/@rehashx pair of magics. These work
3257 system, now there's a @rehash/@rehashx pair of magics. These work
3253 like the csh rehash command, and can be invoked at any time. They
3258 like the csh rehash command, and can be invoked at any time. They
3254 build a table of aliases to everything in the user's $PATH
3259 build a table of aliases to everything in the user's $PATH
3255 (@rehash uses everything, @rehashx is slower but only adds
3260 (@rehash uses everything, @rehashx is slower but only adds
3256 executable files). With this, the pysh.py-based shell profile can
3261 executable files). With this, the pysh.py-based shell profile can
3257 now simply call rehash upon startup, and full access to all
3262 now simply call rehash upon startup, and full access to all
3258 programs in the user's path is obtained.
3263 programs in the user's path is obtained.
3259
3264
3260 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3265 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3261 functionality is now fully in place. I removed the old dynamic
3266 functionality is now fully in place. I removed the old dynamic
3262 code generation based approach, in favor of a much lighter one
3267 code generation based approach, in favor of a much lighter one
3263 based on a simple dict. The advantage is that this allows me to
3268 based on a simple dict. The advantage is that this allows me to
3264 now have thousands of aliases with negligible cost (unthinkable
3269 now have thousands of aliases with negligible cost (unthinkable
3265 with the old system).
3270 with the old system).
3266
3271
3267 2004-06-19 Fernando Perez <fperez@colorado.edu>
3272 2004-06-19 Fernando Perez <fperez@colorado.edu>
3268
3273
3269 * IPython/iplib.py (__init__): extended MagicCompleter class to
3274 * IPython/iplib.py (__init__): extended MagicCompleter class to
3270 also complete (last in priority) on user aliases.
3275 also complete (last in priority) on user aliases.
3271
3276
3272 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3277 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3273 call to eval.
3278 call to eval.
3274 (ItplNS.__init__): Added a new class which functions like Itpl,
3279 (ItplNS.__init__): Added a new class which functions like Itpl,
3275 but allows configuring the namespace for the evaluation to occur
3280 but allows configuring the namespace for the evaluation to occur
3276 in.
3281 in.
3277
3282
3278 2004-06-18 Fernando Perez <fperez@colorado.edu>
3283 2004-06-18 Fernando Perez <fperez@colorado.edu>
3279
3284
3280 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3285 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3281 better message when 'exit' or 'quit' are typed (a common newbie
3286 better message when 'exit' or 'quit' are typed (a common newbie
3282 confusion).
3287 confusion).
3283
3288
3284 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3289 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3285 check for Windows users.
3290 check for Windows users.
3286
3291
3287 * IPython/iplib.py (InteractiveShell.user_setup): removed
3292 * IPython/iplib.py (InteractiveShell.user_setup): removed
3288 disabling of colors for Windows. I'll test at runtime and issue a
3293 disabling of colors for Windows. I'll test at runtime and issue a
3289 warning if Gary's readline isn't found, as to nudge users to
3294 warning if Gary's readline isn't found, as to nudge users to
3290 download it.
3295 download it.
3291
3296
3292 2004-06-16 Fernando Perez <fperez@colorado.edu>
3297 2004-06-16 Fernando Perez <fperez@colorado.edu>
3293
3298
3294 * IPython/genutils.py (Stream.__init__): changed to print errors
3299 * IPython/genutils.py (Stream.__init__): changed to print errors
3295 to sys.stderr. I had a circular dependency here. Now it's
3300 to sys.stderr. I had a circular dependency here. Now it's
3296 possible to run ipython as IDLE's shell (consider this pre-alpha,
3301 possible to run ipython as IDLE's shell (consider this pre-alpha,
3297 since true stdout things end up in the starting terminal instead
3302 since true stdout things end up in the starting terminal instead
3298 of IDLE's out).
3303 of IDLE's out).
3299
3304
3300 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3305 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3301 users who haven't # updated their prompt_in2 definitions. Remove
3306 users who haven't # updated their prompt_in2 definitions. Remove
3302 eventually.
3307 eventually.
3303 (multiple_replace): added credit to original ASPN recipe.
3308 (multiple_replace): added credit to original ASPN recipe.
3304
3309
3305 2004-06-15 Fernando Perez <fperez@colorado.edu>
3310 2004-06-15 Fernando Perez <fperez@colorado.edu>
3306
3311
3307 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3312 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3308 list of auto-defined aliases.
3313 list of auto-defined aliases.
3309
3314
3310 2004-06-13 Fernando Perez <fperez@colorado.edu>
3315 2004-06-13 Fernando Perez <fperez@colorado.edu>
3311
3316
3312 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3317 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3313 install was really requested (so setup.py can be used for other
3318 install was really requested (so setup.py can be used for other
3314 things under Windows).
3319 things under Windows).
3315
3320
3316 2004-06-10 Fernando Perez <fperez@colorado.edu>
3321 2004-06-10 Fernando Perez <fperez@colorado.edu>
3317
3322
3318 * IPython/Logger.py (Logger.create_log): Manually remove any old
3323 * IPython/Logger.py (Logger.create_log): Manually remove any old
3319 backup, since os.remove may fail under Windows. Fixes bug
3324 backup, since os.remove may fail under Windows. Fixes bug
3320 reported by Thorsten.
3325 reported by Thorsten.
3321
3326
3322 2004-06-09 Fernando Perez <fperez@colorado.edu>
3327 2004-06-09 Fernando Perez <fperez@colorado.edu>
3323
3328
3324 * examples/example-embed.py: fixed all references to %n (replaced
3329 * examples/example-embed.py: fixed all references to %n (replaced
3325 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3330 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3326 for all examples and the manual as well.
3331 for all examples and the manual as well.
3327
3332
3328 2004-06-08 Fernando Perez <fperez@colorado.edu>
3333 2004-06-08 Fernando Perez <fperez@colorado.edu>
3329
3334
3330 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3335 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3331 alignment and color management. All 3 prompt subsystems now
3336 alignment and color management. All 3 prompt subsystems now
3332 inherit from BasePrompt.
3337 inherit from BasePrompt.
3333
3338
3334 * tools/release: updates for windows installer build and tag rpms
3339 * tools/release: updates for windows installer build and tag rpms
3335 with python version (since paths are fixed).
3340 with python version (since paths are fixed).
3336
3341
3337 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3342 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3338 which will become eventually obsolete. Also fixed the default
3343 which will become eventually obsolete. Also fixed the default
3339 prompt_in2 to use \D, so at least new users start with the correct
3344 prompt_in2 to use \D, so at least new users start with the correct
3340 defaults.
3345 defaults.
3341 WARNING: Users with existing ipythonrc files will need to apply
3346 WARNING: Users with existing ipythonrc files will need to apply
3342 this fix manually!
3347 this fix manually!
3343
3348
3344 * setup.py: make windows installer (.exe). This is finally the
3349 * setup.py: make windows installer (.exe). This is finally the
3345 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3350 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3346 which I hadn't included because it required Python 2.3 (or recent
3351 which I hadn't included because it required Python 2.3 (or recent
3347 distutils).
3352 distutils).
3348
3353
3349 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3354 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3350 usage of new '\D' escape.
3355 usage of new '\D' escape.
3351
3356
3352 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3357 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3353 lacks os.getuid())
3358 lacks os.getuid())
3354 (CachedOutput.set_colors): Added the ability to turn coloring
3359 (CachedOutput.set_colors): Added the ability to turn coloring
3355 on/off with @colors even for manually defined prompt colors. It
3360 on/off with @colors even for manually defined prompt colors. It
3356 uses a nasty global, but it works safely and via the generic color
3361 uses a nasty global, but it works safely and via the generic color
3357 handling mechanism.
3362 handling mechanism.
3358 (Prompt2.__init__): Introduced new escape '\D' for continuation
3363 (Prompt2.__init__): Introduced new escape '\D' for continuation
3359 prompts. It represents the counter ('\#') as dots.
3364 prompts. It represents the counter ('\#') as dots.
3360 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3365 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3361 need to update their ipythonrc files and replace '%n' with '\D' in
3366 need to update their ipythonrc files and replace '%n' with '\D' in
3362 their prompt_in2 settings everywhere. Sorry, but there's
3367 their prompt_in2 settings everywhere. Sorry, but there's
3363 otherwise no clean way to get all prompts to properly align. The
3368 otherwise no clean way to get all prompts to properly align. The
3364 ipythonrc shipped with IPython has been updated.
3369 ipythonrc shipped with IPython has been updated.
3365
3370
3366 2004-06-07 Fernando Perez <fperez@colorado.edu>
3371 2004-06-07 Fernando Perez <fperez@colorado.edu>
3367
3372
3368 * setup.py (isfile): Pass local_icons option to latex2html, so the
3373 * setup.py (isfile): Pass local_icons option to latex2html, so the
3369 resulting HTML file is self-contained. Thanks to
3374 resulting HTML file is self-contained. Thanks to
3370 dryice-AT-liu.com.cn for the tip.
3375 dryice-AT-liu.com.cn for the tip.
3371
3376
3372 * pysh.py: I created a new profile 'shell', which implements a
3377 * pysh.py: I created a new profile 'shell', which implements a
3373 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3378 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3374 system shell, nor will it become one anytime soon. It's mainly
3379 system shell, nor will it become one anytime soon. It's mainly
3375 meant to illustrate the use of the new flexible bash-like prompts.
3380 meant to illustrate the use of the new flexible bash-like prompts.
3376 I guess it could be used by hardy souls for true shell management,
3381 I guess it could be used by hardy souls for true shell management,
3377 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3382 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3378 profile. This uses the InterpreterExec extension provided by
3383 profile. This uses the InterpreterExec extension provided by
3379 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3384 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3380
3385
3381 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3386 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3382 auto-align itself with the length of the previous input prompt
3387 auto-align itself with the length of the previous input prompt
3383 (taking into account the invisible color escapes).
3388 (taking into account the invisible color escapes).
3384 (CachedOutput.__init__): Large restructuring of this class. Now
3389 (CachedOutput.__init__): Large restructuring of this class. Now
3385 all three prompts (primary1, primary2, output) are proper objects,
3390 all three prompts (primary1, primary2, output) are proper objects,
3386 managed by the 'parent' CachedOutput class. The code is still a
3391 managed by the 'parent' CachedOutput class. The code is still a
3387 bit hackish (all prompts share state via a pointer to the cache),
3392 bit hackish (all prompts share state via a pointer to the cache),
3388 but it's overall far cleaner than before.
3393 but it's overall far cleaner than before.
3389
3394
3390 * IPython/genutils.py (getoutputerror): modified to add verbose,
3395 * IPython/genutils.py (getoutputerror): modified to add verbose,
3391 debug and header options. This makes the interface of all getout*
3396 debug and header options. This makes the interface of all getout*
3392 functions uniform.
3397 functions uniform.
3393 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3398 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3394
3399
3395 * IPython/Magic.py (Magic.default_option): added a function to
3400 * IPython/Magic.py (Magic.default_option): added a function to
3396 allow registering default options for any magic command. This
3401 allow registering default options for any magic command. This
3397 makes it easy to have profiles which customize the magics globally
3402 makes it easy to have profiles which customize the magics globally
3398 for a certain use. The values set through this function are
3403 for a certain use. The values set through this function are
3399 picked up by the parse_options() method, which all magics should
3404 picked up by the parse_options() method, which all magics should
3400 use to parse their options.
3405 use to parse their options.
3401
3406
3402 * IPython/genutils.py (warn): modified the warnings framework to
3407 * IPython/genutils.py (warn): modified the warnings framework to
3403 use the Term I/O class. I'm trying to slowly unify all of
3408 use the Term I/O class. I'm trying to slowly unify all of
3404 IPython's I/O operations to pass through Term.
3409 IPython's I/O operations to pass through Term.
3405
3410
3406 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3411 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3407 the secondary prompt to correctly match the length of the primary
3412 the secondary prompt to correctly match the length of the primary
3408 one for any prompt. Now multi-line code will properly line up
3413 one for any prompt. Now multi-line code will properly line up
3409 even for path dependent prompts, such as the new ones available
3414 even for path dependent prompts, such as the new ones available
3410 via the prompt_specials.
3415 via the prompt_specials.
3411
3416
3412 2004-06-06 Fernando Perez <fperez@colorado.edu>
3417 2004-06-06 Fernando Perez <fperez@colorado.edu>
3413
3418
3414 * IPython/Prompts.py (prompt_specials): Added the ability to have
3419 * IPython/Prompts.py (prompt_specials): Added the ability to have
3415 bash-like special sequences in the prompts, which get
3420 bash-like special sequences in the prompts, which get
3416 automatically expanded. Things like hostname, current working
3421 automatically expanded. Things like hostname, current working
3417 directory and username are implemented already, but it's easy to
3422 directory and username are implemented already, but it's easy to
3418 add more in the future. Thanks to a patch by W.J. van der Laan
3423 add more in the future. Thanks to a patch by W.J. van der Laan
3419 <gnufnork-AT-hetdigitalegat.nl>
3424 <gnufnork-AT-hetdigitalegat.nl>
3420 (prompt_specials): Added color support for prompt strings, so
3425 (prompt_specials): Added color support for prompt strings, so
3421 users can define arbitrary color setups for their prompts.
3426 users can define arbitrary color setups for their prompts.
3422
3427
3423 2004-06-05 Fernando Perez <fperez@colorado.edu>
3428 2004-06-05 Fernando Perez <fperez@colorado.edu>
3424
3429
3425 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3430 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3426 code to load Gary Bishop's readline and configure it
3431 code to load Gary Bishop's readline and configure it
3427 automatically. Thanks to Gary for help on this.
3432 automatically. Thanks to Gary for help on this.
3428
3433
3429 2004-06-01 Fernando Perez <fperez@colorado.edu>
3434 2004-06-01 Fernando Perez <fperez@colorado.edu>
3430
3435
3431 * IPython/Logger.py (Logger.create_log): fix bug for logging
3436 * IPython/Logger.py (Logger.create_log): fix bug for logging
3432 with no filename (previous fix was incomplete).
3437 with no filename (previous fix was incomplete).
3433
3438
3434 2004-05-25 Fernando Perez <fperez@colorado.edu>
3439 2004-05-25 Fernando Perez <fperez@colorado.edu>
3435
3440
3436 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3441 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3437 parens would get passed to the shell.
3442 parens would get passed to the shell.
3438
3443
3439 2004-05-20 Fernando Perez <fperez@colorado.edu>
3444 2004-05-20 Fernando Perez <fperez@colorado.edu>
3440
3445
3441 * IPython/Magic.py (Magic.magic_prun): changed default profile
3446 * IPython/Magic.py (Magic.magic_prun): changed default profile
3442 sort order to 'time' (the more common profiling need).
3447 sort order to 'time' (the more common profiling need).
3443
3448
3444 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3449 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3445 so that source code shown is guaranteed in sync with the file on
3450 so that source code shown is guaranteed in sync with the file on
3446 disk (also changed in psource). Similar fix to the one for
3451 disk (also changed in psource). Similar fix to the one for
3447 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3452 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3448 <yann.ledu-AT-noos.fr>.
3453 <yann.ledu-AT-noos.fr>.
3449
3454
3450 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3455 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3451 with a single option would not be correctly parsed. Closes
3456 with a single option would not be correctly parsed. Closes
3452 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3457 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3453 introduced in 0.6.0 (on 2004-05-06).
3458 introduced in 0.6.0 (on 2004-05-06).
3454
3459
3455 2004-05-13 *** Released version 0.6.0
3460 2004-05-13 *** Released version 0.6.0
3456
3461
3457 2004-05-13 Fernando Perez <fperez@colorado.edu>
3462 2004-05-13 Fernando Perez <fperez@colorado.edu>
3458
3463
3459 * debian/: Added debian/ directory to CVS, so that debian support
3464 * debian/: Added debian/ directory to CVS, so that debian support
3460 is publicly accessible. The debian package is maintained by Jack
3465 is publicly accessible. The debian package is maintained by Jack
3461 Moffit <jack-AT-xiph.org>.
3466 Moffit <jack-AT-xiph.org>.
3462
3467
3463 * Documentation: included the notes about an ipython-based system
3468 * Documentation: included the notes about an ipython-based system
3464 shell (the hypothetical 'pysh') into the new_design.pdf document,
3469 shell (the hypothetical 'pysh') into the new_design.pdf document,
3465 so that these ideas get distributed to users along with the
3470 so that these ideas get distributed to users along with the
3466 official documentation.
3471 official documentation.
3467
3472
3468 2004-05-10 Fernando Perez <fperez@colorado.edu>
3473 2004-05-10 Fernando Perez <fperez@colorado.edu>
3469
3474
3470 * IPython/Logger.py (Logger.create_log): fix recently introduced
3475 * IPython/Logger.py (Logger.create_log): fix recently introduced
3471 bug (misindented line) where logstart would fail when not given an
3476 bug (misindented line) where logstart would fail when not given an
3472 explicit filename.
3477 explicit filename.
3473
3478
3474 2004-05-09 Fernando Perez <fperez@colorado.edu>
3479 2004-05-09 Fernando Perez <fperez@colorado.edu>
3475
3480
3476 * IPython/Magic.py (Magic.parse_options): skip system call when
3481 * IPython/Magic.py (Magic.parse_options): skip system call when
3477 there are no options to look for. Faster, cleaner for the common
3482 there are no options to look for. Faster, cleaner for the common
3478 case.
3483 case.
3479
3484
3480 * Documentation: many updates to the manual: describing Windows
3485 * Documentation: many updates to the manual: describing Windows
3481 support better, Gnuplot updates, credits, misc small stuff. Also
3486 support better, Gnuplot updates, credits, misc small stuff. Also
3482 updated the new_design doc a bit.
3487 updated the new_design doc a bit.
3483
3488
3484 2004-05-06 *** Released version 0.6.0.rc1
3489 2004-05-06 *** Released version 0.6.0.rc1
3485
3490
3486 2004-05-06 Fernando Perez <fperez@colorado.edu>
3491 2004-05-06 Fernando Perez <fperez@colorado.edu>
3487
3492
3488 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3493 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3489 operations to use the vastly more efficient list/''.join() method.
3494 operations to use the vastly more efficient list/''.join() method.
3490 (FormattedTB.text): Fix
3495 (FormattedTB.text): Fix
3491 http://www.scipy.net/roundup/ipython/issue12 - exception source
3496 http://www.scipy.net/roundup/ipython/issue12 - exception source
3492 extract not updated after reload. Thanks to Mike Salib
3497 extract not updated after reload. Thanks to Mike Salib
3493 <msalib-AT-mit.edu> for pinning the source of the problem.
3498 <msalib-AT-mit.edu> for pinning the source of the problem.
3494 Fortunately, the solution works inside ipython and doesn't require
3499 Fortunately, the solution works inside ipython and doesn't require
3495 any changes to python proper.
3500 any changes to python proper.
3496
3501
3497 * IPython/Magic.py (Magic.parse_options): Improved to process the
3502 * IPython/Magic.py (Magic.parse_options): Improved to process the
3498 argument list as a true shell would (by actually using the
3503 argument list as a true shell would (by actually using the
3499 underlying system shell). This way, all @magics automatically get
3504 underlying system shell). This way, all @magics automatically get
3500 shell expansion for variables. Thanks to a comment by Alex
3505 shell expansion for variables. Thanks to a comment by Alex
3501 Schmolck.
3506 Schmolck.
3502
3507
3503 2004-04-04 Fernando Perez <fperez@colorado.edu>
3508 2004-04-04 Fernando Perez <fperez@colorado.edu>
3504
3509
3505 * IPython/iplib.py (InteractiveShell.interact): Added a special
3510 * IPython/iplib.py (InteractiveShell.interact): Added a special
3506 trap for a debugger quit exception, which is basically impossible
3511 trap for a debugger quit exception, which is basically impossible
3507 to handle by normal mechanisms, given what pdb does to the stack.
3512 to handle by normal mechanisms, given what pdb does to the stack.
3508 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3513 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3509
3514
3510 2004-04-03 Fernando Perez <fperez@colorado.edu>
3515 2004-04-03 Fernando Perez <fperez@colorado.edu>
3511
3516
3512 * IPython/genutils.py (Term): Standardized the names of the Term
3517 * IPython/genutils.py (Term): Standardized the names of the Term
3513 class streams to cin/cout/cerr, following C++ naming conventions
3518 class streams to cin/cout/cerr, following C++ naming conventions
3514 (I can't use in/out/err because 'in' is not a valid attribute
3519 (I can't use in/out/err because 'in' is not a valid attribute
3515 name).
3520 name).
3516
3521
3517 * IPython/iplib.py (InteractiveShell.interact): don't increment
3522 * IPython/iplib.py (InteractiveShell.interact): don't increment
3518 the prompt if there's no user input. By Daniel 'Dang' Griffith
3523 the prompt if there's no user input. By Daniel 'Dang' Griffith
3519 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3524 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3520 Francois Pinard.
3525 Francois Pinard.
3521
3526
3522 2004-04-02 Fernando Perez <fperez@colorado.edu>
3527 2004-04-02 Fernando Perez <fperez@colorado.edu>
3523
3528
3524 * IPython/genutils.py (Stream.__init__): Modified to survive at
3529 * IPython/genutils.py (Stream.__init__): Modified to survive at
3525 least importing in contexts where stdin/out/err aren't true file
3530 least importing in contexts where stdin/out/err aren't true file
3526 objects, such as PyCrust (they lack fileno() and mode). However,
3531 objects, such as PyCrust (they lack fileno() and mode). However,
3527 the recovery facilities which rely on these things existing will
3532 the recovery facilities which rely on these things existing will
3528 not work.
3533 not work.
3529
3534
3530 2004-04-01 Fernando Perez <fperez@colorado.edu>
3535 2004-04-01 Fernando Perez <fperez@colorado.edu>
3531
3536
3532 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3537 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3533 use the new getoutputerror() function, so it properly
3538 use the new getoutputerror() function, so it properly
3534 distinguishes stdout/err.
3539 distinguishes stdout/err.
3535
3540
3536 * IPython/genutils.py (getoutputerror): added a function to
3541 * IPython/genutils.py (getoutputerror): added a function to
3537 capture separately the standard output and error of a command.
3542 capture separately the standard output and error of a command.
3538 After a comment from dang on the mailing lists. This code is
3543 After a comment from dang on the mailing lists. This code is
3539 basically a modified version of commands.getstatusoutput(), from
3544 basically a modified version of commands.getstatusoutput(), from
3540 the standard library.
3545 the standard library.
3541
3546
3542 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3547 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3543 '!!' as a special syntax (shorthand) to access @sx.
3548 '!!' as a special syntax (shorthand) to access @sx.
3544
3549
3545 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3550 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3546 command and return its output as a list split on '\n'.
3551 command and return its output as a list split on '\n'.
3547
3552
3548 2004-03-31 Fernando Perez <fperez@colorado.edu>
3553 2004-03-31 Fernando Perez <fperez@colorado.edu>
3549
3554
3550 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3555 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3551 method to dictionaries used as FakeModule instances if they lack
3556 method to dictionaries used as FakeModule instances if they lack
3552 it. At least pydoc in python2.3 breaks for runtime-defined
3557 it. At least pydoc in python2.3 breaks for runtime-defined
3553 functions without this hack. At some point I need to _really_
3558 functions without this hack. At some point I need to _really_
3554 understand what FakeModule is doing, because it's a gross hack.
3559 understand what FakeModule is doing, because it's a gross hack.
3555 But it solves Arnd's problem for now...
3560 But it solves Arnd's problem for now...
3556
3561
3557 2004-02-27 Fernando Perez <fperez@colorado.edu>
3562 2004-02-27 Fernando Perez <fperez@colorado.edu>
3558
3563
3559 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3564 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3560 mode would behave erratically. Also increased the number of
3565 mode would behave erratically. Also increased the number of
3561 possible logs in rotate mod to 999. Thanks to Rod Holland
3566 possible logs in rotate mod to 999. Thanks to Rod Holland
3562 <rhh@StructureLABS.com> for the report and fixes.
3567 <rhh@StructureLABS.com> for the report and fixes.
3563
3568
3564 2004-02-26 Fernando Perez <fperez@colorado.edu>
3569 2004-02-26 Fernando Perez <fperez@colorado.edu>
3565
3570
3566 * IPython/genutils.py (page): Check that the curses module really
3571 * IPython/genutils.py (page): Check that the curses module really
3567 has the initscr attribute before trying to use it. For some
3572 has the initscr attribute before trying to use it. For some
3568 reason, the Solaris curses module is missing this. I think this
3573 reason, the Solaris curses module is missing this. I think this
3569 should be considered a Solaris python bug, but I'm not sure.
3574 should be considered a Solaris python bug, but I'm not sure.
3570
3575
3571 2004-01-17 Fernando Perez <fperez@colorado.edu>
3576 2004-01-17 Fernando Perez <fperez@colorado.edu>
3572
3577
3573 * IPython/genutils.py (Stream.__init__): Changes to try to make
3578 * IPython/genutils.py (Stream.__init__): Changes to try to make
3574 ipython robust against stdin/out/err being closed by the user.
3579 ipython robust against stdin/out/err being closed by the user.
3575 This is 'user error' (and blocks a normal python session, at least
3580 This is 'user error' (and blocks a normal python session, at least
3576 the stdout case). However, Ipython should be able to survive such
3581 the stdout case). However, Ipython should be able to survive such
3577 instances of abuse as gracefully as possible. To simplify the
3582 instances of abuse as gracefully as possible. To simplify the
3578 coding and maintain compatibility with Gary Bishop's Term
3583 coding and maintain compatibility with Gary Bishop's Term
3579 contributions, I've made use of classmethods for this. I think
3584 contributions, I've made use of classmethods for this. I think
3580 this introduces a dependency on python 2.2.
3585 this introduces a dependency on python 2.2.
3581
3586
3582 2004-01-13 Fernando Perez <fperez@colorado.edu>
3587 2004-01-13 Fernando Perez <fperez@colorado.edu>
3583
3588
3584 * IPython/numutils.py (exp_safe): simplified the code a bit and
3589 * IPython/numutils.py (exp_safe): simplified the code a bit and
3585 removed the need for importing the kinds module altogether.
3590 removed the need for importing the kinds module altogether.
3586
3591
3587 2004-01-06 Fernando Perez <fperez@colorado.edu>
3592 2004-01-06 Fernando Perez <fperez@colorado.edu>
3588
3593
3589 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3594 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3590 a magic function instead, after some community feedback. No
3595 a magic function instead, after some community feedback. No
3591 special syntax will exist for it, but its name is deliberately
3596 special syntax will exist for it, but its name is deliberately
3592 very short.
3597 very short.
3593
3598
3594 2003-12-20 Fernando Perez <fperez@colorado.edu>
3599 2003-12-20 Fernando Perez <fperez@colorado.edu>
3595
3600
3596 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3601 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3597 new functionality, to automagically assign the result of a shell
3602 new functionality, to automagically assign the result of a shell
3598 command to a variable. I'll solicit some community feedback on
3603 command to a variable. I'll solicit some community feedback on
3599 this before making it permanent.
3604 this before making it permanent.
3600
3605
3601 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3606 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3602 requested about callables for which inspect couldn't obtain a
3607 requested about callables for which inspect couldn't obtain a
3603 proper argspec. Thanks to a crash report sent by Etienne
3608 proper argspec. Thanks to a crash report sent by Etienne
3604 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3609 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3605
3610
3606 2003-12-09 Fernando Perez <fperez@colorado.edu>
3611 2003-12-09 Fernando Perez <fperez@colorado.edu>
3607
3612
3608 * IPython/genutils.py (page): patch for the pager to work across
3613 * IPython/genutils.py (page): patch for the pager to work across
3609 various versions of Windows. By Gary Bishop.
3614 various versions of Windows. By Gary Bishop.
3610
3615
3611 2003-12-04 Fernando Perez <fperez@colorado.edu>
3616 2003-12-04 Fernando Perez <fperez@colorado.edu>
3612
3617
3613 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3618 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3614 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3619 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3615 While I tested this and it looks ok, there may still be corner
3620 While I tested this and it looks ok, there may still be corner
3616 cases I've missed.
3621 cases I've missed.
3617
3622
3618 2003-12-01 Fernando Perez <fperez@colorado.edu>
3623 2003-12-01 Fernando Perez <fperez@colorado.edu>
3619
3624
3620 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3625 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3621 where a line like 'p,q=1,2' would fail because the automagic
3626 where a line like 'p,q=1,2' would fail because the automagic
3622 system would be triggered for @p.
3627 system would be triggered for @p.
3623
3628
3624 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3629 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3625 cleanups, code unmodified.
3630 cleanups, code unmodified.
3626
3631
3627 * IPython/genutils.py (Term): added a class for IPython to handle
3632 * IPython/genutils.py (Term): added a class for IPython to handle
3628 output. In most cases it will just be a proxy for stdout/err, but
3633 output. In most cases it will just be a proxy for stdout/err, but
3629 having this allows modifications to be made for some platforms,
3634 having this allows modifications to be made for some platforms,
3630 such as handling color escapes under Windows. All of this code
3635 such as handling color escapes under Windows. All of this code
3631 was contributed by Gary Bishop, with minor modifications by me.
3636 was contributed by Gary Bishop, with minor modifications by me.
3632 The actual changes affect many files.
3637 The actual changes affect many files.
3633
3638
3634 2003-11-30 Fernando Perez <fperez@colorado.edu>
3639 2003-11-30 Fernando Perez <fperez@colorado.edu>
3635
3640
3636 * IPython/iplib.py (file_matches): new completion code, courtesy
3641 * IPython/iplib.py (file_matches): new completion code, courtesy
3637 of Jeff Collins. This enables filename completion again under
3642 of Jeff Collins. This enables filename completion again under
3638 python 2.3, which disabled it at the C level.
3643 python 2.3, which disabled it at the C level.
3639
3644
3640 2003-11-11 Fernando Perez <fperez@colorado.edu>
3645 2003-11-11 Fernando Perez <fperez@colorado.edu>
3641
3646
3642 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3647 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3643 for Numeric.array(map(...)), but often convenient.
3648 for Numeric.array(map(...)), but often convenient.
3644
3649
3645 2003-11-05 Fernando Perez <fperez@colorado.edu>
3650 2003-11-05 Fernando Perez <fperez@colorado.edu>
3646
3651
3647 * IPython/numutils.py (frange): Changed a call from int() to
3652 * IPython/numutils.py (frange): Changed a call from int() to
3648 int(round()) to prevent a problem reported with arange() in the
3653 int(round()) to prevent a problem reported with arange() in the
3649 numpy list.
3654 numpy list.
3650
3655
3651 2003-10-06 Fernando Perez <fperez@colorado.edu>
3656 2003-10-06 Fernando Perez <fperez@colorado.edu>
3652
3657
3653 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3658 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3654 prevent crashes if sys lacks an argv attribute (it happens with
3659 prevent crashes if sys lacks an argv attribute (it happens with
3655 embedded interpreters which build a bare-bones sys module).
3660 embedded interpreters which build a bare-bones sys module).
3656 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3661 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3657
3662
3658 2003-09-24 Fernando Perez <fperez@colorado.edu>
3663 2003-09-24 Fernando Perez <fperez@colorado.edu>
3659
3664
3660 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3665 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3661 to protect against poorly written user objects where __getattr__
3666 to protect against poorly written user objects where __getattr__
3662 raises exceptions other than AttributeError. Thanks to a bug
3667 raises exceptions other than AttributeError. Thanks to a bug
3663 report by Oliver Sander <osander-AT-gmx.de>.
3668 report by Oliver Sander <osander-AT-gmx.de>.
3664
3669
3665 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3670 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3666 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3671 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3667
3672
3668 2003-09-09 Fernando Perez <fperez@colorado.edu>
3673 2003-09-09 Fernando Perez <fperez@colorado.edu>
3669
3674
3670 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3675 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3671 unpacking a list whith a callable as first element would
3676 unpacking a list whith a callable as first element would
3672 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3677 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3673 Collins.
3678 Collins.
3674
3679
3675 2003-08-25 *** Released version 0.5.0
3680 2003-08-25 *** Released version 0.5.0
3676
3681
3677 2003-08-22 Fernando Perez <fperez@colorado.edu>
3682 2003-08-22 Fernando Perez <fperez@colorado.edu>
3678
3683
3679 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3684 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3680 improperly defined user exceptions. Thanks to feedback from Mark
3685 improperly defined user exceptions. Thanks to feedback from Mark
3681 Russell <mrussell-AT-verio.net>.
3686 Russell <mrussell-AT-verio.net>.
3682
3687
3683 2003-08-20 Fernando Perez <fperez@colorado.edu>
3688 2003-08-20 Fernando Perez <fperez@colorado.edu>
3684
3689
3685 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3690 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3686 printing so that it would print multi-line string forms starting
3691 printing so that it would print multi-line string forms starting
3687 with a new line. This way the formatting is better respected for
3692 with a new line. This way the formatting is better respected for
3688 objects which work hard to make nice string forms.
3693 objects which work hard to make nice string forms.
3689
3694
3690 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3695 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3691 autocall would overtake data access for objects with both
3696 autocall would overtake data access for objects with both
3692 __getitem__ and __call__.
3697 __getitem__ and __call__.
3693
3698
3694 2003-08-19 *** Released version 0.5.0-rc1
3699 2003-08-19 *** Released version 0.5.0-rc1
3695
3700
3696 2003-08-19 Fernando Perez <fperez@colorado.edu>
3701 2003-08-19 Fernando Perez <fperez@colorado.edu>
3697
3702
3698 * IPython/deep_reload.py (load_tail): single tiny change here
3703 * IPython/deep_reload.py (load_tail): single tiny change here
3699 seems to fix the long-standing bug of dreload() failing to work
3704 seems to fix the long-standing bug of dreload() failing to work
3700 for dotted names. But this module is pretty tricky, so I may have
3705 for dotted names. But this module is pretty tricky, so I may have
3701 missed some subtlety. Needs more testing!.
3706 missed some subtlety. Needs more testing!.
3702
3707
3703 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3708 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3704 exceptions which have badly implemented __str__ methods.
3709 exceptions which have badly implemented __str__ methods.
3705 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3710 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3706 which I've been getting reports about from Python 2.3 users. I
3711 which I've been getting reports about from Python 2.3 users. I
3707 wish I had a simple test case to reproduce the problem, so I could
3712 wish I had a simple test case to reproduce the problem, so I could
3708 either write a cleaner workaround or file a bug report if
3713 either write a cleaner workaround or file a bug report if
3709 necessary.
3714 necessary.
3710
3715
3711 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3716 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3712 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3717 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3713 a bug report by Tjabo Kloppenburg.
3718 a bug report by Tjabo Kloppenburg.
3714
3719
3715 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3720 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3716 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3721 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3717 seems rather unstable. Thanks to a bug report by Tjabo
3722 seems rather unstable. Thanks to a bug report by Tjabo
3718 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3723 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3719
3724
3720 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3725 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3721 this out soon because of the critical fixes in the inner loop for
3726 this out soon because of the critical fixes in the inner loop for
3722 generators.
3727 generators.
3723
3728
3724 * IPython/Magic.py (Magic.getargspec): removed. This (and
3729 * IPython/Magic.py (Magic.getargspec): removed. This (and
3725 _get_def) have been obsoleted by OInspect for a long time, I
3730 _get_def) have been obsoleted by OInspect for a long time, I
3726 hadn't noticed that they were dead code.
3731 hadn't noticed that they were dead code.
3727 (Magic._ofind): restored _ofind functionality for a few literals
3732 (Magic._ofind): restored _ofind functionality for a few literals
3728 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3733 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3729 for things like "hello".capitalize?, since that would require a
3734 for things like "hello".capitalize?, since that would require a
3730 potentially dangerous eval() again.
3735 potentially dangerous eval() again.
3731
3736
3732 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3737 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3733 logic a bit more to clean up the escapes handling and minimize the
3738 logic a bit more to clean up the escapes handling and minimize the
3734 use of _ofind to only necessary cases. The interactive 'feel' of
3739 use of _ofind to only necessary cases. The interactive 'feel' of
3735 IPython should have improved quite a bit with the changes in
3740 IPython should have improved quite a bit with the changes in
3736 _prefilter and _ofind (besides being far safer than before).
3741 _prefilter and _ofind (besides being far safer than before).
3737
3742
3738 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3743 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3739 obscure, never reported). Edit would fail to find the object to
3744 obscure, never reported). Edit would fail to find the object to
3740 edit under some circumstances.
3745 edit under some circumstances.
3741 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3746 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3742 which were causing double-calling of generators. Those eval calls
3747 which were causing double-calling of generators. Those eval calls
3743 were _very_ dangerous, since code with side effects could be
3748 were _very_ dangerous, since code with side effects could be
3744 triggered. As they say, 'eval is evil'... These were the
3749 triggered. As they say, 'eval is evil'... These were the
3745 nastiest evals in IPython. Besides, _ofind is now far simpler,
3750 nastiest evals in IPython. Besides, _ofind is now far simpler,
3746 and it should also be quite a bit faster. Its use of inspect is
3751 and it should also be quite a bit faster. Its use of inspect is
3747 also safer, so perhaps some of the inspect-related crashes I've
3752 also safer, so perhaps some of the inspect-related crashes I've
3748 seen lately with Python 2.3 might be taken care of. That will
3753 seen lately with Python 2.3 might be taken care of. That will
3749 need more testing.
3754 need more testing.
3750
3755
3751 2003-08-17 Fernando Perez <fperez@colorado.edu>
3756 2003-08-17 Fernando Perez <fperez@colorado.edu>
3752
3757
3753 * IPython/iplib.py (InteractiveShell._prefilter): significant
3758 * IPython/iplib.py (InteractiveShell._prefilter): significant
3754 simplifications to the logic for handling user escapes. Faster
3759 simplifications to the logic for handling user escapes. Faster
3755 and simpler code.
3760 and simpler code.
3756
3761
3757 2003-08-14 Fernando Perez <fperez@colorado.edu>
3762 2003-08-14 Fernando Perez <fperez@colorado.edu>
3758
3763
3759 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3764 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3760 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3765 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3761 but it should be quite a bit faster. And the recursive version
3766 but it should be quite a bit faster. And the recursive version
3762 generated O(log N) intermediate storage for all rank>1 arrays,
3767 generated O(log N) intermediate storage for all rank>1 arrays,
3763 even if they were contiguous.
3768 even if they were contiguous.
3764 (l1norm): Added this function.
3769 (l1norm): Added this function.
3765 (norm): Added this function for arbitrary norms (including
3770 (norm): Added this function for arbitrary norms (including
3766 l-infinity). l1 and l2 are still special cases for convenience
3771 l-infinity). l1 and l2 are still special cases for convenience
3767 and speed.
3772 and speed.
3768
3773
3769 2003-08-03 Fernando Perez <fperez@colorado.edu>
3774 2003-08-03 Fernando Perez <fperez@colorado.edu>
3770
3775
3771 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3776 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3772 exceptions, which now raise PendingDeprecationWarnings in Python
3777 exceptions, which now raise PendingDeprecationWarnings in Python
3773 2.3. There were some in Magic and some in Gnuplot2.
3778 2.3. There were some in Magic and some in Gnuplot2.
3774
3779
3775 2003-06-30 Fernando Perez <fperez@colorado.edu>
3780 2003-06-30 Fernando Perez <fperez@colorado.edu>
3776
3781
3777 * IPython/genutils.py (page): modified to call curses only for
3782 * IPython/genutils.py (page): modified to call curses only for
3778 terminals where TERM=='xterm'. After problems under many other
3783 terminals where TERM=='xterm'. After problems under many other
3779 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3784 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3780
3785
3781 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3786 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3782 would be triggered when readline was absent. This was just an old
3787 would be triggered when readline was absent. This was just an old
3783 debugging statement I'd forgotten to take out.
3788 debugging statement I'd forgotten to take out.
3784
3789
3785 2003-06-20 Fernando Perez <fperez@colorado.edu>
3790 2003-06-20 Fernando Perez <fperez@colorado.edu>
3786
3791
3787 * IPython/genutils.py (clock): modified to return only user time
3792 * IPython/genutils.py (clock): modified to return only user time
3788 (not counting system time), after a discussion on scipy. While
3793 (not counting system time), after a discussion on scipy. While
3789 system time may be a useful quantity occasionally, it may much
3794 system time may be a useful quantity occasionally, it may much
3790 more easily be skewed by occasional swapping or other similar
3795 more easily be skewed by occasional swapping or other similar
3791 activity.
3796 activity.
3792
3797
3793 2003-06-05 Fernando Perez <fperez@colorado.edu>
3798 2003-06-05 Fernando Perez <fperez@colorado.edu>
3794
3799
3795 * IPython/numutils.py (identity): new function, for building
3800 * IPython/numutils.py (identity): new function, for building
3796 arbitrary rank Kronecker deltas (mostly backwards compatible with
3801 arbitrary rank Kronecker deltas (mostly backwards compatible with
3797 Numeric.identity)
3802 Numeric.identity)
3798
3803
3799 2003-06-03 Fernando Perez <fperez@colorado.edu>
3804 2003-06-03 Fernando Perez <fperez@colorado.edu>
3800
3805
3801 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3806 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3802 arguments passed to magics with spaces, to allow trailing '\' to
3807 arguments passed to magics with spaces, to allow trailing '\' to
3803 work normally (mainly for Windows users).
3808 work normally (mainly for Windows users).
3804
3809
3805 2003-05-29 Fernando Perez <fperez@colorado.edu>
3810 2003-05-29 Fernando Perez <fperez@colorado.edu>
3806
3811
3807 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3812 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3808 instead of pydoc.help. This fixes a bizarre behavior where
3813 instead of pydoc.help. This fixes a bizarre behavior where
3809 printing '%s' % locals() would trigger the help system. Now
3814 printing '%s' % locals() would trigger the help system. Now
3810 ipython behaves like normal python does.
3815 ipython behaves like normal python does.
3811
3816
3812 Note that if one does 'from pydoc import help', the bizarre
3817 Note that if one does 'from pydoc import help', the bizarre
3813 behavior returns, but this will also happen in normal python, so
3818 behavior returns, but this will also happen in normal python, so
3814 it's not an ipython bug anymore (it has to do with how pydoc.help
3819 it's not an ipython bug anymore (it has to do with how pydoc.help
3815 is implemented).
3820 is implemented).
3816
3821
3817 2003-05-22 Fernando Perez <fperez@colorado.edu>
3822 2003-05-22 Fernando Perez <fperez@colorado.edu>
3818
3823
3819 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3824 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3820 return [] instead of None when nothing matches, also match to end
3825 return [] instead of None when nothing matches, also match to end
3821 of line. Patch by Gary Bishop.
3826 of line. Patch by Gary Bishop.
3822
3827
3823 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3828 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3824 protection as before, for files passed on the command line. This
3829 protection as before, for files passed on the command line. This
3825 prevents the CrashHandler from kicking in if user files call into
3830 prevents the CrashHandler from kicking in if user files call into
3826 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3831 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3827 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3832 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3828
3833
3829 2003-05-20 *** Released version 0.4.0
3834 2003-05-20 *** Released version 0.4.0
3830
3835
3831 2003-05-20 Fernando Perez <fperez@colorado.edu>
3836 2003-05-20 Fernando Perez <fperez@colorado.edu>
3832
3837
3833 * setup.py: added support for manpages. It's a bit hackish b/c of
3838 * setup.py: added support for manpages. It's a bit hackish b/c of
3834 a bug in the way the bdist_rpm distutils target handles gzipped
3839 a bug in the way the bdist_rpm distutils target handles gzipped
3835 manpages, but it works. After a patch by Jack.
3840 manpages, but it works. After a patch by Jack.
3836
3841
3837 2003-05-19 Fernando Perez <fperez@colorado.edu>
3842 2003-05-19 Fernando Perez <fperez@colorado.edu>
3838
3843
3839 * IPython/numutils.py: added a mockup of the kinds module, since
3844 * IPython/numutils.py: added a mockup of the kinds module, since
3840 it was recently removed from Numeric. This way, numutils will
3845 it was recently removed from Numeric. This way, numutils will
3841 work for all users even if they are missing kinds.
3846 work for all users even if they are missing kinds.
3842
3847
3843 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3848 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3844 failure, which can occur with SWIG-wrapped extensions. After a
3849 failure, which can occur with SWIG-wrapped extensions. After a
3845 crash report from Prabhu.
3850 crash report from Prabhu.
3846
3851
3847 2003-05-16 Fernando Perez <fperez@colorado.edu>
3852 2003-05-16 Fernando Perez <fperez@colorado.edu>
3848
3853
3849 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3854 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3850 protect ipython from user code which may call directly
3855 protect ipython from user code which may call directly
3851 sys.excepthook (this looks like an ipython crash to the user, even
3856 sys.excepthook (this looks like an ipython crash to the user, even
3852 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3857 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3853 This is especially important to help users of WxWindows, but may
3858 This is especially important to help users of WxWindows, but may
3854 also be useful in other cases.
3859 also be useful in other cases.
3855
3860
3856 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3861 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3857 an optional tb_offset to be specified, and to preserve exception
3862 an optional tb_offset to be specified, and to preserve exception
3858 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3863 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3859
3864
3860 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3865 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3861
3866
3862 2003-05-15 Fernando Perez <fperez@colorado.edu>
3867 2003-05-15 Fernando Perez <fperez@colorado.edu>
3863
3868
3864 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3869 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3865 installing for a new user under Windows.
3870 installing for a new user under Windows.
3866
3871
3867 2003-05-12 Fernando Perez <fperez@colorado.edu>
3872 2003-05-12 Fernando Perez <fperez@colorado.edu>
3868
3873
3869 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3874 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3870 handler for Emacs comint-based lines. Currently it doesn't do
3875 handler for Emacs comint-based lines. Currently it doesn't do
3871 much (but importantly, it doesn't update the history cache). In
3876 much (but importantly, it doesn't update the history cache). In
3872 the future it may be expanded if Alex needs more functionality
3877 the future it may be expanded if Alex needs more functionality
3873 there.
3878 there.
3874
3879
3875 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3880 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3876 info to crash reports.
3881 info to crash reports.
3877
3882
3878 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3883 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3879 just like Python's -c. Also fixed crash with invalid -color
3884 just like Python's -c. Also fixed crash with invalid -color
3880 option value at startup. Thanks to Will French
3885 option value at startup. Thanks to Will French
3881 <wfrench-AT-bestweb.net> for the bug report.
3886 <wfrench-AT-bestweb.net> for the bug report.
3882
3887
3883 2003-05-09 Fernando Perez <fperez@colorado.edu>
3888 2003-05-09 Fernando Perez <fperez@colorado.edu>
3884
3889
3885 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3890 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3886 to EvalDict (it's a mapping, after all) and simplified its code
3891 to EvalDict (it's a mapping, after all) and simplified its code
3887 quite a bit, after a nice discussion on c.l.py where Gustavo
3892 quite a bit, after a nice discussion on c.l.py where Gustavo
3888 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3893 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3889
3894
3890 2003-04-30 Fernando Perez <fperez@colorado.edu>
3895 2003-04-30 Fernando Perez <fperez@colorado.edu>
3891
3896
3892 * IPython/genutils.py (timings_out): modified it to reduce its
3897 * IPython/genutils.py (timings_out): modified it to reduce its
3893 overhead in the common reps==1 case.
3898 overhead in the common reps==1 case.
3894
3899
3895 2003-04-29 Fernando Perez <fperez@colorado.edu>
3900 2003-04-29 Fernando Perez <fperez@colorado.edu>
3896
3901
3897 * IPython/genutils.py (timings_out): Modified to use the resource
3902 * IPython/genutils.py (timings_out): Modified to use the resource
3898 module, which avoids the wraparound problems of time.clock().
3903 module, which avoids the wraparound problems of time.clock().
3899
3904
3900 2003-04-17 *** Released version 0.2.15pre4
3905 2003-04-17 *** Released version 0.2.15pre4
3901
3906
3902 2003-04-17 Fernando Perez <fperez@colorado.edu>
3907 2003-04-17 Fernando Perez <fperez@colorado.edu>
3903
3908
3904 * setup.py (scriptfiles): Split windows-specific stuff over to a
3909 * setup.py (scriptfiles): Split windows-specific stuff over to a
3905 separate file, in an attempt to have a Windows GUI installer.
3910 separate file, in an attempt to have a Windows GUI installer.
3906 That didn't work, but part of the groundwork is done.
3911 That didn't work, but part of the groundwork is done.
3907
3912
3908 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3913 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3909 indent/unindent with 4 spaces. Particularly useful in combination
3914 indent/unindent with 4 spaces. Particularly useful in combination
3910 with the new auto-indent option.
3915 with the new auto-indent option.
3911
3916
3912 2003-04-16 Fernando Perez <fperez@colorado.edu>
3917 2003-04-16 Fernando Perez <fperez@colorado.edu>
3913
3918
3914 * IPython/Magic.py: various replacements of self.rc for
3919 * IPython/Magic.py: various replacements of self.rc for
3915 self.shell.rc. A lot more remains to be done to fully disentangle
3920 self.shell.rc. A lot more remains to be done to fully disentangle
3916 this class from the main Shell class.
3921 this class from the main Shell class.
3917
3922
3918 * IPython/GnuplotRuntime.py: added checks for mouse support so
3923 * IPython/GnuplotRuntime.py: added checks for mouse support so
3919 that we don't try to enable it if the current gnuplot doesn't
3924 that we don't try to enable it if the current gnuplot doesn't
3920 really support it. Also added checks so that we don't try to
3925 really support it. Also added checks so that we don't try to
3921 enable persist under Windows (where Gnuplot doesn't recognize the
3926 enable persist under Windows (where Gnuplot doesn't recognize the
3922 option).
3927 option).
3923
3928
3924 * IPython/iplib.py (InteractiveShell.interact): Added optional
3929 * IPython/iplib.py (InteractiveShell.interact): Added optional
3925 auto-indenting code, after a patch by King C. Shu
3930 auto-indenting code, after a patch by King C. Shu
3926 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3931 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3927 get along well with pasting indented code. If I ever figure out
3932 get along well with pasting indented code. If I ever figure out
3928 how to make that part go well, it will become on by default.
3933 how to make that part go well, it will become on by default.
3929
3934
3930 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3935 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3931 crash ipython if there was an unmatched '%' in the user's prompt
3936 crash ipython if there was an unmatched '%' in the user's prompt
3932 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3937 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3933
3938
3934 * IPython/iplib.py (InteractiveShell.interact): removed the
3939 * IPython/iplib.py (InteractiveShell.interact): removed the
3935 ability to ask the user whether he wants to crash or not at the
3940 ability to ask the user whether he wants to crash or not at the
3936 'last line' exception handler. Calling functions at that point
3941 'last line' exception handler. Calling functions at that point
3937 changes the stack, and the error reports would have incorrect
3942 changes the stack, and the error reports would have incorrect
3938 tracebacks.
3943 tracebacks.
3939
3944
3940 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3945 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3941 pass through a peger a pretty-printed form of any object. After a
3946 pass through a peger a pretty-printed form of any object. After a
3942 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3947 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3943
3948
3944 2003-04-14 Fernando Perez <fperez@colorado.edu>
3949 2003-04-14 Fernando Perez <fperez@colorado.edu>
3945
3950
3946 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3951 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3947 all files in ~ would be modified at first install (instead of
3952 all files in ~ would be modified at first install (instead of
3948 ~/.ipython). This could be potentially disastrous, as the
3953 ~/.ipython). This could be potentially disastrous, as the
3949 modification (make line-endings native) could damage binary files.
3954 modification (make line-endings native) could damage binary files.
3950
3955
3951 2003-04-10 Fernando Perez <fperez@colorado.edu>
3956 2003-04-10 Fernando Perez <fperez@colorado.edu>
3952
3957
3953 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3958 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3954 handle only lines which are invalid python. This now means that
3959 handle only lines which are invalid python. This now means that
3955 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3960 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3956 for the bug report.
3961 for the bug report.
3957
3962
3958 2003-04-01 Fernando Perez <fperez@colorado.edu>
3963 2003-04-01 Fernando Perez <fperez@colorado.edu>
3959
3964
3960 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3965 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3961 where failing to set sys.last_traceback would crash pdb.pm().
3966 where failing to set sys.last_traceback would crash pdb.pm().
3962 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3967 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3963 report.
3968 report.
3964
3969
3965 2003-03-25 Fernando Perez <fperez@colorado.edu>
3970 2003-03-25 Fernando Perez <fperez@colorado.edu>
3966
3971
3967 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3972 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3968 before printing it (it had a lot of spurious blank lines at the
3973 before printing it (it had a lot of spurious blank lines at the
3969 end).
3974 end).
3970
3975
3971 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3976 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3972 output would be sent 21 times! Obviously people don't use this
3977 output would be sent 21 times! Obviously people don't use this
3973 too often, or I would have heard about it.
3978 too often, or I would have heard about it.
3974
3979
3975 2003-03-24 Fernando Perez <fperez@colorado.edu>
3980 2003-03-24 Fernando Perez <fperez@colorado.edu>
3976
3981
3977 * setup.py (scriptfiles): renamed the data_files parameter from
3982 * setup.py (scriptfiles): renamed the data_files parameter from
3978 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3983 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3979 for the patch.
3984 for the patch.
3980
3985
3981 2003-03-20 Fernando Perez <fperez@colorado.edu>
3986 2003-03-20 Fernando Perez <fperez@colorado.edu>
3982
3987
3983 * IPython/genutils.py (error): added error() and fatal()
3988 * IPython/genutils.py (error): added error() and fatal()
3984 functions.
3989 functions.
3985
3990
3986 2003-03-18 *** Released version 0.2.15pre3
3991 2003-03-18 *** Released version 0.2.15pre3
3987
3992
3988 2003-03-18 Fernando Perez <fperez@colorado.edu>
3993 2003-03-18 Fernando Perez <fperez@colorado.edu>
3989
3994
3990 * setupext/install_data_ext.py
3995 * setupext/install_data_ext.py
3991 (install_data_ext.initialize_options): Class contributed by Jack
3996 (install_data_ext.initialize_options): Class contributed by Jack
3992 Moffit for fixing the old distutils hack. He is sending this to
3997 Moffit for fixing the old distutils hack. He is sending this to
3993 the distutils folks so in the future we may not need it as a
3998 the distutils folks so in the future we may not need it as a
3994 private fix.
3999 private fix.
3995
4000
3996 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4001 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3997 changes for Debian packaging. See his patch for full details.
4002 changes for Debian packaging. See his patch for full details.
3998 The old distutils hack of making the ipythonrc* files carry a
4003 The old distutils hack of making the ipythonrc* files carry a
3999 bogus .py extension is gone, at last. Examples were moved to a
4004 bogus .py extension is gone, at last. Examples were moved to a
4000 separate subdir under doc/, and the separate executable scripts
4005 separate subdir under doc/, and the separate executable scripts
4001 now live in their own directory. Overall a great cleanup. The
4006 now live in their own directory. Overall a great cleanup. The
4002 manual was updated to use the new files, and setup.py has been
4007 manual was updated to use the new files, and setup.py has been
4003 fixed for this setup.
4008 fixed for this setup.
4004
4009
4005 * IPython/PyColorize.py (Parser.usage): made non-executable and
4010 * IPython/PyColorize.py (Parser.usage): made non-executable and
4006 created a pycolor wrapper around it to be included as a script.
4011 created a pycolor wrapper around it to be included as a script.
4007
4012
4008 2003-03-12 *** Released version 0.2.15pre2
4013 2003-03-12 *** Released version 0.2.15pre2
4009
4014
4010 2003-03-12 Fernando Perez <fperez@colorado.edu>
4015 2003-03-12 Fernando Perez <fperez@colorado.edu>
4011
4016
4012 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4017 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4013 long-standing problem with garbage characters in some terminals.
4018 long-standing problem with garbage characters in some terminals.
4014 The issue was really that the \001 and \002 escapes must _only_ be
4019 The issue was really that the \001 and \002 escapes must _only_ be
4015 passed to input prompts (which call readline), but _never_ to
4020 passed to input prompts (which call readline), but _never_ to
4016 normal text to be printed on screen. I changed ColorANSI to have
4021 normal text to be printed on screen. I changed ColorANSI to have
4017 two classes: TermColors and InputTermColors, each with the
4022 two classes: TermColors and InputTermColors, each with the
4018 appropriate escapes for input prompts or normal text. The code in
4023 appropriate escapes for input prompts or normal text. The code in
4019 Prompts.py got slightly more complicated, but this very old and
4024 Prompts.py got slightly more complicated, but this very old and
4020 annoying bug is finally fixed.
4025 annoying bug is finally fixed.
4021
4026
4022 All the credit for nailing down the real origin of this problem
4027 All the credit for nailing down the real origin of this problem
4023 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4028 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4024 *Many* thanks to him for spending quite a bit of effort on this.
4029 *Many* thanks to him for spending quite a bit of effort on this.
4025
4030
4026 2003-03-05 *** Released version 0.2.15pre1
4031 2003-03-05 *** Released version 0.2.15pre1
4027
4032
4028 2003-03-03 Fernando Perez <fperez@colorado.edu>
4033 2003-03-03 Fernando Perez <fperez@colorado.edu>
4029
4034
4030 * IPython/FakeModule.py: Moved the former _FakeModule to a
4035 * IPython/FakeModule.py: Moved the former _FakeModule to a
4031 separate file, because it's also needed by Magic (to fix a similar
4036 separate file, because it's also needed by Magic (to fix a similar
4032 pickle-related issue in @run).
4037 pickle-related issue in @run).
4033
4038
4034 2003-03-02 Fernando Perez <fperez@colorado.edu>
4039 2003-03-02 Fernando Perez <fperez@colorado.edu>
4035
4040
4036 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4041 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4037 the autocall option at runtime.
4042 the autocall option at runtime.
4038 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4043 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4039 across Magic.py to start separating Magic from InteractiveShell.
4044 across Magic.py to start separating Magic from InteractiveShell.
4040 (Magic._ofind): Fixed to return proper namespace for dotted
4045 (Magic._ofind): Fixed to return proper namespace for dotted
4041 names. Before, a dotted name would always return 'not currently
4046 names. Before, a dotted name would always return 'not currently
4042 defined', because it would find the 'parent'. s.x would be found,
4047 defined', because it would find the 'parent'. s.x would be found,
4043 but since 'x' isn't defined by itself, it would get confused.
4048 but since 'x' isn't defined by itself, it would get confused.
4044 (Magic.magic_run): Fixed pickling problems reported by Ralf
4049 (Magic.magic_run): Fixed pickling problems reported by Ralf
4045 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4050 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4046 that I'd used when Mike Heeter reported similar issues at the
4051 that I'd used when Mike Heeter reported similar issues at the
4047 top-level, but now for @run. It boils down to injecting the
4052 top-level, but now for @run. It boils down to injecting the
4048 namespace where code is being executed with something that looks
4053 namespace where code is being executed with something that looks
4049 enough like a module to fool pickle.dump(). Since a pickle stores
4054 enough like a module to fool pickle.dump(). Since a pickle stores
4050 a named reference to the importing module, we need this for
4055 a named reference to the importing module, we need this for
4051 pickles to save something sensible.
4056 pickles to save something sensible.
4052
4057
4053 * IPython/ipmaker.py (make_IPython): added an autocall option.
4058 * IPython/ipmaker.py (make_IPython): added an autocall option.
4054
4059
4055 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4060 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4056 the auto-eval code. Now autocalling is an option, and the code is
4061 the auto-eval code. Now autocalling is an option, and the code is
4057 also vastly safer. There is no more eval() involved at all.
4062 also vastly safer. There is no more eval() involved at all.
4058
4063
4059 2003-03-01 Fernando Perez <fperez@colorado.edu>
4064 2003-03-01 Fernando Perez <fperez@colorado.edu>
4060
4065
4061 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4066 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4062 dict with named keys instead of a tuple.
4067 dict with named keys instead of a tuple.
4063
4068
4064 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4069 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4065
4070
4066 * setup.py (make_shortcut): Fixed message about directories
4071 * setup.py (make_shortcut): Fixed message about directories
4067 created during Windows installation (the directories were ok, just
4072 created during Windows installation (the directories were ok, just
4068 the printed message was misleading). Thanks to Chris Liechti
4073 the printed message was misleading). Thanks to Chris Liechti
4069 <cliechti-AT-gmx.net> for the heads up.
4074 <cliechti-AT-gmx.net> for the heads up.
4070
4075
4071 2003-02-21 Fernando Perez <fperez@colorado.edu>
4076 2003-02-21 Fernando Perez <fperez@colorado.edu>
4072
4077
4073 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4078 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4074 of ValueError exception when checking for auto-execution. This
4079 of ValueError exception when checking for auto-execution. This
4075 one is raised by things like Numeric arrays arr.flat when the
4080 one is raised by things like Numeric arrays arr.flat when the
4076 array is non-contiguous.
4081 array is non-contiguous.
4077
4082
4078 2003-01-31 Fernando Perez <fperez@colorado.edu>
4083 2003-01-31 Fernando Perez <fperez@colorado.edu>
4079
4084
4080 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4085 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4081 not return any value at all (even though the command would get
4086 not return any value at all (even though the command would get
4082 executed).
4087 executed).
4083 (xsys): Flush stdout right after printing the command to ensure
4088 (xsys): Flush stdout right after printing the command to ensure
4084 proper ordering of commands and command output in the total
4089 proper ordering of commands and command output in the total
4085 output.
4090 output.
4086 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4091 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4087 system/getoutput as defaults. The old ones are kept for
4092 system/getoutput as defaults. The old ones are kept for
4088 compatibility reasons, so no code which uses this library needs
4093 compatibility reasons, so no code which uses this library needs
4089 changing.
4094 changing.
4090
4095
4091 2003-01-27 *** Released version 0.2.14
4096 2003-01-27 *** Released version 0.2.14
4092
4097
4093 2003-01-25 Fernando Perez <fperez@colorado.edu>
4098 2003-01-25 Fernando Perez <fperez@colorado.edu>
4094
4099
4095 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4100 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4096 functions defined in previous edit sessions could not be re-edited
4101 functions defined in previous edit sessions could not be re-edited
4097 (because the temp files were immediately removed). Now temp files
4102 (because the temp files were immediately removed). Now temp files
4098 are removed only at IPython's exit.
4103 are removed only at IPython's exit.
4099 (Magic.magic_run): Improved @run to perform shell-like expansions
4104 (Magic.magic_run): Improved @run to perform shell-like expansions
4100 on its arguments (~users and $VARS). With this, @run becomes more
4105 on its arguments (~users and $VARS). With this, @run becomes more
4101 like a normal command-line.
4106 like a normal command-line.
4102
4107
4103 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4108 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4104 bugs related to embedding and cleaned up that code. A fairly
4109 bugs related to embedding and cleaned up that code. A fairly
4105 important one was the impossibility to access the global namespace
4110 important one was the impossibility to access the global namespace
4106 through the embedded IPython (only local variables were visible).
4111 through the embedded IPython (only local variables were visible).
4107
4112
4108 2003-01-14 Fernando Perez <fperez@colorado.edu>
4113 2003-01-14 Fernando Perez <fperez@colorado.edu>
4109
4114
4110 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4115 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4111 auto-calling to be a bit more conservative. Now it doesn't get
4116 auto-calling to be a bit more conservative. Now it doesn't get
4112 triggered if any of '!=()<>' are in the rest of the input line, to
4117 triggered if any of '!=()<>' are in the rest of the input line, to
4113 allow comparing callables. Thanks to Alex for the heads up.
4118 allow comparing callables. Thanks to Alex for the heads up.
4114
4119
4115 2003-01-07 Fernando Perez <fperez@colorado.edu>
4120 2003-01-07 Fernando Perez <fperez@colorado.edu>
4116
4121
4117 * IPython/genutils.py (page): fixed estimation of the number of
4122 * IPython/genutils.py (page): fixed estimation of the number of
4118 lines in a string to be paged to simply count newlines. This
4123 lines in a string to be paged to simply count newlines. This
4119 prevents over-guessing due to embedded escape sequences. A better
4124 prevents over-guessing due to embedded escape sequences. A better
4120 long-term solution would involve stripping out the control chars
4125 long-term solution would involve stripping out the control chars
4121 for the count, but it's potentially so expensive I just don't
4126 for the count, but it's potentially so expensive I just don't
4122 think it's worth doing.
4127 think it's worth doing.
4123
4128
4124 2002-12-19 *** Released version 0.2.14pre50
4129 2002-12-19 *** Released version 0.2.14pre50
4125
4130
4126 2002-12-19 Fernando Perez <fperez@colorado.edu>
4131 2002-12-19 Fernando Perez <fperez@colorado.edu>
4127
4132
4128 * tools/release (version): Changed release scripts to inform
4133 * tools/release (version): Changed release scripts to inform
4129 Andrea and build a NEWS file with a list of recent changes.
4134 Andrea and build a NEWS file with a list of recent changes.
4130
4135
4131 * IPython/ColorANSI.py (__all__): changed terminal detection
4136 * IPython/ColorANSI.py (__all__): changed terminal detection
4132 code. Seems to work better for xterms without breaking
4137 code. Seems to work better for xterms without breaking
4133 konsole. Will need more testing to determine if WinXP and Mac OSX
4138 konsole. Will need more testing to determine if WinXP and Mac OSX
4134 also work ok.
4139 also work ok.
4135
4140
4136 2002-12-18 *** Released version 0.2.14pre49
4141 2002-12-18 *** Released version 0.2.14pre49
4137
4142
4138 2002-12-18 Fernando Perez <fperez@colorado.edu>
4143 2002-12-18 Fernando Perez <fperez@colorado.edu>
4139
4144
4140 * Docs: added new info about Mac OSX, from Andrea.
4145 * Docs: added new info about Mac OSX, from Andrea.
4141
4146
4142 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4147 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4143 allow direct plotting of python strings whose format is the same
4148 allow direct plotting of python strings whose format is the same
4144 of gnuplot data files.
4149 of gnuplot data files.
4145
4150
4146 2002-12-16 Fernando Perez <fperez@colorado.edu>
4151 2002-12-16 Fernando Perez <fperez@colorado.edu>
4147
4152
4148 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4153 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4149 value of exit question to be acknowledged.
4154 value of exit question to be acknowledged.
4150
4155
4151 2002-12-03 Fernando Perez <fperez@colorado.edu>
4156 2002-12-03 Fernando Perez <fperez@colorado.edu>
4152
4157
4153 * IPython/ipmaker.py: removed generators, which had been added
4158 * IPython/ipmaker.py: removed generators, which had been added
4154 by mistake in an earlier debugging run. This was causing trouble
4159 by mistake in an earlier debugging run. This was causing trouble
4155 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4160 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4156 for pointing this out.
4161 for pointing this out.
4157
4162
4158 2002-11-17 Fernando Perez <fperez@colorado.edu>
4163 2002-11-17 Fernando Perez <fperez@colorado.edu>
4159
4164
4160 * Manual: updated the Gnuplot section.
4165 * Manual: updated the Gnuplot section.
4161
4166
4162 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4167 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4163 a much better split of what goes in Runtime and what goes in
4168 a much better split of what goes in Runtime and what goes in
4164 Interactive.
4169 Interactive.
4165
4170
4166 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4171 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4167 being imported from iplib.
4172 being imported from iplib.
4168
4173
4169 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4174 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4170 for command-passing. Now the global Gnuplot instance is called
4175 for command-passing. Now the global Gnuplot instance is called
4171 'gp' instead of 'g', which was really a far too fragile and
4176 'gp' instead of 'g', which was really a far too fragile and
4172 common name.
4177 common name.
4173
4178
4174 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4179 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4175 bounding boxes generated by Gnuplot for square plots.
4180 bounding boxes generated by Gnuplot for square plots.
4176
4181
4177 * IPython/genutils.py (popkey): new function added. I should
4182 * IPython/genutils.py (popkey): new function added. I should
4178 suggest this on c.l.py as a dict method, it seems useful.
4183 suggest this on c.l.py as a dict method, it seems useful.
4179
4184
4180 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4185 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4181 to transparently handle PostScript generation. MUCH better than
4186 to transparently handle PostScript generation. MUCH better than
4182 the previous plot_eps/replot_eps (which I removed now). The code
4187 the previous plot_eps/replot_eps (which I removed now). The code
4183 is also fairly clean and well documented now (including
4188 is also fairly clean and well documented now (including
4184 docstrings).
4189 docstrings).
4185
4190
4186 2002-11-13 Fernando Perez <fperez@colorado.edu>
4191 2002-11-13 Fernando Perez <fperez@colorado.edu>
4187
4192
4188 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4193 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4189 (inconsistent with options).
4194 (inconsistent with options).
4190
4195
4191 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4196 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4192 manually disabled, I don't know why. Fixed it.
4197 manually disabled, I don't know why. Fixed it.
4193 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4198 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4194 eps output.
4199 eps output.
4195
4200
4196 2002-11-12 Fernando Perez <fperez@colorado.edu>
4201 2002-11-12 Fernando Perez <fperez@colorado.edu>
4197
4202
4198 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4203 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4199 don't propagate up to caller. Fixes crash reported by François
4204 don't propagate up to caller. Fixes crash reported by François
4200 Pinard.
4205 Pinard.
4201
4206
4202 2002-11-09 Fernando Perez <fperez@colorado.edu>
4207 2002-11-09 Fernando Perez <fperez@colorado.edu>
4203
4208
4204 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4209 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4205 history file for new users.
4210 history file for new users.
4206 (make_IPython): fixed bug where initial install would leave the
4211 (make_IPython): fixed bug where initial install would leave the
4207 user running in the .ipython dir.
4212 user running in the .ipython dir.
4208 (make_IPython): fixed bug where config dir .ipython would be
4213 (make_IPython): fixed bug where config dir .ipython would be
4209 created regardless of the given -ipythondir option. Thanks to Cory
4214 created regardless of the given -ipythondir option. Thanks to Cory
4210 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4215 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4211
4216
4212 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4217 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4213 type confirmations. Will need to use it in all of IPython's code
4218 type confirmations. Will need to use it in all of IPython's code
4214 consistently.
4219 consistently.
4215
4220
4216 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4221 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4217 context to print 31 lines instead of the default 5. This will make
4222 context to print 31 lines instead of the default 5. This will make
4218 the crash reports extremely detailed in case the problem is in
4223 the crash reports extremely detailed in case the problem is in
4219 libraries I don't have access to.
4224 libraries I don't have access to.
4220
4225
4221 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4226 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4222 line of defense' code to still crash, but giving users fair
4227 line of defense' code to still crash, but giving users fair
4223 warning. I don't want internal errors to go unreported: if there's
4228 warning. I don't want internal errors to go unreported: if there's
4224 an internal problem, IPython should crash and generate a full
4229 an internal problem, IPython should crash and generate a full
4225 report.
4230 report.
4226
4231
4227 2002-11-08 Fernando Perez <fperez@colorado.edu>
4232 2002-11-08 Fernando Perez <fperez@colorado.edu>
4228
4233
4229 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4234 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4230 otherwise uncaught exceptions which can appear if people set
4235 otherwise uncaught exceptions which can appear if people set
4231 sys.stdout to something badly broken. Thanks to a crash report
4236 sys.stdout to something badly broken. Thanks to a crash report
4232 from henni-AT-mail.brainbot.com.
4237 from henni-AT-mail.brainbot.com.
4233
4238
4234 2002-11-04 Fernando Perez <fperez@colorado.edu>
4239 2002-11-04 Fernando Perez <fperez@colorado.edu>
4235
4240
4236 * IPython/iplib.py (InteractiveShell.interact): added
4241 * IPython/iplib.py (InteractiveShell.interact): added
4237 __IPYTHON__active to the builtins. It's a flag which goes on when
4242 __IPYTHON__active to the builtins. It's a flag which goes on when
4238 the interaction starts and goes off again when it stops. This
4243 the interaction starts and goes off again when it stops. This
4239 allows embedding code to detect being inside IPython. Before this
4244 allows embedding code to detect being inside IPython. Before this
4240 was done via __IPYTHON__, but that only shows that an IPython
4245 was done via __IPYTHON__, but that only shows that an IPython
4241 instance has been created.
4246 instance has been created.
4242
4247
4243 * IPython/Magic.py (Magic.magic_env): I realized that in a
4248 * IPython/Magic.py (Magic.magic_env): I realized that in a
4244 UserDict, instance.data holds the data as a normal dict. So I
4249 UserDict, instance.data holds the data as a normal dict. So I
4245 modified @env to return os.environ.data instead of rebuilding a
4250 modified @env to return os.environ.data instead of rebuilding a
4246 dict by hand.
4251 dict by hand.
4247
4252
4248 2002-11-02 Fernando Perez <fperez@colorado.edu>
4253 2002-11-02 Fernando Perez <fperez@colorado.edu>
4249
4254
4250 * IPython/genutils.py (warn): changed so that level 1 prints no
4255 * IPython/genutils.py (warn): changed so that level 1 prints no
4251 header. Level 2 is now the default (with 'WARNING' header, as
4256 header. Level 2 is now the default (with 'WARNING' header, as
4252 before). I think I tracked all places where changes were needed in
4257 before). I think I tracked all places where changes were needed in
4253 IPython, but outside code using the old level numbering may have
4258 IPython, but outside code using the old level numbering may have
4254 broken.
4259 broken.
4255
4260
4256 * IPython/iplib.py (InteractiveShell.runcode): added this to
4261 * IPython/iplib.py (InteractiveShell.runcode): added this to
4257 handle the tracebacks in SystemExit traps correctly. The previous
4262 handle the tracebacks in SystemExit traps correctly. The previous
4258 code (through interact) was printing more of the stack than
4263 code (through interact) was printing more of the stack than
4259 necessary, showing IPython internal code to the user.
4264 necessary, showing IPython internal code to the user.
4260
4265
4261 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4266 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4262 default. Now that the default at the confirmation prompt is yes,
4267 default. Now that the default at the confirmation prompt is yes,
4263 it's not so intrusive. François' argument that ipython sessions
4268 it's not so intrusive. François' argument that ipython sessions
4264 tend to be complex enough not to lose them from an accidental C-d,
4269 tend to be complex enough not to lose them from an accidental C-d,
4265 is a valid one.
4270 is a valid one.
4266
4271
4267 * IPython/iplib.py (InteractiveShell.interact): added a
4272 * IPython/iplib.py (InteractiveShell.interact): added a
4268 showtraceback() call to the SystemExit trap, and modified the exit
4273 showtraceback() call to the SystemExit trap, and modified the exit
4269 confirmation to have yes as the default.
4274 confirmation to have yes as the default.
4270
4275
4271 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4276 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4272 this file. It's been gone from the code for a long time, this was
4277 this file. It's been gone from the code for a long time, this was
4273 simply leftover junk.
4278 simply leftover junk.
4274
4279
4275 2002-11-01 Fernando Perez <fperez@colorado.edu>
4280 2002-11-01 Fernando Perez <fperez@colorado.edu>
4276
4281
4277 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4282 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4278 added. If set, IPython now traps EOF and asks for
4283 added. If set, IPython now traps EOF and asks for
4279 confirmation. After a request by François Pinard.
4284 confirmation. After a request by François Pinard.
4280
4285
4281 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4286 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4282 of @abort, and with a new (better) mechanism for handling the
4287 of @abort, and with a new (better) mechanism for handling the
4283 exceptions.
4288 exceptions.
4284
4289
4285 2002-10-27 Fernando Perez <fperez@colorado.edu>
4290 2002-10-27 Fernando Perez <fperez@colorado.edu>
4286
4291
4287 * IPython/usage.py (__doc__): updated the --help information and
4292 * IPython/usage.py (__doc__): updated the --help information and
4288 the ipythonrc file to indicate that -log generates
4293 the ipythonrc file to indicate that -log generates
4289 ./ipython.log. Also fixed the corresponding info in @logstart.
4294 ./ipython.log. Also fixed the corresponding info in @logstart.
4290 This and several other fixes in the manuals thanks to reports by
4295 This and several other fixes in the manuals thanks to reports by
4291 François Pinard <pinard-AT-iro.umontreal.ca>.
4296 François Pinard <pinard-AT-iro.umontreal.ca>.
4292
4297
4293 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4298 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4294 refer to @logstart (instead of @log, which doesn't exist).
4299 refer to @logstart (instead of @log, which doesn't exist).
4295
4300
4296 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4301 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4297 AttributeError crash. Thanks to Christopher Armstrong
4302 AttributeError crash. Thanks to Christopher Armstrong
4298 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4303 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4299 introduced recently (in 0.2.14pre37) with the fix to the eval
4304 introduced recently (in 0.2.14pre37) with the fix to the eval
4300 problem mentioned below.
4305 problem mentioned below.
4301
4306
4302 2002-10-17 Fernando Perez <fperez@colorado.edu>
4307 2002-10-17 Fernando Perez <fperez@colorado.edu>
4303
4308
4304 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4309 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4305 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4310 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4306
4311
4307 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4312 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4308 this function to fix a problem reported by Alex Schmolck. He saw
4313 this function to fix a problem reported by Alex Schmolck. He saw
4309 it with list comprehensions and generators, which were getting
4314 it with list comprehensions and generators, which were getting
4310 called twice. The real problem was an 'eval' call in testing for
4315 called twice. The real problem was an 'eval' call in testing for
4311 automagic which was evaluating the input line silently.
4316 automagic which was evaluating the input line silently.
4312
4317
4313 This is a potentially very nasty bug, if the input has side
4318 This is a potentially very nasty bug, if the input has side
4314 effects which must not be repeated. The code is much cleaner now,
4319 effects which must not be repeated. The code is much cleaner now,
4315 without any blanket 'except' left and with a regexp test for
4320 without any blanket 'except' left and with a regexp test for
4316 actual function names.
4321 actual function names.
4317
4322
4318 But an eval remains, which I'm not fully comfortable with. I just
4323 But an eval remains, which I'm not fully comfortable with. I just
4319 don't know how to find out if an expression could be a callable in
4324 don't know how to find out if an expression could be a callable in
4320 the user's namespace without doing an eval on the string. However
4325 the user's namespace without doing an eval on the string. However
4321 that string is now much more strictly checked so that no code
4326 that string is now much more strictly checked so that no code
4322 slips by, so the eval should only happen for things that can
4327 slips by, so the eval should only happen for things that can
4323 really be only function/method names.
4328 really be only function/method names.
4324
4329
4325 2002-10-15 Fernando Perez <fperez@colorado.edu>
4330 2002-10-15 Fernando Perez <fperez@colorado.edu>
4326
4331
4327 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4332 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4328 OSX information to main manual, removed README_Mac_OSX file from
4333 OSX information to main manual, removed README_Mac_OSX file from
4329 distribution. Also updated credits for recent additions.
4334 distribution. Also updated credits for recent additions.
4330
4335
4331 2002-10-10 Fernando Perez <fperez@colorado.edu>
4336 2002-10-10 Fernando Perez <fperez@colorado.edu>
4332
4337
4333 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4338 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4334 terminal-related issues. Many thanks to Andrea Riciputi
4339 terminal-related issues. Many thanks to Andrea Riciputi
4335 <andrea.riciputi-AT-libero.it> for writing it.
4340 <andrea.riciputi-AT-libero.it> for writing it.
4336
4341
4337 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4342 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4338 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4343 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4339
4344
4340 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4345 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4341 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4346 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4342 <syver-en-AT-online.no> who both submitted patches for this problem.
4347 <syver-en-AT-online.no> who both submitted patches for this problem.
4343
4348
4344 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4349 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4345 global embedding to make sure that things don't overwrite user
4350 global embedding to make sure that things don't overwrite user
4346 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4351 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4347
4352
4348 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4353 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4349 compatibility. Thanks to Hayden Callow
4354 compatibility. Thanks to Hayden Callow
4350 <h.callow-AT-elec.canterbury.ac.nz>
4355 <h.callow-AT-elec.canterbury.ac.nz>
4351
4356
4352 2002-10-04 Fernando Perez <fperez@colorado.edu>
4357 2002-10-04 Fernando Perez <fperez@colorado.edu>
4353
4358
4354 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4359 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4355 Gnuplot.File objects.
4360 Gnuplot.File objects.
4356
4361
4357 2002-07-23 Fernando Perez <fperez@colorado.edu>
4362 2002-07-23 Fernando Perez <fperez@colorado.edu>
4358
4363
4359 * IPython/genutils.py (timing): Added timings() and timing() for
4364 * IPython/genutils.py (timing): Added timings() and timing() for
4360 quick access to the most commonly needed data, the execution
4365 quick access to the most commonly needed data, the execution
4361 times. Old timing() renamed to timings_out().
4366 times. Old timing() renamed to timings_out().
4362
4367
4363 2002-07-18 Fernando Perez <fperez@colorado.edu>
4368 2002-07-18 Fernando Perez <fperez@colorado.edu>
4364
4369
4365 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4370 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4366 bug with nested instances disrupting the parent's tab completion.
4371 bug with nested instances disrupting the parent's tab completion.
4367
4372
4368 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4373 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4369 all_completions code to begin the emacs integration.
4374 all_completions code to begin the emacs integration.
4370
4375
4371 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4376 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4372 argument to allow titling individual arrays when plotting.
4377 argument to allow titling individual arrays when plotting.
4373
4378
4374 2002-07-15 Fernando Perez <fperez@colorado.edu>
4379 2002-07-15 Fernando Perez <fperez@colorado.edu>
4375
4380
4376 * setup.py (make_shortcut): changed to retrieve the value of
4381 * setup.py (make_shortcut): changed to retrieve the value of
4377 'Program Files' directory from the registry (this value changes in
4382 'Program Files' directory from the registry (this value changes in
4378 non-english versions of Windows). Thanks to Thomas Fanslau
4383 non-english versions of Windows). Thanks to Thomas Fanslau
4379 <tfanslau-AT-gmx.de> for the report.
4384 <tfanslau-AT-gmx.de> for the report.
4380
4385
4381 2002-07-10 Fernando Perez <fperez@colorado.edu>
4386 2002-07-10 Fernando Perez <fperez@colorado.edu>
4382
4387
4383 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4388 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4384 a bug in pdb, which crashes if a line with only whitespace is
4389 a bug in pdb, which crashes if a line with only whitespace is
4385 entered. Bug report submitted to sourceforge.
4390 entered. Bug report submitted to sourceforge.
4386
4391
4387 2002-07-09 Fernando Perez <fperez@colorado.edu>
4392 2002-07-09 Fernando Perez <fperez@colorado.edu>
4388
4393
4389 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4394 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4390 reporting exceptions (it's a bug in inspect.py, I just set a
4395 reporting exceptions (it's a bug in inspect.py, I just set a
4391 workaround).
4396 workaround).
4392
4397
4393 2002-07-08 Fernando Perez <fperez@colorado.edu>
4398 2002-07-08 Fernando Perez <fperez@colorado.edu>
4394
4399
4395 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4400 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4396 __IPYTHON__ in __builtins__ to show up in user_ns.
4401 __IPYTHON__ in __builtins__ to show up in user_ns.
4397
4402
4398 2002-07-03 Fernando Perez <fperez@colorado.edu>
4403 2002-07-03 Fernando Perez <fperez@colorado.edu>
4399
4404
4400 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4405 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4401 name from @gp_set_instance to @gp_set_default.
4406 name from @gp_set_instance to @gp_set_default.
4402
4407
4403 * IPython/ipmaker.py (make_IPython): default editor value set to
4408 * IPython/ipmaker.py (make_IPython): default editor value set to
4404 '0' (a string), to match the rc file. Otherwise will crash when
4409 '0' (a string), to match the rc file. Otherwise will crash when
4405 .strip() is called on it.
4410 .strip() is called on it.
4406
4411
4407
4412
4408 2002-06-28 Fernando Perez <fperez@colorado.edu>
4413 2002-06-28 Fernando Perez <fperez@colorado.edu>
4409
4414
4410 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4415 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4411 of files in current directory when a file is executed via
4416 of files in current directory when a file is executed via
4412 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4417 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4413
4418
4414 * setup.py (manfiles): fix for rpm builds, submitted by RA
4419 * setup.py (manfiles): fix for rpm builds, submitted by RA
4415 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4420 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4416
4421
4417 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4422 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4418 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4423 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4419 string!). A. Schmolck caught this one.
4424 string!). A. Schmolck caught this one.
4420
4425
4421 2002-06-27 Fernando Perez <fperez@colorado.edu>
4426 2002-06-27 Fernando Perez <fperez@colorado.edu>
4422
4427
4423 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4428 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4424 defined files at the cmd line. __name__ wasn't being set to
4429 defined files at the cmd line. __name__ wasn't being set to
4425 __main__.
4430 __main__.
4426
4431
4427 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4432 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4428 regular lists and tuples besides Numeric arrays.
4433 regular lists and tuples besides Numeric arrays.
4429
4434
4430 * IPython/Prompts.py (CachedOutput.__call__): Added output
4435 * IPython/Prompts.py (CachedOutput.__call__): Added output
4431 supression for input ending with ';'. Similar to Mathematica and
4436 supression for input ending with ';'. Similar to Mathematica and
4432 Matlab. The _* vars and Out[] list are still updated, just like
4437 Matlab. The _* vars and Out[] list are still updated, just like
4433 Mathematica behaves.
4438 Mathematica behaves.
4434
4439
4435 2002-06-25 Fernando Perez <fperez@colorado.edu>
4440 2002-06-25 Fernando Perez <fperez@colorado.edu>
4436
4441
4437 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4442 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4438 .ini extensions for profiels under Windows.
4443 .ini extensions for profiels under Windows.
4439
4444
4440 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4445 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4441 string form. Fix contributed by Alexander Schmolck
4446 string form. Fix contributed by Alexander Schmolck
4442 <a.schmolck-AT-gmx.net>
4447 <a.schmolck-AT-gmx.net>
4443
4448
4444 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4449 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4445 pre-configured Gnuplot instance.
4450 pre-configured Gnuplot instance.
4446
4451
4447 2002-06-21 Fernando Perez <fperez@colorado.edu>
4452 2002-06-21 Fernando Perez <fperez@colorado.edu>
4448
4453
4449 * IPython/numutils.py (exp_safe): new function, works around the
4454 * IPython/numutils.py (exp_safe): new function, works around the
4450 underflow problems in Numeric.
4455 underflow problems in Numeric.
4451 (log2): New fn. Safe log in base 2: returns exact integer answer
4456 (log2): New fn. Safe log in base 2: returns exact integer answer
4452 for exact integer powers of 2.
4457 for exact integer powers of 2.
4453
4458
4454 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4459 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4455 properly.
4460 properly.
4456
4461
4457 2002-06-20 Fernando Perez <fperez@colorado.edu>
4462 2002-06-20 Fernando Perez <fperez@colorado.edu>
4458
4463
4459 * IPython/genutils.py (timing): new function like
4464 * IPython/genutils.py (timing): new function like
4460 Mathematica's. Similar to time_test, but returns more info.
4465 Mathematica's. Similar to time_test, but returns more info.
4461
4466
4462 2002-06-18 Fernando Perez <fperez@colorado.edu>
4467 2002-06-18 Fernando Perez <fperez@colorado.edu>
4463
4468
4464 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4469 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4465 according to Mike Heeter's suggestions.
4470 according to Mike Heeter's suggestions.
4466
4471
4467 2002-06-16 Fernando Perez <fperez@colorado.edu>
4472 2002-06-16 Fernando Perez <fperez@colorado.edu>
4468
4473
4469 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4474 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4470 system. GnuplotMagic is gone as a user-directory option. New files
4475 system. GnuplotMagic is gone as a user-directory option. New files
4471 make it easier to use all the gnuplot stuff both from external
4476 make it easier to use all the gnuplot stuff both from external
4472 programs as well as from IPython. Had to rewrite part of
4477 programs as well as from IPython. Had to rewrite part of
4473 hardcopy() b/c of a strange bug: often the ps files simply don't
4478 hardcopy() b/c of a strange bug: often the ps files simply don't
4474 get created, and require a repeat of the command (often several
4479 get created, and require a repeat of the command (often several
4475 times).
4480 times).
4476
4481
4477 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4482 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4478 resolve output channel at call time, so that if sys.stderr has
4483 resolve output channel at call time, so that if sys.stderr has
4479 been redirected by user this gets honored.
4484 been redirected by user this gets honored.
4480
4485
4481 2002-06-13 Fernando Perez <fperez@colorado.edu>
4486 2002-06-13 Fernando Perez <fperez@colorado.edu>
4482
4487
4483 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4488 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4484 IPShell. Kept a copy with the old names to avoid breaking people's
4489 IPShell. Kept a copy with the old names to avoid breaking people's
4485 embedded code.
4490 embedded code.
4486
4491
4487 * IPython/ipython: simplified it to the bare minimum after
4492 * IPython/ipython: simplified it to the bare minimum after
4488 Holger's suggestions. Added info about how to use it in
4493 Holger's suggestions. Added info about how to use it in
4489 PYTHONSTARTUP.
4494 PYTHONSTARTUP.
4490
4495
4491 * IPython/Shell.py (IPythonShell): changed the options passing
4496 * IPython/Shell.py (IPythonShell): changed the options passing
4492 from a string with funky %s replacements to a straight list. Maybe
4497 from a string with funky %s replacements to a straight list. Maybe
4493 a bit more typing, but it follows sys.argv conventions, so there's
4498 a bit more typing, but it follows sys.argv conventions, so there's
4494 less special-casing to remember.
4499 less special-casing to remember.
4495
4500
4496 2002-06-12 Fernando Perez <fperez@colorado.edu>
4501 2002-06-12 Fernando Perez <fperez@colorado.edu>
4497
4502
4498 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4503 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4499 command. Thanks to a suggestion by Mike Heeter.
4504 command. Thanks to a suggestion by Mike Heeter.
4500 (Magic.magic_pfile): added behavior to look at filenames if given
4505 (Magic.magic_pfile): added behavior to look at filenames if given
4501 arg is not a defined object.
4506 arg is not a defined object.
4502 (Magic.magic_save): New @save function to save code snippets. Also
4507 (Magic.magic_save): New @save function to save code snippets. Also
4503 a Mike Heeter idea.
4508 a Mike Heeter idea.
4504
4509
4505 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4510 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4506 plot() and replot(). Much more convenient now, especially for
4511 plot() and replot(). Much more convenient now, especially for
4507 interactive use.
4512 interactive use.
4508
4513
4509 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4514 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4510 filenames.
4515 filenames.
4511
4516
4512 2002-06-02 Fernando Perez <fperez@colorado.edu>
4517 2002-06-02 Fernando Perez <fperez@colorado.edu>
4513
4518
4514 * IPython/Struct.py (Struct.__init__): modified to admit
4519 * IPython/Struct.py (Struct.__init__): modified to admit
4515 initialization via another struct.
4520 initialization via another struct.
4516
4521
4517 * IPython/genutils.py (SystemExec.__init__): New stateful
4522 * IPython/genutils.py (SystemExec.__init__): New stateful
4518 interface to xsys and bq. Useful for writing system scripts.
4523 interface to xsys and bq. Useful for writing system scripts.
4519
4524
4520 2002-05-30 Fernando Perez <fperez@colorado.edu>
4525 2002-05-30 Fernando Perez <fperez@colorado.edu>
4521
4526
4522 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4527 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4523 documents. This will make the user download smaller (it's getting
4528 documents. This will make the user download smaller (it's getting
4524 too big).
4529 too big).
4525
4530
4526 2002-05-29 Fernando Perez <fperez@colorado.edu>
4531 2002-05-29 Fernando Perez <fperez@colorado.edu>
4527
4532
4528 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4533 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4529 fix problems with shelve and pickle. Seems to work, but I don't
4534 fix problems with shelve and pickle. Seems to work, but I don't
4530 know if corner cases break it. Thanks to Mike Heeter
4535 know if corner cases break it. Thanks to Mike Heeter
4531 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4536 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4532
4537
4533 2002-05-24 Fernando Perez <fperez@colorado.edu>
4538 2002-05-24 Fernando Perez <fperez@colorado.edu>
4534
4539
4535 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4540 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4536 macros having broken.
4541 macros having broken.
4537
4542
4538 2002-05-21 Fernando Perez <fperez@colorado.edu>
4543 2002-05-21 Fernando Perez <fperez@colorado.edu>
4539
4544
4540 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4545 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4541 introduced logging bug: all history before logging started was
4546 introduced logging bug: all history before logging started was
4542 being written one character per line! This came from the redesign
4547 being written one character per line! This came from the redesign
4543 of the input history as a special list which slices to strings,
4548 of the input history as a special list which slices to strings,
4544 not to lists.
4549 not to lists.
4545
4550
4546 2002-05-20 Fernando Perez <fperez@colorado.edu>
4551 2002-05-20 Fernando Perez <fperez@colorado.edu>
4547
4552
4548 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4553 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4549 be an attribute of all classes in this module. The design of these
4554 be an attribute of all classes in this module. The design of these
4550 classes needs some serious overhauling.
4555 classes needs some serious overhauling.
4551
4556
4552 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4557 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4553 which was ignoring '_' in option names.
4558 which was ignoring '_' in option names.
4554
4559
4555 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4560 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4556 'Verbose_novars' to 'Context' and made it the new default. It's a
4561 'Verbose_novars' to 'Context' and made it the new default. It's a
4557 bit more readable and also safer than verbose.
4562 bit more readable and also safer than verbose.
4558
4563
4559 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4564 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4560 triple-quoted strings.
4565 triple-quoted strings.
4561
4566
4562 * IPython/OInspect.py (__all__): new module exposing the object
4567 * IPython/OInspect.py (__all__): new module exposing the object
4563 introspection facilities. Now the corresponding magics are dummy
4568 introspection facilities. Now the corresponding magics are dummy
4564 wrappers around this. Having this module will make it much easier
4569 wrappers around this. Having this module will make it much easier
4565 to put these functions into our modified pdb.
4570 to put these functions into our modified pdb.
4566 This new object inspector system uses the new colorizing module,
4571 This new object inspector system uses the new colorizing module,
4567 so source code and other things are nicely syntax highlighted.
4572 so source code and other things are nicely syntax highlighted.
4568
4573
4569 2002-05-18 Fernando Perez <fperez@colorado.edu>
4574 2002-05-18 Fernando Perez <fperez@colorado.edu>
4570
4575
4571 * IPython/ColorANSI.py: Split the coloring tools into a separate
4576 * IPython/ColorANSI.py: Split the coloring tools into a separate
4572 module so I can use them in other code easier (they were part of
4577 module so I can use them in other code easier (they were part of
4573 ultraTB).
4578 ultraTB).
4574
4579
4575 2002-05-17 Fernando Perez <fperez@colorado.edu>
4580 2002-05-17 Fernando Perez <fperez@colorado.edu>
4576
4581
4577 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4582 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4578 fixed it to set the global 'g' also to the called instance, as
4583 fixed it to set the global 'g' also to the called instance, as
4579 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4584 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4580 user's 'g' variables).
4585 user's 'g' variables).
4581
4586
4582 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4587 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4583 global variables (aliases to _ih,_oh) so that users which expect
4588 global variables (aliases to _ih,_oh) so that users which expect
4584 In[5] or Out[7] to work aren't unpleasantly surprised.
4589 In[5] or Out[7] to work aren't unpleasantly surprised.
4585 (InputList.__getslice__): new class to allow executing slices of
4590 (InputList.__getslice__): new class to allow executing slices of
4586 input history directly. Very simple class, complements the use of
4591 input history directly. Very simple class, complements the use of
4587 macros.
4592 macros.
4588
4593
4589 2002-05-16 Fernando Perez <fperez@colorado.edu>
4594 2002-05-16 Fernando Perez <fperez@colorado.edu>
4590
4595
4591 * setup.py (docdirbase): make doc directory be just doc/IPython
4596 * setup.py (docdirbase): make doc directory be just doc/IPython
4592 without version numbers, it will reduce clutter for users.
4597 without version numbers, it will reduce clutter for users.
4593
4598
4594 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4599 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4595 execfile call to prevent possible memory leak. See for details:
4600 execfile call to prevent possible memory leak. See for details:
4596 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4601 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4597
4602
4598 2002-05-15 Fernando Perez <fperez@colorado.edu>
4603 2002-05-15 Fernando Perez <fperez@colorado.edu>
4599
4604
4600 * IPython/Magic.py (Magic.magic_psource): made the object
4605 * IPython/Magic.py (Magic.magic_psource): made the object
4601 introspection names be more standard: pdoc, pdef, pfile and
4606 introspection names be more standard: pdoc, pdef, pfile and
4602 psource. They all print/page their output, and it makes
4607 psource. They all print/page their output, and it makes
4603 remembering them easier. Kept old names for compatibility as
4608 remembering them easier. Kept old names for compatibility as
4604 aliases.
4609 aliases.
4605
4610
4606 2002-05-14 Fernando Perez <fperez@colorado.edu>
4611 2002-05-14 Fernando Perez <fperez@colorado.edu>
4607
4612
4608 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4613 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4609 what the mouse problem was. The trick is to use gnuplot with temp
4614 what the mouse problem was. The trick is to use gnuplot with temp
4610 files and NOT with pipes (for data communication), because having
4615 files and NOT with pipes (for data communication), because having
4611 both pipes and the mouse on is bad news.
4616 both pipes and the mouse on is bad news.
4612
4617
4613 2002-05-13 Fernando Perez <fperez@colorado.edu>
4618 2002-05-13 Fernando Perez <fperez@colorado.edu>
4614
4619
4615 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4620 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4616 bug. Information would be reported about builtins even when
4621 bug. Information would be reported about builtins even when
4617 user-defined functions overrode them.
4622 user-defined functions overrode them.
4618
4623
4619 2002-05-11 Fernando Perez <fperez@colorado.edu>
4624 2002-05-11 Fernando Perez <fperez@colorado.edu>
4620
4625
4621 * IPython/__init__.py (__all__): removed FlexCompleter from
4626 * IPython/__init__.py (__all__): removed FlexCompleter from
4622 __all__ so that things don't fail in platforms without readline.
4627 __all__ so that things don't fail in platforms without readline.
4623
4628
4624 2002-05-10 Fernando Perez <fperez@colorado.edu>
4629 2002-05-10 Fernando Perez <fperez@colorado.edu>
4625
4630
4626 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4631 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4627 it requires Numeric, effectively making Numeric a dependency for
4632 it requires Numeric, effectively making Numeric a dependency for
4628 IPython.
4633 IPython.
4629
4634
4630 * Released 0.2.13
4635 * Released 0.2.13
4631
4636
4632 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4637 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4633 profiler interface. Now all the major options from the profiler
4638 profiler interface. Now all the major options from the profiler
4634 module are directly supported in IPython, both for single
4639 module are directly supported in IPython, both for single
4635 expressions (@prun) and for full programs (@run -p).
4640 expressions (@prun) and for full programs (@run -p).
4636
4641
4637 2002-05-09 Fernando Perez <fperez@colorado.edu>
4642 2002-05-09 Fernando Perez <fperez@colorado.edu>
4638
4643
4639 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4644 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4640 magic properly formatted for screen.
4645 magic properly formatted for screen.
4641
4646
4642 * setup.py (make_shortcut): Changed things to put pdf version in
4647 * setup.py (make_shortcut): Changed things to put pdf version in
4643 doc/ instead of doc/manual (had to change lyxport a bit).
4648 doc/ instead of doc/manual (had to change lyxport a bit).
4644
4649
4645 * IPython/Magic.py (Profile.string_stats): made profile runs go
4650 * IPython/Magic.py (Profile.string_stats): made profile runs go
4646 through pager (they are long and a pager allows searching, saving,
4651 through pager (they are long and a pager allows searching, saving,
4647 etc.)
4652 etc.)
4648
4653
4649 2002-05-08 Fernando Perez <fperez@colorado.edu>
4654 2002-05-08 Fernando Perez <fperez@colorado.edu>
4650
4655
4651 * Released 0.2.12
4656 * Released 0.2.12
4652
4657
4653 2002-05-06 Fernando Perez <fperez@colorado.edu>
4658 2002-05-06 Fernando Perez <fperez@colorado.edu>
4654
4659
4655 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4660 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4656 introduced); 'hist n1 n2' was broken.
4661 introduced); 'hist n1 n2' was broken.
4657 (Magic.magic_pdb): added optional on/off arguments to @pdb
4662 (Magic.magic_pdb): added optional on/off arguments to @pdb
4658 (Magic.magic_run): added option -i to @run, which executes code in
4663 (Magic.magic_run): added option -i to @run, which executes code in
4659 the IPython namespace instead of a clean one. Also added @irun as
4664 the IPython namespace instead of a clean one. Also added @irun as
4660 an alias to @run -i.
4665 an alias to @run -i.
4661
4666
4662 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4667 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4663 fixed (it didn't really do anything, the namespaces were wrong).
4668 fixed (it didn't really do anything, the namespaces were wrong).
4664
4669
4665 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4670 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4666
4671
4667 * IPython/__init__.py (__all__): Fixed package namespace, now
4672 * IPython/__init__.py (__all__): Fixed package namespace, now
4668 'import IPython' does give access to IPython.<all> as
4673 'import IPython' does give access to IPython.<all> as
4669 expected. Also renamed __release__ to Release.
4674 expected. Also renamed __release__ to Release.
4670
4675
4671 * IPython/Debugger.py (__license__): created new Pdb class which
4676 * IPython/Debugger.py (__license__): created new Pdb class which
4672 functions like a drop-in for the normal pdb.Pdb but does NOT
4677 functions like a drop-in for the normal pdb.Pdb but does NOT
4673 import readline by default. This way it doesn't muck up IPython's
4678 import readline by default. This way it doesn't muck up IPython's
4674 readline handling, and now tab-completion finally works in the
4679 readline handling, and now tab-completion finally works in the
4675 debugger -- sort of. It completes things globally visible, but the
4680 debugger -- sort of. It completes things globally visible, but the
4676 completer doesn't track the stack as pdb walks it. That's a bit
4681 completer doesn't track the stack as pdb walks it. That's a bit
4677 tricky, and I'll have to implement it later.
4682 tricky, and I'll have to implement it later.
4678
4683
4679 2002-05-05 Fernando Perez <fperez@colorado.edu>
4684 2002-05-05 Fernando Perez <fperez@colorado.edu>
4680
4685
4681 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4686 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4682 magic docstrings when printed via ? (explicit \'s were being
4687 magic docstrings when printed via ? (explicit \'s were being
4683 printed).
4688 printed).
4684
4689
4685 * IPython/ipmaker.py (make_IPython): fixed namespace
4690 * IPython/ipmaker.py (make_IPython): fixed namespace
4686 identification bug. Now variables loaded via logs or command-line
4691 identification bug. Now variables loaded via logs or command-line
4687 files are recognized in the interactive namespace by @who.
4692 files are recognized in the interactive namespace by @who.
4688
4693
4689 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4694 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4690 log replay system stemming from the string form of Structs.
4695 log replay system stemming from the string form of Structs.
4691
4696
4692 * IPython/Magic.py (Macro.__init__): improved macros to properly
4697 * IPython/Magic.py (Macro.__init__): improved macros to properly
4693 handle magic commands in them.
4698 handle magic commands in them.
4694 (Magic.magic_logstart): usernames are now expanded so 'logstart
4699 (Magic.magic_logstart): usernames are now expanded so 'logstart
4695 ~/mylog' now works.
4700 ~/mylog' now works.
4696
4701
4697 * IPython/iplib.py (complete): fixed bug where paths starting with
4702 * IPython/iplib.py (complete): fixed bug where paths starting with
4698 '/' would be completed as magic names.
4703 '/' would be completed as magic names.
4699
4704
4700 2002-05-04 Fernando Perez <fperez@colorado.edu>
4705 2002-05-04 Fernando Perez <fperez@colorado.edu>
4701
4706
4702 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4707 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4703 allow running full programs under the profiler's control.
4708 allow running full programs under the profiler's control.
4704
4709
4705 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4710 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4706 mode to report exceptions verbosely but without formatting
4711 mode to report exceptions verbosely but without formatting
4707 variables. This addresses the issue of ipython 'freezing' (it's
4712 variables. This addresses the issue of ipython 'freezing' (it's
4708 not frozen, but caught in an expensive formatting loop) when huge
4713 not frozen, but caught in an expensive formatting loop) when huge
4709 variables are in the context of an exception.
4714 variables are in the context of an exception.
4710 (VerboseTB.text): Added '--->' markers at line where exception was
4715 (VerboseTB.text): Added '--->' markers at line where exception was
4711 triggered. Much clearer to read, especially in NoColor modes.
4716 triggered. Much clearer to read, especially in NoColor modes.
4712
4717
4713 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4718 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4714 implemented in reverse when changing to the new parse_options().
4719 implemented in reverse when changing to the new parse_options().
4715
4720
4716 2002-05-03 Fernando Perez <fperez@colorado.edu>
4721 2002-05-03 Fernando Perez <fperez@colorado.edu>
4717
4722
4718 * IPython/Magic.py (Magic.parse_options): new function so that
4723 * IPython/Magic.py (Magic.parse_options): new function so that
4719 magics can parse options easier.
4724 magics can parse options easier.
4720 (Magic.magic_prun): new function similar to profile.run(),
4725 (Magic.magic_prun): new function similar to profile.run(),
4721 suggested by Chris Hart.
4726 suggested by Chris Hart.
4722 (Magic.magic_cd): fixed behavior so that it only changes if
4727 (Magic.magic_cd): fixed behavior so that it only changes if
4723 directory actually is in history.
4728 directory actually is in history.
4724
4729
4725 * IPython/usage.py (__doc__): added information about potential
4730 * IPython/usage.py (__doc__): added information about potential
4726 slowness of Verbose exception mode when there are huge data
4731 slowness of Verbose exception mode when there are huge data
4727 structures to be formatted (thanks to Archie Paulson).
4732 structures to be formatted (thanks to Archie Paulson).
4728
4733
4729 * IPython/ipmaker.py (make_IPython): Changed default logging
4734 * IPython/ipmaker.py (make_IPython): Changed default logging
4730 (when simply called with -log) to use curr_dir/ipython.log in
4735 (when simply called with -log) to use curr_dir/ipython.log in
4731 rotate mode. Fixed crash which was occuring with -log before
4736 rotate mode. Fixed crash which was occuring with -log before
4732 (thanks to Jim Boyle).
4737 (thanks to Jim Boyle).
4733
4738
4734 2002-05-01 Fernando Perez <fperez@colorado.edu>
4739 2002-05-01 Fernando Perez <fperez@colorado.edu>
4735
4740
4736 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4741 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4737 was nasty -- though somewhat of a corner case).
4742 was nasty -- though somewhat of a corner case).
4738
4743
4739 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4744 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4740 text (was a bug).
4745 text (was a bug).
4741
4746
4742 2002-04-30 Fernando Perez <fperez@colorado.edu>
4747 2002-04-30 Fernando Perez <fperez@colorado.edu>
4743
4748
4744 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4749 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4745 a print after ^D or ^C from the user so that the In[] prompt
4750 a print after ^D or ^C from the user so that the In[] prompt
4746 doesn't over-run the gnuplot one.
4751 doesn't over-run the gnuplot one.
4747
4752
4748 2002-04-29 Fernando Perez <fperez@colorado.edu>
4753 2002-04-29 Fernando Perez <fperez@colorado.edu>
4749
4754
4750 * Released 0.2.10
4755 * Released 0.2.10
4751
4756
4752 * IPython/__release__.py (version): get date dynamically.
4757 * IPython/__release__.py (version): get date dynamically.
4753
4758
4754 * Misc. documentation updates thanks to Arnd's comments. Also ran
4759 * Misc. documentation updates thanks to Arnd's comments. Also ran
4755 a full spellcheck on the manual (hadn't been done in a while).
4760 a full spellcheck on the manual (hadn't been done in a while).
4756
4761
4757 2002-04-27 Fernando Perez <fperez@colorado.edu>
4762 2002-04-27 Fernando Perez <fperez@colorado.edu>
4758
4763
4759 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4764 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4760 starting a log in mid-session would reset the input history list.
4765 starting a log in mid-session would reset the input history list.
4761
4766
4762 2002-04-26 Fernando Perez <fperez@colorado.edu>
4767 2002-04-26 Fernando Perez <fperez@colorado.edu>
4763
4768
4764 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4769 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4765 all files were being included in an update. Now anything in
4770 all files were being included in an update. Now anything in
4766 UserConfig that matches [A-Za-z]*.py will go (this excludes
4771 UserConfig that matches [A-Za-z]*.py will go (this excludes
4767 __init__.py)
4772 __init__.py)
4768
4773
4769 2002-04-25 Fernando Perez <fperez@colorado.edu>
4774 2002-04-25 Fernando Perez <fperez@colorado.edu>
4770
4775
4771 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4776 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4772 to __builtins__ so that any form of embedded or imported code can
4777 to __builtins__ so that any form of embedded or imported code can
4773 test for being inside IPython.
4778 test for being inside IPython.
4774
4779
4775 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4780 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4776 changed to GnuplotMagic because it's now an importable module,
4781 changed to GnuplotMagic because it's now an importable module,
4777 this makes the name follow that of the standard Gnuplot module.
4782 this makes the name follow that of the standard Gnuplot module.
4778 GnuplotMagic can now be loaded at any time in mid-session.
4783 GnuplotMagic can now be loaded at any time in mid-session.
4779
4784
4780 2002-04-24 Fernando Perez <fperez@colorado.edu>
4785 2002-04-24 Fernando Perez <fperez@colorado.edu>
4781
4786
4782 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4787 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4783 the globals (IPython has its own namespace) and the
4788 the globals (IPython has its own namespace) and the
4784 PhysicalQuantity stuff is much better anyway.
4789 PhysicalQuantity stuff is much better anyway.
4785
4790
4786 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4791 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4787 embedding example to standard user directory for
4792 embedding example to standard user directory for
4788 distribution. Also put it in the manual.
4793 distribution. Also put it in the manual.
4789
4794
4790 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4795 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4791 instance as first argument (so it doesn't rely on some obscure
4796 instance as first argument (so it doesn't rely on some obscure
4792 hidden global).
4797 hidden global).
4793
4798
4794 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4799 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4795 delimiters. While it prevents ().TAB from working, it allows
4800 delimiters. While it prevents ().TAB from working, it allows
4796 completions in open (... expressions. This is by far a more common
4801 completions in open (... expressions. This is by far a more common
4797 case.
4802 case.
4798
4803
4799 2002-04-23 Fernando Perez <fperez@colorado.edu>
4804 2002-04-23 Fernando Perez <fperez@colorado.edu>
4800
4805
4801 * IPython/Extensions/InterpreterPasteInput.py: new
4806 * IPython/Extensions/InterpreterPasteInput.py: new
4802 syntax-processing module for pasting lines with >>> or ... at the
4807 syntax-processing module for pasting lines with >>> or ... at the
4803 start.
4808 start.
4804
4809
4805 * IPython/Extensions/PhysicalQ_Interactive.py
4810 * IPython/Extensions/PhysicalQ_Interactive.py
4806 (PhysicalQuantityInteractive.__int__): fixed to work with either
4811 (PhysicalQuantityInteractive.__int__): fixed to work with either
4807 Numeric or math.
4812 Numeric or math.
4808
4813
4809 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4814 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4810 provided profiles. Now we have:
4815 provided profiles. Now we have:
4811 -math -> math module as * and cmath with its own namespace.
4816 -math -> math module as * and cmath with its own namespace.
4812 -numeric -> Numeric as *, plus gnuplot & grace
4817 -numeric -> Numeric as *, plus gnuplot & grace
4813 -physics -> same as before
4818 -physics -> same as before
4814
4819
4815 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4820 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4816 user-defined magics wouldn't be found by @magic if they were
4821 user-defined magics wouldn't be found by @magic if they were
4817 defined as class methods. Also cleaned up the namespace search
4822 defined as class methods. Also cleaned up the namespace search
4818 logic and the string building (to use %s instead of many repeated
4823 logic and the string building (to use %s instead of many repeated
4819 string adds).
4824 string adds).
4820
4825
4821 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4826 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4822 of user-defined magics to operate with class methods (cleaner, in
4827 of user-defined magics to operate with class methods (cleaner, in
4823 line with the gnuplot code).
4828 line with the gnuplot code).
4824
4829
4825 2002-04-22 Fernando Perez <fperez@colorado.edu>
4830 2002-04-22 Fernando Perez <fperez@colorado.edu>
4826
4831
4827 * setup.py: updated dependency list so that manual is updated when
4832 * setup.py: updated dependency list so that manual is updated when
4828 all included files change.
4833 all included files change.
4829
4834
4830 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4835 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4831 the delimiter removal option (the fix is ugly right now).
4836 the delimiter removal option (the fix is ugly right now).
4832
4837
4833 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4838 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4834 all of the math profile (quicker loading, no conflict between
4839 all of the math profile (quicker loading, no conflict between
4835 g-9.8 and g-gnuplot).
4840 g-9.8 and g-gnuplot).
4836
4841
4837 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4842 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4838 name of post-mortem files to IPython_crash_report.txt.
4843 name of post-mortem files to IPython_crash_report.txt.
4839
4844
4840 * Cleanup/update of the docs. Added all the new readline info and
4845 * Cleanup/update of the docs. Added all the new readline info and
4841 formatted all lists as 'real lists'.
4846 formatted all lists as 'real lists'.
4842
4847
4843 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4848 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4844 tab-completion options, since the full readline parse_and_bind is
4849 tab-completion options, since the full readline parse_and_bind is
4845 now accessible.
4850 now accessible.
4846
4851
4847 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4852 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4848 handling of readline options. Now users can specify any string to
4853 handling of readline options. Now users can specify any string to
4849 be passed to parse_and_bind(), as well as the delimiters to be
4854 be passed to parse_and_bind(), as well as the delimiters to be
4850 removed.
4855 removed.
4851 (InteractiveShell.__init__): Added __name__ to the global
4856 (InteractiveShell.__init__): Added __name__ to the global
4852 namespace so that things like Itpl which rely on its existence
4857 namespace so that things like Itpl which rely on its existence
4853 don't crash.
4858 don't crash.
4854 (InteractiveShell._prefilter): Defined the default with a _ so
4859 (InteractiveShell._prefilter): Defined the default with a _ so
4855 that prefilter() is easier to override, while the default one
4860 that prefilter() is easier to override, while the default one
4856 remains available.
4861 remains available.
4857
4862
4858 2002-04-18 Fernando Perez <fperez@colorado.edu>
4863 2002-04-18 Fernando Perez <fperez@colorado.edu>
4859
4864
4860 * Added information about pdb in the docs.
4865 * Added information about pdb in the docs.
4861
4866
4862 2002-04-17 Fernando Perez <fperez@colorado.edu>
4867 2002-04-17 Fernando Perez <fperez@colorado.edu>
4863
4868
4864 * IPython/ipmaker.py (make_IPython): added rc_override option to
4869 * IPython/ipmaker.py (make_IPython): added rc_override option to
4865 allow passing config options at creation time which may override
4870 allow passing config options at creation time which may override
4866 anything set in the config files or command line. This is
4871 anything set in the config files or command line. This is
4867 particularly useful for configuring embedded instances.
4872 particularly useful for configuring embedded instances.
4868
4873
4869 2002-04-15 Fernando Perez <fperez@colorado.edu>
4874 2002-04-15 Fernando Perez <fperez@colorado.edu>
4870
4875
4871 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4876 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4872 crash embedded instances because of the input cache falling out of
4877 crash embedded instances because of the input cache falling out of
4873 sync with the output counter.
4878 sync with the output counter.
4874
4879
4875 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4880 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4876 mode which calls pdb after an uncaught exception in IPython itself.
4881 mode which calls pdb after an uncaught exception in IPython itself.
4877
4882
4878 2002-04-14 Fernando Perez <fperez@colorado.edu>
4883 2002-04-14 Fernando Perez <fperez@colorado.edu>
4879
4884
4880 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4885 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4881 readline, fix it back after each call.
4886 readline, fix it back after each call.
4882
4887
4883 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4888 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4884 method to force all access via __call__(), which guarantees that
4889 method to force all access via __call__(), which guarantees that
4885 traceback references are properly deleted.
4890 traceback references are properly deleted.
4886
4891
4887 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4892 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4888 improve printing when pprint is in use.
4893 improve printing when pprint is in use.
4889
4894
4890 2002-04-13 Fernando Perez <fperez@colorado.edu>
4895 2002-04-13 Fernando Perez <fperez@colorado.edu>
4891
4896
4892 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4897 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4893 exceptions aren't caught anymore. If the user triggers one, he
4898 exceptions aren't caught anymore. If the user triggers one, he
4894 should know why he's doing it and it should go all the way up,
4899 should know why he's doing it and it should go all the way up,
4895 just like any other exception. So now @abort will fully kill the
4900 just like any other exception. So now @abort will fully kill the
4896 embedded interpreter and the embedding code (unless that happens
4901 embedded interpreter and the embedding code (unless that happens
4897 to catch SystemExit).
4902 to catch SystemExit).
4898
4903
4899 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4904 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4900 and a debugger() method to invoke the interactive pdb debugger
4905 and a debugger() method to invoke the interactive pdb debugger
4901 after printing exception information. Also added the corresponding
4906 after printing exception information. Also added the corresponding
4902 -pdb option and @pdb magic to control this feature, and updated
4907 -pdb option and @pdb magic to control this feature, and updated
4903 the docs. After a suggestion from Christopher Hart
4908 the docs. After a suggestion from Christopher Hart
4904 (hart-AT-caltech.edu).
4909 (hart-AT-caltech.edu).
4905
4910
4906 2002-04-12 Fernando Perez <fperez@colorado.edu>
4911 2002-04-12 Fernando Perez <fperez@colorado.edu>
4907
4912
4908 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4913 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4909 the exception handlers defined by the user (not the CrashHandler)
4914 the exception handlers defined by the user (not the CrashHandler)
4910 so that user exceptions don't trigger an ipython bug report.
4915 so that user exceptions don't trigger an ipython bug report.
4911
4916
4912 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4917 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4913 configurable (it should have always been so).
4918 configurable (it should have always been so).
4914
4919
4915 2002-03-26 Fernando Perez <fperez@colorado.edu>
4920 2002-03-26 Fernando Perez <fperez@colorado.edu>
4916
4921
4917 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4922 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4918 and there to fix embedding namespace issues. This should all be
4923 and there to fix embedding namespace issues. This should all be
4919 done in a more elegant way.
4924 done in a more elegant way.
4920
4925
4921 2002-03-25 Fernando Perez <fperez@colorado.edu>
4926 2002-03-25 Fernando Perez <fperez@colorado.edu>
4922
4927
4923 * IPython/genutils.py (get_home_dir): Try to make it work under
4928 * IPython/genutils.py (get_home_dir): Try to make it work under
4924 win9x also.
4929 win9x also.
4925
4930
4926 2002-03-20 Fernando Perez <fperez@colorado.edu>
4931 2002-03-20 Fernando Perez <fperez@colorado.edu>
4927
4932
4928 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4933 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4929 sys.displayhook untouched upon __init__.
4934 sys.displayhook untouched upon __init__.
4930
4935
4931 2002-03-19 Fernando Perez <fperez@colorado.edu>
4936 2002-03-19 Fernando Perez <fperez@colorado.edu>
4932
4937
4933 * Released 0.2.9 (for embedding bug, basically).
4938 * Released 0.2.9 (for embedding bug, basically).
4934
4939
4935 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4940 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4936 exceptions so that enclosing shell's state can be restored.
4941 exceptions so that enclosing shell's state can be restored.
4937
4942
4938 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4943 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4939 naming conventions in the .ipython/ dir.
4944 naming conventions in the .ipython/ dir.
4940
4945
4941 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4946 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4942 from delimiters list so filenames with - in them get expanded.
4947 from delimiters list so filenames with - in them get expanded.
4943
4948
4944 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4949 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4945 sys.displayhook not being properly restored after an embedded call.
4950 sys.displayhook not being properly restored after an embedded call.
4946
4951
4947 2002-03-18 Fernando Perez <fperez@colorado.edu>
4952 2002-03-18 Fernando Perez <fperez@colorado.edu>
4948
4953
4949 * Released 0.2.8
4954 * Released 0.2.8
4950
4955
4951 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4956 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4952 some files weren't being included in a -upgrade.
4957 some files weren't being included in a -upgrade.
4953 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4958 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4954 on' so that the first tab completes.
4959 on' so that the first tab completes.
4955 (InteractiveShell.handle_magic): fixed bug with spaces around
4960 (InteractiveShell.handle_magic): fixed bug with spaces around
4956 quotes breaking many magic commands.
4961 quotes breaking many magic commands.
4957
4962
4958 * setup.py: added note about ignoring the syntax error messages at
4963 * setup.py: added note about ignoring the syntax error messages at
4959 installation.
4964 installation.
4960
4965
4961 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4966 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4962 streamlining the gnuplot interface, now there's only one magic @gp.
4967 streamlining the gnuplot interface, now there's only one magic @gp.
4963
4968
4964 2002-03-17 Fernando Perez <fperez@colorado.edu>
4969 2002-03-17 Fernando Perez <fperez@colorado.edu>
4965
4970
4966 * IPython/UserConfig/magic_gnuplot.py: new name for the
4971 * IPython/UserConfig/magic_gnuplot.py: new name for the
4967 example-magic_pm.py file. Much enhanced system, now with a shell
4972 example-magic_pm.py file. Much enhanced system, now with a shell
4968 for communicating directly with gnuplot, one command at a time.
4973 for communicating directly with gnuplot, one command at a time.
4969
4974
4970 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4975 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4971 setting __name__=='__main__'.
4976 setting __name__=='__main__'.
4972
4977
4973 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4978 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4974 mini-shell for accessing gnuplot from inside ipython. Should
4979 mini-shell for accessing gnuplot from inside ipython. Should
4975 extend it later for grace access too. Inspired by Arnd's
4980 extend it later for grace access too. Inspired by Arnd's
4976 suggestion.
4981 suggestion.
4977
4982
4978 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4983 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4979 calling magic functions with () in their arguments. Thanks to Arnd
4984 calling magic functions with () in their arguments. Thanks to Arnd
4980 Baecker for pointing this to me.
4985 Baecker for pointing this to me.
4981
4986
4982 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4987 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4983 infinitely for integer or complex arrays (only worked with floats).
4988 infinitely for integer or complex arrays (only worked with floats).
4984
4989
4985 2002-03-16 Fernando Perez <fperez@colorado.edu>
4990 2002-03-16 Fernando Perez <fperez@colorado.edu>
4986
4991
4987 * setup.py: Merged setup and setup_windows into a single script
4992 * setup.py: Merged setup and setup_windows into a single script
4988 which properly handles things for windows users.
4993 which properly handles things for windows users.
4989
4994
4990 2002-03-15 Fernando Perez <fperez@colorado.edu>
4995 2002-03-15 Fernando Perez <fperez@colorado.edu>
4991
4996
4992 * Big change to the manual: now the magics are all automatically
4997 * Big change to the manual: now the magics are all automatically
4993 documented. This information is generated from their docstrings
4998 documented. This information is generated from their docstrings
4994 and put in a latex file included by the manual lyx file. This way
4999 and put in a latex file included by the manual lyx file. This way
4995 we get always up to date information for the magics. The manual
5000 we get always up to date information for the magics. The manual
4996 now also has proper version information, also auto-synced.
5001 now also has proper version information, also auto-synced.
4997
5002
4998 For this to work, an undocumented --magic_docstrings option was added.
5003 For this to work, an undocumented --magic_docstrings option was added.
4999
5004
5000 2002-03-13 Fernando Perez <fperez@colorado.edu>
5005 2002-03-13 Fernando Perez <fperez@colorado.edu>
5001
5006
5002 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5007 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5003 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5008 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5004
5009
5005 2002-03-12 Fernando Perez <fperez@colorado.edu>
5010 2002-03-12 Fernando Perez <fperez@colorado.edu>
5006
5011
5007 * IPython/ultraTB.py (TermColors): changed color escapes again to
5012 * IPython/ultraTB.py (TermColors): changed color escapes again to
5008 fix the (old, reintroduced) line-wrapping bug. Basically, if
5013 fix the (old, reintroduced) line-wrapping bug. Basically, if
5009 \001..\002 aren't given in the color escapes, lines get wrapped
5014 \001..\002 aren't given in the color escapes, lines get wrapped
5010 weirdly. But giving those screws up old xterms and emacs terms. So
5015 weirdly. But giving those screws up old xterms and emacs terms. So
5011 I added some logic for emacs terms to be ok, but I can't identify old
5016 I added some logic for emacs terms to be ok, but I can't identify old
5012 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5017 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5013
5018
5014 2002-03-10 Fernando Perez <fperez@colorado.edu>
5019 2002-03-10 Fernando Perez <fperez@colorado.edu>
5015
5020
5016 * IPython/usage.py (__doc__): Various documentation cleanups and
5021 * IPython/usage.py (__doc__): Various documentation cleanups and
5017 updates, both in usage docstrings and in the manual.
5022 updates, both in usage docstrings and in the manual.
5018
5023
5019 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5024 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5020 handling of caching. Set minimum acceptabe value for having a
5025 handling of caching. Set minimum acceptabe value for having a
5021 cache at 20 values.
5026 cache at 20 values.
5022
5027
5023 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5028 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5024 install_first_time function to a method, renamed it and added an
5029 install_first_time function to a method, renamed it and added an
5025 'upgrade' mode. Now people can update their config directory with
5030 'upgrade' mode. Now people can update their config directory with
5026 a simple command line switch (-upgrade, also new).
5031 a simple command line switch (-upgrade, also new).
5027
5032
5028 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5033 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5029 @file (convenient for automagic users under Python >= 2.2).
5034 @file (convenient for automagic users under Python >= 2.2).
5030 Removed @files (it seemed more like a plural than an abbrev. of
5035 Removed @files (it seemed more like a plural than an abbrev. of
5031 'file show').
5036 'file show').
5032
5037
5033 * IPython/iplib.py (install_first_time): Fixed crash if there were
5038 * IPython/iplib.py (install_first_time): Fixed crash if there were
5034 backup files ('~') in .ipython/ install directory.
5039 backup files ('~') in .ipython/ install directory.
5035
5040
5036 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5041 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5037 system. Things look fine, but these changes are fairly
5042 system. Things look fine, but these changes are fairly
5038 intrusive. Test them for a few days.
5043 intrusive. Test them for a few days.
5039
5044
5040 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5045 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5041 the prompts system. Now all in/out prompt strings are user
5046 the prompts system. Now all in/out prompt strings are user
5042 controllable. This is particularly useful for embedding, as one
5047 controllable. This is particularly useful for embedding, as one
5043 can tag embedded instances with particular prompts.
5048 can tag embedded instances with particular prompts.
5044
5049
5045 Also removed global use of sys.ps1/2, which now allows nested
5050 Also removed global use of sys.ps1/2, which now allows nested
5046 embeddings without any problems. Added command-line options for
5051 embeddings without any problems. Added command-line options for
5047 the prompt strings.
5052 the prompt strings.
5048
5053
5049 2002-03-08 Fernando Perez <fperez@colorado.edu>
5054 2002-03-08 Fernando Perez <fperez@colorado.edu>
5050
5055
5051 * IPython/UserConfig/example-embed-short.py (ipshell): added
5056 * IPython/UserConfig/example-embed-short.py (ipshell): added
5052 example file with the bare minimum code for embedding.
5057 example file with the bare minimum code for embedding.
5053
5058
5054 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5059 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5055 functionality for the embeddable shell to be activated/deactivated
5060 functionality for the embeddable shell to be activated/deactivated
5056 either globally or at each call.
5061 either globally or at each call.
5057
5062
5058 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5063 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5059 rewriting the prompt with '--->' for auto-inputs with proper
5064 rewriting the prompt with '--->' for auto-inputs with proper
5060 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5065 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5061 this is handled by the prompts class itself, as it should.
5066 this is handled by the prompts class itself, as it should.
5062
5067
5063 2002-03-05 Fernando Perez <fperez@colorado.edu>
5068 2002-03-05 Fernando Perez <fperez@colorado.edu>
5064
5069
5065 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5070 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5066 @logstart to avoid name clashes with the math log function.
5071 @logstart to avoid name clashes with the math log function.
5067
5072
5068 * Big updates to X/Emacs section of the manual.
5073 * Big updates to X/Emacs section of the manual.
5069
5074
5070 * Removed ipython_emacs. Milan explained to me how to pass
5075 * Removed ipython_emacs. Milan explained to me how to pass
5071 arguments to ipython through Emacs. Some day I'm going to end up
5076 arguments to ipython through Emacs. Some day I'm going to end up
5072 learning some lisp...
5077 learning some lisp...
5073
5078
5074 2002-03-04 Fernando Perez <fperez@colorado.edu>
5079 2002-03-04 Fernando Perez <fperez@colorado.edu>
5075
5080
5076 * IPython/ipython_emacs: Created script to be used as the
5081 * IPython/ipython_emacs: Created script to be used as the
5077 py-python-command Emacs variable so we can pass IPython
5082 py-python-command Emacs variable so we can pass IPython
5078 parameters. I can't figure out how to tell Emacs directly to pass
5083 parameters. I can't figure out how to tell Emacs directly to pass
5079 parameters to IPython, so a dummy shell script will do it.
5084 parameters to IPython, so a dummy shell script will do it.
5080
5085
5081 Other enhancements made for things to work better under Emacs'
5086 Other enhancements made for things to work better under Emacs'
5082 various types of terminals. Many thanks to Milan Zamazal
5087 various types of terminals. Many thanks to Milan Zamazal
5083 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5088 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5084
5089
5085 2002-03-01 Fernando Perez <fperez@colorado.edu>
5090 2002-03-01 Fernando Perez <fperez@colorado.edu>
5086
5091
5087 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5092 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5088 that loading of readline is now optional. This gives better
5093 that loading of readline is now optional. This gives better
5089 control to emacs users.
5094 control to emacs users.
5090
5095
5091 * IPython/ultraTB.py (__date__): Modified color escape sequences
5096 * IPython/ultraTB.py (__date__): Modified color escape sequences
5092 and now things work fine under xterm and in Emacs' term buffers
5097 and now things work fine under xterm and in Emacs' term buffers
5093 (though not shell ones). Well, in emacs you get colors, but all
5098 (though not shell ones). Well, in emacs you get colors, but all
5094 seem to be 'light' colors (no difference between dark and light
5099 seem to be 'light' colors (no difference between dark and light
5095 ones). But the garbage chars are gone, and also in xterms. It
5100 ones). But the garbage chars are gone, and also in xterms. It
5096 seems that now I'm using 'cleaner' ansi sequences.
5101 seems that now I'm using 'cleaner' ansi sequences.
5097
5102
5098 2002-02-21 Fernando Perez <fperez@colorado.edu>
5103 2002-02-21 Fernando Perez <fperez@colorado.edu>
5099
5104
5100 * Released 0.2.7 (mainly to publish the scoping fix).
5105 * Released 0.2.7 (mainly to publish the scoping fix).
5101
5106
5102 * IPython/Logger.py (Logger.logstate): added. A corresponding
5107 * IPython/Logger.py (Logger.logstate): added. A corresponding
5103 @logstate magic was created.
5108 @logstate magic was created.
5104
5109
5105 * IPython/Magic.py: fixed nested scoping problem under Python
5110 * IPython/Magic.py: fixed nested scoping problem under Python
5106 2.1.x (automagic wasn't working).
5111 2.1.x (automagic wasn't working).
5107
5112
5108 2002-02-20 Fernando Perez <fperez@colorado.edu>
5113 2002-02-20 Fernando Perez <fperez@colorado.edu>
5109
5114
5110 * Released 0.2.6.
5115 * Released 0.2.6.
5111
5116
5112 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5117 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5113 option so that logs can come out without any headers at all.
5118 option so that logs can come out without any headers at all.
5114
5119
5115 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5120 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5116 SciPy.
5121 SciPy.
5117
5122
5118 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5123 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5119 that embedded IPython calls don't require vars() to be explicitly
5124 that embedded IPython calls don't require vars() to be explicitly
5120 passed. Now they are extracted from the caller's frame (code
5125 passed. Now they are extracted from the caller's frame (code
5121 snatched from Eric Jones' weave). Added better documentation to
5126 snatched from Eric Jones' weave). Added better documentation to
5122 the section on embedding and the example file.
5127 the section on embedding and the example file.
5123
5128
5124 * IPython/genutils.py (page): Changed so that under emacs, it just
5129 * IPython/genutils.py (page): Changed so that under emacs, it just
5125 prints the string. You can then page up and down in the emacs
5130 prints the string. You can then page up and down in the emacs
5126 buffer itself. This is how the builtin help() works.
5131 buffer itself. This is how the builtin help() works.
5127
5132
5128 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5133 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5129 macro scoping: macros need to be executed in the user's namespace
5134 macro scoping: macros need to be executed in the user's namespace
5130 to work as if they had been typed by the user.
5135 to work as if they had been typed by the user.
5131
5136
5132 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5137 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5133 execute automatically (no need to type 'exec...'). They then
5138 execute automatically (no need to type 'exec...'). They then
5134 behave like 'true macros'. The printing system was also modified
5139 behave like 'true macros'. The printing system was also modified
5135 for this to work.
5140 for this to work.
5136
5141
5137 2002-02-19 Fernando Perez <fperez@colorado.edu>
5142 2002-02-19 Fernando Perez <fperez@colorado.edu>
5138
5143
5139 * IPython/genutils.py (page_file): new function for paging files
5144 * IPython/genutils.py (page_file): new function for paging files
5140 in an OS-independent way. Also necessary for file viewing to work
5145 in an OS-independent way. Also necessary for file viewing to work
5141 well inside Emacs buffers.
5146 well inside Emacs buffers.
5142 (page): Added checks for being in an emacs buffer.
5147 (page): Added checks for being in an emacs buffer.
5143 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5148 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5144 same bug in iplib.
5149 same bug in iplib.
5145
5150
5146 2002-02-18 Fernando Perez <fperez@colorado.edu>
5151 2002-02-18 Fernando Perez <fperez@colorado.edu>
5147
5152
5148 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5153 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5149 of readline so that IPython can work inside an Emacs buffer.
5154 of readline so that IPython can work inside an Emacs buffer.
5150
5155
5151 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5156 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5152 method signatures (they weren't really bugs, but it looks cleaner
5157 method signatures (they weren't really bugs, but it looks cleaner
5153 and keeps PyChecker happy).
5158 and keeps PyChecker happy).
5154
5159
5155 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5160 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5156 for implementing various user-defined hooks. Currently only
5161 for implementing various user-defined hooks. Currently only
5157 display is done.
5162 display is done.
5158
5163
5159 * IPython/Prompts.py (CachedOutput._display): changed display
5164 * IPython/Prompts.py (CachedOutput._display): changed display
5160 functions so that they can be dynamically changed by users easily.
5165 functions so that they can be dynamically changed by users easily.
5161
5166
5162 * IPython/Extensions/numeric_formats.py (num_display): added an
5167 * IPython/Extensions/numeric_formats.py (num_display): added an
5163 extension for printing NumPy arrays in flexible manners. It
5168 extension for printing NumPy arrays in flexible manners. It
5164 doesn't do anything yet, but all the structure is in
5169 doesn't do anything yet, but all the structure is in
5165 place. Ultimately the plan is to implement output format control
5170 place. Ultimately the plan is to implement output format control
5166 like in Octave.
5171 like in Octave.
5167
5172
5168 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5173 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5169 methods are found at run-time by all the automatic machinery.
5174 methods are found at run-time by all the automatic machinery.
5170
5175
5171 2002-02-17 Fernando Perez <fperez@colorado.edu>
5176 2002-02-17 Fernando Perez <fperez@colorado.edu>
5172
5177
5173 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5178 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5174 whole file a little.
5179 whole file a little.
5175
5180
5176 * ToDo: closed this document. Now there's a new_design.lyx
5181 * ToDo: closed this document. Now there's a new_design.lyx
5177 document for all new ideas. Added making a pdf of it for the
5182 document for all new ideas. Added making a pdf of it for the
5178 end-user distro.
5183 end-user distro.
5179
5184
5180 * IPython/Logger.py (Logger.switch_log): Created this to replace
5185 * IPython/Logger.py (Logger.switch_log): Created this to replace
5181 logon() and logoff(). It also fixes a nasty crash reported by
5186 logon() and logoff(). It also fixes a nasty crash reported by
5182 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5187 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5183
5188
5184 * IPython/iplib.py (complete): got auto-completion to work with
5189 * IPython/iplib.py (complete): got auto-completion to work with
5185 automagic (I had wanted this for a long time).
5190 automagic (I had wanted this for a long time).
5186
5191
5187 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5192 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5188 to @file, since file() is now a builtin and clashes with automagic
5193 to @file, since file() is now a builtin and clashes with automagic
5189 for @file.
5194 for @file.
5190
5195
5191 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5196 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5192 of this was previously in iplib, which had grown to more than 2000
5197 of this was previously in iplib, which had grown to more than 2000
5193 lines, way too long. No new functionality, but it makes managing
5198 lines, way too long. No new functionality, but it makes managing
5194 the code a bit easier.
5199 the code a bit easier.
5195
5200
5196 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5201 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5197 information to crash reports.
5202 information to crash reports.
5198
5203
5199 2002-02-12 Fernando Perez <fperez@colorado.edu>
5204 2002-02-12 Fernando Perez <fperez@colorado.edu>
5200
5205
5201 * Released 0.2.5.
5206 * Released 0.2.5.
5202
5207
5203 2002-02-11 Fernando Perez <fperez@colorado.edu>
5208 2002-02-11 Fernando Perez <fperez@colorado.edu>
5204
5209
5205 * Wrote a relatively complete Windows installer. It puts
5210 * Wrote a relatively complete Windows installer. It puts
5206 everything in place, creates Start Menu entries and fixes the
5211 everything in place, creates Start Menu entries and fixes the
5207 color issues. Nothing fancy, but it works.
5212 color issues. Nothing fancy, but it works.
5208
5213
5209 2002-02-10 Fernando Perez <fperez@colorado.edu>
5214 2002-02-10 Fernando Perez <fperez@colorado.edu>
5210
5215
5211 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5216 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5212 os.path.expanduser() call so that we can type @run ~/myfile.py and
5217 os.path.expanduser() call so that we can type @run ~/myfile.py and
5213 have thigs work as expected.
5218 have thigs work as expected.
5214
5219
5215 * IPython/genutils.py (page): fixed exception handling so things
5220 * IPython/genutils.py (page): fixed exception handling so things
5216 work both in Unix and Windows correctly. Quitting a pager triggers
5221 work both in Unix and Windows correctly. Quitting a pager triggers
5217 an IOError/broken pipe in Unix, and in windows not finding a pager
5222 an IOError/broken pipe in Unix, and in windows not finding a pager
5218 is also an IOError, so I had to actually look at the return value
5223 is also an IOError, so I had to actually look at the return value
5219 of the exception, not just the exception itself. Should be ok now.
5224 of the exception, not just the exception itself. Should be ok now.
5220
5225
5221 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5226 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5222 modified to allow case-insensitive color scheme changes.
5227 modified to allow case-insensitive color scheme changes.
5223
5228
5224 2002-02-09 Fernando Perez <fperez@colorado.edu>
5229 2002-02-09 Fernando Perez <fperez@colorado.edu>
5225
5230
5226 * IPython/genutils.py (native_line_ends): new function to leave
5231 * IPython/genutils.py (native_line_ends): new function to leave
5227 user config files with os-native line-endings.
5232 user config files with os-native line-endings.
5228
5233
5229 * README and manual updates.
5234 * README and manual updates.
5230
5235
5231 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5236 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5232 instead of StringType to catch Unicode strings.
5237 instead of StringType to catch Unicode strings.
5233
5238
5234 * IPython/genutils.py (filefind): fixed bug for paths with
5239 * IPython/genutils.py (filefind): fixed bug for paths with
5235 embedded spaces (very common in Windows).
5240 embedded spaces (very common in Windows).
5236
5241
5237 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5242 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5238 files under Windows, so that they get automatically associated
5243 files under Windows, so that they get automatically associated
5239 with a text editor. Windows makes it a pain to handle
5244 with a text editor. Windows makes it a pain to handle
5240 extension-less files.
5245 extension-less files.
5241
5246
5242 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5247 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5243 warning about readline only occur for Posix. In Windows there's no
5248 warning about readline only occur for Posix. In Windows there's no
5244 way to get readline, so why bother with the warning.
5249 way to get readline, so why bother with the warning.
5245
5250
5246 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5251 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5247 for __str__ instead of dir(self), since dir() changed in 2.2.
5252 for __str__ instead of dir(self), since dir() changed in 2.2.
5248
5253
5249 * Ported to Windows! Tested on XP, I suspect it should work fine
5254 * Ported to Windows! Tested on XP, I suspect it should work fine
5250 on NT/2000, but I don't think it will work on 98 et al. That
5255 on NT/2000, but I don't think it will work on 98 et al. That
5251 series of Windows is such a piece of junk anyway that I won't try
5256 series of Windows is such a piece of junk anyway that I won't try
5252 porting it there. The XP port was straightforward, showed a few
5257 porting it there. The XP port was straightforward, showed a few
5253 bugs here and there (fixed all), in particular some string
5258 bugs here and there (fixed all), in particular some string
5254 handling stuff which required considering Unicode strings (which
5259 handling stuff which required considering Unicode strings (which
5255 Windows uses). This is good, but hasn't been too tested :) No
5260 Windows uses). This is good, but hasn't been too tested :) No
5256 fancy installer yet, I'll put a note in the manual so people at
5261 fancy installer yet, I'll put a note in the manual so people at
5257 least make manually a shortcut.
5262 least make manually a shortcut.
5258
5263
5259 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5264 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5260 into a single one, "colors". This now controls both prompt and
5265 into a single one, "colors". This now controls both prompt and
5261 exception color schemes, and can be changed both at startup
5266 exception color schemes, and can be changed both at startup
5262 (either via command-line switches or via ipythonrc files) and at
5267 (either via command-line switches or via ipythonrc files) and at
5263 runtime, with @colors.
5268 runtime, with @colors.
5264 (Magic.magic_run): renamed @prun to @run and removed the old
5269 (Magic.magic_run): renamed @prun to @run and removed the old
5265 @run. The two were too similar to warrant keeping both.
5270 @run. The two were too similar to warrant keeping both.
5266
5271
5267 2002-02-03 Fernando Perez <fperez@colorado.edu>
5272 2002-02-03 Fernando Perez <fperez@colorado.edu>
5268
5273
5269 * IPython/iplib.py (install_first_time): Added comment on how to
5274 * IPython/iplib.py (install_first_time): Added comment on how to
5270 configure the color options for first-time users. Put a <return>
5275 configure the color options for first-time users. Put a <return>
5271 request at the end so that small-terminal users get a chance to
5276 request at the end so that small-terminal users get a chance to
5272 read the startup info.
5277 read the startup info.
5273
5278
5274 2002-01-23 Fernando Perez <fperez@colorado.edu>
5279 2002-01-23 Fernando Perez <fperez@colorado.edu>
5275
5280
5276 * IPython/iplib.py (CachedOutput.update): Changed output memory
5281 * IPython/iplib.py (CachedOutput.update): Changed output memory
5277 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5282 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5278 input history we still use _i. Did this b/c these variable are
5283 input history we still use _i. Did this b/c these variable are
5279 very commonly used in interactive work, so the less we need to
5284 very commonly used in interactive work, so the less we need to
5280 type the better off we are.
5285 type the better off we are.
5281 (Magic.magic_prun): updated @prun to better handle the namespaces
5286 (Magic.magic_prun): updated @prun to better handle the namespaces
5282 the file will run in, including a fix for __name__ not being set
5287 the file will run in, including a fix for __name__ not being set
5283 before.
5288 before.
5284
5289
5285 2002-01-20 Fernando Perez <fperez@colorado.edu>
5290 2002-01-20 Fernando Perez <fperez@colorado.edu>
5286
5291
5287 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5292 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5288 extra garbage for Python 2.2. Need to look more carefully into
5293 extra garbage for Python 2.2. Need to look more carefully into
5289 this later.
5294 this later.
5290
5295
5291 2002-01-19 Fernando Perez <fperez@colorado.edu>
5296 2002-01-19 Fernando Perez <fperez@colorado.edu>
5292
5297
5293 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5298 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5294 display SyntaxError exceptions properly formatted when they occur
5299 display SyntaxError exceptions properly formatted when they occur
5295 (they can be triggered by imported code).
5300 (they can be triggered by imported code).
5296
5301
5297 2002-01-18 Fernando Perez <fperez@colorado.edu>
5302 2002-01-18 Fernando Perez <fperez@colorado.edu>
5298
5303
5299 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5304 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5300 SyntaxError exceptions are reported nicely formatted, instead of
5305 SyntaxError exceptions are reported nicely formatted, instead of
5301 spitting out only offset information as before.
5306 spitting out only offset information as before.
5302 (Magic.magic_prun): Added the @prun function for executing
5307 (Magic.magic_prun): Added the @prun function for executing
5303 programs with command line args inside IPython.
5308 programs with command line args inside IPython.
5304
5309
5305 2002-01-16 Fernando Perez <fperez@colorado.edu>
5310 2002-01-16 Fernando Perez <fperez@colorado.edu>
5306
5311
5307 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5312 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5308 to *not* include the last item given in a range. This brings their
5313 to *not* include the last item given in a range. This brings their
5309 behavior in line with Python's slicing:
5314 behavior in line with Python's slicing:
5310 a[n1:n2] -> a[n1]...a[n2-1]
5315 a[n1:n2] -> a[n1]...a[n2-1]
5311 It may be a bit less convenient, but I prefer to stick to Python's
5316 It may be a bit less convenient, but I prefer to stick to Python's
5312 conventions *everywhere*, so users never have to wonder.
5317 conventions *everywhere*, so users never have to wonder.
5313 (Magic.magic_macro): Added @macro function to ease the creation of
5318 (Magic.magic_macro): Added @macro function to ease the creation of
5314 macros.
5319 macros.
5315
5320
5316 2002-01-05 Fernando Perez <fperez@colorado.edu>
5321 2002-01-05 Fernando Perez <fperez@colorado.edu>
5317
5322
5318 * Released 0.2.4.
5323 * Released 0.2.4.
5319
5324
5320 * IPython/iplib.py (Magic.magic_pdef):
5325 * IPython/iplib.py (Magic.magic_pdef):
5321 (InteractiveShell.safe_execfile): report magic lines and error
5326 (InteractiveShell.safe_execfile): report magic lines and error
5322 lines without line numbers so one can easily copy/paste them for
5327 lines without line numbers so one can easily copy/paste them for
5323 re-execution.
5328 re-execution.
5324
5329
5325 * Updated manual with recent changes.
5330 * Updated manual with recent changes.
5326
5331
5327 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5332 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5328 docstring printing when class? is called. Very handy for knowing
5333 docstring printing when class? is called. Very handy for knowing
5329 how to create class instances (as long as __init__ is well
5334 how to create class instances (as long as __init__ is well
5330 documented, of course :)
5335 documented, of course :)
5331 (Magic.magic_doc): print both class and constructor docstrings.
5336 (Magic.magic_doc): print both class and constructor docstrings.
5332 (Magic.magic_pdef): give constructor info if passed a class and
5337 (Magic.magic_pdef): give constructor info if passed a class and
5333 __call__ info for callable object instances.
5338 __call__ info for callable object instances.
5334
5339
5335 2002-01-04 Fernando Perez <fperez@colorado.edu>
5340 2002-01-04 Fernando Perez <fperez@colorado.edu>
5336
5341
5337 * Made deep_reload() off by default. It doesn't always work
5342 * Made deep_reload() off by default. It doesn't always work
5338 exactly as intended, so it's probably safer to have it off. It's
5343 exactly as intended, so it's probably safer to have it off. It's
5339 still available as dreload() anyway, so nothing is lost.
5344 still available as dreload() anyway, so nothing is lost.
5340
5345
5341 2002-01-02 Fernando Perez <fperez@colorado.edu>
5346 2002-01-02 Fernando Perez <fperez@colorado.edu>
5342
5347
5343 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5348 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5344 so I wanted an updated release).
5349 so I wanted an updated release).
5345
5350
5346 2001-12-27 Fernando Perez <fperez@colorado.edu>
5351 2001-12-27 Fernando Perez <fperez@colorado.edu>
5347
5352
5348 * IPython/iplib.py (InteractiveShell.interact): Added the original
5353 * IPython/iplib.py (InteractiveShell.interact): Added the original
5349 code from 'code.py' for this module in order to change the
5354 code from 'code.py' for this module in order to change the
5350 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5355 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5351 the history cache would break when the user hit Ctrl-C, and
5356 the history cache would break when the user hit Ctrl-C, and
5352 interact() offers no way to add any hooks to it.
5357 interact() offers no way to add any hooks to it.
5353
5358
5354 2001-12-23 Fernando Perez <fperez@colorado.edu>
5359 2001-12-23 Fernando Perez <fperez@colorado.edu>
5355
5360
5356 * setup.py: added check for 'MANIFEST' before trying to remove
5361 * setup.py: added check for 'MANIFEST' before trying to remove
5357 it. Thanks to Sean Reifschneider.
5362 it. Thanks to Sean Reifschneider.
5358
5363
5359 2001-12-22 Fernando Perez <fperez@colorado.edu>
5364 2001-12-22 Fernando Perez <fperez@colorado.edu>
5360
5365
5361 * Released 0.2.2.
5366 * Released 0.2.2.
5362
5367
5363 * Finished (reasonably) writing the manual. Later will add the
5368 * Finished (reasonably) writing the manual. Later will add the
5364 python-standard navigation stylesheets, but for the time being
5369 python-standard navigation stylesheets, but for the time being
5365 it's fairly complete. Distribution will include html and pdf
5370 it's fairly complete. Distribution will include html and pdf
5366 versions.
5371 versions.
5367
5372
5368 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5373 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5369 (MayaVi author).
5374 (MayaVi author).
5370
5375
5371 2001-12-21 Fernando Perez <fperez@colorado.edu>
5376 2001-12-21 Fernando Perez <fperez@colorado.edu>
5372
5377
5373 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5378 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5374 good public release, I think (with the manual and the distutils
5379 good public release, I think (with the manual and the distutils
5375 installer). The manual can use some work, but that can go
5380 installer). The manual can use some work, but that can go
5376 slowly. Otherwise I think it's quite nice for end users. Next
5381 slowly. Otherwise I think it's quite nice for end users. Next
5377 summer, rewrite the guts of it...
5382 summer, rewrite the guts of it...
5378
5383
5379 * Changed format of ipythonrc files to use whitespace as the
5384 * Changed format of ipythonrc files to use whitespace as the
5380 separator instead of an explicit '='. Cleaner.
5385 separator instead of an explicit '='. Cleaner.
5381
5386
5382 2001-12-20 Fernando Perez <fperez@colorado.edu>
5387 2001-12-20 Fernando Perez <fperez@colorado.edu>
5383
5388
5384 * Started a manual in LyX. For now it's just a quick merge of the
5389 * Started a manual in LyX. For now it's just a quick merge of the
5385 various internal docstrings and READMEs. Later it may grow into a
5390 various internal docstrings and READMEs. Later it may grow into a
5386 nice, full-blown manual.
5391 nice, full-blown manual.
5387
5392
5388 * Set up a distutils based installer. Installation should now be
5393 * Set up a distutils based installer. Installation should now be
5389 trivially simple for end-users.
5394 trivially simple for end-users.
5390
5395
5391 2001-12-11 Fernando Perez <fperez@colorado.edu>
5396 2001-12-11 Fernando Perez <fperez@colorado.edu>
5392
5397
5393 * Released 0.2.0. First public release, announced it at
5398 * Released 0.2.0. First public release, announced it at
5394 comp.lang.python. From now on, just bugfixes...
5399 comp.lang.python. From now on, just bugfixes...
5395
5400
5396 * Went through all the files, set copyright/license notices and
5401 * Went through all the files, set copyright/license notices and
5397 cleaned up things. Ready for release.
5402 cleaned up things. Ready for release.
5398
5403
5399 2001-12-10 Fernando Perez <fperez@colorado.edu>
5404 2001-12-10 Fernando Perez <fperez@colorado.edu>
5400
5405
5401 * Changed the first-time installer not to use tarfiles. It's more
5406 * Changed the first-time installer not to use tarfiles. It's more
5402 robust now and less unix-dependent. Also makes it easier for
5407 robust now and less unix-dependent. Also makes it easier for
5403 people to later upgrade versions.
5408 people to later upgrade versions.
5404
5409
5405 * Changed @exit to @abort to reflect the fact that it's pretty
5410 * Changed @exit to @abort to reflect the fact that it's pretty
5406 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5411 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5407 becomes significant only when IPyhton is embedded: in that case,
5412 becomes significant only when IPyhton is embedded: in that case,
5408 C-D closes IPython only, but @abort kills the enclosing program
5413 C-D closes IPython only, but @abort kills the enclosing program
5409 too (unless it had called IPython inside a try catching
5414 too (unless it had called IPython inside a try catching
5410 SystemExit).
5415 SystemExit).
5411
5416
5412 * Created Shell module which exposes the actuall IPython Shell
5417 * Created Shell module which exposes the actuall IPython Shell
5413 classes, currently the normal and the embeddable one. This at
5418 classes, currently the normal and the embeddable one. This at
5414 least offers a stable interface we won't need to change when
5419 least offers a stable interface we won't need to change when
5415 (later) the internals are rewritten. That rewrite will be confined
5420 (later) the internals are rewritten. That rewrite will be confined
5416 to iplib and ipmaker, but the Shell interface should remain as is.
5421 to iplib and ipmaker, but the Shell interface should remain as is.
5417
5422
5418 * Added embed module which offers an embeddable IPShell object,
5423 * Added embed module which offers an embeddable IPShell object,
5419 useful to fire up IPython *inside* a running program. Great for
5424 useful to fire up IPython *inside* a running program. Great for
5420 debugging or dynamical data analysis.
5425 debugging or dynamical data analysis.
5421
5426
5422 2001-12-08 Fernando Perez <fperez@colorado.edu>
5427 2001-12-08 Fernando Perez <fperez@colorado.edu>
5423
5428
5424 * Fixed small bug preventing seeing info from methods of defined
5429 * Fixed small bug preventing seeing info from methods of defined
5425 objects (incorrect namespace in _ofind()).
5430 objects (incorrect namespace in _ofind()).
5426
5431
5427 * Documentation cleanup. Moved the main usage docstrings to a
5432 * Documentation cleanup. Moved the main usage docstrings to a
5428 separate file, usage.py (cleaner to maintain, and hopefully in the
5433 separate file, usage.py (cleaner to maintain, and hopefully in the
5429 future some perlpod-like way of producing interactive, man and
5434 future some perlpod-like way of producing interactive, man and
5430 html docs out of it will be found).
5435 html docs out of it will be found).
5431
5436
5432 * Added @profile to see your profile at any time.
5437 * Added @profile to see your profile at any time.
5433
5438
5434 * Added @p as an alias for 'print'. It's especially convenient if
5439 * Added @p as an alias for 'print'. It's especially convenient if
5435 using automagic ('p x' prints x).
5440 using automagic ('p x' prints x).
5436
5441
5437 * Small cleanups and fixes after a pychecker run.
5442 * Small cleanups and fixes after a pychecker run.
5438
5443
5439 * Changed the @cd command to handle @cd - and @cd -<n> for
5444 * Changed the @cd command to handle @cd - and @cd -<n> for
5440 visiting any directory in _dh.
5445 visiting any directory in _dh.
5441
5446
5442 * Introduced _dh, a history of visited directories. @dhist prints
5447 * Introduced _dh, a history of visited directories. @dhist prints
5443 it out with numbers.
5448 it out with numbers.
5444
5449
5445 2001-12-07 Fernando Perez <fperez@colorado.edu>
5450 2001-12-07 Fernando Perez <fperez@colorado.edu>
5446
5451
5447 * Released 0.1.22
5452 * Released 0.1.22
5448
5453
5449 * Made initialization a bit more robust against invalid color
5454 * Made initialization a bit more robust against invalid color
5450 options in user input (exit, not traceback-crash).
5455 options in user input (exit, not traceback-crash).
5451
5456
5452 * Changed the bug crash reporter to write the report only in the
5457 * Changed the bug crash reporter to write the report only in the
5453 user's .ipython directory. That way IPython won't litter people's
5458 user's .ipython directory. That way IPython won't litter people's
5454 hard disks with crash files all over the place. Also print on
5459 hard disks with crash files all over the place. Also print on
5455 screen the necessary mail command.
5460 screen the necessary mail command.
5456
5461
5457 * With the new ultraTB, implemented LightBG color scheme for light
5462 * With the new ultraTB, implemented LightBG color scheme for light
5458 background terminals. A lot of people like white backgrounds, so I
5463 background terminals. A lot of people like white backgrounds, so I
5459 guess we should at least give them something readable.
5464 guess we should at least give them something readable.
5460
5465
5461 2001-12-06 Fernando Perez <fperez@colorado.edu>
5466 2001-12-06 Fernando Perez <fperez@colorado.edu>
5462
5467
5463 * Modified the structure of ultraTB. Now there's a proper class
5468 * Modified the structure of ultraTB. Now there's a proper class
5464 for tables of color schemes which allow adding schemes easily and
5469 for tables of color schemes which allow adding schemes easily and
5465 switching the active scheme without creating a new instance every
5470 switching the active scheme without creating a new instance every
5466 time (which was ridiculous). The syntax for creating new schemes
5471 time (which was ridiculous). The syntax for creating new schemes
5467 is also cleaner. I think ultraTB is finally done, with a clean
5472 is also cleaner. I think ultraTB is finally done, with a clean
5468 class structure. Names are also much cleaner (now there's proper
5473 class structure. Names are also much cleaner (now there's proper
5469 color tables, no need for every variable to also have 'color' in
5474 color tables, no need for every variable to also have 'color' in
5470 its name).
5475 its name).
5471
5476
5472 * Broke down genutils into separate files. Now genutils only
5477 * Broke down genutils into separate files. Now genutils only
5473 contains utility functions, and classes have been moved to their
5478 contains utility functions, and classes have been moved to their
5474 own files (they had enough independent functionality to warrant
5479 own files (they had enough independent functionality to warrant
5475 it): ConfigLoader, OutputTrap, Struct.
5480 it): ConfigLoader, OutputTrap, Struct.
5476
5481
5477 2001-12-05 Fernando Perez <fperez@colorado.edu>
5482 2001-12-05 Fernando Perez <fperez@colorado.edu>
5478
5483
5479 * IPython turns 21! Released version 0.1.21, as a candidate for
5484 * IPython turns 21! Released version 0.1.21, as a candidate for
5480 public consumption. If all goes well, release in a few days.
5485 public consumption. If all goes well, release in a few days.
5481
5486
5482 * Fixed path bug (files in Extensions/ directory wouldn't be found
5487 * Fixed path bug (files in Extensions/ directory wouldn't be found
5483 unless IPython/ was explicitly in sys.path).
5488 unless IPython/ was explicitly in sys.path).
5484
5489
5485 * Extended the FlexCompleter class as MagicCompleter to allow
5490 * Extended the FlexCompleter class as MagicCompleter to allow
5486 completion of @-starting lines.
5491 completion of @-starting lines.
5487
5492
5488 * Created __release__.py file as a central repository for release
5493 * Created __release__.py file as a central repository for release
5489 info that other files can read from.
5494 info that other files can read from.
5490
5495
5491 * Fixed small bug in logging: when logging was turned on in
5496 * Fixed small bug in logging: when logging was turned on in
5492 mid-session, old lines with special meanings (!@?) were being
5497 mid-session, old lines with special meanings (!@?) were being
5493 logged without the prepended comment, which is necessary since
5498 logged without the prepended comment, which is necessary since
5494 they are not truly valid python syntax. This should make session
5499 they are not truly valid python syntax. This should make session
5495 restores produce less errors.
5500 restores produce less errors.
5496
5501
5497 * The namespace cleanup forced me to make a FlexCompleter class
5502 * The namespace cleanup forced me to make a FlexCompleter class
5498 which is nothing but a ripoff of rlcompleter, but with selectable
5503 which is nothing but a ripoff of rlcompleter, but with selectable
5499 namespace (rlcompleter only works in __main__.__dict__). I'll try
5504 namespace (rlcompleter only works in __main__.__dict__). I'll try
5500 to submit a note to the authors to see if this change can be
5505 to submit a note to the authors to see if this change can be
5501 incorporated in future rlcompleter releases (Dec.6: done)
5506 incorporated in future rlcompleter releases (Dec.6: done)
5502
5507
5503 * More fixes to namespace handling. It was a mess! Now all
5508 * More fixes to namespace handling. It was a mess! Now all
5504 explicit references to __main__.__dict__ are gone (except when
5509 explicit references to __main__.__dict__ are gone (except when
5505 really needed) and everything is handled through the namespace
5510 really needed) and everything is handled through the namespace
5506 dicts in the IPython instance. We seem to be getting somewhere
5511 dicts in the IPython instance. We seem to be getting somewhere
5507 with this, finally...
5512 with this, finally...
5508
5513
5509 * Small documentation updates.
5514 * Small documentation updates.
5510
5515
5511 * Created the Extensions directory under IPython (with an
5516 * Created the Extensions directory under IPython (with an
5512 __init__.py). Put the PhysicalQ stuff there. This directory should
5517 __init__.py). Put the PhysicalQ stuff there. This directory should
5513 be used for all special-purpose extensions.
5518 be used for all special-purpose extensions.
5514
5519
5515 * File renaming:
5520 * File renaming:
5516 ipythonlib --> ipmaker
5521 ipythonlib --> ipmaker
5517 ipplib --> iplib
5522 ipplib --> iplib
5518 This makes a bit more sense in terms of what these files actually do.
5523 This makes a bit more sense in terms of what these files actually do.
5519
5524
5520 * Moved all the classes and functions in ipythonlib to ipplib, so
5525 * Moved all the classes and functions in ipythonlib to ipplib, so
5521 now ipythonlib only has make_IPython(). This will ease up its
5526 now ipythonlib only has make_IPython(). This will ease up its
5522 splitting in smaller functional chunks later.
5527 splitting in smaller functional chunks later.
5523
5528
5524 * Cleaned up (done, I think) output of @whos. Better column
5529 * Cleaned up (done, I think) output of @whos. Better column
5525 formatting, and now shows str(var) for as much as it can, which is
5530 formatting, and now shows str(var) for as much as it can, which is
5526 typically what one gets with a 'print var'.
5531 typically what one gets with a 'print var'.
5527
5532
5528 2001-12-04 Fernando Perez <fperez@colorado.edu>
5533 2001-12-04 Fernando Perez <fperez@colorado.edu>
5529
5534
5530 * Fixed namespace problems. Now builtin/IPyhton/user names get
5535 * Fixed namespace problems. Now builtin/IPyhton/user names get
5531 properly reported in their namespace. Internal namespace handling
5536 properly reported in their namespace. Internal namespace handling
5532 is finally getting decent (not perfect yet, but much better than
5537 is finally getting decent (not perfect yet, but much better than
5533 the ad-hoc mess we had).
5538 the ad-hoc mess we had).
5534
5539
5535 * Removed -exit option. If people just want to run a python
5540 * Removed -exit option. If people just want to run a python
5536 script, that's what the normal interpreter is for. Less
5541 script, that's what the normal interpreter is for. Less
5537 unnecessary options, less chances for bugs.
5542 unnecessary options, less chances for bugs.
5538
5543
5539 * Added a crash handler which generates a complete post-mortem if
5544 * Added a crash handler which generates a complete post-mortem if
5540 IPython crashes. This will help a lot in tracking bugs down the
5545 IPython crashes. This will help a lot in tracking bugs down the
5541 road.
5546 road.
5542
5547
5543 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5548 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5544 which were boud to functions being reassigned would bypass the
5549 which were boud to functions being reassigned would bypass the
5545 logger, breaking the sync of _il with the prompt counter. This
5550 logger, breaking the sync of _il with the prompt counter. This
5546 would then crash IPython later when a new line was logged.
5551 would then crash IPython later when a new line was logged.
5547
5552
5548 2001-12-02 Fernando Perez <fperez@colorado.edu>
5553 2001-12-02 Fernando Perez <fperez@colorado.edu>
5549
5554
5550 * Made IPython a package. This means people don't have to clutter
5555 * Made IPython a package. This means people don't have to clutter
5551 their sys.path with yet another directory. Changed the INSTALL
5556 their sys.path with yet another directory. Changed the INSTALL
5552 file accordingly.
5557 file accordingly.
5553
5558
5554 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5559 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5555 sorts its output (so @who shows it sorted) and @whos formats the
5560 sorts its output (so @who shows it sorted) and @whos formats the
5556 table according to the width of the first column. Nicer, easier to
5561 table according to the width of the first column. Nicer, easier to
5557 read. Todo: write a generic table_format() which takes a list of
5562 read. Todo: write a generic table_format() which takes a list of
5558 lists and prints it nicely formatted, with optional row/column
5563 lists and prints it nicely formatted, with optional row/column
5559 separators and proper padding and justification.
5564 separators and proper padding and justification.
5560
5565
5561 * Released 0.1.20
5566 * Released 0.1.20
5562
5567
5563 * Fixed bug in @log which would reverse the inputcache list (a
5568 * Fixed bug in @log which would reverse the inputcache list (a
5564 copy operation was missing).
5569 copy operation was missing).
5565
5570
5566 * Code cleanup. @config was changed to use page(). Better, since
5571 * Code cleanup. @config was changed to use page(). Better, since
5567 its output is always quite long.
5572 its output is always quite long.
5568
5573
5569 * Itpl is back as a dependency. I was having too many problems
5574 * Itpl is back as a dependency. I was having too many problems
5570 getting the parametric aliases to work reliably, and it's just
5575 getting the parametric aliases to work reliably, and it's just
5571 easier to code weird string operations with it than playing %()s
5576 easier to code weird string operations with it than playing %()s
5572 games. It's only ~6k, so I don't think it's too big a deal.
5577 games. It's only ~6k, so I don't think it's too big a deal.
5573
5578
5574 * Found (and fixed) a very nasty bug with history. !lines weren't
5579 * Found (and fixed) a very nasty bug with history. !lines weren't
5575 getting cached, and the out of sync caches would crash
5580 getting cached, and the out of sync caches would crash
5576 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5581 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5577 division of labor a bit better. Bug fixed, cleaner structure.
5582 division of labor a bit better. Bug fixed, cleaner structure.
5578
5583
5579 2001-12-01 Fernando Perez <fperez@colorado.edu>
5584 2001-12-01 Fernando Perez <fperez@colorado.edu>
5580
5585
5581 * Released 0.1.19
5586 * Released 0.1.19
5582
5587
5583 * Added option -n to @hist to prevent line number printing. Much
5588 * Added option -n to @hist to prevent line number printing. Much
5584 easier to copy/paste code this way.
5589 easier to copy/paste code this way.
5585
5590
5586 * Created global _il to hold the input list. Allows easy
5591 * Created global _il to hold the input list. Allows easy
5587 re-execution of blocks of code by slicing it (inspired by Janko's
5592 re-execution of blocks of code by slicing it (inspired by Janko's
5588 comment on 'macros').
5593 comment on 'macros').
5589
5594
5590 * Small fixes and doc updates.
5595 * Small fixes and doc updates.
5591
5596
5592 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5597 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5593 much too fragile with automagic. Handles properly multi-line
5598 much too fragile with automagic. Handles properly multi-line
5594 statements and takes parameters.
5599 statements and takes parameters.
5595
5600
5596 2001-11-30 Fernando Perez <fperez@colorado.edu>
5601 2001-11-30 Fernando Perez <fperez@colorado.edu>
5597
5602
5598 * Version 0.1.18 released.
5603 * Version 0.1.18 released.
5599
5604
5600 * Fixed nasty namespace bug in initial module imports.
5605 * Fixed nasty namespace bug in initial module imports.
5601
5606
5602 * Added copyright/license notes to all code files (except
5607 * Added copyright/license notes to all code files (except
5603 DPyGetOpt). For the time being, LGPL. That could change.
5608 DPyGetOpt). For the time being, LGPL. That could change.
5604
5609
5605 * Rewrote a much nicer README, updated INSTALL, cleaned up
5610 * Rewrote a much nicer README, updated INSTALL, cleaned up
5606 ipythonrc-* samples.
5611 ipythonrc-* samples.
5607
5612
5608 * Overall code/documentation cleanup. Basically ready for
5613 * Overall code/documentation cleanup. Basically ready for
5609 release. Only remaining thing: licence decision (LGPL?).
5614 release. Only remaining thing: licence decision (LGPL?).
5610
5615
5611 * Converted load_config to a class, ConfigLoader. Now recursion
5616 * Converted load_config to a class, ConfigLoader. Now recursion
5612 control is better organized. Doesn't include the same file twice.
5617 control is better organized. Doesn't include the same file twice.
5613
5618
5614 2001-11-29 Fernando Perez <fperez@colorado.edu>
5619 2001-11-29 Fernando Perez <fperez@colorado.edu>
5615
5620
5616 * Got input history working. Changed output history variables from
5621 * Got input history working. Changed output history variables from
5617 _p to _o so that _i is for input and _o for output. Just cleaner
5622 _p to _o so that _i is for input and _o for output. Just cleaner
5618 convention.
5623 convention.
5619
5624
5620 * Implemented parametric aliases. This pretty much allows the
5625 * Implemented parametric aliases. This pretty much allows the
5621 alias system to offer full-blown shell convenience, I think.
5626 alias system to offer full-blown shell convenience, I think.
5622
5627
5623 * Version 0.1.17 released, 0.1.18 opened.
5628 * Version 0.1.17 released, 0.1.18 opened.
5624
5629
5625 * dot_ipython/ipythonrc (alias): added documentation.
5630 * dot_ipython/ipythonrc (alias): added documentation.
5626 (xcolor): Fixed small bug (xcolors -> xcolor)
5631 (xcolor): Fixed small bug (xcolors -> xcolor)
5627
5632
5628 * Changed the alias system. Now alias is a magic command to define
5633 * Changed the alias system. Now alias is a magic command to define
5629 aliases just like the shell. Rationale: the builtin magics should
5634 aliases just like the shell. Rationale: the builtin magics should
5630 be there for things deeply connected to IPython's
5635 be there for things deeply connected to IPython's
5631 architecture. And this is a much lighter system for what I think
5636 architecture. And this is a much lighter system for what I think
5632 is the really important feature: allowing users to define quickly
5637 is the really important feature: allowing users to define quickly
5633 magics that will do shell things for them, so they can customize
5638 magics that will do shell things for them, so they can customize
5634 IPython easily to match their work habits. If someone is really
5639 IPython easily to match their work habits. If someone is really
5635 desperate to have another name for a builtin alias, they can
5640 desperate to have another name for a builtin alias, they can
5636 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5641 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5637 works.
5642 works.
5638
5643
5639 2001-11-28 Fernando Perez <fperez@colorado.edu>
5644 2001-11-28 Fernando Perez <fperez@colorado.edu>
5640
5645
5641 * Changed @file so that it opens the source file at the proper
5646 * Changed @file so that it opens the source file at the proper
5642 line. Since it uses less, if your EDITOR environment is
5647 line. Since it uses less, if your EDITOR environment is
5643 configured, typing v will immediately open your editor of choice
5648 configured, typing v will immediately open your editor of choice
5644 right at the line where the object is defined. Not as quick as
5649 right at the line where the object is defined. Not as quick as
5645 having a direct @edit command, but for all intents and purposes it
5650 having a direct @edit command, but for all intents and purposes it
5646 works. And I don't have to worry about writing @edit to deal with
5651 works. And I don't have to worry about writing @edit to deal with
5647 all the editors, less does that.
5652 all the editors, less does that.
5648
5653
5649 * Version 0.1.16 released, 0.1.17 opened.
5654 * Version 0.1.16 released, 0.1.17 opened.
5650
5655
5651 * Fixed some nasty bugs in the page/page_dumb combo that could
5656 * Fixed some nasty bugs in the page/page_dumb combo that could
5652 crash IPython.
5657 crash IPython.
5653
5658
5654 2001-11-27 Fernando Perez <fperez@colorado.edu>
5659 2001-11-27 Fernando Perez <fperez@colorado.edu>
5655
5660
5656 * Version 0.1.15 released, 0.1.16 opened.
5661 * Version 0.1.15 released, 0.1.16 opened.
5657
5662
5658 * Finally got ? and ?? to work for undefined things: now it's
5663 * Finally got ? and ?? to work for undefined things: now it's
5659 possible to type {}.get? and get information about the get method
5664 possible to type {}.get? and get information about the get method
5660 of dicts, or os.path? even if only os is defined (so technically
5665 of dicts, or os.path? even if only os is defined (so technically
5661 os.path isn't). Works at any level. For example, after import os,
5666 os.path isn't). Works at any level. For example, after import os,
5662 os?, os.path?, os.path.abspath? all work. This is great, took some
5667 os?, os.path?, os.path.abspath? all work. This is great, took some
5663 work in _ofind.
5668 work in _ofind.
5664
5669
5665 * Fixed more bugs with logging. The sanest way to do it was to add
5670 * Fixed more bugs with logging. The sanest way to do it was to add
5666 to @log a 'mode' parameter. Killed two in one shot (this mode
5671 to @log a 'mode' parameter. Killed two in one shot (this mode
5667 option was a request of Janko's). I think it's finally clean
5672 option was a request of Janko's). I think it's finally clean
5668 (famous last words).
5673 (famous last words).
5669
5674
5670 * Added a page_dumb() pager which does a decent job of paging on
5675 * Added a page_dumb() pager which does a decent job of paging on
5671 screen, if better things (like less) aren't available. One less
5676 screen, if better things (like less) aren't available. One less
5672 unix dependency (someday maybe somebody will port this to
5677 unix dependency (someday maybe somebody will port this to
5673 windows).
5678 windows).
5674
5679
5675 * Fixed problem in magic_log: would lock of logging out if log
5680 * Fixed problem in magic_log: would lock of logging out if log
5676 creation failed (because it would still think it had succeeded).
5681 creation failed (because it would still think it had succeeded).
5677
5682
5678 * Improved the page() function using curses to auto-detect screen
5683 * Improved the page() function using curses to auto-detect screen
5679 size. Now it can make a much better decision on whether to print
5684 size. Now it can make a much better decision on whether to print
5680 or page a string. Option screen_length was modified: a value 0
5685 or page a string. Option screen_length was modified: a value 0
5681 means auto-detect, and that's the default now.
5686 means auto-detect, and that's the default now.
5682
5687
5683 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5688 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5684 go out. I'll test it for a few days, then talk to Janko about
5689 go out. I'll test it for a few days, then talk to Janko about
5685 licences and announce it.
5690 licences and announce it.
5686
5691
5687 * Fixed the length of the auto-generated ---> prompt which appears
5692 * Fixed the length of the auto-generated ---> prompt which appears
5688 for auto-parens and auto-quotes. Getting this right isn't trivial,
5693 for auto-parens and auto-quotes. Getting this right isn't trivial,
5689 with all the color escapes, different prompt types and optional
5694 with all the color escapes, different prompt types and optional
5690 separators. But it seems to be working in all the combinations.
5695 separators. But it seems to be working in all the combinations.
5691
5696
5692 2001-11-26 Fernando Perez <fperez@colorado.edu>
5697 2001-11-26 Fernando Perez <fperez@colorado.edu>
5693
5698
5694 * Wrote a regexp filter to get option types from the option names
5699 * Wrote a regexp filter to get option types from the option names
5695 string. This eliminates the need to manually keep two duplicate
5700 string. This eliminates the need to manually keep two duplicate
5696 lists.
5701 lists.
5697
5702
5698 * Removed the unneeded check_option_names. Now options are handled
5703 * Removed the unneeded check_option_names. Now options are handled
5699 in a much saner manner and it's easy to visually check that things
5704 in a much saner manner and it's easy to visually check that things
5700 are ok.
5705 are ok.
5701
5706
5702 * Updated version numbers on all files I modified to carry a
5707 * Updated version numbers on all files I modified to carry a
5703 notice so Janko and Nathan have clear version markers.
5708 notice so Janko and Nathan have clear version markers.
5704
5709
5705 * Updated docstring for ultraTB with my changes. I should send
5710 * Updated docstring for ultraTB with my changes. I should send
5706 this to Nathan.
5711 this to Nathan.
5707
5712
5708 * Lots of small fixes. Ran everything through pychecker again.
5713 * Lots of small fixes. Ran everything through pychecker again.
5709
5714
5710 * Made loading of deep_reload an cmd line option. If it's not too
5715 * Made loading of deep_reload an cmd line option. If it's not too
5711 kosher, now people can just disable it. With -nodeep_reload it's
5716 kosher, now people can just disable it. With -nodeep_reload it's
5712 still available as dreload(), it just won't overwrite reload().
5717 still available as dreload(), it just won't overwrite reload().
5713
5718
5714 * Moved many options to the no| form (-opt and -noopt
5719 * Moved many options to the no| form (-opt and -noopt
5715 accepted). Cleaner.
5720 accepted). Cleaner.
5716
5721
5717 * Changed magic_log so that if called with no parameters, it uses
5722 * Changed magic_log so that if called with no parameters, it uses
5718 'rotate' mode. That way auto-generated logs aren't automatically
5723 'rotate' mode. That way auto-generated logs aren't automatically
5719 over-written. For normal logs, now a backup is made if it exists
5724 over-written. For normal logs, now a backup is made if it exists
5720 (only 1 level of backups). A new 'backup' mode was added to the
5725 (only 1 level of backups). A new 'backup' mode was added to the
5721 Logger class to support this. This was a request by Janko.
5726 Logger class to support this. This was a request by Janko.
5722
5727
5723 * Added @logoff/@logon to stop/restart an active log.
5728 * Added @logoff/@logon to stop/restart an active log.
5724
5729
5725 * Fixed a lot of bugs in log saving/replay. It was pretty
5730 * Fixed a lot of bugs in log saving/replay. It was pretty
5726 broken. Now special lines (!@,/) appear properly in the command
5731 broken. Now special lines (!@,/) appear properly in the command
5727 history after a log replay.
5732 history after a log replay.
5728
5733
5729 * Tried and failed to implement full session saving via pickle. My
5734 * Tried and failed to implement full session saving via pickle. My
5730 idea was to pickle __main__.__dict__, but modules can't be
5735 idea was to pickle __main__.__dict__, but modules can't be
5731 pickled. This would be a better alternative to replaying logs, but
5736 pickled. This would be a better alternative to replaying logs, but
5732 seems quite tricky to get to work. Changed -session to be called
5737 seems quite tricky to get to work. Changed -session to be called
5733 -logplay, which more accurately reflects what it does. And if we
5738 -logplay, which more accurately reflects what it does. And if we
5734 ever get real session saving working, -session is now available.
5739 ever get real session saving working, -session is now available.
5735
5740
5736 * Implemented color schemes for prompts also. As for tracebacks,
5741 * Implemented color schemes for prompts also. As for tracebacks,
5737 currently only NoColor and Linux are supported. But now the
5742 currently only NoColor and Linux are supported. But now the
5738 infrastructure is in place, based on a generic ColorScheme
5743 infrastructure is in place, based on a generic ColorScheme
5739 class. So writing and activating new schemes both for the prompts
5744 class. So writing and activating new schemes both for the prompts
5740 and the tracebacks should be straightforward.
5745 and the tracebacks should be straightforward.
5741
5746
5742 * Version 0.1.13 released, 0.1.14 opened.
5747 * Version 0.1.13 released, 0.1.14 opened.
5743
5748
5744 * Changed handling of options for output cache. Now counter is
5749 * Changed handling of options for output cache. Now counter is
5745 hardwired starting at 1 and one specifies the maximum number of
5750 hardwired starting at 1 and one specifies the maximum number of
5746 entries *in the outcache* (not the max prompt counter). This is
5751 entries *in the outcache* (not the max prompt counter). This is
5747 much better, since many statements won't increase the cache
5752 much better, since many statements won't increase the cache
5748 count. It also eliminated some confusing options, now there's only
5753 count. It also eliminated some confusing options, now there's only
5749 one: cache_size.
5754 one: cache_size.
5750
5755
5751 * Added 'alias' magic function and magic_alias option in the
5756 * Added 'alias' magic function and magic_alias option in the
5752 ipythonrc file. Now the user can easily define whatever names he
5757 ipythonrc file. Now the user can easily define whatever names he
5753 wants for the magic functions without having to play weird
5758 wants for the magic functions without having to play weird
5754 namespace games. This gives IPython a real shell-like feel.
5759 namespace games. This gives IPython a real shell-like feel.
5755
5760
5756 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5761 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5757 @ or not).
5762 @ or not).
5758
5763
5759 This was one of the last remaining 'visible' bugs (that I know
5764 This was one of the last remaining 'visible' bugs (that I know
5760 of). I think if I can clean up the session loading so it works
5765 of). I think if I can clean up the session loading so it works
5761 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5766 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5762 about licensing).
5767 about licensing).
5763
5768
5764 2001-11-25 Fernando Perez <fperez@colorado.edu>
5769 2001-11-25 Fernando Perez <fperez@colorado.edu>
5765
5770
5766 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5771 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5767 there's a cleaner distinction between what ? and ?? show.
5772 there's a cleaner distinction between what ? and ?? show.
5768
5773
5769 * Added screen_length option. Now the user can define his own
5774 * Added screen_length option. Now the user can define his own
5770 screen size for page() operations.
5775 screen size for page() operations.
5771
5776
5772 * Implemented magic shell-like functions with automatic code
5777 * Implemented magic shell-like functions with automatic code
5773 generation. Now adding another function is just a matter of adding
5778 generation. Now adding another function is just a matter of adding
5774 an entry to a dict, and the function is dynamically generated at
5779 an entry to a dict, and the function is dynamically generated at
5775 run-time. Python has some really cool features!
5780 run-time. Python has some really cool features!
5776
5781
5777 * Renamed many options to cleanup conventions a little. Now all
5782 * Renamed many options to cleanup conventions a little. Now all
5778 are lowercase, and only underscores where needed. Also in the code
5783 are lowercase, and only underscores where needed. Also in the code
5779 option name tables are clearer.
5784 option name tables are clearer.
5780
5785
5781 * Changed prompts a little. Now input is 'In [n]:' instead of
5786 * Changed prompts a little. Now input is 'In [n]:' instead of
5782 'In[n]:='. This allows it the numbers to be aligned with the
5787 'In[n]:='. This allows it the numbers to be aligned with the
5783 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5788 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5784 Python (it was a Mathematica thing). The '...' continuation prompt
5789 Python (it was a Mathematica thing). The '...' continuation prompt
5785 was also changed a little to align better.
5790 was also changed a little to align better.
5786
5791
5787 * Fixed bug when flushing output cache. Not all _p<n> variables
5792 * Fixed bug when flushing output cache. Not all _p<n> variables
5788 exist, so their deletion needs to be wrapped in a try:
5793 exist, so their deletion needs to be wrapped in a try:
5789
5794
5790 * Figured out how to properly use inspect.formatargspec() (it
5795 * Figured out how to properly use inspect.formatargspec() (it
5791 requires the args preceded by *). So I removed all the code from
5796 requires the args preceded by *). So I removed all the code from
5792 _get_pdef in Magic, which was just replicating that.
5797 _get_pdef in Magic, which was just replicating that.
5793
5798
5794 * Added test to prefilter to allow redefining magic function names
5799 * Added test to prefilter to allow redefining magic function names
5795 as variables. This is ok, since the @ form is always available,
5800 as variables. This is ok, since the @ form is always available,
5796 but whe should allow the user to define a variable called 'ls' if
5801 but whe should allow the user to define a variable called 'ls' if
5797 he needs it.
5802 he needs it.
5798
5803
5799 * Moved the ToDo information from README into a separate ToDo.
5804 * Moved the ToDo information from README into a separate ToDo.
5800
5805
5801 * General code cleanup and small bugfixes. I think it's close to a
5806 * General code cleanup and small bugfixes. I think it's close to a
5802 state where it can be released, obviously with a big 'beta'
5807 state where it can be released, obviously with a big 'beta'
5803 warning on it.
5808 warning on it.
5804
5809
5805 * Got the magic function split to work. Now all magics are defined
5810 * Got the magic function split to work. Now all magics are defined
5806 in a separate class. It just organizes things a bit, and now
5811 in a separate class. It just organizes things a bit, and now
5807 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5812 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5808 was too long).
5813 was too long).
5809
5814
5810 * Changed @clear to @reset to avoid potential confusions with
5815 * Changed @clear to @reset to avoid potential confusions with
5811 the shell command clear. Also renamed @cl to @clear, which does
5816 the shell command clear. Also renamed @cl to @clear, which does
5812 exactly what people expect it to from their shell experience.
5817 exactly what people expect it to from their shell experience.
5813
5818
5814 Added a check to the @reset command (since it's so
5819 Added a check to the @reset command (since it's so
5815 destructive, it's probably a good idea to ask for confirmation).
5820 destructive, it's probably a good idea to ask for confirmation).
5816 But now reset only works for full namespace resetting. Since the
5821 But now reset only works for full namespace resetting. Since the
5817 del keyword is already there for deleting a few specific
5822 del keyword is already there for deleting a few specific
5818 variables, I don't see the point of having a redundant magic
5823 variables, I don't see the point of having a redundant magic
5819 function for the same task.
5824 function for the same task.
5820
5825
5821 2001-11-24 Fernando Perez <fperez@colorado.edu>
5826 2001-11-24 Fernando Perez <fperez@colorado.edu>
5822
5827
5823 * Updated the builtin docs (esp. the ? ones).
5828 * Updated the builtin docs (esp. the ? ones).
5824
5829
5825 * Ran all the code through pychecker. Not terribly impressed with
5830 * Ran all the code through pychecker. Not terribly impressed with
5826 it: lots of spurious warnings and didn't really find anything of
5831 it: lots of spurious warnings and didn't really find anything of
5827 substance (just a few modules being imported and not used).
5832 substance (just a few modules being imported and not used).
5828
5833
5829 * Implemented the new ultraTB functionality into IPython. New
5834 * Implemented the new ultraTB functionality into IPython. New
5830 option: xcolors. This chooses color scheme. xmode now only selects
5835 option: xcolors. This chooses color scheme. xmode now only selects
5831 between Plain and Verbose. Better orthogonality.
5836 between Plain and Verbose. Better orthogonality.
5832
5837
5833 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5838 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5834 mode and color scheme for the exception handlers. Now it's
5839 mode and color scheme for the exception handlers. Now it's
5835 possible to have the verbose traceback with no coloring.
5840 possible to have the verbose traceback with no coloring.
5836
5841
5837 2001-11-23 Fernando Perez <fperez@colorado.edu>
5842 2001-11-23 Fernando Perez <fperez@colorado.edu>
5838
5843
5839 * Version 0.1.12 released, 0.1.13 opened.
5844 * Version 0.1.12 released, 0.1.13 opened.
5840
5845
5841 * Removed option to set auto-quote and auto-paren escapes by
5846 * Removed option to set auto-quote and auto-paren escapes by
5842 user. The chances of breaking valid syntax are just too high. If
5847 user. The chances of breaking valid syntax are just too high. If
5843 someone *really* wants, they can always dig into the code.
5848 someone *really* wants, they can always dig into the code.
5844
5849
5845 * Made prompt separators configurable.
5850 * Made prompt separators configurable.
5846
5851
5847 2001-11-22 Fernando Perez <fperez@colorado.edu>
5852 2001-11-22 Fernando Perez <fperez@colorado.edu>
5848
5853
5849 * Small bugfixes in many places.
5854 * Small bugfixes in many places.
5850
5855
5851 * Removed the MyCompleter class from ipplib. It seemed redundant
5856 * Removed the MyCompleter class from ipplib. It seemed redundant
5852 with the C-p,C-n history search functionality. Less code to
5857 with the C-p,C-n history search functionality. Less code to
5853 maintain.
5858 maintain.
5854
5859
5855 * Moved all the original ipython.py code into ipythonlib.py. Right
5860 * Moved all the original ipython.py code into ipythonlib.py. Right
5856 now it's just one big dump into a function called make_IPython, so
5861 now it's just one big dump into a function called make_IPython, so
5857 no real modularity has been gained. But at least it makes the
5862 no real modularity has been gained. But at least it makes the
5858 wrapper script tiny, and since ipythonlib is a module, it gets
5863 wrapper script tiny, and since ipythonlib is a module, it gets
5859 compiled and startup is much faster.
5864 compiled and startup is much faster.
5860
5865
5861 This is a reasobably 'deep' change, so we should test it for a
5866 This is a reasobably 'deep' change, so we should test it for a
5862 while without messing too much more with the code.
5867 while without messing too much more with the code.
5863
5868
5864 2001-11-21 Fernando Perez <fperez@colorado.edu>
5869 2001-11-21 Fernando Perez <fperez@colorado.edu>
5865
5870
5866 * Version 0.1.11 released, 0.1.12 opened for further work.
5871 * Version 0.1.11 released, 0.1.12 opened for further work.
5867
5872
5868 * Removed dependency on Itpl. It was only needed in one place. It
5873 * Removed dependency on Itpl. It was only needed in one place. It
5869 would be nice if this became part of python, though. It makes life
5874 would be nice if this became part of python, though. It makes life
5870 *a lot* easier in some cases.
5875 *a lot* easier in some cases.
5871
5876
5872 * Simplified the prefilter code a bit. Now all handlers are
5877 * Simplified the prefilter code a bit. Now all handlers are
5873 expected to explicitly return a value (at least a blank string).
5878 expected to explicitly return a value (at least a blank string).
5874
5879
5875 * Heavy edits in ipplib. Removed the help system altogether. Now
5880 * Heavy edits in ipplib. Removed the help system altogether. Now
5876 obj?/?? is used for inspecting objects, a magic @doc prints
5881 obj?/?? is used for inspecting objects, a magic @doc prints
5877 docstrings, and full-blown Python help is accessed via the 'help'
5882 docstrings, and full-blown Python help is accessed via the 'help'
5878 keyword. This cleans up a lot of code (less to maintain) and does
5883 keyword. This cleans up a lot of code (less to maintain) and does
5879 the job. Since 'help' is now a standard Python component, might as
5884 the job. Since 'help' is now a standard Python component, might as
5880 well use it and remove duplicate functionality.
5885 well use it and remove duplicate functionality.
5881
5886
5882 Also removed the option to use ipplib as a standalone program. By
5887 Also removed the option to use ipplib as a standalone program. By
5883 now it's too dependent on other parts of IPython to function alone.
5888 now it's too dependent on other parts of IPython to function alone.
5884
5889
5885 * Fixed bug in genutils.pager. It would crash if the pager was
5890 * Fixed bug in genutils.pager. It would crash if the pager was
5886 exited immediately after opening (broken pipe).
5891 exited immediately after opening (broken pipe).
5887
5892
5888 * Trimmed down the VerboseTB reporting a little. The header is
5893 * Trimmed down the VerboseTB reporting a little. The header is
5889 much shorter now and the repeated exception arguments at the end
5894 much shorter now and the repeated exception arguments at the end
5890 have been removed. For interactive use the old header seemed a bit
5895 have been removed. For interactive use the old header seemed a bit
5891 excessive.
5896 excessive.
5892
5897
5893 * Fixed small bug in output of @whos for variables with multi-word
5898 * Fixed small bug in output of @whos for variables with multi-word
5894 types (only first word was displayed).
5899 types (only first word was displayed).
5895
5900
5896 2001-11-17 Fernando Perez <fperez@colorado.edu>
5901 2001-11-17 Fernando Perez <fperez@colorado.edu>
5897
5902
5898 * Version 0.1.10 released, 0.1.11 opened for further work.
5903 * Version 0.1.10 released, 0.1.11 opened for further work.
5899
5904
5900 * Modified dirs and friends. dirs now *returns* the stack (not
5905 * Modified dirs and friends. dirs now *returns* the stack (not
5901 prints), so one can manipulate it as a variable. Convenient to
5906 prints), so one can manipulate it as a variable. Convenient to
5902 travel along many directories.
5907 travel along many directories.
5903
5908
5904 * Fixed bug in magic_pdef: would only work with functions with
5909 * Fixed bug in magic_pdef: would only work with functions with
5905 arguments with default values.
5910 arguments with default values.
5906
5911
5907 2001-11-14 Fernando Perez <fperez@colorado.edu>
5912 2001-11-14 Fernando Perez <fperez@colorado.edu>
5908
5913
5909 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5914 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5910 example with IPython. Various other minor fixes and cleanups.
5915 example with IPython. Various other minor fixes and cleanups.
5911
5916
5912 * Version 0.1.9 released, 0.1.10 opened for further work.
5917 * Version 0.1.9 released, 0.1.10 opened for further work.
5913
5918
5914 * Added sys.path to the list of directories searched in the
5919 * Added sys.path to the list of directories searched in the
5915 execfile= option. It used to be the current directory and the
5920 execfile= option. It used to be the current directory and the
5916 user's IPYTHONDIR only.
5921 user's IPYTHONDIR only.
5917
5922
5918 2001-11-13 Fernando Perez <fperez@colorado.edu>
5923 2001-11-13 Fernando Perez <fperez@colorado.edu>
5919
5924
5920 * Reinstated the raw_input/prefilter separation that Janko had
5925 * Reinstated the raw_input/prefilter separation that Janko had
5921 initially. This gives a more convenient setup for extending the
5926 initially. This gives a more convenient setup for extending the
5922 pre-processor from the outside: raw_input always gets a string,
5927 pre-processor from the outside: raw_input always gets a string,
5923 and prefilter has to process it. We can then redefine prefilter
5928 and prefilter has to process it. We can then redefine prefilter
5924 from the outside and implement extensions for special
5929 from the outside and implement extensions for special
5925 purposes.
5930 purposes.
5926
5931
5927 Today I got one for inputting PhysicalQuantity objects
5932 Today I got one for inputting PhysicalQuantity objects
5928 (from Scientific) without needing any function calls at
5933 (from Scientific) without needing any function calls at
5929 all. Extremely convenient, and it's all done as a user-level
5934 all. Extremely convenient, and it's all done as a user-level
5930 extension (no IPython code was touched). Now instead of:
5935 extension (no IPython code was touched). Now instead of:
5931 a = PhysicalQuantity(4.2,'m/s**2')
5936 a = PhysicalQuantity(4.2,'m/s**2')
5932 one can simply say
5937 one can simply say
5933 a = 4.2 m/s**2
5938 a = 4.2 m/s**2
5934 or even
5939 or even
5935 a = 4.2 m/s^2
5940 a = 4.2 m/s^2
5936
5941
5937 I use this, but it's also a proof of concept: IPython really is
5942 I use this, but it's also a proof of concept: IPython really is
5938 fully user-extensible, even at the level of the parsing of the
5943 fully user-extensible, even at the level of the parsing of the
5939 command line. It's not trivial, but it's perfectly doable.
5944 command line. It's not trivial, but it's perfectly doable.
5940
5945
5941 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5946 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5942 the problem of modules being loaded in the inverse order in which
5947 the problem of modules being loaded in the inverse order in which
5943 they were defined in
5948 they were defined in
5944
5949
5945 * Version 0.1.8 released, 0.1.9 opened for further work.
5950 * Version 0.1.8 released, 0.1.9 opened for further work.
5946
5951
5947 * Added magics pdef, source and file. They respectively show the
5952 * Added magics pdef, source and file. They respectively show the
5948 definition line ('prototype' in C), source code and full python
5953 definition line ('prototype' in C), source code and full python
5949 file for any callable object. The object inspector oinfo uses
5954 file for any callable object. The object inspector oinfo uses
5950 these to show the same information.
5955 these to show the same information.
5951
5956
5952 * Version 0.1.7 released, 0.1.8 opened for further work.
5957 * Version 0.1.7 released, 0.1.8 opened for further work.
5953
5958
5954 * Separated all the magic functions into a class called Magic. The
5959 * Separated all the magic functions into a class called Magic. The
5955 InteractiveShell class was becoming too big for Xemacs to handle
5960 InteractiveShell class was becoming too big for Xemacs to handle
5956 (de-indenting a line would lock it up for 10 seconds while it
5961 (de-indenting a line would lock it up for 10 seconds while it
5957 backtracked on the whole class!)
5962 backtracked on the whole class!)
5958
5963
5959 FIXME: didn't work. It can be done, but right now namespaces are
5964 FIXME: didn't work. It can be done, but right now namespaces are
5960 all messed up. Do it later (reverted it for now, so at least
5965 all messed up. Do it later (reverted it for now, so at least
5961 everything works as before).
5966 everything works as before).
5962
5967
5963 * Got the object introspection system (magic_oinfo) working! I
5968 * Got the object introspection system (magic_oinfo) working! I
5964 think this is pretty much ready for release to Janko, so he can
5969 think this is pretty much ready for release to Janko, so he can
5965 test it for a while and then announce it. Pretty much 100% of what
5970 test it for a while and then announce it. Pretty much 100% of what
5966 I wanted for the 'phase 1' release is ready. Happy, tired.
5971 I wanted for the 'phase 1' release is ready. Happy, tired.
5967
5972
5968 2001-11-12 Fernando Perez <fperez@colorado.edu>
5973 2001-11-12 Fernando Perez <fperez@colorado.edu>
5969
5974
5970 * Version 0.1.6 released, 0.1.7 opened for further work.
5975 * Version 0.1.6 released, 0.1.7 opened for further work.
5971
5976
5972 * Fixed bug in printing: it used to test for truth before
5977 * Fixed bug in printing: it used to test for truth before
5973 printing, so 0 wouldn't print. Now checks for None.
5978 printing, so 0 wouldn't print. Now checks for None.
5974
5979
5975 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5980 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5976 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5981 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5977 reaches by hand into the outputcache. Think of a better way to do
5982 reaches by hand into the outputcache. Think of a better way to do
5978 this later.
5983 this later.
5979
5984
5980 * Various small fixes thanks to Nathan's comments.
5985 * Various small fixes thanks to Nathan's comments.
5981
5986
5982 * Changed magic_pprint to magic_Pprint. This way it doesn't
5987 * Changed magic_pprint to magic_Pprint. This way it doesn't
5983 collide with pprint() and the name is consistent with the command
5988 collide with pprint() and the name is consistent with the command
5984 line option.
5989 line option.
5985
5990
5986 * Changed prompt counter behavior to be fully like
5991 * Changed prompt counter behavior to be fully like
5987 Mathematica's. That is, even input that doesn't return a result
5992 Mathematica's. That is, even input that doesn't return a result
5988 raises the prompt counter. The old behavior was kind of confusing
5993 raises the prompt counter. The old behavior was kind of confusing
5989 (getting the same prompt number several times if the operation
5994 (getting the same prompt number several times if the operation
5990 didn't return a result).
5995 didn't return a result).
5991
5996
5992 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5997 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5993
5998
5994 * Fixed -Classic mode (wasn't working anymore).
5999 * Fixed -Classic mode (wasn't working anymore).
5995
6000
5996 * Added colored prompts using Nathan's new code. Colors are
6001 * Added colored prompts using Nathan's new code. Colors are
5997 currently hardwired, they can be user-configurable. For
6002 currently hardwired, they can be user-configurable. For
5998 developers, they can be chosen in file ipythonlib.py, at the
6003 developers, they can be chosen in file ipythonlib.py, at the
5999 beginning of the CachedOutput class def.
6004 beginning of the CachedOutput class def.
6000
6005
6001 2001-11-11 Fernando Perez <fperez@colorado.edu>
6006 2001-11-11 Fernando Perez <fperez@colorado.edu>
6002
6007
6003 * Version 0.1.5 released, 0.1.6 opened for further work.
6008 * Version 0.1.5 released, 0.1.6 opened for further work.
6004
6009
6005 * Changed magic_env to *return* the environment as a dict (not to
6010 * Changed magic_env to *return* the environment as a dict (not to
6006 print it). This way it prints, but it can also be processed.
6011 print it). This way it prints, but it can also be processed.
6007
6012
6008 * Added Verbose exception reporting to interactive
6013 * Added Verbose exception reporting to interactive
6009 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6014 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6010 traceback. Had to make some changes to the ultraTB file. This is
6015 traceback. Had to make some changes to the ultraTB file. This is
6011 probably the last 'big' thing in my mental todo list. This ties
6016 probably the last 'big' thing in my mental todo list. This ties
6012 in with the next entry:
6017 in with the next entry:
6013
6018
6014 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6019 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6015 has to specify is Plain, Color or Verbose for all exception
6020 has to specify is Plain, Color or Verbose for all exception
6016 handling.
6021 handling.
6017
6022
6018 * Removed ShellServices option. All this can really be done via
6023 * Removed ShellServices option. All this can really be done via
6019 the magic system. It's easier to extend, cleaner and has automatic
6024 the magic system. It's easier to extend, cleaner and has automatic
6020 namespace protection and documentation.
6025 namespace protection and documentation.
6021
6026
6022 2001-11-09 Fernando Perez <fperez@colorado.edu>
6027 2001-11-09 Fernando Perez <fperez@colorado.edu>
6023
6028
6024 * Fixed bug in output cache flushing (missing parameter to
6029 * Fixed bug in output cache flushing (missing parameter to
6025 __init__). Other small bugs fixed (found using pychecker).
6030 __init__). Other small bugs fixed (found using pychecker).
6026
6031
6027 * Version 0.1.4 opened for bugfixing.
6032 * Version 0.1.4 opened for bugfixing.
6028
6033
6029 2001-11-07 Fernando Perez <fperez@colorado.edu>
6034 2001-11-07 Fernando Perez <fperez@colorado.edu>
6030
6035
6031 * Version 0.1.3 released, mainly because of the raw_input bug.
6036 * Version 0.1.3 released, mainly because of the raw_input bug.
6032
6037
6033 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6038 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6034 and when testing for whether things were callable, a call could
6039 and when testing for whether things were callable, a call could
6035 actually be made to certain functions. They would get called again
6040 actually be made to certain functions. They would get called again
6036 once 'really' executed, with a resulting double call. A disaster
6041 once 'really' executed, with a resulting double call. A disaster
6037 in many cases (list.reverse() would never work!).
6042 in many cases (list.reverse() would never work!).
6038
6043
6039 * Removed prefilter() function, moved its code to raw_input (which
6044 * Removed prefilter() function, moved its code to raw_input (which
6040 after all was just a near-empty caller for prefilter). This saves
6045 after all was just a near-empty caller for prefilter). This saves
6041 a function call on every prompt, and simplifies the class a tiny bit.
6046 a function call on every prompt, and simplifies the class a tiny bit.
6042
6047
6043 * Fix _ip to __ip name in magic example file.
6048 * Fix _ip to __ip name in magic example file.
6044
6049
6045 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6050 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6046 work with non-gnu versions of tar.
6051 work with non-gnu versions of tar.
6047
6052
6048 2001-11-06 Fernando Perez <fperez@colorado.edu>
6053 2001-11-06 Fernando Perez <fperez@colorado.edu>
6049
6054
6050 * Version 0.1.2. Just to keep track of the recent changes.
6055 * Version 0.1.2. Just to keep track of the recent changes.
6051
6056
6052 * Fixed nasty bug in output prompt routine. It used to check 'if
6057 * Fixed nasty bug in output prompt routine. It used to check 'if
6053 arg != None...'. Problem is, this fails if arg implements a
6058 arg != None...'. Problem is, this fails if arg implements a
6054 special comparison (__cmp__) which disallows comparing to
6059 special comparison (__cmp__) which disallows comparing to
6055 None. Found it when trying to use the PhysicalQuantity module from
6060 None. Found it when trying to use the PhysicalQuantity module from
6056 ScientificPython.
6061 ScientificPython.
6057
6062
6058 2001-11-05 Fernando Perez <fperez@colorado.edu>
6063 2001-11-05 Fernando Perez <fperez@colorado.edu>
6059
6064
6060 * Also added dirs. Now the pushd/popd/dirs family functions
6065 * Also added dirs. Now the pushd/popd/dirs family functions
6061 basically like the shell, with the added convenience of going home
6066 basically like the shell, with the added convenience of going home
6062 when called with no args.
6067 when called with no args.
6063
6068
6064 * pushd/popd slightly modified to mimic shell behavior more
6069 * pushd/popd slightly modified to mimic shell behavior more
6065 closely.
6070 closely.
6066
6071
6067 * Added env,pushd,popd from ShellServices as magic functions. I
6072 * Added env,pushd,popd from ShellServices as magic functions. I
6068 think the cleanest will be to port all desired functions from
6073 think the cleanest will be to port all desired functions from
6069 ShellServices as magics and remove ShellServices altogether. This
6074 ShellServices as magics and remove ShellServices altogether. This
6070 will provide a single, clean way of adding functionality
6075 will provide a single, clean way of adding functionality
6071 (shell-type or otherwise) to IP.
6076 (shell-type or otherwise) to IP.
6072
6077
6073 2001-11-04 Fernando Perez <fperez@colorado.edu>
6078 2001-11-04 Fernando Perez <fperez@colorado.edu>
6074
6079
6075 * Added .ipython/ directory to sys.path. This way users can keep
6080 * Added .ipython/ directory to sys.path. This way users can keep
6076 customizations there and access them via import.
6081 customizations there and access them via import.
6077
6082
6078 2001-11-03 Fernando Perez <fperez@colorado.edu>
6083 2001-11-03 Fernando Perez <fperez@colorado.edu>
6079
6084
6080 * Opened version 0.1.1 for new changes.
6085 * Opened version 0.1.1 for new changes.
6081
6086
6082 * Changed version number to 0.1.0: first 'public' release, sent to
6087 * Changed version number to 0.1.0: first 'public' release, sent to
6083 Nathan and Janko.
6088 Nathan and Janko.
6084
6089
6085 * Lots of small fixes and tweaks.
6090 * Lots of small fixes and tweaks.
6086
6091
6087 * Minor changes to whos format. Now strings are shown, snipped if
6092 * Minor changes to whos format. Now strings are shown, snipped if
6088 too long.
6093 too long.
6089
6094
6090 * Changed ShellServices to work on __main__ so they show up in @who
6095 * Changed ShellServices to work on __main__ so they show up in @who
6091
6096
6092 * Help also works with ? at the end of a line:
6097 * Help also works with ? at the end of a line:
6093 ?sin and sin?
6098 ?sin and sin?
6094 both produce the same effect. This is nice, as often I use the
6099 both produce the same effect. This is nice, as often I use the
6095 tab-complete to find the name of a method, but I used to then have
6100 tab-complete to find the name of a method, but I used to then have
6096 to go to the beginning of the line to put a ? if I wanted more
6101 to go to the beginning of the line to put a ? if I wanted more
6097 info. Now I can just add the ? and hit return. Convenient.
6102 info. Now I can just add the ? and hit return. Convenient.
6098
6103
6099 2001-11-02 Fernando Perez <fperez@colorado.edu>
6104 2001-11-02 Fernando Perez <fperez@colorado.edu>
6100
6105
6101 * Python version check (>=2.1) added.
6106 * Python version check (>=2.1) added.
6102
6107
6103 * Added LazyPython documentation. At this point the docs are quite
6108 * Added LazyPython documentation. At this point the docs are quite
6104 a mess. A cleanup is in order.
6109 a mess. A cleanup is in order.
6105
6110
6106 * Auto-installer created. For some bizarre reason, the zipfiles
6111 * Auto-installer created. For some bizarre reason, the zipfiles
6107 module isn't working on my system. So I made a tar version
6112 module isn't working on my system. So I made a tar version
6108 (hopefully the command line options in various systems won't kill
6113 (hopefully the command line options in various systems won't kill
6109 me).
6114 me).
6110
6115
6111 * Fixes to Struct in genutils. Now all dictionary-like methods are
6116 * Fixes to Struct in genutils. Now all dictionary-like methods are
6112 protected (reasonably).
6117 protected (reasonably).
6113
6118
6114 * Added pager function to genutils and changed ? to print usage
6119 * Added pager function to genutils and changed ? to print usage
6115 note through it (it was too long).
6120 note through it (it was too long).
6116
6121
6117 * Added the LazyPython functionality. Works great! I changed the
6122 * Added the LazyPython functionality. Works great! I changed the
6118 auto-quote escape to ';', it's on home row and next to '. But
6123 auto-quote escape to ';', it's on home row and next to '. But
6119 both auto-quote and auto-paren (still /) escapes are command-line
6124 both auto-quote and auto-paren (still /) escapes are command-line
6120 parameters.
6125 parameters.
6121
6126
6122
6127
6123 2001-11-01 Fernando Perez <fperez@colorado.edu>
6128 2001-11-01 Fernando Perez <fperez@colorado.edu>
6124
6129
6125 * Version changed to 0.0.7. Fairly large change: configuration now
6130 * Version changed to 0.0.7. Fairly large change: configuration now
6126 is all stored in a directory, by default .ipython. There, all
6131 is all stored in a directory, by default .ipython. There, all
6127 config files have normal looking names (not .names)
6132 config files have normal looking names (not .names)
6128
6133
6129 * Version 0.0.6 Released first to Lucas and Archie as a test
6134 * Version 0.0.6 Released first to Lucas and Archie as a test
6130 run. Since it's the first 'semi-public' release, change version to
6135 run. Since it's the first 'semi-public' release, change version to
6131 > 0.0.6 for any changes now.
6136 > 0.0.6 for any changes now.
6132
6137
6133 * Stuff I had put in the ipplib.py changelog:
6138 * Stuff I had put in the ipplib.py changelog:
6134
6139
6135 Changes to InteractiveShell:
6140 Changes to InteractiveShell:
6136
6141
6137 - Made the usage message a parameter.
6142 - Made the usage message a parameter.
6138
6143
6139 - Require the name of the shell variable to be given. It's a bit
6144 - Require the name of the shell variable to be given. It's a bit
6140 of a hack, but allows the name 'shell' not to be hardwired in the
6145 of a hack, but allows the name 'shell' not to be hardwired in the
6141 magic (@) handler, which is problematic b/c it requires
6146 magic (@) handler, which is problematic b/c it requires
6142 polluting the global namespace with 'shell'. This in turn is
6147 polluting the global namespace with 'shell'. This in turn is
6143 fragile: if a user redefines a variable called shell, things
6148 fragile: if a user redefines a variable called shell, things
6144 break.
6149 break.
6145
6150
6146 - magic @: all functions available through @ need to be defined
6151 - magic @: all functions available through @ need to be defined
6147 as magic_<name>, even though they can be called simply as
6152 as magic_<name>, even though they can be called simply as
6148 @<name>. This allows the special command @magic to gather
6153 @<name>. This allows the special command @magic to gather
6149 information automatically about all existing magic functions,
6154 information automatically about all existing magic functions,
6150 even if they are run-time user extensions, by parsing the shell
6155 even if they are run-time user extensions, by parsing the shell
6151 instance __dict__ looking for special magic_ names.
6156 instance __dict__ looking for special magic_ names.
6152
6157
6153 - mainloop: added *two* local namespace parameters. This allows
6158 - mainloop: added *two* local namespace parameters. This allows
6154 the class to differentiate between parameters which were there
6159 the class to differentiate between parameters which were there
6155 before and after command line initialization was processed. This
6160 before and after command line initialization was processed. This
6156 way, later @who can show things loaded at startup by the
6161 way, later @who can show things loaded at startup by the
6157 user. This trick was necessary to make session saving/reloading
6162 user. This trick was necessary to make session saving/reloading
6158 really work: ideally after saving/exiting/reloading a session,
6163 really work: ideally after saving/exiting/reloading a session,
6159 *everything* should look the same, including the output of @who. I
6164 *everything* should look the same, including the output of @who. I
6160 was only able to make this work with this double namespace
6165 was only able to make this work with this double namespace
6161 trick.
6166 trick.
6162
6167
6163 - added a header to the logfile which allows (almost) full
6168 - added a header to the logfile which allows (almost) full
6164 session restoring.
6169 session restoring.
6165
6170
6166 - prepend lines beginning with @ or !, with a and log
6171 - prepend lines beginning with @ or !, with a and log
6167 them. Why? !lines: may be useful to know what you did @lines:
6172 them. Why? !lines: may be useful to know what you did @lines:
6168 they may affect session state. So when restoring a session, at
6173 they may affect session state. So when restoring a session, at
6169 least inform the user of their presence. I couldn't quite get
6174 least inform the user of their presence. I couldn't quite get
6170 them to properly re-execute, but at least the user is warned.
6175 them to properly re-execute, but at least the user is warned.
6171
6176
6172 * Started ChangeLog.
6177 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now