##// END OF EJS Templates
merge all from 0.7.3 branch to trunk
vivainio -
Show More
1 NO CONTENT: modified file
NO CONTENT: modified file
1 NO CONTENT: modified file
NO CONTENT: modified file
@@ -1,61 +1,61 b''
1 """ Preliminary "job control" extensions for IPython
1 """ Preliminary "job control" extensions for IPython
2
2
3 requires python 2.4 (or separate 'subprocess' module
3 requires python 2.4 (or separate 'subprocess' module
4
4
5 At the moment this is in a very "unhelpful" form, will be extended in the future.
5 At the moment this is in a very "unhelpful" form, will be extended in the future.
6
6
7 Usage:
7 Usage:
8
8
9 [ipython]|2> import jobctrl
9 [ipython]|2> import jobctrl
10 [ipython]|3> &ls
10 [ipython]|3> &ls
11 <3> <jobctrl.IpyPopen object at 0x00D87FD0>
11 <3> <jobctrl.IpyPopen object at 0x00D87FD0>
12 [ipython]|4> _3.go
12 [ipython]|4> _3.go
13 -----------> _3.go()
13 -----------> _3.go()
14 ChangeLog
14 ChangeLog
15 IPython
15 IPython
16 MANIFEST.in
16 MANIFEST.in
17 README
17 README
18 README_Windows.txt
18 README_Windows.txt
19
19
20 ...
20 ...
21 """
21 """
22
22
23 from subprocess import Popen,PIPE
23 from subprocess import Popen,PIPE
24 import os
24 import os,shlex
25
25
26 from IPython import genutils
26 from IPython import genutils
27
27
28 import IPython.ipapi
28 import IPython.ipapi
29
29
30 class IpyPopen(Popen):
30 class IpyPopen(Popen):
31 def go(self):
31 def go(self):
32 print self.communicate()[0]
32 print self.communicate()[0]
33 def __repr__(self):
33 def __repr__(self):
34 return '<IPython job "%s" PID=%d>' % (self.line, self.pid)
34 return '<IPython job "%s" PID=%d>' % (self.line, self.pid)
35
35
36 def kill(self):
36 def kill(self):
37 assert os.name == 'nt' # xxx add posix version
37 assert os.name == 'nt' # xxx add posix version
38 os.system('taskkill /PID %d' % self.pid)
38 os.system('taskkill /PID %d' % self.pid)
39
39
40 def startjob(job):
40 def startjob(job):
41 p = IpyPopen(job, stdout=PIPE, shell = False)
41 p = IpyPopen(shlex.split(job), stdout=PIPE, shell = False)
42 p.line = job
42 p.line = job
43 return p
43 return p
44
44
45 def jobctrl_prefilter_f(self,line):
45 def jobctrl_prefilter_f(self,line):
46 if line.startswith('&'):
46 if line.startswith('&'):
47 pre,fn,rest = self.split_user_input(line[1:])
47 pre,fn,rest = self.split_user_input(line[1:])
48
48
49 line = ip.IP.expand_aliases(fn,rest)
49 line = ip.IP.expand_aliases(fn,rest)
50 return '_ip.startjob(%s)' % genutils.make_quoted_expr(line)
50 return '_ip.startjob(%s)' % genutils.make_quoted_expr(line)
51
51
52 raise IPython.ipapi.TryNext
52 raise IPython.ipapi.TryNext
53
53
54 def install():
54 def install():
55 global ip
55 global ip
56 ip = IPython.ipapi.get()
56 ip = IPython.ipapi.get()
57 # needed to make startjob visible as _ip.startjob('blah')
57 # needed to make startjob visible as _ip.startjob('blah')
58 ip.startjob = startjob
58 ip.startjob = startjob
59 ip.set_hook('input_prefilter', jobctrl_prefilter_f)
59 ip.set_hook('input_prefilter', jobctrl_prefilter_f)
60
60
61 install() No newline at end of file
61 install()
1 NO CONTENT: modified file
NO CONTENT: modified file
@@ -1,86 +1,85 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2 """Release data for the IPython project.
2 """Release data for the IPython project.
3
3
4 $Id: Release.py 1976 2006-12-08 11:53:57Z vivainio $"""
4 $Id: Release.py 2010 2006-12-20 15:29:17Z vivainio $"""
5
5
6 #*****************************************************************************
6 #*****************************************************************************
7 # Copyright (C) 2001-2006 Fernando Perez <fperez@colorado.edu>
7 # Copyright (C) 2001-2006 Fernando Perez <fperez@colorado.edu>
8 #
8 #
9 # Copyright (c) 2001 Janko Hauser <jhauser@zscout.de> and Nathaniel Gray
9 # Copyright (c) 2001 Janko Hauser <jhauser@zscout.de> and Nathaniel Gray
10 # <n8gray@caltech.edu>
10 # <n8gray@caltech.edu>
11 #
11 #
12 # Distributed under the terms of the BSD License. The full license is in
12 # Distributed under the terms of the BSD License. The full license is in
13 # the file COPYING, distributed as part of this software.
13 # the file COPYING, distributed as part of this software.
14 #*****************************************************************************
14 #*****************************************************************************
15
15
16 # Name of the package for release purposes. This is the name which labels
16 # Name of the package for release purposes. This is the name which labels
17 # the tarballs and RPMs made by distutils, so it's best to lowercase it.
17 # the tarballs and RPMs made by distutils, so it's best to lowercase it.
18 name = 'ipython'
18 name = 'ipython'
19
19
20 # For versions with substrings (like 0.6.16.svn), use an extra . to separate
20 # For versions with substrings (like 0.6.16.svn), use an extra . to separate
21 # the new substring. We have to avoid using either dashes or underscores,
21 # the new substring. We have to avoid using either dashes or underscores,
22 # because bdist_rpm does not accept dashes (an RPM) convention, and
22 # because bdist_rpm does not accept dashes (an RPM) convention, and
23 # bdist_deb does not accept underscores (a Debian convention).
23 # bdist_deb does not accept underscores (a Debian convention).
24
24
25 revision = '1975'
25 revision = '2007'
26
26
27 #version = '0.7.3.svn'
27 version = '0.7.3'
28
29 version = '0.7.3b3.r' + revision.rstrip('M')
30
28
29 #version = '0.7.3rc2.r' + revision.rstrip('M')
31
30
32 description = "An enhanced interactive Python shell."
31 description = "An enhanced interactive Python shell."
33
32
34 long_description = \
33 long_description = \
35 """
34 """
36 IPython provides a replacement for the interactive Python interpreter with
35 IPython provides a replacement for the interactive Python interpreter with
37 extra functionality.
36 extra functionality.
38
37
39 Main features:
38 Main features:
40
39
41 * Comprehensive object introspection.
40 * Comprehensive object introspection.
42
41
43 * Input history, persistent across sessions.
42 * Input history, persistent across sessions.
44
43
45 * Caching of output results during a session with automatically generated
44 * Caching of output results during a session with automatically generated
46 references.
45 references.
47
46
48 * Readline based name completion.
47 * Readline based name completion.
49
48
50 * Extensible system of 'magic' commands for controlling the environment and
49 * Extensible system of 'magic' commands for controlling the environment and
51 performing many tasks related either to IPython or the operating system.
50 performing many tasks related either to IPython or the operating system.
52
51
53 * Configuration system with easy switching between different setups (simpler
52 * Configuration system with easy switching between different setups (simpler
54 than changing $PYTHONSTARTUP environment variables every time).
53 than changing $PYTHONSTARTUP environment variables every time).
55
54
56 * Session logging and reloading.
55 * Session logging and reloading.
57
56
58 * Extensible syntax processing for special purpose situations.
57 * Extensible syntax processing for special purpose situations.
59
58
60 * Access to the system shell with user-extensible alias system.
59 * Access to the system shell with user-extensible alias system.
61
60
62 * Easily embeddable in other Python programs.
61 * Easily embeddable in other Python programs.
63
62
64 * Integrated access to the pdb debugger and the Python profiler.
63 * Integrated access to the pdb debugger and the Python profiler.
65
64
66 The latest development version is always available at the IPython subversion
65 The latest development version is always available at the IPython subversion
67 repository_.
66 repository_.
68
67
69 .. _repository: http://ipython.scipy.org/svn/ipython/ipython/trunk#egg=ipython-dev
68 .. _repository: http://ipython.scipy.org/svn/ipython/ipython/trunk#egg=ipython-dev
70 """
69 """
71
70
72 license = 'BSD'
71 license = 'BSD'
73
72
74 authors = {'Fernando' : ('Fernando Perez','fperez@colorado.edu'),
73 authors = {'Fernando' : ('Fernando Perez','fperez@colorado.edu'),
75 'Janko' : ('Janko Hauser','jhauser@zscout.de'),
74 'Janko' : ('Janko Hauser','jhauser@zscout.de'),
76 'Nathan' : ('Nathaniel Gray','n8gray@caltech.edu'),
75 'Nathan' : ('Nathaniel Gray','n8gray@caltech.edu'),
77 'Ville' : ('Ville Vainio','vivainio@gmail.com')
76 'Ville' : ('Ville Vainio','vivainio@gmail.com')
78 }
77 }
79
78
80 url = 'http://ipython.scipy.org'
79 url = 'http://ipython.scipy.org'
81
80
82 download_url = 'http://ipython.scipy.org/dist'
81 download_url = 'http://ipython.scipy.org/dist'
83
82
84 platforms = ['Linux','Mac OSX','Windows XP/2000/NT','Windows 95/98/ME']
83 platforms = ['Linux','Mac OSX','Windows XP/2000/NT','Windows 95/98/ME']
85
84
86 keywords = ['Interactive','Interpreter','Shell']
85 keywords = ['Interactive','Interpreter','Shell']
1 NO CONTENT: modified file
NO CONTENT: modified file
1 NO CONTENT: modified file
NO CONTENT: modified file
1 NO CONTENT: modified file
NO CONTENT: modified file
@@ -1,641 +1,642 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2 #*****************************************************************************
2 #*****************************************************************************
3 # Copyright (C) 2001-2004 Fernando Perez. <fperez@colorado.edu>
3 # Copyright (C) 2001-2004 Fernando Perez. <fperez@colorado.edu>
4 #
4 #
5 # Distributed under the terms of the BSD License. The full license is in
5 # Distributed under the terms of the BSD License. The full license is in
6 # the file COPYING, distributed as part of this software.
6 # the file COPYING, distributed as part of this software.
7 #*****************************************************************************
7 #*****************************************************************************
8
8
9 # $Id: usage.py 1332 2006-05-30 01:41:28Z fperez $
9 # $Id: usage.py 2010 2006-12-20 15:29:17Z vivainio $
10
10
11 from IPython import Release
11 from IPython import Release
12 __author__ = '%s <%s>' % Release.authors['Fernando']
12 __author__ = '%s <%s>' % Release.authors['Fernando']
13 __license__ = Release.license
13 __license__ = Release.license
14 __version__ = Release.version
14 __version__ = Release.version
15
15
16 __doc__ = """
16 __doc__ = """
17 IPython -- An enhanced Interactive Python
17 IPython -- An enhanced Interactive Python
18 =========================================
18 =========================================
19
19
20 A Python shell with automatic history (input and output), dynamic object
20 A Python shell with automatic history (input and output), dynamic object
21 introspection, easier configuration, command completion, access to the system
21 introspection, easier configuration, command completion, access to the system
22 shell and more.
22 shell and more.
23
23
24 IPython can also be embedded in running programs. See EMBEDDING below.
24 IPython can also be embedded in running programs. See EMBEDDING below.
25
25
26
26
27 USAGE
27 USAGE
28 ipython [options] files
28 ipython [options] files
29
29
30 If invoked with no options, it executes all the files listed in
30 If invoked with no options, it executes all the files listed in
31 sequence and drops you into the interpreter while still acknowledging
31 sequence and drops you into the interpreter while still acknowledging
32 any options you may have set in your ipythonrc file. This behavior is
32 any options you may have set in your ipythonrc file. This behavior is
33 different from standard Python, which when called as python -i will
33 different from standard Python, which when called as python -i will
34 only execute one file and will ignore your configuration setup.
34 only execute one file and will ignore your configuration setup.
35
35
36 Please note that some of the configuration options are not available at
36 Please note that some of the configuration options are not available at
37 the command line, simply because they are not practical here. Look into
37 the command line, simply because they are not practical here. Look into
38 your ipythonrc configuration file for details on those. This file
38 your ipythonrc configuration file for details on those. This file
39 typically installed in the $HOME/.ipython directory.
39 typically installed in the $HOME/.ipython directory.
40
40
41 For Windows users, $HOME resolves to C:\\Documents and
41 For Windows users, $HOME resolves to C:\\Documents and
42 Settings\\YourUserName in most instances, and _ipython is used instead
42 Settings\\YourUserName in most instances, and _ipython is used instead
43 of .ipython, since some Win32 programs have problems with dotted names
43 of .ipython, since some Win32 programs have problems with dotted names
44 in directories.
44 in directories.
45
45
46 In the rest of this text, we will refer to this directory as
46 In the rest of this text, we will refer to this directory as
47 IPYTHONDIR.
47 IPYTHONDIR.
48
48
49
49
50 SPECIAL THREADING OPTIONS
50 SPECIAL THREADING OPTIONS
51 The following special options are ONLY valid at the beginning of the
51 The following special options are ONLY valid at the beginning of the
52 command line, and not later. This is because they control the initial-
52 command line, and not later. This is because they control the initial-
53 ization of ipython itself, before the normal option-handling mechanism
53 ization of ipython itself, before the normal option-handling mechanism
54 is active.
54 is active.
55
55
56 -gthread, -qthread, -wthread, -pylab
56 -gthread, -qthread, -wthread, -pylab
57
57
58 Only ONE of these can be given, and it can only be given as the
58 Only ONE of these can be given, and it can only be given as the
59 first option passed to IPython (it will have no effect in any
59 first option passed to IPython (it will have no effect in any
60 other position). They provide threading support for the GTK, QT
60 other position). They provide threading support for the GTK, QT
61 and WXWidgets toolkits, and for the matplotlib library.
61 and WXWidgets toolkits, and for the matplotlib library.
62
62
63 With any of the first three options, IPython starts running a
63 With any of the first three options, IPython starts running a
64 separate thread for the graphical toolkit's operation, so that
64 separate thread for the graphical toolkit's operation, so that
65 you can open and control graphical elements from within an
65 you can open and control graphical elements from within an
66 IPython command line, without blocking. All three provide
66 IPython command line, without blocking. All three provide
67 essentially the same functionality, respectively for GTK, QT and
67 essentially the same functionality, respectively for GTK, QT and
68 WXWidgets (via their Python interfaces).
68 WXWidgets (via their Python interfaces).
69
69
70 Note that with -wthread, you can additionally use the -wxversion
70 Note that with -wthread, you can additionally use the -wxversion
71 option to request a specific version of wx to be used. This
71 option to request a specific version of wx to be used. This
72 requires that you have the 'wxversion' Python module installed,
72 requires that you have the 'wxversion' Python module installed,
73 which is part of recent wxPython distributions.
73 which is part of recent wxPython distributions.
74
74
75 If -pylab is given, IPython loads special support for the mat-
75 If -pylab is given, IPython loads special support for the mat-
76 plotlib library (http://matplotlib.sourceforge.net), allowing
76 plotlib library (http://matplotlib.sourceforge.net), allowing
77 interactive usage of any of its backends as defined in the
77 interactive usage of any of its backends as defined in the
78 user's .matplotlibrc file. It automatically activates GTK, QT
78 user's .matplotlibrc file. It automatically activates GTK, QT
79 or WX threading for IPyhton if the choice of matplotlib backend
79 or WX threading for IPyhton if the choice of matplotlib backend
80 requires it. It also modifies the %run command to correctly
80 requires it. It also modifies the %run command to correctly
81 execute (without blocking) any matplotlib-based script which
81 execute (without blocking) any matplotlib-based script which
82 calls show() at the end.
82 calls show() at the end.
83
83
84 -tk The -g/q/wthread options, and -pylab (if matplotlib is
84 -tk The -g/q/wthread options, and -pylab (if matplotlib is
85 configured to use GTK, QT or WX), will normally block Tk
85 configured to use GTK, QT or WX), will normally block Tk
86 graphical interfaces. This means that when GTK, QT or WX
86 graphical interfaces. This means that when GTK, QT or WX
87 threading is active, any attempt to open a Tk GUI will result in
87 threading is active, any attempt to open a Tk GUI will result in
88 a dead window, and possibly cause the Python interpreter to
88 a dead window, and possibly cause the Python interpreter to
89 crash. An extra option, -tk, is available to address this
89 crash. An extra option, -tk, is available to address this
90 issue. It can ONLY be given as a SECOND option after any of the
90 issue. It can ONLY be given as a SECOND option after any of the
91 above (-gthread, -qthread, -wthread or -pylab).
91 above (-gthread, -qthread, -wthread or -pylab).
92
92
93 If -tk is given, IPython will try to coordinate Tk threading
93 If -tk is given, IPython will try to coordinate Tk threading
94 with GTK, QT or WX. This is however potentially unreliable, and
94 with GTK, QT or WX. This is however potentially unreliable, and
95 you will have to test on your platform and Python configuration
95 you will have to test on your platform and Python configuration
96 to determine whether it works for you. Debian users have
96 to determine whether it works for you. Debian users have
97 reported success, apparently due to the fact that Debian builds
97 reported success, apparently due to the fact that Debian builds
98 all of Tcl, Tk, Tkinter and Python with pthreads support. Under
98 all of Tcl, Tk, Tkinter and Python with pthreads support. Under
99 other Linux environments (such as Fedora Core 2/3), this option
99 other Linux environments (such as Fedora Core 2/3), this option
100 has caused random crashes and lockups of the Python interpreter.
100 has caused random crashes and lockups of the Python interpreter.
101 Under other operating systems (Mac OSX and Windows), you'll need
101 Under other operating systems (Mac OSX and Windows), you'll need
102 to try it to find out, since currently no user reports are
102 to try it to find out, since currently no user reports are
103 available.
103 available.
104
104
105 There is unfortunately no way for IPython to determine at run-
105 There is unfortunately no way for IPython to determine at run-
106 time whether -tk will work reliably or not, so you will need to
106 time whether -tk will work reliably or not, so you will need to
107 do some experiments before relying on it for regular work.
107 do some experiments before relying on it for regular work.
108
108
109 A WARNING ABOUT SIGNALS AND THREADS
109 A WARNING ABOUT SIGNALS AND THREADS
110
110
111 When any of the thread systems (GTK, QT or WX) are active, either
111 When any of the thread systems (GTK, QT or WX) are active, either
112 directly or via -pylab with a threaded backend, it is impossible to
112 directly or via -pylab with a threaded backend, it is impossible to
113 interrupt long-running Python code via Ctrl-C. IPython can not pass
113 interrupt long-running Python code via Ctrl-C. IPython can not pass
114 the KeyboardInterrupt exception (or the underlying SIGINT) across
114 the KeyboardInterrupt exception (or the underlying SIGINT) across
115 threads, so any long-running process started from IPython will run to
115 threads, so any long-running process started from IPython will run to
116 completion, or will have to be killed via an external (OS-based)
116 completion, or will have to be killed via an external (OS-based)
117 mechanism.
117 mechanism.
118
118
119 To the best of my knowledge, this limitation is imposed by the Python
119 To the best of my knowledge, this limitation is imposed by the Python
120 interpreter itself, and it comes from the difficulty of writing
120 interpreter itself, and it comes from the difficulty of writing
121 portable signal/threaded code. If any user is an expert on this topic
121 portable signal/threaded code. If any user is an expert on this topic
122 and can suggest a better solution, I would love to hear about it. In
122 and can suggest a better solution, I would love to hear about it. In
123 the IPython sources, look at the Shell.py module, and in particular at
123 the IPython sources, look at the Shell.py module, and in particular at
124 the runcode() method.
124 the runcode() method.
125
125
126 REGULAR OPTIONS
126 REGULAR OPTIONS
127 After the above threading options have been given, regular options can
127 After the above threading options have been given, regular options can
128 follow in any order. All options can be abbreviated to their shortest
128 follow in any order. All options can be abbreviated to their shortest
129 non-ambiguous form and are case-sensitive. One or two dashes can be
129 non-ambiguous form and are case-sensitive. One or two dashes can be
130 used. Some options have an alternate short form, indicated after a |.
130 used. Some options have an alternate short form, indicated after a |.
131
131
132 Most options can also be set from your ipythonrc configuration file.
132 Most options can also be set from your ipythonrc configuration file.
133 See the provided examples for assistance. Options given on the comman-
133 See the provided examples for assistance. Options given on the comman-
134 dline override the values set in the ipythonrc file.
134 dline override the values set in the ipythonrc file.
135
135
136 All options with a [no] prepended can be specified in negated form
136 All options with a [no] prepended can be specified in negated form
137 (using -nooption instead of -option) to turn the feature off.
137 (using -nooption instead of -option) to turn the feature off.
138
138
139 -h, --help
139 -h, --help
140 Show summary of options.
140 Show summary of options.
141
141
142 -pylab This can only be given as the first option passed to IPython (it
142 -pylab This can only be given as the first option passed to IPython (it
143 will have no effect in any other position). It adds special sup-
143 will have no effect in any other position). It adds special sup-
144 port for the matplotlib library (http://matplotlib.source-
144 port for the matplotlib library (http://matplotlib.source-
145 forge.net), allowing interactive usage of any of its backends as
145 forge.net), allowing interactive usage of any of its backends as
146 defined in the user's .matplotlibrc file. It automatically
146 defined in the user's .matplotlibrc file. It automatically
147 activates GTK or WX threading for IPyhton if the choice of mat-
147 activates GTK or WX threading for IPyhton if the choice of mat-
148 plotlib backend requires it. It also modifies the @run command
148 plotlib backend requires it. It also modifies the @run command
149 to correctly execute (without blocking) any matplotlib-based
149 to correctly execute (without blocking) any matplotlib-based
150 script which calls show() at the end.
150 script which calls show() at the end.
151
151
152 -autocall <val>
152 -autocall <val>
153 Make IPython automatically call any callable object even if you
153 Make IPython automatically call any callable object even if you
154 didn't type explicit parentheses. For example, 'str 43' becomes
154 didn't type explicit parentheses. For example, 'str 43' becomes
155 'str(43)' automatically. The value can be '0' to disable the
155 'str(43)' automatically. The value can be '0' to disable the
156 feature, '1' for 'smart' autocall, where it is not applied if
156 feature, '1' for 'smart' autocall, where it is not applied if
157 there are no more arguments on the line, and '2' for 'full'
157 there are no more arguments on the line, and '2' for 'full'
158 autocall, where all callable objects are automatically called
158 autocall, where all callable objects are automatically called
159 (even if no arguments are present). The default is '1'.
159 (even if no arguments are present). The default is '1'.
160
160
161 -[no]autoindent
161 -[no]autoindent
162 Turn automatic indentation on/off.
162 Turn automatic indentation on/off.
163
163
164 -[no]automagic
164 -[no]automagic
165 Make magic commands automatic (without needing their first char-
165 Make magic commands automatic (without needing their first char-
166 acter to be %). Type %magic at the IPython prompt for more
166 acter to be %). Type %magic at the IPython prompt for more
167 information.
167 information.
168
168
169 -[no]autoedit_syntax
169 -[no]autoedit_syntax
170 When a syntax error occurs after editing a file, automatically
170 When a syntax error occurs after editing a file, automatically
171 open the file to the trouble causing line for convenient fixing.
171 open the file to the trouble causing line for convenient fixing.
172
172
173 -[no]banner
173 -[no]banner
174 Print the intial information banner (default on).
174 Print the intial information banner (default on).
175
175
176 -c <command>
176 -c <command>
177 Execute the given command string, and set sys.argv to ['c'].
177 Execute the given command string, and set sys.argv to ['c'].
178 This is similar to the -c option in the normal Python inter-
178 This is similar to the -c option in the normal Python inter-
179 preter.
179 preter.
180
180
181 -cache_size|cs <n>
181 -cache_size|cs <n>
182 Size of the output cache (maximum number of entries to hold in
182 Size of the output cache (maximum number of entries to hold in
183 memory). The default is 1000, you can change it permanently in
183 memory). The default is 1000, you can change it permanently in
184 your config file. Setting it to 0 completely disables the
184 your config file. Setting it to 0 completely disables the
185 caching system, and the minimum value accepted is 20 (if you
185 caching system, and the minimum value accepted is 20 (if you
186 provide a value less than 20, it is reset to 0 and a warning is
186 provide a value less than 20, it is reset to 0 and a warning is
187 issued). This limit is defined because otherwise you'll spend
187 issued). This limit is defined because otherwise you'll spend
188 more time re-flushing a too small cache than working.
188 more time re-flushing a too small cache than working.
189
189
190 -classic|cl
190 -classic|cl
191 Gives IPython a similar feel to the classic Python prompt.
191 Gives IPython a similar feel to the classic Python prompt.
192
192
193 -colors <scheme>
193 -colors <scheme>
194 Color scheme for prompts and exception reporting. Currently
194 Color scheme for prompts and exception reporting. Currently
195 implemented: NoColor, Linux, and LightBG.
195 implemented: NoColor, Linux, and LightBG.
196
196
197 -[no]color_info
197 -[no]color_info
198 IPython can display information about objects via a set of func-
198 IPython can display information about objects via a set of func-
199 tions, and optionally can use colors for this, syntax highlight-
199 tions, and optionally can use colors for this, syntax highlight-
200 ing source code and various other elements. However, because
200 ing source code and various other elements. However, because
201 this information is passed through a pager (like 'less') and
201 this information is passed through a pager (like 'less') and
202 many pagers get confused with color codes, this option is off by
202 many pagers get confused with color codes, this option is off by
203 default. You can test it and turn it on permanently in your
203 default. You can test it and turn it on permanently in your
204 ipythonrc file if it works for you. As a reference, the 'less'
204 ipythonrc file if it works for you. As a reference, the 'less'
205 pager supplied with Mandrake 8.2 works ok, but that in RedHat
205 pager supplied with Mandrake 8.2 works ok, but that in RedHat
206 7.2 doesn't.
206 7.2 doesn't.
207
207
208 Test it and turn it on permanently if it works with your system.
208 Test it and turn it on permanently if it works with your system.
209 The magic function @color_info allows you to toggle this inter-
209 The magic function @color_info allows you to toggle this inter-
210 actively for testing.
210 actively for testing.
211
211
212 -[no]confirm_exit
212 -[no]confirm_exit
213 Set to confirm when you try to exit IPython with an EOF (Con-
213 Set to confirm when you try to exit IPython with an EOF (Con-
214 trol-D in Unix, Control-Z/Enter in Windows). Note that using the
214 trol-D in Unix, Control-Z/Enter in Windows). Note that using the
215 magic functions @Exit or @Quit you can force a direct exit,
215 magic functions @Exit or @Quit you can force a direct exit,
216 bypassing any confirmation.
216 bypassing any confirmation.
217
217
218 -[no]debug
218 -[no]debug
219 Show information about the loading process. Very useful to pin
219 Show information about the loading process. Very useful to pin
220 down problems with your configuration files or to get details
220 down problems with your configuration files or to get details
221 about session restores.
221 about session restores.
222
222
223 -[no]deep_reload
223 -[no]deep_reload
224 IPython can use the deep_reload module which reloads changes in
224 IPython can use the deep_reload module which reloads changes in
225 modules recursively (it replaces the reload() function, so you
225 modules recursively (it replaces the reload() function, so you
226 don't need to change anything to use it). deep_reload() forces a
226 don't need to change anything to use it). deep_reload() forces a
227 full reload of modules whose code may have changed, which the
227 full reload of modules whose code may have changed, which the
228 default reload() function does not.
228 default reload() function does not.
229
229
230 When deep_reload is off, IPython will use the normal reload(),
230 When deep_reload is off, IPython will use the normal reload(),
231 but deep_reload will still be available as dreload(). This fea-
231 but deep_reload will still be available as dreload(). This fea-
232 ture is off by default [which means that you have both normal
232 ture is off by default [which means that you have both normal
233 reload() and dreload()].
233 reload() and dreload()].
234
234
235 -editor <name>
235 -editor <name>
236 Which editor to use with the @edit command. By default, IPython
236 Which editor to use with the @edit command. By default, IPython
237 will honor your EDITOR environment variable (if not set, vi is
237 will honor your EDITOR environment variable (if not set, vi is
238 the Unix default and notepad the Windows one). Since this editor
238 the Unix default and notepad the Windows one). Since this editor
239 is invoked on the fly by IPython and is meant for editing small
239 is invoked on the fly by IPython and is meant for editing small
240 code snippets, you may want to use a small, lightweight editor
240 code snippets, you may want to use a small, lightweight editor
241 here (in case your default EDITOR is something like Emacs).
241 here (in case your default EDITOR is something like Emacs).
242
242
243 -ipythondir <name>
243 -ipythondir <name>
244 The name of your IPython configuration directory IPYTHONDIR.
244 The name of your IPython configuration directory IPYTHONDIR.
245 This can also be specified through the environment variable
245 This can also be specified through the environment variable
246 IPYTHONDIR.
246 IPYTHONDIR.
247
247
248 -log|l Generate a log file of all input. The file is named
248 -log|l Generate a log file of all input. The file is named
249 ipython_log.py in your current directory (which prevents logs
249 ipython_log.py in your current directory (which prevents logs
250 from multiple IPython sessions from trampling each other). You
250 from multiple IPython sessions from trampling each other). You
251 can use this to later restore a session by loading your logfile
251 can use this to later restore a session by loading your logfile
252 as a file to be executed with option -logplay (see below).
252 as a file to be executed with option -logplay (see below).
253
253
254 -logfile|lf
254 -logfile|lf
255 Specify the name of your logfile.
255 Specify the name of your logfile.
256
256
257 -logplay|lp
257 -logplay|lp
258 Replay a previous log. For restoring a session as close as pos-
258 Replay a previous log. For restoring a session as close as pos-
259 sible to the state you left it in, use this option (don't just
259 sible to the state you left it in, use this option (don't just
260 run the logfile). With -logplay, IPython will try to reconstruct
260 run the logfile). With -logplay, IPython will try to reconstruct
261 the previous working environment in full, not just execute the
261 the previous working environment in full, not just execute the
262 commands in the logfile.
262 commands in the logfile.
263 When a session is restored, logging is automatically turned on
263 When a session is restored, logging is automatically turned on
264 again with the name of the logfile it was invoked with (it is
264 again with the name of the logfile it was invoked with (it is
265 read from the log header). So once you've turned logging on for
265 read from the log header). So once you've turned logging on for
266 a session, you can quit IPython and reload it as many times as
266 a session, you can quit IPython and reload it as many times as
267 you want and it will continue to log its history and restore
267 you want and it will continue to log its history and restore
268 from the beginning every time.
268 from the beginning every time.
269
269
270 Caveats: there are limitations in this option. The history vari-
270 Caveats: there are limitations in this option. The history vari-
271 ables _i*,_* and _dh don't get restored properly. In the future
271 ables _i*,_* and _dh don't get restored properly. In the future
272 we will try to implement full session saving by writing and
272 we will try to implement full session saving by writing and
273 retrieving a failed because of inherent limitations of Python's
273 retrieving a failed because of inherent limitations of Python's
274 Pickle module, so this may have to wait.
274 Pickle module, so this may have to wait.
275
275
276 -[no]messages
276 -[no]messages
277 Print messages which IPython collects about its startup process
277 Print messages which IPython collects about its startup process
278 (default on).
278 (default on).
279
279
280 -[no]pdb
280 -[no]pdb
281 Automatically call the pdb debugger after every uncaught excep-
281 Automatically call the pdb debugger after every uncaught excep-
282 tion. If you are used to debugging using pdb, this puts you
282 tion. If you are used to debugging using pdb, this puts you
283 automatically inside of it after any call (either in IPython or
283 automatically inside of it after any call (either in IPython or
284 in code called by it) which triggers an exception which goes
284 in code called by it) which triggers an exception which goes
285 uncaught.
285 uncaught.
286
286
287 -[no]pprint
287 -[no]pprint
288 IPython can optionally use the pprint (pretty printer) module
288 IPython can optionally use the pprint (pretty printer) module
289 for displaying results. pprint tends to give a nicer display of
289 for displaying results. pprint tends to give a nicer display of
290 nested data structures. If you like it, you can turn it on per-
290 nested data structures. If you like it, you can turn it on per-
291 manently in your config file (default off).
291 manently in your config file (default off).
292
292
293 -profile|p <name>
293 -profile|p <name>
294 Assume that your config file is ipythonrc-<name> (looks in cur-
294 Assume that your config file is ipythonrc-<name> (looks in cur-
295 rent dir first, then in IPYTHONDIR). This is a quick way to keep
295 rent dir first, then in IPYTHONDIR). This is a quick way to keep
296 and load multiple config files for different tasks, especially
296 and load multiple config files for different tasks, especially
297 if you use the include option of config files. You can keep a
297 if you use the include option of config files. You can keep a
298 basic IPYTHONDIR/ipythonrc file and then have other 'profiles'
298 basic IPYTHONDIR/ipythonrc file and then have other 'profiles'
299 which include this one and load extra things for particular
299 which include this one and load extra things for particular
300 tasks. For example:
300 tasks. For example:
301
301
302 1) $HOME/.ipython/ipythonrc : load basic things you always want.
302 1) $HOME/.ipython/ipythonrc : load basic things you always want.
303 2) $HOME/.ipython/ipythonrc-math : load (1) and basic math-
303 2) $HOME/.ipython/ipythonrc-math : load (1) and basic math-
304 related modules.
304 related modules.
305 3) $HOME/.ipython/ipythonrc-numeric : load (1) and Numeric and
305 3) $HOME/.ipython/ipythonrc-numeric : load (1) and Numeric and
306 plotting modules.
306 plotting modules.
307
307
308 Since it is possible to create an endless loop by having circu-
308 Since it is possible to create an endless loop by having circu-
309 lar file inclusions, IPython will stop if it reaches 15 recur-
309 lar file inclusions, IPython will stop if it reaches 15 recur-
310 sive inclusions.
310 sive inclusions.
311
311
312 -prompt_in1|pi1 <string>
312 -prompt_in1|pi1 <string>
313 Specify the string used for input prompts. Note that if you are
313 Specify the string used for input prompts. Note that if you are
314 using numbered prompts, the number is represented with a '\#' in
314 using numbered prompts, the number is represented with a '\#' in
315 the string. Don't forget to quote strings with spaces embedded
315 the string. Don't forget to quote strings with spaces embedded
316 in them. Default: 'In [\#]: '.
316 in them. Default: 'In [\#]: '.
317
317
318 Most bash-like escapes can be used to customize IPython's
318 Most bash-like escapes can be used to customize IPython's
319 prompts, as well as a few additional ones which are IPython-spe-
319 prompts, as well as a few additional ones which are IPython-spe-
320 cific. All valid prompt escapes are described in detail in the
320 cific. All valid prompt escapes are described in detail in the
321 Customization section of the IPython HTML/PDF manual.
321 Customization section of the IPython HTML/PDF manual.
322
322
323 -prompt_in2|pi2 <string>
323 -prompt_in2|pi2 <string>
324 Similar to the previous option, but used for the continuation
324 Similar to the previous option, but used for the continuation
325 prompts. The special sequence '\D' is similar to '\#', but with
325 prompts. The special sequence '\D' is similar to '\#', but with
326 all digits replaced dots (so you can have your continuation
326 all digits replaced dots (so you can have your continuation
327 prompt aligned with your input prompt). Default: ' .\D.: '
327 prompt aligned with your input prompt). Default: ' .\D.: '
328 (note three spaces at the start for alignment with 'In [\#]').
328 (note three spaces at the start for alignment with 'In [\#]').
329
329
330 -prompt_out|po <string>
330 -prompt_out|po <string>
331 String used for output prompts, also uses numbers like
331 String used for output prompts, also uses numbers like
332 prompt_in1. Default: 'Out[\#]:'.
332 prompt_in1. Default: 'Out[\#]:'.
333
333
334 -quick Start in bare bones mode (no config file loaded).
334 -quick Start in bare bones mode (no config file loaded).
335
335
336 -rcfile <name>
336 -rcfile <name>
337 Name of your IPython resource configuration file. normally
337 Name of your IPython resource configuration file. normally
338 IPython loads ipythonrc (from current directory) or
338 IPython loads ipythonrc (from current directory) or
339 IPYTHONDIR/ipythonrc. If the loading of your config file fails,
339 IPYTHONDIR/ipythonrc. If the loading of your config file fails,
340 IPython starts with a bare bones configuration (no modules
340 IPython starts with a bare bones configuration (no modules
341 loaded at all).
341 loaded at all).
342
342
343 -[no]readline
343 -[no]readline
344 Use the readline library, which is needed to support name com-
344 Use the readline library, which is needed to support name com-
345 pletion and command history, among other things. It is enabled
345 pletion and command history, among other things. It is enabled
346 by default, but may cause problems for users of X/Emacs in
346 by default, but may cause problems for users of X/Emacs in
347 Python comint or shell buffers.
347 Python comint or shell buffers.
348
348
349 Note that emacs 'eterm' buffers (opened with M-x term) support
349 Note that emacs 'eterm' buffers (opened with M-x term) support
350 IPython's readline and syntax coloring fine, only 'emacs' (M-x
350 IPython's readline and syntax coloring fine, only 'emacs' (M-x
351 shell and C-c !) buffers do not.
351 shell and C-c !) buffers do not.
352
352
353 -screen_length|sl <n>
353 -screen_length|sl <n>
354 Number of lines of your screen. This is used to control print-
354 Number of lines of your screen. This is used to control print-
355 ing of very long strings. Strings longer than this number of
355 ing of very long strings. Strings longer than this number of
356 lines will be sent through a pager instead of directly printed.
356 lines will be sent through a pager instead of directly printed.
357
357
358 The default value for this is 0, which means IPython will auto-
358 The default value for this is 0, which means IPython will auto-
359 detect your screen size every time it needs to print certain
359 detect your screen size every time it needs to print certain
360 potentially long strings (this doesn't change the behavior of
360 potentially long strings (this doesn't change the behavior of
361 the 'print' keyword, it's only triggered internally). If for
361 the 'print' keyword, it's only triggered internally). If for
362 some reason this isn't working well (it needs curses support),
362 some reason this isn't working well (it needs curses support),
363 specify it yourself. Otherwise don't change the default.
363 specify it yourself. Otherwise don't change the default.
364
364
365 -separate_in|si <string>
365 -separate_in|si <string>
366 Separator before input prompts. Default '0.
366 Separator before input prompts. Default '0.
367
367
368 -separate_out|so <string>
368 -separate_out|so <string>
369 Separator before output prompts. Default: 0 (nothing).
369 Separator before output prompts. Default: 0 (nothing).
370
370
371 -separate_out2|so2 <string>
371 -separate_out2|so2 <string>
372 Separator after output prompts. Default: 0 (nothing).
372 Separator after output prompts. Default: 0 (nothing).
373
373
374 -nosep Shorthand for '-separate_in 0 -separate_out 0 -separate_out2 0'.
374 -nosep Shorthand for '-separate_in 0 -separate_out 0 -separate_out2 0'.
375 Simply removes all input/output separators.
375 Simply removes all input/output separators.
376
376
377 -upgrade
377 -upgrade
378 Allows you to upgrade your IPYTHONDIR configuration when you
378 Allows you to upgrade your IPYTHONDIR configuration when you
379 install a new version of IPython. Since new versions may
379 install a new version of IPython. Since new versions may
380 include new command lines options or example files, this copies
380 include new command lines options or example files, this copies
381 updated ipythonrc-type files. However, it backs up (with a .old
381 updated ipythonrc-type files. However, it backs up (with a .old
382 extension) all files which it overwrites so that you can merge
382 extension) all files which it overwrites so that you can merge
383 back any custimizations you might have in your personal files.
383 back any custimizations you might have in your personal files.
384
384
385 -Version
385 -Version
386 Print version information and exit.
386 Print version information and exit.
387
387
388 -wxversion <string>
388 -wxversion <string>
389 Select a specific version of wxPython (used in conjunction with
389 Select a specific version of wxPython (used in conjunction with
390 -wthread). Requires the wxversion module, part of recent
390 -wthread). Requires the wxversion module, part of recent
391 wxPython distributions.
391 wxPython distributions.
392
392
393 -xmode <modename>
393 -xmode <modename>
394 Mode for exception reporting. The valid modes are Plain, Con-
394 Mode for exception reporting. The valid modes are Plain, Con-
395 text, and Verbose.
395 text, and Verbose.
396
396
397 - Plain: similar to python's normal traceback printing.
397 - Plain: similar to python's normal traceback printing.
398
398
399 - Context: prints 5 lines of context source code around each
399 - Context: prints 5 lines of context source code around each
400 line in the traceback.
400 line in the traceback.
401
401
402 - Verbose: similar to Context, but additionally prints the vari-
402 - Verbose: similar to Context, but additionally prints the vari-
403 ables currently visible where the exception happened (shortening
403 ables currently visible where the exception happened (shortening
404 their strings if too long). This can potentially be very slow,
404 their strings if too long). This can potentially be very slow,
405 if you happen to have a huge data structure whose string repre-
405 if you happen to have a huge data structure whose string repre-
406 sentation is complex to compute. Your computer may appear to
406 sentation is complex to compute. Your computer may appear to
407 freeze for a while with cpu usage at 100%. If this occurs, you
407 freeze for a while with cpu usage at 100%. If this occurs, you
408 can cancel the traceback with Ctrl-C (maybe hitting it more than
408 can cancel the traceback with Ctrl-C (maybe hitting it more than
409 once).
409 once).
410
410
411
411
412 EMBEDDING
412 EMBEDDING
413 It is possible to start an IPython instance inside your own Python pro-
413 It is possible to start an IPython instance inside your own Python pro-
414 grams. In the documentation example files there are some illustrations
414 grams. In the documentation example files there are some illustrations
415 on how to do this.
415 on how to do this.
416
416
417 This feature allows you to evalutate dynamically the state of your
417 This feature allows you to evalutate dynamically the state of your
418 code, operate with your variables, analyze them, etc. Note however
418 code, operate with your variables, analyze them, etc. Note however
419 that any changes you make to values while in the shell do NOT propagate
419 that any changes you make to values while in the shell do NOT propagate
420 back to the running code, so it is safe to modify your values because
420 back to the running code, so it is safe to modify your values because
421 you won't break your code in bizarre ways by doing so.
421 you won't break your code in bizarre ways by doing so.
422 """
422 """
423
423
424 cmd_line_usage = __doc__
424 cmd_line_usage = __doc__
425
425
426 #---------------------------------------------------------------------------
426 #---------------------------------------------------------------------------
427 interactive_usage = """
427 interactive_usage = """
428 IPython -- An enhanced Interactive Python
428 IPython -- An enhanced Interactive Python
429 =========================================
429 =========================================
430
430
431 IPython offers a combination of convenient shell features, special commands
431 IPython offers a combination of convenient shell features, special commands
432 and a history mechanism for both input (command history) and output (results
432 and a history mechanism for both input (command history) and output (results
433 caching, similar to Mathematica). It is intended to be a fully compatible
433 caching, similar to Mathematica). It is intended to be a fully compatible
434 replacement for the standard Python interpreter, while offering vastly
434 replacement for the standard Python interpreter, while offering vastly
435 improved functionality and flexibility.
435 improved functionality and flexibility.
436
436
437 At your system command line, type 'ipython -help' to see the command line
437 At your system command line, type 'ipython -help' to see the command line
438 options available. This document only describes interactive features.
438 options available. This document only describes interactive features.
439
439
440 Warning: IPython relies on the existence of a global variable called __IP which
440 Warning: IPython relies on the existence of a global variable called __IP which
441 controls the shell itself. If you redefine __IP to anything, bizarre behavior
441 controls the shell itself. If you redefine __IP to anything, bizarre behavior
442 will quickly occur.
442 will quickly occur.
443
443
444 MAIN FEATURES
444 MAIN FEATURES
445
445
446 * Access to the standard Python help. As of Python 2.1, a help system is
446 * Access to the standard Python help. As of Python 2.1, a help system is
447 available with access to object docstrings and the Python manuals. Simply
447 available with access to object docstrings and the Python manuals. Simply
448 type 'help' (no quotes) to access it.
448 type 'help' (no quotes) to access it.
449
449
450 * Magic commands: type %magic for information on the magic subsystem.
450 * Magic commands: type %magic for information on the magic subsystem.
451
451
452 * System command aliases, via the %alias command or the ipythonrc config file.
452 * System command aliases, via the %alias command or the ipythonrc config file.
453
453
454 * Dynamic object information:
454 * Dynamic object information:
455
455
456 Typing ?word or word? prints detailed information about an object. If
456 Typing ?word or word? prints detailed information about an object. If
457 certain strings in the object are too long (docstrings, code, etc.) they get
457 certain strings in the object are too long (docstrings, code, etc.) they get
458 snipped in the center for brevity.
458 snipped in the center for brevity.
459
459
460 Typing ??word or word?? gives access to the full information without
460 Typing ??word or word?? gives access to the full information without
461 snipping long strings. Long strings are sent to the screen through the less
461 snipping long strings. Long strings are sent to the screen through the less
462 pager if longer than the screen, printed otherwise.
462 pager if longer than the screen, printed otherwise.
463
463
464 The ?/?? system gives access to the full source code for any object (if
464 The ?/?? system gives access to the full source code for any object (if
465 available), shows function prototypes and other useful information.
465 available), shows function prototypes and other useful information.
466
466
467 If you just want to see an object's docstring, type '%pdoc object' (without
467 If you just want to see an object's docstring, type '%pdoc object' (without
468 quotes, and without % if you have automagic on).
468 quotes, and without % if you have automagic on).
469
469
470 Both %pdoc and ?/?? give you access to documentation even on things which are
470 Both %pdoc and ?/?? give you access to documentation even on things which are
471 not explicitely defined. Try for example typing {}.get? or after import os,
471 not explicitely defined. Try for example typing {}.get? or after import os,
472 type os.path.abspath??. The magic functions %pdef, %source and %file operate
472 type os.path.abspath??. The magic functions %pdef, %source and %file operate
473 similarly.
473 similarly.
474
474
475 * Completion in the local namespace, by typing TAB at the prompt.
475 * Completion in the local namespace, by typing TAB at the prompt.
476
476
477 At any time, hitting tab will complete any available python commands or
477 At any time, hitting tab will complete any available python commands or
478 variable names, and show you a list of the possible completions if there's
478 variable names, and show you a list of the possible completions if there's
479 no unambiguous one. It will also complete filenames in the current directory.
479 no unambiguous one. It will also complete filenames in the current directory.
480
480
481 This feature requires the readline and rlcomplete modules, so it won't work
481 This feature requires the readline and rlcomplete modules, so it won't work
482 if your Python lacks readline support (such as under Windows).
482 if your Python lacks readline support (such as under Windows).
483
483
484 * Search previous command history in two ways (also requires readline):
484 * Search previous command history in two ways (also requires readline):
485
485
486 - Start typing, and then use Ctrl-p (previous,up) and Ctrl-n (next,down) to
486 - Start typing, and then use Ctrl-p (previous,up) and Ctrl-n (next,down) to
487 search through only the history items that match what you've typed so
487 search through only the history items that match what you've typed so
488 far. If you use Ctrl-p/Ctrl-n at a blank prompt, they just behave like
488 far. If you use Ctrl-p/Ctrl-n at a blank prompt, they just behave like
489 normal arrow keys.
489 normal arrow keys.
490
490
491 - Hit Ctrl-r: opens a search prompt. Begin typing and the system searches
491 - Hit Ctrl-r: opens a search prompt. Begin typing and the system searches
492 your history for lines that match what you've typed so far, completing as
492 your history for lines that match what you've typed so far, completing as
493 much as it can.
493 much as it can.
494
494
495 * Persistent command history across sessions (readline required).
495 * Persistent command history across sessions (readline required).
496
496
497 * Logging of input with the ability to save and restore a working session.
497 * Logging of input with the ability to save and restore a working session.
498
498
499 * System escape with !. Typing !ls will run 'ls' in the current directory.
499 * System escape with !. Typing !ls will run 'ls' in the current directory.
500
500
501 * The reload command does a 'deep' reload of a module: changes made to the
501 * The reload command does a 'deep' reload of a module: changes made to the
502 module since you imported will actually be available without having to exit.
502 module since you imported will actually be available without having to exit.
503
503
504 * Verbose and colored exception traceback printouts. See the magic xmode and
504 * Verbose and colored exception traceback printouts. See the magic xmode and
505 xcolor functions for details (just type %magic).
505 xcolor functions for details (just type %magic).
506
506
507 * Input caching system:
507 * Input caching system:
508
508
509 IPython offers numbered prompts (In/Out) with input and output caching. All
509 IPython offers numbered prompts (In/Out) with input and output caching. All
510 input is saved and can be retrieved as variables (besides the usual arrow
510 input is saved and can be retrieved as variables (besides the usual arrow
511 key recall).
511 key recall).
512
512
513 The following GLOBAL variables always exist (so don't overwrite them!):
513 The following GLOBAL variables always exist (so don't overwrite them!):
514 _i: stores previous input.
514 _i: stores previous input.
515 _ii: next previous.
515 _ii: next previous.
516 _iii: next-next previous.
516 _iii: next-next previous.
517 _ih : a list of all input _ih[n] is the input from line n.
517 _ih : a list of all input _ih[n] is the input from line n.
518
518
519 Additionally, global variables named _i<n> are dynamically created (<n>
519 Additionally, global variables named _i<n> are dynamically created (<n>
520 being the prompt counter), such that _i<n> == _ih[<n>]
520 being the prompt counter), such that _i<n> == _ih[<n>]
521
521
522 For example, what you typed at prompt 14 is available as _i14 and _ih[14].
522 For example, what you typed at prompt 14 is available as _i14 and _ih[14].
523
523
524 You can create macros which contain multiple input lines from this history,
524 You can create macros which contain multiple input lines from this history,
525 for later re-execution, with the %macro function.
525 for later re-execution, with the %macro function.
526
526
527 The history function %hist allows you to see any part of your input history
527 The history function %hist allows you to see any part of your input history
528 by printing a range of the _i variables. Note that inputs which contain
528 by printing a range of the _i variables. Note that inputs which contain
529 magic functions (%) appear in the history with a prepended comment. This is
529 magic functions (%) appear in the history with a prepended comment. This is
530 because they aren't really valid Python code, so you can't exec them.
530 because they aren't really valid Python code, so you can't exec them.
531
531
532 * Output caching system:
532 * Output caching system:
533
533
534 For output that is returned from actions, a system similar to the input
534 For output that is returned from actions, a system similar to the input
535 cache exists but using _ instead of _i. Only actions that produce a result
535 cache exists but using _ instead of _i. Only actions that produce a result
536 (NOT assignments, for example) are cached. If you are familiar with
536 (NOT assignments, for example) are cached. If you are familiar with
537 Mathematica, IPython's _ variables behave exactly like Mathematica's %
537 Mathematica, IPython's _ variables behave exactly like Mathematica's %
538 variables.
538 variables.
539
539
540 The following GLOBAL variables always exist (so don't overwrite them!):
540 The following GLOBAL variables always exist (so don't overwrite them!):
541 _ (one underscore): previous output.
541 _ (one underscore): previous output.
542 __ (two underscores): next previous.
542 __ (two underscores): next previous.
543 ___ (three underscores): next-next previous.
543 ___ (three underscores): next-next previous.
544
544
545 Global variables named _<n> are dynamically created (<n> being the prompt
545 Global variables named _<n> are dynamically created (<n> being the prompt
546 counter), such that the result of output <n> is always available as _<n>.
546 counter), such that the result of output <n> is always available as _<n>.
547
547
548 Finally, a global dictionary named _oh exists with entries for all lines
548 Finally, a global dictionary named _oh exists with entries for all lines
549 which generated output.
549 which generated output.
550
550
551 * Directory history:
551 * Directory history:
552
552
553 Your history of visited directories is kept in the global list _dh, and the
553 Your history of visited directories is kept in the global list _dh, and the
554 magic %cd command can be used to go to any entry in that list.
554 magic %cd command can be used to go to any entry in that list.
555
555
556 * Auto-parentheses and auto-quotes (adapted from Nathan Gray's LazyPython)
556 * Auto-parentheses and auto-quotes (adapted from Nathan Gray's LazyPython)
557
557
558 1. Auto-parentheses
558 1. Auto-parentheses
559 Callable objects (i.e. functions, methods, etc) can be invoked like
559 Callable objects (i.e. functions, methods, etc) can be invoked like
560 this (notice the commas between the arguments):
560 this (notice the commas between the arguments):
561 >>> callable_ob arg1, arg2, arg3
561 >>> callable_ob arg1, arg2, arg3
562 and the input will be translated to this:
562 and the input will be translated to this:
563 --> callable_ob(arg1, arg2, arg3)
563 --> callable_ob(arg1, arg2, arg3)
564 You can force auto-parentheses by using '/' as the first character
564 You can force auto-parentheses by using '/' as the first character
565 of a line. For example:
565 of a line. For example:
566 >>> /globals # becomes 'globals()'
566 >>> /globals # becomes 'globals()'
567 Note that the '/' MUST be the first character on the line! This
567 Note that the '/' MUST be the first character on the line! This
568 won't work:
568 won't work:
569 >>> print /globals # syntax error
569 >>> print /globals # syntax error
570
570
571 In most cases the automatic algorithm should work, so you should
571 In most cases the automatic algorithm should work, so you should
572 rarely need to explicitly invoke /. One notable exception is if you
572 rarely need to explicitly invoke /. One notable exception is if you
573 are trying to call a function with a list of tuples as arguments (the
573 are trying to call a function with a list of tuples as arguments (the
574 parenthesis will confuse IPython):
574 parenthesis will confuse IPython):
575 In [1]: zip (1,2,3),(4,5,6) # won't work
575 In [1]: zip (1,2,3),(4,5,6) # won't work
576 but this will work:
576 but this will work:
577 In [2]: /zip (1,2,3),(4,5,6)
577 In [2]: /zip (1,2,3),(4,5,6)
578 ------> zip ((1,2,3),(4,5,6))
578 ------> zip ((1,2,3),(4,5,6))
579 Out[2]= [(1, 4), (2, 5), (3, 6)]
579 Out[2]= [(1, 4), (2, 5), (3, 6)]
580
580
581 IPython tells you that it has altered your command line by
581 IPython tells you that it has altered your command line by
582 displaying the new command line preceded by -->. e.g.:
582 displaying the new command line preceded by -->. e.g.:
583 In [18]: callable list
583 In [18]: callable list
584 -------> callable (list)
584 -------> callable (list)
585
585
586 2. Auto-Quoting
586 2. Auto-Quoting
587 You can force auto-quoting of a function's arguments by using ',' as
587 You can force auto-quoting of a function's arguments by using ',' as
588 the first character of a line. For example:
588 the first character of a line. For example:
589 >>> ,my_function /home/me # becomes my_function("/home/me")
589 >>> ,my_function /home/me # becomes my_function("/home/me")
590
590
591 If you use ';' instead, the whole argument is quoted as a single
591 If you use ';' instead, the whole argument is quoted as a single
592 string (while ',' splits on whitespace):
592 string (while ',' splits on whitespace):
593 >>> ,my_function a b c # becomes my_function("a","b","c")
593 >>> ,my_function a b c # becomes my_function("a","b","c")
594 >>> ;my_function a b c # becomes my_function("a b c")
594 >>> ;my_function a b c # becomes my_function("a b c")
595
595
596 Note that the ',' MUST be the first character on the line! This
596 Note that the ',' MUST be the first character on the line! This
597 won't work:
597 won't work:
598 >>> x = ,my_function /home/me # syntax error
598 >>> x = ,my_function /home/me # syntax error
599 """
599 """
600
600
601 quick_reference = r"""
601 quick_reference = r"""
602 IPython -- An enhanced Interactive Python - Quick Reference Card
602 IPython -- An enhanced Interactive Python - Quick Reference Card
603 ================================================================
603 ================================================================
604
604
605 obj?, obj??, ?obj,??obj : Get help, or more help for object
605 obj?, obj??, ?obj,??obj : Get help, or more help for object
606 ?os.p* : List names in os starting with p
606 ?os.p* : List names in os starting with p
607
607
608 Example magic:
608 Example magic:
609
609
610 %alias d ls -F : 'd' is now an alias for 'ls -F'
610 %alias d ls -F : 'd' is now an alias for 'ls -F'
611 alias d ls -F : Works if 'alias' not a python name
611 alias d ls -F : Works if 'alias' not a python name
612 alist = %alias : Get list of aliases to 'alist'
612 alist = %alias : Get list of aliases to 'alist'
613
613
614 System commands:
614 System commands:
615
615
616 !cp a.txt b/ : System command escape, calls os.system()
616 !cp a.txt b/ : System command escape, calls os.system()
617 cp a.txt b/ : after %rehashx, most system commands work without !
617 cp a.txt b/ : after %rehashx, most system commands work without !
618 cp ${f}.txt $bar : Variable expansion in magics and system commands
618 cp ${f}.txt $bar : Variable expansion in magics and system commands
619 files = !ls /usr : Capture sytem command output
619 files = !ls /usr : Capture sytem command output
620 files.s, files.l, files.n: "a b c", ['a','b','c'], 'a\nb\nc'
620 files.s, files.l, files.n: "a b c", ['a','b','c'], 'a\nb\nc'
621 cd /usr/share : Obvious, also 'cd d:\home\_ipython' works
621 cd /usr/share : Obvious, also 'cd d:\home\_ipython' works
622
622
623 History:
623 History:
624
624
625 _i, _ii, _iii : Previous, next previous, next next previous input
625 _i, _ii, _iii : Previous, next previous, next next previous input
626 _ih[4], _ih[2:5] : Input history line 4, lines 2-4
626 _i4, _ih[2:5] : Input history line 4, lines 2-4
627 exec _i81 : Execute input history line #81 again
627 _, __, ___ : previous, next previous, next next previous output
628 _, __, ___ : previous, next previous, next next previous output
628 _dh : Directory history
629 _dh : Directory history
629 _oh : Output history
630 _oh : Output history
630 %hist : Command history
631 %hist : Command history
631
632
632 Autocall:
633 Autocall:
633
634
634 f 1,2 : f(1,2)
635 f 1,2 : f(1,2)
635 /f 1,2 : f(1,2) (forced autoparen)
636 /f 1,2 : f(1,2) (forced autoparen)
636 ,f 1 2 : f("1","2")
637 ,f 1 2 : f("1","2")
637 ;f 1 2 : f("1 2")
638 ;f 1 2 : f("1 2")
638
639
639 """
640 """
640
641
641
642
@@ -1,6100 +1,6129 b''
1 2006-12-20 Ville Vainio <vivainio@gmail.com>
2
3 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
4
5 2006-12-17 Ville Vainio <vivainio@gmail.com>
6
7 * Extensions/jobctrl.py: Fixed &cmd arg arg...
8 to work properly on posix too
9
10 * Release.py: Update revnum (version is still just 0.7.3).
11
12 2006-12-15 Ville Vainio <vivainio@gmail.com>
13
14 * scripts/ipython_win_post_install: create ipython.py in
15 prefix + "/scripts".
16
17 * Release.py: Update version to 0.7.3.
18
19 2006-12-14 Ville Vainio <vivainio@gmail.com>
20
21 * scripts/ipython_win_post_install: Overwrite old shortcuts
22 if they already exist
23
24 * Release.py: release 0.7.3rc2
25
26 2006-12-13 Ville Vainio <vivainio@gmail.com>
27
28 * Branch and update Release.py for 0.7.3rc1
29
1 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
30 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
2
31
3 * IPython/Shell.py (IPShellWX): update for current WX naming
32 * IPython/Shell.py (IPShellWX): update for current WX naming
4 conventions, to avoid a deprecation warning with current WX
33 conventions, to avoid a deprecation warning with current WX
5 versions. Thanks to a report by Danny Shevitz.
34 versions. Thanks to a report by Danny Shevitz.
6
35
7 2006-12-12 Ville Vainio <vivainio@gmail.com>
36 2006-12-12 Ville Vainio <vivainio@gmail.com>
8
37
9 * ipmaker.py: apply david cournapeau's patch to make
38 * ipmaker.py: apply david cournapeau's patch to make
10 import_some work properly even when ipythonrc does
39 import_some work properly even when ipythonrc does
11 import_some on empty list (it was an old bug!).
40 import_some on empty list (it was an old bug!).
12
41
13 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
42 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
14 Add deprecation note to ipythonrc and a url to wiki
43 Add deprecation note to ipythonrc and a url to wiki
15 in ipy_user_conf.py
44 in ipy_user_conf.py
16
45
17
46
18 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
47 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
19 as if it was typed on IPython command prompt, i.e.
48 as if it was typed on IPython command prompt, i.e.
20 as IPython script.
49 as IPython script.
21
50
22 * example-magic.py, magic_grepl.py: remove outdated examples
51 * example-magic.py, magic_grepl.py: remove outdated examples
23
52
24 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
53 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
25
54
26 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
55 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
27 is called before any exception has occurred.
56 is called before any exception has occurred.
28
57
29 2006-12-08 Ville Vainio <vivainio@gmail.com>
58 2006-12-08 Ville Vainio <vivainio@gmail.com>
30
59
31 * Extensions/ipy_stock_completers.py.py: fix cd completer
60 * Extensions/ipy_stock_completers.py.py: fix cd completer
32 to translate /'s to \'s again.
61 to translate /'s to \'s again.
33
62
34 * completer.py: prevent traceback on file completions w/
63 * completer.py: prevent traceback on file completions w/
35 backslash.
64 backslash.
36
65
37 * Release.py: Update release number to 0.7.3b3 for release
66 * Release.py: Update release number to 0.7.3b3 for release
38
67
39 2006-12-07 Ville Vainio <vivainio@gmail.com>
68 2006-12-07 Ville Vainio <vivainio@gmail.com>
40
69
41 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
70 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
42 while executing external code. Provides more shell-like behaviour
71 while executing external code. Provides more shell-like behaviour
43 and overall better response to ctrl + C / ctrl + break.
72 and overall better response to ctrl + C / ctrl + break.
44
73
45 * tools/make_tarball.py: new script to create tarball straight from svn
74 * tools/make_tarball.py: new script to create tarball straight from svn
46 (setup.py sdist doesn't work on win32).
75 (setup.py sdist doesn't work on win32).
47
76
48 * Extensions/ipy_stock_completers.py: fix cd completer to give up
77 * Extensions/ipy_stock_completers.py: fix cd completer to give up
49 on dirnames with spaces and use the default completer instead.
78 on dirnames with spaces and use the default completer instead.
50
79
51 * Revision.py: Change version to 0.7.3b2 for release.
80 * Revision.py: Change version to 0.7.3b2 for release.
52
81
53 2006-12-05 Ville Vainio <vivainio@gmail.com>
82 2006-12-05 Ville Vainio <vivainio@gmail.com>
54
83
55 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
84 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
56 pydb patch 4 (rm debug printing, py 2.5 checking)
85 pydb patch 4 (rm debug printing, py 2.5 checking)
57
86
58 2006-11-30 Walter Doerwald <walter@livinglogic.de>
87 2006-11-30 Walter Doerwald <walter@livinglogic.de>
59 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
88 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
60 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
89 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
61 "refreshfind" (mapped to "R") does the same but tries to go back to the same
90 "refreshfind" (mapped to "R") does the same but tries to go back to the same
62 object the cursor was on before the refresh. The command "markrange" is
91 object the cursor was on before the refresh. The command "markrange" is
63 mapped to "%" now.
92 mapped to "%" now.
64 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
93 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
65
94
66 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
95 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
67
96
68 * IPython/Magic.py (magic_debug): new %debug magic to activate the
97 * IPython/Magic.py (magic_debug): new %debug magic to activate the
69 interactive debugger on the last traceback, without having to call
98 interactive debugger on the last traceback, without having to call
70 %pdb and rerun your code. Made minor changes in various modules,
99 %pdb and rerun your code. Made minor changes in various modules,
71 should automatically recognize pydb if available.
100 should automatically recognize pydb if available.
72
101
73 2006-11-28 Ville Vainio <vivainio@gmail.com>
102 2006-11-28 Ville Vainio <vivainio@gmail.com>
74
103
75 * completer.py: If the text start with !, show file completions
104 * completer.py: If the text start with !, show file completions
76 properly. This helps when trying to complete command name
105 properly. This helps when trying to complete command name
77 for shell escapes.
106 for shell escapes.
78
107
79 2006-11-27 Ville Vainio <vivainio@gmail.com>
108 2006-11-27 Ville Vainio <vivainio@gmail.com>
80
109
81 * ipy_stock_completers.py: bzr completer submitted by Stefan van
110 * ipy_stock_completers.py: bzr completer submitted by Stefan van
82 der Walt. Clean up svn and hg completers by using a common
111 der Walt. Clean up svn and hg completers by using a common
83 vcs_completer.
112 vcs_completer.
84
113
85 2006-11-26 Ville Vainio <vivainio@gmail.com>
114 2006-11-26 Ville Vainio <vivainio@gmail.com>
86
115
87 * Remove ipconfig and %config; you should use _ip.options structure
116 * Remove ipconfig and %config; you should use _ip.options structure
88 directly instead!
117 directly instead!
89
118
90 * genutils.py: add wrap_deprecated function for deprecating callables
119 * genutils.py: add wrap_deprecated function for deprecating callables
91
120
92 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
121 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
93 _ip.system instead. ipalias is redundant.
122 _ip.system instead. ipalias is redundant.
94
123
95 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
124 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
96 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
125 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
97 explicit.
126 explicit.
98
127
99 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
128 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
100 completer. Try it by entering 'hg ' and pressing tab.
129 completer. Try it by entering 'hg ' and pressing tab.
101
130
102 * macro.py: Give Macro a useful __repr__ method
131 * macro.py: Give Macro a useful __repr__ method
103
132
104 * Magic.py: %whos abbreviates the typename of Macro for brevity.
133 * Magic.py: %whos abbreviates the typename of Macro for brevity.
105
134
106 2006-11-24 Walter Doerwald <walter@livinglogic.de>
135 2006-11-24 Walter Doerwald <walter@livinglogic.de>
107 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
136 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
108 we don't get a duplicate ipipe module, where registration of the xrepr
137 we don't get a duplicate ipipe module, where registration of the xrepr
109 implementation for Text is useless.
138 implementation for Text is useless.
110
139
111 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
140 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
112
141
113 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
142 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
114
143
115 2006-11-24 Ville Vainio <vivainio@gmail.com>
144 2006-11-24 Ville Vainio <vivainio@gmail.com>
116
145
117 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
146 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
118 try to use "cProfile" instead of the slower pure python
147 try to use "cProfile" instead of the slower pure python
119 "profile"
148 "profile"
120
149
121 2006-11-23 Ville Vainio <vivainio@gmail.com>
150 2006-11-23 Ville Vainio <vivainio@gmail.com>
122
151
123 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
152 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
124 Qt+IPython+Designer link in documentation.
153 Qt+IPython+Designer link in documentation.
125
154
126 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
155 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
127 correct Pdb object to %pydb.
156 correct Pdb object to %pydb.
128
157
129
158
130 2006-11-22 Walter Doerwald <walter@livinglogic.de>
159 2006-11-22 Walter Doerwald <walter@livinglogic.de>
131 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
160 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
132 generic xrepr(), otherwise the list implementation would kick in.
161 generic xrepr(), otherwise the list implementation would kick in.
133
162
134 2006-11-21 Ville Vainio <vivainio@gmail.com>
163 2006-11-21 Ville Vainio <vivainio@gmail.com>
135
164
136 * upgrade_dir.py: Now actually overwrites a nonmodified user file
165 * upgrade_dir.py: Now actually overwrites a nonmodified user file
137 with one from UserConfig.
166 with one from UserConfig.
138
167
139 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
168 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
140 it was missing which broke the sh profile.
169 it was missing which broke the sh profile.
141
170
142 * completer.py: file completer now uses explicit '/' instead
171 * completer.py: file completer now uses explicit '/' instead
143 of os.path.join, expansion of 'foo' was broken on win32
172 of os.path.join, expansion of 'foo' was broken on win32
144 if there was one directory with name 'foobar'.
173 if there was one directory with name 'foobar'.
145
174
146 * A bunch of patches from Kirill Smelkov:
175 * A bunch of patches from Kirill Smelkov:
147
176
148 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
177 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
149
178
150 * [patch 7/9] Implement %page -r (page in raw mode) -
179 * [patch 7/9] Implement %page -r (page in raw mode) -
151
180
152 * [patch 5/9] ScientificPython webpage has moved
181 * [patch 5/9] ScientificPython webpage has moved
153
182
154 * [patch 4/9] The manual mentions %ds, should be %dhist
183 * [patch 4/9] The manual mentions %ds, should be %dhist
155
184
156 * [patch 3/9] Kill old bits from %prun doc.
185 * [patch 3/9] Kill old bits from %prun doc.
157
186
158 * [patch 1/9] Fix typos here and there.
187 * [patch 1/9] Fix typos here and there.
159
188
160 2006-11-08 Ville Vainio <vivainio@gmail.com>
189 2006-11-08 Ville Vainio <vivainio@gmail.com>
161
190
162 * completer.py (attr_matches): catch all exceptions raised
191 * completer.py (attr_matches): catch all exceptions raised
163 by eval of expr with dots.
192 by eval of expr with dots.
164
193
165 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
194 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
166
195
167 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
196 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
168 input if it starts with whitespace. This allows you to paste
197 input if it starts with whitespace. This allows you to paste
169 indented input from any editor without manually having to type in
198 indented input from any editor without manually having to type in
170 the 'if 1:', which is convenient when working interactively.
199 the 'if 1:', which is convenient when working interactively.
171 Slightly modifed version of a patch by Bo Peng
200 Slightly modifed version of a patch by Bo Peng
172 <bpeng-AT-rice.edu>.
201 <bpeng-AT-rice.edu>.
173
202
174 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
203 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
175
204
176 * IPython/irunner.py (main): modified irunner so it automatically
205 * IPython/irunner.py (main): modified irunner so it automatically
177 recognizes the right runner to use based on the extension (.py for
206 recognizes the right runner to use based on the extension (.py for
178 python, .ipy for ipython and .sage for sage).
207 python, .ipy for ipython and .sage for sage).
179
208
180 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
209 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
181 visible in ipapi as ip.config(), to programatically control the
210 visible in ipapi as ip.config(), to programatically control the
182 internal rc object. There's an accompanying %config magic for
211 internal rc object. There's an accompanying %config magic for
183 interactive use, which has been enhanced to match the
212 interactive use, which has been enhanced to match the
184 funtionality in ipconfig.
213 funtionality in ipconfig.
185
214
186 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
215 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
187 so it's not just a toggle, it now takes an argument. Add support
216 so it's not just a toggle, it now takes an argument. Add support
188 for a customizable header when making system calls, as the new
217 for a customizable header when making system calls, as the new
189 system_header variable in the ipythonrc file.
218 system_header variable in the ipythonrc file.
190
219
191 2006-11-03 Walter Doerwald <walter@livinglogic.de>
220 2006-11-03 Walter Doerwald <walter@livinglogic.de>
192
221
193 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
222 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
194 generic functions (using Philip J. Eby's simplegeneric package).
223 generic functions (using Philip J. Eby's simplegeneric package).
195 This makes it possible to customize the display of third-party classes
224 This makes it possible to customize the display of third-party classes
196 without having to monkeypatch them. xiter() no longer supports a mode
225 without having to monkeypatch them. xiter() no longer supports a mode
197 argument and the XMode class has been removed. The same functionality can
226 argument and the XMode class has been removed. The same functionality can
198 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
227 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
199 One consequence of the switch to generic functions is that xrepr() and
228 One consequence of the switch to generic functions is that xrepr() and
200 xattrs() implementation must define the default value for the mode
229 xattrs() implementation must define the default value for the mode
201 argument themselves and xattrs() implementations must return real
230 argument themselves and xattrs() implementations must return real
202 descriptors.
231 descriptors.
203
232
204 * IPython/external: This new subpackage will contain all third-party
233 * IPython/external: This new subpackage will contain all third-party
205 packages that are bundled with IPython. (The first one is simplegeneric).
234 packages that are bundled with IPython. (The first one is simplegeneric).
206
235
207 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
236 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
208 directory which as been dropped in r1703.
237 directory which as been dropped in r1703.
209
238
210 * IPython/Extensions/ipipe.py (iless): Fixed.
239 * IPython/Extensions/ipipe.py (iless): Fixed.
211
240
212 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
241 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
213
242
214 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
243 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
215
244
216 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
245 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
217 handling in variable expansion so that shells and magics recognize
246 handling in variable expansion so that shells and magics recognize
218 function local scopes correctly. Bug reported by Brian.
247 function local scopes correctly. Bug reported by Brian.
219
248
220 * scripts/ipython: remove the very first entry in sys.path which
249 * scripts/ipython: remove the very first entry in sys.path which
221 Python auto-inserts for scripts, so that sys.path under IPython is
250 Python auto-inserts for scripts, so that sys.path under IPython is
222 as similar as possible to that under plain Python.
251 as similar as possible to that under plain Python.
223
252
224 * IPython/completer.py (IPCompleter.file_matches): Fix
253 * IPython/completer.py (IPCompleter.file_matches): Fix
225 tab-completion so that quotes are not closed unless the completion
254 tab-completion so that quotes are not closed unless the completion
226 is unambiguous. After a request by Stefan. Minor cleanups in
255 is unambiguous. After a request by Stefan. Minor cleanups in
227 ipy_stock_completers.
256 ipy_stock_completers.
228
257
229 2006-11-02 Ville Vainio <vivainio@gmail.com>
258 2006-11-02 Ville Vainio <vivainio@gmail.com>
230
259
231 * ipy_stock_completers.py: Add %run and %cd completers.
260 * ipy_stock_completers.py: Add %run and %cd completers.
232
261
233 * completer.py: Try running custom completer for both
262 * completer.py: Try running custom completer for both
234 "foo" and "%foo" if the command is just "foo". Ignore case
263 "foo" and "%foo" if the command is just "foo". Ignore case
235 when filtering possible completions.
264 when filtering possible completions.
236
265
237 * UserConfig/ipy_user_conf.py: install stock completers as default
266 * UserConfig/ipy_user_conf.py: install stock completers as default
238
267
239 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
268 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
240 simplified readline history save / restore through a wrapper
269 simplified readline history save / restore through a wrapper
241 function
270 function
242
271
243
272
244 2006-10-31 Ville Vainio <vivainio@gmail.com>
273 2006-10-31 Ville Vainio <vivainio@gmail.com>
245
274
246 * strdispatch.py, completer.py, ipy_stock_completers.py:
275 * strdispatch.py, completer.py, ipy_stock_completers.py:
247 Allow str_key ("command") in completer hooks. Implement
276 Allow str_key ("command") in completer hooks. Implement
248 trivial completer for 'import' (stdlib modules only). Rename
277 trivial completer for 'import' (stdlib modules only). Rename
249 ipy_linux_package_managers.py to ipy_stock_completers.py.
278 ipy_linux_package_managers.py to ipy_stock_completers.py.
250 SVN completer.
279 SVN completer.
251
280
252 * Extensions/ledit.py: %magic line editor for easily and
281 * Extensions/ledit.py: %magic line editor for easily and
253 incrementally manipulating lists of strings. The magic command
282 incrementally manipulating lists of strings. The magic command
254 name is %led.
283 name is %led.
255
284
256 2006-10-30 Ville Vainio <vivainio@gmail.com>
285 2006-10-30 Ville Vainio <vivainio@gmail.com>
257
286
258 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
287 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
259 Bernsteins's patches for pydb integration.
288 Bernsteins's patches for pydb integration.
260 http://bashdb.sourceforge.net/pydb/
289 http://bashdb.sourceforge.net/pydb/
261
290
262 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
291 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
263 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
292 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
264 custom completer hook to allow the users to implement their own
293 custom completer hook to allow the users to implement their own
265 completers. See ipy_linux_package_managers.py for example. The
294 completers. See ipy_linux_package_managers.py for example. The
266 hook name is 'complete_command'.
295 hook name is 'complete_command'.
267
296
268 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
297 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
269
298
270 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
299 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
271 Numeric leftovers.
300 Numeric leftovers.
272
301
273 * ipython.el (py-execute-region): apply Stefan's patch to fix
302 * ipython.el (py-execute-region): apply Stefan's patch to fix
274 garbled results if the python shell hasn't been previously started.
303 garbled results if the python shell hasn't been previously started.
275
304
276 * IPython/genutils.py (arg_split): moved to genutils, since it's a
305 * IPython/genutils.py (arg_split): moved to genutils, since it's a
277 pretty generic function and useful for other things.
306 pretty generic function and useful for other things.
278
307
279 * IPython/OInspect.py (getsource): Add customizable source
308 * IPython/OInspect.py (getsource): Add customizable source
280 extractor. After a request/patch form W. Stein (SAGE).
309 extractor. After a request/patch form W. Stein (SAGE).
281
310
282 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
311 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
283 window size to a more reasonable value from what pexpect does,
312 window size to a more reasonable value from what pexpect does,
284 since their choice causes wrapping bugs with long input lines.
313 since their choice causes wrapping bugs with long input lines.
285
314
286 2006-10-28 Ville Vainio <vivainio@gmail.com>
315 2006-10-28 Ville Vainio <vivainio@gmail.com>
287
316
288 * Magic.py (%run): Save and restore the readline history from
317 * Magic.py (%run): Save and restore the readline history from
289 file around %run commands to prevent side effects from
318 file around %run commands to prevent side effects from
290 %runned programs that might use readline (e.g. pydb).
319 %runned programs that might use readline (e.g. pydb).
291
320
292 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
321 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
293 invoking the pydb enhanced debugger.
322 invoking the pydb enhanced debugger.
294
323
295 2006-10-23 Walter Doerwald <walter@livinglogic.de>
324 2006-10-23 Walter Doerwald <walter@livinglogic.de>
296
325
297 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
326 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
298 call the base class method and propagate the return value to
327 call the base class method and propagate the return value to
299 ifile. This is now done by path itself.
328 ifile. This is now done by path itself.
300
329
301 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
330 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
302
331
303 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
332 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
304 api: set_crash_handler(), to expose the ability to change the
333 api: set_crash_handler(), to expose the ability to change the
305 internal crash handler.
334 internal crash handler.
306
335
307 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
336 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
308 the various parameters of the crash handler so that apps using
337 the various parameters of the crash handler so that apps using
309 IPython as their engine can customize crash handling. Ipmlemented
338 IPython as their engine can customize crash handling. Ipmlemented
310 at the request of SAGE.
339 at the request of SAGE.
311
340
312 2006-10-14 Ville Vainio <vivainio@gmail.com>
341 2006-10-14 Ville Vainio <vivainio@gmail.com>
313
342
314 * Magic.py, ipython.el: applied first "safe" part of Rocky
343 * Magic.py, ipython.el: applied first "safe" part of Rocky
315 Bernstein's patch set for pydb integration.
344 Bernstein's patch set for pydb integration.
316
345
317 * Magic.py (%unalias, %alias): %store'd aliases can now be
346 * Magic.py (%unalias, %alias): %store'd aliases can now be
318 removed with '%unalias'. %alias w/o args now shows most
347 removed with '%unalias'. %alias w/o args now shows most
319 interesting (stored / manually defined) aliases last
348 interesting (stored / manually defined) aliases last
320 where they catch the eye w/o scrolling.
349 where they catch the eye w/o scrolling.
321
350
322 * Magic.py (%rehashx), ext_rehashdir.py: files with
351 * Magic.py (%rehashx), ext_rehashdir.py: files with
323 'py' extension are always considered executable, even
352 'py' extension are always considered executable, even
324 when not in PATHEXT environment variable.
353 when not in PATHEXT environment variable.
325
354
326 2006-10-12 Ville Vainio <vivainio@gmail.com>
355 2006-10-12 Ville Vainio <vivainio@gmail.com>
327
356
328 * jobctrl.py: Add new "jobctrl" extension for spawning background
357 * jobctrl.py: Add new "jobctrl" extension for spawning background
329 processes with "&find /". 'import jobctrl' to try it out. Requires
358 processes with "&find /". 'import jobctrl' to try it out. Requires
330 'subprocess' module, standard in python 2.4+.
359 'subprocess' module, standard in python 2.4+.
331
360
332 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
361 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
333 so if foo -> bar and bar -> baz, then foo -> baz.
362 so if foo -> bar and bar -> baz, then foo -> baz.
334
363
335 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
364 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
336
365
337 * IPython/Magic.py (Magic.parse_options): add a new posix option
366 * IPython/Magic.py (Magic.parse_options): add a new posix option
338 to allow parsing of input args in magics that doesn't strip quotes
367 to allow parsing of input args in magics that doesn't strip quotes
339 (if posix=False). This also closes %timeit bug reported by
368 (if posix=False). This also closes %timeit bug reported by
340 Stefan.
369 Stefan.
341
370
342 2006-10-03 Ville Vainio <vivainio@gmail.com>
371 2006-10-03 Ville Vainio <vivainio@gmail.com>
343
372
344 * iplib.py (raw_input, interact): Return ValueError catching for
373 * iplib.py (raw_input, interact): Return ValueError catching for
345 raw_input. Fixes infinite loop for sys.stdin.close() or
374 raw_input. Fixes infinite loop for sys.stdin.close() or
346 sys.stdout.close().
375 sys.stdout.close().
347
376
348 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
377 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
349
378
350 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
379 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
351 to help in handling doctests. irunner is now pretty useful for
380 to help in handling doctests. irunner is now pretty useful for
352 running standalone scripts and simulate a full interactive session
381 running standalone scripts and simulate a full interactive session
353 in a format that can be then pasted as a doctest.
382 in a format that can be then pasted as a doctest.
354
383
355 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
384 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
356 on top of the default (useless) ones. This also fixes the nasty
385 on top of the default (useless) ones. This also fixes the nasty
357 way in which 2.5's Quitter() exits (reverted [1785]).
386 way in which 2.5's Quitter() exits (reverted [1785]).
358
387
359 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
388 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
360 2.5.
389 2.5.
361
390
362 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
391 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
363 color scheme is updated as well when color scheme is changed
392 color scheme is updated as well when color scheme is changed
364 interactively.
393 interactively.
365
394
366 2006-09-27 Ville Vainio <vivainio@gmail.com>
395 2006-09-27 Ville Vainio <vivainio@gmail.com>
367
396
368 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
397 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
369 infinite loop and just exit. It's a hack, but will do for a while.
398 infinite loop and just exit. It's a hack, but will do for a while.
370
399
371 2006-08-25 Walter Doerwald <walter@livinglogic.de>
400 2006-08-25 Walter Doerwald <walter@livinglogic.de>
372
401
373 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
402 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
374 the constructor, this makes it possible to get a list of only directories
403 the constructor, this makes it possible to get a list of only directories
375 or only files.
404 or only files.
376
405
377 2006-08-12 Ville Vainio <vivainio@gmail.com>
406 2006-08-12 Ville Vainio <vivainio@gmail.com>
378
407
379 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
408 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
380 they broke unittest
409 they broke unittest
381
410
382 2006-08-11 Ville Vainio <vivainio@gmail.com>
411 2006-08-11 Ville Vainio <vivainio@gmail.com>
383
412
384 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
413 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
385 by resolving issue properly, i.e. by inheriting FakeModule
414 by resolving issue properly, i.e. by inheriting FakeModule
386 from types.ModuleType. Pickling ipython interactive data
415 from types.ModuleType. Pickling ipython interactive data
387 should still work as usual (testing appreciated).
416 should still work as usual (testing appreciated).
388
417
389 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
418 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
390
419
391 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
420 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
392 running under python 2.3 with code from 2.4 to fix a bug with
421 running under python 2.3 with code from 2.4 to fix a bug with
393 help(). Reported by the Debian maintainers, Norbert Tretkowski
422 help(). Reported by the Debian maintainers, Norbert Tretkowski
394 <norbert-AT-tretkowski.de> and Alexandre Fayolle
423 <norbert-AT-tretkowski.de> and Alexandre Fayolle
395 <afayolle-AT-debian.org>.
424 <afayolle-AT-debian.org>.
396
425
397 2006-08-04 Walter Doerwald <walter@livinglogic.de>
426 2006-08-04 Walter Doerwald <walter@livinglogic.de>
398
427
399 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
428 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
400 (which was displaying "quit" twice).
429 (which was displaying "quit" twice).
401
430
402 2006-07-28 Walter Doerwald <walter@livinglogic.de>
431 2006-07-28 Walter Doerwald <walter@livinglogic.de>
403
432
404 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
433 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
405 the mode argument).
434 the mode argument).
406
435
407 2006-07-27 Walter Doerwald <walter@livinglogic.de>
436 2006-07-27 Walter Doerwald <walter@livinglogic.de>
408
437
409 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
438 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
410 not running under IPython.
439 not running under IPython.
411
440
412 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
441 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
413 and make it iterable (iterating over the attribute itself). Add two new
442 and make it iterable (iterating over the attribute itself). Add two new
414 magic strings for __xattrs__(): If the string starts with "-", the attribute
443 magic strings for __xattrs__(): If the string starts with "-", the attribute
415 will not be displayed in ibrowse's detail view (but it can still be
444 will not be displayed in ibrowse's detail view (but it can still be
416 iterated over). This makes it possible to add attributes that are large
445 iterated over). This makes it possible to add attributes that are large
417 lists or generator methods to the detail view. Replace magic attribute names
446 lists or generator methods to the detail view. Replace magic attribute names
418 and _attrname() and _getattr() with "descriptors": For each type of magic
447 and _attrname() and _getattr() with "descriptors": For each type of magic
419 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
448 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
420 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
449 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
421 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
450 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
422 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
451 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
423 are still supported.
452 are still supported.
424
453
425 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
454 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
426 fails in ibrowse.fetch(), the exception object is added as the last item
455 fails in ibrowse.fetch(), the exception object is added as the last item
427 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
456 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
428 a generator throws an exception midway through execution.
457 a generator throws an exception midway through execution.
429
458
430 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
459 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
431 encoding into methods.
460 encoding into methods.
432
461
433 2006-07-26 Ville Vainio <vivainio@gmail.com>
462 2006-07-26 Ville Vainio <vivainio@gmail.com>
434
463
435 * iplib.py: history now stores multiline input as single
464 * iplib.py: history now stores multiline input as single
436 history entries. Patch by Jorgen Cederlof.
465 history entries. Patch by Jorgen Cederlof.
437
466
438 2006-07-18 Walter Doerwald <walter@livinglogic.de>
467 2006-07-18 Walter Doerwald <walter@livinglogic.de>
439
468
440 * IPython/Extensions/ibrowse.py: Make cursor visible over
469 * IPython/Extensions/ibrowse.py: Make cursor visible over
441 non existing attributes.
470 non existing attributes.
442
471
443 2006-07-14 Walter Doerwald <walter@livinglogic.de>
472 2006-07-14 Walter Doerwald <walter@livinglogic.de>
444
473
445 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
474 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
446 error output of the running command doesn't mess up the screen.
475 error output of the running command doesn't mess up the screen.
447
476
448 2006-07-13 Walter Doerwald <walter@livinglogic.de>
477 2006-07-13 Walter Doerwald <walter@livinglogic.de>
449
478
450 * IPython/Extensions/ipipe.py (isort): Make isort usable without
479 * IPython/Extensions/ipipe.py (isort): Make isort usable without
451 argument. This sorts the items themselves.
480 argument. This sorts the items themselves.
452
481
453 2006-07-12 Walter Doerwald <walter@livinglogic.de>
482 2006-07-12 Walter Doerwald <walter@livinglogic.de>
454
483
455 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
484 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
456 Compile expression strings into code objects. This should speed
485 Compile expression strings into code objects. This should speed
457 up ifilter and friends somewhat.
486 up ifilter and friends somewhat.
458
487
459 2006-07-08 Ville Vainio <vivainio@gmail.com>
488 2006-07-08 Ville Vainio <vivainio@gmail.com>
460
489
461 * Magic.py: %cpaste now strips > from the beginning of lines
490 * Magic.py: %cpaste now strips > from the beginning of lines
462 to ease pasting quoted code from emails. Contributed by
491 to ease pasting quoted code from emails. Contributed by
463 Stefan van der Walt.
492 Stefan van der Walt.
464
493
465 2006-06-29 Ville Vainio <vivainio@gmail.com>
494 2006-06-29 Ville Vainio <vivainio@gmail.com>
466
495
467 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
496 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
468 mode, patch contributed by Darren Dale. NEEDS TESTING!
497 mode, patch contributed by Darren Dale. NEEDS TESTING!
469
498
470 2006-06-28 Walter Doerwald <walter@livinglogic.de>
499 2006-06-28 Walter Doerwald <walter@livinglogic.de>
471
500
472 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
501 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
473 a blue background. Fix fetching new display rows when the browser
502 a blue background. Fix fetching new display rows when the browser
474 scrolls more than a screenful (e.g. by using the goto command).
503 scrolls more than a screenful (e.g. by using the goto command).
475
504
476 2006-06-27 Ville Vainio <vivainio@gmail.com>
505 2006-06-27 Ville Vainio <vivainio@gmail.com>
477
506
478 * Magic.py (_inspect, _ofind) Apply David Huard's
507 * Magic.py (_inspect, _ofind) Apply David Huard's
479 patch for displaying the correct docstring for 'property'
508 patch for displaying the correct docstring for 'property'
480 attributes.
509 attributes.
481
510
482 2006-06-23 Walter Doerwald <walter@livinglogic.de>
511 2006-06-23 Walter Doerwald <walter@livinglogic.de>
483
512
484 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
513 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
485 commands into the methods implementing them.
514 commands into the methods implementing them.
486
515
487 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
516 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
488
517
489 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
518 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
490 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
519 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
491 autoindent support was authored by Jin Liu.
520 autoindent support was authored by Jin Liu.
492
521
493 2006-06-22 Walter Doerwald <walter@livinglogic.de>
522 2006-06-22 Walter Doerwald <walter@livinglogic.de>
494
523
495 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
524 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
496 for keymaps with a custom class that simplifies handling.
525 for keymaps with a custom class that simplifies handling.
497
526
498 2006-06-19 Walter Doerwald <walter@livinglogic.de>
527 2006-06-19 Walter Doerwald <walter@livinglogic.de>
499
528
500 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
529 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
501 resizing. This requires Python 2.5 to work.
530 resizing. This requires Python 2.5 to work.
502
531
503 2006-06-16 Walter Doerwald <walter@livinglogic.de>
532 2006-06-16 Walter Doerwald <walter@livinglogic.de>
504
533
505 * IPython/Extensions/ibrowse.py: Add two new commands to
534 * IPython/Extensions/ibrowse.py: Add two new commands to
506 ibrowse: "hideattr" (mapped to "h") hides the attribute under
535 ibrowse: "hideattr" (mapped to "h") hides the attribute under
507 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
536 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
508 attributes again. Remapped the help command to "?". Display
537 attributes again. Remapped the help command to "?". Display
509 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
538 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
510 as keys for the "home" and "end" commands. Add three new commands
539 as keys for the "home" and "end" commands. Add three new commands
511 to the input mode for "find" and friends: "delend" (CTRL-K)
540 to the input mode for "find" and friends: "delend" (CTRL-K)
512 deletes to the end of line. "incsearchup" searches upwards in the
541 deletes to the end of line. "incsearchup" searches upwards in the
513 command history for an input that starts with the text before the cursor.
542 command history for an input that starts with the text before the cursor.
514 "incsearchdown" does the same downwards. Removed a bogus mapping of
543 "incsearchdown" does the same downwards. Removed a bogus mapping of
515 the x key to "delete".
544 the x key to "delete".
516
545
517 2006-06-15 Ville Vainio <vivainio@gmail.com>
546 2006-06-15 Ville Vainio <vivainio@gmail.com>
518
547
519 * iplib.py, hooks.py: Added new generate_prompt hook that can be
548 * iplib.py, hooks.py: Added new generate_prompt hook that can be
520 used to create prompts dynamically, instead of the "old" way of
549 used to create prompts dynamically, instead of the "old" way of
521 assigning "magic" strings to prompt_in1 and prompt_in2. The old
550 assigning "magic" strings to prompt_in1 and prompt_in2. The old
522 way still works (it's invoked by the default hook), of course.
551 way still works (it's invoked by the default hook), of course.
523
552
524 * Prompts.py: added generate_output_prompt hook for altering output
553 * Prompts.py: added generate_output_prompt hook for altering output
525 prompt
554 prompt
526
555
527 * Release.py: Changed version string to 0.7.3.svn.
556 * Release.py: Changed version string to 0.7.3.svn.
528
557
529 2006-06-15 Walter Doerwald <walter@livinglogic.de>
558 2006-06-15 Walter Doerwald <walter@livinglogic.de>
530
559
531 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
560 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
532 the call to fetch() always tries to fetch enough data for at least one
561 the call to fetch() always tries to fetch enough data for at least one
533 full screen. This makes it possible to simply call moveto(0,0,True) in
562 full screen. This makes it possible to simply call moveto(0,0,True) in
534 the constructor. Fix typos and removed the obsolete goto attribute.
563 the constructor. Fix typos and removed the obsolete goto attribute.
535
564
536 2006-06-12 Ville Vainio <vivainio@gmail.com>
565 2006-06-12 Ville Vainio <vivainio@gmail.com>
537
566
538 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
567 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
539 allowing $variable interpolation within multiline statements,
568 allowing $variable interpolation within multiline statements,
540 though so far only with "sh" profile for a testing period.
569 though so far only with "sh" profile for a testing period.
541 The patch also enables splitting long commands with \ but it
570 The patch also enables splitting long commands with \ but it
542 doesn't work properly yet.
571 doesn't work properly yet.
543
572
544 2006-06-12 Walter Doerwald <walter@livinglogic.de>
573 2006-06-12 Walter Doerwald <walter@livinglogic.de>
545
574
546 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
575 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
547 input history and the position of the cursor in the input history for
576 input history and the position of the cursor in the input history for
548 the find, findbackwards and goto command.
577 the find, findbackwards and goto command.
549
578
550 2006-06-10 Walter Doerwald <walter@livinglogic.de>
579 2006-06-10 Walter Doerwald <walter@livinglogic.de>
551
580
552 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
581 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
553 implements the basic functionality of browser commands that require
582 implements the basic functionality of browser commands that require
554 input. Reimplement the goto, find and findbackwards commands as
583 input. Reimplement the goto, find and findbackwards commands as
555 subclasses of _CommandInput. Add an input history and keymaps to those
584 subclasses of _CommandInput. Add an input history and keymaps to those
556 commands. Add "\r" as a keyboard shortcut for the enterdefault and
585 commands. Add "\r" as a keyboard shortcut for the enterdefault and
557 execute commands.
586 execute commands.
558
587
559 2006-06-07 Ville Vainio <vivainio@gmail.com>
588 2006-06-07 Ville Vainio <vivainio@gmail.com>
560
589
561 * iplib.py: ipython mybatch.ipy exits ipython immediately after
590 * iplib.py: ipython mybatch.ipy exits ipython immediately after
562 running the batch files instead of leaving the session open.
591 running the batch files instead of leaving the session open.
563
592
564 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
593 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
565
594
566 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
595 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
567 the original fix was incomplete. Patch submitted by W. Maier.
596 the original fix was incomplete. Patch submitted by W. Maier.
568
597
569 2006-06-07 Ville Vainio <vivainio@gmail.com>
598 2006-06-07 Ville Vainio <vivainio@gmail.com>
570
599
571 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
600 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
572 Confirmation prompts can be supressed by 'quiet' option.
601 Confirmation prompts can be supressed by 'quiet' option.
573 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
602 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
574
603
575 2006-06-06 *** Released version 0.7.2
604 2006-06-06 *** Released version 0.7.2
576
605
577 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
606 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
578
607
579 * IPython/Release.py (version): Made 0.7.2 final for release.
608 * IPython/Release.py (version): Made 0.7.2 final for release.
580 Repo tagged and release cut.
609 Repo tagged and release cut.
581
610
582 2006-06-05 Ville Vainio <vivainio@gmail.com>
611 2006-06-05 Ville Vainio <vivainio@gmail.com>
583
612
584 * Magic.py (magic_rehashx): Honor no_alias list earlier in
613 * Magic.py (magic_rehashx): Honor no_alias list earlier in
585 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
614 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
586
615
587 * upgrade_dir.py: try import 'path' module a bit harder
616 * upgrade_dir.py: try import 'path' module a bit harder
588 (for %upgrade)
617 (for %upgrade)
589
618
590 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
619 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
591
620
592 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
621 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
593 instead of looping 20 times.
622 instead of looping 20 times.
594
623
595 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
624 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
596 correctly at initialization time. Bug reported by Krishna Mohan
625 correctly at initialization time. Bug reported by Krishna Mohan
597 Gundu <gkmohan-AT-gmail.com> on the user list.
626 Gundu <gkmohan-AT-gmail.com> on the user list.
598
627
599 * IPython/Release.py (version): Mark 0.7.2 version to start
628 * IPython/Release.py (version): Mark 0.7.2 version to start
600 testing for release on 06/06.
629 testing for release on 06/06.
601
630
602 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
631 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
603
632
604 * scripts/irunner: thin script interface so users don't have to
633 * scripts/irunner: thin script interface so users don't have to
605 find the module and call it as an executable, since modules rarely
634 find the module and call it as an executable, since modules rarely
606 live in people's PATH.
635 live in people's PATH.
607
636
608 * IPython/irunner.py (InteractiveRunner.__init__): added
637 * IPython/irunner.py (InteractiveRunner.__init__): added
609 delaybeforesend attribute to control delays with newer versions of
638 delaybeforesend attribute to control delays with newer versions of
610 pexpect. Thanks to detailed help from pexpect's author, Noah
639 pexpect. Thanks to detailed help from pexpect's author, Noah
611 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
640 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
612 correctly (it works in NoColor mode).
641 correctly (it works in NoColor mode).
613
642
614 * IPython/iplib.py (handle_normal): fix nasty crash reported on
643 * IPython/iplib.py (handle_normal): fix nasty crash reported on
615 SAGE list, from improper log() calls.
644 SAGE list, from improper log() calls.
616
645
617 2006-05-31 Ville Vainio <vivainio@gmail.com>
646 2006-05-31 Ville Vainio <vivainio@gmail.com>
618
647
619 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
648 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
620 with args in parens to work correctly with dirs that have spaces.
649 with args in parens to work correctly with dirs that have spaces.
621
650
622 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
651 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
623
652
624 * IPython/Logger.py (Logger.logstart): add option to log raw input
653 * IPython/Logger.py (Logger.logstart): add option to log raw input
625 instead of the processed one. A -r flag was added to the
654 instead of the processed one. A -r flag was added to the
626 %logstart magic used for controlling logging.
655 %logstart magic used for controlling logging.
627
656
628 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
657 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
629
658
630 * IPython/iplib.py (InteractiveShell.__init__): add check for the
659 * IPython/iplib.py (InteractiveShell.__init__): add check for the
631 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
660 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
632 recognize the option. After a bug report by Will Maier. This
661 recognize the option. After a bug report by Will Maier. This
633 closes #64 (will do it after confirmation from W. Maier).
662 closes #64 (will do it after confirmation from W. Maier).
634
663
635 * IPython/irunner.py: New module to run scripts as if manually
664 * IPython/irunner.py: New module to run scripts as if manually
636 typed into an interactive environment, based on pexpect. After a
665 typed into an interactive environment, based on pexpect. After a
637 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
666 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
638 ipython-user list. Simple unittests in the tests/ directory.
667 ipython-user list. Simple unittests in the tests/ directory.
639
668
640 * tools/release: add Will Maier, OpenBSD port maintainer, to
669 * tools/release: add Will Maier, OpenBSD port maintainer, to
641 recepients list. We are now officially part of the OpenBSD ports:
670 recepients list. We are now officially part of the OpenBSD ports:
642 http://www.openbsd.org/ports.html ! Many thanks to Will for the
671 http://www.openbsd.org/ports.html ! Many thanks to Will for the
643 work.
672 work.
644
673
645 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
674 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
646
675
647 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
676 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
648 so that it doesn't break tkinter apps.
677 so that it doesn't break tkinter apps.
649
678
650 * IPython/iplib.py (_prefilter): fix bug where aliases would
679 * IPython/iplib.py (_prefilter): fix bug where aliases would
651 shadow variables when autocall was fully off. Reported by SAGE
680 shadow variables when autocall was fully off. Reported by SAGE
652 author William Stein.
681 author William Stein.
653
682
654 * IPython/OInspect.py (Inspector.__init__): add a flag to control
683 * IPython/OInspect.py (Inspector.__init__): add a flag to control
655 at what detail level strings are computed when foo? is requested.
684 at what detail level strings are computed when foo? is requested.
656 This allows users to ask for example that the string form of an
685 This allows users to ask for example that the string form of an
657 object is only computed when foo?? is called, or even never, by
686 object is only computed when foo?? is called, or even never, by
658 setting the object_info_string_level >= 2 in the configuration
687 setting the object_info_string_level >= 2 in the configuration
659 file. This new option has been added and documented. After a
688 file. This new option has been added and documented. After a
660 request by SAGE to be able to control the printing of very large
689 request by SAGE to be able to control the printing of very large
661 objects more easily.
690 objects more easily.
662
691
663 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
692 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
664
693
665 * IPython/ipmaker.py (make_IPython): remove the ipython call path
694 * IPython/ipmaker.py (make_IPython): remove the ipython call path
666 from sys.argv, to be 100% consistent with how Python itself works
695 from sys.argv, to be 100% consistent with how Python itself works
667 (as seen for example with python -i file.py). After a bug report
696 (as seen for example with python -i file.py). After a bug report
668 by Jeffrey Collins.
697 by Jeffrey Collins.
669
698
670 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
699 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
671 nasty bug which was preventing custom namespaces with -pylab,
700 nasty bug which was preventing custom namespaces with -pylab,
672 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
701 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
673 compatibility (long gone from mpl).
702 compatibility (long gone from mpl).
674
703
675 * IPython/ipapi.py (make_session): name change: create->make. We
704 * IPython/ipapi.py (make_session): name change: create->make. We
676 use make in other places (ipmaker,...), it's shorter and easier to
705 use make in other places (ipmaker,...), it's shorter and easier to
677 type and say, etc. I'm trying to clean things before 0.7.2 so
706 type and say, etc. I'm trying to clean things before 0.7.2 so
678 that I can keep things stable wrt to ipapi in the chainsaw branch.
707 that I can keep things stable wrt to ipapi in the chainsaw branch.
679
708
680 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
709 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
681 python-mode recognizes our debugger mode. Add support for
710 python-mode recognizes our debugger mode. Add support for
682 autoindent inside (X)emacs. After a patch sent in by Jin Liu
711 autoindent inside (X)emacs. After a patch sent in by Jin Liu
683 <m.liu.jin-AT-gmail.com> originally written by
712 <m.liu.jin-AT-gmail.com> originally written by
684 doxgen-AT-newsmth.net (with minor modifications for xemacs
713 doxgen-AT-newsmth.net (with minor modifications for xemacs
685 compatibility)
714 compatibility)
686
715
687 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
716 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
688 tracebacks when walking the stack so that the stack tracking system
717 tracebacks when walking the stack so that the stack tracking system
689 in emacs' python-mode can identify the frames correctly.
718 in emacs' python-mode can identify the frames correctly.
690
719
691 * IPython/ipmaker.py (make_IPython): make the internal (and
720 * IPython/ipmaker.py (make_IPython): make the internal (and
692 default config) autoedit_syntax value false by default. Too many
721 default config) autoedit_syntax value false by default. Too many
693 users have complained to me (both on and off-list) about problems
722 users have complained to me (both on and off-list) about problems
694 with this option being on by default, so I'm making it default to
723 with this option being on by default, so I'm making it default to
695 off. It can still be enabled by anyone via the usual mechanisms.
724 off. It can still be enabled by anyone via the usual mechanisms.
696
725
697 * IPython/completer.py (Completer.attr_matches): add support for
726 * IPython/completer.py (Completer.attr_matches): add support for
698 PyCrust-style _getAttributeNames magic method. Patch contributed
727 PyCrust-style _getAttributeNames magic method. Patch contributed
699 by <mscott-AT-goldenspud.com>. Closes #50.
728 by <mscott-AT-goldenspud.com>. Closes #50.
700
729
701 * IPython/iplib.py (InteractiveShell.__init__): remove the
730 * IPython/iplib.py (InteractiveShell.__init__): remove the
702 deletion of exit/quit from __builtin__, which can break
731 deletion of exit/quit from __builtin__, which can break
703 third-party tools like the Zope debugging console. The
732 third-party tools like the Zope debugging console. The
704 %exit/%quit magics remain. In general, it's probably a good idea
733 %exit/%quit magics remain. In general, it's probably a good idea
705 not to delete anything from __builtin__, since we never know what
734 not to delete anything from __builtin__, since we never know what
706 that will break. In any case, python now (for 2.5) will support
735 that will break. In any case, python now (for 2.5) will support
707 'real' exit/quit, so this issue is moot. Closes #55.
736 'real' exit/quit, so this issue is moot. Closes #55.
708
737
709 * IPython/genutils.py (with_obj): rename the 'with' function to
738 * IPython/genutils.py (with_obj): rename the 'with' function to
710 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
739 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
711 becomes a language keyword. Closes #53.
740 becomes a language keyword. Closes #53.
712
741
713 * IPython/FakeModule.py (FakeModule.__init__): add a proper
742 * IPython/FakeModule.py (FakeModule.__init__): add a proper
714 __file__ attribute to this so it fools more things into thinking
743 __file__ attribute to this so it fools more things into thinking
715 it is a real module. Closes #59.
744 it is a real module. Closes #59.
716
745
717 * IPython/Magic.py (magic_edit): add -n option to open the editor
746 * IPython/Magic.py (magic_edit): add -n option to open the editor
718 at a specific line number. After a patch by Stefan van der Walt.
747 at a specific line number. After a patch by Stefan van der Walt.
719
748
720 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
749 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
721
750
722 * IPython/iplib.py (edit_syntax_error): fix crash when for some
751 * IPython/iplib.py (edit_syntax_error): fix crash when for some
723 reason the file could not be opened. After automatic crash
752 reason the file could not be opened. After automatic crash
724 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
753 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
725 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
754 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
726 (_should_recompile): Don't fire editor if using %bg, since there
755 (_should_recompile): Don't fire editor if using %bg, since there
727 is no file in the first place. From the same report as above.
756 is no file in the first place. From the same report as above.
728 (raw_input): protect against faulty third-party prefilters. After
757 (raw_input): protect against faulty third-party prefilters. After
729 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
758 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
730 while running under SAGE.
759 while running under SAGE.
731
760
732 2006-05-23 Ville Vainio <vivainio@gmail.com>
761 2006-05-23 Ville Vainio <vivainio@gmail.com>
733
762
734 * ipapi.py: Stripped down ip.to_user_ns() to work only as
763 * ipapi.py: Stripped down ip.to_user_ns() to work only as
735 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
764 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
736 now returns None (again), unless dummy is specifically allowed by
765 now returns None (again), unless dummy is specifically allowed by
737 ipapi.get(allow_dummy=True).
766 ipapi.get(allow_dummy=True).
738
767
739 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
768 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
740
769
741 * IPython: remove all 2.2-compatibility objects and hacks from
770 * IPython: remove all 2.2-compatibility objects and hacks from
742 everywhere, since we only support 2.3 at this point. Docs
771 everywhere, since we only support 2.3 at this point. Docs
743 updated.
772 updated.
744
773
745 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
774 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
746 Anything requiring extra validation can be turned into a Python
775 Anything requiring extra validation can be turned into a Python
747 property in the future. I used a property for the db one b/c
776 property in the future. I used a property for the db one b/c
748 there was a nasty circularity problem with the initialization
777 there was a nasty circularity problem with the initialization
749 order, which right now I don't have time to clean up.
778 order, which right now I don't have time to clean up.
750
779
751 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
780 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
752 another locking bug reported by Jorgen. I'm not 100% sure though,
781 another locking bug reported by Jorgen. I'm not 100% sure though,
753 so more testing is needed...
782 so more testing is needed...
754
783
755 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
784 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
756
785
757 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
786 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
758 local variables from any routine in user code (typically executed
787 local variables from any routine in user code (typically executed
759 with %run) directly into the interactive namespace. Very useful
788 with %run) directly into the interactive namespace. Very useful
760 when doing complex debugging.
789 when doing complex debugging.
761 (IPythonNotRunning): Changed the default None object to a dummy
790 (IPythonNotRunning): Changed the default None object to a dummy
762 whose attributes can be queried as well as called without
791 whose attributes can be queried as well as called without
763 exploding, to ease writing code which works transparently both in
792 exploding, to ease writing code which works transparently both in
764 and out of ipython and uses some of this API.
793 and out of ipython and uses some of this API.
765
794
766 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
795 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
767
796
768 * IPython/hooks.py (result_display): Fix the fact that our display
797 * IPython/hooks.py (result_display): Fix the fact that our display
769 hook was using str() instead of repr(), as the default python
798 hook was using str() instead of repr(), as the default python
770 console does. This had gone unnoticed b/c it only happened if
799 console does. This had gone unnoticed b/c it only happened if
771 %Pprint was off, but the inconsistency was there.
800 %Pprint was off, but the inconsistency was there.
772
801
773 2006-05-15 Ville Vainio <vivainio@gmail.com>
802 2006-05-15 Ville Vainio <vivainio@gmail.com>
774
803
775 * Oinspect.py: Only show docstring for nonexisting/binary files
804 * Oinspect.py: Only show docstring for nonexisting/binary files
776 when doing object??, closing ticket #62
805 when doing object??, closing ticket #62
777
806
778 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
807 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
779
808
780 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
809 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
781 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
810 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
782 was being released in a routine which hadn't checked if it had
811 was being released in a routine which hadn't checked if it had
783 been the one to acquire it.
812 been the one to acquire it.
784
813
785 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
814 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
786
815
787 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
816 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
788
817
789 2006-04-11 Ville Vainio <vivainio@gmail.com>
818 2006-04-11 Ville Vainio <vivainio@gmail.com>
790
819
791 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
820 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
792 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
821 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
793 prefilters, allowing stuff like magics and aliases in the file.
822 prefilters, allowing stuff like magics and aliases in the file.
794
823
795 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
824 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
796 added. Supported now are "%clear in" and "%clear out" (clear input and
825 added. Supported now are "%clear in" and "%clear out" (clear input and
797 output history, respectively). Also fixed CachedOutput.flush to
826 output history, respectively). Also fixed CachedOutput.flush to
798 properly flush the output cache.
827 properly flush the output cache.
799
828
800 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
829 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
801 half-success (and fail explicitly).
830 half-success (and fail explicitly).
802
831
803 2006-03-28 Ville Vainio <vivainio@gmail.com>
832 2006-03-28 Ville Vainio <vivainio@gmail.com>
804
833
805 * iplib.py: Fix quoting of aliases so that only argless ones
834 * iplib.py: Fix quoting of aliases so that only argless ones
806 are quoted
835 are quoted
807
836
808 2006-03-28 Ville Vainio <vivainio@gmail.com>
837 2006-03-28 Ville Vainio <vivainio@gmail.com>
809
838
810 * iplib.py: Quote aliases with spaces in the name.
839 * iplib.py: Quote aliases with spaces in the name.
811 "c:\program files\blah\bin" is now legal alias target.
840 "c:\program files\blah\bin" is now legal alias target.
812
841
813 * ext_rehashdir.py: Space no longer allowed as arg
842 * ext_rehashdir.py: Space no longer allowed as arg
814 separator, since space is legal in path names.
843 separator, since space is legal in path names.
815
844
816 2006-03-16 Ville Vainio <vivainio@gmail.com>
845 2006-03-16 Ville Vainio <vivainio@gmail.com>
817
846
818 * upgrade_dir.py: Take path.py from Extensions, correcting
847 * upgrade_dir.py: Take path.py from Extensions, correcting
819 %upgrade magic
848 %upgrade magic
820
849
821 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
850 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
822
851
823 * hooks.py: Only enclose editor binary in quotes if legal and
852 * hooks.py: Only enclose editor binary in quotes if legal and
824 necessary (space in the name, and is an existing file). Fixes a bug
853 necessary (space in the name, and is an existing file). Fixes a bug
825 reported by Zachary Pincus.
854 reported by Zachary Pincus.
826
855
827 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
856 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
828
857
829 * Manual: thanks to a tip on proper color handling for Emacs, by
858 * Manual: thanks to a tip on proper color handling for Emacs, by
830 Eric J Haywiser <ejh1-AT-MIT.EDU>.
859 Eric J Haywiser <ejh1-AT-MIT.EDU>.
831
860
832 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
861 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
833 by applying the provided patch. Thanks to Liu Jin
862 by applying the provided patch. Thanks to Liu Jin
834 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
863 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
835 XEmacs/Linux, I'm trusting the submitter that it actually helps
864 XEmacs/Linux, I'm trusting the submitter that it actually helps
836 under win32/GNU Emacs. Will revisit if any problems are reported.
865 under win32/GNU Emacs. Will revisit if any problems are reported.
837
866
838 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
867 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
839
868
840 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
869 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
841 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
870 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
842
871
843 2006-03-12 Ville Vainio <vivainio@gmail.com>
872 2006-03-12 Ville Vainio <vivainio@gmail.com>
844
873
845 * Magic.py (magic_timeit): Added %timeit magic, contributed by
874 * Magic.py (magic_timeit): Added %timeit magic, contributed by
846 Torsten Marek.
875 Torsten Marek.
847
876
848 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
877 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
849
878
850 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
879 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
851 line ranges works again.
880 line ranges works again.
852
881
853 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
882 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
854
883
855 * IPython/iplib.py (showtraceback): add back sys.last_traceback
884 * IPython/iplib.py (showtraceback): add back sys.last_traceback
856 and friends, after a discussion with Zach Pincus on ipython-user.
885 and friends, after a discussion with Zach Pincus on ipython-user.
857 I'm not 100% sure, but after thinking about it quite a bit, it may
886 I'm not 100% sure, but after thinking about it quite a bit, it may
858 be OK. Testing with the multithreaded shells didn't reveal any
887 be OK. Testing with the multithreaded shells didn't reveal any
859 problems, but let's keep an eye out.
888 problems, but let's keep an eye out.
860
889
861 In the process, I fixed a few things which were calling
890 In the process, I fixed a few things which were calling
862 self.InteractiveTB() directly (like safe_execfile), which is a
891 self.InteractiveTB() directly (like safe_execfile), which is a
863 mistake: ALL exception reporting should be done by calling
892 mistake: ALL exception reporting should be done by calling
864 self.showtraceback(), which handles state and tab-completion and
893 self.showtraceback(), which handles state and tab-completion and
865 more.
894 more.
866
895
867 2006-03-01 Ville Vainio <vivainio@gmail.com>
896 2006-03-01 Ville Vainio <vivainio@gmail.com>
868
897
869 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
898 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
870 To use, do "from ipipe import *".
899 To use, do "from ipipe import *".
871
900
872 2006-02-24 Ville Vainio <vivainio@gmail.com>
901 2006-02-24 Ville Vainio <vivainio@gmail.com>
873
902
874 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
903 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
875 "cleanly" and safely than the older upgrade mechanism.
904 "cleanly" and safely than the older upgrade mechanism.
876
905
877 2006-02-21 Ville Vainio <vivainio@gmail.com>
906 2006-02-21 Ville Vainio <vivainio@gmail.com>
878
907
879 * Magic.py: %save works again.
908 * Magic.py: %save works again.
880
909
881 2006-02-15 Ville Vainio <vivainio@gmail.com>
910 2006-02-15 Ville Vainio <vivainio@gmail.com>
882
911
883 * Magic.py: %Pprint works again
912 * Magic.py: %Pprint works again
884
913
885 * Extensions/ipy_sane_defaults.py: Provide everything provided
914 * Extensions/ipy_sane_defaults.py: Provide everything provided
886 in default ipythonrc, to make it possible to have a completely empty
915 in default ipythonrc, to make it possible to have a completely empty
887 ipythonrc (and thus completely rc-file free configuration)
916 ipythonrc (and thus completely rc-file free configuration)
888
917
889 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
918 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
890
919
891 * IPython/hooks.py (editor): quote the call to the editor command,
920 * IPython/hooks.py (editor): quote the call to the editor command,
892 to allow commands with spaces in them. Problem noted by watching
921 to allow commands with spaces in them. Problem noted by watching
893 Ian Oswald's video about textpad under win32 at
922 Ian Oswald's video about textpad under win32 at
894 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
923 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
895
924
896 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
925 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
897 describing magics (we haven't used @ for a loong time).
926 describing magics (we haven't used @ for a loong time).
898
927
899 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
928 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
900 contributed by marienz to close
929 contributed by marienz to close
901 http://www.scipy.net/roundup/ipython/issue53.
930 http://www.scipy.net/roundup/ipython/issue53.
902
931
903 2006-02-10 Ville Vainio <vivainio@gmail.com>
932 2006-02-10 Ville Vainio <vivainio@gmail.com>
904
933
905 * genutils.py: getoutput now works in win32 too
934 * genutils.py: getoutput now works in win32 too
906
935
907 * completer.py: alias and magic completion only invoked
936 * completer.py: alias and magic completion only invoked
908 at the first "item" in the line, to avoid "cd %store"
937 at the first "item" in the line, to avoid "cd %store"
909 nonsense.
938 nonsense.
910
939
911 2006-02-09 Ville Vainio <vivainio@gmail.com>
940 2006-02-09 Ville Vainio <vivainio@gmail.com>
912
941
913 * test/*: Added a unit testing framework (finally).
942 * test/*: Added a unit testing framework (finally).
914 '%run runtests.py' to run test_*.
943 '%run runtests.py' to run test_*.
915
944
916 * ipapi.py: Exposed runlines and set_custom_exc
945 * ipapi.py: Exposed runlines and set_custom_exc
917
946
918 2006-02-07 Ville Vainio <vivainio@gmail.com>
947 2006-02-07 Ville Vainio <vivainio@gmail.com>
919
948
920 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
949 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
921 instead use "f(1 2)" as before.
950 instead use "f(1 2)" as before.
922
951
923 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
952 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
924
953
925 * IPython/demo.py (IPythonDemo): Add new classes to the demo
954 * IPython/demo.py (IPythonDemo): Add new classes to the demo
926 facilities, for demos processed by the IPython input filter
955 facilities, for demos processed by the IPython input filter
927 (IPythonDemo), and for running a script one-line-at-a-time as a
956 (IPythonDemo), and for running a script one-line-at-a-time as a
928 demo, both for pure Python (LineDemo) and for IPython-processed
957 demo, both for pure Python (LineDemo) and for IPython-processed
929 input (IPythonLineDemo). After a request by Dave Kohel, from the
958 input (IPythonLineDemo). After a request by Dave Kohel, from the
930 SAGE team.
959 SAGE team.
931 (Demo.edit): added an edit() method to the demo objects, to edit
960 (Demo.edit): added an edit() method to the demo objects, to edit
932 the in-memory copy of the last executed block.
961 the in-memory copy of the last executed block.
933
962
934 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
963 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
935 processing to %edit, %macro and %save. These commands can now be
964 processing to %edit, %macro and %save. These commands can now be
936 invoked on the unprocessed input as it was typed by the user
965 invoked on the unprocessed input as it was typed by the user
937 (without any prefilters applied). After requests by the SAGE team
966 (without any prefilters applied). After requests by the SAGE team
938 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
967 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
939
968
940 2006-02-01 Ville Vainio <vivainio@gmail.com>
969 2006-02-01 Ville Vainio <vivainio@gmail.com>
941
970
942 * setup.py, eggsetup.py: easy_install ipython==dev works
971 * setup.py, eggsetup.py: easy_install ipython==dev works
943 correctly now (on Linux)
972 correctly now (on Linux)
944
973
945 * ipy_user_conf,ipmaker: user config changes, removed spurious
974 * ipy_user_conf,ipmaker: user config changes, removed spurious
946 warnings
975 warnings
947
976
948 * iplib: if rc.banner is string, use it as is.
977 * iplib: if rc.banner is string, use it as is.
949
978
950 * Magic: %pycat accepts a string argument and pages it's contents.
979 * Magic: %pycat accepts a string argument and pages it's contents.
951
980
952
981
953 2006-01-30 Ville Vainio <vivainio@gmail.com>
982 2006-01-30 Ville Vainio <vivainio@gmail.com>
954
983
955 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
984 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
956 Now %store and bookmarks work through PickleShare, meaning that
985 Now %store and bookmarks work through PickleShare, meaning that
957 concurrent access is possible and all ipython sessions see the
986 concurrent access is possible and all ipython sessions see the
958 same database situation all the time, instead of snapshot of
987 same database situation all the time, instead of snapshot of
959 the situation when the session was started. Hence, %bookmark
988 the situation when the session was started. Hence, %bookmark
960 results are immediately accessible from othes sessions. The database
989 results are immediately accessible from othes sessions. The database
961 is also available for use by user extensions. See:
990 is also available for use by user extensions. See:
962 http://www.python.org/pypi/pickleshare
991 http://www.python.org/pypi/pickleshare
963
992
964 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
993 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
965
994
966 * aliases can now be %store'd
995 * aliases can now be %store'd
967
996
968 * path.py moved to Extensions so that pickleshare does not need
997 * path.py moved to Extensions so that pickleshare does not need
969 IPython-specific import. Extensions added to pythonpath right
998 IPython-specific import. Extensions added to pythonpath right
970 at __init__.
999 at __init__.
971
1000
972 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1001 * iplib.py: ipalias deprecated/redundant; aliases are converted and
973 called with _ip.system and the pre-transformed command string.
1002 called with _ip.system and the pre-transformed command string.
974
1003
975 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1004 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
976
1005
977 * IPython/iplib.py (interact): Fix that we were not catching
1006 * IPython/iplib.py (interact): Fix that we were not catching
978 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1007 KeyboardInterrupt exceptions properly. I'm not quite sure why the
979 logic here had to change, but it's fixed now.
1008 logic here had to change, but it's fixed now.
980
1009
981 2006-01-29 Ville Vainio <vivainio@gmail.com>
1010 2006-01-29 Ville Vainio <vivainio@gmail.com>
982
1011
983 * iplib.py: Try to import pyreadline on Windows.
1012 * iplib.py: Try to import pyreadline on Windows.
984
1013
985 2006-01-27 Ville Vainio <vivainio@gmail.com>
1014 2006-01-27 Ville Vainio <vivainio@gmail.com>
986
1015
987 * iplib.py: Expose ipapi as _ip in builtin namespace.
1016 * iplib.py: Expose ipapi as _ip in builtin namespace.
988 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1017 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
989 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1018 and ip_set_hook (-> _ip.set_hook) redundant. % and !
990 syntax now produce _ip.* variant of the commands.
1019 syntax now produce _ip.* variant of the commands.
991
1020
992 * "_ip.options().autoedit_syntax = 2" automatically throws
1021 * "_ip.options().autoedit_syntax = 2" automatically throws
993 user to editor for syntax error correction without prompting.
1022 user to editor for syntax error correction without prompting.
994
1023
995 2006-01-27 Ville Vainio <vivainio@gmail.com>
1024 2006-01-27 Ville Vainio <vivainio@gmail.com>
996
1025
997 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1026 * ipmaker.py: Give "realistic" sys.argv for scripts (without
998 'ipython' at argv[0]) executed through command line.
1027 'ipython' at argv[0]) executed through command line.
999 NOTE: this DEPRECATES calling ipython with multiple scripts
1028 NOTE: this DEPRECATES calling ipython with multiple scripts
1000 ("ipython a.py b.py c.py")
1029 ("ipython a.py b.py c.py")
1001
1030
1002 * iplib.py, hooks.py: Added configurable input prefilter,
1031 * iplib.py, hooks.py: Added configurable input prefilter,
1003 named 'input_prefilter'. See ext_rescapture.py for example
1032 named 'input_prefilter'. See ext_rescapture.py for example
1004 usage.
1033 usage.
1005
1034
1006 * ext_rescapture.py, Magic.py: Better system command output capture
1035 * ext_rescapture.py, Magic.py: Better system command output capture
1007 through 'var = !ls' (deprecates user-visible %sc). Same notation
1036 through 'var = !ls' (deprecates user-visible %sc). Same notation
1008 applies for magics, 'var = %alias' assigns alias list to var.
1037 applies for magics, 'var = %alias' assigns alias list to var.
1009
1038
1010 * ipapi.py: added meta() for accessing extension-usable data store.
1039 * ipapi.py: added meta() for accessing extension-usable data store.
1011
1040
1012 * iplib.py: added InteractiveShell.getapi(). New magics should be
1041 * iplib.py: added InteractiveShell.getapi(). New magics should be
1013 written doing self.getapi() instead of using the shell directly.
1042 written doing self.getapi() instead of using the shell directly.
1014
1043
1015 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1044 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1016 %store foo >> ~/myfoo.txt to store variables to files (in clean
1045 %store foo >> ~/myfoo.txt to store variables to files (in clean
1017 textual form, not a restorable pickle).
1046 textual form, not a restorable pickle).
1018
1047
1019 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1048 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1020
1049
1021 * usage.py, Magic.py: added %quickref
1050 * usage.py, Magic.py: added %quickref
1022
1051
1023 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1052 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1024
1053
1025 * GetoptErrors when invoking magics etc. with wrong args
1054 * GetoptErrors when invoking magics etc. with wrong args
1026 are now more helpful:
1055 are now more helpful:
1027 GetoptError: option -l not recognized (allowed: "qb" )
1056 GetoptError: option -l not recognized (allowed: "qb" )
1028
1057
1029 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1058 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1030
1059
1031 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1060 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1032 computationally intensive blocks don't appear to stall the demo.
1061 computationally intensive blocks don't appear to stall the demo.
1033
1062
1034 2006-01-24 Ville Vainio <vivainio@gmail.com>
1063 2006-01-24 Ville Vainio <vivainio@gmail.com>
1035
1064
1036 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1065 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1037 value to manipulate resulting history entry.
1066 value to manipulate resulting history entry.
1038
1067
1039 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1068 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1040 to instance methods of IPApi class, to make extending an embedded
1069 to instance methods of IPApi class, to make extending an embedded
1041 IPython feasible. See ext_rehashdir.py for example usage.
1070 IPython feasible. See ext_rehashdir.py for example usage.
1042
1071
1043 * Merged 1071-1076 from branches/0.7.1
1072 * Merged 1071-1076 from branches/0.7.1
1044
1073
1045
1074
1046 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1075 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1047
1076
1048 * tools/release (daystamp): Fix build tools to use the new
1077 * tools/release (daystamp): Fix build tools to use the new
1049 eggsetup.py script to build lightweight eggs.
1078 eggsetup.py script to build lightweight eggs.
1050
1079
1051 * Applied changesets 1062 and 1064 before 0.7.1 release.
1080 * Applied changesets 1062 and 1064 before 0.7.1 release.
1052
1081
1053 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1082 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1054 see the raw input history (without conversions like %ls ->
1083 see the raw input history (without conversions like %ls ->
1055 ipmagic("ls")). After a request from W. Stein, SAGE
1084 ipmagic("ls")). After a request from W. Stein, SAGE
1056 (http://modular.ucsd.edu/sage) developer. This information is
1085 (http://modular.ucsd.edu/sage) developer. This information is
1057 stored in the input_hist_raw attribute of the IPython instance, so
1086 stored in the input_hist_raw attribute of the IPython instance, so
1058 developers can access it if needed (it's an InputList instance).
1087 developers can access it if needed (it's an InputList instance).
1059
1088
1060 * Versionstring = 0.7.2.svn
1089 * Versionstring = 0.7.2.svn
1061
1090
1062 * eggsetup.py: A separate script for constructing eggs, creates
1091 * eggsetup.py: A separate script for constructing eggs, creates
1063 proper launch scripts even on Windows (an .exe file in
1092 proper launch scripts even on Windows (an .exe file in
1064 \python24\scripts).
1093 \python24\scripts).
1065
1094
1066 * ipapi.py: launch_new_instance, launch entry point needed for the
1095 * ipapi.py: launch_new_instance, launch entry point needed for the
1067 egg.
1096 egg.
1068
1097
1069 2006-01-23 Ville Vainio <vivainio@gmail.com>
1098 2006-01-23 Ville Vainio <vivainio@gmail.com>
1070
1099
1071 * Added %cpaste magic for pasting python code
1100 * Added %cpaste magic for pasting python code
1072
1101
1073 2006-01-22 Ville Vainio <vivainio@gmail.com>
1102 2006-01-22 Ville Vainio <vivainio@gmail.com>
1074
1103
1075 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1104 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1076
1105
1077 * Versionstring = 0.7.2.svn
1106 * Versionstring = 0.7.2.svn
1078
1107
1079 * eggsetup.py: A separate script for constructing eggs, creates
1108 * eggsetup.py: A separate script for constructing eggs, creates
1080 proper launch scripts even on Windows (an .exe file in
1109 proper launch scripts even on Windows (an .exe file in
1081 \python24\scripts).
1110 \python24\scripts).
1082
1111
1083 * ipapi.py: launch_new_instance, launch entry point needed for the
1112 * ipapi.py: launch_new_instance, launch entry point needed for the
1084 egg.
1113 egg.
1085
1114
1086 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1115 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1087
1116
1088 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1117 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1089 %pfile foo would print the file for foo even if it was a binary.
1118 %pfile foo would print the file for foo even if it was a binary.
1090 Now, extensions '.so' and '.dll' are skipped.
1119 Now, extensions '.so' and '.dll' are skipped.
1091
1120
1092 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1121 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1093 bug, where macros would fail in all threaded modes. I'm not 100%
1122 bug, where macros would fail in all threaded modes. I'm not 100%
1094 sure, so I'm going to put out an rc instead of making a release
1123 sure, so I'm going to put out an rc instead of making a release
1095 today, and wait for feedback for at least a few days.
1124 today, and wait for feedback for at least a few days.
1096
1125
1097 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1126 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1098 it...) the handling of pasting external code with autoindent on.
1127 it...) the handling of pasting external code with autoindent on.
1099 To get out of a multiline input, the rule will appear for most
1128 To get out of a multiline input, the rule will appear for most
1100 users unchanged: two blank lines or change the indent level
1129 users unchanged: two blank lines or change the indent level
1101 proposed by IPython. But there is a twist now: you can
1130 proposed by IPython. But there is a twist now: you can
1102 add/subtract only *one or two spaces*. If you add/subtract three
1131 add/subtract only *one or two spaces*. If you add/subtract three
1103 or more (unless you completely delete the line), IPython will
1132 or more (unless you completely delete the line), IPython will
1104 accept that line, and you'll need to enter a second one of pure
1133 accept that line, and you'll need to enter a second one of pure
1105 whitespace. I know it sounds complicated, but I can't find a
1134 whitespace. I know it sounds complicated, but I can't find a
1106 different solution that covers all the cases, with the right
1135 different solution that covers all the cases, with the right
1107 heuristics. Hopefully in actual use, nobody will really notice
1136 heuristics. Hopefully in actual use, nobody will really notice
1108 all these strange rules and things will 'just work'.
1137 all these strange rules and things will 'just work'.
1109
1138
1110 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1139 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1111
1140
1112 * IPython/iplib.py (interact): catch exceptions which can be
1141 * IPython/iplib.py (interact): catch exceptions which can be
1113 triggered asynchronously by signal handlers. Thanks to an
1142 triggered asynchronously by signal handlers. Thanks to an
1114 automatic crash report, submitted by Colin Kingsley
1143 automatic crash report, submitted by Colin Kingsley
1115 <tercel-AT-gentoo.org>.
1144 <tercel-AT-gentoo.org>.
1116
1145
1117 2006-01-20 Ville Vainio <vivainio@gmail.com>
1146 2006-01-20 Ville Vainio <vivainio@gmail.com>
1118
1147
1119 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1148 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1120 (%rehashdir, very useful, try it out) of how to extend ipython
1149 (%rehashdir, very useful, try it out) of how to extend ipython
1121 with new magics. Also added Extensions dir to pythonpath to make
1150 with new magics. Also added Extensions dir to pythonpath to make
1122 importing extensions easy.
1151 importing extensions easy.
1123
1152
1124 * %store now complains when trying to store interactively declared
1153 * %store now complains when trying to store interactively declared
1125 classes / instances of those classes.
1154 classes / instances of those classes.
1126
1155
1127 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1156 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1128 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1157 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1129 if they exist, and ipy_user_conf.py with some defaults is created for
1158 if they exist, and ipy_user_conf.py with some defaults is created for
1130 the user.
1159 the user.
1131
1160
1132 * Startup rehashing done by the config file, not InterpreterExec.
1161 * Startup rehashing done by the config file, not InterpreterExec.
1133 This means system commands are available even without selecting the
1162 This means system commands are available even without selecting the
1134 pysh profile. It's the sensible default after all.
1163 pysh profile. It's the sensible default after all.
1135
1164
1136 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1165 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1137
1166
1138 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1167 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1139 multiline code with autoindent on working. But I am really not
1168 multiline code with autoindent on working. But I am really not
1140 sure, so this needs more testing. Will commit a debug-enabled
1169 sure, so this needs more testing. Will commit a debug-enabled
1141 version for now, while I test it some more, so that Ville and
1170 version for now, while I test it some more, so that Ville and
1142 others may also catch any problems. Also made
1171 others may also catch any problems. Also made
1143 self.indent_current_str() a method, to ensure that there's no
1172 self.indent_current_str() a method, to ensure that there's no
1144 chance of the indent space count and the corresponding string
1173 chance of the indent space count and the corresponding string
1145 falling out of sync. All code needing the string should just call
1174 falling out of sync. All code needing the string should just call
1146 the method.
1175 the method.
1147
1176
1148 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1177 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1149
1178
1150 * IPython/Magic.py (magic_edit): fix check for when users don't
1179 * IPython/Magic.py (magic_edit): fix check for when users don't
1151 save their output files, the try/except was in the wrong section.
1180 save their output files, the try/except was in the wrong section.
1152
1181
1153 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1182 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1154
1183
1155 * IPython/Magic.py (magic_run): fix __file__ global missing from
1184 * IPython/Magic.py (magic_run): fix __file__ global missing from
1156 script's namespace when executed via %run. After a report by
1185 script's namespace when executed via %run. After a report by
1157 Vivian.
1186 Vivian.
1158
1187
1159 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1188 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1160 when using python 2.4. The parent constructor changed in 2.4, and
1189 when using python 2.4. The parent constructor changed in 2.4, and
1161 we need to track it directly (we can't call it, as it messes up
1190 we need to track it directly (we can't call it, as it messes up
1162 readline and tab-completion inside our pdb would stop working).
1191 readline and tab-completion inside our pdb would stop working).
1163 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1192 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1164
1193
1165 2006-01-16 Ville Vainio <vivainio@gmail.com>
1194 2006-01-16 Ville Vainio <vivainio@gmail.com>
1166
1195
1167 * Ipython/magic.py: Reverted back to old %edit functionality
1196 * Ipython/magic.py: Reverted back to old %edit functionality
1168 that returns file contents on exit.
1197 that returns file contents on exit.
1169
1198
1170 * IPython/path.py: Added Jason Orendorff's "path" module to
1199 * IPython/path.py: Added Jason Orendorff's "path" module to
1171 IPython tree, http://www.jorendorff.com/articles/python/path/.
1200 IPython tree, http://www.jorendorff.com/articles/python/path/.
1172 You can get path objects conveniently through %sc, and !!, e.g.:
1201 You can get path objects conveniently through %sc, and !!, e.g.:
1173 sc files=ls
1202 sc files=ls
1174 for p in files.paths: # or files.p
1203 for p in files.paths: # or files.p
1175 print p,p.mtime
1204 print p,p.mtime
1176
1205
1177 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1206 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1178 now work again without considering the exclusion regexp -
1207 now work again without considering the exclusion regexp -
1179 hence, things like ',foo my/path' turn to 'foo("my/path")'
1208 hence, things like ',foo my/path' turn to 'foo("my/path")'
1180 instead of syntax error.
1209 instead of syntax error.
1181
1210
1182
1211
1183 2006-01-14 Ville Vainio <vivainio@gmail.com>
1212 2006-01-14 Ville Vainio <vivainio@gmail.com>
1184
1213
1185 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1214 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1186 ipapi decorators for python 2.4 users, options() provides access to rc
1215 ipapi decorators for python 2.4 users, options() provides access to rc
1187 data.
1216 data.
1188
1217
1189 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1218 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1190 as path separators (even on Linux ;-). Space character after
1219 as path separators (even on Linux ;-). Space character after
1191 backslash (as yielded by tab completer) is still space;
1220 backslash (as yielded by tab completer) is still space;
1192 "%cd long\ name" works as expected.
1221 "%cd long\ name" works as expected.
1193
1222
1194 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1223 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1195 as "chain of command", with priority. API stays the same,
1224 as "chain of command", with priority. API stays the same,
1196 TryNext exception raised by a hook function signals that
1225 TryNext exception raised by a hook function signals that
1197 current hook failed and next hook should try handling it, as
1226 current hook failed and next hook should try handling it, as
1198 suggested by Walter Dörwald <walter@livinglogic.de>. Walter also
1227 suggested by Walter Dörwald <walter@livinglogic.de>. Walter also
1199 requested configurable display hook, which is now implemented.
1228 requested configurable display hook, which is now implemented.
1200
1229
1201 2006-01-13 Ville Vainio <vivainio@gmail.com>
1230 2006-01-13 Ville Vainio <vivainio@gmail.com>
1202
1231
1203 * IPython/platutils*.py: platform specific utility functions,
1232 * IPython/platutils*.py: platform specific utility functions,
1204 so far only set_term_title is implemented (change terminal
1233 so far only set_term_title is implemented (change terminal
1205 label in windowing systems). %cd now changes the title to
1234 label in windowing systems). %cd now changes the title to
1206 current dir.
1235 current dir.
1207
1236
1208 * IPython/Release.py: Added myself to "authors" list,
1237 * IPython/Release.py: Added myself to "authors" list,
1209 had to create new files.
1238 had to create new files.
1210
1239
1211 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1240 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1212 shell escape; not a known bug but had potential to be one in the
1241 shell escape; not a known bug but had potential to be one in the
1213 future.
1242 future.
1214
1243
1215 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1244 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1216 extension API for IPython! See the module for usage example. Fix
1245 extension API for IPython! See the module for usage example. Fix
1217 OInspect for docstring-less magic functions.
1246 OInspect for docstring-less magic functions.
1218
1247
1219
1248
1220 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1249 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1221
1250
1222 * IPython/iplib.py (raw_input): temporarily deactivate all
1251 * IPython/iplib.py (raw_input): temporarily deactivate all
1223 attempts at allowing pasting of code with autoindent on. It
1252 attempts at allowing pasting of code with autoindent on. It
1224 introduced bugs (reported by Prabhu) and I can't seem to find a
1253 introduced bugs (reported by Prabhu) and I can't seem to find a
1225 robust combination which works in all cases. Will have to revisit
1254 robust combination which works in all cases. Will have to revisit
1226 later.
1255 later.
1227
1256
1228 * IPython/genutils.py: remove isspace() function. We've dropped
1257 * IPython/genutils.py: remove isspace() function. We've dropped
1229 2.2 compatibility, so it's OK to use the string method.
1258 2.2 compatibility, so it's OK to use the string method.
1230
1259
1231 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1260 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1232
1261
1233 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1262 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1234 matching what NOT to autocall on, to include all python binary
1263 matching what NOT to autocall on, to include all python binary
1235 operators (including things like 'and', 'or', 'is' and 'in').
1264 operators (including things like 'and', 'or', 'is' and 'in').
1236 Prompted by a bug report on 'foo & bar', but I realized we had
1265 Prompted by a bug report on 'foo & bar', but I realized we had
1237 many more potential bug cases with other operators. The regexp is
1266 many more potential bug cases with other operators. The regexp is
1238 self.re_exclude_auto, it's fairly commented.
1267 self.re_exclude_auto, it's fairly commented.
1239
1268
1240 2006-01-12 Ville Vainio <vivainio@gmail.com>
1269 2006-01-12 Ville Vainio <vivainio@gmail.com>
1241
1270
1242 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1271 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1243 Prettified and hardened string/backslash quoting with ipsystem(),
1272 Prettified and hardened string/backslash quoting with ipsystem(),
1244 ipalias() and ipmagic(). Now even \ characters are passed to
1273 ipalias() and ipmagic(). Now even \ characters are passed to
1245 %magics, !shell escapes and aliases exactly as they are in the
1274 %magics, !shell escapes and aliases exactly as they are in the
1246 ipython command line. Should improve backslash experience,
1275 ipython command line. Should improve backslash experience,
1247 particularly in Windows (path delimiter for some commands that
1276 particularly in Windows (path delimiter for some commands that
1248 won't understand '/'), but Unix benefits as well (regexps). %cd
1277 won't understand '/'), but Unix benefits as well (regexps). %cd
1249 magic still doesn't support backslash path delimiters, though. Also
1278 magic still doesn't support backslash path delimiters, though. Also
1250 deleted all pretense of supporting multiline command strings in
1279 deleted all pretense of supporting multiline command strings in
1251 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1280 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1252
1281
1253 * doc/build_doc_instructions.txt added. Documentation on how to
1282 * doc/build_doc_instructions.txt added. Documentation on how to
1254 use doc/update_manual.py, added yesterday. Both files contributed
1283 use doc/update_manual.py, added yesterday. Both files contributed
1255 by Jörgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1284 by Jörgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1256 doc/*.sh for deprecation at a later date.
1285 doc/*.sh for deprecation at a later date.
1257
1286
1258 * /ipython.py Added ipython.py to root directory for
1287 * /ipython.py Added ipython.py to root directory for
1259 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1288 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1260 ipython.py) and development convenience (no need to keep doing
1289 ipython.py) and development convenience (no need to keep doing
1261 "setup.py install" between changes).
1290 "setup.py install" between changes).
1262
1291
1263 * Made ! and !! shell escapes work (again) in multiline expressions:
1292 * Made ! and !! shell escapes work (again) in multiline expressions:
1264 if 1:
1293 if 1:
1265 !ls
1294 !ls
1266 !!ls
1295 !!ls
1267
1296
1268 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1297 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1269
1298
1270 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1299 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1271 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1300 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1272 module in case-insensitive installation. Was causing crashes
1301 module in case-insensitive installation. Was causing crashes
1273 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1302 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1274
1303
1275 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1304 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1276 <marienz-AT-gentoo.org>, closes
1305 <marienz-AT-gentoo.org>, closes
1277 http://www.scipy.net/roundup/ipython/issue51.
1306 http://www.scipy.net/roundup/ipython/issue51.
1278
1307
1279 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1308 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1280
1309
1281 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1310 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1282 problem of excessive CPU usage under *nix and keyboard lag under
1311 problem of excessive CPU usage under *nix and keyboard lag under
1283 win32.
1312 win32.
1284
1313
1285 2006-01-10 *** Released version 0.7.0
1314 2006-01-10 *** Released version 0.7.0
1286
1315
1287 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1316 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1288
1317
1289 * IPython/Release.py (revision): tag version number to 0.7.0,
1318 * IPython/Release.py (revision): tag version number to 0.7.0,
1290 ready for release.
1319 ready for release.
1291
1320
1292 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1321 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1293 it informs the user of the name of the temp. file used. This can
1322 it informs the user of the name of the temp. file used. This can
1294 help if you decide later to reuse that same file, so you know
1323 help if you decide later to reuse that same file, so you know
1295 where to copy the info from.
1324 where to copy the info from.
1296
1325
1297 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1326 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1298
1327
1299 * setup_bdist_egg.py: little script to build an egg. Added
1328 * setup_bdist_egg.py: little script to build an egg. Added
1300 support in the release tools as well.
1329 support in the release tools as well.
1301
1330
1302 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1331 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1303
1332
1304 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1333 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1305 version selection (new -wxversion command line and ipythonrc
1334 version selection (new -wxversion command line and ipythonrc
1306 parameter). Patch contributed by Arnd Baecker
1335 parameter). Patch contributed by Arnd Baecker
1307 <arnd.baecker-AT-web.de>.
1336 <arnd.baecker-AT-web.de>.
1308
1337
1309 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1338 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1310 embedded instances, for variables defined at the interactive
1339 embedded instances, for variables defined at the interactive
1311 prompt of the embedded ipython. Reported by Arnd.
1340 prompt of the embedded ipython. Reported by Arnd.
1312
1341
1313 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1342 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1314 it can be used as a (stateful) toggle, or with a direct parameter.
1343 it can be used as a (stateful) toggle, or with a direct parameter.
1315
1344
1316 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1345 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1317 could be triggered in certain cases and cause the traceback
1346 could be triggered in certain cases and cause the traceback
1318 printer not to work.
1347 printer not to work.
1319
1348
1320 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1349 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1321
1350
1322 * IPython/iplib.py (_should_recompile): Small fix, closes
1351 * IPython/iplib.py (_should_recompile): Small fix, closes
1323 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1352 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1324
1353
1325 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1354 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1326
1355
1327 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1356 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1328 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1357 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1329 Moad for help with tracking it down.
1358 Moad for help with tracking it down.
1330
1359
1331 * IPython/iplib.py (handle_auto): fix autocall handling for
1360 * IPython/iplib.py (handle_auto): fix autocall handling for
1332 objects which support BOTH __getitem__ and __call__ (so that f [x]
1361 objects which support BOTH __getitem__ and __call__ (so that f [x]
1333 is left alone, instead of becoming f([x]) automatically).
1362 is left alone, instead of becoming f([x]) automatically).
1334
1363
1335 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1364 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1336 Ville's patch.
1365 Ville's patch.
1337
1366
1338 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1367 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1339
1368
1340 * IPython/iplib.py (handle_auto): changed autocall semantics to
1369 * IPython/iplib.py (handle_auto): changed autocall semantics to
1341 include 'smart' mode, where the autocall transformation is NOT
1370 include 'smart' mode, where the autocall transformation is NOT
1342 applied if there are no arguments on the line. This allows you to
1371 applied if there are no arguments on the line. This allows you to
1343 just type 'foo' if foo is a callable to see its internal form,
1372 just type 'foo' if foo is a callable to see its internal form,
1344 instead of having it called with no arguments (typically a
1373 instead of having it called with no arguments (typically a
1345 mistake). The old 'full' autocall still exists: for that, you
1374 mistake). The old 'full' autocall still exists: for that, you
1346 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1375 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1347
1376
1348 * IPython/completer.py (Completer.attr_matches): add
1377 * IPython/completer.py (Completer.attr_matches): add
1349 tab-completion support for Enthoughts' traits. After a report by
1378 tab-completion support for Enthoughts' traits. After a report by
1350 Arnd and a patch by Prabhu.
1379 Arnd and a patch by Prabhu.
1351
1380
1352 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1381 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1353
1382
1354 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1383 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1355 Schmolck's patch to fix inspect.getinnerframes().
1384 Schmolck's patch to fix inspect.getinnerframes().
1356
1385
1357 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1386 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1358 for embedded instances, regarding handling of namespaces and items
1387 for embedded instances, regarding handling of namespaces and items
1359 added to the __builtin__ one. Multiple embedded instances and
1388 added to the __builtin__ one. Multiple embedded instances and
1360 recursive embeddings should work better now (though I'm not sure
1389 recursive embeddings should work better now (though I'm not sure
1361 I've got all the corner cases fixed, that code is a bit of a brain
1390 I've got all the corner cases fixed, that code is a bit of a brain
1362 twister).
1391 twister).
1363
1392
1364 * IPython/Magic.py (magic_edit): added support to edit in-memory
1393 * IPython/Magic.py (magic_edit): added support to edit in-memory
1365 macros (automatically creates the necessary temp files). %edit
1394 macros (automatically creates the necessary temp files). %edit
1366 also doesn't return the file contents anymore, it's just noise.
1395 also doesn't return the file contents anymore, it's just noise.
1367
1396
1368 * IPython/completer.py (Completer.attr_matches): revert change to
1397 * IPython/completer.py (Completer.attr_matches): revert change to
1369 complete only on attributes listed in __all__. I realized it
1398 complete only on attributes listed in __all__. I realized it
1370 cripples the tab-completion system as a tool for exploring the
1399 cripples the tab-completion system as a tool for exploring the
1371 internals of unknown libraries (it renders any non-__all__
1400 internals of unknown libraries (it renders any non-__all__
1372 attribute off-limits). I got bit by this when trying to see
1401 attribute off-limits). I got bit by this when trying to see
1373 something inside the dis module.
1402 something inside the dis module.
1374
1403
1375 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1404 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1376
1405
1377 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1406 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1378 namespace for users and extension writers to hold data in. This
1407 namespace for users and extension writers to hold data in. This
1379 follows the discussion in
1408 follows the discussion in
1380 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1409 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1381
1410
1382 * IPython/completer.py (IPCompleter.complete): small patch to help
1411 * IPython/completer.py (IPCompleter.complete): small patch to help
1383 tab-completion under Emacs, after a suggestion by John Barnard
1412 tab-completion under Emacs, after a suggestion by John Barnard
1384 <barnarj-AT-ccf.org>.
1413 <barnarj-AT-ccf.org>.
1385
1414
1386 * IPython/Magic.py (Magic.extract_input_slices): added support for
1415 * IPython/Magic.py (Magic.extract_input_slices): added support for
1387 the slice notation in magics to use N-M to represent numbers N...M
1416 the slice notation in magics to use N-M to represent numbers N...M
1388 (closed endpoints). This is used by %macro and %save.
1417 (closed endpoints). This is used by %macro and %save.
1389
1418
1390 * IPython/completer.py (Completer.attr_matches): for modules which
1419 * IPython/completer.py (Completer.attr_matches): for modules which
1391 define __all__, complete only on those. After a patch by Jeffrey
1420 define __all__, complete only on those. After a patch by Jeffrey
1392 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1421 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1393 speed up this routine.
1422 speed up this routine.
1394
1423
1395 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1424 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1396 don't know if this is the end of it, but the behavior now is
1425 don't know if this is the end of it, but the behavior now is
1397 certainly much more correct. Note that coupled with macros,
1426 certainly much more correct. Note that coupled with macros,
1398 slightly surprising (at first) behavior may occur: a macro will in
1427 slightly surprising (at first) behavior may occur: a macro will in
1399 general expand to multiple lines of input, so upon exiting, the
1428 general expand to multiple lines of input, so upon exiting, the
1400 in/out counters will both be bumped by the corresponding amount
1429 in/out counters will both be bumped by the corresponding amount
1401 (as if the macro's contents had been typed interactively). Typing
1430 (as if the macro's contents had been typed interactively). Typing
1402 %hist will reveal the intermediate (silently processed) lines.
1431 %hist will reveal the intermediate (silently processed) lines.
1403
1432
1404 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1433 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1405 pickle to fail (%run was overwriting __main__ and not restoring
1434 pickle to fail (%run was overwriting __main__ and not restoring
1406 it, but pickle relies on __main__ to operate).
1435 it, but pickle relies on __main__ to operate).
1407
1436
1408 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1437 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1409 using properties, but forgot to make the main InteractiveShell
1438 using properties, but forgot to make the main InteractiveShell
1410 class a new-style class. Properties fail silently, and
1439 class a new-style class. Properties fail silently, and
1411 mysteriously, with old-style class (getters work, but
1440 mysteriously, with old-style class (getters work, but
1412 setters don't do anything).
1441 setters don't do anything).
1413
1442
1414 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1443 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1415
1444
1416 * IPython/Magic.py (magic_history): fix history reporting bug (I
1445 * IPython/Magic.py (magic_history): fix history reporting bug (I
1417 know some nasties are still there, I just can't seem to find a
1446 know some nasties are still there, I just can't seem to find a
1418 reproducible test case to track them down; the input history is
1447 reproducible test case to track them down; the input history is
1419 falling out of sync...)
1448 falling out of sync...)
1420
1449
1421 * IPython/iplib.py (handle_shell_escape): fix bug where both
1450 * IPython/iplib.py (handle_shell_escape): fix bug where both
1422 aliases and system accesses where broken for indented code (such
1451 aliases and system accesses where broken for indented code (such
1423 as loops).
1452 as loops).
1424
1453
1425 * IPython/genutils.py (shell): fix small but critical bug for
1454 * IPython/genutils.py (shell): fix small but critical bug for
1426 win32 system access.
1455 win32 system access.
1427
1456
1428 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1457 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1429
1458
1430 * IPython/iplib.py (showtraceback): remove use of the
1459 * IPython/iplib.py (showtraceback): remove use of the
1431 sys.last_{type/value/traceback} structures, which are non
1460 sys.last_{type/value/traceback} structures, which are non
1432 thread-safe.
1461 thread-safe.
1433 (_prefilter): change control flow to ensure that we NEVER
1462 (_prefilter): change control flow to ensure that we NEVER
1434 introspect objects when autocall is off. This will guarantee that
1463 introspect objects when autocall is off. This will guarantee that
1435 having an input line of the form 'x.y', where access to attribute
1464 having an input line of the form 'x.y', where access to attribute
1436 'y' has side effects, doesn't trigger the side effect TWICE. It
1465 'y' has side effects, doesn't trigger the side effect TWICE. It
1437 is important to note that, with autocall on, these side effects
1466 is important to note that, with autocall on, these side effects
1438 can still happen.
1467 can still happen.
1439 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1468 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1440 trio. IPython offers these three kinds of special calls which are
1469 trio. IPython offers these three kinds of special calls which are
1441 not python code, and it's a good thing to have their call method
1470 not python code, and it's a good thing to have their call method
1442 be accessible as pure python functions (not just special syntax at
1471 be accessible as pure python functions (not just special syntax at
1443 the command line). It gives us a better internal implementation
1472 the command line). It gives us a better internal implementation
1444 structure, as well as exposing these for user scripting more
1473 structure, as well as exposing these for user scripting more
1445 cleanly.
1474 cleanly.
1446
1475
1447 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1476 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1448 file. Now that they'll be more likely to be used with the
1477 file. Now that they'll be more likely to be used with the
1449 persistance system (%store), I want to make sure their module path
1478 persistance system (%store), I want to make sure their module path
1450 doesn't change in the future, so that we don't break things for
1479 doesn't change in the future, so that we don't break things for
1451 users' persisted data.
1480 users' persisted data.
1452
1481
1453 * IPython/iplib.py (autoindent_update): move indentation
1482 * IPython/iplib.py (autoindent_update): move indentation
1454 management into the _text_ processing loop, not the keyboard
1483 management into the _text_ processing loop, not the keyboard
1455 interactive one. This is necessary to correctly process non-typed
1484 interactive one. This is necessary to correctly process non-typed
1456 multiline input (such as macros).
1485 multiline input (such as macros).
1457
1486
1458 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1487 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1459 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1488 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1460 which was producing problems in the resulting manual.
1489 which was producing problems in the resulting manual.
1461 (magic_whos): improve reporting of instances (show their class,
1490 (magic_whos): improve reporting of instances (show their class,
1462 instead of simply printing 'instance' which isn't terribly
1491 instead of simply printing 'instance' which isn't terribly
1463 informative).
1492 informative).
1464
1493
1465 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1494 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1466 (minor mods) to support network shares under win32.
1495 (minor mods) to support network shares under win32.
1467
1496
1468 * IPython/winconsole.py (get_console_size): add new winconsole
1497 * IPython/winconsole.py (get_console_size): add new winconsole
1469 module and fixes to page_dumb() to improve its behavior under
1498 module and fixes to page_dumb() to improve its behavior under
1470 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1499 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1471
1500
1472 * IPython/Magic.py (Macro): simplified Macro class to just
1501 * IPython/Magic.py (Macro): simplified Macro class to just
1473 subclass list. We've had only 2.2 compatibility for a very long
1502 subclass list. We've had only 2.2 compatibility for a very long
1474 time, yet I was still avoiding subclassing the builtin types. No
1503 time, yet I was still avoiding subclassing the builtin types. No
1475 more (I'm also starting to use properties, though I won't shift to
1504 more (I'm also starting to use properties, though I won't shift to
1476 2.3-specific features quite yet).
1505 2.3-specific features quite yet).
1477 (magic_store): added Ville's patch for lightweight variable
1506 (magic_store): added Ville's patch for lightweight variable
1478 persistence, after a request on the user list by Matt Wilkie
1507 persistence, after a request on the user list by Matt Wilkie
1479 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1508 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1480 details.
1509 details.
1481
1510
1482 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1511 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1483 changed the default logfile name from 'ipython.log' to
1512 changed the default logfile name from 'ipython.log' to
1484 'ipython_log.py'. These logs are real python files, and now that
1513 'ipython_log.py'. These logs are real python files, and now that
1485 we have much better multiline support, people are more likely to
1514 we have much better multiline support, people are more likely to
1486 want to use them as such. Might as well name them correctly.
1515 want to use them as such. Might as well name them correctly.
1487
1516
1488 * IPython/Magic.py: substantial cleanup. While we can't stop
1517 * IPython/Magic.py: substantial cleanup. While we can't stop
1489 using magics as mixins, due to the existing customizations 'out
1518 using magics as mixins, due to the existing customizations 'out
1490 there' which rely on the mixin naming conventions, at least I
1519 there' which rely on the mixin naming conventions, at least I
1491 cleaned out all cross-class name usage. So once we are OK with
1520 cleaned out all cross-class name usage. So once we are OK with
1492 breaking compatibility, the two systems can be separated.
1521 breaking compatibility, the two systems can be separated.
1493
1522
1494 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1523 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1495 anymore, and the class is a fair bit less hideous as well. New
1524 anymore, and the class is a fair bit less hideous as well. New
1496 features were also introduced: timestamping of input, and logging
1525 features were also introduced: timestamping of input, and logging
1497 of output results. These are user-visible with the -t and -o
1526 of output results. These are user-visible with the -t and -o
1498 options to %logstart. Closes
1527 options to %logstart. Closes
1499 http://www.scipy.net/roundup/ipython/issue11 and a request by
1528 http://www.scipy.net/roundup/ipython/issue11 and a request by
1500 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1529 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1501
1530
1502 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1531 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1503
1532
1504 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1533 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1505 better handle backslashes in paths. See the thread 'More Windows
1534 better handle backslashes in paths. See the thread 'More Windows
1506 questions part 2 - \/ characters revisited' on the iypthon user
1535 questions part 2 - \/ characters revisited' on the iypthon user
1507 list:
1536 list:
1508 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1537 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1509
1538
1510 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1539 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1511
1540
1512 (InteractiveShell.__init__): change threaded shells to not use the
1541 (InteractiveShell.__init__): change threaded shells to not use the
1513 ipython crash handler. This was causing more problems than not,
1542 ipython crash handler. This was causing more problems than not,
1514 as exceptions in the main thread (GUI code, typically) would
1543 as exceptions in the main thread (GUI code, typically) would
1515 always show up as a 'crash', when they really weren't.
1544 always show up as a 'crash', when they really weren't.
1516
1545
1517 The colors and exception mode commands (%colors/%xmode) have been
1546 The colors and exception mode commands (%colors/%xmode) have been
1518 synchronized to also take this into account, so users can get
1547 synchronized to also take this into account, so users can get
1519 verbose exceptions for their threaded code as well. I also added
1548 verbose exceptions for their threaded code as well. I also added
1520 support for activating pdb inside this exception handler as well,
1549 support for activating pdb inside this exception handler as well,
1521 so now GUI authors can use IPython's enhanced pdb at runtime.
1550 so now GUI authors can use IPython's enhanced pdb at runtime.
1522
1551
1523 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1552 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1524 true by default, and add it to the shipped ipythonrc file. Since
1553 true by default, and add it to the shipped ipythonrc file. Since
1525 this asks the user before proceeding, I think it's OK to make it
1554 this asks the user before proceeding, I think it's OK to make it
1526 true by default.
1555 true by default.
1527
1556
1528 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1557 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1529 of the previous special-casing of input in the eval loop. I think
1558 of the previous special-casing of input in the eval loop. I think
1530 this is cleaner, as they really are commands and shouldn't have
1559 this is cleaner, as they really are commands and shouldn't have
1531 a special role in the middle of the core code.
1560 a special role in the middle of the core code.
1532
1561
1533 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1562 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1534
1563
1535 * IPython/iplib.py (edit_syntax_error): added support for
1564 * IPython/iplib.py (edit_syntax_error): added support for
1536 automatically reopening the editor if the file had a syntax error
1565 automatically reopening the editor if the file had a syntax error
1537 in it. Thanks to scottt who provided the patch at:
1566 in it. Thanks to scottt who provided the patch at:
1538 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1567 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1539 version committed).
1568 version committed).
1540
1569
1541 * IPython/iplib.py (handle_normal): add suport for multi-line
1570 * IPython/iplib.py (handle_normal): add suport for multi-line
1542 input with emtpy lines. This fixes
1571 input with emtpy lines. This fixes
1543 http://www.scipy.net/roundup/ipython/issue43 and a similar
1572 http://www.scipy.net/roundup/ipython/issue43 and a similar
1544 discussion on the user list.
1573 discussion on the user list.
1545
1574
1546 WARNING: a behavior change is necessarily introduced to support
1575 WARNING: a behavior change is necessarily introduced to support
1547 blank lines: now a single blank line with whitespace does NOT
1576 blank lines: now a single blank line with whitespace does NOT
1548 break the input loop, which means that when autoindent is on, by
1577 break the input loop, which means that when autoindent is on, by
1549 default hitting return on the next (indented) line does NOT exit.
1578 default hitting return on the next (indented) line does NOT exit.
1550
1579
1551 Instead, to exit a multiline input you can either have:
1580 Instead, to exit a multiline input you can either have:
1552
1581
1553 - TWO whitespace lines (just hit return again), or
1582 - TWO whitespace lines (just hit return again), or
1554 - a single whitespace line of a different length than provided
1583 - a single whitespace line of a different length than provided
1555 by the autoindent (add or remove a space).
1584 by the autoindent (add or remove a space).
1556
1585
1557 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1586 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1558 module to better organize all readline-related functionality.
1587 module to better organize all readline-related functionality.
1559 I've deleted FlexCompleter and put all completion clases here.
1588 I've deleted FlexCompleter and put all completion clases here.
1560
1589
1561 * IPython/iplib.py (raw_input): improve indentation management.
1590 * IPython/iplib.py (raw_input): improve indentation management.
1562 It is now possible to paste indented code with autoindent on, and
1591 It is now possible to paste indented code with autoindent on, and
1563 the code is interpreted correctly (though it still looks bad on
1592 the code is interpreted correctly (though it still looks bad on
1564 screen, due to the line-oriented nature of ipython).
1593 screen, due to the line-oriented nature of ipython).
1565 (MagicCompleter.complete): change behavior so that a TAB key on an
1594 (MagicCompleter.complete): change behavior so that a TAB key on an
1566 otherwise empty line actually inserts a tab, instead of completing
1595 otherwise empty line actually inserts a tab, instead of completing
1567 on the entire global namespace. This makes it easier to use the
1596 on the entire global namespace. This makes it easier to use the
1568 TAB key for indentation. After a request by Hans Meine
1597 TAB key for indentation. After a request by Hans Meine
1569 <hans_meine-AT-gmx.net>
1598 <hans_meine-AT-gmx.net>
1570 (_prefilter): add support so that typing plain 'exit' or 'quit'
1599 (_prefilter): add support so that typing plain 'exit' or 'quit'
1571 does a sensible thing. Originally I tried to deviate as little as
1600 does a sensible thing. Originally I tried to deviate as little as
1572 possible from the default python behavior, but even that one may
1601 possible from the default python behavior, but even that one may
1573 change in this direction (thread on python-dev to that effect).
1602 change in this direction (thread on python-dev to that effect).
1574 Regardless, ipython should do the right thing even if CPython's
1603 Regardless, ipython should do the right thing even if CPython's
1575 '>>>' prompt doesn't.
1604 '>>>' prompt doesn't.
1576 (InteractiveShell): removed subclassing code.InteractiveConsole
1605 (InteractiveShell): removed subclassing code.InteractiveConsole
1577 class. By now we'd overridden just about all of its methods: I've
1606 class. By now we'd overridden just about all of its methods: I've
1578 copied the remaining two over, and now ipython is a standalone
1607 copied the remaining two over, and now ipython is a standalone
1579 class. This will provide a clearer picture for the chainsaw
1608 class. This will provide a clearer picture for the chainsaw
1580 branch refactoring.
1609 branch refactoring.
1581
1610
1582 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1611 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1583
1612
1584 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1613 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1585 failures for objects which break when dir() is called on them.
1614 failures for objects which break when dir() is called on them.
1586
1615
1587 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1616 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1588 distinct local and global namespaces in the completer API. This
1617 distinct local and global namespaces in the completer API. This
1589 change allows us to properly handle completion with distinct
1618 change allows us to properly handle completion with distinct
1590 scopes, including in embedded instances (this had never really
1619 scopes, including in embedded instances (this had never really
1591 worked correctly).
1620 worked correctly).
1592
1621
1593 Note: this introduces a change in the constructor for
1622 Note: this introduces a change in the constructor for
1594 MagicCompleter, as a new global_namespace parameter is now the
1623 MagicCompleter, as a new global_namespace parameter is now the
1595 second argument (the others were bumped one position).
1624 second argument (the others were bumped one position).
1596
1625
1597 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1626 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1598
1627
1599 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1628 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1600 embedded instances (which can be done now thanks to Vivian's
1629 embedded instances (which can be done now thanks to Vivian's
1601 frame-handling fixes for pdb).
1630 frame-handling fixes for pdb).
1602 (InteractiveShell.__init__): Fix namespace handling problem in
1631 (InteractiveShell.__init__): Fix namespace handling problem in
1603 embedded instances. We were overwriting __main__ unconditionally,
1632 embedded instances. We were overwriting __main__ unconditionally,
1604 and this should only be done for 'full' (non-embedded) IPython;
1633 and this should only be done for 'full' (non-embedded) IPython;
1605 embedded instances must respect the caller's __main__. Thanks to
1634 embedded instances must respect the caller's __main__. Thanks to
1606 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1635 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1607
1636
1608 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1637 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1609
1638
1610 * setup.py: added download_url to setup(). This registers the
1639 * setup.py: added download_url to setup(). This registers the
1611 download address at PyPI, which is not only useful to humans
1640 download address at PyPI, which is not only useful to humans
1612 browsing the site, but is also picked up by setuptools (the Eggs
1641 browsing the site, but is also picked up by setuptools (the Eggs
1613 machinery). Thanks to Ville and R. Kern for the info/discussion
1642 machinery). Thanks to Ville and R. Kern for the info/discussion
1614 on this.
1643 on this.
1615
1644
1616 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1645 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1617
1646
1618 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1647 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1619 This brings a lot of nice functionality to the pdb mode, which now
1648 This brings a lot of nice functionality to the pdb mode, which now
1620 has tab-completion, syntax highlighting, and better stack handling
1649 has tab-completion, syntax highlighting, and better stack handling
1621 than before. Many thanks to Vivian De Smedt
1650 than before. Many thanks to Vivian De Smedt
1622 <vivian-AT-vdesmedt.com> for the original patches.
1651 <vivian-AT-vdesmedt.com> for the original patches.
1623
1652
1624 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1653 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1625
1654
1626 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1655 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1627 sequence to consistently accept the banner argument. The
1656 sequence to consistently accept the banner argument. The
1628 inconsistency was tripping SAGE, thanks to Gary Zablackis
1657 inconsistency was tripping SAGE, thanks to Gary Zablackis
1629 <gzabl-AT-yahoo.com> for the report.
1658 <gzabl-AT-yahoo.com> for the report.
1630
1659
1631 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1660 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1632
1661
1633 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1662 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1634 Fix bug where a naked 'alias' call in the ipythonrc file would
1663 Fix bug where a naked 'alias' call in the ipythonrc file would
1635 cause a crash. Bug reported by Jorgen Stenarson.
1664 cause a crash. Bug reported by Jorgen Stenarson.
1636
1665
1637 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1666 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1638
1667
1639 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1668 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1640 startup time.
1669 startup time.
1641
1670
1642 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1671 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1643 instances had introduced a bug with globals in normal code. Now
1672 instances had introduced a bug with globals in normal code. Now
1644 it's working in all cases.
1673 it's working in all cases.
1645
1674
1646 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1675 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1647 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1676 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1648 has been introduced to set the default case sensitivity of the
1677 has been introduced to set the default case sensitivity of the
1649 searches. Users can still select either mode at runtime on a
1678 searches. Users can still select either mode at runtime on a
1650 per-search basis.
1679 per-search basis.
1651
1680
1652 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1681 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1653
1682
1654 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1683 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1655 attributes in wildcard searches for subclasses. Modified version
1684 attributes in wildcard searches for subclasses. Modified version
1656 of a patch by Jorgen.
1685 of a patch by Jorgen.
1657
1686
1658 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1687 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1659
1688
1660 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1689 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1661 embedded instances. I added a user_global_ns attribute to the
1690 embedded instances. I added a user_global_ns attribute to the
1662 InteractiveShell class to handle this.
1691 InteractiveShell class to handle this.
1663
1692
1664 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1693 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1665
1694
1666 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1695 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1667 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1696 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1668 (reported under win32, but may happen also in other platforms).
1697 (reported under win32, but may happen also in other platforms).
1669 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1698 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1670
1699
1671 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1700 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1672
1701
1673 * IPython/Magic.py (magic_psearch): new support for wildcard
1702 * IPython/Magic.py (magic_psearch): new support for wildcard
1674 patterns. Now, typing ?a*b will list all names which begin with a
1703 patterns. Now, typing ?a*b will list all names which begin with a
1675 and end in b, for example. The %psearch magic has full
1704 and end in b, for example. The %psearch magic has full
1676 docstrings. Many thanks to Jörgen Stenarson
1705 docstrings. Many thanks to Jörgen Stenarson
1677 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1706 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1678 implementing this functionality.
1707 implementing this functionality.
1679
1708
1680 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1709 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1681
1710
1682 * Manual: fixed long-standing annoyance of double-dashes (as in
1711 * Manual: fixed long-standing annoyance of double-dashes (as in
1683 --prefix=~, for example) being stripped in the HTML version. This
1712 --prefix=~, for example) being stripped in the HTML version. This
1684 is a latex2html bug, but a workaround was provided. Many thanks
1713 is a latex2html bug, but a workaround was provided. Many thanks
1685 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1714 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1686 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1715 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1687 rolling. This seemingly small issue had tripped a number of users
1716 rolling. This seemingly small issue had tripped a number of users
1688 when first installing, so I'm glad to see it gone.
1717 when first installing, so I'm glad to see it gone.
1689
1718
1690 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1719 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1691
1720
1692 * IPython/Extensions/numeric_formats.py: fix missing import,
1721 * IPython/Extensions/numeric_formats.py: fix missing import,
1693 reported by Stephen Walton.
1722 reported by Stephen Walton.
1694
1723
1695 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1724 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1696
1725
1697 * IPython/demo.py: finish demo module, fully documented now.
1726 * IPython/demo.py: finish demo module, fully documented now.
1698
1727
1699 * IPython/genutils.py (file_read): simple little utility to read a
1728 * IPython/genutils.py (file_read): simple little utility to read a
1700 file and ensure it's closed afterwards.
1729 file and ensure it's closed afterwards.
1701
1730
1702 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1731 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1703
1732
1704 * IPython/demo.py (Demo.__init__): added support for individually
1733 * IPython/demo.py (Demo.__init__): added support for individually
1705 tagging blocks for automatic execution.
1734 tagging blocks for automatic execution.
1706
1735
1707 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1736 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1708 syntax-highlighted python sources, requested by John.
1737 syntax-highlighted python sources, requested by John.
1709
1738
1710 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1739 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1711
1740
1712 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1741 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1713 finishing.
1742 finishing.
1714
1743
1715 * IPython/genutils.py (shlex_split): moved from Magic to here,
1744 * IPython/genutils.py (shlex_split): moved from Magic to here,
1716 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1745 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1717
1746
1718 * IPython/demo.py (Demo.__init__): added support for silent
1747 * IPython/demo.py (Demo.__init__): added support for silent
1719 blocks, improved marks as regexps, docstrings written.
1748 blocks, improved marks as regexps, docstrings written.
1720 (Demo.__init__): better docstring, added support for sys.argv.
1749 (Demo.__init__): better docstring, added support for sys.argv.
1721
1750
1722 * IPython/genutils.py (marquee): little utility used by the demo
1751 * IPython/genutils.py (marquee): little utility used by the demo
1723 code, handy in general.
1752 code, handy in general.
1724
1753
1725 * IPython/demo.py (Demo.__init__): new class for interactive
1754 * IPython/demo.py (Demo.__init__): new class for interactive
1726 demos. Not documented yet, I just wrote it in a hurry for
1755 demos. Not documented yet, I just wrote it in a hurry for
1727 scipy'05. Will docstring later.
1756 scipy'05. Will docstring later.
1728
1757
1729 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1758 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1730
1759
1731 * IPython/Shell.py (sigint_handler): Drastic simplification which
1760 * IPython/Shell.py (sigint_handler): Drastic simplification which
1732 also seems to make Ctrl-C work correctly across threads! This is
1761 also seems to make Ctrl-C work correctly across threads! This is
1733 so simple, that I can't beleive I'd missed it before. Needs more
1762 so simple, that I can't beleive I'd missed it before. Needs more
1734 testing, though.
1763 testing, though.
1735 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1764 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1736 like this before...
1765 like this before...
1737
1766
1738 * IPython/genutils.py (get_home_dir): add protection against
1767 * IPython/genutils.py (get_home_dir): add protection against
1739 non-dirs in win32 registry.
1768 non-dirs in win32 registry.
1740
1769
1741 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1770 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1742 bug where dict was mutated while iterating (pysh crash).
1771 bug where dict was mutated while iterating (pysh crash).
1743
1772
1744 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1773 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1745
1774
1746 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1775 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1747 spurious newlines added by this routine. After a report by
1776 spurious newlines added by this routine. After a report by
1748 F. Mantegazza.
1777 F. Mantegazza.
1749
1778
1750 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1779 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1751
1780
1752 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1781 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1753 calls. These were a leftover from the GTK 1.x days, and can cause
1782 calls. These were a leftover from the GTK 1.x days, and can cause
1754 problems in certain cases (after a report by John Hunter).
1783 problems in certain cases (after a report by John Hunter).
1755
1784
1756 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1785 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1757 os.getcwd() fails at init time. Thanks to patch from David Remahl
1786 os.getcwd() fails at init time. Thanks to patch from David Remahl
1758 <chmod007-AT-mac.com>.
1787 <chmod007-AT-mac.com>.
1759 (InteractiveShell.__init__): prevent certain special magics from
1788 (InteractiveShell.__init__): prevent certain special magics from
1760 being shadowed by aliases. Closes
1789 being shadowed by aliases. Closes
1761 http://www.scipy.net/roundup/ipython/issue41.
1790 http://www.scipy.net/roundup/ipython/issue41.
1762
1791
1763 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1792 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1764
1793
1765 * IPython/iplib.py (InteractiveShell.complete): Added new
1794 * IPython/iplib.py (InteractiveShell.complete): Added new
1766 top-level completion method to expose the completion mechanism
1795 top-level completion method to expose the completion mechanism
1767 beyond readline-based environments.
1796 beyond readline-based environments.
1768
1797
1769 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1798 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1770
1799
1771 * tools/ipsvnc (svnversion): fix svnversion capture.
1800 * tools/ipsvnc (svnversion): fix svnversion capture.
1772
1801
1773 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1802 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1774 attribute to self, which was missing. Before, it was set by a
1803 attribute to self, which was missing. Before, it was set by a
1775 routine which in certain cases wasn't being called, so the
1804 routine which in certain cases wasn't being called, so the
1776 instance could end up missing the attribute. This caused a crash.
1805 instance could end up missing the attribute. This caused a crash.
1777 Closes http://www.scipy.net/roundup/ipython/issue40.
1806 Closes http://www.scipy.net/roundup/ipython/issue40.
1778
1807
1779 2005-08-16 Fernando Perez <fperez@colorado.edu>
1808 2005-08-16 Fernando Perez <fperez@colorado.edu>
1780
1809
1781 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1810 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1782 contains non-string attribute. Closes
1811 contains non-string attribute. Closes
1783 http://www.scipy.net/roundup/ipython/issue38.
1812 http://www.scipy.net/roundup/ipython/issue38.
1784
1813
1785 2005-08-14 Fernando Perez <fperez@colorado.edu>
1814 2005-08-14 Fernando Perez <fperez@colorado.edu>
1786
1815
1787 * tools/ipsvnc: Minor improvements, to add changeset info.
1816 * tools/ipsvnc: Minor improvements, to add changeset info.
1788
1817
1789 2005-08-12 Fernando Perez <fperez@colorado.edu>
1818 2005-08-12 Fernando Perez <fperez@colorado.edu>
1790
1819
1791 * IPython/iplib.py (runsource): remove self.code_to_run_src
1820 * IPython/iplib.py (runsource): remove self.code_to_run_src
1792 attribute. I realized this is nothing more than
1821 attribute. I realized this is nothing more than
1793 '\n'.join(self.buffer), and having the same data in two different
1822 '\n'.join(self.buffer), and having the same data in two different
1794 places is just asking for synchronization bugs. This may impact
1823 places is just asking for synchronization bugs. This may impact
1795 people who have custom exception handlers, so I need to warn
1824 people who have custom exception handlers, so I need to warn
1796 ipython-dev about it (F. Mantegazza may use them).
1825 ipython-dev about it (F. Mantegazza may use them).
1797
1826
1798 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1827 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1799
1828
1800 * IPython/genutils.py: fix 2.2 compatibility (generators)
1829 * IPython/genutils.py: fix 2.2 compatibility (generators)
1801
1830
1802 2005-07-18 Fernando Perez <fperez@colorado.edu>
1831 2005-07-18 Fernando Perez <fperez@colorado.edu>
1803
1832
1804 * IPython/genutils.py (get_home_dir): fix to help users with
1833 * IPython/genutils.py (get_home_dir): fix to help users with
1805 invalid $HOME under win32.
1834 invalid $HOME under win32.
1806
1835
1807 2005-07-17 Fernando Perez <fperez@colorado.edu>
1836 2005-07-17 Fernando Perez <fperez@colorado.edu>
1808
1837
1809 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1838 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1810 some old hacks and clean up a bit other routines; code should be
1839 some old hacks and clean up a bit other routines; code should be
1811 simpler and a bit faster.
1840 simpler and a bit faster.
1812
1841
1813 * IPython/iplib.py (interact): removed some last-resort attempts
1842 * IPython/iplib.py (interact): removed some last-resort attempts
1814 to survive broken stdout/stderr. That code was only making it
1843 to survive broken stdout/stderr. That code was only making it
1815 harder to abstract out the i/o (necessary for gui integration),
1844 harder to abstract out the i/o (necessary for gui integration),
1816 and the crashes it could prevent were extremely rare in practice
1845 and the crashes it could prevent were extremely rare in practice
1817 (besides being fully user-induced in a pretty violent manner).
1846 (besides being fully user-induced in a pretty violent manner).
1818
1847
1819 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1848 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1820 Nothing major yet, but the code is simpler to read; this should
1849 Nothing major yet, but the code is simpler to read; this should
1821 make it easier to do more serious modifications in the future.
1850 make it easier to do more serious modifications in the future.
1822
1851
1823 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1852 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1824 which broke in .15 (thanks to a report by Ville).
1853 which broke in .15 (thanks to a report by Ville).
1825
1854
1826 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1855 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1827 be quite correct, I know next to nothing about unicode). This
1856 be quite correct, I know next to nothing about unicode). This
1828 will allow unicode strings to be used in prompts, amongst other
1857 will allow unicode strings to be used in prompts, amongst other
1829 cases. It also will prevent ipython from crashing when unicode
1858 cases. It also will prevent ipython from crashing when unicode
1830 shows up unexpectedly in many places. If ascii encoding fails, we
1859 shows up unexpectedly in many places. If ascii encoding fails, we
1831 assume utf_8. Currently the encoding is not a user-visible
1860 assume utf_8. Currently the encoding is not a user-visible
1832 setting, though it could be made so if there is demand for it.
1861 setting, though it could be made so if there is demand for it.
1833
1862
1834 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1863 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1835
1864
1836 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1865 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1837
1866
1838 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1867 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1839
1868
1840 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1869 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1841 code can work transparently for 2.2/2.3.
1870 code can work transparently for 2.2/2.3.
1842
1871
1843 2005-07-16 Fernando Perez <fperez@colorado.edu>
1872 2005-07-16 Fernando Perez <fperez@colorado.edu>
1844
1873
1845 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1874 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1846 out of the color scheme table used for coloring exception
1875 out of the color scheme table used for coloring exception
1847 tracebacks. This allows user code to add new schemes at runtime.
1876 tracebacks. This allows user code to add new schemes at runtime.
1848 This is a minimally modified version of the patch at
1877 This is a minimally modified version of the patch at
1849 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1878 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1850 for the contribution.
1879 for the contribution.
1851
1880
1852 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1881 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1853 slightly modified version of the patch in
1882 slightly modified version of the patch in
1854 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1883 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1855 to remove the previous try/except solution (which was costlier).
1884 to remove the previous try/except solution (which was costlier).
1856 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1885 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1857
1886
1858 2005-06-08 Fernando Perez <fperez@colorado.edu>
1887 2005-06-08 Fernando Perez <fperez@colorado.edu>
1859
1888
1860 * IPython/iplib.py (write/write_err): Add methods to abstract all
1889 * IPython/iplib.py (write/write_err): Add methods to abstract all
1861 I/O a bit more.
1890 I/O a bit more.
1862
1891
1863 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1892 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1864 warning, reported by Aric Hagberg, fix by JD Hunter.
1893 warning, reported by Aric Hagberg, fix by JD Hunter.
1865
1894
1866 2005-06-02 *** Released version 0.6.15
1895 2005-06-02 *** Released version 0.6.15
1867
1896
1868 2005-06-01 Fernando Perez <fperez@colorado.edu>
1897 2005-06-01 Fernando Perez <fperez@colorado.edu>
1869
1898
1870 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1899 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1871 tab-completion of filenames within open-quoted strings. Note that
1900 tab-completion of filenames within open-quoted strings. Note that
1872 this requires that in ~/.ipython/ipythonrc, users change the
1901 this requires that in ~/.ipython/ipythonrc, users change the
1873 readline delimiters configuration to read:
1902 readline delimiters configuration to read:
1874
1903
1875 readline_remove_delims -/~
1904 readline_remove_delims -/~
1876
1905
1877
1906
1878 2005-05-31 *** Released version 0.6.14
1907 2005-05-31 *** Released version 0.6.14
1879
1908
1880 2005-05-29 Fernando Perez <fperez@colorado.edu>
1909 2005-05-29 Fernando Perez <fperez@colorado.edu>
1881
1910
1882 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1911 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1883 with files not on the filesystem. Reported by Eliyahu Sandler
1912 with files not on the filesystem. Reported by Eliyahu Sandler
1884 <eli@gondolin.net>
1913 <eli@gondolin.net>
1885
1914
1886 2005-05-22 Fernando Perez <fperez@colorado.edu>
1915 2005-05-22 Fernando Perez <fperez@colorado.edu>
1887
1916
1888 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1917 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1889 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1918 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1890
1919
1891 2005-05-19 Fernando Perez <fperez@colorado.edu>
1920 2005-05-19 Fernando Perez <fperez@colorado.edu>
1892
1921
1893 * IPython/iplib.py (safe_execfile): close a file which could be
1922 * IPython/iplib.py (safe_execfile): close a file which could be
1894 left open (causing problems in win32, which locks open files).
1923 left open (causing problems in win32, which locks open files).
1895 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1924 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1896
1925
1897 2005-05-18 Fernando Perez <fperez@colorado.edu>
1926 2005-05-18 Fernando Perez <fperez@colorado.edu>
1898
1927
1899 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1928 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1900 keyword arguments correctly to safe_execfile().
1929 keyword arguments correctly to safe_execfile().
1901
1930
1902 2005-05-13 Fernando Perez <fperez@colorado.edu>
1931 2005-05-13 Fernando Perez <fperez@colorado.edu>
1903
1932
1904 * ipython.1: Added info about Qt to manpage, and threads warning
1933 * ipython.1: Added info about Qt to manpage, and threads warning
1905 to usage page (invoked with --help).
1934 to usage page (invoked with --help).
1906
1935
1907 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1936 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1908 new matcher (it goes at the end of the priority list) to do
1937 new matcher (it goes at the end of the priority list) to do
1909 tab-completion on named function arguments. Submitted by George
1938 tab-completion on named function arguments. Submitted by George
1910 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1939 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1911 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1940 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1912 for more details.
1941 for more details.
1913
1942
1914 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1943 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1915 SystemExit exceptions in the script being run. Thanks to a report
1944 SystemExit exceptions in the script being run. Thanks to a report
1916 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1945 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1917 producing very annoying behavior when running unit tests.
1946 producing very annoying behavior when running unit tests.
1918
1947
1919 2005-05-12 Fernando Perez <fperez@colorado.edu>
1948 2005-05-12 Fernando Perez <fperez@colorado.edu>
1920
1949
1921 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1950 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1922 which I'd broken (again) due to a changed regexp. In the process,
1951 which I'd broken (again) due to a changed regexp. In the process,
1923 added ';' as an escape to auto-quote the whole line without
1952 added ';' as an escape to auto-quote the whole line without
1924 splitting its arguments. Thanks to a report by Jerry McRae
1953 splitting its arguments. Thanks to a report by Jerry McRae
1925 <qrs0xyc02-AT-sneakemail.com>.
1954 <qrs0xyc02-AT-sneakemail.com>.
1926
1955
1927 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1956 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1928 possible crashes caused by a TokenError. Reported by Ed Schofield
1957 possible crashes caused by a TokenError. Reported by Ed Schofield
1929 <schofield-AT-ftw.at>.
1958 <schofield-AT-ftw.at>.
1930
1959
1931 2005-05-06 Fernando Perez <fperez@colorado.edu>
1960 2005-05-06 Fernando Perez <fperez@colorado.edu>
1932
1961
1933 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1962 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1934
1963
1935 2005-04-29 Fernando Perez <fperez@colorado.edu>
1964 2005-04-29 Fernando Perez <fperez@colorado.edu>
1936
1965
1937 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1966 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1938 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1967 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1939 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1968 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1940 which provides support for Qt interactive usage (similar to the
1969 which provides support for Qt interactive usage (similar to the
1941 existing one for WX and GTK). This had been often requested.
1970 existing one for WX and GTK). This had been often requested.
1942
1971
1943 2005-04-14 *** Released version 0.6.13
1972 2005-04-14 *** Released version 0.6.13
1944
1973
1945 2005-04-08 Fernando Perez <fperez@colorado.edu>
1974 2005-04-08 Fernando Perez <fperez@colorado.edu>
1946
1975
1947 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1976 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1948 from _ofind, which gets called on almost every input line. Now,
1977 from _ofind, which gets called on almost every input line. Now,
1949 we only try to get docstrings if they are actually going to be
1978 we only try to get docstrings if they are actually going to be
1950 used (the overhead of fetching unnecessary docstrings can be
1979 used (the overhead of fetching unnecessary docstrings can be
1951 noticeable for certain objects, such as Pyro proxies).
1980 noticeable for certain objects, such as Pyro proxies).
1952
1981
1953 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1982 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1954 for completers. For some reason I had been passing them the state
1983 for completers. For some reason I had been passing them the state
1955 variable, which completers never actually need, and was in
1984 variable, which completers never actually need, and was in
1956 conflict with the rlcompleter API. Custom completers ONLY need to
1985 conflict with the rlcompleter API. Custom completers ONLY need to
1957 take the text parameter.
1986 take the text parameter.
1958
1987
1959 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1988 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1960 work correctly in pysh. I've also moved all the logic which used
1989 work correctly in pysh. I've also moved all the logic which used
1961 to be in pysh.py here, which will prevent problems with future
1990 to be in pysh.py here, which will prevent problems with future
1962 upgrades. However, this time I must warn users to update their
1991 upgrades. However, this time I must warn users to update their
1963 pysh profile to include the line
1992 pysh profile to include the line
1964
1993
1965 import_all IPython.Extensions.InterpreterExec
1994 import_all IPython.Extensions.InterpreterExec
1966
1995
1967 because otherwise things won't work for them. They MUST also
1996 because otherwise things won't work for them. They MUST also
1968 delete pysh.py and the line
1997 delete pysh.py and the line
1969
1998
1970 execfile pysh.py
1999 execfile pysh.py
1971
2000
1972 from their ipythonrc-pysh.
2001 from their ipythonrc-pysh.
1973
2002
1974 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2003 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1975 robust in the face of objects whose dir() returns non-strings
2004 robust in the face of objects whose dir() returns non-strings
1976 (which it shouldn't, but some broken libs like ITK do). Thanks to
2005 (which it shouldn't, but some broken libs like ITK do). Thanks to
1977 a patch by John Hunter (implemented differently, though). Also
2006 a patch by John Hunter (implemented differently, though). Also
1978 minor improvements by using .extend instead of + on lists.
2007 minor improvements by using .extend instead of + on lists.
1979
2008
1980 * pysh.py:
2009 * pysh.py:
1981
2010
1982 2005-04-06 Fernando Perez <fperez@colorado.edu>
2011 2005-04-06 Fernando Perez <fperez@colorado.edu>
1983
2012
1984 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2013 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1985 by default, so that all users benefit from it. Those who don't
2014 by default, so that all users benefit from it. Those who don't
1986 want it can still turn it off.
2015 want it can still turn it off.
1987
2016
1988 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2017 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1989 config file, I'd forgotten about this, so users were getting it
2018 config file, I'd forgotten about this, so users were getting it
1990 off by default.
2019 off by default.
1991
2020
1992 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2021 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1993 consistency. Now magics can be called in multiline statements,
2022 consistency. Now magics can be called in multiline statements,
1994 and python variables can be expanded in magic calls via $var.
2023 and python variables can be expanded in magic calls via $var.
1995 This makes the magic system behave just like aliases or !system
2024 This makes the magic system behave just like aliases or !system
1996 calls.
2025 calls.
1997
2026
1998 2005-03-28 Fernando Perez <fperez@colorado.edu>
2027 2005-03-28 Fernando Perez <fperez@colorado.edu>
1999
2028
2000 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2029 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2001 expensive string additions for building command. Add support for
2030 expensive string additions for building command. Add support for
2002 trailing ';' when autocall is used.
2031 trailing ';' when autocall is used.
2003
2032
2004 2005-03-26 Fernando Perez <fperez@colorado.edu>
2033 2005-03-26 Fernando Perez <fperez@colorado.edu>
2005
2034
2006 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2035 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2007 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2036 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2008 ipython.el robust against prompts with any number of spaces
2037 ipython.el robust against prompts with any number of spaces
2009 (including 0) after the ':' character.
2038 (including 0) after the ':' character.
2010
2039
2011 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2040 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2012 continuation prompt, which misled users to think the line was
2041 continuation prompt, which misled users to think the line was
2013 already indented. Closes debian Bug#300847, reported to me by
2042 already indented. Closes debian Bug#300847, reported to me by
2014 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2043 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2015
2044
2016 2005-03-23 Fernando Perez <fperez@colorado.edu>
2045 2005-03-23 Fernando Perez <fperez@colorado.edu>
2017
2046
2018 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2047 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2019 properly aligned if they have embedded newlines.
2048 properly aligned if they have embedded newlines.
2020
2049
2021 * IPython/iplib.py (runlines): Add a public method to expose
2050 * IPython/iplib.py (runlines): Add a public method to expose
2022 IPython's code execution machinery, so that users can run strings
2051 IPython's code execution machinery, so that users can run strings
2023 as if they had been typed at the prompt interactively.
2052 as if they had been typed at the prompt interactively.
2024 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2053 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2025 methods which can call the system shell, but with python variable
2054 methods which can call the system shell, but with python variable
2026 expansion. The three such methods are: __IPYTHON__.system,
2055 expansion. The three such methods are: __IPYTHON__.system,
2027 .getoutput and .getoutputerror. These need to be documented in a
2056 .getoutput and .getoutputerror. These need to be documented in a
2028 'public API' section (to be written) of the manual.
2057 'public API' section (to be written) of the manual.
2029
2058
2030 2005-03-20 Fernando Perez <fperez@colorado.edu>
2059 2005-03-20 Fernando Perez <fperez@colorado.edu>
2031
2060
2032 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2061 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2033 for custom exception handling. This is quite powerful, and it
2062 for custom exception handling. This is quite powerful, and it
2034 allows for user-installable exception handlers which can trap
2063 allows for user-installable exception handlers which can trap
2035 custom exceptions at runtime and treat them separately from
2064 custom exceptions at runtime and treat them separately from
2036 IPython's default mechanisms. At the request of Frédéric
2065 IPython's default mechanisms. At the request of Frédéric
2037 Mantegazza <mantegazza-AT-ill.fr>.
2066 Mantegazza <mantegazza-AT-ill.fr>.
2038 (InteractiveShell.set_custom_completer): public API function to
2067 (InteractiveShell.set_custom_completer): public API function to
2039 add new completers at runtime.
2068 add new completers at runtime.
2040
2069
2041 2005-03-19 Fernando Perez <fperez@colorado.edu>
2070 2005-03-19 Fernando Perez <fperez@colorado.edu>
2042
2071
2043 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2072 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2044 allow objects which provide their docstrings via non-standard
2073 allow objects which provide their docstrings via non-standard
2045 mechanisms (like Pyro proxies) to still be inspected by ipython's
2074 mechanisms (like Pyro proxies) to still be inspected by ipython's
2046 ? system.
2075 ? system.
2047
2076
2048 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2077 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2049 automatic capture system. I tried quite hard to make it work
2078 automatic capture system. I tried quite hard to make it work
2050 reliably, and simply failed. I tried many combinations with the
2079 reliably, and simply failed. I tried many combinations with the
2051 subprocess module, but eventually nothing worked in all needed
2080 subprocess module, but eventually nothing worked in all needed
2052 cases (not blocking stdin for the child, duplicating stdout
2081 cases (not blocking stdin for the child, duplicating stdout
2053 without blocking, etc). The new %sc/%sx still do capture to these
2082 without blocking, etc). The new %sc/%sx still do capture to these
2054 magical list/string objects which make shell use much more
2083 magical list/string objects which make shell use much more
2055 conveninent, so not all is lost.
2084 conveninent, so not all is lost.
2056
2085
2057 XXX - FIX MANUAL for the change above!
2086 XXX - FIX MANUAL for the change above!
2058
2087
2059 (runsource): I copied code.py's runsource() into ipython to modify
2088 (runsource): I copied code.py's runsource() into ipython to modify
2060 it a bit. Now the code object and source to be executed are
2089 it a bit. Now the code object and source to be executed are
2061 stored in ipython. This makes this info accessible to third-party
2090 stored in ipython. This makes this info accessible to third-party
2062 tools, like custom exception handlers. After a request by Frédéric
2091 tools, like custom exception handlers. After a request by Frédéric
2063 Mantegazza <mantegazza-AT-ill.fr>.
2092 Mantegazza <mantegazza-AT-ill.fr>.
2064
2093
2065 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2094 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2066 history-search via readline (like C-p/C-n). I'd wanted this for a
2095 history-search via readline (like C-p/C-n). I'd wanted this for a
2067 long time, but only recently found out how to do it. For users
2096 long time, but only recently found out how to do it. For users
2068 who already have their ipythonrc files made and want this, just
2097 who already have their ipythonrc files made and want this, just
2069 add:
2098 add:
2070
2099
2071 readline_parse_and_bind "\e[A": history-search-backward
2100 readline_parse_and_bind "\e[A": history-search-backward
2072 readline_parse_and_bind "\e[B": history-search-forward
2101 readline_parse_and_bind "\e[B": history-search-forward
2073
2102
2074 2005-03-18 Fernando Perez <fperez@colorado.edu>
2103 2005-03-18 Fernando Perez <fperez@colorado.edu>
2075
2104
2076 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2105 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2077 LSString and SList classes which allow transparent conversions
2106 LSString and SList classes which allow transparent conversions
2078 between list mode and whitespace-separated string.
2107 between list mode and whitespace-separated string.
2079 (magic_r): Fix recursion problem in %r.
2108 (magic_r): Fix recursion problem in %r.
2080
2109
2081 * IPython/genutils.py (LSString): New class to be used for
2110 * IPython/genutils.py (LSString): New class to be used for
2082 automatic storage of the results of all alias/system calls in _o
2111 automatic storage of the results of all alias/system calls in _o
2083 and _e (stdout/err). These provide a .l/.list attribute which
2112 and _e (stdout/err). These provide a .l/.list attribute which
2084 does automatic splitting on newlines. This means that for most
2113 does automatic splitting on newlines. This means that for most
2085 uses, you'll never need to do capturing of output with %sc/%sx
2114 uses, you'll never need to do capturing of output with %sc/%sx
2086 anymore, since ipython keeps this always done for you. Note that
2115 anymore, since ipython keeps this always done for you. Note that
2087 only the LAST results are stored, the _o/e variables are
2116 only the LAST results are stored, the _o/e variables are
2088 overwritten on each call. If you need to save their contents
2117 overwritten on each call. If you need to save their contents
2089 further, simply bind them to any other name.
2118 further, simply bind them to any other name.
2090
2119
2091 2005-03-17 Fernando Perez <fperez@colorado.edu>
2120 2005-03-17 Fernando Perez <fperez@colorado.edu>
2092
2121
2093 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2122 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2094 prompt namespace handling.
2123 prompt namespace handling.
2095
2124
2096 2005-03-16 Fernando Perez <fperez@colorado.edu>
2125 2005-03-16 Fernando Perez <fperez@colorado.edu>
2097
2126
2098 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2127 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2099 classic prompts to be '>>> ' (final space was missing, and it
2128 classic prompts to be '>>> ' (final space was missing, and it
2100 trips the emacs python mode).
2129 trips the emacs python mode).
2101 (BasePrompt.__str__): Added safe support for dynamic prompt
2130 (BasePrompt.__str__): Added safe support for dynamic prompt
2102 strings. Now you can set your prompt string to be '$x', and the
2131 strings. Now you can set your prompt string to be '$x', and the
2103 value of x will be printed from your interactive namespace. The
2132 value of x will be printed from your interactive namespace. The
2104 interpolation syntax includes the full Itpl support, so
2133 interpolation syntax includes the full Itpl support, so
2105 ${foo()+x+bar()} is a valid prompt string now, and the function
2134 ${foo()+x+bar()} is a valid prompt string now, and the function
2106 calls will be made at runtime.
2135 calls will be made at runtime.
2107
2136
2108 2005-03-15 Fernando Perez <fperez@colorado.edu>
2137 2005-03-15 Fernando Perez <fperez@colorado.edu>
2109
2138
2110 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2139 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2111 avoid name clashes in pylab. %hist still works, it just forwards
2140 avoid name clashes in pylab. %hist still works, it just forwards
2112 the call to %history.
2141 the call to %history.
2113
2142
2114 2005-03-02 *** Released version 0.6.12
2143 2005-03-02 *** Released version 0.6.12
2115
2144
2116 2005-03-02 Fernando Perez <fperez@colorado.edu>
2145 2005-03-02 Fernando Perez <fperez@colorado.edu>
2117
2146
2118 * IPython/iplib.py (handle_magic): log magic calls properly as
2147 * IPython/iplib.py (handle_magic): log magic calls properly as
2119 ipmagic() function calls.
2148 ipmagic() function calls.
2120
2149
2121 * IPython/Magic.py (magic_time): Improved %time to support
2150 * IPython/Magic.py (magic_time): Improved %time to support
2122 statements and provide wall-clock as well as CPU time.
2151 statements and provide wall-clock as well as CPU time.
2123
2152
2124 2005-02-27 Fernando Perez <fperez@colorado.edu>
2153 2005-02-27 Fernando Perez <fperez@colorado.edu>
2125
2154
2126 * IPython/hooks.py: New hooks module, to expose user-modifiable
2155 * IPython/hooks.py: New hooks module, to expose user-modifiable
2127 IPython functionality in a clean manner. For now only the editor
2156 IPython functionality in a clean manner. For now only the editor
2128 hook is actually written, and other thigns which I intend to turn
2157 hook is actually written, and other thigns which I intend to turn
2129 into proper hooks aren't yet there. The display and prefilter
2158 into proper hooks aren't yet there. The display and prefilter
2130 stuff, for example, should be hooks. But at least now the
2159 stuff, for example, should be hooks. But at least now the
2131 framework is in place, and the rest can be moved here with more
2160 framework is in place, and the rest can be moved here with more
2132 time later. IPython had had a .hooks variable for a long time for
2161 time later. IPython had had a .hooks variable for a long time for
2133 this purpose, but I'd never actually used it for anything.
2162 this purpose, but I'd never actually used it for anything.
2134
2163
2135 2005-02-26 Fernando Perez <fperez@colorado.edu>
2164 2005-02-26 Fernando Perez <fperez@colorado.edu>
2136
2165
2137 * IPython/ipmaker.py (make_IPython): make the default ipython
2166 * IPython/ipmaker.py (make_IPython): make the default ipython
2138 directory be called _ipython under win32, to follow more the
2167 directory be called _ipython under win32, to follow more the
2139 naming peculiarities of that platform (where buggy software like
2168 naming peculiarities of that platform (where buggy software like
2140 Visual Sourcesafe breaks with .named directories). Reported by
2169 Visual Sourcesafe breaks with .named directories). Reported by
2141 Ville Vainio.
2170 Ville Vainio.
2142
2171
2143 2005-02-23 Fernando Perez <fperez@colorado.edu>
2172 2005-02-23 Fernando Perez <fperez@colorado.edu>
2144
2173
2145 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2174 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2146 auto_aliases for win32 which were causing problems. Users can
2175 auto_aliases for win32 which were causing problems. Users can
2147 define the ones they personally like.
2176 define the ones they personally like.
2148
2177
2149 2005-02-21 Fernando Perez <fperez@colorado.edu>
2178 2005-02-21 Fernando Perez <fperez@colorado.edu>
2150
2179
2151 * IPython/Magic.py (magic_time): new magic to time execution of
2180 * IPython/Magic.py (magic_time): new magic to time execution of
2152 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2181 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2153
2182
2154 2005-02-19 Fernando Perez <fperez@colorado.edu>
2183 2005-02-19 Fernando Perez <fperez@colorado.edu>
2155
2184
2156 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2185 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2157 into keys (for prompts, for example).
2186 into keys (for prompts, for example).
2158
2187
2159 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2188 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2160 prompts in case users want them. This introduces a small behavior
2189 prompts in case users want them. This introduces a small behavior
2161 change: ipython does not automatically add a space to all prompts
2190 change: ipython does not automatically add a space to all prompts
2162 anymore. To get the old prompts with a space, users should add it
2191 anymore. To get the old prompts with a space, users should add it
2163 manually to their ipythonrc file, so for example prompt_in1 should
2192 manually to their ipythonrc file, so for example prompt_in1 should
2164 now read 'In [\#]: ' instead of 'In [\#]:'.
2193 now read 'In [\#]: ' instead of 'In [\#]:'.
2165 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2194 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2166 file) to control left-padding of secondary prompts.
2195 file) to control left-padding of secondary prompts.
2167
2196
2168 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2197 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2169 the profiler can't be imported. Fix for Debian, which removed
2198 the profiler can't be imported. Fix for Debian, which removed
2170 profile.py because of License issues. I applied a slightly
2199 profile.py because of License issues. I applied a slightly
2171 modified version of the original Debian patch at
2200 modified version of the original Debian patch at
2172 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2201 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2173
2202
2174 2005-02-17 Fernando Perez <fperez@colorado.edu>
2203 2005-02-17 Fernando Perez <fperez@colorado.edu>
2175
2204
2176 * IPython/genutils.py (native_line_ends): Fix bug which would
2205 * IPython/genutils.py (native_line_ends): Fix bug which would
2177 cause improper line-ends under win32 b/c I was not opening files
2206 cause improper line-ends under win32 b/c I was not opening files
2178 in binary mode. Bug report and fix thanks to Ville.
2207 in binary mode. Bug report and fix thanks to Ville.
2179
2208
2180 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2209 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2181 trying to catch spurious foo[1] autocalls. My fix actually broke
2210 trying to catch spurious foo[1] autocalls. My fix actually broke
2182 ',/' autoquote/call with explicit escape (bad regexp).
2211 ',/' autoquote/call with explicit escape (bad regexp).
2183
2212
2184 2005-02-15 *** Released version 0.6.11
2213 2005-02-15 *** Released version 0.6.11
2185
2214
2186 2005-02-14 Fernando Perez <fperez@colorado.edu>
2215 2005-02-14 Fernando Perez <fperez@colorado.edu>
2187
2216
2188 * IPython/background_jobs.py: New background job management
2217 * IPython/background_jobs.py: New background job management
2189 subsystem. This is implemented via a new set of classes, and
2218 subsystem. This is implemented via a new set of classes, and
2190 IPython now provides a builtin 'jobs' object for background job
2219 IPython now provides a builtin 'jobs' object for background job
2191 execution. A convenience %bg magic serves as a lightweight
2220 execution. A convenience %bg magic serves as a lightweight
2192 frontend for starting the more common type of calls. This was
2221 frontend for starting the more common type of calls. This was
2193 inspired by discussions with B. Granger and the BackgroundCommand
2222 inspired by discussions with B. Granger and the BackgroundCommand
2194 class described in the book Python Scripting for Computational
2223 class described in the book Python Scripting for Computational
2195 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2224 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2196 (although ultimately no code from this text was used, as IPython's
2225 (although ultimately no code from this text was used, as IPython's
2197 system is a separate implementation).
2226 system is a separate implementation).
2198
2227
2199 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2228 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2200 to control the completion of single/double underscore names
2229 to control the completion of single/double underscore names
2201 separately. As documented in the example ipytonrc file, the
2230 separately. As documented in the example ipytonrc file, the
2202 readline_omit__names variable can now be set to 2, to omit even
2231 readline_omit__names variable can now be set to 2, to omit even
2203 single underscore names. Thanks to a patch by Brian Wong
2232 single underscore names. Thanks to a patch by Brian Wong
2204 <BrianWong-AT-AirgoNetworks.Com>.
2233 <BrianWong-AT-AirgoNetworks.Com>.
2205 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2234 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2206 be autocalled as foo([1]) if foo were callable. A problem for
2235 be autocalled as foo([1]) if foo were callable. A problem for
2207 things which are both callable and implement __getitem__.
2236 things which are both callable and implement __getitem__.
2208 (init_readline): Fix autoindentation for win32. Thanks to a patch
2237 (init_readline): Fix autoindentation for win32. Thanks to a patch
2209 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2238 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2210
2239
2211 2005-02-12 Fernando Perez <fperez@colorado.edu>
2240 2005-02-12 Fernando Perez <fperez@colorado.edu>
2212
2241
2213 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2242 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2214 which I had written long ago to sort out user error messages which
2243 which I had written long ago to sort out user error messages which
2215 may occur during startup. This seemed like a good idea initially,
2244 may occur during startup. This seemed like a good idea initially,
2216 but it has proven a disaster in retrospect. I don't want to
2245 but it has proven a disaster in retrospect. I don't want to
2217 change much code for now, so my fix is to set the internal 'debug'
2246 change much code for now, so my fix is to set the internal 'debug'
2218 flag to true everywhere, whose only job was precisely to control
2247 flag to true everywhere, whose only job was precisely to control
2219 this subsystem. This closes issue 28 (as well as avoiding all
2248 this subsystem. This closes issue 28 (as well as avoiding all
2220 sorts of strange hangups which occur from time to time).
2249 sorts of strange hangups which occur from time to time).
2221
2250
2222 2005-02-07 Fernando Perez <fperez@colorado.edu>
2251 2005-02-07 Fernando Perez <fperez@colorado.edu>
2223
2252
2224 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2253 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2225 previous call produced a syntax error.
2254 previous call produced a syntax error.
2226
2255
2227 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2256 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2228 classes without constructor.
2257 classes without constructor.
2229
2258
2230 2005-02-06 Fernando Perez <fperez@colorado.edu>
2259 2005-02-06 Fernando Perez <fperez@colorado.edu>
2231
2260
2232 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2261 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2233 completions with the results of each matcher, so we return results
2262 completions with the results of each matcher, so we return results
2234 to the user from all namespaces. This breaks with ipython
2263 to the user from all namespaces. This breaks with ipython
2235 tradition, but I think it's a nicer behavior. Now you get all
2264 tradition, but I think it's a nicer behavior. Now you get all
2236 possible completions listed, from all possible namespaces (python,
2265 possible completions listed, from all possible namespaces (python,
2237 filesystem, magics...) After a request by John Hunter
2266 filesystem, magics...) After a request by John Hunter
2238 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2267 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2239
2268
2240 2005-02-05 Fernando Perez <fperez@colorado.edu>
2269 2005-02-05 Fernando Perez <fperez@colorado.edu>
2241
2270
2242 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2271 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2243 the call had quote characters in it (the quotes were stripped).
2272 the call had quote characters in it (the quotes were stripped).
2244
2273
2245 2005-01-31 Fernando Perez <fperez@colorado.edu>
2274 2005-01-31 Fernando Perez <fperez@colorado.edu>
2246
2275
2247 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2276 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2248 Itpl.itpl() to make the code more robust against psyco
2277 Itpl.itpl() to make the code more robust against psyco
2249 optimizations.
2278 optimizations.
2250
2279
2251 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2280 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2252 of causing an exception. Quicker, cleaner.
2281 of causing an exception. Quicker, cleaner.
2253
2282
2254 2005-01-28 Fernando Perez <fperez@colorado.edu>
2283 2005-01-28 Fernando Perez <fperez@colorado.edu>
2255
2284
2256 * scripts/ipython_win_post_install.py (install): hardcode
2285 * scripts/ipython_win_post_install.py (install): hardcode
2257 sys.prefix+'python.exe' as the executable path. It turns out that
2286 sys.prefix+'python.exe' as the executable path. It turns out that
2258 during the post-installation run, sys.executable resolves to the
2287 during the post-installation run, sys.executable resolves to the
2259 name of the binary installer! I should report this as a distutils
2288 name of the binary installer! I should report this as a distutils
2260 bug, I think. I updated the .10 release with this tiny fix, to
2289 bug, I think. I updated the .10 release with this tiny fix, to
2261 avoid annoying the lists further.
2290 avoid annoying the lists further.
2262
2291
2263 2005-01-27 *** Released version 0.6.10
2292 2005-01-27 *** Released version 0.6.10
2264
2293
2265 2005-01-27 Fernando Perez <fperez@colorado.edu>
2294 2005-01-27 Fernando Perez <fperez@colorado.edu>
2266
2295
2267 * IPython/numutils.py (norm): Added 'inf' as optional name for
2296 * IPython/numutils.py (norm): Added 'inf' as optional name for
2268 L-infinity norm, included references to mathworld.com for vector
2297 L-infinity norm, included references to mathworld.com for vector
2269 norm definitions.
2298 norm definitions.
2270 (amin/amax): added amin/amax for array min/max. Similar to what
2299 (amin/amax): added amin/amax for array min/max. Similar to what
2271 pylab ships with after the recent reorganization of names.
2300 pylab ships with after the recent reorganization of names.
2272 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2301 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2273
2302
2274 * ipython.el: committed Alex's recent fixes and improvements.
2303 * ipython.el: committed Alex's recent fixes and improvements.
2275 Tested with python-mode from CVS, and it looks excellent. Since
2304 Tested with python-mode from CVS, and it looks excellent. Since
2276 python-mode hasn't released anything in a while, I'm temporarily
2305 python-mode hasn't released anything in a while, I'm temporarily
2277 putting a copy of today's CVS (v 4.70) of python-mode in:
2306 putting a copy of today's CVS (v 4.70) of python-mode in:
2278 http://ipython.scipy.org/tmp/python-mode.el
2307 http://ipython.scipy.org/tmp/python-mode.el
2279
2308
2280 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2309 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2281 sys.executable for the executable name, instead of assuming it's
2310 sys.executable for the executable name, instead of assuming it's
2282 called 'python.exe' (the post-installer would have produced broken
2311 called 'python.exe' (the post-installer would have produced broken
2283 setups on systems with a differently named python binary).
2312 setups on systems with a differently named python binary).
2284
2313
2285 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2314 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2286 references to os.linesep, to make the code more
2315 references to os.linesep, to make the code more
2287 platform-independent. This is also part of the win32 coloring
2316 platform-independent. This is also part of the win32 coloring
2288 fixes.
2317 fixes.
2289
2318
2290 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2319 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2291 lines, which actually cause coloring bugs because the length of
2320 lines, which actually cause coloring bugs because the length of
2292 the line is very difficult to correctly compute with embedded
2321 the line is very difficult to correctly compute with embedded
2293 escapes. This was the source of all the coloring problems under
2322 escapes. This was the source of all the coloring problems under
2294 Win32. I think that _finally_, Win32 users have a properly
2323 Win32. I think that _finally_, Win32 users have a properly
2295 working ipython in all respects. This would never have happened
2324 working ipython in all respects. This would never have happened
2296 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2325 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2297
2326
2298 2005-01-26 *** Released version 0.6.9
2327 2005-01-26 *** Released version 0.6.9
2299
2328
2300 2005-01-25 Fernando Perez <fperez@colorado.edu>
2329 2005-01-25 Fernando Perez <fperez@colorado.edu>
2301
2330
2302 * setup.py: finally, we have a true Windows installer, thanks to
2331 * setup.py: finally, we have a true Windows installer, thanks to
2303 the excellent work of Viktor Ransmayr
2332 the excellent work of Viktor Ransmayr
2304 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2333 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2305 Windows users. The setup routine is quite a bit cleaner thanks to
2334 Windows users. The setup routine is quite a bit cleaner thanks to
2306 this, and the post-install script uses the proper functions to
2335 this, and the post-install script uses the proper functions to
2307 allow a clean de-installation using the standard Windows Control
2336 allow a clean de-installation using the standard Windows Control
2308 Panel.
2337 Panel.
2309
2338
2310 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2339 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2311 environment variable under all OSes (including win32) if
2340 environment variable under all OSes (including win32) if
2312 available. This will give consistency to win32 users who have set
2341 available. This will give consistency to win32 users who have set
2313 this variable for any reason. If os.environ['HOME'] fails, the
2342 this variable for any reason. If os.environ['HOME'] fails, the
2314 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2343 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2315
2344
2316 2005-01-24 Fernando Perez <fperez@colorado.edu>
2345 2005-01-24 Fernando Perez <fperez@colorado.edu>
2317
2346
2318 * IPython/numutils.py (empty_like): add empty_like(), similar to
2347 * IPython/numutils.py (empty_like): add empty_like(), similar to
2319 zeros_like() but taking advantage of the new empty() Numeric routine.
2348 zeros_like() but taking advantage of the new empty() Numeric routine.
2320
2349
2321 2005-01-23 *** Released version 0.6.8
2350 2005-01-23 *** Released version 0.6.8
2322
2351
2323 2005-01-22 Fernando Perez <fperez@colorado.edu>
2352 2005-01-22 Fernando Perez <fperez@colorado.edu>
2324
2353
2325 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2354 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2326 automatic show() calls. After discussing things with JDH, it
2355 automatic show() calls. After discussing things with JDH, it
2327 turns out there are too many corner cases where this can go wrong.
2356 turns out there are too many corner cases where this can go wrong.
2328 It's best not to try to be 'too smart', and simply have ipython
2357 It's best not to try to be 'too smart', and simply have ipython
2329 reproduce as much as possible the default behavior of a normal
2358 reproduce as much as possible the default behavior of a normal
2330 python shell.
2359 python shell.
2331
2360
2332 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2361 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2333 line-splitting regexp and _prefilter() to avoid calling getattr()
2362 line-splitting regexp and _prefilter() to avoid calling getattr()
2334 on assignments. This closes
2363 on assignments. This closes
2335 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2364 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2336 readline uses getattr(), so a simple <TAB> keypress is still
2365 readline uses getattr(), so a simple <TAB> keypress is still
2337 enough to trigger getattr() calls on an object.
2366 enough to trigger getattr() calls on an object.
2338
2367
2339 2005-01-21 Fernando Perez <fperez@colorado.edu>
2368 2005-01-21 Fernando Perez <fperez@colorado.edu>
2340
2369
2341 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2370 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2342 docstring under pylab so it doesn't mask the original.
2371 docstring under pylab so it doesn't mask the original.
2343
2372
2344 2005-01-21 *** Released version 0.6.7
2373 2005-01-21 *** Released version 0.6.7
2345
2374
2346 2005-01-21 Fernando Perez <fperez@colorado.edu>
2375 2005-01-21 Fernando Perez <fperez@colorado.edu>
2347
2376
2348 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2377 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2349 signal handling for win32 users in multithreaded mode.
2378 signal handling for win32 users in multithreaded mode.
2350
2379
2351 2005-01-17 Fernando Perez <fperez@colorado.edu>
2380 2005-01-17 Fernando Perez <fperez@colorado.edu>
2352
2381
2353 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2382 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2354 instances with no __init__. After a crash report by Norbert Nemec
2383 instances with no __init__. After a crash report by Norbert Nemec
2355 <Norbert-AT-nemec-online.de>.
2384 <Norbert-AT-nemec-online.de>.
2356
2385
2357 2005-01-14 Fernando Perez <fperez@colorado.edu>
2386 2005-01-14 Fernando Perez <fperez@colorado.edu>
2358
2387
2359 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2388 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2360 names for verbose exceptions, when multiple dotted names and the
2389 names for verbose exceptions, when multiple dotted names and the
2361 'parent' object were present on the same line.
2390 'parent' object were present on the same line.
2362
2391
2363 2005-01-11 Fernando Perez <fperez@colorado.edu>
2392 2005-01-11 Fernando Perez <fperez@colorado.edu>
2364
2393
2365 * IPython/genutils.py (flag_calls): new utility to trap and flag
2394 * IPython/genutils.py (flag_calls): new utility to trap and flag
2366 calls in functions. I need it to clean up matplotlib support.
2395 calls in functions. I need it to clean up matplotlib support.
2367 Also removed some deprecated code in genutils.
2396 Also removed some deprecated code in genutils.
2368
2397
2369 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2398 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2370 that matplotlib scripts called with %run, which don't call show()
2399 that matplotlib scripts called with %run, which don't call show()
2371 themselves, still have their plotting windows open.
2400 themselves, still have their plotting windows open.
2372
2401
2373 2005-01-05 Fernando Perez <fperez@colorado.edu>
2402 2005-01-05 Fernando Perez <fperez@colorado.edu>
2374
2403
2375 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2404 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2376 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2405 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2377
2406
2378 2004-12-19 Fernando Perez <fperez@colorado.edu>
2407 2004-12-19 Fernando Perez <fperez@colorado.edu>
2379
2408
2380 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2409 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2381 parent_runcode, which was an eyesore. The same result can be
2410 parent_runcode, which was an eyesore. The same result can be
2382 obtained with Python's regular superclass mechanisms.
2411 obtained with Python's regular superclass mechanisms.
2383
2412
2384 2004-12-17 Fernando Perez <fperez@colorado.edu>
2413 2004-12-17 Fernando Perez <fperez@colorado.edu>
2385
2414
2386 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2415 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2387 reported by Prabhu.
2416 reported by Prabhu.
2388 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2417 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2389 sys.stderr) instead of explicitly calling sys.stderr. This helps
2418 sys.stderr) instead of explicitly calling sys.stderr. This helps
2390 maintain our I/O abstractions clean, for future GUI embeddings.
2419 maintain our I/O abstractions clean, for future GUI embeddings.
2391
2420
2392 * IPython/genutils.py (info): added new utility for sys.stderr
2421 * IPython/genutils.py (info): added new utility for sys.stderr
2393 unified info message handling (thin wrapper around warn()).
2422 unified info message handling (thin wrapper around warn()).
2394
2423
2395 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2424 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2396 composite (dotted) names on verbose exceptions.
2425 composite (dotted) names on verbose exceptions.
2397 (VerboseTB.nullrepr): harden against another kind of errors which
2426 (VerboseTB.nullrepr): harden against another kind of errors which
2398 Python's inspect module can trigger, and which were crashing
2427 Python's inspect module can trigger, and which were crashing
2399 IPython. Thanks to a report by Marco Lombardi
2428 IPython. Thanks to a report by Marco Lombardi
2400 <mlombard-AT-ma010192.hq.eso.org>.
2429 <mlombard-AT-ma010192.hq.eso.org>.
2401
2430
2402 2004-12-13 *** Released version 0.6.6
2431 2004-12-13 *** Released version 0.6.6
2403
2432
2404 2004-12-12 Fernando Perez <fperez@colorado.edu>
2433 2004-12-12 Fernando Perez <fperez@colorado.edu>
2405
2434
2406 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2435 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2407 generated by pygtk upon initialization if it was built without
2436 generated by pygtk upon initialization if it was built without
2408 threads (for matplotlib users). After a crash reported by
2437 threads (for matplotlib users). After a crash reported by
2409 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2438 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2410
2439
2411 * IPython/ipmaker.py (make_IPython): fix small bug in the
2440 * IPython/ipmaker.py (make_IPython): fix small bug in the
2412 import_some parameter for multiple imports.
2441 import_some parameter for multiple imports.
2413
2442
2414 * IPython/iplib.py (ipmagic): simplified the interface of
2443 * IPython/iplib.py (ipmagic): simplified the interface of
2415 ipmagic() to take a single string argument, just as it would be
2444 ipmagic() to take a single string argument, just as it would be
2416 typed at the IPython cmd line.
2445 typed at the IPython cmd line.
2417 (ipalias): Added new ipalias() with an interface identical to
2446 (ipalias): Added new ipalias() with an interface identical to
2418 ipmagic(). This completes exposing a pure python interface to the
2447 ipmagic(). This completes exposing a pure python interface to the
2419 alias and magic system, which can be used in loops or more complex
2448 alias and magic system, which can be used in loops or more complex
2420 code where IPython's automatic line mangling is not active.
2449 code where IPython's automatic line mangling is not active.
2421
2450
2422 * IPython/genutils.py (timing): changed interface of timing to
2451 * IPython/genutils.py (timing): changed interface of timing to
2423 simply run code once, which is the most common case. timings()
2452 simply run code once, which is the most common case. timings()
2424 remains unchanged, for the cases where you want multiple runs.
2453 remains unchanged, for the cases where you want multiple runs.
2425
2454
2426 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2455 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2427 bug where Python2.2 crashes with exec'ing code which does not end
2456 bug where Python2.2 crashes with exec'ing code which does not end
2428 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2457 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2429 before.
2458 before.
2430
2459
2431 2004-12-10 Fernando Perez <fperez@colorado.edu>
2460 2004-12-10 Fernando Perez <fperez@colorado.edu>
2432
2461
2433 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2462 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2434 -t to -T, to accomodate the new -t flag in %run (the %run and
2463 -t to -T, to accomodate the new -t flag in %run (the %run and
2435 %prun options are kind of intermixed, and it's not easy to change
2464 %prun options are kind of intermixed, and it's not easy to change
2436 this with the limitations of python's getopt).
2465 this with the limitations of python's getopt).
2437
2466
2438 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2467 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2439 the execution of scripts. It's not as fine-tuned as timeit.py,
2468 the execution of scripts. It's not as fine-tuned as timeit.py,
2440 but it works from inside ipython (and under 2.2, which lacks
2469 but it works from inside ipython (and under 2.2, which lacks
2441 timeit.py). Optionally a number of runs > 1 can be given for
2470 timeit.py). Optionally a number of runs > 1 can be given for
2442 timing very short-running code.
2471 timing very short-running code.
2443
2472
2444 * IPython/genutils.py (uniq_stable): new routine which returns a
2473 * IPython/genutils.py (uniq_stable): new routine which returns a
2445 list of unique elements in any iterable, but in stable order of
2474 list of unique elements in any iterable, but in stable order of
2446 appearance. I needed this for the ultraTB fixes, and it's a handy
2475 appearance. I needed this for the ultraTB fixes, and it's a handy
2447 utility.
2476 utility.
2448
2477
2449 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2478 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2450 dotted names in Verbose exceptions. This had been broken since
2479 dotted names in Verbose exceptions. This had been broken since
2451 the very start, now x.y will properly be printed in a Verbose
2480 the very start, now x.y will properly be printed in a Verbose
2452 traceback, instead of x being shown and y appearing always as an
2481 traceback, instead of x being shown and y appearing always as an
2453 'undefined global'. Getting this to work was a bit tricky,
2482 'undefined global'. Getting this to work was a bit tricky,
2454 because by default python tokenizers are stateless. Saved by
2483 because by default python tokenizers are stateless. Saved by
2455 python's ability to easily add a bit of state to an arbitrary
2484 python's ability to easily add a bit of state to an arbitrary
2456 function (without needing to build a full-blown callable object).
2485 function (without needing to build a full-blown callable object).
2457
2486
2458 Also big cleanup of this code, which had horrendous runtime
2487 Also big cleanup of this code, which had horrendous runtime
2459 lookups of zillions of attributes for colorization. Moved all
2488 lookups of zillions of attributes for colorization. Moved all
2460 this code into a few templates, which make it cleaner and quicker.
2489 this code into a few templates, which make it cleaner and quicker.
2461
2490
2462 Printout quality was also improved for Verbose exceptions: one
2491 Printout quality was also improved for Verbose exceptions: one
2463 variable per line, and memory addresses are printed (this can be
2492 variable per line, and memory addresses are printed (this can be
2464 quite handy in nasty debugging situations, which is what Verbose
2493 quite handy in nasty debugging situations, which is what Verbose
2465 is for).
2494 is for).
2466
2495
2467 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2496 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2468 the command line as scripts to be loaded by embedded instances.
2497 the command line as scripts to be loaded by embedded instances.
2469 Doing so has the potential for an infinite recursion if there are
2498 Doing so has the potential for an infinite recursion if there are
2470 exceptions thrown in the process. This fixes a strange crash
2499 exceptions thrown in the process. This fixes a strange crash
2471 reported by Philippe MULLER <muller-AT-irit.fr>.
2500 reported by Philippe MULLER <muller-AT-irit.fr>.
2472
2501
2473 2004-12-09 Fernando Perez <fperez@colorado.edu>
2502 2004-12-09 Fernando Perez <fperez@colorado.edu>
2474
2503
2475 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2504 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2476 to reflect new names in matplotlib, which now expose the
2505 to reflect new names in matplotlib, which now expose the
2477 matlab-compatible interface via a pylab module instead of the
2506 matlab-compatible interface via a pylab module instead of the
2478 'matlab' name. The new code is backwards compatible, so users of
2507 'matlab' name. The new code is backwards compatible, so users of
2479 all matplotlib versions are OK. Patch by J. Hunter.
2508 all matplotlib versions are OK. Patch by J. Hunter.
2480
2509
2481 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2510 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2482 of __init__ docstrings for instances (class docstrings are already
2511 of __init__ docstrings for instances (class docstrings are already
2483 automatically printed). Instances with customized docstrings
2512 automatically printed). Instances with customized docstrings
2484 (indep. of the class) are also recognized and all 3 separate
2513 (indep. of the class) are also recognized and all 3 separate
2485 docstrings are printed (instance, class, constructor). After some
2514 docstrings are printed (instance, class, constructor). After some
2486 comments/suggestions by J. Hunter.
2515 comments/suggestions by J. Hunter.
2487
2516
2488 2004-12-05 Fernando Perez <fperez@colorado.edu>
2517 2004-12-05 Fernando Perez <fperez@colorado.edu>
2489
2518
2490 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2519 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2491 warnings when tab-completion fails and triggers an exception.
2520 warnings when tab-completion fails and triggers an exception.
2492
2521
2493 2004-12-03 Fernando Perez <fperez@colorado.edu>
2522 2004-12-03 Fernando Perez <fperez@colorado.edu>
2494
2523
2495 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2524 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2496 be triggered when using 'run -p'. An incorrect option flag was
2525 be triggered when using 'run -p'. An incorrect option flag was
2497 being set ('d' instead of 'D').
2526 being set ('d' instead of 'D').
2498 (manpage): fix missing escaped \- sign.
2527 (manpage): fix missing escaped \- sign.
2499
2528
2500 2004-11-30 *** Released version 0.6.5
2529 2004-11-30 *** Released version 0.6.5
2501
2530
2502 2004-11-30 Fernando Perez <fperez@colorado.edu>
2531 2004-11-30 Fernando Perez <fperez@colorado.edu>
2503
2532
2504 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2533 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2505 setting with -d option.
2534 setting with -d option.
2506
2535
2507 * setup.py (docfiles): Fix problem where the doc glob I was using
2536 * setup.py (docfiles): Fix problem where the doc glob I was using
2508 was COMPLETELY BROKEN. It was giving the right files by pure
2537 was COMPLETELY BROKEN. It was giving the right files by pure
2509 accident, but failed once I tried to include ipython.el. Note:
2538 accident, but failed once I tried to include ipython.el. Note:
2510 glob() does NOT allow you to do exclusion on multiple endings!
2539 glob() does NOT allow you to do exclusion on multiple endings!
2511
2540
2512 2004-11-29 Fernando Perez <fperez@colorado.edu>
2541 2004-11-29 Fernando Perez <fperez@colorado.edu>
2513
2542
2514 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2543 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2515 the manpage as the source. Better formatting & consistency.
2544 the manpage as the source. Better formatting & consistency.
2516
2545
2517 * IPython/Magic.py (magic_run): Added new -d option, to run
2546 * IPython/Magic.py (magic_run): Added new -d option, to run
2518 scripts under the control of the python pdb debugger. Note that
2547 scripts under the control of the python pdb debugger. Note that
2519 this required changing the %prun option -d to -D, to avoid a clash
2548 this required changing the %prun option -d to -D, to avoid a clash
2520 (since %run must pass options to %prun, and getopt is too dumb to
2549 (since %run must pass options to %prun, and getopt is too dumb to
2521 handle options with string values with embedded spaces). Thanks
2550 handle options with string values with embedded spaces). Thanks
2522 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2551 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2523 (magic_who_ls): added type matching to %who and %whos, so that one
2552 (magic_who_ls): added type matching to %who and %whos, so that one
2524 can filter their output to only include variables of certain
2553 can filter their output to only include variables of certain
2525 types. Another suggestion by Matthew.
2554 types. Another suggestion by Matthew.
2526 (magic_whos): Added memory summaries in kb and Mb for arrays.
2555 (magic_whos): Added memory summaries in kb and Mb for arrays.
2527 (magic_who): Improve formatting (break lines every 9 vars).
2556 (magic_who): Improve formatting (break lines every 9 vars).
2528
2557
2529 2004-11-28 Fernando Perez <fperez@colorado.edu>
2558 2004-11-28 Fernando Perez <fperez@colorado.edu>
2530
2559
2531 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2560 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2532 cache when empty lines were present.
2561 cache when empty lines were present.
2533
2562
2534 2004-11-24 Fernando Perez <fperez@colorado.edu>
2563 2004-11-24 Fernando Perez <fperez@colorado.edu>
2535
2564
2536 * IPython/usage.py (__doc__): document the re-activated threading
2565 * IPython/usage.py (__doc__): document the re-activated threading
2537 options for WX and GTK.
2566 options for WX and GTK.
2538
2567
2539 2004-11-23 Fernando Perez <fperez@colorado.edu>
2568 2004-11-23 Fernando Perez <fperez@colorado.edu>
2540
2569
2541 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2570 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2542 the -wthread and -gthread options, along with a new -tk one to try
2571 the -wthread and -gthread options, along with a new -tk one to try
2543 and coordinate Tk threading with wx/gtk. The tk support is very
2572 and coordinate Tk threading with wx/gtk. The tk support is very
2544 platform dependent, since it seems to require Tcl and Tk to be
2573 platform dependent, since it seems to require Tcl and Tk to be
2545 built with threads (Fedora1/2 appears NOT to have it, but in
2574 built with threads (Fedora1/2 appears NOT to have it, but in
2546 Prabhu's Debian boxes it works OK). But even with some Tk
2575 Prabhu's Debian boxes it works OK). But even with some Tk
2547 limitations, this is a great improvement.
2576 limitations, this is a great improvement.
2548
2577
2549 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2578 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2550 info in user prompts. Patch by Prabhu.
2579 info in user prompts. Patch by Prabhu.
2551
2580
2552 2004-11-18 Fernando Perez <fperez@colorado.edu>
2581 2004-11-18 Fernando Perez <fperez@colorado.edu>
2553
2582
2554 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2583 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2555 EOFErrors and bail, to avoid infinite loops if a non-terminating
2584 EOFErrors and bail, to avoid infinite loops if a non-terminating
2556 file is fed into ipython. Patch submitted in issue 19 by user,
2585 file is fed into ipython. Patch submitted in issue 19 by user,
2557 many thanks.
2586 many thanks.
2558
2587
2559 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2588 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2560 autoquote/parens in continuation prompts, which can cause lots of
2589 autoquote/parens in continuation prompts, which can cause lots of
2561 problems. Closes roundup issue 20.
2590 problems. Closes roundup issue 20.
2562
2591
2563 2004-11-17 Fernando Perez <fperez@colorado.edu>
2592 2004-11-17 Fernando Perez <fperez@colorado.edu>
2564
2593
2565 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2594 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2566 reported as debian bug #280505. I'm not sure my local changelog
2595 reported as debian bug #280505. I'm not sure my local changelog
2567 entry has the proper debian format (Jack?).
2596 entry has the proper debian format (Jack?).
2568
2597
2569 2004-11-08 *** Released version 0.6.4
2598 2004-11-08 *** Released version 0.6.4
2570
2599
2571 2004-11-08 Fernando Perez <fperez@colorado.edu>
2600 2004-11-08 Fernando Perez <fperez@colorado.edu>
2572
2601
2573 * IPython/iplib.py (init_readline): Fix exit message for Windows
2602 * IPython/iplib.py (init_readline): Fix exit message for Windows
2574 when readline is active. Thanks to a report by Eric Jones
2603 when readline is active. Thanks to a report by Eric Jones
2575 <eric-AT-enthought.com>.
2604 <eric-AT-enthought.com>.
2576
2605
2577 2004-11-07 Fernando Perez <fperez@colorado.edu>
2606 2004-11-07 Fernando Perez <fperez@colorado.edu>
2578
2607
2579 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2608 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2580 sometimes seen by win2k/cygwin users.
2609 sometimes seen by win2k/cygwin users.
2581
2610
2582 2004-11-06 Fernando Perez <fperez@colorado.edu>
2611 2004-11-06 Fernando Perez <fperez@colorado.edu>
2583
2612
2584 * IPython/iplib.py (interact): Change the handling of %Exit from
2613 * IPython/iplib.py (interact): Change the handling of %Exit from
2585 trying to propagate a SystemExit to an internal ipython flag.
2614 trying to propagate a SystemExit to an internal ipython flag.
2586 This is less elegant than using Python's exception mechanism, but
2615 This is less elegant than using Python's exception mechanism, but
2587 I can't get that to work reliably with threads, so under -pylab
2616 I can't get that to work reliably with threads, so under -pylab
2588 %Exit was hanging IPython. Cross-thread exception handling is
2617 %Exit was hanging IPython. Cross-thread exception handling is
2589 really a bitch. Thaks to a bug report by Stephen Walton
2618 really a bitch. Thaks to a bug report by Stephen Walton
2590 <stephen.walton-AT-csun.edu>.
2619 <stephen.walton-AT-csun.edu>.
2591
2620
2592 2004-11-04 Fernando Perez <fperez@colorado.edu>
2621 2004-11-04 Fernando Perez <fperez@colorado.edu>
2593
2622
2594 * IPython/iplib.py (raw_input_original): store a pointer to the
2623 * IPython/iplib.py (raw_input_original): store a pointer to the
2595 true raw_input to harden against code which can modify it
2624 true raw_input to harden against code which can modify it
2596 (wx.py.PyShell does this and would otherwise crash ipython).
2625 (wx.py.PyShell does this and would otherwise crash ipython).
2597 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2626 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2598
2627
2599 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2628 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2600 Ctrl-C problem, which does not mess up the input line.
2629 Ctrl-C problem, which does not mess up the input line.
2601
2630
2602 2004-11-03 Fernando Perez <fperez@colorado.edu>
2631 2004-11-03 Fernando Perez <fperez@colorado.edu>
2603
2632
2604 * IPython/Release.py: Changed licensing to BSD, in all files.
2633 * IPython/Release.py: Changed licensing to BSD, in all files.
2605 (name): lowercase name for tarball/RPM release.
2634 (name): lowercase name for tarball/RPM release.
2606
2635
2607 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2636 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2608 use throughout ipython.
2637 use throughout ipython.
2609
2638
2610 * IPython/Magic.py (Magic._ofind): Switch to using the new
2639 * IPython/Magic.py (Magic._ofind): Switch to using the new
2611 OInspect.getdoc() function.
2640 OInspect.getdoc() function.
2612
2641
2613 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2642 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2614 of the line currently being canceled via Ctrl-C. It's extremely
2643 of the line currently being canceled via Ctrl-C. It's extremely
2615 ugly, but I don't know how to do it better (the problem is one of
2644 ugly, but I don't know how to do it better (the problem is one of
2616 handling cross-thread exceptions).
2645 handling cross-thread exceptions).
2617
2646
2618 2004-10-28 Fernando Perez <fperez@colorado.edu>
2647 2004-10-28 Fernando Perez <fperez@colorado.edu>
2619
2648
2620 * IPython/Shell.py (signal_handler): add signal handlers to trap
2649 * IPython/Shell.py (signal_handler): add signal handlers to trap
2621 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2650 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2622 report by Francesc Alted.
2651 report by Francesc Alted.
2623
2652
2624 2004-10-21 Fernando Perez <fperez@colorado.edu>
2653 2004-10-21 Fernando Perez <fperez@colorado.edu>
2625
2654
2626 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2655 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2627 to % for pysh syntax extensions.
2656 to % for pysh syntax extensions.
2628
2657
2629 2004-10-09 Fernando Perez <fperez@colorado.edu>
2658 2004-10-09 Fernando Perez <fperez@colorado.edu>
2630
2659
2631 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2660 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2632 arrays to print a more useful summary, without calling str(arr).
2661 arrays to print a more useful summary, without calling str(arr).
2633 This avoids the problem of extremely lengthy computations which
2662 This avoids the problem of extremely lengthy computations which
2634 occur if arr is large, and appear to the user as a system lockup
2663 occur if arr is large, and appear to the user as a system lockup
2635 with 100% cpu activity. After a suggestion by Kristian Sandberg
2664 with 100% cpu activity. After a suggestion by Kristian Sandberg
2636 <Kristian.Sandberg@colorado.edu>.
2665 <Kristian.Sandberg@colorado.edu>.
2637 (Magic.__init__): fix bug in global magic escapes not being
2666 (Magic.__init__): fix bug in global magic escapes not being
2638 correctly set.
2667 correctly set.
2639
2668
2640 2004-10-08 Fernando Perez <fperez@colorado.edu>
2669 2004-10-08 Fernando Perez <fperez@colorado.edu>
2641
2670
2642 * IPython/Magic.py (__license__): change to absolute imports of
2671 * IPython/Magic.py (__license__): change to absolute imports of
2643 ipython's own internal packages, to start adapting to the absolute
2672 ipython's own internal packages, to start adapting to the absolute
2644 import requirement of PEP-328.
2673 import requirement of PEP-328.
2645
2674
2646 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2675 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2647 files, and standardize author/license marks through the Release
2676 files, and standardize author/license marks through the Release
2648 module instead of having per/file stuff (except for files with
2677 module instead of having per/file stuff (except for files with
2649 particular licenses, like the MIT/PSF-licensed codes).
2678 particular licenses, like the MIT/PSF-licensed codes).
2650
2679
2651 * IPython/Debugger.py: remove dead code for python 2.1
2680 * IPython/Debugger.py: remove dead code for python 2.1
2652
2681
2653 2004-10-04 Fernando Perez <fperez@colorado.edu>
2682 2004-10-04 Fernando Perez <fperez@colorado.edu>
2654
2683
2655 * IPython/iplib.py (ipmagic): New function for accessing magics
2684 * IPython/iplib.py (ipmagic): New function for accessing magics
2656 via a normal python function call.
2685 via a normal python function call.
2657
2686
2658 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2687 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2659 from '@' to '%', to accomodate the new @decorator syntax of python
2688 from '@' to '%', to accomodate the new @decorator syntax of python
2660 2.4.
2689 2.4.
2661
2690
2662 2004-09-29 Fernando Perez <fperez@colorado.edu>
2691 2004-09-29 Fernando Perez <fperez@colorado.edu>
2663
2692
2664 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2693 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2665 matplotlib.use to prevent running scripts which try to switch
2694 matplotlib.use to prevent running scripts which try to switch
2666 interactive backends from within ipython. This will just crash
2695 interactive backends from within ipython. This will just crash
2667 the python interpreter, so we can't allow it (but a detailed error
2696 the python interpreter, so we can't allow it (but a detailed error
2668 is given to the user).
2697 is given to the user).
2669
2698
2670 2004-09-28 Fernando Perez <fperez@colorado.edu>
2699 2004-09-28 Fernando Perez <fperez@colorado.edu>
2671
2700
2672 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2701 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2673 matplotlib-related fixes so that using @run with non-matplotlib
2702 matplotlib-related fixes so that using @run with non-matplotlib
2674 scripts doesn't pop up spurious plot windows. This requires
2703 scripts doesn't pop up spurious plot windows. This requires
2675 matplotlib >= 0.63, where I had to make some changes as well.
2704 matplotlib >= 0.63, where I had to make some changes as well.
2676
2705
2677 * IPython/ipmaker.py (make_IPython): update version requirement to
2706 * IPython/ipmaker.py (make_IPython): update version requirement to
2678 python 2.2.
2707 python 2.2.
2679
2708
2680 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2709 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2681 banner arg for embedded customization.
2710 banner arg for embedded customization.
2682
2711
2683 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2712 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2684 explicit uses of __IP as the IPython's instance name. Now things
2713 explicit uses of __IP as the IPython's instance name. Now things
2685 are properly handled via the shell.name value. The actual code
2714 are properly handled via the shell.name value. The actual code
2686 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2715 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2687 is much better than before. I'll clean things completely when the
2716 is much better than before. I'll clean things completely when the
2688 magic stuff gets a real overhaul.
2717 magic stuff gets a real overhaul.
2689
2718
2690 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2719 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2691 minor changes to debian dir.
2720 minor changes to debian dir.
2692
2721
2693 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2722 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2694 pointer to the shell itself in the interactive namespace even when
2723 pointer to the shell itself in the interactive namespace even when
2695 a user-supplied dict is provided. This is needed for embedding
2724 a user-supplied dict is provided. This is needed for embedding
2696 purposes (found by tests with Michel Sanner).
2725 purposes (found by tests with Michel Sanner).
2697
2726
2698 2004-09-27 Fernando Perez <fperez@colorado.edu>
2727 2004-09-27 Fernando Perez <fperez@colorado.edu>
2699
2728
2700 * IPython/UserConfig/ipythonrc: remove []{} from
2729 * IPython/UserConfig/ipythonrc: remove []{} from
2701 readline_remove_delims, so that things like [modname.<TAB> do
2730 readline_remove_delims, so that things like [modname.<TAB> do
2702 proper completion. This disables [].TAB, but that's a less common
2731 proper completion. This disables [].TAB, but that's a less common
2703 case than module names in list comprehensions, for example.
2732 case than module names in list comprehensions, for example.
2704 Thanks to a report by Andrea Riciputi.
2733 Thanks to a report by Andrea Riciputi.
2705
2734
2706 2004-09-09 Fernando Perez <fperez@colorado.edu>
2735 2004-09-09 Fernando Perez <fperez@colorado.edu>
2707
2736
2708 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2737 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2709 blocking problems in win32 and osx. Fix by John.
2738 blocking problems in win32 and osx. Fix by John.
2710
2739
2711 2004-09-08 Fernando Perez <fperez@colorado.edu>
2740 2004-09-08 Fernando Perez <fperez@colorado.edu>
2712
2741
2713 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2742 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2714 for Win32 and OSX. Fix by John Hunter.
2743 for Win32 and OSX. Fix by John Hunter.
2715
2744
2716 2004-08-30 *** Released version 0.6.3
2745 2004-08-30 *** Released version 0.6.3
2717
2746
2718 2004-08-30 Fernando Perez <fperez@colorado.edu>
2747 2004-08-30 Fernando Perez <fperez@colorado.edu>
2719
2748
2720 * setup.py (isfile): Add manpages to list of dependent files to be
2749 * setup.py (isfile): Add manpages to list of dependent files to be
2721 updated.
2750 updated.
2722
2751
2723 2004-08-27 Fernando Perez <fperez@colorado.edu>
2752 2004-08-27 Fernando Perez <fperez@colorado.edu>
2724
2753
2725 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2754 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2726 for now. They don't really work with standalone WX/GTK code
2755 for now. They don't really work with standalone WX/GTK code
2727 (though matplotlib IS working fine with both of those backends).
2756 (though matplotlib IS working fine with both of those backends).
2728 This will neeed much more testing. I disabled most things with
2757 This will neeed much more testing. I disabled most things with
2729 comments, so turning it back on later should be pretty easy.
2758 comments, so turning it back on later should be pretty easy.
2730
2759
2731 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2760 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2732 autocalling of expressions like r'foo', by modifying the line
2761 autocalling of expressions like r'foo', by modifying the line
2733 split regexp. Closes
2762 split regexp. Closes
2734 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2763 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2735 Riley <ipythonbugs-AT-sabi.net>.
2764 Riley <ipythonbugs-AT-sabi.net>.
2736 (InteractiveShell.mainloop): honor --nobanner with banner
2765 (InteractiveShell.mainloop): honor --nobanner with banner
2737 extensions.
2766 extensions.
2738
2767
2739 * IPython/Shell.py: Significant refactoring of all classes, so
2768 * IPython/Shell.py: Significant refactoring of all classes, so
2740 that we can really support ALL matplotlib backends and threading
2769 that we can really support ALL matplotlib backends and threading
2741 models (John spotted a bug with Tk which required this). Now we
2770 models (John spotted a bug with Tk which required this). Now we
2742 should support single-threaded, WX-threads and GTK-threads, both
2771 should support single-threaded, WX-threads and GTK-threads, both
2743 for generic code and for matplotlib.
2772 for generic code and for matplotlib.
2744
2773
2745 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2774 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2746 -pylab, to simplify things for users. Will also remove the pylab
2775 -pylab, to simplify things for users. Will also remove the pylab
2747 profile, since now all of matplotlib configuration is directly
2776 profile, since now all of matplotlib configuration is directly
2748 handled here. This also reduces startup time.
2777 handled here. This also reduces startup time.
2749
2778
2750 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2779 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2751 shell wasn't being correctly called. Also in IPShellWX.
2780 shell wasn't being correctly called. Also in IPShellWX.
2752
2781
2753 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2782 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2754 fine-tune banner.
2783 fine-tune banner.
2755
2784
2756 * IPython/numutils.py (spike): Deprecate these spike functions,
2785 * IPython/numutils.py (spike): Deprecate these spike functions,
2757 delete (long deprecated) gnuplot_exec handler.
2786 delete (long deprecated) gnuplot_exec handler.
2758
2787
2759 2004-08-26 Fernando Perez <fperez@colorado.edu>
2788 2004-08-26 Fernando Perez <fperez@colorado.edu>
2760
2789
2761 * ipython.1: Update for threading options, plus some others which
2790 * ipython.1: Update for threading options, plus some others which
2762 were missing.
2791 were missing.
2763
2792
2764 * IPython/ipmaker.py (__call__): Added -wthread option for
2793 * IPython/ipmaker.py (__call__): Added -wthread option for
2765 wxpython thread handling. Make sure threading options are only
2794 wxpython thread handling. Make sure threading options are only
2766 valid at the command line.
2795 valid at the command line.
2767
2796
2768 * scripts/ipython: moved shell selection into a factory function
2797 * scripts/ipython: moved shell selection into a factory function
2769 in Shell.py, to keep the starter script to a minimum.
2798 in Shell.py, to keep the starter script to a minimum.
2770
2799
2771 2004-08-25 Fernando Perez <fperez@colorado.edu>
2800 2004-08-25 Fernando Perez <fperez@colorado.edu>
2772
2801
2773 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2802 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2774 John. Along with some recent changes he made to matplotlib, the
2803 John. Along with some recent changes he made to matplotlib, the
2775 next versions of both systems should work very well together.
2804 next versions of both systems should work very well together.
2776
2805
2777 2004-08-24 Fernando Perez <fperez@colorado.edu>
2806 2004-08-24 Fernando Perez <fperez@colorado.edu>
2778
2807
2779 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2808 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2780 tried to switch the profiling to using hotshot, but I'm getting
2809 tried to switch the profiling to using hotshot, but I'm getting
2781 strange errors from prof.runctx() there. I may be misreading the
2810 strange errors from prof.runctx() there. I may be misreading the
2782 docs, but it looks weird. For now the profiling code will
2811 docs, but it looks weird. For now the profiling code will
2783 continue to use the standard profiler.
2812 continue to use the standard profiler.
2784
2813
2785 2004-08-23 Fernando Perez <fperez@colorado.edu>
2814 2004-08-23 Fernando Perez <fperez@colorado.edu>
2786
2815
2787 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2816 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2788 threaded shell, by John Hunter. It's not quite ready yet, but
2817 threaded shell, by John Hunter. It's not quite ready yet, but
2789 close.
2818 close.
2790
2819
2791 2004-08-22 Fernando Perez <fperez@colorado.edu>
2820 2004-08-22 Fernando Perez <fperez@colorado.edu>
2792
2821
2793 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2822 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2794 in Magic and ultraTB.
2823 in Magic and ultraTB.
2795
2824
2796 * ipython.1: document threading options in manpage.
2825 * ipython.1: document threading options in manpage.
2797
2826
2798 * scripts/ipython: Changed name of -thread option to -gthread,
2827 * scripts/ipython: Changed name of -thread option to -gthread,
2799 since this is GTK specific. I want to leave the door open for a
2828 since this is GTK specific. I want to leave the door open for a
2800 -wthread option for WX, which will most likely be necessary. This
2829 -wthread option for WX, which will most likely be necessary. This
2801 change affects usage and ipmaker as well.
2830 change affects usage and ipmaker as well.
2802
2831
2803 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2832 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2804 handle the matplotlib shell issues. Code by John Hunter
2833 handle the matplotlib shell issues. Code by John Hunter
2805 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2834 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2806 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2835 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2807 broken (and disabled for end users) for now, but it puts the
2836 broken (and disabled for end users) for now, but it puts the
2808 infrastructure in place.
2837 infrastructure in place.
2809
2838
2810 2004-08-21 Fernando Perez <fperez@colorado.edu>
2839 2004-08-21 Fernando Perez <fperez@colorado.edu>
2811
2840
2812 * ipythonrc-pylab: Add matplotlib support.
2841 * ipythonrc-pylab: Add matplotlib support.
2813
2842
2814 * matplotlib_config.py: new files for matplotlib support, part of
2843 * matplotlib_config.py: new files for matplotlib support, part of
2815 the pylab profile.
2844 the pylab profile.
2816
2845
2817 * IPython/usage.py (__doc__): documented the threading options.
2846 * IPython/usage.py (__doc__): documented the threading options.
2818
2847
2819 2004-08-20 Fernando Perez <fperez@colorado.edu>
2848 2004-08-20 Fernando Perez <fperez@colorado.edu>
2820
2849
2821 * ipython: Modified the main calling routine to handle the -thread
2850 * ipython: Modified the main calling routine to handle the -thread
2822 and -mpthread options. This needs to be done as a top-level hack,
2851 and -mpthread options. This needs to be done as a top-level hack,
2823 because it determines which class to instantiate for IPython
2852 because it determines which class to instantiate for IPython
2824 itself.
2853 itself.
2825
2854
2826 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2855 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2827 classes to support multithreaded GTK operation without blocking,
2856 classes to support multithreaded GTK operation without blocking,
2828 and matplotlib with all backends. This is a lot of still very
2857 and matplotlib with all backends. This is a lot of still very
2829 experimental code, and threads are tricky. So it may still have a
2858 experimental code, and threads are tricky. So it may still have a
2830 few rough edges... This code owes a lot to
2859 few rough edges... This code owes a lot to
2831 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2860 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2832 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2861 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2833 to John Hunter for all the matplotlib work.
2862 to John Hunter for all the matplotlib work.
2834
2863
2835 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2864 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2836 options for gtk thread and matplotlib support.
2865 options for gtk thread and matplotlib support.
2837
2866
2838 2004-08-16 Fernando Perez <fperez@colorado.edu>
2867 2004-08-16 Fernando Perez <fperez@colorado.edu>
2839
2868
2840 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2869 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2841 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2870 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2842 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2871 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2843
2872
2844 2004-08-11 Fernando Perez <fperez@colorado.edu>
2873 2004-08-11 Fernando Perez <fperez@colorado.edu>
2845
2874
2846 * setup.py (isfile): Fix build so documentation gets updated for
2875 * setup.py (isfile): Fix build so documentation gets updated for
2847 rpms (it was only done for .tgz builds).
2876 rpms (it was only done for .tgz builds).
2848
2877
2849 2004-08-10 Fernando Perez <fperez@colorado.edu>
2878 2004-08-10 Fernando Perez <fperez@colorado.edu>
2850
2879
2851 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2880 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2852
2881
2853 * iplib.py : Silence syntax error exceptions in tab-completion.
2882 * iplib.py : Silence syntax error exceptions in tab-completion.
2854
2883
2855 2004-08-05 Fernando Perez <fperez@colorado.edu>
2884 2004-08-05 Fernando Perez <fperez@colorado.edu>
2856
2885
2857 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2886 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2858 'color off' mark for continuation prompts. This was causing long
2887 'color off' mark for continuation prompts. This was causing long
2859 continuation lines to mis-wrap.
2888 continuation lines to mis-wrap.
2860
2889
2861 2004-08-01 Fernando Perez <fperez@colorado.edu>
2890 2004-08-01 Fernando Perez <fperez@colorado.edu>
2862
2891
2863 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2892 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2864 for building ipython to be a parameter. All this is necessary
2893 for building ipython to be a parameter. All this is necessary
2865 right now to have a multithreaded version, but this insane
2894 right now to have a multithreaded version, but this insane
2866 non-design will be cleaned up soon. For now, it's a hack that
2895 non-design will be cleaned up soon. For now, it's a hack that
2867 works.
2896 works.
2868
2897
2869 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2898 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2870 args in various places. No bugs so far, but it's a dangerous
2899 args in various places. No bugs so far, but it's a dangerous
2871 practice.
2900 practice.
2872
2901
2873 2004-07-31 Fernando Perez <fperez@colorado.edu>
2902 2004-07-31 Fernando Perez <fperez@colorado.edu>
2874
2903
2875 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2904 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2876 fix completion of files with dots in their names under most
2905 fix completion of files with dots in their names under most
2877 profiles (pysh was OK because the completion order is different).
2906 profiles (pysh was OK because the completion order is different).
2878
2907
2879 2004-07-27 Fernando Perez <fperez@colorado.edu>
2908 2004-07-27 Fernando Perez <fperez@colorado.edu>
2880
2909
2881 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2910 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2882 keywords manually, b/c the one in keyword.py was removed in python
2911 keywords manually, b/c the one in keyword.py was removed in python
2883 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2912 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2884 This is NOT a bug under python 2.3 and earlier.
2913 This is NOT a bug under python 2.3 and earlier.
2885
2914
2886 2004-07-26 Fernando Perez <fperez@colorado.edu>
2915 2004-07-26 Fernando Perez <fperez@colorado.edu>
2887
2916
2888 * IPython/ultraTB.py (VerboseTB.text): Add another
2917 * IPython/ultraTB.py (VerboseTB.text): Add another
2889 linecache.checkcache() call to try to prevent inspect.py from
2918 linecache.checkcache() call to try to prevent inspect.py from
2890 crashing under python 2.3. I think this fixes
2919 crashing under python 2.3. I think this fixes
2891 http://www.scipy.net/roundup/ipython/issue17.
2920 http://www.scipy.net/roundup/ipython/issue17.
2892
2921
2893 2004-07-26 *** Released version 0.6.2
2922 2004-07-26 *** Released version 0.6.2
2894
2923
2895 2004-07-26 Fernando Perez <fperez@colorado.edu>
2924 2004-07-26 Fernando Perez <fperez@colorado.edu>
2896
2925
2897 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2926 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2898 fail for any number.
2927 fail for any number.
2899 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2928 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2900 empty bookmarks.
2929 empty bookmarks.
2901
2930
2902 2004-07-26 *** Released version 0.6.1
2931 2004-07-26 *** Released version 0.6.1
2903
2932
2904 2004-07-26 Fernando Perez <fperez@colorado.edu>
2933 2004-07-26 Fernando Perez <fperez@colorado.edu>
2905
2934
2906 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2935 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2907
2936
2908 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2937 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2909 escaping '()[]{}' in filenames.
2938 escaping '()[]{}' in filenames.
2910
2939
2911 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2940 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2912 Python 2.2 users who lack a proper shlex.split.
2941 Python 2.2 users who lack a proper shlex.split.
2913
2942
2914 2004-07-19 Fernando Perez <fperez@colorado.edu>
2943 2004-07-19 Fernando Perez <fperez@colorado.edu>
2915
2944
2916 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2945 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2917 for reading readline's init file. I follow the normal chain:
2946 for reading readline's init file. I follow the normal chain:
2918 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2947 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2919 report by Mike Heeter. This closes
2948 report by Mike Heeter. This closes
2920 http://www.scipy.net/roundup/ipython/issue16.
2949 http://www.scipy.net/roundup/ipython/issue16.
2921
2950
2922 2004-07-18 Fernando Perez <fperez@colorado.edu>
2951 2004-07-18 Fernando Perez <fperez@colorado.edu>
2923
2952
2924 * IPython/iplib.py (__init__): Add better handling of '\' under
2953 * IPython/iplib.py (__init__): Add better handling of '\' under
2925 Win32 for filenames. After a patch by Ville.
2954 Win32 for filenames. After a patch by Ville.
2926
2955
2927 2004-07-17 Fernando Perez <fperez@colorado.edu>
2956 2004-07-17 Fernando Perez <fperez@colorado.edu>
2928
2957
2929 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2958 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2930 autocalling would be triggered for 'foo is bar' if foo is
2959 autocalling would be triggered for 'foo is bar' if foo is
2931 callable. I also cleaned up the autocall detection code to use a
2960 callable. I also cleaned up the autocall detection code to use a
2932 regexp, which is faster. Bug reported by Alexander Schmolck.
2961 regexp, which is faster. Bug reported by Alexander Schmolck.
2933
2962
2934 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2963 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2935 '?' in them would confuse the help system. Reported by Alex
2964 '?' in them would confuse the help system. Reported by Alex
2936 Schmolck.
2965 Schmolck.
2937
2966
2938 2004-07-16 Fernando Perez <fperez@colorado.edu>
2967 2004-07-16 Fernando Perez <fperez@colorado.edu>
2939
2968
2940 * IPython/GnuplotInteractive.py (__all__): added plot2.
2969 * IPython/GnuplotInteractive.py (__all__): added plot2.
2941
2970
2942 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2971 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2943 plotting dictionaries, lists or tuples of 1d arrays.
2972 plotting dictionaries, lists or tuples of 1d arrays.
2944
2973
2945 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2974 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2946 optimizations.
2975 optimizations.
2947
2976
2948 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2977 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2949 the information which was there from Janko's original IPP code:
2978 the information which was there from Janko's original IPP code:
2950
2979
2951 03.05.99 20:53 porto.ifm.uni-kiel.de
2980 03.05.99 20:53 porto.ifm.uni-kiel.de
2952 --Started changelog.
2981 --Started changelog.
2953 --make clear do what it say it does
2982 --make clear do what it say it does
2954 --added pretty output of lines from inputcache
2983 --added pretty output of lines from inputcache
2955 --Made Logger a mixin class, simplifies handling of switches
2984 --Made Logger a mixin class, simplifies handling of switches
2956 --Added own completer class. .string<TAB> expands to last history
2985 --Added own completer class. .string<TAB> expands to last history
2957 line which starts with string. The new expansion is also present
2986 line which starts with string. The new expansion is also present
2958 with Ctrl-r from the readline library. But this shows, who this
2987 with Ctrl-r from the readline library. But this shows, who this
2959 can be done for other cases.
2988 can be done for other cases.
2960 --Added convention that all shell functions should accept a
2989 --Added convention that all shell functions should accept a
2961 parameter_string This opens the door for different behaviour for
2990 parameter_string This opens the door for different behaviour for
2962 each function. @cd is a good example of this.
2991 each function. @cd is a good example of this.
2963
2992
2964 04.05.99 12:12 porto.ifm.uni-kiel.de
2993 04.05.99 12:12 porto.ifm.uni-kiel.de
2965 --added logfile rotation
2994 --added logfile rotation
2966 --added new mainloop method which freezes first the namespace
2995 --added new mainloop method which freezes first the namespace
2967
2996
2968 07.05.99 21:24 porto.ifm.uni-kiel.de
2997 07.05.99 21:24 porto.ifm.uni-kiel.de
2969 --added the docreader classes. Now there is a help system.
2998 --added the docreader classes. Now there is a help system.
2970 -This is only a first try. Currently it's not easy to put new
2999 -This is only a first try. Currently it's not easy to put new
2971 stuff in the indices. But this is the way to go. Info would be
3000 stuff in the indices. But this is the way to go. Info would be
2972 better, but HTML is every where and not everybody has an info
3001 better, but HTML is every where and not everybody has an info
2973 system installed and it's not so easy to change html-docs to info.
3002 system installed and it's not so easy to change html-docs to info.
2974 --added global logfile option
3003 --added global logfile option
2975 --there is now a hook for object inspection method pinfo needs to
3004 --there is now a hook for object inspection method pinfo needs to
2976 be provided for this. Can be reached by two '??'.
3005 be provided for this. Can be reached by two '??'.
2977
3006
2978 08.05.99 20:51 porto.ifm.uni-kiel.de
3007 08.05.99 20:51 porto.ifm.uni-kiel.de
2979 --added a README
3008 --added a README
2980 --bug in rc file. Something has changed so functions in the rc
3009 --bug in rc file. Something has changed so functions in the rc
2981 file need to reference the shell and not self. Not clear if it's a
3010 file need to reference the shell and not self. Not clear if it's a
2982 bug or feature.
3011 bug or feature.
2983 --changed rc file for new behavior
3012 --changed rc file for new behavior
2984
3013
2985 2004-07-15 Fernando Perez <fperez@colorado.edu>
3014 2004-07-15 Fernando Perez <fperez@colorado.edu>
2986
3015
2987 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3016 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2988 cache was falling out of sync in bizarre manners when multi-line
3017 cache was falling out of sync in bizarre manners when multi-line
2989 input was present. Minor optimizations and cleanup.
3018 input was present. Minor optimizations and cleanup.
2990
3019
2991 (Logger): Remove old Changelog info for cleanup. This is the
3020 (Logger): Remove old Changelog info for cleanup. This is the
2992 information which was there from Janko's original code:
3021 information which was there from Janko's original code:
2993
3022
2994 Changes to Logger: - made the default log filename a parameter
3023 Changes to Logger: - made the default log filename a parameter
2995
3024
2996 - put a check for lines beginning with !@? in log(). Needed
3025 - put a check for lines beginning with !@? in log(). Needed
2997 (even if the handlers properly log their lines) for mid-session
3026 (even if the handlers properly log their lines) for mid-session
2998 logging activation to work properly. Without this, lines logged
3027 logging activation to work properly. Without this, lines logged
2999 in mid session, which get read from the cache, would end up
3028 in mid session, which get read from the cache, would end up
3000 'bare' (with !@? in the open) in the log. Now they are caught
3029 'bare' (with !@? in the open) in the log. Now they are caught
3001 and prepended with a #.
3030 and prepended with a #.
3002
3031
3003 * IPython/iplib.py (InteractiveShell.init_readline): added check
3032 * IPython/iplib.py (InteractiveShell.init_readline): added check
3004 in case MagicCompleter fails to be defined, so we don't crash.
3033 in case MagicCompleter fails to be defined, so we don't crash.
3005
3034
3006 2004-07-13 Fernando Perez <fperez@colorado.edu>
3035 2004-07-13 Fernando Perez <fperez@colorado.edu>
3007
3036
3008 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3037 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3009 of EPS if the requested filename ends in '.eps'.
3038 of EPS if the requested filename ends in '.eps'.
3010
3039
3011 2004-07-04 Fernando Perez <fperez@colorado.edu>
3040 2004-07-04 Fernando Perez <fperez@colorado.edu>
3012
3041
3013 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3042 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3014 escaping of quotes when calling the shell.
3043 escaping of quotes when calling the shell.
3015
3044
3016 2004-07-02 Fernando Perez <fperez@colorado.edu>
3045 2004-07-02 Fernando Perez <fperez@colorado.edu>
3017
3046
3018 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3047 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3019 gettext not working because we were clobbering '_'. Fixes
3048 gettext not working because we were clobbering '_'. Fixes
3020 http://www.scipy.net/roundup/ipython/issue6.
3049 http://www.scipy.net/roundup/ipython/issue6.
3021
3050
3022 2004-07-01 Fernando Perez <fperez@colorado.edu>
3051 2004-07-01 Fernando Perez <fperez@colorado.edu>
3023
3052
3024 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3053 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3025 into @cd. Patch by Ville.
3054 into @cd. Patch by Ville.
3026
3055
3027 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3056 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3028 new function to store things after ipmaker runs. Patch by Ville.
3057 new function to store things after ipmaker runs. Patch by Ville.
3029 Eventually this will go away once ipmaker is removed and the class
3058 Eventually this will go away once ipmaker is removed and the class
3030 gets cleaned up, but for now it's ok. Key functionality here is
3059 gets cleaned up, but for now it's ok. Key functionality here is
3031 the addition of the persistent storage mechanism, a dict for
3060 the addition of the persistent storage mechanism, a dict for
3032 keeping data across sessions (for now just bookmarks, but more can
3061 keeping data across sessions (for now just bookmarks, but more can
3033 be implemented later).
3062 be implemented later).
3034
3063
3035 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3064 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3036 persistent across sections. Patch by Ville, I modified it
3065 persistent across sections. Patch by Ville, I modified it
3037 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3066 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3038 added a '-l' option to list all bookmarks.
3067 added a '-l' option to list all bookmarks.
3039
3068
3040 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3069 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3041 center for cleanup. Registered with atexit.register(). I moved
3070 center for cleanup. Registered with atexit.register(). I moved
3042 here the old exit_cleanup(). After a patch by Ville.
3071 here the old exit_cleanup(). After a patch by Ville.
3043
3072
3044 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3073 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3045 characters in the hacked shlex_split for python 2.2.
3074 characters in the hacked shlex_split for python 2.2.
3046
3075
3047 * IPython/iplib.py (file_matches): more fixes to filenames with
3076 * IPython/iplib.py (file_matches): more fixes to filenames with
3048 whitespace in them. It's not perfect, but limitations in python's
3077 whitespace in them. It's not perfect, but limitations in python's
3049 readline make it impossible to go further.
3078 readline make it impossible to go further.
3050
3079
3051 2004-06-29 Fernando Perez <fperez@colorado.edu>
3080 2004-06-29 Fernando Perez <fperez@colorado.edu>
3052
3081
3053 * IPython/iplib.py (file_matches): escape whitespace correctly in
3082 * IPython/iplib.py (file_matches): escape whitespace correctly in
3054 filename completions. Bug reported by Ville.
3083 filename completions. Bug reported by Ville.
3055
3084
3056 2004-06-28 Fernando Perez <fperez@colorado.edu>
3085 2004-06-28 Fernando Perez <fperez@colorado.edu>
3057
3086
3058 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3087 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3059 the history file will be called 'history-PROFNAME' (or just
3088 the history file will be called 'history-PROFNAME' (or just
3060 'history' if no profile is loaded). I was getting annoyed at
3089 'history' if no profile is loaded). I was getting annoyed at
3061 getting my Numerical work history clobbered by pysh sessions.
3090 getting my Numerical work history clobbered by pysh sessions.
3062
3091
3063 * IPython/iplib.py (InteractiveShell.__init__): Internal
3092 * IPython/iplib.py (InteractiveShell.__init__): Internal
3064 getoutputerror() function so that we can honor the system_verbose
3093 getoutputerror() function so that we can honor the system_verbose
3065 flag for _all_ system calls. I also added escaping of #
3094 flag for _all_ system calls. I also added escaping of #
3066 characters here to avoid confusing Itpl.
3095 characters here to avoid confusing Itpl.
3067
3096
3068 * IPython/Magic.py (shlex_split): removed call to shell in
3097 * IPython/Magic.py (shlex_split): removed call to shell in
3069 parse_options and replaced it with shlex.split(). The annoying
3098 parse_options and replaced it with shlex.split(). The annoying
3070 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3099 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3071 to backport it from 2.3, with several frail hacks (the shlex
3100 to backport it from 2.3, with several frail hacks (the shlex
3072 module is rather limited in 2.2). Thanks to a suggestion by Ville
3101 module is rather limited in 2.2). Thanks to a suggestion by Ville
3073 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3102 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3074 problem.
3103 problem.
3075
3104
3076 (Magic.magic_system_verbose): new toggle to print the actual
3105 (Magic.magic_system_verbose): new toggle to print the actual
3077 system calls made by ipython. Mainly for debugging purposes.
3106 system calls made by ipython. Mainly for debugging purposes.
3078
3107
3079 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3108 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3080 doesn't support persistence. Reported (and fix suggested) by
3109 doesn't support persistence. Reported (and fix suggested) by
3081 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3110 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3082
3111
3083 2004-06-26 Fernando Perez <fperez@colorado.edu>
3112 2004-06-26 Fernando Perez <fperez@colorado.edu>
3084
3113
3085 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3114 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3086 continue prompts.
3115 continue prompts.
3087
3116
3088 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3117 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3089 function (basically a big docstring) and a few more things here to
3118 function (basically a big docstring) and a few more things here to
3090 speedup startup. pysh.py is now very lightweight. We want because
3119 speedup startup. pysh.py is now very lightweight. We want because
3091 it gets execfile'd, while InterpreterExec gets imported, so
3120 it gets execfile'd, while InterpreterExec gets imported, so
3092 byte-compilation saves time.
3121 byte-compilation saves time.
3093
3122
3094 2004-06-25 Fernando Perez <fperez@colorado.edu>
3123 2004-06-25 Fernando Perez <fperez@colorado.edu>
3095
3124
3096 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3125 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3097 -NUM', which was recently broken.
3126 -NUM', which was recently broken.
3098
3127
3099 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3128 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3100 in multi-line input (but not !!, which doesn't make sense there).
3129 in multi-line input (but not !!, which doesn't make sense there).
3101
3130
3102 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3131 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3103 It's just too useful, and people can turn it off in the less
3132 It's just too useful, and people can turn it off in the less
3104 common cases where it's a problem.
3133 common cases where it's a problem.
3105
3134
3106 2004-06-24 Fernando Perez <fperez@colorado.edu>
3135 2004-06-24 Fernando Perez <fperez@colorado.edu>
3107
3136
3108 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3137 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3109 special syntaxes (like alias calling) is now allied in multi-line
3138 special syntaxes (like alias calling) is now allied in multi-line
3110 input. This is still _very_ experimental, but it's necessary for
3139 input. This is still _very_ experimental, but it's necessary for
3111 efficient shell usage combining python looping syntax with system
3140 efficient shell usage combining python looping syntax with system
3112 calls. For now it's restricted to aliases, I don't think it
3141 calls. For now it's restricted to aliases, I don't think it
3113 really even makes sense to have this for magics.
3142 really even makes sense to have this for magics.
3114
3143
3115 2004-06-23 Fernando Perez <fperez@colorado.edu>
3144 2004-06-23 Fernando Perez <fperez@colorado.edu>
3116
3145
3117 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3146 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3118 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3147 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3119
3148
3120 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3149 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3121 extensions under Windows (after code sent by Gary Bishop). The
3150 extensions under Windows (after code sent by Gary Bishop). The
3122 extensions considered 'executable' are stored in IPython's rc
3151 extensions considered 'executable' are stored in IPython's rc
3123 structure as win_exec_ext.
3152 structure as win_exec_ext.
3124
3153
3125 * IPython/genutils.py (shell): new function, like system() but
3154 * IPython/genutils.py (shell): new function, like system() but
3126 without return value. Very useful for interactive shell work.
3155 without return value. Very useful for interactive shell work.
3127
3156
3128 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3157 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3129 delete aliases.
3158 delete aliases.
3130
3159
3131 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3160 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3132 sure that the alias table doesn't contain python keywords.
3161 sure that the alias table doesn't contain python keywords.
3133
3162
3134 2004-06-21 Fernando Perez <fperez@colorado.edu>
3163 2004-06-21 Fernando Perez <fperez@colorado.edu>
3135
3164
3136 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3165 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3137 non-existent items are found in $PATH. Reported by Thorsten.
3166 non-existent items are found in $PATH. Reported by Thorsten.
3138
3167
3139 2004-06-20 Fernando Perez <fperez@colorado.edu>
3168 2004-06-20 Fernando Perez <fperez@colorado.edu>
3140
3169
3141 * IPython/iplib.py (complete): modified the completer so that the
3170 * IPython/iplib.py (complete): modified the completer so that the
3142 order of priorities can be easily changed at runtime.
3171 order of priorities can be easily changed at runtime.
3143
3172
3144 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3173 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3145 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3174 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3146
3175
3147 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3176 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3148 expand Python variables prepended with $ in all system calls. The
3177 expand Python variables prepended with $ in all system calls. The
3149 same was done to InteractiveShell.handle_shell_escape. Now all
3178 same was done to InteractiveShell.handle_shell_escape. Now all
3150 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3179 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3151 expansion of python variables and expressions according to the
3180 expansion of python variables and expressions according to the
3152 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3181 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3153
3182
3154 Though PEP-215 has been rejected, a similar (but simpler) one
3183 Though PEP-215 has been rejected, a similar (but simpler) one
3155 seems like it will go into Python 2.4, PEP-292 -
3184 seems like it will go into Python 2.4, PEP-292 -
3156 http://www.python.org/peps/pep-0292.html.
3185 http://www.python.org/peps/pep-0292.html.
3157
3186
3158 I'll keep the full syntax of PEP-215, since IPython has since the
3187 I'll keep the full syntax of PEP-215, since IPython has since the
3159 start used Ka-Ping Yee's reference implementation discussed there
3188 start used Ka-Ping Yee's reference implementation discussed there
3160 (Itpl), and I actually like the powerful semantics it offers.
3189 (Itpl), and I actually like the powerful semantics it offers.
3161
3190
3162 In order to access normal shell variables, the $ has to be escaped
3191 In order to access normal shell variables, the $ has to be escaped
3163 via an extra $. For example:
3192 via an extra $. For example:
3164
3193
3165 In [7]: PATH='a python variable'
3194 In [7]: PATH='a python variable'
3166
3195
3167 In [8]: !echo $PATH
3196 In [8]: !echo $PATH
3168 a python variable
3197 a python variable
3169
3198
3170 In [9]: !echo $$PATH
3199 In [9]: !echo $$PATH
3171 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3200 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3172
3201
3173 (Magic.parse_options): escape $ so the shell doesn't evaluate
3202 (Magic.parse_options): escape $ so the shell doesn't evaluate
3174 things prematurely.
3203 things prematurely.
3175
3204
3176 * IPython/iplib.py (InteractiveShell.call_alias): added the
3205 * IPython/iplib.py (InteractiveShell.call_alias): added the
3177 ability for aliases to expand python variables via $.
3206 ability for aliases to expand python variables via $.
3178
3207
3179 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3208 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3180 system, now there's a @rehash/@rehashx pair of magics. These work
3209 system, now there's a @rehash/@rehashx pair of magics. These work
3181 like the csh rehash command, and can be invoked at any time. They
3210 like the csh rehash command, and can be invoked at any time. They
3182 build a table of aliases to everything in the user's $PATH
3211 build a table of aliases to everything in the user's $PATH
3183 (@rehash uses everything, @rehashx is slower but only adds
3212 (@rehash uses everything, @rehashx is slower but only adds
3184 executable files). With this, the pysh.py-based shell profile can
3213 executable files). With this, the pysh.py-based shell profile can
3185 now simply call rehash upon startup, and full access to all
3214 now simply call rehash upon startup, and full access to all
3186 programs in the user's path is obtained.
3215 programs in the user's path is obtained.
3187
3216
3188 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3217 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3189 functionality is now fully in place. I removed the old dynamic
3218 functionality is now fully in place. I removed the old dynamic
3190 code generation based approach, in favor of a much lighter one
3219 code generation based approach, in favor of a much lighter one
3191 based on a simple dict. The advantage is that this allows me to
3220 based on a simple dict. The advantage is that this allows me to
3192 now have thousands of aliases with negligible cost (unthinkable
3221 now have thousands of aliases with negligible cost (unthinkable
3193 with the old system).
3222 with the old system).
3194
3223
3195 2004-06-19 Fernando Perez <fperez@colorado.edu>
3224 2004-06-19 Fernando Perez <fperez@colorado.edu>
3196
3225
3197 * IPython/iplib.py (__init__): extended MagicCompleter class to
3226 * IPython/iplib.py (__init__): extended MagicCompleter class to
3198 also complete (last in priority) on user aliases.
3227 also complete (last in priority) on user aliases.
3199
3228
3200 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3229 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3201 call to eval.
3230 call to eval.
3202 (ItplNS.__init__): Added a new class which functions like Itpl,
3231 (ItplNS.__init__): Added a new class which functions like Itpl,
3203 but allows configuring the namespace for the evaluation to occur
3232 but allows configuring the namespace for the evaluation to occur
3204 in.
3233 in.
3205
3234
3206 2004-06-18 Fernando Perez <fperez@colorado.edu>
3235 2004-06-18 Fernando Perez <fperez@colorado.edu>
3207
3236
3208 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3237 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3209 better message when 'exit' or 'quit' are typed (a common newbie
3238 better message when 'exit' or 'quit' are typed (a common newbie
3210 confusion).
3239 confusion).
3211
3240
3212 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3241 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3213 check for Windows users.
3242 check for Windows users.
3214
3243
3215 * IPython/iplib.py (InteractiveShell.user_setup): removed
3244 * IPython/iplib.py (InteractiveShell.user_setup): removed
3216 disabling of colors for Windows. I'll test at runtime and issue a
3245 disabling of colors for Windows. I'll test at runtime and issue a
3217 warning if Gary's readline isn't found, as to nudge users to
3246 warning if Gary's readline isn't found, as to nudge users to
3218 download it.
3247 download it.
3219
3248
3220 2004-06-16 Fernando Perez <fperez@colorado.edu>
3249 2004-06-16 Fernando Perez <fperez@colorado.edu>
3221
3250
3222 * IPython/genutils.py (Stream.__init__): changed to print errors
3251 * IPython/genutils.py (Stream.__init__): changed to print errors
3223 to sys.stderr. I had a circular dependency here. Now it's
3252 to sys.stderr. I had a circular dependency here. Now it's
3224 possible to run ipython as IDLE's shell (consider this pre-alpha,
3253 possible to run ipython as IDLE's shell (consider this pre-alpha,
3225 since true stdout things end up in the starting terminal instead
3254 since true stdout things end up in the starting terminal instead
3226 of IDLE's out).
3255 of IDLE's out).
3227
3256
3228 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3257 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3229 users who haven't # updated their prompt_in2 definitions. Remove
3258 users who haven't # updated their prompt_in2 definitions. Remove
3230 eventually.
3259 eventually.
3231 (multiple_replace): added credit to original ASPN recipe.
3260 (multiple_replace): added credit to original ASPN recipe.
3232
3261
3233 2004-06-15 Fernando Perez <fperez@colorado.edu>
3262 2004-06-15 Fernando Perez <fperez@colorado.edu>
3234
3263
3235 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3264 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3236 list of auto-defined aliases.
3265 list of auto-defined aliases.
3237
3266
3238 2004-06-13 Fernando Perez <fperez@colorado.edu>
3267 2004-06-13 Fernando Perez <fperez@colorado.edu>
3239
3268
3240 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3269 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3241 install was really requested (so setup.py can be used for other
3270 install was really requested (so setup.py can be used for other
3242 things under Windows).
3271 things under Windows).
3243
3272
3244 2004-06-10 Fernando Perez <fperez@colorado.edu>
3273 2004-06-10 Fernando Perez <fperez@colorado.edu>
3245
3274
3246 * IPython/Logger.py (Logger.create_log): Manually remove any old
3275 * IPython/Logger.py (Logger.create_log): Manually remove any old
3247 backup, since os.remove may fail under Windows. Fixes bug
3276 backup, since os.remove may fail under Windows. Fixes bug
3248 reported by Thorsten.
3277 reported by Thorsten.
3249
3278
3250 2004-06-09 Fernando Perez <fperez@colorado.edu>
3279 2004-06-09 Fernando Perez <fperez@colorado.edu>
3251
3280
3252 * examples/example-embed.py: fixed all references to %n (replaced
3281 * examples/example-embed.py: fixed all references to %n (replaced
3253 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3282 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3254 for all examples and the manual as well.
3283 for all examples and the manual as well.
3255
3284
3256 2004-06-08 Fernando Perez <fperez@colorado.edu>
3285 2004-06-08 Fernando Perez <fperez@colorado.edu>
3257
3286
3258 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3287 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3259 alignment and color management. All 3 prompt subsystems now
3288 alignment and color management. All 3 prompt subsystems now
3260 inherit from BasePrompt.
3289 inherit from BasePrompt.
3261
3290
3262 * tools/release: updates for windows installer build and tag rpms
3291 * tools/release: updates for windows installer build and tag rpms
3263 with python version (since paths are fixed).
3292 with python version (since paths are fixed).
3264
3293
3265 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3294 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3266 which will become eventually obsolete. Also fixed the default
3295 which will become eventually obsolete. Also fixed the default
3267 prompt_in2 to use \D, so at least new users start with the correct
3296 prompt_in2 to use \D, so at least new users start with the correct
3268 defaults.
3297 defaults.
3269 WARNING: Users with existing ipythonrc files will need to apply
3298 WARNING: Users with existing ipythonrc files will need to apply
3270 this fix manually!
3299 this fix manually!
3271
3300
3272 * setup.py: make windows installer (.exe). This is finally the
3301 * setup.py: make windows installer (.exe). This is finally the
3273 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3302 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3274 which I hadn't included because it required Python 2.3 (or recent
3303 which I hadn't included because it required Python 2.3 (or recent
3275 distutils).
3304 distutils).
3276
3305
3277 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3306 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3278 usage of new '\D' escape.
3307 usage of new '\D' escape.
3279
3308
3280 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3309 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3281 lacks os.getuid())
3310 lacks os.getuid())
3282 (CachedOutput.set_colors): Added the ability to turn coloring
3311 (CachedOutput.set_colors): Added the ability to turn coloring
3283 on/off with @colors even for manually defined prompt colors. It
3312 on/off with @colors even for manually defined prompt colors. It
3284 uses a nasty global, but it works safely and via the generic color
3313 uses a nasty global, but it works safely and via the generic color
3285 handling mechanism.
3314 handling mechanism.
3286 (Prompt2.__init__): Introduced new escape '\D' for continuation
3315 (Prompt2.__init__): Introduced new escape '\D' for continuation
3287 prompts. It represents the counter ('\#') as dots.
3316 prompts. It represents the counter ('\#') as dots.
3288 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3317 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3289 need to update their ipythonrc files and replace '%n' with '\D' in
3318 need to update their ipythonrc files and replace '%n' with '\D' in
3290 their prompt_in2 settings everywhere. Sorry, but there's
3319 their prompt_in2 settings everywhere. Sorry, but there's
3291 otherwise no clean way to get all prompts to properly align. The
3320 otherwise no clean way to get all prompts to properly align. The
3292 ipythonrc shipped with IPython has been updated.
3321 ipythonrc shipped with IPython has been updated.
3293
3322
3294 2004-06-07 Fernando Perez <fperez@colorado.edu>
3323 2004-06-07 Fernando Perez <fperez@colorado.edu>
3295
3324
3296 * setup.py (isfile): Pass local_icons option to latex2html, so the
3325 * setup.py (isfile): Pass local_icons option to latex2html, so the
3297 resulting HTML file is self-contained. Thanks to
3326 resulting HTML file is self-contained. Thanks to
3298 dryice-AT-liu.com.cn for the tip.
3327 dryice-AT-liu.com.cn for the tip.
3299
3328
3300 * pysh.py: I created a new profile 'shell', which implements a
3329 * pysh.py: I created a new profile 'shell', which implements a
3301 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3330 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3302 system shell, nor will it become one anytime soon. It's mainly
3331 system shell, nor will it become one anytime soon. It's mainly
3303 meant to illustrate the use of the new flexible bash-like prompts.
3332 meant to illustrate the use of the new flexible bash-like prompts.
3304 I guess it could be used by hardy souls for true shell management,
3333 I guess it could be used by hardy souls for true shell management,
3305 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3334 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3306 profile. This uses the InterpreterExec extension provided by
3335 profile. This uses the InterpreterExec extension provided by
3307 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3336 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3308
3337
3309 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3338 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3310 auto-align itself with the length of the previous input prompt
3339 auto-align itself with the length of the previous input prompt
3311 (taking into account the invisible color escapes).
3340 (taking into account the invisible color escapes).
3312 (CachedOutput.__init__): Large restructuring of this class. Now
3341 (CachedOutput.__init__): Large restructuring of this class. Now
3313 all three prompts (primary1, primary2, output) are proper objects,
3342 all three prompts (primary1, primary2, output) are proper objects,
3314 managed by the 'parent' CachedOutput class. The code is still a
3343 managed by the 'parent' CachedOutput class. The code is still a
3315 bit hackish (all prompts share state via a pointer to the cache),
3344 bit hackish (all prompts share state via a pointer to the cache),
3316 but it's overall far cleaner than before.
3345 but it's overall far cleaner than before.
3317
3346
3318 * IPython/genutils.py (getoutputerror): modified to add verbose,
3347 * IPython/genutils.py (getoutputerror): modified to add verbose,
3319 debug and header options. This makes the interface of all getout*
3348 debug and header options. This makes the interface of all getout*
3320 functions uniform.
3349 functions uniform.
3321 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3350 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3322
3351
3323 * IPython/Magic.py (Magic.default_option): added a function to
3352 * IPython/Magic.py (Magic.default_option): added a function to
3324 allow registering default options for any magic command. This
3353 allow registering default options for any magic command. This
3325 makes it easy to have profiles which customize the magics globally
3354 makes it easy to have profiles which customize the magics globally
3326 for a certain use. The values set through this function are
3355 for a certain use. The values set through this function are
3327 picked up by the parse_options() method, which all magics should
3356 picked up by the parse_options() method, which all magics should
3328 use to parse their options.
3357 use to parse their options.
3329
3358
3330 * IPython/genutils.py (warn): modified the warnings framework to
3359 * IPython/genutils.py (warn): modified the warnings framework to
3331 use the Term I/O class. I'm trying to slowly unify all of
3360 use the Term I/O class. I'm trying to slowly unify all of
3332 IPython's I/O operations to pass through Term.
3361 IPython's I/O operations to pass through Term.
3333
3362
3334 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3363 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3335 the secondary prompt to correctly match the length of the primary
3364 the secondary prompt to correctly match the length of the primary
3336 one for any prompt. Now multi-line code will properly line up
3365 one for any prompt. Now multi-line code will properly line up
3337 even for path dependent prompts, such as the new ones available
3366 even for path dependent prompts, such as the new ones available
3338 via the prompt_specials.
3367 via the prompt_specials.
3339
3368
3340 2004-06-06 Fernando Perez <fperez@colorado.edu>
3369 2004-06-06 Fernando Perez <fperez@colorado.edu>
3341
3370
3342 * IPython/Prompts.py (prompt_specials): Added the ability to have
3371 * IPython/Prompts.py (prompt_specials): Added the ability to have
3343 bash-like special sequences in the prompts, which get
3372 bash-like special sequences in the prompts, which get
3344 automatically expanded. Things like hostname, current working
3373 automatically expanded. Things like hostname, current working
3345 directory and username are implemented already, but it's easy to
3374 directory and username are implemented already, but it's easy to
3346 add more in the future. Thanks to a patch by W.J. van der Laan
3375 add more in the future. Thanks to a patch by W.J. van der Laan
3347 <gnufnork-AT-hetdigitalegat.nl>
3376 <gnufnork-AT-hetdigitalegat.nl>
3348 (prompt_specials): Added color support for prompt strings, so
3377 (prompt_specials): Added color support for prompt strings, so
3349 users can define arbitrary color setups for their prompts.
3378 users can define arbitrary color setups for their prompts.
3350
3379
3351 2004-06-05 Fernando Perez <fperez@colorado.edu>
3380 2004-06-05 Fernando Perez <fperez@colorado.edu>
3352
3381
3353 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3382 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3354 code to load Gary Bishop's readline and configure it
3383 code to load Gary Bishop's readline and configure it
3355 automatically. Thanks to Gary for help on this.
3384 automatically. Thanks to Gary for help on this.
3356
3385
3357 2004-06-01 Fernando Perez <fperez@colorado.edu>
3386 2004-06-01 Fernando Perez <fperez@colorado.edu>
3358
3387
3359 * IPython/Logger.py (Logger.create_log): fix bug for logging
3388 * IPython/Logger.py (Logger.create_log): fix bug for logging
3360 with no filename (previous fix was incomplete).
3389 with no filename (previous fix was incomplete).
3361
3390
3362 2004-05-25 Fernando Perez <fperez@colorado.edu>
3391 2004-05-25 Fernando Perez <fperez@colorado.edu>
3363
3392
3364 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3393 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3365 parens would get passed to the shell.
3394 parens would get passed to the shell.
3366
3395
3367 2004-05-20 Fernando Perez <fperez@colorado.edu>
3396 2004-05-20 Fernando Perez <fperez@colorado.edu>
3368
3397
3369 * IPython/Magic.py (Magic.magic_prun): changed default profile
3398 * IPython/Magic.py (Magic.magic_prun): changed default profile
3370 sort order to 'time' (the more common profiling need).
3399 sort order to 'time' (the more common profiling need).
3371
3400
3372 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3401 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3373 so that source code shown is guaranteed in sync with the file on
3402 so that source code shown is guaranteed in sync with the file on
3374 disk (also changed in psource). Similar fix to the one for
3403 disk (also changed in psource). Similar fix to the one for
3375 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3404 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3376 <yann.ledu-AT-noos.fr>.
3405 <yann.ledu-AT-noos.fr>.
3377
3406
3378 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3407 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3379 with a single option would not be correctly parsed. Closes
3408 with a single option would not be correctly parsed. Closes
3380 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3409 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3381 introduced in 0.6.0 (on 2004-05-06).
3410 introduced in 0.6.0 (on 2004-05-06).
3382
3411
3383 2004-05-13 *** Released version 0.6.0
3412 2004-05-13 *** Released version 0.6.0
3384
3413
3385 2004-05-13 Fernando Perez <fperez@colorado.edu>
3414 2004-05-13 Fernando Perez <fperez@colorado.edu>
3386
3415
3387 * debian/: Added debian/ directory to CVS, so that debian support
3416 * debian/: Added debian/ directory to CVS, so that debian support
3388 is publicly accessible. The debian package is maintained by Jack
3417 is publicly accessible. The debian package is maintained by Jack
3389 Moffit <jack-AT-xiph.org>.
3418 Moffit <jack-AT-xiph.org>.
3390
3419
3391 * Documentation: included the notes about an ipython-based system
3420 * Documentation: included the notes about an ipython-based system
3392 shell (the hypothetical 'pysh') into the new_design.pdf document,
3421 shell (the hypothetical 'pysh') into the new_design.pdf document,
3393 so that these ideas get distributed to users along with the
3422 so that these ideas get distributed to users along with the
3394 official documentation.
3423 official documentation.
3395
3424
3396 2004-05-10 Fernando Perez <fperez@colorado.edu>
3425 2004-05-10 Fernando Perez <fperez@colorado.edu>
3397
3426
3398 * IPython/Logger.py (Logger.create_log): fix recently introduced
3427 * IPython/Logger.py (Logger.create_log): fix recently introduced
3399 bug (misindented line) where logstart would fail when not given an
3428 bug (misindented line) where logstart would fail when not given an
3400 explicit filename.
3429 explicit filename.
3401
3430
3402 2004-05-09 Fernando Perez <fperez@colorado.edu>
3431 2004-05-09 Fernando Perez <fperez@colorado.edu>
3403
3432
3404 * IPython/Magic.py (Magic.parse_options): skip system call when
3433 * IPython/Magic.py (Magic.parse_options): skip system call when
3405 there are no options to look for. Faster, cleaner for the common
3434 there are no options to look for. Faster, cleaner for the common
3406 case.
3435 case.
3407
3436
3408 * Documentation: many updates to the manual: describing Windows
3437 * Documentation: many updates to the manual: describing Windows
3409 support better, Gnuplot updates, credits, misc small stuff. Also
3438 support better, Gnuplot updates, credits, misc small stuff. Also
3410 updated the new_design doc a bit.
3439 updated the new_design doc a bit.
3411
3440
3412 2004-05-06 *** Released version 0.6.0.rc1
3441 2004-05-06 *** Released version 0.6.0.rc1
3413
3442
3414 2004-05-06 Fernando Perez <fperez@colorado.edu>
3443 2004-05-06 Fernando Perez <fperez@colorado.edu>
3415
3444
3416 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3445 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3417 operations to use the vastly more efficient list/''.join() method.
3446 operations to use the vastly more efficient list/''.join() method.
3418 (FormattedTB.text): Fix
3447 (FormattedTB.text): Fix
3419 http://www.scipy.net/roundup/ipython/issue12 - exception source
3448 http://www.scipy.net/roundup/ipython/issue12 - exception source
3420 extract not updated after reload. Thanks to Mike Salib
3449 extract not updated after reload. Thanks to Mike Salib
3421 <msalib-AT-mit.edu> for pinning the source of the problem.
3450 <msalib-AT-mit.edu> for pinning the source of the problem.
3422 Fortunately, the solution works inside ipython and doesn't require
3451 Fortunately, the solution works inside ipython and doesn't require
3423 any changes to python proper.
3452 any changes to python proper.
3424
3453
3425 * IPython/Magic.py (Magic.parse_options): Improved to process the
3454 * IPython/Magic.py (Magic.parse_options): Improved to process the
3426 argument list as a true shell would (by actually using the
3455 argument list as a true shell would (by actually using the
3427 underlying system shell). This way, all @magics automatically get
3456 underlying system shell). This way, all @magics automatically get
3428 shell expansion for variables. Thanks to a comment by Alex
3457 shell expansion for variables. Thanks to a comment by Alex
3429 Schmolck.
3458 Schmolck.
3430
3459
3431 2004-04-04 Fernando Perez <fperez@colorado.edu>
3460 2004-04-04 Fernando Perez <fperez@colorado.edu>
3432
3461
3433 * IPython/iplib.py (InteractiveShell.interact): Added a special
3462 * IPython/iplib.py (InteractiveShell.interact): Added a special
3434 trap for a debugger quit exception, which is basically impossible
3463 trap for a debugger quit exception, which is basically impossible
3435 to handle by normal mechanisms, given what pdb does to the stack.
3464 to handle by normal mechanisms, given what pdb does to the stack.
3436 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3465 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3437
3466
3438 2004-04-03 Fernando Perez <fperez@colorado.edu>
3467 2004-04-03 Fernando Perez <fperez@colorado.edu>
3439
3468
3440 * IPython/genutils.py (Term): Standardized the names of the Term
3469 * IPython/genutils.py (Term): Standardized the names of the Term
3441 class streams to cin/cout/cerr, following C++ naming conventions
3470 class streams to cin/cout/cerr, following C++ naming conventions
3442 (I can't use in/out/err because 'in' is not a valid attribute
3471 (I can't use in/out/err because 'in' is not a valid attribute
3443 name).
3472 name).
3444
3473
3445 * IPython/iplib.py (InteractiveShell.interact): don't increment
3474 * IPython/iplib.py (InteractiveShell.interact): don't increment
3446 the prompt if there's no user input. By Daniel 'Dang' Griffith
3475 the prompt if there's no user input. By Daniel 'Dang' Griffith
3447 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3476 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3448 Francois Pinard.
3477 Francois Pinard.
3449
3478
3450 2004-04-02 Fernando Perez <fperez@colorado.edu>
3479 2004-04-02 Fernando Perez <fperez@colorado.edu>
3451
3480
3452 * IPython/genutils.py (Stream.__init__): Modified to survive at
3481 * IPython/genutils.py (Stream.__init__): Modified to survive at
3453 least importing in contexts where stdin/out/err aren't true file
3482 least importing in contexts where stdin/out/err aren't true file
3454 objects, such as PyCrust (they lack fileno() and mode). However,
3483 objects, such as PyCrust (they lack fileno() and mode). However,
3455 the recovery facilities which rely on these things existing will
3484 the recovery facilities which rely on these things existing will
3456 not work.
3485 not work.
3457
3486
3458 2004-04-01 Fernando Perez <fperez@colorado.edu>
3487 2004-04-01 Fernando Perez <fperez@colorado.edu>
3459
3488
3460 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3489 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3461 use the new getoutputerror() function, so it properly
3490 use the new getoutputerror() function, so it properly
3462 distinguishes stdout/err.
3491 distinguishes stdout/err.
3463
3492
3464 * IPython/genutils.py (getoutputerror): added a function to
3493 * IPython/genutils.py (getoutputerror): added a function to
3465 capture separately the standard output and error of a command.
3494 capture separately the standard output and error of a command.
3466 After a comment from dang on the mailing lists. This code is
3495 After a comment from dang on the mailing lists. This code is
3467 basically a modified version of commands.getstatusoutput(), from
3496 basically a modified version of commands.getstatusoutput(), from
3468 the standard library.
3497 the standard library.
3469
3498
3470 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3499 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3471 '!!' as a special syntax (shorthand) to access @sx.
3500 '!!' as a special syntax (shorthand) to access @sx.
3472
3501
3473 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3502 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3474 command and return its output as a list split on '\n'.
3503 command and return its output as a list split on '\n'.
3475
3504
3476 2004-03-31 Fernando Perez <fperez@colorado.edu>
3505 2004-03-31 Fernando Perez <fperez@colorado.edu>
3477
3506
3478 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3507 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3479 method to dictionaries used as FakeModule instances if they lack
3508 method to dictionaries used as FakeModule instances if they lack
3480 it. At least pydoc in python2.3 breaks for runtime-defined
3509 it. At least pydoc in python2.3 breaks for runtime-defined
3481 functions without this hack. At some point I need to _really_
3510 functions without this hack. At some point I need to _really_
3482 understand what FakeModule is doing, because it's a gross hack.
3511 understand what FakeModule is doing, because it's a gross hack.
3483 But it solves Arnd's problem for now...
3512 But it solves Arnd's problem for now...
3484
3513
3485 2004-02-27 Fernando Perez <fperez@colorado.edu>
3514 2004-02-27 Fernando Perez <fperez@colorado.edu>
3486
3515
3487 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3516 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3488 mode would behave erratically. Also increased the number of
3517 mode would behave erratically. Also increased the number of
3489 possible logs in rotate mod to 999. Thanks to Rod Holland
3518 possible logs in rotate mod to 999. Thanks to Rod Holland
3490 <rhh@StructureLABS.com> for the report and fixes.
3519 <rhh@StructureLABS.com> for the report and fixes.
3491
3520
3492 2004-02-26 Fernando Perez <fperez@colorado.edu>
3521 2004-02-26 Fernando Perez <fperez@colorado.edu>
3493
3522
3494 * IPython/genutils.py (page): Check that the curses module really
3523 * IPython/genutils.py (page): Check that the curses module really
3495 has the initscr attribute before trying to use it. For some
3524 has the initscr attribute before trying to use it. For some
3496 reason, the Solaris curses module is missing this. I think this
3525 reason, the Solaris curses module is missing this. I think this
3497 should be considered a Solaris python bug, but I'm not sure.
3526 should be considered a Solaris python bug, but I'm not sure.
3498
3527
3499 2004-01-17 Fernando Perez <fperez@colorado.edu>
3528 2004-01-17 Fernando Perez <fperez@colorado.edu>
3500
3529
3501 * IPython/genutils.py (Stream.__init__): Changes to try to make
3530 * IPython/genutils.py (Stream.__init__): Changes to try to make
3502 ipython robust against stdin/out/err being closed by the user.
3531 ipython robust against stdin/out/err being closed by the user.
3503 This is 'user error' (and blocks a normal python session, at least
3532 This is 'user error' (and blocks a normal python session, at least
3504 the stdout case). However, Ipython should be able to survive such
3533 the stdout case). However, Ipython should be able to survive such
3505 instances of abuse as gracefully as possible. To simplify the
3534 instances of abuse as gracefully as possible. To simplify the
3506 coding and maintain compatibility with Gary Bishop's Term
3535 coding and maintain compatibility with Gary Bishop's Term
3507 contributions, I've made use of classmethods for this. I think
3536 contributions, I've made use of classmethods for this. I think
3508 this introduces a dependency on python 2.2.
3537 this introduces a dependency on python 2.2.
3509
3538
3510 2004-01-13 Fernando Perez <fperez@colorado.edu>
3539 2004-01-13 Fernando Perez <fperez@colorado.edu>
3511
3540
3512 * IPython/numutils.py (exp_safe): simplified the code a bit and
3541 * IPython/numutils.py (exp_safe): simplified the code a bit and
3513 removed the need for importing the kinds module altogether.
3542 removed the need for importing the kinds module altogether.
3514
3543
3515 2004-01-06 Fernando Perez <fperez@colorado.edu>
3544 2004-01-06 Fernando Perez <fperez@colorado.edu>
3516
3545
3517 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3546 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3518 a magic function instead, after some community feedback. No
3547 a magic function instead, after some community feedback. No
3519 special syntax will exist for it, but its name is deliberately
3548 special syntax will exist for it, but its name is deliberately
3520 very short.
3549 very short.
3521
3550
3522 2003-12-20 Fernando Perez <fperez@colorado.edu>
3551 2003-12-20 Fernando Perez <fperez@colorado.edu>
3523
3552
3524 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3553 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3525 new functionality, to automagically assign the result of a shell
3554 new functionality, to automagically assign the result of a shell
3526 command to a variable. I'll solicit some community feedback on
3555 command to a variable. I'll solicit some community feedback on
3527 this before making it permanent.
3556 this before making it permanent.
3528
3557
3529 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3558 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3530 requested about callables for which inspect couldn't obtain a
3559 requested about callables for which inspect couldn't obtain a
3531 proper argspec. Thanks to a crash report sent by Etienne
3560 proper argspec. Thanks to a crash report sent by Etienne
3532 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3561 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3533
3562
3534 2003-12-09 Fernando Perez <fperez@colorado.edu>
3563 2003-12-09 Fernando Perez <fperez@colorado.edu>
3535
3564
3536 * IPython/genutils.py (page): patch for the pager to work across
3565 * IPython/genutils.py (page): patch for the pager to work across
3537 various versions of Windows. By Gary Bishop.
3566 various versions of Windows. By Gary Bishop.
3538
3567
3539 2003-12-04 Fernando Perez <fperez@colorado.edu>
3568 2003-12-04 Fernando Perez <fperez@colorado.edu>
3540
3569
3541 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3570 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3542 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3571 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3543 While I tested this and it looks ok, there may still be corner
3572 While I tested this and it looks ok, there may still be corner
3544 cases I've missed.
3573 cases I've missed.
3545
3574
3546 2003-12-01 Fernando Perez <fperez@colorado.edu>
3575 2003-12-01 Fernando Perez <fperez@colorado.edu>
3547
3576
3548 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3577 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3549 where a line like 'p,q=1,2' would fail because the automagic
3578 where a line like 'p,q=1,2' would fail because the automagic
3550 system would be triggered for @p.
3579 system would be triggered for @p.
3551
3580
3552 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3581 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3553 cleanups, code unmodified.
3582 cleanups, code unmodified.
3554
3583
3555 * IPython/genutils.py (Term): added a class for IPython to handle
3584 * IPython/genutils.py (Term): added a class for IPython to handle
3556 output. In most cases it will just be a proxy for stdout/err, but
3585 output. In most cases it will just be a proxy for stdout/err, but
3557 having this allows modifications to be made for some platforms,
3586 having this allows modifications to be made for some platforms,
3558 such as handling color escapes under Windows. All of this code
3587 such as handling color escapes under Windows. All of this code
3559 was contributed by Gary Bishop, with minor modifications by me.
3588 was contributed by Gary Bishop, with minor modifications by me.
3560 The actual changes affect many files.
3589 The actual changes affect many files.
3561
3590
3562 2003-11-30 Fernando Perez <fperez@colorado.edu>
3591 2003-11-30 Fernando Perez <fperez@colorado.edu>
3563
3592
3564 * IPython/iplib.py (file_matches): new completion code, courtesy
3593 * IPython/iplib.py (file_matches): new completion code, courtesy
3565 of Jeff Collins. This enables filename completion again under
3594 of Jeff Collins. This enables filename completion again under
3566 python 2.3, which disabled it at the C level.
3595 python 2.3, which disabled it at the C level.
3567
3596
3568 2003-11-11 Fernando Perez <fperez@colorado.edu>
3597 2003-11-11 Fernando Perez <fperez@colorado.edu>
3569
3598
3570 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3599 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3571 for Numeric.array(map(...)), but often convenient.
3600 for Numeric.array(map(...)), but often convenient.
3572
3601
3573 2003-11-05 Fernando Perez <fperez@colorado.edu>
3602 2003-11-05 Fernando Perez <fperez@colorado.edu>
3574
3603
3575 * IPython/numutils.py (frange): Changed a call from int() to
3604 * IPython/numutils.py (frange): Changed a call from int() to
3576 int(round()) to prevent a problem reported with arange() in the
3605 int(round()) to prevent a problem reported with arange() in the
3577 numpy list.
3606 numpy list.
3578
3607
3579 2003-10-06 Fernando Perez <fperez@colorado.edu>
3608 2003-10-06 Fernando Perez <fperez@colorado.edu>
3580
3609
3581 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3610 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3582 prevent crashes if sys lacks an argv attribute (it happens with
3611 prevent crashes if sys lacks an argv attribute (it happens with
3583 embedded interpreters which build a bare-bones sys module).
3612 embedded interpreters which build a bare-bones sys module).
3584 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3613 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3585
3614
3586 2003-09-24 Fernando Perez <fperez@colorado.edu>
3615 2003-09-24 Fernando Perez <fperez@colorado.edu>
3587
3616
3588 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3617 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3589 to protect against poorly written user objects where __getattr__
3618 to protect against poorly written user objects where __getattr__
3590 raises exceptions other than AttributeError. Thanks to a bug
3619 raises exceptions other than AttributeError. Thanks to a bug
3591 report by Oliver Sander <osander-AT-gmx.de>.
3620 report by Oliver Sander <osander-AT-gmx.de>.
3592
3621
3593 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3622 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3594 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3623 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3595
3624
3596 2003-09-09 Fernando Perez <fperez@colorado.edu>
3625 2003-09-09 Fernando Perez <fperez@colorado.edu>
3597
3626
3598 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3627 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3599 unpacking a list whith a callable as first element would
3628 unpacking a list whith a callable as first element would
3600 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3629 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3601 Collins.
3630 Collins.
3602
3631
3603 2003-08-25 *** Released version 0.5.0
3632 2003-08-25 *** Released version 0.5.0
3604
3633
3605 2003-08-22 Fernando Perez <fperez@colorado.edu>
3634 2003-08-22 Fernando Perez <fperez@colorado.edu>
3606
3635
3607 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3636 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3608 improperly defined user exceptions. Thanks to feedback from Mark
3637 improperly defined user exceptions. Thanks to feedback from Mark
3609 Russell <mrussell-AT-verio.net>.
3638 Russell <mrussell-AT-verio.net>.
3610
3639
3611 2003-08-20 Fernando Perez <fperez@colorado.edu>
3640 2003-08-20 Fernando Perez <fperez@colorado.edu>
3612
3641
3613 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3642 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3614 printing so that it would print multi-line string forms starting
3643 printing so that it would print multi-line string forms starting
3615 with a new line. This way the formatting is better respected for
3644 with a new line. This way the formatting is better respected for
3616 objects which work hard to make nice string forms.
3645 objects which work hard to make nice string forms.
3617
3646
3618 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3647 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3619 autocall would overtake data access for objects with both
3648 autocall would overtake data access for objects with both
3620 __getitem__ and __call__.
3649 __getitem__ and __call__.
3621
3650
3622 2003-08-19 *** Released version 0.5.0-rc1
3651 2003-08-19 *** Released version 0.5.0-rc1
3623
3652
3624 2003-08-19 Fernando Perez <fperez@colorado.edu>
3653 2003-08-19 Fernando Perez <fperez@colorado.edu>
3625
3654
3626 * IPython/deep_reload.py (load_tail): single tiny change here
3655 * IPython/deep_reload.py (load_tail): single tiny change here
3627 seems to fix the long-standing bug of dreload() failing to work
3656 seems to fix the long-standing bug of dreload() failing to work
3628 for dotted names. But this module is pretty tricky, so I may have
3657 for dotted names. But this module is pretty tricky, so I may have
3629 missed some subtlety. Needs more testing!.
3658 missed some subtlety. Needs more testing!.
3630
3659
3631 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3660 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3632 exceptions which have badly implemented __str__ methods.
3661 exceptions which have badly implemented __str__ methods.
3633 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3662 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3634 which I've been getting reports about from Python 2.3 users. I
3663 which I've been getting reports about from Python 2.3 users. I
3635 wish I had a simple test case to reproduce the problem, so I could
3664 wish I had a simple test case to reproduce the problem, so I could
3636 either write a cleaner workaround or file a bug report if
3665 either write a cleaner workaround or file a bug report if
3637 necessary.
3666 necessary.
3638
3667
3639 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3668 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3640 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3669 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3641 a bug report by Tjabo Kloppenburg.
3670 a bug report by Tjabo Kloppenburg.
3642
3671
3643 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3672 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3644 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3673 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3645 seems rather unstable. Thanks to a bug report by Tjabo
3674 seems rather unstable. Thanks to a bug report by Tjabo
3646 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3675 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3647
3676
3648 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3677 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3649 this out soon because of the critical fixes in the inner loop for
3678 this out soon because of the critical fixes in the inner loop for
3650 generators.
3679 generators.
3651
3680
3652 * IPython/Magic.py (Magic.getargspec): removed. This (and
3681 * IPython/Magic.py (Magic.getargspec): removed. This (and
3653 _get_def) have been obsoleted by OInspect for a long time, I
3682 _get_def) have been obsoleted by OInspect for a long time, I
3654 hadn't noticed that they were dead code.
3683 hadn't noticed that they were dead code.
3655 (Magic._ofind): restored _ofind functionality for a few literals
3684 (Magic._ofind): restored _ofind functionality for a few literals
3656 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3685 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3657 for things like "hello".capitalize?, since that would require a
3686 for things like "hello".capitalize?, since that would require a
3658 potentially dangerous eval() again.
3687 potentially dangerous eval() again.
3659
3688
3660 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3689 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3661 logic a bit more to clean up the escapes handling and minimize the
3690 logic a bit more to clean up the escapes handling and minimize the
3662 use of _ofind to only necessary cases. The interactive 'feel' of
3691 use of _ofind to only necessary cases. The interactive 'feel' of
3663 IPython should have improved quite a bit with the changes in
3692 IPython should have improved quite a bit with the changes in
3664 _prefilter and _ofind (besides being far safer than before).
3693 _prefilter and _ofind (besides being far safer than before).
3665
3694
3666 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3695 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3667 obscure, never reported). Edit would fail to find the object to
3696 obscure, never reported). Edit would fail to find the object to
3668 edit under some circumstances.
3697 edit under some circumstances.
3669 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3698 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3670 which were causing double-calling of generators. Those eval calls
3699 which were causing double-calling of generators. Those eval calls
3671 were _very_ dangerous, since code with side effects could be
3700 were _very_ dangerous, since code with side effects could be
3672 triggered. As they say, 'eval is evil'... These were the
3701 triggered. As they say, 'eval is evil'... These were the
3673 nastiest evals in IPython. Besides, _ofind is now far simpler,
3702 nastiest evals in IPython. Besides, _ofind is now far simpler,
3674 and it should also be quite a bit faster. Its use of inspect is
3703 and it should also be quite a bit faster. Its use of inspect is
3675 also safer, so perhaps some of the inspect-related crashes I've
3704 also safer, so perhaps some of the inspect-related crashes I've
3676 seen lately with Python 2.3 might be taken care of. That will
3705 seen lately with Python 2.3 might be taken care of. That will
3677 need more testing.
3706 need more testing.
3678
3707
3679 2003-08-17 Fernando Perez <fperez@colorado.edu>
3708 2003-08-17 Fernando Perez <fperez@colorado.edu>
3680
3709
3681 * IPython/iplib.py (InteractiveShell._prefilter): significant
3710 * IPython/iplib.py (InteractiveShell._prefilter): significant
3682 simplifications to the logic for handling user escapes. Faster
3711 simplifications to the logic for handling user escapes. Faster
3683 and simpler code.
3712 and simpler code.
3684
3713
3685 2003-08-14 Fernando Perez <fperez@colorado.edu>
3714 2003-08-14 Fernando Perez <fperez@colorado.edu>
3686
3715
3687 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3716 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3688 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3717 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3689 but it should be quite a bit faster. And the recursive version
3718 but it should be quite a bit faster. And the recursive version
3690 generated O(log N) intermediate storage for all rank>1 arrays,
3719 generated O(log N) intermediate storage for all rank>1 arrays,
3691 even if they were contiguous.
3720 even if they were contiguous.
3692 (l1norm): Added this function.
3721 (l1norm): Added this function.
3693 (norm): Added this function for arbitrary norms (including
3722 (norm): Added this function for arbitrary norms (including
3694 l-infinity). l1 and l2 are still special cases for convenience
3723 l-infinity). l1 and l2 are still special cases for convenience
3695 and speed.
3724 and speed.
3696
3725
3697 2003-08-03 Fernando Perez <fperez@colorado.edu>
3726 2003-08-03 Fernando Perez <fperez@colorado.edu>
3698
3727
3699 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3728 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3700 exceptions, which now raise PendingDeprecationWarnings in Python
3729 exceptions, which now raise PendingDeprecationWarnings in Python
3701 2.3. There were some in Magic and some in Gnuplot2.
3730 2.3. There were some in Magic and some in Gnuplot2.
3702
3731
3703 2003-06-30 Fernando Perez <fperez@colorado.edu>
3732 2003-06-30 Fernando Perez <fperez@colorado.edu>
3704
3733
3705 * IPython/genutils.py (page): modified to call curses only for
3734 * IPython/genutils.py (page): modified to call curses only for
3706 terminals where TERM=='xterm'. After problems under many other
3735 terminals where TERM=='xterm'. After problems under many other
3707 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3736 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3708
3737
3709 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3738 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3710 would be triggered when readline was absent. This was just an old
3739 would be triggered when readline was absent. This was just an old
3711 debugging statement I'd forgotten to take out.
3740 debugging statement I'd forgotten to take out.
3712
3741
3713 2003-06-20 Fernando Perez <fperez@colorado.edu>
3742 2003-06-20 Fernando Perez <fperez@colorado.edu>
3714
3743
3715 * IPython/genutils.py (clock): modified to return only user time
3744 * IPython/genutils.py (clock): modified to return only user time
3716 (not counting system time), after a discussion on scipy. While
3745 (not counting system time), after a discussion on scipy. While
3717 system time may be a useful quantity occasionally, it may much
3746 system time may be a useful quantity occasionally, it may much
3718 more easily be skewed by occasional swapping or other similar
3747 more easily be skewed by occasional swapping or other similar
3719 activity.
3748 activity.
3720
3749
3721 2003-06-05 Fernando Perez <fperez@colorado.edu>
3750 2003-06-05 Fernando Perez <fperez@colorado.edu>
3722
3751
3723 * IPython/numutils.py (identity): new function, for building
3752 * IPython/numutils.py (identity): new function, for building
3724 arbitrary rank Kronecker deltas (mostly backwards compatible with
3753 arbitrary rank Kronecker deltas (mostly backwards compatible with
3725 Numeric.identity)
3754 Numeric.identity)
3726
3755
3727 2003-06-03 Fernando Perez <fperez@colorado.edu>
3756 2003-06-03 Fernando Perez <fperez@colorado.edu>
3728
3757
3729 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3758 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3730 arguments passed to magics with spaces, to allow trailing '\' to
3759 arguments passed to magics with spaces, to allow trailing '\' to
3731 work normally (mainly for Windows users).
3760 work normally (mainly for Windows users).
3732
3761
3733 2003-05-29 Fernando Perez <fperez@colorado.edu>
3762 2003-05-29 Fernando Perez <fperez@colorado.edu>
3734
3763
3735 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3764 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3736 instead of pydoc.help. This fixes a bizarre behavior where
3765 instead of pydoc.help. This fixes a bizarre behavior where
3737 printing '%s' % locals() would trigger the help system. Now
3766 printing '%s' % locals() would trigger the help system. Now
3738 ipython behaves like normal python does.
3767 ipython behaves like normal python does.
3739
3768
3740 Note that if one does 'from pydoc import help', the bizarre
3769 Note that if one does 'from pydoc import help', the bizarre
3741 behavior returns, but this will also happen in normal python, so
3770 behavior returns, but this will also happen in normal python, so
3742 it's not an ipython bug anymore (it has to do with how pydoc.help
3771 it's not an ipython bug anymore (it has to do with how pydoc.help
3743 is implemented).
3772 is implemented).
3744
3773
3745 2003-05-22 Fernando Perez <fperez@colorado.edu>
3774 2003-05-22 Fernando Perez <fperez@colorado.edu>
3746
3775
3747 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3776 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3748 return [] instead of None when nothing matches, also match to end
3777 return [] instead of None when nothing matches, also match to end
3749 of line. Patch by Gary Bishop.
3778 of line. Patch by Gary Bishop.
3750
3779
3751 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3780 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3752 protection as before, for files passed on the command line. This
3781 protection as before, for files passed on the command line. This
3753 prevents the CrashHandler from kicking in if user files call into
3782 prevents the CrashHandler from kicking in if user files call into
3754 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3783 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3755 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3784 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3756
3785
3757 2003-05-20 *** Released version 0.4.0
3786 2003-05-20 *** Released version 0.4.0
3758
3787
3759 2003-05-20 Fernando Perez <fperez@colorado.edu>
3788 2003-05-20 Fernando Perez <fperez@colorado.edu>
3760
3789
3761 * setup.py: added support for manpages. It's a bit hackish b/c of
3790 * setup.py: added support for manpages. It's a bit hackish b/c of
3762 a bug in the way the bdist_rpm distutils target handles gzipped
3791 a bug in the way the bdist_rpm distutils target handles gzipped
3763 manpages, but it works. After a patch by Jack.
3792 manpages, but it works. After a patch by Jack.
3764
3793
3765 2003-05-19 Fernando Perez <fperez@colorado.edu>
3794 2003-05-19 Fernando Perez <fperez@colorado.edu>
3766
3795
3767 * IPython/numutils.py: added a mockup of the kinds module, since
3796 * IPython/numutils.py: added a mockup of the kinds module, since
3768 it was recently removed from Numeric. This way, numutils will
3797 it was recently removed from Numeric. This way, numutils will
3769 work for all users even if they are missing kinds.
3798 work for all users even if they are missing kinds.
3770
3799
3771 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3800 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3772 failure, which can occur with SWIG-wrapped extensions. After a
3801 failure, which can occur with SWIG-wrapped extensions. After a
3773 crash report from Prabhu.
3802 crash report from Prabhu.
3774
3803
3775 2003-05-16 Fernando Perez <fperez@colorado.edu>
3804 2003-05-16 Fernando Perez <fperez@colorado.edu>
3776
3805
3777 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3806 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3778 protect ipython from user code which may call directly
3807 protect ipython from user code which may call directly
3779 sys.excepthook (this looks like an ipython crash to the user, even
3808 sys.excepthook (this looks like an ipython crash to the user, even
3780 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3809 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3781 This is especially important to help users of WxWindows, but may
3810 This is especially important to help users of WxWindows, but may
3782 also be useful in other cases.
3811 also be useful in other cases.
3783
3812
3784 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3813 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3785 an optional tb_offset to be specified, and to preserve exception
3814 an optional tb_offset to be specified, and to preserve exception
3786 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3815 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3787
3816
3788 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3817 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3789
3818
3790 2003-05-15 Fernando Perez <fperez@colorado.edu>
3819 2003-05-15 Fernando Perez <fperez@colorado.edu>
3791
3820
3792 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3821 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3793 installing for a new user under Windows.
3822 installing for a new user under Windows.
3794
3823
3795 2003-05-12 Fernando Perez <fperez@colorado.edu>
3824 2003-05-12 Fernando Perez <fperez@colorado.edu>
3796
3825
3797 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3826 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3798 handler for Emacs comint-based lines. Currently it doesn't do
3827 handler for Emacs comint-based lines. Currently it doesn't do
3799 much (but importantly, it doesn't update the history cache). In
3828 much (but importantly, it doesn't update the history cache). In
3800 the future it may be expanded if Alex needs more functionality
3829 the future it may be expanded if Alex needs more functionality
3801 there.
3830 there.
3802
3831
3803 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3832 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3804 info to crash reports.
3833 info to crash reports.
3805
3834
3806 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3835 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3807 just like Python's -c. Also fixed crash with invalid -color
3836 just like Python's -c. Also fixed crash with invalid -color
3808 option value at startup. Thanks to Will French
3837 option value at startup. Thanks to Will French
3809 <wfrench-AT-bestweb.net> for the bug report.
3838 <wfrench-AT-bestweb.net> for the bug report.
3810
3839
3811 2003-05-09 Fernando Perez <fperez@colorado.edu>
3840 2003-05-09 Fernando Perez <fperez@colorado.edu>
3812
3841
3813 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3842 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3814 to EvalDict (it's a mapping, after all) and simplified its code
3843 to EvalDict (it's a mapping, after all) and simplified its code
3815 quite a bit, after a nice discussion on c.l.py where Gustavo
3844 quite a bit, after a nice discussion on c.l.py where Gustavo
3816 Córdova <gcordova-AT-sismex.com> suggested the new version.
3845 Córdova <gcordova-AT-sismex.com> suggested the new version.
3817
3846
3818 2003-04-30 Fernando Perez <fperez@colorado.edu>
3847 2003-04-30 Fernando Perez <fperez@colorado.edu>
3819
3848
3820 * IPython/genutils.py (timings_out): modified it to reduce its
3849 * IPython/genutils.py (timings_out): modified it to reduce its
3821 overhead in the common reps==1 case.
3850 overhead in the common reps==1 case.
3822
3851
3823 2003-04-29 Fernando Perez <fperez@colorado.edu>
3852 2003-04-29 Fernando Perez <fperez@colorado.edu>
3824
3853
3825 * IPython/genutils.py (timings_out): Modified to use the resource
3854 * IPython/genutils.py (timings_out): Modified to use the resource
3826 module, which avoids the wraparound problems of time.clock().
3855 module, which avoids the wraparound problems of time.clock().
3827
3856
3828 2003-04-17 *** Released version 0.2.15pre4
3857 2003-04-17 *** Released version 0.2.15pre4
3829
3858
3830 2003-04-17 Fernando Perez <fperez@colorado.edu>
3859 2003-04-17 Fernando Perez <fperez@colorado.edu>
3831
3860
3832 * setup.py (scriptfiles): Split windows-specific stuff over to a
3861 * setup.py (scriptfiles): Split windows-specific stuff over to a
3833 separate file, in an attempt to have a Windows GUI installer.
3862 separate file, in an attempt to have a Windows GUI installer.
3834 That didn't work, but part of the groundwork is done.
3863 That didn't work, but part of the groundwork is done.
3835
3864
3836 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3865 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3837 indent/unindent with 4 spaces. Particularly useful in combination
3866 indent/unindent with 4 spaces. Particularly useful in combination
3838 with the new auto-indent option.
3867 with the new auto-indent option.
3839
3868
3840 2003-04-16 Fernando Perez <fperez@colorado.edu>
3869 2003-04-16 Fernando Perez <fperez@colorado.edu>
3841
3870
3842 * IPython/Magic.py: various replacements of self.rc for
3871 * IPython/Magic.py: various replacements of self.rc for
3843 self.shell.rc. A lot more remains to be done to fully disentangle
3872 self.shell.rc. A lot more remains to be done to fully disentangle
3844 this class from the main Shell class.
3873 this class from the main Shell class.
3845
3874
3846 * IPython/GnuplotRuntime.py: added checks for mouse support so
3875 * IPython/GnuplotRuntime.py: added checks for mouse support so
3847 that we don't try to enable it if the current gnuplot doesn't
3876 that we don't try to enable it if the current gnuplot doesn't
3848 really support it. Also added checks so that we don't try to
3877 really support it. Also added checks so that we don't try to
3849 enable persist under Windows (where Gnuplot doesn't recognize the
3878 enable persist under Windows (where Gnuplot doesn't recognize the
3850 option).
3879 option).
3851
3880
3852 * IPython/iplib.py (InteractiveShell.interact): Added optional
3881 * IPython/iplib.py (InteractiveShell.interact): Added optional
3853 auto-indenting code, after a patch by King C. Shu
3882 auto-indenting code, after a patch by King C. Shu
3854 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3883 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3855 get along well with pasting indented code. If I ever figure out
3884 get along well with pasting indented code. If I ever figure out
3856 how to make that part go well, it will become on by default.
3885 how to make that part go well, it will become on by default.
3857
3886
3858 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3887 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3859 crash ipython if there was an unmatched '%' in the user's prompt
3888 crash ipython if there was an unmatched '%' in the user's prompt
3860 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3889 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3861
3890
3862 * IPython/iplib.py (InteractiveShell.interact): removed the
3891 * IPython/iplib.py (InteractiveShell.interact): removed the
3863 ability to ask the user whether he wants to crash or not at the
3892 ability to ask the user whether he wants to crash or not at the
3864 'last line' exception handler. Calling functions at that point
3893 'last line' exception handler. Calling functions at that point
3865 changes the stack, and the error reports would have incorrect
3894 changes the stack, and the error reports would have incorrect
3866 tracebacks.
3895 tracebacks.
3867
3896
3868 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3897 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3869 pass through a peger a pretty-printed form of any object. After a
3898 pass through a peger a pretty-printed form of any object. After a
3870 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3899 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3871
3900
3872 2003-04-14 Fernando Perez <fperez@colorado.edu>
3901 2003-04-14 Fernando Perez <fperez@colorado.edu>
3873
3902
3874 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3903 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3875 all files in ~ would be modified at first install (instead of
3904 all files in ~ would be modified at first install (instead of
3876 ~/.ipython). This could be potentially disastrous, as the
3905 ~/.ipython). This could be potentially disastrous, as the
3877 modification (make line-endings native) could damage binary files.
3906 modification (make line-endings native) could damage binary files.
3878
3907
3879 2003-04-10 Fernando Perez <fperez@colorado.edu>
3908 2003-04-10 Fernando Perez <fperez@colorado.edu>
3880
3909
3881 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3910 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3882 handle only lines which are invalid python. This now means that
3911 handle only lines which are invalid python. This now means that
3883 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3912 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3884 for the bug report.
3913 for the bug report.
3885
3914
3886 2003-04-01 Fernando Perez <fperez@colorado.edu>
3915 2003-04-01 Fernando Perez <fperez@colorado.edu>
3887
3916
3888 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3917 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3889 where failing to set sys.last_traceback would crash pdb.pm().
3918 where failing to set sys.last_traceback would crash pdb.pm().
3890 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3919 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3891 report.
3920 report.
3892
3921
3893 2003-03-25 Fernando Perez <fperez@colorado.edu>
3922 2003-03-25 Fernando Perez <fperez@colorado.edu>
3894
3923
3895 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3924 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3896 before printing it (it had a lot of spurious blank lines at the
3925 before printing it (it had a lot of spurious blank lines at the
3897 end).
3926 end).
3898
3927
3899 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3928 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3900 output would be sent 21 times! Obviously people don't use this
3929 output would be sent 21 times! Obviously people don't use this
3901 too often, or I would have heard about it.
3930 too often, or I would have heard about it.
3902
3931
3903 2003-03-24 Fernando Perez <fperez@colorado.edu>
3932 2003-03-24 Fernando Perez <fperez@colorado.edu>
3904
3933
3905 * setup.py (scriptfiles): renamed the data_files parameter from
3934 * setup.py (scriptfiles): renamed the data_files parameter from
3906 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3935 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3907 for the patch.
3936 for the patch.
3908
3937
3909 2003-03-20 Fernando Perez <fperez@colorado.edu>
3938 2003-03-20 Fernando Perez <fperez@colorado.edu>
3910
3939
3911 * IPython/genutils.py (error): added error() and fatal()
3940 * IPython/genutils.py (error): added error() and fatal()
3912 functions.
3941 functions.
3913
3942
3914 2003-03-18 *** Released version 0.2.15pre3
3943 2003-03-18 *** Released version 0.2.15pre3
3915
3944
3916 2003-03-18 Fernando Perez <fperez@colorado.edu>
3945 2003-03-18 Fernando Perez <fperez@colorado.edu>
3917
3946
3918 * setupext/install_data_ext.py
3947 * setupext/install_data_ext.py
3919 (install_data_ext.initialize_options): Class contributed by Jack
3948 (install_data_ext.initialize_options): Class contributed by Jack
3920 Moffit for fixing the old distutils hack. He is sending this to
3949 Moffit for fixing the old distutils hack. He is sending this to
3921 the distutils folks so in the future we may not need it as a
3950 the distutils folks so in the future we may not need it as a
3922 private fix.
3951 private fix.
3923
3952
3924 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3953 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3925 changes for Debian packaging. See his patch for full details.
3954 changes for Debian packaging. See his patch for full details.
3926 The old distutils hack of making the ipythonrc* files carry a
3955 The old distutils hack of making the ipythonrc* files carry a
3927 bogus .py extension is gone, at last. Examples were moved to a
3956 bogus .py extension is gone, at last. Examples were moved to a
3928 separate subdir under doc/, and the separate executable scripts
3957 separate subdir under doc/, and the separate executable scripts
3929 now live in their own directory. Overall a great cleanup. The
3958 now live in their own directory. Overall a great cleanup. The
3930 manual was updated to use the new files, and setup.py has been
3959 manual was updated to use the new files, and setup.py has been
3931 fixed for this setup.
3960 fixed for this setup.
3932
3961
3933 * IPython/PyColorize.py (Parser.usage): made non-executable and
3962 * IPython/PyColorize.py (Parser.usage): made non-executable and
3934 created a pycolor wrapper around it to be included as a script.
3963 created a pycolor wrapper around it to be included as a script.
3935
3964
3936 2003-03-12 *** Released version 0.2.15pre2
3965 2003-03-12 *** Released version 0.2.15pre2
3937
3966
3938 2003-03-12 Fernando Perez <fperez@colorado.edu>
3967 2003-03-12 Fernando Perez <fperez@colorado.edu>
3939
3968
3940 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3969 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3941 long-standing problem with garbage characters in some terminals.
3970 long-standing problem with garbage characters in some terminals.
3942 The issue was really that the \001 and \002 escapes must _only_ be
3971 The issue was really that the \001 and \002 escapes must _only_ be
3943 passed to input prompts (which call readline), but _never_ to
3972 passed to input prompts (which call readline), but _never_ to
3944 normal text to be printed on screen. I changed ColorANSI to have
3973 normal text to be printed on screen. I changed ColorANSI to have
3945 two classes: TermColors and InputTermColors, each with the
3974 two classes: TermColors and InputTermColors, each with the
3946 appropriate escapes for input prompts or normal text. The code in
3975 appropriate escapes for input prompts or normal text. The code in
3947 Prompts.py got slightly more complicated, but this very old and
3976 Prompts.py got slightly more complicated, but this very old and
3948 annoying bug is finally fixed.
3977 annoying bug is finally fixed.
3949
3978
3950 All the credit for nailing down the real origin of this problem
3979 All the credit for nailing down the real origin of this problem
3951 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3980 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3952 *Many* thanks to him for spending quite a bit of effort on this.
3981 *Many* thanks to him for spending quite a bit of effort on this.
3953
3982
3954 2003-03-05 *** Released version 0.2.15pre1
3983 2003-03-05 *** Released version 0.2.15pre1
3955
3984
3956 2003-03-03 Fernando Perez <fperez@colorado.edu>
3985 2003-03-03 Fernando Perez <fperez@colorado.edu>
3957
3986
3958 * IPython/FakeModule.py: Moved the former _FakeModule to a
3987 * IPython/FakeModule.py: Moved the former _FakeModule to a
3959 separate file, because it's also needed by Magic (to fix a similar
3988 separate file, because it's also needed by Magic (to fix a similar
3960 pickle-related issue in @run).
3989 pickle-related issue in @run).
3961
3990
3962 2003-03-02 Fernando Perez <fperez@colorado.edu>
3991 2003-03-02 Fernando Perez <fperez@colorado.edu>
3963
3992
3964 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3993 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3965 the autocall option at runtime.
3994 the autocall option at runtime.
3966 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3995 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3967 across Magic.py to start separating Magic from InteractiveShell.
3996 across Magic.py to start separating Magic from InteractiveShell.
3968 (Magic._ofind): Fixed to return proper namespace for dotted
3997 (Magic._ofind): Fixed to return proper namespace for dotted
3969 names. Before, a dotted name would always return 'not currently
3998 names. Before, a dotted name would always return 'not currently
3970 defined', because it would find the 'parent'. s.x would be found,
3999 defined', because it would find the 'parent'. s.x would be found,
3971 but since 'x' isn't defined by itself, it would get confused.
4000 but since 'x' isn't defined by itself, it would get confused.
3972 (Magic.magic_run): Fixed pickling problems reported by Ralf
4001 (Magic.magic_run): Fixed pickling problems reported by Ralf
3973 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4002 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3974 that I'd used when Mike Heeter reported similar issues at the
4003 that I'd used when Mike Heeter reported similar issues at the
3975 top-level, but now for @run. It boils down to injecting the
4004 top-level, but now for @run. It boils down to injecting the
3976 namespace where code is being executed with something that looks
4005 namespace where code is being executed with something that looks
3977 enough like a module to fool pickle.dump(). Since a pickle stores
4006 enough like a module to fool pickle.dump(). Since a pickle stores
3978 a named reference to the importing module, we need this for
4007 a named reference to the importing module, we need this for
3979 pickles to save something sensible.
4008 pickles to save something sensible.
3980
4009
3981 * IPython/ipmaker.py (make_IPython): added an autocall option.
4010 * IPython/ipmaker.py (make_IPython): added an autocall option.
3982
4011
3983 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4012 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3984 the auto-eval code. Now autocalling is an option, and the code is
4013 the auto-eval code. Now autocalling is an option, and the code is
3985 also vastly safer. There is no more eval() involved at all.
4014 also vastly safer. There is no more eval() involved at all.
3986
4015
3987 2003-03-01 Fernando Perez <fperez@colorado.edu>
4016 2003-03-01 Fernando Perez <fperez@colorado.edu>
3988
4017
3989 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4018 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3990 dict with named keys instead of a tuple.
4019 dict with named keys instead of a tuple.
3991
4020
3992 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4021 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3993
4022
3994 * setup.py (make_shortcut): Fixed message about directories
4023 * setup.py (make_shortcut): Fixed message about directories
3995 created during Windows installation (the directories were ok, just
4024 created during Windows installation (the directories were ok, just
3996 the printed message was misleading). Thanks to Chris Liechti
4025 the printed message was misleading). Thanks to Chris Liechti
3997 <cliechti-AT-gmx.net> for the heads up.
4026 <cliechti-AT-gmx.net> for the heads up.
3998
4027
3999 2003-02-21 Fernando Perez <fperez@colorado.edu>
4028 2003-02-21 Fernando Perez <fperez@colorado.edu>
4000
4029
4001 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4030 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4002 of ValueError exception when checking for auto-execution. This
4031 of ValueError exception when checking for auto-execution. This
4003 one is raised by things like Numeric arrays arr.flat when the
4032 one is raised by things like Numeric arrays arr.flat when the
4004 array is non-contiguous.
4033 array is non-contiguous.
4005
4034
4006 2003-01-31 Fernando Perez <fperez@colorado.edu>
4035 2003-01-31 Fernando Perez <fperez@colorado.edu>
4007
4036
4008 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4037 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4009 not return any value at all (even though the command would get
4038 not return any value at all (even though the command would get
4010 executed).
4039 executed).
4011 (xsys): Flush stdout right after printing the command to ensure
4040 (xsys): Flush stdout right after printing the command to ensure
4012 proper ordering of commands and command output in the total
4041 proper ordering of commands and command output in the total
4013 output.
4042 output.
4014 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4043 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4015 system/getoutput as defaults. The old ones are kept for
4044 system/getoutput as defaults. The old ones are kept for
4016 compatibility reasons, so no code which uses this library needs
4045 compatibility reasons, so no code which uses this library needs
4017 changing.
4046 changing.
4018
4047
4019 2003-01-27 *** Released version 0.2.14
4048 2003-01-27 *** Released version 0.2.14
4020
4049
4021 2003-01-25 Fernando Perez <fperez@colorado.edu>
4050 2003-01-25 Fernando Perez <fperez@colorado.edu>
4022
4051
4023 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4052 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4024 functions defined in previous edit sessions could not be re-edited
4053 functions defined in previous edit sessions could not be re-edited
4025 (because the temp files were immediately removed). Now temp files
4054 (because the temp files were immediately removed). Now temp files
4026 are removed only at IPython's exit.
4055 are removed only at IPython's exit.
4027 (Magic.magic_run): Improved @run to perform shell-like expansions
4056 (Magic.magic_run): Improved @run to perform shell-like expansions
4028 on its arguments (~users and $VARS). With this, @run becomes more
4057 on its arguments (~users and $VARS). With this, @run becomes more
4029 like a normal command-line.
4058 like a normal command-line.
4030
4059
4031 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4060 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4032 bugs related to embedding and cleaned up that code. A fairly
4061 bugs related to embedding and cleaned up that code. A fairly
4033 important one was the impossibility to access the global namespace
4062 important one was the impossibility to access the global namespace
4034 through the embedded IPython (only local variables were visible).
4063 through the embedded IPython (only local variables were visible).
4035
4064
4036 2003-01-14 Fernando Perez <fperez@colorado.edu>
4065 2003-01-14 Fernando Perez <fperez@colorado.edu>
4037
4066
4038 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4067 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4039 auto-calling to be a bit more conservative. Now it doesn't get
4068 auto-calling to be a bit more conservative. Now it doesn't get
4040 triggered if any of '!=()<>' are in the rest of the input line, to
4069 triggered if any of '!=()<>' are in the rest of the input line, to
4041 allow comparing callables. Thanks to Alex for the heads up.
4070 allow comparing callables. Thanks to Alex for the heads up.
4042
4071
4043 2003-01-07 Fernando Perez <fperez@colorado.edu>
4072 2003-01-07 Fernando Perez <fperez@colorado.edu>
4044
4073
4045 * IPython/genutils.py (page): fixed estimation of the number of
4074 * IPython/genutils.py (page): fixed estimation of the number of
4046 lines in a string to be paged to simply count newlines. This
4075 lines in a string to be paged to simply count newlines. This
4047 prevents over-guessing due to embedded escape sequences. A better
4076 prevents over-guessing due to embedded escape sequences. A better
4048 long-term solution would involve stripping out the control chars
4077 long-term solution would involve stripping out the control chars
4049 for the count, but it's potentially so expensive I just don't
4078 for the count, but it's potentially so expensive I just don't
4050 think it's worth doing.
4079 think it's worth doing.
4051
4080
4052 2002-12-19 *** Released version 0.2.14pre50
4081 2002-12-19 *** Released version 0.2.14pre50
4053
4082
4054 2002-12-19 Fernando Perez <fperez@colorado.edu>
4083 2002-12-19 Fernando Perez <fperez@colorado.edu>
4055
4084
4056 * tools/release (version): Changed release scripts to inform
4085 * tools/release (version): Changed release scripts to inform
4057 Andrea and build a NEWS file with a list of recent changes.
4086 Andrea and build a NEWS file with a list of recent changes.
4058
4087
4059 * IPython/ColorANSI.py (__all__): changed terminal detection
4088 * IPython/ColorANSI.py (__all__): changed terminal detection
4060 code. Seems to work better for xterms without breaking
4089 code. Seems to work better for xterms without breaking
4061 konsole. Will need more testing to determine if WinXP and Mac OSX
4090 konsole. Will need more testing to determine if WinXP and Mac OSX
4062 also work ok.
4091 also work ok.
4063
4092
4064 2002-12-18 *** Released version 0.2.14pre49
4093 2002-12-18 *** Released version 0.2.14pre49
4065
4094
4066 2002-12-18 Fernando Perez <fperez@colorado.edu>
4095 2002-12-18 Fernando Perez <fperez@colorado.edu>
4067
4096
4068 * Docs: added new info about Mac OSX, from Andrea.
4097 * Docs: added new info about Mac OSX, from Andrea.
4069
4098
4070 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4099 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4071 allow direct plotting of python strings whose format is the same
4100 allow direct plotting of python strings whose format is the same
4072 of gnuplot data files.
4101 of gnuplot data files.
4073
4102
4074 2002-12-16 Fernando Perez <fperez@colorado.edu>
4103 2002-12-16 Fernando Perez <fperez@colorado.edu>
4075
4104
4076 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4105 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4077 value of exit question to be acknowledged.
4106 value of exit question to be acknowledged.
4078
4107
4079 2002-12-03 Fernando Perez <fperez@colorado.edu>
4108 2002-12-03 Fernando Perez <fperez@colorado.edu>
4080
4109
4081 * IPython/ipmaker.py: removed generators, which had been added
4110 * IPython/ipmaker.py: removed generators, which had been added
4082 by mistake in an earlier debugging run. This was causing trouble
4111 by mistake in an earlier debugging run. This was causing trouble
4083 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4112 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4084 for pointing this out.
4113 for pointing this out.
4085
4114
4086 2002-11-17 Fernando Perez <fperez@colorado.edu>
4115 2002-11-17 Fernando Perez <fperez@colorado.edu>
4087
4116
4088 * Manual: updated the Gnuplot section.
4117 * Manual: updated the Gnuplot section.
4089
4118
4090 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4119 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4091 a much better split of what goes in Runtime and what goes in
4120 a much better split of what goes in Runtime and what goes in
4092 Interactive.
4121 Interactive.
4093
4122
4094 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4123 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4095 being imported from iplib.
4124 being imported from iplib.
4096
4125
4097 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4126 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4098 for command-passing. Now the global Gnuplot instance is called
4127 for command-passing. Now the global Gnuplot instance is called
4099 'gp' instead of 'g', which was really a far too fragile and
4128 'gp' instead of 'g', which was really a far too fragile and
4100 common name.
4129 common name.
4101
4130
4102 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4131 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4103 bounding boxes generated by Gnuplot for square plots.
4132 bounding boxes generated by Gnuplot for square plots.
4104
4133
4105 * IPython/genutils.py (popkey): new function added. I should
4134 * IPython/genutils.py (popkey): new function added. I should
4106 suggest this on c.l.py as a dict method, it seems useful.
4135 suggest this on c.l.py as a dict method, it seems useful.
4107
4136
4108 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4137 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4109 to transparently handle PostScript generation. MUCH better than
4138 to transparently handle PostScript generation. MUCH better than
4110 the previous plot_eps/replot_eps (which I removed now). The code
4139 the previous plot_eps/replot_eps (which I removed now). The code
4111 is also fairly clean and well documented now (including
4140 is also fairly clean and well documented now (including
4112 docstrings).
4141 docstrings).
4113
4142
4114 2002-11-13 Fernando Perez <fperez@colorado.edu>
4143 2002-11-13 Fernando Perez <fperez@colorado.edu>
4115
4144
4116 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4145 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4117 (inconsistent with options).
4146 (inconsistent with options).
4118
4147
4119 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4148 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4120 manually disabled, I don't know why. Fixed it.
4149 manually disabled, I don't know why. Fixed it.
4121 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4150 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4122 eps output.
4151 eps output.
4123
4152
4124 2002-11-12 Fernando Perez <fperez@colorado.edu>
4153 2002-11-12 Fernando Perez <fperez@colorado.edu>
4125
4154
4126 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4155 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4127 don't propagate up to caller. Fixes crash reported by François
4156 don't propagate up to caller. Fixes crash reported by François
4128 Pinard.
4157 Pinard.
4129
4158
4130 2002-11-09 Fernando Perez <fperez@colorado.edu>
4159 2002-11-09 Fernando Perez <fperez@colorado.edu>
4131
4160
4132 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4161 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4133 history file for new users.
4162 history file for new users.
4134 (make_IPython): fixed bug where initial install would leave the
4163 (make_IPython): fixed bug where initial install would leave the
4135 user running in the .ipython dir.
4164 user running in the .ipython dir.
4136 (make_IPython): fixed bug where config dir .ipython would be
4165 (make_IPython): fixed bug where config dir .ipython would be
4137 created regardless of the given -ipythondir option. Thanks to Cory
4166 created regardless of the given -ipythondir option. Thanks to Cory
4138 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4167 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4139
4168
4140 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4169 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4141 type confirmations. Will need to use it in all of IPython's code
4170 type confirmations. Will need to use it in all of IPython's code
4142 consistently.
4171 consistently.
4143
4172
4144 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4173 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4145 context to print 31 lines instead of the default 5. This will make
4174 context to print 31 lines instead of the default 5. This will make
4146 the crash reports extremely detailed in case the problem is in
4175 the crash reports extremely detailed in case the problem is in
4147 libraries I don't have access to.
4176 libraries I don't have access to.
4148
4177
4149 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4178 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4150 line of defense' code to still crash, but giving users fair
4179 line of defense' code to still crash, but giving users fair
4151 warning. I don't want internal errors to go unreported: if there's
4180 warning. I don't want internal errors to go unreported: if there's
4152 an internal problem, IPython should crash and generate a full
4181 an internal problem, IPython should crash and generate a full
4153 report.
4182 report.
4154
4183
4155 2002-11-08 Fernando Perez <fperez@colorado.edu>
4184 2002-11-08 Fernando Perez <fperez@colorado.edu>
4156
4185
4157 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4186 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4158 otherwise uncaught exceptions which can appear if people set
4187 otherwise uncaught exceptions which can appear if people set
4159 sys.stdout to something badly broken. Thanks to a crash report
4188 sys.stdout to something badly broken. Thanks to a crash report
4160 from henni-AT-mail.brainbot.com.
4189 from henni-AT-mail.brainbot.com.
4161
4190
4162 2002-11-04 Fernando Perez <fperez@colorado.edu>
4191 2002-11-04 Fernando Perez <fperez@colorado.edu>
4163
4192
4164 * IPython/iplib.py (InteractiveShell.interact): added
4193 * IPython/iplib.py (InteractiveShell.interact): added
4165 __IPYTHON__active to the builtins. It's a flag which goes on when
4194 __IPYTHON__active to the builtins. It's a flag which goes on when
4166 the interaction starts and goes off again when it stops. This
4195 the interaction starts and goes off again when it stops. This
4167 allows embedding code to detect being inside IPython. Before this
4196 allows embedding code to detect being inside IPython. Before this
4168 was done via __IPYTHON__, but that only shows that an IPython
4197 was done via __IPYTHON__, but that only shows that an IPython
4169 instance has been created.
4198 instance has been created.
4170
4199
4171 * IPython/Magic.py (Magic.magic_env): I realized that in a
4200 * IPython/Magic.py (Magic.magic_env): I realized that in a
4172 UserDict, instance.data holds the data as a normal dict. So I
4201 UserDict, instance.data holds the data as a normal dict. So I
4173 modified @env to return os.environ.data instead of rebuilding a
4202 modified @env to return os.environ.data instead of rebuilding a
4174 dict by hand.
4203 dict by hand.
4175
4204
4176 2002-11-02 Fernando Perez <fperez@colorado.edu>
4205 2002-11-02 Fernando Perez <fperez@colorado.edu>
4177
4206
4178 * IPython/genutils.py (warn): changed so that level 1 prints no
4207 * IPython/genutils.py (warn): changed so that level 1 prints no
4179 header. Level 2 is now the default (with 'WARNING' header, as
4208 header. Level 2 is now the default (with 'WARNING' header, as
4180 before). I think I tracked all places where changes were needed in
4209 before). I think I tracked all places where changes were needed in
4181 IPython, but outside code using the old level numbering may have
4210 IPython, but outside code using the old level numbering may have
4182 broken.
4211 broken.
4183
4212
4184 * IPython/iplib.py (InteractiveShell.runcode): added this to
4213 * IPython/iplib.py (InteractiveShell.runcode): added this to
4185 handle the tracebacks in SystemExit traps correctly. The previous
4214 handle the tracebacks in SystemExit traps correctly. The previous
4186 code (through interact) was printing more of the stack than
4215 code (through interact) was printing more of the stack than
4187 necessary, showing IPython internal code to the user.
4216 necessary, showing IPython internal code to the user.
4188
4217
4189 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4218 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4190 default. Now that the default at the confirmation prompt is yes,
4219 default. Now that the default at the confirmation prompt is yes,
4191 it's not so intrusive. François' argument that ipython sessions
4220 it's not so intrusive. François' argument that ipython sessions
4192 tend to be complex enough not to lose them from an accidental C-d,
4221 tend to be complex enough not to lose them from an accidental C-d,
4193 is a valid one.
4222 is a valid one.
4194
4223
4195 * IPython/iplib.py (InteractiveShell.interact): added a
4224 * IPython/iplib.py (InteractiveShell.interact): added a
4196 showtraceback() call to the SystemExit trap, and modified the exit
4225 showtraceback() call to the SystemExit trap, and modified the exit
4197 confirmation to have yes as the default.
4226 confirmation to have yes as the default.
4198
4227
4199 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4228 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4200 this file. It's been gone from the code for a long time, this was
4229 this file. It's been gone from the code for a long time, this was
4201 simply leftover junk.
4230 simply leftover junk.
4202
4231
4203 2002-11-01 Fernando Perez <fperez@colorado.edu>
4232 2002-11-01 Fernando Perez <fperez@colorado.edu>
4204
4233
4205 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4234 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4206 added. If set, IPython now traps EOF and asks for
4235 added. If set, IPython now traps EOF and asks for
4207 confirmation. After a request by François Pinard.
4236 confirmation. After a request by François Pinard.
4208
4237
4209 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4238 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4210 of @abort, and with a new (better) mechanism for handling the
4239 of @abort, and with a new (better) mechanism for handling the
4211 exceptions.
4240 exceptions.
4212
4241
4213 2002-10-27 Fernando Perez <fperez@colorado.edu>
4242 2002-10-27 Fernando Perez <fperez@colorado.edu>
4214
4243
4215 * IPython/usage.py (__doc__): updated the --help information and
4244 * IPython/usage.py (__doc__): updated the --help information and
4216 the ipythonrc file to indicate that -log generates
4245 the ipythonrc file to indicate that -log generates
4217 ./ipython.log. Also fixed the corresponding info in @logstart.
4246 ./ipython.log. Also fixed the corresponding info in @logstart.
4218 This and several other fixes in the manuals thanks to reports by
4247 This and several other fixes in the manuals thanks to reports by
4219 François Pinard <pinard-AT-iro.umontreal.ca>.
4248 François Pinard <pinard-AT-iro.umontreal.ca>.
4220
4249
4221 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4250 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4222 refer to @logstart (instead of @log, which doesn't exist).
4251 refer to @logstart (instead of @log, which doesn't exist).
4223
4252
4224 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4253 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4225 AttributeError crash. Thanks to Christopher Armstrong
4254 AttributeError crash. Thanks to Christopher Armstrong
4226 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4255 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4227 introduced recently (in 0.2.14pre37) with the fix to the eval
4256 introduced recently (in 0.2.14pre37) with the fix to the eval
4228 problem mentioned below.
4257 problem mentioned below.
4229
4258
4230 2002-10-17 Fernando Perez <fperez@colorado.edu>
4259 2002-10-17 Fernando Perez <fperez@colorado.edu>
4231
4260
4232 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4261 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4233 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4262 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4234
4263
4235 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4264 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4236 this function to fix a problem reported by Alex Schmolck. He saw
4265 this function to fix a problem reported by Alex Schmolck. He saw
4237 it with list comprehensions and generators, which were getting
4266 it with list comprehensions and generators, which were getting
4238 called twice. The real problem was an 'eval' call in testing for
4267 called twice. The real problem was an 'eval' call in testing for
4239 automagic which was evaluating the input line silently.
4268 automagic which was evaluating the input line silently.
4240
4269
4241 This is a potentially very nasty bug, if the input has side
4270 This is a potentially very nasty bug, if the input has side
4242 effects which must not be repeated. The code is much cleaner now,
4271 effects which must not be repeated. The code is much cleaner now,
4243 without any blanket 'except' left and with a regexp test for
4272 without any blanket 'except' left and with a regexp test for
4244 actual function names.
4273 actual function names.
4245
4274
4246 But an eval remains, which I'm not fully comfortable with. I just
4275 But an eval remains, which I'm not fully comfortable with. I just
4247 don't know how to find out if an expression could be a callable in
4276 don't know how to find out if an expression could be a callable in
4248 the user's namespace without doing an eval on the string. However
4277 the user's namespace without doing an eval on the string. However
4249 that string is now much more strictly checked so that no code
4278 that string is now much more strictly checked so that no code
4250 slips by, so the eval should only happen for things that can
4279 slips by, so the eval should only happen for things that can
4251 really be only function/method names.
4280 really be only function/method names.
4252
4281
4253 2002-10-15 Fernando Perez <fperez@colorado.edu>
4282 2002-10-15 Fernando Perez <fperez@colorado.edu>
4254
4283
4255 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4284 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4256 OSX information to main manual, removed README_Mac_OSX file from
4285 OSX information to main manual, removed README_Mac_OSX file from
4257 distribution. Also updated credits for recent additions.
4286 distribution. Also updated credits for recent additions.
4258
4287
4259 2002-10-10 Fernando Perez <fperez@colorado.edu>
4288 2002-10-10 Fernando Perez <fperez@colorado.edu>
4260
4289
4261 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4290 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4262 terminal-related issues. Many thanks to Andrea Riciputi
4291 terminal-related issues. Many thanks to Andrea Riciputi
4263 <andrea.riciputi-AT-libero.it> for writing it.
4292 <andrea.riciputi-AT-libero.it> for writing it.
4264
4293
4265 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4294 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4266 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4295 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4267
4296
4268 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4297 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4269 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4298 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4270 <syver-en-AT-online.no> who both submitted patches for this problem.
4299 <syver-en-AT-online.no> who both submitted patches for this problem.
4271
4300
4272 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4301 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4273 global embedding to make sure that things don't overwrite user
4302 global embedding to make sure that things don't overwrite user
4274 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4303 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4275
4304
4276 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4305 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4277 compatibility. Thanks to Hayden Callow
4306 compatibility. Thanks to Hayden Callow
4278 <h.callow-AT-elec.canterbury.ac.nz>
4307 <h.callow-AT-elec.canterbury.ac.nz>
4279
4308
4280 2002-10-04 Fernando Perez <fperez@colorado.edu>
4309 2002-10-04 Fernando Perez <fperez@colorado.edu>
4281
4310
4282 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4311 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4283 Gnuplot.File objects.
4312 Gnuplot.File objects.
4284
4313
4285 2002-07-23 Fernando Perez <fperez@colorado.edu>
4314 2002-07-23 Fernando Perez <fperez@colorado.edu>
4286
4315
4287 * IPython/genutils.py (timing): Added timings() and timing() for
4316 * IPython/genutils.py (timing): Added timings() and timing() for
4288 quick access to the most commonly needed data, the execution
4317 quick access to the most commonly needed data, the execution
4289 times. Old timing() renamed to timings_out().
4318 times. Old timing() renamed to timings_out().
4290
4319
4291 2002-07-18 Fernando Perez <fperez@colorado.edu>
4320 2002-07-18 Fernando Perez <fperez@colorado.edu>
4292
4321
4293 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4322 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4294 bug with nested instances disrupting the parent's tab completion.
4323 bug with nested instances disrupting the parent's tab completion.
4295
4324
4296 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4325 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4297 all_completions code to begin the emacs integration.
4326 all_completions code to begin the emacs integration.
4298
4327
4299 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4328 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4300 argument to allow titling individual arrays when plotting.
4329 argument to allow titling individual arrays when plotting.
4301
4330
4302 2002-07-15 Fernando Perez <fperez@colorado.edu>
4331 2002-07-15 Fernando Perez <fperez@colorado.edu>
4303
4332
4304 * setup.py (make_shortcut): changed to retrieve the value of
4333 * setup.py (make_shortcut): changed to retrieve the value of
4305 'Program Files' directory from the registry (this value changes in
4334 'Program Files' directory from the registry (this value changes in
4306 non-english versions of Windows). Thanks to Thomas Fanslau
4335 non-english versions of Windows). Thanks to Thomas Fanslau
4307 <tfanslau-AT-gmx.de> for the report.
4336 <tfanslau-AT-gmx.de> for the report.
4308
4337
4309 2002-07-10 Fernando Perez <fperez@colorado.edu>
4338 2002-07-10 Fernando Perez <fperez@colorado.edu>
4310
4339
4311 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4340 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4312 a bug in pdb, which crashes if a line with only whitespace is
4341 a bug in pdb, which crashes if a line with only whitespace is
4313 entered. Bug report submitted to sourceforge.
4342 entered. Bug report submitted to sourceforge.
4314
4343
4315 2002-07-09 Fernando Perez <fperez@colorado.edu>
4344 2002-07-09 Fernando Perez <fperez@colorado.edu>
4316
4345
4317 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4346 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4318 reporting exceptions (it's a bug in inspect.py, I just set a
4347 reporting exceptions (it's a bug in inspect.py, I just set a
4319 workaround).
4348 workaround).
4320
4349
4321 2002-07-08 Fernando Perez <fperez@colorado.edu>
4350 2002-07-08 Fernando Perez <fperez@colorado.edu>
4322
4351
4323 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4352 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4324 __IPYTHON__ in __builtins__ to show up in user_ns.
4353 __IPYTHON__ in __builtins__ to show up in user_ns.
4325
4354
4326 2002-07-03 Fernando Perez <fperez@colorado.edu>
4355 2002-07-03 Fernando Perez <fperez@colorado.edu>
4327
4356
4328 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4357 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4329 name from @gp_set_instance to @gp_set_default.
4358 name from @gp_set_instance to @gp_set_default.
4330
4359
4331 * IPython/ipmaker.py (make_IPython): default editor value set to
4360 * IPython/ipmaker.py (make_IPython): default editor value set to
4332 '0' (a string), to match the rc file. Otherwise will crash when
4361 '0' (a string), to match the rc file. Otherwise will crash when
4333 .strip() is called on it.
4362 .strip() is called on it.
4334
4363
4335
4364
4336 2002-06-28 Fernando Perez <fperez@colorado.edu>
4365 2002-06-28 Fernando Perez <fperez@colorado.edu>
4337
4366
4338 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4367 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4339 of files in current directory when a file is executed via
4368 of files in current directory when a file is executed via
4340 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4369 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4341
4370
4342 * setup.py (manfiles): fix for rpm builds, submitted by RA
4371 * setup.py (manfiles): fix for rpm builds, submitted by RA
4343 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4372 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4344
4373
4345 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4374 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4346 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4375 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4347 string!). A. Schmolck caught this one.
4376 string!). A. Schmolck caught this one.
4348
4377
4349 2002-06-27 Fernando Perez <fperez@colorado.edu>
4378 2002-06-27 Fernando Perez <fperez@colorado.edu>
4350
4379
4351 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4380 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4352 defined files at the cmd line. __name__ wasn't being set to
4381 defined files at the cmd line. __name__ wasn't being set to
4353 __main__.
4382 __main__.
4354
4383
4355 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4384 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4356 regular lists and tuples besides Numeric arrays.
4385 regular lists and tuples besides Numeric arrays.
4357
4386
4358 * IPython/Prompts.py (CachedOutput.__call__): Added output
4387 * IPython/Prompts.py (CachedOutput.__call__): Added output
4359 supression for input ending with ';'. Similar to Mathematica and
4388 supression for input ending with ';'. Similar to Mathematica and
4360 Matlab. The _* vars and Out[] list are still updated, just like
4389 Matlab. The _* vars and Out[] list are still updated, just like
4361 Mathematica behaves.
4390 Mathematica behaves.
4362
4391
4363 2002-06-25 Fernando Perez <fperez@colorado.edu>
4392 2002-06-25 Fernando Perez <fperez@colorado.edu>
4364
4393
4365 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4394 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4366 .ini extensions for profiels under Windows.
4395 .ini extensions for profiels under Windows.
4367
4396
4368 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4397 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4369 string form. Fix contributed by Alexander Schmolck
4398 string form. Fix contributed by Alexander Schmolck
4370 <a.schmolck-AT-gmx.net>
4399 <a.schmolck-AT-gmx.net>
4371
4400
4372 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4401 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4373 pre-configured Gnuplot instance.
4402 pre-configured Gnuplot instance.
4374
4403
4375 2002-06-21 Fernando Perez <fperez@colorado.edu>
4404 2002-06-21 Fernando Perez <fperez@colorado.edu>
4376
4405
4377 * IPython/numutils.py (exp_safe): new function, works around the
4406 * IPython/numutils.py (exp_safe): new function, works around the
4378 underflow problems in Numeric.
4407 underflow problems in Numeric.
4379 (log2): New fn. Safe log in base 2: returns exact integer answer
4408 (log2): New fn. Safe log in base 2: returns exact integer answer
4380 for exact integer powers of 2.
4409 for exact integer powers of 2.
4381
4410
4382 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4411 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4383 properly.
4412 properly.
4384
4413
4385 2002-06-20 Fernando Perez <fperez@colorado.edu>
4414 2002-06-20 Fernando Perez <fperez@colorado.edu>
4386
4415
4387 * IPython/genutils.py (timing): new function like
4416 * IPython/genutils.py (timing): new function like
4388 Mathematica's. Similar to time_test, but returns more info.
4417 Mathematica's. Similar to time_test, but returns more info.
4389
4418
4390 2002-06-18 Fernando Perez <fperez@colorado.edu>
4419 2002-06-18 Fernando Perez <fperez@colorado.edu>
4391
4420
4392 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4421 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4393 according to Mike Heeter's suggestions.
4422 according to Mike Heeter's suggestions.
4394
4423
4395 2002-06-16 Fernando Perez <fperez@colorado.edu>
4424 2002-06-16 Fernando Perez <fperez@colorado.edu>
4396
4425
4397 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4426 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4398 system. GnuplotMagic is gone as a user-directory option. New files
4427 system. GnuplotMagic is gone as a user-directory option. New files
4399 make it easier to use all the gnuplot stuff both from external
4428 make it easier to use all the gnuplot stuff both from external
4400 programs as well as from IPython. Had to rewrite part of
4429 programs as well as from IPython. Had to rewrite part of
4401 hardcopy() b/c of a strange bug: often the ps files simply don't
4430 hardcopy() b/c of a strange bug: often the ps files simply don't
4402 get created, and require a repeat of the command (often several
4431 get created, and require a repeat of the command (often several
4403 times).
4432 times).
4404
4433
4405 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4434 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4406 resolve output channel at call time, so that if sys.stderr has
4435 resolve output channel at call time, so that if sys.stderr has
4407 been redirected by user this gets honored.
4436 been redirected by user this gets honored.
4408
4437
4409 2002-06-13 Fernando Perez <fperez@colorado.edu>
4438 2002-06-13 Fernando Perez <fperez@colorado.edu>
4410
4439
4411 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4440 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4412 IPShell. Kept a copy with the old names to avoid breaking people's
4441 IPShell. Kept a copy with the old names to avoid breaking people's
4413 embedded code.
4442 embedded code.
4414
4443
4415 * IPython/ipython: simplified it to the bare minimum after
4444 * IPython/ipython: simplified it to the bare minimum after
4416 Holger's suggestions. Added info about how to use it in
4445 Holger's suggestions. Added info about how to use it in
4417 PYTHONSTARTUP.
4446 PYTHONSTARTUP.
4418
4447
4419 * IPython/Shell.py (IPythonShell): changed the options passing
4448 * IPython/Shell.py (IPythonShell): changed the options passing
4420 from a string with funky %s replacements to a straight list. Maybe
4449 from a string with funky %s replacements to a straight list. Maybe
4421 a bit more typing, but it follows sys.argv conventions, so there's
4450 a bit more typing, but it follows sys.argv conventions, so there's
4422 less special-casing to remember.
4451 less special-casing to remember.
4423
4452
4424 2002-06-12 Fernando Perez <fperez@colorado.edu>
4453 2002-06-12 Fernando Perez <fperez@colorado.edu>
4425
4454
4426 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4455 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4427 command. Thanks to a suggestion by Mike Heeter.
4456 command. Thanks to a suggestion by Mike Heeter.
4428 (Magic.magic_pfile): added behavior to look at filenames if given
4457 (Magic.magic_pfile): added behavior to look at filenames if given
4429 arg is not a defined object.
4458 arg is not a defined object.
4430 (Magic.magic_save): New @save function to save code snippets. Also
4459 (Magic.magic_save): New @save function to save code snippets. Also
4431 a Mike Heeter idea.
4460 a Mike Heeter idea.
4432
4461
4433 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4462 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4434 plot() and replot(). Much more convenient now, especially for
4463 plot() and replot(). Much more convenient now, especially for
4435 interactive use.
4464 interactive use.
4436
4465
4437 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4466 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4438 filenames.
4467 filenames.
4439
4468
4440 2002-06-02 Fernando Perez <fperez@colorado.edu>
4469 2002-06-02 Fernando Perez <fperez@colorado.edu>
4441
4470
4442 * IPython/Struct.py (Struct.__init__): modified to admit
4471 * IPython/Struct.py (Struct.__init__): modified to admit
4443 initialization via another struct.
4472 initialization via another struct.
4444
4473
4445 * IPython/genutils.py (SystemExec.__init__): New stateful
4474 * IPython/genutils.py (SystemExec.__init__): New stateful
4446 interface to xsys and bq. Useful for writing system scripts.
4475 interface to xsys and bq. Useful for writing system scripts.
4447
4476
4448 2002-05-30 Fernando Perez <fperez@colorado.edu>
4477 2002-05-30 Fernando Perez <fperez@colorado.edu>
4449
4478
4450 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4479 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4451 documents. This will make the user download smaller (it's getting
4480 documents. This will make the user download smaller (it's getting
4452 too big).
4481 too big).
4453
4482
4454 2002-05-29 Fernando Perez <fperez@colorado.edu>
4483 2002-05-29 Fernando Perez <fperez@colorado.edu>
4455
4484
4456 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4485 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4457 fix problems with shelve and pickle. Seems to work, but I don't
4486 fix problems with shelve and pickle. Seems to work, but I don't
4458 know if corner cases break it. Thanks to Mike Heeter
4487 know if corner cases break it. Thanks to Mike Heeter
4459 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4488 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4460
4489
4461 2002-05-24 Fernando Perez <fperez@colorado.edu>
4490 2002-05-24 Fernando Perez <fperez@colorado.edu>
4462
4491
4463 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4492 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4464 macros having broken.
4493 macros having broken.
4465
4494
4466 2002-05-21 Fernando Perez <fperez@colorado.edu>
4495 2002-05-21 Fernando Perez <fperez@colorado.edu>
4467
4496
4468 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4497 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4469 introduced logging bug: all history before logging started was
4498 introduced logging bug: all history before logging started was
4470 being written one character per line! This came from the redesign
4499 being written one character per line! This came from the redesign
4471 of the input history as a special list which slices to strings,
4500 of the input history as a special list which slices to strings,
4472 not to lists.
4501 not to lists.
4473
4502
4474 2002-05-20 Fernando Perez <fperez@colorado.edu>
4503 2002-05-20 Fernando Perez <fperez@colorado.edu>
4475
4504
4476 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4505 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4477 be an attribute of all classes in this module. The design of these
4506 be an attribute of all classes in this module. The design of these
4478 classes needs some serious overhauling.
4507 classes needs some serious overhauling.
4479
4508
4480 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4509 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4481 which was ignoring '_' in option names.
4510 which was ignoring '_' in option names.
4482
4511
4483 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4512 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4484 'Verbose_novars' to 'Context' and made it the new default. It's a
4513 'Verbose_novars' to 'Context' and made it the new default. It's a
4485 bit more readable and also safer than verbose.
4514 bit more readable and also safer than verbose.
4486
4515
4487 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4516 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4488 triple-quoted strings.
4517 triple-quoted strings.
4489
4518
4490 * IPython/OInspect.py (__all__): new module exposing the object
4519 * IPython/OInspect.py (__all__): new module exposing the object
4491 introspection facilities. Now the corresponding magics are dummy
4520 introspection facilities. Now the corresponding magics are dummy
4492 wrappers around this. Having this module will make it much easier
4521 wrappers around this. Having this module will make it much easier
4493 to put these functions into our modified pdb.
4522 to put these functions into our modified pdb.
4494 This new object inspector system uses the new colorizing module,
4523 This new object inspector system uses the new colorizing module,
4495 so source code and other things are nicely syntax highlighted.
4524 so source code and other things are nicely syntax highlighted.
4496
4525
4497 2002-05-18 Fernando Perez <fperez@colorado.edu>
4526 2002-05-18 Fernando Perez <fperez@colorado.edu>
4498
4527
4499 * IPython/ColorANSI.py: Split the coloring tools into a separate
4528 * IPython/ColorANSI.py: Split the coloring tools into a separate
4500 module so I can use them in other code easier (they were part of
4529 module so I can use them in other code easier (they were part of
4501 ultraTB).
4530 ultraTB).
4502
4531
4503 2002-05-17 Fernando Perez <fperez@colorado.edu>
4532 2002-05-17 Fernando Perez <fperez@colorado.edu>
4504
4533
4505 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4534 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4506 fixed it to set the global 'g' also to the called instance, as
4535 fixed it to set the global 'g' also to the called instance, as
4507 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4536 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4508 user's 'g' variables).
4537 user's 'g' variables).
4509
4538
4510 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4539 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4511 global variables (aliases to _ih,_oh) so that users which expect
4540 global variables (aliases to _ih,_oh) so that users which expect
4512 In[5] or Out[7] to work aren't unpleasantly surprised.
4541 In[5] or Out[7] to work aren't unpleasantly surprised.
4513 (InputList.__getslice__): new class to allow executing slices of
4542 (InputList.__getslice__): new class to allow executing slices of
4514 input history directly. Very simple class, complements the use of
4543 input history directly. Very simple class, complements the use of
4515 macros.
4544 macros.
4516
4545
4517 2002-05-16 Fernando Perez <fperez@colorado.edu>
4546 2002-05-16 Fernando Perez <fperez@colorado.edu>
4518
4547
4519 * setup.py (docdirbase): make doc directory be just doc/IPython
4548 * setup.py (docdirbase): make doc directory be just doc/IPython
4520 without version numbers, it will reduce clutter for users.
4549 without version numbers, it will reduce clutter for users.
4521
4550
4522 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4551 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4523 execfile call to prevent possible memory leak. See for details:
4552 execfile call to prevent possible memory leak. See for details:
4524 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4553 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4525
4554
4526 2002-05-15 Fernando Perez <fperez@colorado.edu>
4555 2002-05-15 Fernando Perez <fperez@colorado.edu>
4527
4556
4528 * IPython/Magic.py (Magic.magic_psource): made the object
4557 * IPython/Magic.py (Magic.magic_psource): made the object
4529 introspection names be more standard: pdoc, pdef, pfile and
4558 introspection names be more standard: pdoc, pdef, pfile and
4530 psource. They all print/page their output, and it makes
4559 psource. They all print/page their output, and it makes
4531 remembering them easier. Kept old names for compatibility as
4560 remembering them easier. Kept old names for compatibility as
4532 aliases.
4561 aliases.
4533
4562
4534 2002-05-14 Fernando Perez <fperez@colorado.edu>
4563 2002-05-14 Fernando Perez <fperez@colorado.edu>
4535
4564
4536 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4565 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4537 what the mouse problem was. The trick is to use gnuplot with temp
4566 what the mouse problem was. The trick is to use gnuplot with temp
4538 files and NOT with pipes (for data communication), because having
4567 files and NOT with pipes (for data communication), because having
4539 both pipes and the mouse on is bad news.
4568 both pipes and the mouse on is bad news.
4540
4569
4541 2002-05-13 Fernando Perez <fperez@colorado.edu>
4570 2002-05-13 Fernando Perez <fperez@colorado.edu>
4542
4571
4543 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4572 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4544 bug. Information would be reported about builtins even when
4573 bug. Information would be reported about builtins even when
4545 user-defined functions overrode them.
4574 user-defined functions overrode them.
4546
4575
4547 2002-05-11 Fernando Perez <fperez@colorado.edu>
4576 2002-05-11 Fernando Perez <fperez@colorado.edu>
4548
4577
4549 * IPython/__init__.py (__all__): removed FlexCompleter from
4578 * IPython/__init__.py (__all__): removed FlexCompleter from
4550 __all__ so that things don't fail in platforms without readline.
4579 __all__ so that things don't fail in platforms without readline.
4551
4580
4552 2002-05-10 Fernando Perez <fperez@colorado.edu>
4581 2002-05-10 Fernando Perez <fperez@colorado.edu>
4553
4582
4554 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4583 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4555 it requires Numeric, effectively making Numeric a dependency for
4584 it requires Numeric, effectively making Numeric a dependency for
4556 IPython.
4585 IPython.
4557
4586
4558 * Released 0.2.13
4587 * Released 0.2.13
4559
4588
4560 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4589 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4561 profiler interface. Now all the major options from the profiler
4590 profiler interface. Now all the major options from the profiler
4562 module are directly supported in IPython, both for single
4591 module are directly supported in IPython, both for single
4563 expressions (@prun) and for full programs (@run -p).
4592 expressions (@prun) and for full programs (@run -p).
4564
4593
4565 2002-05-09 Fernando Perez <fperez@colorado.edu>
4594 2002-05-09 Fernando Perez <fperez@colorado.edu>
4566
4595
4567 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4596 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4568 magic properly formatted for screen.
4597 magic properly formatted for screen.
4569
4598
4570 * setup.py (make_shortcut): Changed things to put pdf version in
4599 * setup.py (make_shortcut): Changed things to put pdf version in
4571 doc/ instead of doc/manual (had to change lyxport a bit).
4600 doc/ instead of doc/manual (had to change lyxport a bit).
4572
4601
4573 * IPython/Magic.py (Profile.string_stats): made profile runs go
4602 * IPython/Magic.py (Profile.string_stats): made profile runs go
4574 through pager (they are long and a pager allows searching, saving,
4603 through pager (they are long and a pager allows searching, saving,
4575 etc.)
4604 etc.)
4576
4605
4577 2002-05-08 Fernando Perez <fperez@colorado.edu>
4606 2002-05-08 Fernando Perez <fperez@colorado.edu>
4578
4607
4579 * Released 0.2.12
4608 * Released 0.2.12
4580
4609
4581 2002-05-06 Fernando Perez <fperez@colorado.edu>
4610 2002-05-06 Fernando Perez <fperez@colorado.edu>
4582
4611
4583 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4612 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4584 introduced); 'hist n1 n2' was broken.
4613 introduced); 'hist n1 n2' was broken.
4585 (Magic.magic_pdb): added optional on/off arguments to @pdb
4614 (Magic.magic_pdb): added optional on/off arguments to @pdb
4586 (Magic.magic_run): added option -i to @run, which executes code in
4615 (Magic.magic_run): added option -i to @run, which executes code in
4587 the IPython namespace instead of a clean one. Also added @irun as
4616 the IPython namespace instead of a clean one. Also added @irun as
4588 an alias to @run -i.
4617 an alias to @run -i.
4589
4618
4590 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4619 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4591 fixed (it didn't really do anything, the namespaces were wrong).
4620 fixed (it didn't really do anything, the namespaces were wrong).
4592
4621
4593 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4622 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4594
4623
4595 * IPython/__init__.py (__all__): Fixed package namespace, now
4624 * IPython/__init__.py (__all__): Fixed package namespace, now
4596 'import IPython' does give access to IPython.<all> as
4625 'import IPython' does give access to IPython.<all> as
4597 expected. Also renamed __release__ to Release.
4626 expected. Also renamed __release__ to Release.
4598
4627
4599 * IPython/Debugger.py (__license__): created new Pdb class which
4628 * IPython/Debugger.py (__license__): created new Pdb class which
4600 functions like a drop-in for the normal pdb.Pdb but does NOT
4629 functions like a drop-in for the normal pdb.Pdb but does NOT
4601 import readline by default. This way it doesn't muck up IPython's
4630 import readline by default. This way it doesn't muck up IPython's
4602 readline handling, and now tab-completion finally works in the
4631 readline handling, and now tab-completion finally works in the
4603 debugger -- sort of. It completes things globally visible, but the
4632 debugger -- sort of. It completes things globally visible, but the
4604 completer doesn't track the stack as pdb walks it. That's a bit
4633 completer doesn't track the stack as pdb walks it. That's a bit
4605 tricky, and I'll have to implement it later.
4634 tricky, and I'll have to implement it later.
4606
4635
4607 2002-05-05 Fernando Perez <fperez@colorado.edu>
4636 2002-05-05 Fernando Perez <fperez@colorado.edu>
4608
4637
4609 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4638 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4610 magic docstrings when printed via ? (explicit \'s were being
4639 magic docstrings when printed via ? (explicit \'s were being
4611 printed).
4640 printed).
4612
4641
4613 * IPython/ipmaker.py (make_IPython): fixed namespace
4642 * IPython/ipmaker.py (make_IPython): fixed namespace
4614 identification bug. Now variables loaded via logs or command-line
4643 identification bug. Now variables loaded via logs or command-line
4615 files are recognized in the interactive namespace by @who.
4644 files are recognized in the interactive namespace by @who.
4616
4645
4617 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4646 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4618 log replay system stemming from the string form of Structs.
4647 log replay system stemming from the string form of Structs.
4619
4648
4620 * IPython/Magic.py (Macro.__init__): improved macros to properly
4649 * IPython/Magic.py (Macro.__init__): improved macros to properly
4621 handle magic commands in them.
4650 handle magic commands in them.
4622 (Magic.magic_logstart): usernames are now expanded so 'logstart
4651 (Magic.magic_logstart): usernames are now expanded so 'logstart
4623 ~/mylog' now works.
4652 ~/mylog' now works.
4624
4653
4625 * IPython/iplib.py (complete): fixed bug where paths starting with
4654 * IPython/iplib.py (complete): fixed bug where paths starting with
4626 '/' would be completed as magic names.
4655 '/' would be completed as magic names.
4627
4656
4628 2002-05-04 Fernando Perez <fperez@colorado.edu>
4657 2002-05-04 Fernando Perez <fperez@colorado.edu>
4629
4658
4630 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4659 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4631 allow running full programs under the profiler's control.
4660 allow running full programs under the profiler's control.
4632
4661
4633 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4662 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4634 mode to report exceptions verbosely but without formatting
4663 mode to report exceptions verbosely but without formatting
4635 variables. This addresses the issue of ipython 'freezing' (it's
4664 variables. This addresses the issue of ipython 'freezing' (it's
4636 not frozen, but caught in an expensive formatting loop) when huge
4665 not frozen, but caught in an expensive formatting loop) when huge
4637 variables are in the context of an exception.
4666 variables are in the context of an exception.
4638 (VerboseTB.text): Added '--->' markers at line where exception was
4667 (VerboseTB.text): Added '--->' markers at line where exception was
4639 triggered. Much clearer to read, especially in NoColor modes.
4668 triggered. Much clearer to read, especially in NoColor modes.
4640
4669
4641 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4670 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4642 implemented in reverse when changing to the new parse_options().
4671 implemented in reverse when changing to the new parse_options().
4643
4672
4644 2002-05-03 Fernando Perez <fperez@colorado.edu>
4673 2002-05-03 Fernando Perez <fperez@colorado.edu>
4645
4674
4646 * IPython/Magic.py (Magic.parse_options): new function so that
4675 * IPython/Magic.py (Magic.parse_options): new function so that
4647 magics can parse options easier.
4676 magics can parse options easier.
4648 (Magic.magic_prun): new function similar to profile.run(),
4677 (Magic.magic_prun): new function similar to profile.run(),
4649 suggested by Chris Hart.
4678 suggested by Chris Hart.
4650 (Magic.magic_cd): fixed behavior so that it only changes if
4679 (Magic.magic_cd): fixed behavior so that it only changes if
4651 directory actually is in history.
4680 directory actually is in history.
4652
4681
4653 * IPython/usage.py (__doc__): added information about potential
4682 * IPython/usage.py (__doc__): added information about potential
4654 slowness of Verbose exception mode when there are huge data
4683 slowness of Verbose exception mode when there are huge data
4655 structures to be formatted (thanks to Archie Paulson).
4684 structures to be formatted (thanks to Archie Paulson).
4656
4685
4657 * IPython/ipmaker.py (make_IPython): Changed default logging
4686 * IPython/ipmaker.py (make_IPython): Changed default logging
4658 (when simply called with -log) to use curr_dir/ipython.log in
4687 (when simply called with -log) to use curr_dir/ipython.log in
4659 rotate mode. Fixed crash which was occuring with -log before
4688 rotate mode. Fixed crash which was occuring with -log before
4660 (thanks to Jim Boyle).
4689 (thanks to Jim Boyle).
4661
4690
4662 2002-05-01 Fernando Perez <fperez@colorado.edu>
4691 2002-05-01 Fernando Perez <fperez@colorado.edu>
4663
4692
4664 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4693 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4665 was nasty -- though somewhat of a corner case).
4694 was nasty -- though somewhat of a corner case).
4666
4695
4667 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4696 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4668 text (was a bug).
4697 text (was a bug).
4669
4698
4670 2002-04-30 Fernando Perez <fperez@colorado.edu>
4699 2002-04-30 Fernando Perez <fperez@colorado.edu>
4671
4700
4672 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4701 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4673 a print after ^D or ^C from the user so that the In[] prompt
4702 a print after ^D or ^C from the user so that the In[] prompt
4674 doesn't over-run the gnuplot one.
4703 doesn't over-run the gnuplot one.
4675
4704
4676 2002-04-29 Fernando Perez <fperez@colorado.edu>
4705 2002-04-29 Fernando Perez <fperez@colorado.edu>
4677
4706
4678 * Released 0.2.10
4707 * Released 0.2.10
4679
4708
4680 * IPython/__release__.py (version): get date dynamically.
4709 * IPython/__release__.py (version): get date dynamically.
4681
4710
4682 * Misc. documentation updates thanks to Arnd's comments. Also ran
4711 * Misc. documentation updates thanks to Arnd's comments. Also ran
4683 a full spellcheck on the manual (hadn't been done in a while).
4712 a full spellcheck on the manual (hadn't been done in a while).
4684
4713
4685 2002-04-27 Fernando Perez <fperez@colorado.edu>
4714 2002-04-27 Fernando Perez <fperez@colorado.edu>
4686
4715
4687 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4716 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4688 starting a log in mid-session would reset the input history list.
4717 starting a log in mid-session would reset the input history list.
4689
4718
4690 2002-04-26 Fernando Perez <fperez@colorado.edu>
4719 2002-04-26 Fernando Perez <fperez@colorado.edu>
4691
4720
4692 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4721 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4693 all files were being included in an update. Now anything in
4722 all files were being included in an update. Now anything in
4694 UserConfig that matches [A-Za-z]*.py will go (this excludes
4723 UserConfig that matches [A-Za-z]*.py will go (this excludes
4695 __init__.py)
4724 __init__.py)
4696
4725
4697 2002-04-25 Fernando Perez <fperez@colorado.edu>
4726 2002-04-25 Fernando Perez <fperez@colorado.edu>
4698
4727
4699 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4728 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4700 to __builtins__ so that any form of embedded or imported code can
4729 to __builtins__ so that any form of embedded or imported code can
4701 test for being inside IPython.
4730 test for being inside IPython.
4702
4731
4703 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4732 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4704 changed to GnuplotMagic because it's now an importable module,
4733 changed to GnuplotMagic because it's now an importable module,
4705 this makes the name follow that of the standard Gnuplot module.
4734 this makes the name follow that of the standard Gnuplot module.
4706 GnuplotMagic can now be loaded at any time in mid-session.
4735 GnuplotMagic can now be loaded at any time in mid-session.
4707
4736
4708 2002-04-24 Fernando Perez <fperez@colorado.edu>
4737 2002-04-24 Fernando Perez <fperez@colorado.edu>
4709
4738
4710 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4739 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4711 the globals (IPython has its own namespace) and the
4740 the globals (IPython has its own namespace) and the
4712 PhysicalQuantity stuff is much better anyway.
4741 PhysicalQuantity stuff is much better anyway.
4713
4742
4714 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4743 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4715 embedding example to standard user directory for
4744 embedding example to standard user directory for
4716 distribution. Also put it in the manual.
4745 distribution. Also put it in the manual.
4717
4746
4718 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4747 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4719 instance as first argument (so it doesn't rely on some obscure
4748 instance as first argument (so it doesn't rely on some obscure
4720 hidden global).
4749 hidden global).
4721
4750
4722 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4751 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4723 delimiters. While it prevents ().TAB from working, it allows
4752 delimiters. While it prevents ().TAB from working, it allows
4724 completions in open (... expressions. This is by far a more common
4753 completions in open (... expressions. This is by far a more common
4725 case.
4754 case.
4726
4755
4727 2002-04-23 Fernando Perez <fperez@colorado.edu>
4756 2002-04-23 Fernando Perez <fperez@colorado.edu>
4728
4757
4729 * IPython/Extensions/InterpreterPasteInput.py: new
4758 * IPython/Extensions/InterpreterPasteInput.py: new
4730 syntax-processing module for pasting lines with >>> or ... at the
4759 syntax-processing module for pasting lines with >>> or ... at the
4731 start.
4760 start.
4732
4761
4733 * IPython/Extensions/PhysicalQ_Interactive.py
4762 * IPython/Extensions/PhysicalQ_Interactive.py
4734 (PhysicalQuantityInteractive.__int__): fixed to work with either
4763 (PhysicalQuantityInteractive.__int__): fixed to work with either
4735 Numeric or math.
4764 Numeric or math.
4736
4765
4737 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4766 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4738 provided profiles. Now we have:
4767 provided profiles. Now we have:
4739 -math -> math module as * and cmath with its own namespace.
4768 -math -> math module as * and cmath with its own namespace.
4740 -numeric -> Numeric as *, plus gnuplot & grace
4769 -numeric -> Numeric as *, plus gnuplot & grace
4741 -physics -> same as before
4770 -physics -> same as before
4742
4771
4743 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4772 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4744 user-defined magics wouldn't be found by @magic if they were
4773 user-defined magics wouldn't be found by @magic if they were
4745 defined as class methods. Also cleaned up the namespace search
4774 defined as class methods. Also cleaned up the namespace search
4746 logic and the string building (to use %s instead of many repeated
4775 logic and the string building (to use %s instead of many repeated
4747 string adds).
4776 string adds).
4748
4777
4749 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4778 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4750 of user-defined magics to operate with class methods (cleaner, in
4779 of user-defined magics to operate with class methods (cleaner, in
4751 line with the gnuplot code).
4780 line with the gnuplot code).
4752
4781
4753 2002-04-22 Fernando Perez <fperez@colorado.edu>
4782 2002-04-22 Fernando Perez <fperez@colorado.edu>
4754
4783
4755 * setup.py: updated dependency list so that manual is updated when
4784 * setup.py: updated dependency list so that manual is updated when
4756 all included files change.
4785 all included files change.
4757
4786
4758 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4787 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4759 the delimiter removal option (the fix is ugly right now).
4788 the delimiter removal option (the fix is ugly right now).
4760
4789
4761 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4790 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4762 all of the math profile (quicker loading, no conflict between
4791 all of the math profile (quicker loading, no conflict between
4763 g-9.8 and g-gnuplot).
4792 g-9.8 and g-gnuplot).
4764
4793
4765 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4794 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4766 name of post-mortem files to IPython_crash_report.txt.
4795 name of post-mortem files to IPython_crash_report.txt.
4767
4796
4768 * Cleanup/update of the docs. Added all the new readline info and
4797 * Cleanup/update of the docs. Added all the new readline info and
4769 formatted all lists as 'real lists'.
4798 formatted all lists as 'real lists'.
4770
4799
4771 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4800 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4772 tab-completion options, since the full readline parse_and_bind is
4801 tab-completion options, since the full readline parse_and_bind is
4773 now accessible.
4802 now accessible.
4774
4803
4775 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4804 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4776 handling of readline options. Now users can specify any string to
4805 handling of readline options. Now users can specify any string to
4777 be passed to parse_and_bind(), as well as the delimiters to be
4806 be passed to parse_and_bind(), as well as the delimiters to be
4778 removed.
4807 removed.
4779 (InteractiveShell.__init__): Added __name__ to the global
4808 (InteractiveShell.__init__): Added __name__ to the global
4780 namespace so that things like Itpl which rely on its existence
4809 namespace so that things like Itpl which rely on its existence
4781 don't crash.
4810 don't crash.
4782 (InteractiveShell._prefilter): Defined the default with a _ so
4811 (InteractiveShell._prefilter): Defined the default with a _ so
4783 that prefilter() is easier to override, while the default one
4812 that prefilter() is easier to override, while the default one
4784 remains available.
4813 remains available.
4785
4814
4786 2002-04-18 Fernando Perez <fperez@colorado.edu>
4815 2002-04-18 Fernando Perez <fperez@colorado.edu>
4787
4816
4788 * Added information about pdb in the docs.
4817 * Added information about pdb in the docs.
4789
4818
4790 2002-04-17 Fernando Perez <fperez@colorado.edu>
4819 2002-04-17 Fernando Perez <fperez@colorado.edu>
4791
4820
4792 * IPython/ipmaker.py (make_IPython): added rc_override option to
4821 * IPython/ipmaker.py (make_IPython): added rc_override option to
4793 allow passing config options at creation time which may override
4822 allow passing config options at creation time which may override
4794 anything set in the config files or command line. This is
4823 anything set in the config files or command line. This is
4795 particularly useful for configuring embedded instances.
4824 particularly useful for configuring embedded instances.
4796
4825
4797 2002-04-15 Fernando Perez <fperez@colorado.edu>
4826 2002-04-15 Fernando Perez <fperez@colorado.edu>
4798
4827
4799 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4828 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4800 crash embedded instances because of the input cache falling out of
4829 crash embedded instances because of the input cache falling out of
4801 sync with the output counter.
4830 sync with the output counter.
4802
4831
4803 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4832 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4804 mode which calls pdb after an uncaught exception in IPython itself.
4833 mode which calls pdb after an uncaught exception in IPython itself.
4805
4834
4806 2002-04-14 Fernando Perez <fperez@colorado.edu>
4835 2002-04-14 Fernando Perez <fperez@colorado.edu>
4807
4836
4808 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4837 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4809 readline, fix it back after each call.
4838 readline, fix it back after each call.
4810
4839
4811 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4840 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4812 method to force all access via __call__(), which guarantees that
4841 method to force all access via __call__(), which guarantees that
4813 traceback references are properly deleted.
4842 traceback references are properly deleted.
4814
4843
4815 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4844 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4816 improve printing when pprint is in use.
4845 improve printing when pprint is in use.
4817
4846
4818 2002-04-13 Fernando Perez <fperez@colorado.edu>
4847 2002-04-13 Fernando Perez <fperez@colorado.edu>
4819
4848
4820 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4849 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4821 exceptions aren't caught anymore. If the user triggers one, he
4850 exceptions aren't caught anymore. If the user triggers one, he
4822 should know why he's doing it and it should go all the way up,
4851 should know why he's doing it and it should go all the way up,
4823 just like any other exception. So now @abort will fully kill the
4852 just like any other exception. So now @abort will fully kill the
4824 embedded interpreter and the embedding code (unless that happens
4853 embedded interpreter and the embedding code (unless that happens
4825 to catch SystemExit).
4854 to catch SystemExit).
4826
4855
4827 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4856 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4828 and a debugger() method to invoke the interactive pdb debugger
4857 and a debugger() method to invoke the interactive pdb debugger
4829 after printing exception information. Also added the corresponding
4858 after printing exception information. Also added the corresponding
4830 -pdb option and @pdb magic to control this feature, and updated
4859 -pdb option and @pdb magic to control this feature, and updated
4831 the docs. After a suggestion from Christopher Hart
4860 the docs. After a suggestion from Christopher Hart
4832 (hart-AT-caltech.edu).
4861 (hart-AT-caltech.edu).
4833
4862
4834 2002-04-12 Fernando Perez <fperez@colorado.edu>
4863 2002-04-12 Fernando Perez <fperez@colorado.edu>
4835
4864
4836 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4865 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4837 the exception handlers defined by the user (not the CrashHandler)
4866 the exception handlers defined by the user (not the CrashHandler)
4838 so that user exceptions don't trigger an ipython bug report.
4867 so that user exceptions don't trigger an ipython bug report.
4839
4868
4840 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4869 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4841 configurable (it should have always been so).
4870 configurable (it should have always been so).
4842
4871
4843 2002-03-26 Fernando Perez <fperez@colorado.edu>
4872 2002-03-26 Fernando Perez <fperez@colorado.edu>
4844
4873
4845 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4874 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4846 and there to fix embedding namespace issues. This should all be
4875 and there to fix embedding namespace issues. This should all be
4847 done in a more elegant way.
4876 done in a more elegant way.
4848
4877
4849 2002-03-25 Fernando Perez <fperez@colorado.edu>
4878 2002-03-25 Fernando Perez <fperez@colorado.edu>
4850
4879
4851 * IPython/genutils.py (get_home_dir): Try to make it work under
4880 * IPython/genutils.py (get_home_dir): Try to make it work under
4852 win9x also.
4881 win9x also.
4853
4882
4854 2002-03-20 Fernando Perez <fperez@colorado.edu>
4883 2002-03-20 Fernando Perez <fperez@colorado.edu>
4855
4884
4856 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4885 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4857 sys.displayhook untouched upon __init__.
4886 sys.displayhook untouched upon __init__.
4858
4887
4859 2002-03-19 Fernando Perez <fperez@colorado.edu>
4888 2002-03-19 Fernando Perez <fperez@colorado.edu>
4860
4889
4861 * Released 0.2.9 (for embedding bug, basically).
4890 * Released 0.2.9 (for embedding bug, basically).
4862
4891
4863 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4892 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4864 exceptions so that enclosing shell's state can be restored.
4893 exceptions so that enclosing shell's state can be restored.
4865
4894
4866 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4895 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4867 naming conventions in the .ipython/ dir.
4896 naming conventions in the .ipython/ dir.
4868
4897
4869 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4898 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4870 from delimiters list so filenames with - in them get expanded.
4899 from delimiters list so filenames with - in them get expanded.
4871
4900
4872 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4901 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4873 sys.displayhook not being properly restored after an embedded call.
4902 sys.displayhook not being properly restored after an embedded call.
4874
4903
4875 2002-03-18 Fernando Perez <fperez@colorado.edu>
4904 2002-03-18 Fernando Perez <fperez@colorado.edu>
4876
4905
4877 * Released 0.2.8
4906 * Released 0.2.8
4878
4907
4879 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4908 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4880 some files weren't being included in a -upgrade.
4909 some files weren't being included in a -upgrade.
4881 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4910 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4882 on' so that the first tab completes.
4911 on' so that the first tab completes.
4883 (InteractiveShell.handle_magic): fixed bug with spaces around
4912 (InteractiveShell.handle_magic): fixed bug with spaces around
4884 quotes breaking many magic commands.
4913 quotes breaking many magic commands.
4885
4914
4886 * setup.py: added note about ignoring the syntax error messages at
4915 * setup.py: added note about ignoring the syntax error messages at
4887 installation.
4916 installation.
4888
4917
4889 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4918 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4890 streamlining the gnuplot interface, now there's only one magic @gp.
4919 streamlining the gnuplot interface, now there's only one magic @gp.
4891
4920
4892 2002-03-17 Fernando Perez <fperez@colorado.edu>
4921 2002-03-17 Fernando Perez <fperez@colorado.edu>
4893
4922
4894 * IPython/UserConfig/magic_gnuplot.py: new name for the
4923 * IPython/UserConfig/magic_gnuplot.py: new name for the
4895 example-magic_pm.py file. Much enhanced system, now with a shell
4924 example-magic_pm.py file. Much enhanced system, now with a shell
4896 for communicating directly with gnuplot, one command at a time.
4925 for communicating directly with gnuplot, one command at a time.
4897
4926
4898 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4927 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4899 setting __name__=='__main__'.
4928 setting __name__=='__main__'.
4900
4929
4901 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4930 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4902 mini-shell for accessing gnuplot from inside ipython. Should
4931 mini-shell for accessing gnuplot from inside ipython. Should
4903 extend it later for grace access too. Inspired by Arnd's
4932 extend it later for grace access too. Inspired by Arnd's
4904 suggestion.
4933 suggestion.
4905
4934
4906 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4935 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4907 calling magic functions with () in their arguments. Thanks to Arnd
4936 calling magic functions with () in their arguments. Thanks to Arnd
4908 Baecker for pointing this to me.
4937 Baecker for pointing this to me.
4909
4938
4910 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4939 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4911 infinitely for integer or complex arrays (only worked with floats).
4940 infinitely for integer or complex arrays (only worked with floats).
4912
4941
4913 2002-03-16 Fernando Perez <fperez@colorado.edu>
4942 2002-03-16 Fernando Perez <fperez@colorado.edu>
4914
4943
4915 * setup.py: Merged setup and setup_windows into a single script
4944 * setup.py: Merged setup and setup_windows into a single script
4916 which properly handles things for windows users.
4945 which properly handles things for windows users.
4917
4946
4918 2002-03-15 Fernando Perez <fperez@colorado.edu>
4947 2002-03-15 Fernando Perez <fperez@colorado.edu>
4919
4948
4920 * Big change to the manual: now the magics are all automatically
4949 * Big change to the manual: now the magics are all automatically
4921 documented. This information is generated from their docstrings
4950 documented. This information is generated from their docstrings
4922 and put in a latex file included by the manual lyx file. This way
4951 and put in a latex file included by the manual lyx file. This way
4923 we get always up to date information for the magics. The manual
4952 we get always up to date information for the magics. The manual
4924 now also has proper version information, also auto-synced.
4953 now also has proper version information, also auto-synced.
4925
4954
4926 For this to work, an undocumented --magic_docstrings option was added.
4955 For this to work, an undocumented --magic_docstrings option was added.
4927
4956
4928 2002-03-13 Fernando Perez <fperez@colorado.edu>
4957 2002-03-13 Fernando Perez <fperez@colorado.edu>
4929
4958
4930 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4959 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4931 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4960 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4932
4961
4933 2002-03-12 Fernando Perez <fperez@colorado.edu>
4962 2002-03-12 Fernando Perez <fperez@colorado.edu>
4934
4963
4935 * IPython/ultraTB.py (TermColors): changed color escapes again to
4964 * IPython/ultraTB.py (TermColors): changed color escapes again to
4936 fix the (old, reintroduced) line-wrapping bug. Basically, if
4965 fix the (old, reintroduced) line-wrapping bug. Basically, if
4937 \001..\002 aren't given in the color escapes, lines get wrapped
4966 \001..\002 aren't given in the color escapes, lines get wrapped
4938 weirdly. But giving those screws up old xterms and emacs terms. So
4967 weirdly. But giving those screws up old xterms and emacs terms. So
4939 I added some logic for emacs terms to be ok, but I can't identify old
4968 I added some logic for emacs terms to be ok, but I can't identify old
4940 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4969 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4941
4970
4942 2002-03-10 Fernando Perez <fperez@colorado.edu>
4971 2002-03-10 Fernando Perez <fperez@colorado.edu>
4943
4972
4944 * IPython/usage.py (__doc__): Various documentation cleanups and
4973 * IPython/usage.py (__doc__): Various documentation cleanups and
4945 updates, both in usage docstrings and in the manual.
4974 updates, both in usage docstrings and in the manual.
4946
4975
4947 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4976 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4948 handling of caching. Set minimum acceptabe value for having a
4977 handling of caching. Set minimum acceptabe value for having a
4949 cache at 20 values.
4978 cache at 20 values.
4950
4979
4951 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4980 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4952 install_first_time function to a method, renamed it and added an
4981 install_first_time function to a method, renamed it and added an
4953 'upgrade' mode. Now people can update their config directory with
4982 'upgrade' mode. Now people can update their config directory with
4954 a simple command line switch (-upgrade, also new).
4983 a simple command line switch (-upgrade, also new).
4955
4984
4956 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4985 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4957 @file (convenient for automagic users under Python >= 2.2).
4986 @file (convenient for automagic users under Python >= 2.2).
4958 Removed @files (it seemed more like a plural than an abbrev. of
4987 Removed @files (it seemed more like a plural than an abbrev. of
4959 'file show').
4988 'file show').
4960
4989
4961 * IPython/iplib.py (install_first_time): Fixed crash if there were
4990 * IPython/iplib.py (install_first_time): Fixed crash if there were
4962 backup files ('~') in .ipython/ install directory.
4991 backup files ('~') in .ipython/ install directory.
4963
4992
4964 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4993 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4965 system. Things look fine, but these changes are fairly
4994 system. Things look fine, but these changes are fairly
4966 intrusive. Test them for a few days.
4995 intrusive. Test them for a few days.
4967
4996
4968 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4997 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4969 the prompts system. Now all in/out prompt strings are user
4998 the prompts system. Now all in/out prompt strings are user
4970 controllable. This is particularly useful for embedding, as one
4999 controllable. This is particularly useful for embedding, as one
4971 can tag embedded instances with particular prompts.
5000 can tag embedded instances with particular prompts.
4972
5001
4973 Also removed global use of sys.ps1/2, which now allows nested
5002 Also removed global use of sys.ps1/2, which now allows nested
4974 embeddings without any problems. Added command-line options for
5003 embeddings without any problems. Added command-line options for
4975 the prompt strings.
5004 the prompt strings.
4976
5005
4977 2002-03-08 Fernando Perez <fperez@colorado.edu>
5006 2002-03-08 Fernando Perez <fperez@colorado.edu>
4978
5007
4979 * IPython/UserConfig/example-embed-short.py (ipshell): added
5008 * IPython/UserConfig/example-embed-short.py (ipshell): added
4980 example file with the bare minimum code for embedding.
5009 example file with the bare minimum code for embedding.
4981
5010
4982 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5011 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4983 functionality for the embeddable shell to be activated/deactivated
5012 functionality for the embeddable shell to be activated/deactivated
4984 either globally or at each call.
5013 either globally or at each call.
4985
5014
4986 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5015 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4987 rewriting the prompt with '--->' for auto-inputs with proper
5016 rewriting the prompt with '--->' for auto-inputs with proper
4988 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5017 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4989 this is handled by the prompts class itself, as it should.
5018 this is handled by the prompts class itself, as it should.
4990
5019
4991 2002-03-05 Fernando Perez <fperez@colorado.edu>
5020 2002-03-05 Fernando Perez <fperez@colorado.edu>
4992
5021
4993 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5022 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4994 @logstart to avoid name clashes with the math log function.
5023 @logstart to avoid name clashes with the math log function.
4995
5024
4996 * Big updates to X/Emacs section of the manual.
5025 * Big updates to X/Emacs section of the manual.
4997
5026
4998 * Removed ipython_emacs. Milan explained to me how to pass
5027 * Removed ipython_emacs. Milan explained to me how to pass
4999 arguments to ipython through Emacs. Some day I'm going to end up
5028 arguments to ipython through Emacs. Some day I'm going to end up
5000 learning some lisp...
5029 learning some lisp...
5001
5030
5002 2002-03-04 Fernando Perez <fperez@colorado.edu>
5031 2002-03-04 Fernando Perez <fperez@colorado.edu>
5003
5032
5004 * IPython/ipython_emacs: Created script to be used as the
5033 * IPython/ipython_emacs: Created script to be used as the
5005 py-python-command Emacs variable so we can pass IPython
5034 py-python-command Emacs variable so we can pass IPython
5006 parameters. I can't figure out how to tell Emacs directly to pass
5035 parameters. I can't figure out how to tell Emacs directly to pass
5007 parameters to IPython, so a dummy shell script will do it.
5036 parameters to IPython, so a dummy shell script will do it.
5008
5037
5009 Other enhancements made for things to work better under Emacs'
5038 Other enhancements made for things to work better under Emacs'
5010 various types of terminals. Many thanks to Milan Zamazal
5039 various types of terminals. Many thanks to Milan Zamazal
5011 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5040 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5012
5041
5013 2002-03-01 Fernando Perez <fperez@colorado.edu>
5042 2002-03-01 Fernando Perez <fperez@colorado.edu>
5014
5043
5015 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5044 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5016 that loading of readline is now optional. This gives better
5045 that loading of readline is now optional. This gives better
5017 control to emacs users.
5046 control to emacs users.
5018
5047
5019 * IPython/ultraTB.py (__date__): Modified color escape sequences
5048 * IPython/ultraTB.py (__date__): Modified color escape sequences
5020 and now things work fine under xterm and in Emacs' term buffers
5049 and now things work fine under xterm and in Emacs' term buffers
5021 (though not shell ones). Well, in emacs you get colors, but all
5050 (though not shell ones). Well, in emacs you get colors, but all
5022 seem to be 'light' colors (no difference between dark and light
5051 seem to be 'light' colors (no difference between dark and light
5023 ones). But the garbage chars are gone, and also in xterms. It
5052 ones). But the garbage chars are gone, and also in xterms. It
5024 seems that now I'm using 'cleaner' ansi sequences.
5053 seems that now I'm using 'cleaner' ansi sequences.
5025
5054
5026 2002-02-21 Fernando Perez <fperez@colorado.edu>
5055 2002-02-21 Fernando Perez <fperez@colorado.edu>
5027
5056
5028 * Released 0.2.7 (mainly to publish the scoping fix).
5057 * Released 0.2.7 (mainly to publish the scoping fix).
5029
5058
5030 * IPython/Logger.py (Logger.logstate): added. A corresponding
5059 * IPython/Logger.py (Logger.logstate): added. A corresponding
5031 @logstate magic was created.
5060 @logstate magic was created.
5032
5061
5033 * IPython/Magic.py: fixed nested scoping problem under Python
5062 * IPython/Magic.py: fixed nested scoping problem under Python
5034 2.1.x (automagic wasn't working).
5063 2.1.x (automagic wasn't working).
5035
5064
5036 2002-02-20 Fernando Perez <fperez@colorado.edu>
5065 2002-02-20 Fernando Perez <fperez@colorado.edu>
5037
5066
5038 * Released 0.2.6.
5067 * Released 0.2.6.
5039
5068
5040 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5069 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5041 option so that logs can come out without any headers at all.
5070 option so that logs can come out without any headers at all.
5042
5071
5043 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5072 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5044 SciPy.
5073 SciPy.
5045
5074
5046 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5075 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5047 that embedded IPython calls don't require vars() to be explicitly
5076 that embedded IPython calls don't require vars() to be explicitly
5048 passed. Now they are extracted from the caller's frame (code
5077 passed. Now they are extracted from the caller's frame (code
5049 snatched from Eric Jones' weave). Added better documentation to
5078 snatched from Eric Jones' weave). Added better documentation to
5050 the section on embedding and the example file.
5079 the section on embedding and the example file.
5051
5080
5052 * IPython/genutils.py (page): Changed so that under emacs, it just
5081 * IPython/genutils.py (page): Changed so that under emacs, it just
5053 prints the string. You can then page up and down in the emacs
5082 prints the string. You can then page up and down in the emacs
5054 buffer itself. This is how the builtin help() works.
5083 buffer itself. This is how the builtin help() works.
5055
5084
5056 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5085 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5057 macro scoping: macros need to be executed in the user's namespace
5086 macro scoping: macros need to be executed in the user's namespace
5058 to work as if they had been typed by the user.
5087 to work as if they had been typed by the user.
5059
5088
5060 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5089 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5061 execute automatically (no need to type 'exec...'). They then
5090 execute automatically (no need to type 'exec...'). They then
5062 behave like 'true macros'. The printing system was also modified
5091 behave like 'true macros'. The printing system was also modified
5063 for this to work.
5092 for this to work.
5064
5093
5065 2002-02-19 Fernando Perez <fperez@colorado.edu>
5094 2002-02-19 Fernando Perez <fperez@colorado.edu>
5066
5095
5067 * IPython/genutils.py (page_file): new function for paging files
5096 * IPython/genutils.py (page_file): new function for paging files
5068 in an OS-independent way. Also necessary for file viewing to work
5097 in an OS-independent way. Also necessary for file viewing to work
5069 well inside Emacs buffers.
5098 well inside Emacs buffers.
5070 (page): Added checks for being in an emacs buffer.
5099 (page): Added checks for being in an emacs buffer.
5071 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5100 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5072 same bug in iplib.
5101 same bug in iplib.
5073
5102
5074 2002-02-18 Fernando Perez <fperez@colorado.edu>
5103 2002-02-18 Fernando Perez <fperez@colorado.edu>
5075
5104
5076 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5105 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5077 of readline so that IPython can work inside an Emacs buffer.
5106 of readline so that IPython can work inside an Emacs buffer.
5078
5107
5079 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5108 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5080 method signatures (they weren't really bugs, but it looks cleaner
5109 method signatures (they weren't really bugs, but it looks cleaner
5081 and keeps PyChecker happy).
5110 and keeps PyChecker happy).
5082
5111
5083 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5112 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5084 for implementing various user-defined hooks. Currently only
5113 for implementing various user-defined hooks. Currently only
5085 display is done.
5114 display is done.
5086
5115
5087 * IPython/Prompts.py (CachedOutput._display): changed display
5116 * IPython/Prompts.py (CachedOutput._display): changed display
5088 functions so that they can be dynamically changed by users easily.
5117 functions so that they can be dynamically changed by users easily.
5089
5118
5090 * IPython/Extensions/numeric_formats.py (num_display): added an
5119 * IPython/Extensions/numeric_formats.py (num_display): added an
5091 extension for printing NumPy arrays in flexible manners. It
5120 extension for printing NumPy arrays in flexible manners. It
5092 doesn't do anything yet, but all the structure is in
5121 doesn't do anything yet, but all the structure is in
5093 place. Ultimately the plan is to implement output format control
5122 place. Ultimately the plan is to implement output format control
5094 like in Octave.
5123 like in Octave.
5095
5124
5096 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5125 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5097 methods are found at run-time by all the automatic machinery.
5126 methods are found at run-time by all the automatic machinery.
5098
5127
5099 2002-02-17 Fernando Perez <fperez@colorado.edu>
5128 2002-02-17 Fernando Perez <fperez@colorado.edu>
5100
5129
5101 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5130 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5102 whole file a little.
5131 whole file a little.
5103
5132
5104 * ToDo: closed this document. Now there's a new_design.lyx
5133 * ToDo: closed this document. Now there's a new_design.lyx
5105 document for all new ideas. Added making a pdf of it for the
5134 document for all new ideas. Added making a pdf of it for the
5106 end-user distro.
5135 end-user distro.
5107
5136
5108 * IPython/Logger.py (Logger.switch_log): Created this to replace
5137 * IPython/Logger.py (Logger.switch_log): Created this to replace
5109 logon() and logoff(). It also fixes a nasty crash reported by
5138 logon() and logoff(). It also fixes a nasty crash reported by
5110 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5139 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5111
5140
5112 * IPython/iplib.py (complete): got auto-completion to work with
5141 * IPython/iplib.py (complete): got auto-completion to work with
5113 automagic (I had wanted this for a long time).
5142 automagic (I had wanted this for a long time).
5114
5143
5115 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5144 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5116 to @file, since file() is now a builtin and clashes with automagic
5145 to @file, since file() is now a builtin and clashes with automagic
5117 for @file.
5146 for @file.
5118
5147
5119 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5148 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5120 of this was previously in iplib, which had grown to more than 2000
5149 of this was previously in iplib, which had grown to more than 2000
5121 lines, way too long. No new functionality, but it makes managing
5150 lines, way too long. No new functionality, but it makes managing
5122 the code a bit easier.
5151 the code a bit easier.
5123
5152
5124 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5153 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5125 information to crash reports.
5154 information to crash reports.
5126
5155
5127 2002-02-12 Fernando Perez <fperez@colorado.edu>
5156 2002-02-12 Fernando Perez <fperez@colorado.edu>
5128
5157
5129 * Released 0.2.5.
5158 * Released 0.2.5.
5130
5159
5131 2002-02-11 Fernando Perez <fperez@colorado.edu>
5160 2002-02-11 Fernando Perez <fperez@colorado.edu>
5132
5161
5133 * Wrote a relatively complete Windows installer. It puts
5162 * Wrote a relatively complete Windows installer. It puts
5134 everything in place, creates Start Menu entries and fixes the
5163 everything in place, creates Start Menu entries and fixes the
5135 color issues. Nothing fancy, but it works.
5164 color issues. Nothing fancy, but it works.
5136
5165
5137 2002-02-10 Fernando Perez <fperez@colorado.edu>
5166 2002-02-10 Fernando Perez <fperez@colorado.edu>
5138
5167
5139 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5168 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5140 os.path.expanduser() call so that we can type @run ~/myfile.py and
5169 os.path.expanduser() call so that we can type @run ~/myfile.py and
5141 have thigs work as expected.
5170 have thigs work as expected.
5142
5171
5143 * IPython/genutils.py (page): fixed exception handling so things
5172 * IPython/genutils.py (page): fixed exception handling so things
5144 work both in Unix and Windows correctly. Quitting a pager triggers
5173 work both in Unix and Windows correctly. Quitting a pager triggers
5145 an IOError/broken pipe in Unix, and in windows not finding a pager
5174 an IOError/broken pipe in Unix, and in windows not finding a pager
5146 is also an IOError, so I had to actually look at the return value
5175 is also an IOError, so I had to actually look at the return value
5147 of the exception, not just the exception itself. Should be ok now.
5176 of the exception, not just the exception itself. Should be ok now.
5148
5177
5149 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5178 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5150 modified to allow case-insensitive color scheme changes.
5179 modified to allow case-insensitive color scheme changes.
5151
5180
5152 2002-02-09 Fernando Perez <fperez@colorado.edu>
5181 2002-02-09 Fernando Perez <fperez@colorado.edu>
5153
5182
5154 * IPython/genutils.py (native_line_ends): new function to leave
5183 * IPython/genutils.py (native_line_ends): new function to leave
5155 user config files with os-native line-endings.
5184 user config files with os-native line-endings.
5156
5185
5157 * README and manual updates.
5186 * README and manual updates.
5158
5187
5159 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5188 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5160 instead of StringType to catch Unicode strings.
5189 instead of StringType to catch Unicode strings.
5161
5190
5162 * IPython/genutils.py (filefind): fixed bug for paths with
5191 * IPython/genutils.py (filefind): fixed bug for paths with
5163 embedded spaces (very common in Windows).
5192 embedded spaces (very common in Windows).
5164
5193
5165 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5194 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5166 files under Windows, so that they get automatically associated
5195 files under Windows, so that they get automatically associated
5167 with a text editor. Windows makes it a pain to handle
5196 with a text editor. Windows makes it a pain to handle
5168 extension-less files.
5197 extension-less files.
5169
5198
5170 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5199 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5171 warning about readline only occur for Posix. In Windows there's no
5200 warning about readline only occur for Posix. In Windows there's no
5172 way to get readline, so why bother with the warning.
5201 way to get readline, so why bother with the warning.
5173
5202
5174 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5203 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5175 for __str__ instead of dir(self), since dir() changed in 2.2.
5204 for __str__ instead of dir(self), since dir() changed in 2.2.
5176
5205
5177 * Ported to Windows! Tested on XP, I suspect it should work fine
5206 * Ported to Windows! Tested on XP, I suspect it should work fine
5178 on NT/2000, but I don't think it will work on 98 et al. That
5207 on NT/2000, but I don't think it will work on 98 et al. That
5179 series of Windows is such a piece of junk anyway that I won't try
5208 series of Windows is such a piece of junk anyway that I won't try
5180 porting it there. The XP port was straightforward, showed a few
5209 porting it there. The XP port was straightforward, showed a few
5181 bugs here and there (fixed all), in particular some string
5210 bugs here and there (fixed all), in particular some string
5182 handling stuff which required considering Unicode strings (which
5211 handling stuff which required considering Unicode strings (which
5183 Windows uses). This is good, but hasn't been too tested :) No
5212 Windows uses). This is good, but hasn't been too tested :) No
5184 fancy installer yet, I'll put a note in the manual so people at
5213 fancy installer yet, I'll put a note in the manual so people at
5185 least make manually a shortcut.
5214 least make manually a shortcut.
5186
5215
5187 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5216 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5188 into a single one, "colors". This now controls both prompt and
5217 into a single one, "colors". This now controls both prompt and
5189 exception color schemes, and can be changed both at startup
5218 exception color schemes, and can be changed both at startup
5190 (either via command-line switches or via ipythonrc files) and at
5219 (either via command-line switches or via ipythonrc files) and at
5191 runtime, with @colors.
5220 runtime, with @colors.
5192 (Magic.magic_run): renamed @prun to @run and removed the old
5221 (Magic.magic_run): renamed @prun to @run and removed the old
5193 @run. The two were too similar to warrant keeping both.
5222 @run. The two were too similar to warrant keeping both.
5194
5223
5195 2002-02-03 Fernando Perez <fperez@colorado.edu>
5224 2002-02-03 Fernando Perez <fperez@colorado.edu>
5196
5225
5197 * IPython/iplib.py (install_first_time): Added comment on how to
5226 * IPython/iplib.py (install_first_time): Added comment on how to
5198 configure the color options for first-time users. Put a <return>
5227 configure the color options for first-time users. Put a <return>
5199 request at the end so that small-terminal users get a chance to
5228 request at the end so that small-terminal users get a chance to
5200 read the startup info.
5229 read the startup info.
5201
5230
5202 2002-01-23 Fernando Perez <fperez@colorado.edu>
5231 2002-01-23 Fernando Perez <fperez@colorado.edu>
5203
5232
5204 * IPython/iplib.py (CachedOutput.update): Changed output memory
5233 * IPython/iplib.py (CachedOutput.update): Changed output memory
5205 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5234 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5206 input history we still use _i. Did this b/c these variable are
5235 input history we still use _i. Did this b/c these variable are
5207 very commonly used in interactive work, so the less we need to
5236 very commonly used in interactive work, so the less we need to
5208 type the better off we are.
5237 type the better off we are.
5209 (Magic.magic_prun): updated @prun to better handle the namespaces
5238 (Magic.magic_prun): updated @prun to better handle the namespaces
5210 the file will run in, including a fix for __name__ not being set
5239 the file will run in, including a fix for __name__ not being set
5211 before.
5240 before.
5212
5241
5213 2002-01-20 Fernando Perez <fperez@colorado.edu>
5242 2002-01-20 Fernando Perez <fperez@colorado.edu>
5214
5243
5215 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5244 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5216 extra garbage for Python 2.2. Need to look more carefully into
5245 extra garbage for Python 2.2. Need to look more carefully into
5217 this later.
5246 this later.
5218
5247
5219 2002-01-19 Fernando Perez <fperez@colorado.edu>
5248 2002-01-19 Fernando Perez <fperez@colorado.edu>
5220
5249
5221 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5250 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5222 display SyntaxError exceptions properly formatted when they occur
5251 display SyntaxError exceptions properly formatted when they occur
5223 (they can be triggered by imported code).
5252 (they can be triggered by imported code).
5224
5253
5225 2002-01-18 Fernando Perez <fperez@colorado.edu>
5254 2002-01-18 Fernando Perez <fperez@colorado.edu>
5226
5255
5227 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5256 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5228 SyntaxError exceptions are reported nicely formatted, instead of
5257 SyntaxError exceptions are reported nicely formatted, instead of
5229 spitting out only offset information as before.
5258 spitting out only offset information as before.
5230 (Magic.magic_prun): Added the @prun function for executing
5259 (Magic.magic_prun): Added the @prun function for executing
5231 programs with command line args inside IPython.
5260 programs with command line args inside IPython.
5232
5261
5233 2002-01-16 Fernando Perez <fperez@colorado.edu>
5262 2002-01-16 Fernando Perez <fperez@colorado.edu>
5234
5263
5235 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5264 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5236 to *not* include the last item given in a range. This brings their
5265 to *not* include the last item given in a range. This brings their
5237 behavior in line with Python's slicing:
5266 behavior in line with Python's slicing:
5238 a[n1:n2] -> a[n1]...a[n2-1]
5267 a[n1:n2] -> a[n1]...a[n2-1]
5239 It may be a bit less convenient, but I prefer to stick to Python's
5268 It may be a bit less convenient, but I prefer to stick to Python's
5240 conventions *everywhere*, so users never have to wonder.
5269 conventions *everywhere*, so users never have to wonder.
5241 (Magic.magic_macro): Added @macro function to ease the creation of
5270 (Magic.magic_macro): Added @macro function to ease the creation of
5242 macros.
5271 macros.
5243
5272
5244 2002-01-05 Fernando Perez <fperez@colorado.edu>
5273 2002-01-05 Fernando Perez <fperez@colorado.edu>
5245
5274
5246 * Released 0.2.4.
5275 * Released 0.2.4.
5247
5276
5248 * IPython/iplib.py (Magic.magic_pdef):
5277 * IPython/iplib.py (Magic.magic_pdef):
5249 (InteractiveShell.safe_execfile): report magic lines and error
5278 (InteractiveShell.safe_execfile): report magic lines and error
5250 lines without line numbers so one can easily copy/paste them for
5279 lines without line numbers so one can easily copy/paste them for
5251 re-execution.
5280 re-execution.
5252
5281
5253 * Updated manual with recent changes.
5282 * Updated manual with recent changes.
5254
5283
5255 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5284 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5256 docstring printing when class? is called. Very handy for knowing
5285 docstring printing when class? is called. Very handy for knowing
5257 how to create class instances (as long as __init__ is well
5286 how to create class instances (as long as __init__ is well
5258 documented, of course :)
5287 documented, of course :)
5259 (Magic.magic_doc): print both class and constructor docstrings.
5288 (Magic.magic_doc): print both class and constructor docstrings.
5260 (Magic.magic_pdef): give constructor info if passed a class and
5289 (Magic.magic_pdef): give constructor info if passed a class and
5261 __call__ info for callable object instances.
5290 __call__ info for callable object instances.
5262
5291
5263 2002-01-04 Fernando Perez <fperez@colorado.edu>
5292 2002-01-04 Fernando Perez <fperez@colorado.edu>
5264
5293
5265 * Made deep_reload() off by default. It doesn't always work
5294 * Made deep_reload() off by default. It doesn't always work
5266 exactly as intended, so it's probably safer to have it off. It's
5295 exactly as intended, so it's probably safer to have it off. It's
5267 still available as dreload() anyway, so nothing is lost.
5296 still available as dreload() anyway, so nothing is lost.
5268
5297
5269 2002-01-02 Fernando Perez <fperez@colorado.edu>
5298 2002-01-02 Fernando Perez <fperez@colorado.edu>
5270
5299
5271 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5300 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5272 so I wanted an updated release).
5301 so I wanted an updated release).
5273
5302
5274 2001-12-27 Fernando Perez <fperez@colorado.edu>
5303 2001-12-27 Fernando Perez <fperez@colorado.edu>
5275
5304
5276 * IPython/iplib.py (InteractiveShell.interact): Added the original
5305 * IPython/iplib.py (InteractiveShell.interact): Added the original
5277 code from 'code.py' for this module in order to change the
5306 code from 'code.py' for this module in order to change the
5278 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5307 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5279 the history cache would break when the user hit Ctrl-C, and
5308 the history cache would break when the user hit Ctrl-C, and
5280 interact() offers no way to add any hooks to it.
5309 interact() offers no way to add any hooks to it.
5281
5310
5282 2001-12-23 Fernando Perez <fperez@colorado.edu>
5311 2001-12-23 Fernando Perez <fperez@colorado.edu>
5283
5312
5284 * setup.py: added check for 'MANIFEST' before trying to remove
5313 * setup.py: added check for 'MANIFEST' before trying to remove
5285 it. Thanks to Sean Reifschneider.
5314 it. Thanks to Sean Reifschneider.
5286
5315
5287 2001-12-22 Fernando Perez <fperez@colorado.edu>
5316 2001-12-22 Fernando Perez <fperez@colorado.edu>
5288
5317
5289 * Released 0.2.2.
5318 * Released 0.2.2.
5290
5319
5291 * Finished (reasonably) writing the manual. Later will add the
5320 * Finished (reasonably) writing the manual. Later will add the
5292 python-standard navigation stylesheets, but for the time being
5321 python-standard navigation stylesheets, but for the time being
5293 it's fairly complete. Distribution will include html and pdf
5322 it's fairly complete. Distribution will include html and pdf
5294 versions.
5323 versions.
5295
5324
5296 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5325 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5297 (MayaVi author).
5326 (MayaVi author).
5298
5327
5299 2001-12-21 Fernando Perez <fperez@colorado.edu>
5328 2001-12-21 Fernando Perez <fperez@colorado.edu>
5300
5329
5301 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5330 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5302 good public release, I think (with the manual and the distutils
5331 good public release, I think (with the manual and the distutils
5303 installer). The manual can use some work, but that can go
5332 installer). The manual can use some work, but that can go
5304 slowly. Otherwise I think it's quite nice for end users. Next
5333 slowly. Otherwise I think it's quite nice for end users. Next
5305 summer, rewrite the guts of it...
5334 summer, rewrite the guts of it...
5306
5335
5307 * Changed format of ipythonrc files to use whitespace as the
5336 * Changed format of ipythonrc files to use whitespace as the
5308 separator instead of an explicit '='. Cleaner.
5337 separator instead of an explicit '='. Cleaner.
5309
5338
5310 2001-12-20 Fernando Perez <fperez@colorado.edu>
5339 2001-12-20 Fernando Perez <fperez@colorado.edu>
5311
5340
5312 * Started a manual in LyX. For now it's just a quick merge of the
5341 * Started a manual in LyX. For now it's just a quick merge of the
5313 various internal docstrings and READMEs. Later it may grow into a
5342 various internal docstrings and READMEs. Later it may grow into a
5314 nice, full-blown manual.
5343 nice, full-blown manual.
5315
5344
5316 * Set up a distutils based installer. Installation should now be
5345 * Set up a distutils based installer. Installation should now be
5317 trivially simple for end-users.
5346 trivially simple for end-users.
5318
5347
5319 2001-12-11 Fernando Perez <fperez@colorado.edu>
5348 2001-12-11 Fernando Perez <fperez@colorado.edu>
5320
5349
5321 * Released 0.2.0. First public release, announced it at
5350 * Released 0.2.0. First public release, announced it at
5322 comp.lang.python. From now on, just bugfixes...
5351 comp.lang.python. From now on, just bugfixes...
5323
5352
5324 * Went through all the files, set copyright/license notices and
5353 * Went through all the files, set copyright/license notices and
5325 cleaned up things. Ready for release.
5354 cleaned up things. Ready for release.
5326
5355
5327 2001-12-10 Fernando Perez <fperez@colorado.edu>
5356 2001-12-10 Fernando Perez <fperez@colorado.edu>
5328
5357
5329 * Changed the first-time installer not to use tarfiles. It's more
5358 * Changed the first-time installer not to use tarfiles. It's more
5330 robust now and less unix-dependent. Also makes it easier for
5359 robust now and less unix-dependent. Also makes it easier for
5331 people to later upgrade versions.
5360 people to later upgrade versions.
5332
5361
5333 * Changed @exit to @abort to reflect the fact that it's pretty
5362 * Changed @exit to @abort to reflect the fact that it's pretty
5334 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5363 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5335 becomes significant only when IPyhton is embedded: in that case,
5364 becomes significant only when IPyhton is embedded: in that case,
5336 C-D closes IPython only, but @abort kills the enclosing program
5365 C-D closes IPython only, but @abort kills the enclosing program
5337 too (unless it had called IPython inside a try catching
5366 too (unless it had called IPython inside a try catching
5338 SystemExit).
5367 SystemExit).
5339
5368
5340 * Created Shell module which exposes the actuall IPython Shell
5369 * Created Shell module which exposes the actuall IPython Shell
5341 classes, currently the normal and the embeddable one. This at
5370 classes, currently the normal and the embeddable one. This at
5342 least offers a stable interface we won't need to change when
5371 least offers a stable interface we won't need to change when
5343 (later) the internals are rewritten. That rewrite will be confined
5372 (later) the internals are rewritten. That rewrite will be confined
5344 to iplib and ipmaker, but the Shell interface should remain as is.
5373 to iplib and ipmaker, but the Shell interface should remain as is.
5345
5374
5346 * Added embed module which offers an embeddable IPShell object,
5375 * Added embed module which offers an embeddable IPShell object,
5347 useful to fire up IPython *inside* a running program. Great for
5376 useful to fire up IPython *inside* a running program. Great for
5348 debugging or dynamical data analysis.
5377 debugging or dynamical data analysis.
5349
5378
5350 2001-12-08 Fernando Perez <fperez@colorado.edu>
5379 2001-12-08 Fernando Perez <fperez@colorado.edu>
5351
5380
5352 * Fixed small bug preventing seeing info from methods of defined
5381 * Fixed small bug preventing seeing info from methods of defined
5353 objects (incorrect namespace in _ofind()).
5382 objects (incorrect namespace in _ofind()).
5354
5383
5355 * Documentation cleanup. Moved the main usage docstrings to a
5384 * Documentation cleanup. Moved the main usage docstrings to a
5356 separate file, usage.py (cleaner to maintain, and hopefully in the
5385 separate file, usage.py (cleaner to maintain, and hopefully in the
5357 future some perlpod-like way of producing interactive, man and
5386 future some perlpod-like way of producing interactive, man and
5358 html docs out of it will be found).
5387 html docs out of it will be found).
5359
5388
5360 * Added @profile to see your profile at any time.
5389 * Added @profile to see your profile at any time.
5361
5390
5362 * Added @p as an alias for 'print'. It's especially convenient if
5391 * Added @p as an alias for 'print'. It's especially convenient if
5363 using automagic ('p x' prints x).
5392 using automagic ('p x' prints x).
5364
5393
5365 * Small cleanups and fixes after a pychecker run.
5394 * Small cleanups and fixes after a pychecker run.
5366
5395
5367 * Changed the @cd command to handle @cd - and @cd -<n> for
5396 * Changed the @cd command to handle @cd - and @cd -<n> for
5368 visiting any directory in _dh.
5397 visiting any directory in _dh.
5369
5398
5370 * Introduced _dh, a history of visited directories. @dhist prints
5399 * Introduced _dh, a history of visited directories. @dhist prints
5371 it out with numbers.
5400 it out with numbers.
5372
5401
5373 2001-12-07 Fernando Perez <fperez@colorado.edu>
5402 2001-12-07 Fernando Perez <fperez@colorado.edu>
5374
5403
5375 * Released 0.1.22
5404 * Released 0.1.22
5376
5405
5377 * Made initialization a bit more robust against invalid color
5406 * Made initialization a bit more robust against invalid color
5378 options in user input (exit, not traceback-crash).
5407 options in user input (exit, not traceback-crash).
5379
5408
5380 * Changed the bug crash reporter to write the report only in the
5409 * Changed the bug crash reporter to write the report only in the
5381 user's .ipython directory. That way IPython won't litter people's
5410 user's .ipython directory. That way IPython won't litter people's
5382 hard disks with crash files all over the place. Also print on
5411 hard disks with crash files all over the place. Also print on
5383 screen the necessary mail command.
5412 screen the necessary mail command.
5384
5413
5385 * With the new ultraTB, implemented LightBG color scheme for light
5414 * With the new ultraTB, implemented LightBG color scheme for light
5386 background terminals. A lot of people like white backgrounds, so I
5415 background terminals. A lot of people like white backgrounds, so I
5387 guess we should at least give them something readable.
5416 guess we should at least give them something readable.
5388
5417
5389 2001-12-06 Fernando Perez <fperez@colorado.edu>
5418 2001-12-06 Fernando Perez <fperez@colorado.edu>
5390
5419
5391 * Modified the structure of ultraTB. Now there's a proper class
5420 * Modified the structure of ultraTB. Now there's a proper class
5392 for tables of color schemes which allow adding schemes easily and
5421 for tables of color schemes which allow adding schemes easily and
5393 switching the active scheme without creating a new instance every
5422 switching the active scheme without creating a new instance every
5394 time (which was ridiculous). The syntax for creating new schemes
5423 time (which was ridiculous). The syntax for creating new schemes
5395 is also cleaner. I think ultraTB is finally done, with a clean
5424 is also cleaner. I think ultraTB is finally done, with a clean
5396 class structure. Names are also much cleaner (now there's proper
5425 class structure. Names are also much cleaner (now there's proper
5397 color tables, no need for every variable to also have 'color' in
5426 color tables, no need for every variable to also have 'color' in
5398 its name).
5427 its name).
5399
5428
5400 * Broke down genutils into separate files. Now genutils only
5429 * Broke down genutils into separate files. Now genutils only
5401 contains utility functions, and classes have been moved to their
5430 contains utility functions, and classes have been moved to their
5402 own files (they had enough independent functionality to warrant
5431 own files (they had enough independent functionality to warrant
5403 it): ConfigLoader, OutputTrap, Struct.
5432 it): ConfigLoader, OutputTrap, Struct.
5404
5433
5405 2001-12-05 Fernando Perez <fperez@colorado.edu>
5434 2001-12-05 Fernando Perez <fperez@colorado.edu>
5406
5435
5407 * IPython turns 21! Released version 0.1.21, as a candidate for
5436 * IPython turns 21! Released version 0.1.21, as a candidate for
5408 public consumption. If all goes well, release in a few days.
5437 public consumption. If all goes well, release in a few days.
5409
5438
5410 * Fixed path bug (files in Extensions/ directory wouldn't be found
5439 * Fixed path bug (files in Extensions/ directory wouldn't be found
5411 unless IPython/ was explicitly in sys.path).
5440 unless IPython/ was explicitly in sys.path).
5412
5441
5413 * Extended the FlexCompleter class as MagicCompleter to allow
5442 * Extended the FlexCompleter class as MagicCompleter to allow
5414 completion of @-starting lines.
5443 completion of @-starting lines.
5415
5444
5416 * Created __release__.py file as a central repository for release
5445 * Created __release__.py file as a central repository for release
5417 info that other files can read from.
5446 info that other files can read from.
5418
5447
5419 * Fixed small bug in logging: when logging was turned on in
5448 * Fixed small bug in logging: when logging was turned on in
5420 mid-session, old lines with special meanings (!@?) were being
5449 mid-session, old lines with special meanings (!@?) were being
5421 logged without the prepended comment, which is necessary since
5450 logged without the prepended comment, which is necessary since
5422 they are not truly valid python syntax. This should make session
5451 they are not truly valid python syntax. This should make session
5423 restores produce less errors.
5452 restores produce less errors.
5424
5453
5425 * The namespace cleanup forced me to make a FlexCompleter class
5454 * The namespace cleanup forced me to make a FlexCompleter class
5426 which is nothing but a ripoff of rlcompleter, but with selectable
5455 which is nothing but a ripoff of rlcompleter, but with selectable
5427 namespace (rlcompleter only works in __main__.__dict__). I'll try
5456 namespace (rlcompleter only works in __main__.__dict__). I'll try
5428 to submit a note to the authors to see if this change can be
5457 to submit a note to the authors to see if this change can be
5429 incorporated in future rlcompleter releases (Dec.6: done)
5458 incorporated in future rlcompleter releases (Dec.6: done)
5430
5459
5431 * More fixes to namespace handling. It was a mess! Now all
5460 * More fixes to namespace handling. It was a mess! Now all
5432 explicit references to __main__.__dict__ are gone (except when
5461 explicit references to __main__.__dict__ are gone (except when
5433 really needed) and everything is handled through the namespace
5462 really needed) and everything is handled through the namespace
5434 dicts in the IPython instance. We seem to be getting somewhere
5463 dicts in the IPython instance. We seem to be getting somewhere
5435 with this, finally...
5464 with this, finally...
5436
5465
5437 * Small documentation updates.
5466 * Small documentation updates.
5438
5467
5439 * Created the Extensions directory under IPython (with an
5468 * Created the Extensions directory under IPython (with an
5440 __init__.py). Put the PhysicalQ stuff there. This directory should
5469 __init__.py). Put the PhysicalQ stuff there. This directory should
5441 be used for all special-purpose extensions.
5470 be used for all special-purpose extensions.
5442
5471
5443 * File renaming:
5472 * File renaming:
5444 ipythonlib --> ipmaker
5473 ipythonlib --> ipmaker
5445 ipplib --> iplib
5474 ipplib --> iplib
5446 This makes a bit more sense in terms of what these files actually do.
5475 This makes a bit more sense in terms of what these files actually do.
5447
5476
5448 * Moved all the classes and functions in ipythonlib to ipplib, so
5477 * Moved all the classes and functions in ipythonlib to ipplib, so
5449 now ipythonlib only has make_IPython(). This will ease up its
5478 now ipythonlib only has make_IPython(). This will ease up its
5450 splitting in smaller functional chunks later.
5479 splitting in smaller functional chunks later.
5451
5480
5452 * Cleaned up (done, I think) output of @whos. Better column
5481 * Cleaned up (done, I think) output of @whos. Better column
5453 formatting, and now shows str(var) for as much as it can, which is
5482 formatting, and now shows str(var) for as much as it can, which is
5454 typically what one gets with a 'print var'.
5483 typically what one gets with a 'print var'.
5455
5484
5456 2001-12-04 Fernando Perez <fperez@colorado.edu>
5485 2001-12-04 Fernando Perez <fperez@colorado.edu>
5457
5486
5458 * Fixed namespace problems. Now builtin/IPyhton/user names get
5487 * Fixed namespace problems. Now builtin/IPyhton/user names get
5459 properly reported in their namespace. Internal namespace handling
5488 properly reported in their namespace. Internal namespace handling
5460 is finally getting decent (not perfect yet, but much better than
5489 is finally getting decent (not perfect yet, but much better than
5461 the ad-hoc mess we had).
5490 the ad-hoc mess we had).
5462
5491
5463 * Removed -exit option. If people just want to run a python
5492 * Removed -exit option. If people just want to run a python
5464 script, that's what the normal interpreter is for. Less
5493 script, that's what the normal interpreter is for. Less
5465 unnecessary options, less chances for bugs.
5494 unnecessary options, less chances for bugs.
5466
5495
5467 * Added a crash handler which generates a complete post-mortem if
5496 * Added a crash handler which generates a complete post-mortem if
5468 IPython crashes. This will help a lot in tracking bugs down the
5497 IPython crashes. This will help a lot in tracking bugs down the
5469 road.
5498 road.
5470
5499
5471 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5500 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5472 which were boud to functions being reassigned would bypass the
5501 which were boud to functions being reassigned would bypass the
5473 logger, breaking the sync of _il with the prompt counter. This
5502 logger, breaking the sync of _il with the prompt counter. This
5474 would then crash IPython later when a new line was logged.
5503 would then crash IPython later when a new line was logged.
5475
5504
5476 2001-12-02 Fernando Perez <fperez@colorado.edu>
5505 2001-12-02 Fernando Perez <fperez@colorado.edu>
5477
5506
5478 * Made IPython a package. This means people don't have to clutter
5507 * Made IPython a package. This means people don't have to clutter
5479 their sys.path with yet another directory. Changed the INSTALL
5508 their sys.path with yet another directory. Changed the INSTALL
5480 file accordingly.
5509 file accordingly.
5481
5510
5482 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5511 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5483 sorts its output (so @who shows it sorted) and @whos formats the
5512 sorts its output (so @who shows it sorted) and @whos formats the
5484 table according to the width of the first column. Nicer, easier to
5513 table according to the width of the first column. Nicer, easier to
5485 read. Todo: write a generic table_format() which takes a list of
5514 read. Todo: write a generic table_format() which takes a list of
5486 lists and prints it nicely formatted, with optional row/column
5515 lists and prints it nicely formatted, with optional row/column
5487 separators and proper padding and justification.
5516 separators and proper padding and justification.
5488
5517
5489 * Released 0.1.20
5518 * Released 0.1.20
5490
5519
5491 * Fixed bug in @log which would reverse the inputcache list (a
5520 * Fixed bug in @log which would reverse the inputcache list (a
5492 copy operation was missing).
5521 copy operation was missing).
5493
5522
5494 * Code cleanup. @config was changed to use page(). Better, since
5523 * Code cleanup. @config was changed to use page(). Better, since
5495 its output is always quite long.
5524 its output is always quite long.
5496
5525
5497 * Itpl is back as a dependency. I was having too many problems
5526 * Itpl is back as a dependency. I was having too many problems
5498 getting the parametric aliases to work reliably, and it's just
5527 getting the parametric aliases to work reliably, and it's just
5499 easier to code weird string operations with it than playing %()s
5528 easier to code weird string operations with it than playing %()s
5500 games. It's only ~6k, so I don't think it's too big a deal.
5529 games. It's only ~6k, so I don't think it's too big a deal.
5501
5530
5502 * Found (and fixed) a very nasty bug with history. !lines weren't
5531 * Found (and fixed) a very nasty bug with history. !lines weren't
5503 getting cached, and the out of sync caches would crash
5532 getting cached, and the out of sync caches would crash
5504 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5533 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5505 division of labor a bit better. Bug fixed, cleaner structure.
5534 division of labor a bit better. Bug fixed, cleaner structure.
5506
5535
5507 2001-12-01 Fernando Perez <fperez@colorado.edu>
5536 2001-12-01 Fernando Perez <fperez@colorado.edu>
5508
5537
5509 * Released 0.1.19
5538 * Released 0.1.19
5510
5539
5511 * Added option -n to @hist to prevent line number printing. Much
5540 * Added option -n to @hist to prevent line number printing. Much
5512 easier to copy/paste code this way.
5541 easier to copy/paste code this way.
5513
5542
5514 * Created global _il to hold the input list. Allows easy
5543 * Created global _il to hold the input list. Allows easy
5515 re-execution of blocks of code by slicing it (inspired by Janko's
5544 re-execution of blocks of code by slicing it (inspired by Janko's
5516 comment on 'macros').
5545 comment on 'macros').
5517
5546
5518 * Small fixes and doc updates.
5547 * Small fixes and doc updates.
5519
5548
5520 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5549 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5521 much too fragile with automagic. Handles properly multi-line
5550 much too fragile with automagic. Handles properly multi-line
5522 statements and takes parameters.
5551 statements and takes parameters.
5523
5552
5524 2001-11-30 Fernando Perez <fperez@colorado.edu>
5553 2001-11-30 Fernando Perez <fperez@colorado.edu>
5525
5554
5526 * Version 0.1.18 released.
5555 * Version 0.1.18 released.
5527
5556
5528 * Fixed nasty namespace bug in initial module imports.
5557 * Fixed nasty namespace bug in initial module imports.
5529
5558
5530 * Added copyright/license notes to all code files (except
5559 * Added copyright/license notes to all code files (except
5531 DPyGetOpt). For the time being, LGPL. That could change.
5560 DPyGetOpt). For the time being, LGPL. That could change.
5532
5561
5533 * Rewrote a much nicer README, updated INSTALL, cleaned up
5562 * Rewrote a much nicer README, updated INSTALL, cleaned up
5534 ipythonrc-* samples.
5563 ipythonrc-* samples.
5535
5564
5536 * Overall code/documentation cleanup. Basically ready for
5565 * Overall code/documentation cleanup. Basically ready for
5537 release. Only remaining thing: licence decision (LGPL?).
5566 release. Only remaining thing: licence decision (LGPL?).
5538
5567
5539 * Converted load_config to a class, ConfigLoader. Now recursion
5568 * Converted load_config to a class, ConfigLoader. Now recursion
5540 control is better organized. Doesn't include the same file twice.
5569 control is better organized. Doesn't include the same file twice.
5541
5570
5542 2001-11-29 Fernando Perez <fperez@colorado.edu>
5571 2001-11-29 Fernando Perez <fperez@colorado.edu>
5543
5572
5544 * Got input history working. Changed output history variables from
5573 * Got input history working. Changed output history variables from
5545 _p to _o so that _i is for input and _o for output. Just cleaner
5574 _p to _o so that _i is for input and _o for output. Just cleaner
5546 convention.
5575 convention.
5547
5576
5548 * Implemented parametric aliases. This pretty much allows the
5577 * Implemented parametric aliases. This pretty much allows the
5549 alias system to offer full-blown shell convenience, I think.
5578 alias system to offer full-blown shell convenience, I think.
5550
5579
5551 * Version 0.1.17 released, 0.1.18 opened.
5580 * Version 0.1.17 released, 0.1.18 opened.
5552
5581
5553 * dot_ipython/ipythonrc (alias): added documentation.
5582 * dot_ipython/ipythonrc (alias): added documentation.
5554 (xcolor): Fixed small bug (xcolors -> xcolor)
5583 (xcolor): Fixed small bug (xcolors -> xcolor)
5555
5584
5556 * Changed the alias system. Now alias is a magic command to define
5585 * Changed the alias system. Now alias is a magic command to define
5557 aliases just like the shell. Rationale: the builtin magics should
5586 aliases just like the shell. Rationale: the builtin magics should
5558 be there for things deeply connected to IPython's
5587 be there for things deeply connected to IPython's
5559 architecture. And this is a much lighter system for what I think
5588 architecture. And this is a much lighter system for what I think
5560 is the really important feature: allowing users to define quickly
5589 is the really important feature: allowing users to define quickly
5561 magics that will do shell things for them, so they can customize
5590 magics that will do shell things for them, so they can customize
5562 IPython easily to match their work habits. If someone is really
5591 IPython easily to match their work habits. If someone is really
5563 desperate to have another name for a builtin alias, they can
5592 desperate to have another name for a builtin alias, they can
5564 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5593 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5565 works.
5594 works.
5566
5595
5567 2001-11-28 Fernando Perez <fperez@colorado.edu>
5596 2001-11-28 Fernando Perez <fperez@colorado.edu>
5568
5597
5569 * Changed @file so that it opens the source file at the proper
5598 * Changed @file so that it opens the source file at the proper
5570 line. Since it uses less, if your EDITOR environment is
5599 line. Since it uses less, if your EDITOR environment is
5571 configured, typing v will immediately open your editor of choice
5600 configured, typing v will immediately open your editor of choice
5572 right at the line where the object is defined. Not as quick as
5601 right at the line where the object is defined. Not as quick as
5573 having a direct @edit command, but for all intents and purposes it
5602 having a direct @edit command, but for all intents and purposes it
5574 works. And I don't have to worry about writing @edit to deal with
5603 works. And I don't have to worry about writing @edit to deal with
5575 all the editors, less does that.
5604 all the editors, less does that.
5576
5605
5577 * Version 0.1.16 released, 0.1.17 opened.
5606 * Version 0.1.16 released, 0.1.17 opened.
5578
5607
5579 * Fixed some nasty bugs in the page/page_dumb combo that could
5608 * Fixed some nasty bugs in the page/page_dumb combo that could
5580 crash IPython.
5609 crash IPython.
5581
5610
5582 2001-11-27 Fernando Perez <fperez@colorado.edu>
5611 2001-11-27 Fernando Perez <fperez@colorado.edu>
5583
5612
5584 * Version 0.1.15 released, 0.1.16 opened.
5613 * Version 0.1.15 released, 0.1.16 opened.
5585
5614
5586 * Finally got ? and ?? to work for undefined things: now it's
5615 * Finally got ? and ?? to work for undefined things: now it's
5587 possible to type {}.get? and get information about the get method
5616 possible to type {}.get? and get information about the get method
5588 of dicts, or os.path? even if only os is defined (so technically
5617 of dicts, or os.path? even if only os is defined (so technically
5589 os.path isn't). Works at any level. For example, after import os,
5618 os.path isn't). Works at any level. For example, after import os,
5590 os?, os.path?, os.path.abspath? all work. This is great, took some
5619 os?, os.path?, os.path.abspath? all work. This is great, took some
5591 work in _ofind.
5620 work in _ofind.
5592
5621
5593 * Fixed more bugs with logging. The sanest way to do it was to add
5622 * Fixed more bugs with logging. The sanest way to do it was to add
5594 to @log a 'mode' parameter. Killed two in one shot (this mode
5623 to @log a 'mode' parameter. Killed two in one shot (this mode
5595 option was a request of Janko's). I think it's finally clean
5624 option was a request of Janko's). I think it's finally clean
5596 (famous last words).
5625 (famous last words).
5597
5626
5598 * Added a page_dumb() pager which does a decent job of paging on
5627 * Added a page_dumb() pager which does a decent job of paging on
5599 screen, if better things (like less) aren't available. One less
5628 screen, if better things (like less) aren't available. One less
5600 unix dependency (someday maybe somebody will port this to
5629 unix dependency (someday maybe somebody will port this to
5601 windows).
5630 windows).
5602
5631
5603 * Fixed problem in magic_log: would lock of logging out if log
5632 * Fixed problem in magic_log: would lock of logging out if log
5604 creation failed (because it would still think it had succeeded).
5633 creation failed (because it would still think it had succeeded).
5605
5634
5606 * Improved the page() function using curses to auto-detect screen
5635 * Improved the page() function using curses to auto-detect screen
5607 size. Now it can make a much better decision on whether to print
5636 size. Now it can make a much better decision on whether to print
5608 or page a string. Option screen_length was modified: a value 0
5637 or page a string. Option screen_length was modified: a value 0
5609 means auto-detect, and that's the default now.
5638 means auto-detect, and that's the default now.
5610
5639
5611 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5640 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5612 go out. I'll test it for a few days, then talk to Janko about
5641 go out. I'll test it for a few days, then talk to Janko about
5613 licences and announce it.
5642 licences and announce it.
5614
5643
5615 * Fixed the length of the auto-generated ---> prompt which appears
5644 * Fixed the length of the auto-generated ---> prompt which appears
5616 for auto-parens and auto-quotes. Getting this right isn't trivial,
5645 for auto-parens and auto-quotes. Getting this right isn't trivial,
5617 with all the color escapes, different prompt types and optional
5646 with all the color escapes, different prompt types and optional
5618 separators. But it seems to be working in all the combinations.
5647 separators. But it seems to be working in all the combinations.
5619
5648
5620 2001-11-26 Fernando Perez <fperez@colorado.edu>
5649 2001-11-26 Fernando Perez <fperez@colorado.edu>
5621
5650
5622 * Wrote a regexp filter to get option types from the option names
5651 * Wrote a regexp filter to get option types from the option names
5623 string. This eliminates the need to manually keep two duplicate
5652 string. This eliminates the need to manually keep two duplicate
5624 lists.
5653 lists.
5625
5654
5626 * Removed the unneeded check_option_names. Now options are handled
5655 * Removed the unneeded check_option_names. Now options are handled
5627 in a much saner manner and it's easy to visually check that things
5656 in a much saner manner and it's easy to visually check that things
5628 are ok.
5657 are ok.
5629
5658
5630 * Updated version numbers on all files I modified to carry a
5659 * Updated version numbers on all files I modified to carry a
5631 notice so Janko and Nathan have clear version markers.
5660 notice so Janko and Nathan have clear version markers.
5632
5661
5633 * Updated docstring for ultraTB with my changes. I should send
5662 * Updated docstring for ultraTB with my changes. I should send
5634 this to Nathan.
5663 this to Nathan.
5635
5664
5636 * Lots of small fixes. Ran everything through pychecker again.
5665 * Lots of small fixes. Ran everything through pychecker again.
5637
5666
5638 * Made loading of deep_reload an cmd line option. If it's not too
5667 * Made loading of deep_reload an cmd line option. If it's not too
5639 kosher, now people can just disable it. With -nodeep_reload it's
5668 kosher, now people can just disable it. With -nodeep_reload it's
5640 still available as dreload(), it just won't overwrite reload().
5669 still available as dreload(), it just won't overwrite reload().
5641
5670
5642 * Moved many options to the no| form (-opt and -noopt
5671 * Moved many options to the no| form (-opt and -noopt
5643 accepted). Cleaner.
5672 accepted). Cleaner.
5644
5673
5645 * Changed magic_log so that if called with no parameters, it uses
5674 * Changed magic_log so that if called with no parameters, it uses
5646 'rotate' mode. That way auto-generated logs aren't automatically
5675 'rotate' mode. That way auto-generated logs aren't automatically
5647 over-written. For normal logs, now a backup is made if it exists
5676 over-written. For normal logs, now a backup is made if it exists
5648 (only 1 level of backups). A new 'backup' mode was added to the
5677 (only 1 level of backups). A new 'backup' mode was added to the
5649 Logger class to support this. This was a request by Janko.
5678 Logger class to support this. This was a request by Janko.
5650
5679
5651 * Added @logoff/@logon to stop/restart an active log.
5680 * Added @logoff/@logon to stop/restart an active log.
5652
5681
5653 * Fixed a lot of bugs in log saving/replay. It was pretty
5682 * Fixed a lot of bugs in log saving/replay. It was pretty
5654 broken. Now special lines (!@,/) appear properly in the command
5683 broken. Now special lines (!@,/) appear properly in the command
5655 history after a log replay.
5684 history after a log replay.
5656
5685
5657 * Tried and failed to implement full session saving via pickle. My
5686 * Tried and failed to implement full session saving via pickle. My
5658 idea was to pickle __main__.__dict__, but modules can't be
5687 idea was to pickle __main__.__dict__, but modules can't be
5659 pickled. This would be a better alternative to replaying logs, but
5688 pickled. This would be a better alternative to replaying logs, but
5660 seems quite tricky to get to work. Changed -session to be called
5689 seems quite tricky to get to work. Changed -session to be called
5661 -logplay, which more accurately reflects what it does. And if we
5690 -logplay, which more accurately reflects what it does. And if we
5662 ever get real session saving working, -session is now available.
5691 ever get real session saving working, -session is now available.
5663
5692
5664 * Implemented color schemes for prompts also. As for tracebacks,
5693 * Implemented color schemes for prompts also. As for tracebacks,
5665 currently only NoColor and Linux are supported. But now the
5694 currently only NoColor and Linux are supported. But now the
5666 infrastructure is in place, based on a generic ColorScheme
5695 infrastructure is in place, based on a generic ColorScheme
5667 class. So writing and activating new schemes both for the prompts
5696 class. So writing and activating new schemes both for the prompts
5668 and the tracebacks should be straightforward.
5697 and the tracebacks should be straightforward.
5669
5698
5670 * Version 0.1.13 released, 0.1.14 opened.
5699 * Version 0.1.13 released, 0.1.14 opened.
5671
5700
5672 * Changed handling of options for output cache. Now counter is
5701 * Changed handling of options for output cache. Now counter is
5673 hardwired starting at 1 and one specifies the maximum number of
5702 hardwired starting at 1 and one specifies the maximum number of
5674 entries *in the outcache* (not the max prompt counter). This is
5703 entries *in the outcache* (not the max prompt counter). This is
5675 much better, since many statements won't increase the cache
5704 much better, since many statements won't increase the cache
5676 count. It also eliminated some confusing options, now there's only
5705 count. It also eliminated some confusing options, now there's only
5677 one: cache_size.
5706 one: cache_size.
5678
5707
5679 * Added 'alias' magic function and magic_alias option in the
5708 * Added 'alias' magic function and magic_alias option in the
5680 ipythonrc file. Now the user can easily define whatever names he
5709 ipythonrc file. Now the user can easily define whatever names he
5681 wants for the magic functions without having to play weird
5710 wants for the magic functions without having to play weird
5682 namespace games. This gives IPython a real shell-like feel.
5711 namespace games. This gives IPython a real shell-like feel.
5683
5712
5684 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5713 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5685 @ or not).
5714 @ or not).
5686
5715
5687 This was one of the last remaining 'visible' bugs (that I know
5716 This was one of the last remaining 'visible' bugs (that I know
5688 of). I think if I can clean up the session loading so it works
5717 of). I think if I can clean up the session loading so it works
5689 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5718 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5690 about licensing).
5719 about licensing).
5691
5720
5692 2001-11-25 Fernando Perez <fperez@colorado.edu>
5721 2001-11-25 Fernando Perez <fperez@colorado.edu>
5693
5722
5694 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5723 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5695 there's a cleaner distinction between what ? and ?? show.
5724 there's a cleaner distinction between what ? and ?? show.
5696
5725
5697 * Added screen_length option. Now the user can define his own
5726 * Added screen_length option. Now the user can define his own
5698 screen size for page() operations.
5727 screen size for page() operations.
5699
5728
5700 * Implemented magic shell-like functions with automatic code
5729 * Implemented magic shell-like functions with automatic code
5701 generation. Now adding another function is just a matter of adding
5730 generation. Now adding another function is just a matter of adding
5702 an entry to a dict, and the function is dynamically generated at
5731 an entry to a dict, and the function is dynamically generated at
5703 run-time. Python has some really cool features!
5732 run-time. Python has some really cool features!
5704
5733
5705 * Renamed many options to cleanup conventions a little. Now all
5734 * Renamed many options to cleanup conventions a little. Now all
5706 are lowercase, and only underscores where needed. Also in the code
5735 are lowercase, and only underscores where needed. Also in the code
5707 option name tables are clearer.
5736 option name tables are clearer.
5708
5737
5709 * Changed prompts a little. Now input is 'In [n]:' instead of
5738 * Changed prompts a little. Now input is 'In [n]:' instead of
5710 'In[n]:='. This allows it the numbers to be aligned with the
5739 'In[n]:='. This allows it the numbers to be aligned with the
5711 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5740 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5712 Python (it was a Mathematica thing). The '...' continuation prompt
5741 Python (it was a Mathematica thing). The '...' continuation prompt
5713 was also changed a little to align better.
5742 was also changed a little to align better.
5714
5743
5715 * Fixed bug when flushing output cache. Not all _p<n> variables
5744 * Fixed bug when flushing output cache. Not all _p<n> variables
5716 exist, so their deletion needs to be wrapped in a try:
5745 exist, so their deletion needs to be wrapped in a try:
5717
5746
5718 * Figured out how to properly use inspect.formatargspec() (it
5747 * Figured out how to properly use inspect.formatargspec() (it
5719 requires the args preceded by *). So I removed all the code from
5748 requires the args preceded by *). So I removed all the code from
5720 _get_pdef in Magic, which was just replicating that.
5749 _get_pdef in Magic, which was just replicating that.
5721
5750
5722 * Added test to prefilter to allow redefining magic function names
5751 * Added test to prefilter to allow redefining magic function names
5723 as variables. This is ok, since the @ form is always available,
5752 as variables. This is ok, since the @ form is always available,
5724 but whe should allow the user to define a variable called 'ls' if
5753 but whe should allow the user to define a variable called 'ls' if
5725 he needs it.
5754 he needs it.
5726
5755
5727 * Moved the ToDo information from README into a separate ToDo.
5756 * Moved the ToDo information from README into a separate ToDo.
5728
5757
5729 * General code cleanup and small bugfixes. I think it's close to a
5758 * General code cleanup and small bugfixes. I think it's close to a
5730 state where it can be released, obviously with a big 'beta'
5759 state where it can be released, obviously with a big 'beta'
5731 warning on it.
5760 warning on it.
5732
5761
5733 * Got the magic function split to work. Now all magics are defined
5762 * Got the magic function split to work. Now all magics are defined
5734 in a separate class. It just organizes things a bit, and now
5763 in a separate class. It just organizes things a bit, and now
5735 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5764 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5736 was too long).
5765 was too long).
5737
5766
5738 * Changed @clear to @reset to avoid potential confusions with
5767 * Changed @clear to @reset to avoid potential confusions with
5739 the shell command clear. Also renamed @cl to @clear, which does
5768 the shell command clear. Also renamed @cl to @clear, which does
5740 exactly what people expect it to from their shell experience.
5769 exactly what people expect it to from their shell experience.
5741
5770
5742 Added a check to the @reset command (since it's so
5771 Added a check to the @reset command (since it's so
5743 destructive, it's probably a good idea to ask for confirmation).
5772 destructive, it's probably a good idea to ask for confirmation).
5744 But now reset only works for full namespace resetting. Since the
5773 But now reset only works for full namespace resetting. Since the
5745 del keyword is already there for deleting a few specific
5774 del keyword is already there for deleting a few specific
5746 variables, I don't see the point of having a redundant magic
5775 variables, I don't see the point of having a redundant magic
5747 function for the same task.
5776 function for the same task.
5748
5777
5749 2001-11-24 Fernando Perez <fperez@colorado.edu>
5778 2001-11-24 Fernando Perez <fperez@colorado.edu>
5750
5779
5751 * Updated the builtin docs (esp. the ? ones).
5780 * Updated the builtin docs (esp. the ? ones).
5752
5781
5753 * Ran all the code through pychecker. Not terribly impressed with
5782 * Ran all the code through pychecker. Not terribly impressed with
5754 it: lots of spurious warnings and didn't really find anything of
5783 it: lots of spurious warnings and didn't really find anything of
5755 substance (just a few modules being imported and not used).
5784 substance (just a few modules being imported and not used).
5756
5785
5757 * Implemented the new ultraTB functionality into IPython. New
5786 * Implemented the new ultraTB functionality into IPython. New
5758 option: xcolors. This chooses color scheme. xmode now only selects
5787 option: xcolors. This chooses color scheme. xmode now only selects
5759 between Plain and Verbose. Better orthogonality.
5788 between Plain and Verbose. Better orthogonality.
5760
5789
5761 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5790 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5762 mode and color scheme for the exception handlers. Now it's
5791 mode and color scheme for the exception handlers. Now it's
5763 possible to have the verbose traceback with no coloring.
5792 possible to have the verbose traceback with no coloring.
5764
5793
5765 2001-11-23 Fernando Perez <fperez@colorado.edu>
5794 2001-11-23 Fernando Perez <fperez@colorado.edu>
5766
5795
5767 * Version 0.1.12 released, 0.1.13 opened.
5796 * Version 0.1.12 released, 0.1.13 opened.
5768
5797
5769 * Removed option to set auto-quote and auto-paren escapes by
5798 * Removed option to set auto-quote and auto-paren escapes by
5770 user. The chances of breaking valid syntax are just too high. If
5799 user. The chances of breaking valid syntax are just too high. If
5771 someone *really* wants, they can always dig into the code.
5800 someone *really* wants, they can always dig into the code.
5772
5801
5773 * Made prompt separators configurable.
5802 * Made prompt separators configurable.
5774
5803
5775 2001-11-22 Fernando Perez <fperez@colorado.edu>
5804 2001-11-22 Fernando Perez <fperez@colorado.edu>
5776
5805
5777 * Small bugfixes in many places.
5806 * Small bugfixes in many places.
5778
5807
5779 * Removed the MyCompleter class from ipplib. It seemed redundant
5808 * Removed the MyCompleter class from ipplib. It seemed redundant
5780 with the C-p,C-n history search functionality. Less code to
5809 with the C-p,C-n history search functionality. Less code to
5781 maintain.
5810 maintain.
5782
5811
5783 * Moved all the original ipython.py code into ipythonlib.py. Right
5812 * Moved all the original ipython.py code into ipythonlib.py. Right
5784 now it's just one big dump into a function called make_IPython, so
5813 now it's just one big dump into a function called make_IPython, so
5785 no real modularity has been gained. But at least it makes the
5814 no real modularity has been gained. But at least it makes the
5786 wrapper script tiny, and since ipythonlib is a module, it gets
5815 wrapper script tiny, and since ipythonlib is a module, it gets
5787 compiled and startup is much faster.
5816 compiled and startup is much faster.
5788
5817
5789 This is a reasobably 'deep' change, so we should test it for a
5818 This is a reasobably 'deep' change, so we should test it for a
5790 while without messing too much more with the code.
5819 while without messing too much more with the code.
5791
5820
5792 2001-11-21 Fernando Perez <fperez@colorado.edu>
5821 2001-11-21 Fernando Perez <fperez@colorado.edu>
5793
5822
5794 * Version 0.1.11 released, 0.1.12 opened for further work.
5823 * Version 0.1.11 released, 0.1.12 opened for further work.
5795
5824
5796 * Removed dependency on Itpl. It was only needed in one place. It
5825 * Removed dependency on Itpl. It was only needed in one place. It
5797 would be nice if this became part of python, though. It makes life
5826 would be nice if this became part of python, though. It makes life
5798 *a lot* easier in some cases.
5827 *a lot* easier in some cases.
5799
5828
5800 * Simplified the prefilter code a bit. Now all handlers are
5829 * Simplified the prefilter code a bit. Now all handlers are
5801 expected to explicitly return a value (at least a blank string).
5830 expected to explicitly return a value (at least a blank string).
5802
5831
5803 * Heavy edits in ipplib. Removed the help system altogether. Now
5832 * Heavy edits in ipplib. Removed the help system altogether. Now
5804 obj?/?? is used for inspecting objects, a magic @doc prints
5833 obj?/?? is used for inspecting objects, a magic @doc prints
5805 docstrings, and full-blown Python help is accessed via the 'help'
5834 docstrings, and full-blown Python help is accessed via the 'help'
5806 keyword. This cleans up a lot of code (less to maintain) and does
5835 keyword. This cleans up a lot of code (less to maintain) and does
5807 the job. Since 'help' is now a standard Python component, might as
5836 the job. Since 'help' is now a standard Python component, might as
5808 well use it and remove duplicate functionality.
5837 well use it and remove duplicate functionality.
5809
5838
5810 Also removed the option to use ipplib as a standalone program. By
5839 Also removed the option to use ipplib as a standalone program. By
5811 now it's too dependent on other parts of IPython to function alone.
5840 now it's too dependent on other parts of IPython to function alone.
5812
5841
5813 * Fixed bug in genutils.pager. It would crash if the pager was
5842 * Fixed bug in genutils.pager. It would crash if the pager was
5814 exited immediately after opening (broken pipe).
5843 exited immediately after opening (broken pipe).
5815
5844
5816 * Trimmed down the VerboseTB reporting a little. The header is
5845 * Trimmed down the VerboseTB reporting a little. The header is
5817 much shorter now and the repeated exception arguments at the end
5846 much shorter now and the repeated exception arguments at the end
5818 have been removed. For interactive use the old header seemed a bit
5847 have been removed. For interactive use the old header seemed a bit
5819 excessive.
5848 excessive.
5820
5849
5821 * Fixed small bug in output of @whos for variables with multi-word
5850 * Fixed small bug in output of @whos for variables with multi-word
5822 types (only first word was displayed).
5851 types (only first word was displayed).
5823
5852
5824 2001-11-17 Fernando Perez <fperez@colorado.edu>
5853 2001-11-17 Fernando Perez <fperez@colorado.edu>
5825
5854
5826 * Version 0.1.10 released, 0.1.11 opened for further work.
5855 * Version 0.1.10 released, 0.1.11 opened for further work.
5827
5856
5828 * Modified dirs and friends. dirs now *returns* the stack (not
5857 * Modified dirs and friends. dirs now *returns* the stack (not
5829 prints), so one can manipulate it as a variable. Convenient to
5858 prints), so one can manipulate it as a variable. Convenient to
5830 travel along many directories.
5859 travel along many directories.
5831
5860
5832 * Fixed bug in magic_pdef: would only work with functions with
5861 * Fixed bug in magic_pdef: would only work with functions with
5833 arguments with default values.
5862 arguments with default values.
5834
5863
5835 2001-11-14 Fernando Perez <fperez@colorado.edu>
5864 2001-11-14 Fernando Perez <fperez@colorado.edu>
5836
5865
5837 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5866 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5838 example with IPython. Various other minor fixes and cleanups.
5867 example with IPython. Various other minor fixes and cleanups.
5839
5868
5840 * Version 0.1.9 released, 0.1.10 opened for further work.
5869 * Version 0.1.9 released, 0.1.10 opened for further work.
5841
5870
5842 * Added sys.path to the list of directories searched in the
5871 * Added sys.path to the list of directories searched in the
5843 execfile= option. It used to be the current directory and the
5872 execfile= option. It used to be the current directory and the
5844 user's IPYTHONDIR only.
5873 user's IPYTHONDIR only.
5845
5874
5846 2001-11-13 Fernando Perez <fperez@colorado.edu>
5875 2001-11-13 Fernando Perez <fperez@colorado.edu>
5847
5876
5848 * Reinstated the raw_input/prefilter separation that Janko had
5877 * Reinstated the raw_input/prefilter separation that Janko had
5849 initially. This gives a more convenient setup for extending the
5878 initially. This gives a more convenient setup for extending the
5850 pre-processor from the outside: raw_input always gets a string,
5879 pre-processor from the outside: raw_input always gets a string,
5851 and prefilter has to process it. We can then redefine prefilter
5880 and prefilter has to process it. We can then redefine prefilter
5852 from the outside and implement extensions for special
5881 from the outside and implement extensions for special
5853 purposes.
5882 purposes.
5854
5883
5855 Today I got one for inputting PhysicalQuantity objects
5884 Today I got one for inputting PhysicalQuantity objects
5856 (from Scientific) without needing any function calls at
5885 (from Scientific) without needing any function calls at
5857 all. Extremely convenient, and it's all done as a user-level
5886 all. Extremely convenient, and it's all done as a user-level
5858 extension (no IPython code was touched). Now instead of:
5887 extension (no IPython code was touched). Now instead of:
5859 a = PhysicalQuantity(4.2,'m/s**2')
5888 a = PhysicalQuantity(4.2,'m/s**2')
5860 one can simply say
5889 one can simply say
5861 a = 4.2 m/s**2
5890 a = 4.2 m/s**2
5862 or even
5891 or even
5863 a = 4.2 m/s^2
5892 a = 4.2 m/s^2
5864
5893
5865 I use this, but it's also a proof of concept: IPython really is
5894 I use this, but it's also a proof of concept: IPython really is
5866 fully user-extensible, even at the level of the parsing of the
5895 fully user-extensible, even at the level of the parsing of the
5867 command line. It's not trivial, but it's perfectly doable.
5896 command line. It's not trivial, but it's perfectly doable.
5868
5897
5869 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5898 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5870 the problem of modules being loaded in the inverse order in which
5899 the problem of modules being loaded in the inverse order in which
5871 they were defined in
5900 they were defined in
5872
5901
5873 * Version 0.1.8 released, 0.1.9 opened for further work.
5902 * Version 0.1.8 released, 0.1.9 opened for further work.
5874
5903
5875 * Added magics pdef, source and file. They respectively show the
5904 * Added magics pdef, source and file. They respectively show the
5876 definition line ('prototype' in C), source code and full python
5905 definition line ('prototype' in C), source code and full python
5877 file for any callable object. The object inspector oinfo uses
5906 file for any callable object. The object inspector oinfo uses
5878 these to show the same information.
5907 these to show the same information.
5879
5908
5880 * Version 0.1.7 released, 0.1.8 opened for further work.
5909 * Version 0.1.7 released, 0.1.8 opened for further work.
5881
5910
5882 * Separated all the magic functions into a class called Magic. The
5911 * Separated all the magic functions into a class called Magic. The
5883 InteractiveShell class was becoming too big for Xemacs to handle
5912 InteractiveShell class was becoming too big for Xemacs to handle
5884 (de-indenting a line would lock it up for 10 seconds while it
5913 (de-indenting a line would lock it up for 10 seconds while it
5885 backtracked on the whole class!)
5914 backtracked on the whole class!)
5886
5915
5887 FIXME: didn't work. It can be done, but right now namespaces are
5916 FIXME: didn't work. It can be done, but right now namespaces are
5888 all messed up. Do it later (reverted it for now, so at least
5917 all messed up. Do it later (reverted it for now, so at least
5889 everything works as before).
5918 everything works as before).
5890
5919
5891 * Got the object introspection system (magic_oinfo) working! I
5920 * Got the object introspection system (magic_oinfo) working! I
5892 think this is pretty much ready for release to Janko, so he can
5921 think this is pretty much ready for release to Janko, so he can
5893 test it for a while and then announce it. Pretty much 100% of what
5922 test it for a while and then announce it. Pretty much 100% of what
5894 I wanted for the 'phase 1' release is ready. Happy, tired.
5923 I wanted for the 'phase 1' release is ready. Happy, tired.
5895
5924
5896 2001-11-12 Fernando Perez <fperez@colorado.edu>
5925 2001-11-12 Fernando Perez <fperez@colorado.edu>
5897
5926
5898 * Version 0.1.6 released, 0.1.7 opened for further work.
5927 * Version 0.1.6 released, 0.1.7 opened for further work.
5899
5928
5900 * Fixed bug in printing: it used to test for truth before
5929 * Fixed bug in printing: it used to test for truth before
5901 printing, so 0 wouldn't print. Now checks for None.
5930 printing, so 0 wouldn't print. Now checks for None.
5902
5931
5903 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5932 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5904 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5933 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5905 reaches by hand into the outputcache. Think of a better way to do
5934 reaches by hand into the outputcache. Think of a better way to do
5906 this later.
5935 this later.
5907
5936
5908 * Various small fixes thanks to Nathan's comments.
5937 * Various small fixes thanks to Nathan's comments.
5909
5938
5910 * Changed magic_pprint to magic_Pprint. This way it doesn't
5939 * Changed magic_pprint to magic_Pprint. This way it doesn't
5911 collide with pprint() and the name is consistent with the command
5940 collide with pprint() and the name is consistent with the command
5912 line option.
5941 line option.
5913
5942
5914 * Changed prompt counter behavior to be fully like
5943 * Changed prompt counter behavior to be fully like
5915 Mathematica's. That is, even input that doesn't return a result
5944 Mathematica's. That is, even input that doesn't return a result
5916 raises the prompt counter. The old behavior was kind of confusing
5945 raises the prompt counter. The old behavior was kind of confusing
5917 (getting the same prompt number several times if the operation
5946 (getting the same prompt number several times if the operation
5918 didn't return a result).
5947 didn't return a result).
5919
5948
5920 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5949 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5921
5950
5922 * Fixed -Classic mode (wasn't working anymore).
5951 * Fixed -Classic mode (wasn't working anymore).
5923
5952
5924 * Added colored prompts using Nathan's new code. Colors are
5953 * Added colored prompts using Nathan's new code. Colors are
5925 currently hardwired, they can be user-configurable. For
5954 currently hardwired, they can be user-configurable. For
5926 developers, they can be chosen in file ipythonlib.py, at the
5955 developers, they can be chosen in file ipythonlib.py, at the
5927 beginning of the CachedOutput class def.
5956 beginning of the CachedOutput class def.
5928
5957
5929 2001-11-11 Fernando Perez <fperez@colorado.edu>
5958 2001-11-11 Fernando Perez <fperez@colorado.edu>
5930
5959
5931 * Version 0.1.5 released, 0.1.6 opened for further work.
5960 * Version 0.1.5 released, 0.1.6 opened for further work.
5932
5961
5933 * Changed magic_env to *return* the environment as a dict (not to
5962 * Changed magic_env to *return* the environment as a dict (not to
5934 print it). This way it prints, but it can also be processed.
5963 print it). This way it prints, but it can also be processed.
5935
5964
5936 * Added Verbose exception reporting to interactive
5965 * Added Verbose exception reporting to interactive
5937 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5966 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5938 traceback. Had to make some changes to the ultraTB file. This is
5967 traceback. Had to make some changes to the ultraTB file. This is
5939 probably the last 'big' thing in my mental todo list. This ties
5968 probably the last 'big' thing in my mental todo list. This ties
5940 in with the next entry:
5969 in with the next entry:
5941
5970
5942 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5971 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5943 has to specify is Plain, Color or Verbose for all exception
5972 has to specify is Plain, Color or Verbose for all exception
5944 handling.
5973 handling.
5945
5974
5946 * Removed ShellServices option. All this can really be done via
5975 * Removed ShellServices option. All this can really be done via
5947 the magic system. It's easier to extend, cleaner and has automatic
5976 the magic system. It's easier to extend, cleaner and has automatic
5948 namespace protection and documentation.
5977 namespace protection and documentation.
5949
5978
5950 2001-11-09 Fernando Perez <fperez@colorado.edu>
5979 2001-11-09 Fernando Perez <fperez@colorado.edu>
5951
5980
5952 * Fixed bug in output cache flushing (missing parameter to
5981 * Fixed bug in output cache flushing (missing parameter to
5953 __init__). Other small bugs fixed (found using pychecker).
5982 __init__). Other small bugs fixed (found using pychecker).
5954
5983
5955 * Version 0.1.4 opened for bugfixing.
5984 * Version 0.1.4 opened for bugfixing.
5956
5985
5957 2001-11-07 Fernando Perez <fperez@colorado.edu>
5986 2001-11-07 Fernando Perez <fperez@colorado.edu>
5958
5987
5959 * Version 0.1.3 released, mainly because of the raw_input bug.
5988 * Version 0.1.3 released, mainly because of the raw_input bug.
5960
5989
5961 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5990 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5962 and when testing for whether things were callable, a call could
5991 and when testing for whether things were callable, a call could
5963 actually be made to certain functions. They would get called again
5992 actually be made to certain functions. They would get called again
5964 once 'really' executed, with a resulting double call. A disaster
5993 once 'really' executed, with a resulting double call. A disaster
5965 in many cases (list.reverse() would never work!).
5994 in many cases (list.reverse() would never work!).
5966
5995
5967 * Removed prefilter() function, moved its code to raw_input (which
5996 * Removed prefilter() function, moved its code to raw_input (which
5968 after all was just a near-empty caller for prefilter). This saves
5997 after all was just a near-empty caller for prefilter). This saves
5969 a function call on every prompt, and simplifies the class a tiny bit.
5998 a function call on every prompt, and simplifies the class a tiny bit.
5970
5999
5971 * Fix _ip to __ip name in magic example file.
6000 * Fix _ip to __ip name in magic example file.
5972
6001
5973 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6002 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5974 work with non-gnu versions of tar.
6003 work with non-gnu versions of tar.
5975
6004
5976 2001-11-06 Fernando Perez <fperez@colorado.edu>
6005 2001-11-06 Fernando Perez <fperez@colorado.edu>
5977
6006
5978 * Version 0.1.2. Just to keep track of the recent changes.
6007 * Version 0.1.2. Just to keep track of the recent changes.
5979
6008
5980 * Fixed nasty bug in output prompt routine. It used to check 'if
6009 * Fixed nasty bug in output prompt routine. It used to check 'if
5981 arg != None...'. Problem is, this fails if arg implements a
6010 arg != None...'. Problem is, this fails if arg implements a
5982 special comparison (__cmp__) which disallows comparing to
6011 special comparison (__cmp__) which disallows comparing to
5983 None. Found it when trying to use the PhysicalQuantity module from
6012 None. Found it when trying to use the PhysicalQuantity module from
5984 ScientificPython.
6013 ScientificPython.
5985
6014
5986 2001-11-05 Fernando Perez <fperez@colorado.edu>
6015 2001-11-05 Fernando Perez <fperez@colorado.edu>
5987
6016
5988 * Also added dirs. Now the pushd/popd/dirs family functions
6017 * Also added dirs. Now the pushd/popd/dirs family functions
5989 basically like the shell, with the added convenience of going home
6018 basically like the shell, with the added convenience of going home
5990 when called with no args.
6019 when called with no args.
5991
6020
5992 * pushd/popd slightly modified to mimic shell behavior more
6021 * pushd/popd slightly modified to mimic shell behavior more
5993 closely.
6022 closely.
5994
6023
5995 * Added env,pushd,popd from ShellServices as magic functions. I
6024 * Added env,pushd,popd from ShellServices as magic functions. I
5996 think the cleanest will be to port all desired functions from
6025 think the cleanest will be to port all desired functions from
5997 ShellServices as magics and remove ShellServices altogether. This
6026 ShellServices as magics and remove ShellServices altogether. This
5998 will provide a single, clean way of adding functionality
6027 will provide a single, clean way of adding functionality
5999 (shell-type or otherwise) to IP.
6028 (shell-type or otherwise) to IP.
6000
6029
6001 2001-11-04 Fernando Perez <fperez@colorado.edu>
6030 2001-11-04 Fernando Perez <fperez@colorado.edu>
6002
6031
6003 * Added .ipython/ directory to sys.path. This way users can keep
6032 * Added .ipython/ directory to sys.path. This way users can keep
6004 customizations there and access them via import.
6033 customizations there and access them via import.
6005
6034
6006 2001-11-03 Fernando Perez <fperez@colorado.edu>
6035 2001-11-03 Fernando Perez <fperez@colorado.edu>
6007
6036
6008 * Opened version 0.1.1 for new changes.
6037 * Opened version 0.1.1 for new changes.
6009
6038
6010 * Changed version number to 0.1.0: first 'public' release, sent to
6039 * Changed version number to 0.1.0: first 'public' release, sent to
6011 Nathan and Janko.
6040 Nathan and Janko.
6012
6041
6013 * Lots of small fixes and tweaks.
6042 * Lots of small fixes and tweaks.
6014
6043
6015 * Minor changes to whos format. Now strings are shown, snipped if
6044 * Minor changes to whos format. Now strings are shown, snipped if
6016 too long.
6045 too long.
6017
6046
6018 * Changed ShellServices to work on __main__ so they show up in @who
6047 * Changed ShellServices to work on __main__ so they show up in @who
6019
6048
6020 * Help also works with ? at the end of a line:
6049 * Help also works with ? at the end of a line:
6021 ?sin and sin?
6050 ?sin and sin?
6022 both produce the same effect. This is nice, as often I use the
6051 both produce the same effect. This is nice, as often I use the
6023 tab-complete to find the name of a method, but I used to then have
6052 tab-complete to find the name of a method, but I used to then have
6024 to go to the beginning of the line to put a ? if I wanted more
6053 to go to the beginning of the line to put a ? if I wanted more
6025 info. Now I can just add the ? and hit return. Convenient.
6054 info. Now I can just add the ? and hit return. Convenient.
6026
6055
6027 2001-11-02 Fernando Perez <fperez@colorado.edu>
6056 2001-11-02 Fernando Perez <fperez@colorado.edu>
6028
6057
6029 * Python version check (>=2.1) added.
6058 * Python version check (>=2.1) added.
6030
6059
6031 * Added LazyPython documentation. At this point the docs are quite
6060 * Added LazyPython documentation. At this point the docs are quite
6032 a mess. A cleanup is in order.
6061 a mess. A cleanup is in order.
6033
6062
6034 * Auto-installer created. For some bizarre reason, the zipfiles
6063 * Auto-installer created. For some bizarre reason, the zipfiles
6035 module isn't working on my system. So I made a tar version
6064 module isn't working on my system. So I made a tar version
6036 (hopefully the command line options in various systems won't kill
6065 (hopefully the command line options in various systems won't kill
6037 me).
6066 me).
6038
6067
6039 * Fixes to Struct in genutils. Now all dictionary-like methods are
6068 * Fixes to Struct in genutils. Now all dictionary-like methods are
6040 protected (reasonably).
6069 protected (reasonably).
6041
6070
6042 * Added pager function to genutils and changed ? to print usage
6071 * Added pager function to genutils and changed ? to print usage
6043 note through it (it was too long).
6072 note through it (it was too long).
6044
6073
6045 * Added the LazyPython functionality. Works great! I changed the
6074 * Added the LazyPython functionality. Works great! I changed the
6046 auto-quote escape to ';', it's on home row and next to '. But
6075 auto-quote escape to ';', it's on home row and next to '. But
6047 both auto-quote and auto-paren (still /) escapes are command-line
6076 both auto-quote and auto-paren (still /) escapes are command-line
6048 parameters.
6077 parameters.
6049
6078
6050
6079
6051 2001-11-01 Fernando Perez <fperez@colorado.edu>
6080 2001-11-01 Fernando Perez <fperez@colorado.edu>
6052
6081
6053 * Version changed to 0.0.7. Fairly large change: configuration now
6082 * Version changed to 0.0.7. Fairly large change: configuration now
6054 is all stored in a directory, by default .ipython. There, all
6083 is all stored in a directory, by default .ipython. There, all
6055 config files have normal looking names (not .names)
6084 config files have normal looking names (not .names)
6056
6085
6057 * Version 0.0.6 Released first to Lucas and Archie as a test
6086 * Version 0.0.6 Released first to Lucas and Archie as a test
6058 run. Since it's the first 'semi-public' release, change version to
6087 run. Since it's the first 'semi-public' release, change version to
6059 > 0.0.6 for any changes now.
6088 > 0.0.6 for any changes now.
6060
6089
6061 * Stuff I had put in the ipplib.py changelog:
6090 * Stuff I had put in the ipplib.py changelog:
6062
6091
6063 Changes to InteractiveShell:
6092 Changes to InteractiveShell:
6064
6093
6065 - Made the usage message a parameter.
6094 - Made the usage message a parameter.
6066
6095
6067 - Require the name of the shell variable to be given. It's a bit
6096 - Require the name of the shell variable to be given. It's a bit
6068 of a hack, but allows the name 'shell' not to be hardwired in the
6097 of a hack, but allows the name 'shell' not to be hardwired in the
6069 magic (@) handler, which is problematic b/c it requires
6098 magic (@) handler, which is problematic b/c it requires
6070 polluting the global namespace with 'shell'. This in turn is
6099 polluting the global namespace with 'shell'. This in turn is
6071 fragile: if a user redefines a variable called shell, things
6100 fragile: if a user redefines a variable called shell, things
6072 break.
6101 break.
6073
6102
6074 - magic @: all functions available through @ need to be defined
6103 - magic @: all functions available through @ need to be defined
6075 as magic_<name>, even though they can be called simply as
6104 as magic_<name>, even though they can be called simply as
6076 @<name>. This allows the special command @magic to gather
6105 @<name>. This allows the special command @magic to gather
6077 information automatically about all existing magic functions,
6106 information automatically about all existing magic functions,
6078 even if they are run-time user extensions, by parsing the shell
6107 even if they are run-time user extensions, by parsing the shell
6079 instance __dict__ looking for special magic_ names.
6108 instance __dict__ looking for special magic_ names.
6080
6109
6081 - mainloop: added *two* local namespace parameters. This allows
6110 - mainloop: added *two* local namespace parameters. This allows
6082 the class to differentiate between parameters which were there
6111 the class to differentiate between parameters which were there
6083 before and after command line initialization was processed. This
6112 before and after command line initialization was processed. This
6084 way, later @who can show things loaded at startup by the
6113 way, later @who can show things loaded at startup by the
6085 user. This trick was necessary to make session saving/reloading
6114 user. This trick was necessary to make session saving/reloading
6086 really work: ideally after saving/exiting/reloading a session,
6115 really work: ideally after saving/exiting/reloading a session,
6087 *everything* should look the same, including the output of @who. I
6116 *everything* should look the same, including the output of @who. I
6088 was only able to make this work with this double namespace
6117 was only able to make this work with this double namespace
6089 trick.
6118 trick.
6090
6119
6091 - added a header to the logfile which allows (almost) full
6120 - added a header to the logfile which allows (almost) full
6092 session restoring.
6121 session restoring.
6093
6122
6094 - prepend lines beginning with @ or !, with a and log
6123 - prepend lines beginning with @ or !, with a and log
6095 them. Why? !lines: may be useful to know what you did @lines:
6124 them. Why? !lines: may be useful to know what you did @lines:
6096 they may affect session state. So when restoring a session, at
6125 they may affect session state. So when restoring a session, at
6097 least inform the user of their presence. I couldn't quite get
6126 least inform the user of their presence. I couldn't quite get
6098 them to properly re-execute, but at least the user is warned.
6127 them to properly re-execute, but at least the user is warned.
6099
6128
6100 * Started ChangeLog.
6129 * Started ChangeLog.
1 NO CONTENT: modified file
NO CONTENT: modified file
@@ -1,78 +1,80 b''
1 #!python
1 #!python
2 """Windows-specific part of the installation"""
2 """Windows-specific part of the installation"""
3
3
4 import os, sys
4 import os, sys, shutil
5
5
6 def create_shortcut_safe(target,description,link_file,*args,**kw):
6 def mkshortcut(target,description,link_file,*args,**kw):
7 """make a shortcut if it doesn't exist, and register its creation"""
7 """make a shortcut if it doesn't exist, and register its creation"""
8
8
9 if not os.path.isfile(link_file):
10 create_shortcut(target, description, link_file,*args,**kw)
9 create_shortcut(target, description, link_file,*args,**kw)
11 file_created(link_file)
10 file_created(link_file)
12
11
13 def install():
12 def install():
14 """Routine to be run by the win32 installer with the -install switch."""
13 """Routine to be run by the win32 installer with the -install switch."""
15
14
16 from IPython.Release import version
15 from IPython.Release import version
17
16
18 # Get some system constants
17 # Get some system constants
19 prefix = sys.prefix
18 prefix = sys.prefix
20 python = prefix + r'\python.exe'
19 python = prefix + r'\python.exe'
21 # Lookup path to common startmenu ...
20 # Lookup path to common startmenu ...
22 ip_dir = get_special_folder_path('CSIDL_COMMON_PROGRAMS') + r'\IPython'
21 ip_dir = get_special_folder_path('CSIDL_COMMON_PROGRAMS') + r'\IPython'
23
22
24 # Some usability warnings at installation time. I don't want them at the
23 # Some usability warnings at installation time. I don't want them at the
25 # top-level, so they don't appear if the user is uninstalling.
24 # top-level, so they don't appear if the user is uninstalling.
26 try:
25 try:
27 import ctypes
26 import ctypes
28 except ImportError:
27 except ImportError:
29 print ('To take full advantage of IPython, you need ctypes from:\n'
28 print ('To take full advantage of IPython, you need ctypes from:\n'
30 'http://sourceforge.net/projects/ctypes')
29 'http://sourceforge.net/projects/ctypes')
31
30
32 try:
31 try:
33 import win32con
32 import win32con
34 except ImportError:
33 except ImportError:
35 print ('To take full advantage of IPython, you need pywin32 from:\n'
34 print ('To take full advantage of IPython, you need pywin32 from:\n'
36 'http://starship.python.net/crew/mhammond/win32/Downloads.html')
35 'http://starship.python.net/crew/mhammond/win32/Downloads.html')
37
36
38 try:
37 try:
39 import readline
38 import readline
40 except ImportError:
39 except ImportError:
41 print ('To take full advantage of IPython, you need readline from:\n'
40 print ('To take full advantage of IPython, you need readline from:\n'
42 'http://sourceforge.net/projects/uncpythontools')
41 'http://sourceforge.net/projects/uncpythontools')
43
42
44 # Create IPython entry ...
43 # Create IPython entry ...
45 if not os.path.isdir(ip_dir):
44 if not os.path.isdir(ip_dir):
46 os.mkdir(ip_dir)
45 os.mkdir(ip_dir)
47 directory_created(ip_dir)
46 directory_created(ip_dir)
48
47
49 # Create program shortcuts ...
48 # Create program shortcuts ...
50 f = ip_dir + r'\IPython.lnk'
49 f = ip_dir + r'\IPython.lnk'
51 a = prefix + r'\scripts\ipython'
50 a = prefix + r'\scripts\ipython'
52 create_shortcut_safe(python,'IPython',f,a)
51 mkshortcut(python,'IPython',f,a)
53
52
54 f = ip_dir + r'\pysh.lnk'
53 f = ip_dir + r'\pysh.lnk'
55 a = prefix + r'\scripts\ipython -p pysh'
54 a = prefix + r'\scripts\ipython -p sh'
56 create_shortcut_safe(python,'pysh',f,a)
55 mkshortcut(python,'IPython command prompt mode',f,a)
57
56
58 # Create documentation shortcuts ...
57 # Create documentation shortcuts ...
59 t = prefix + r'\share\doc\ipython-%s\manual.pdf' % version
58 t = prefix + r'\share\doc\ipython-%s\manual.pdf' % version
60 f = ip_dir + r'\Manual in PDF.lnk'
59 f = ip_dir + r'\Manual in PDF.lnk'
61 create_shortcut_safe(t,r'IPython Manual - PDF-Format',f)
60 mkshortcut(t,r'IPython Manual - PDF-Format',f)
62
61
63 t = prefix + r'\share\doc\ipython-%s\manual\manual.html' % version
62 t = prefix + r'\share\doc\ipython-%s\manual\manual.html' % version
64 f = ip_dir + r'\Manual in HTML.lnk'
63 f = ip_dir + r'\Manual in HTML.lnk'
65 create_shortcut_safe(t,'IPython Manual - HTML-Format',f)
64 mkshortcut(t,'IPython Manual - HTML-Format',f)
65
66 # make ipython.py
67 shutil.copy(prefix + r'\scripts\ipython', prefix + r'\scripts\ipython.py')
66
68
67 def remove():
69 def remove():
68 """Routine to be run by the win32 installer with the -remove switch."""
70 """Routine to be run by the win32 installer with the -remove switch."""
69 pass
71 pass
70
72
71 # main()
73 # main()
72 if len(sys.argv) > 1:
74 if len(sys.argv) > 1:
73 if sys.argv[1] == '-install':
75 if sys.argv[1] == '-install':
74 install()
76 install()
75 elif sys.argv[1] == '-remove':
77 elif sys.argv[1] == '-remove':
76 remove()
78 remove()
77 else:
79 else:
78 print "Script was called with option %s" % sys.argv[1]
80 print "Script was called with option %s" % sys.argv[1]
1 NO CONTENT: modified file
NO CONTENT: modified file
1 NO CONTENT: modified file
NO CONTENT: modified file
@@ -1,28 +1,28 b''
1 import os,sys,shutil
1 import os,sys,shutil
2
2
3 repo = "http://ipython.scipy.org/svn/ipython/ipython/trunk"
3 repo = "http://ipython.scipy.org/svn/ipython/ipython/branches/0.7.3"
4 basename = 'ipython'
4 basename = 'ipython'
5 workdir = './mkdist'
5 workdir = './mkdist'
6
6
7 workdir = os.path.abspath(workdir)
7 workdir = os.path.abspath(workdir)
8
8
9 print "working at",workdir
9 print "working at",workdir
10 def oscmd(c):
10 def oscmd(c):
11 print ">",c
11 print ">",c
12 s = os.system(c)
12 s = os.system(c)
13 if s:
13 if s:
14 print "Error",s
14 print "Error",s
15 sys.exit(s)
15 sys.exit(s)
16
16
17
17
18 assert not os.path.isdir(workdir)
18 assert not os.path.isdir(workdir)
19 os.mkdir(workdir)
19 os.mkdir(workdir)
20 os.chdir(workdir)
20 os.chdir(workdir)
21
21
22 oscmd('svn export %s %s' % (repo,basename))
22 oscmd('svn export %s %s' % (repo,basename))
23 ver = os.popen('svnversion ../..').read().strip()
23 ver = os.popen('svnversion ../..').read().strip()
24 tarname = '%s.r%s.tgz' % (basename, ver)
24 tarname = '%s.r%s.tgz' % (basename, ver)
25 oscmd('tar czvf ../%s %s' % (tarname, basename))
25 oscmd('tar czvf ../%s %s' % (tarname, basename))
26 print "Produced: ",os.path.abspath('../' + tarname)
26 print "Produced: ",os.path.abspath('../' + tarname)
27 os.chdir('/')
27 os.chdir('/')
28 shutil.rmtree(workdir)
28 shutil.rmtree(workdir)
1 NO CONTENT: modified file
NO CONTENT: modified file
General Comments 0
You need to be logged in to leave comments. Login now