##// END OF EJS Templates
-Added a unit testing framework...
vivainio -
Show More
@@ -0,0 +1,31 b''
1 """ Run ipython unit tests
2
3 This should be launched from inside ipython by "%run runtests.py"
4 or through ipython command line "ipython runtests.py".
5
6 """
7
8 from path import path
9 import pprint,os
10 import IPython.ipapi
11 ip = IPython.ipapi.get()
12
13 def main():
14 all = path('.').files('test_*py')
15 results = {}
16 res_exc = [None]
17 def exchook(self,*e):
18 res_exc[0] = [e]
19 ip.IP.set_custom_exc((Exception,), exchook)
20 startdir = os.getcwd()
21 for test in all:
22 print test
23 res_exc[0] = 'ok'
24 os.chdir(startdir)
25 ip.runlines(test.text())
26 results[str(test)] = res_exc[0]
27
28 os.chdir(startdir)
29 pprint.pprint(results)
30
31 main() No newline at end of file
@@ -0,0 +1,6 b''
1 import os
2 cd /
3 assert os.getcwd() == '/'
4 %cd /tmp
5
6 assert os.getcwd() == '/tmp'
@@ -0,0 +1,3 b''
1 # this will fail w/ assertionerror
2 cd /
3 assert os.getcwd() == '/does/not/exist'
@@ -1,184 +1,197 b''
1 ''' IPython customization API
1 ''' IPython customization API
2
2
3 Your one-stop module for configuring & extending ipython
3 Your one-stop module for configuring & extending ipython
4
4
5 The API will probably break when ipython 1.0 is released, but so
5 The API will probably break when ipython 1.0 is released, but so
6 will the other configuration method (rc files).
6 will the other configuration method (rc files).
7
7
8 All names prefixed by underscores are for internal use, not part
8 All names prefixed by underscores are for internal use, not part
9 of the public api.
9 of the public api.
10
10
11 Below is an example that you can just put to a module and import from ipython.
11 Below is an example that you can just put to a module and import from ipython.
12
12
13 A good practice is to install the config script below as e.g.
13 A good practice is to install the config script below as e.g.
14
14
15 ~/.ipython/my_private_conf.py
15 ~/.ipython/my_private_conf.py
16
16
17 And do
17 And do
18
18
19 import_mod my_private_conf
19 import_mod my_private_conf
20
20
21 in ~/.ipython/ipythonrc
21 in ~/.ipython/ipythonrc
22
22
23 That way the module is imported at startup and you can have all your
23 That way the module is imported at startup and you can have all your
24 personal configuration (as opposed to boilerplate ipythonrc-PROFILENAME
24 personal configuration (as opposed to boilerplate ipythonrc-PROFILENAME
25 stuff) in there.
25 stuff) in there.
26
26
27 -----------------------------------------------
27 -----------------------------------------------
28 import IPython.ipapi as ip
28 import IPython.ipapi as ip
29
29
30 def ankka_f(self, arg):
30 def ankka_f(self, arg):
31 print "Ankka",self,"says uppercase:",arg.upper()
31 print "Ankka",self,"says uppercase:",arg.upper()
32
32
33 ip.expose_magic("ankka",ankka_f)
33 ip.expose_magic("ankka",ankka_f)
34
34
35 ip.magic('alias sayhi echo "Testing, hi ok"')
35 ip.magic('alias sayhi echo "Testing, hi ok"')
36 ip.magic('alias helloworld echo "Hello world"')
36 ip.magic('alias helloworld echo "Hello world"')
37 ip.system('pwd')
37 ip.system('pwd')
38
38
39 ip.ex('import re')
39 ip.ex('import re')
40 ip.ex("""
40 ip.ex("""
41 def funcci(a,b):
41 def funcci(a,b):
42 print a+b
42 print a+b
43 print funcci(3,4)
43 print funcci(3,4)
44 """)
44 """)
45 ip.ex("funcci(348,9)")
45 ip.ex("funcci(348,9)")
46
46
47 def jed_editor(self,filename, linenum=None):
47 def jed_editor(self,filename, linenum=None):
48 print "Calling my own editor, jed ... via hook!"
48 print "Calling my own editor, jed ... via hook!"
49 import os
49 import os
50 if linenum is None: linenum = 0
50 if linenum is None: linenum = 0
51 os.system('jed +%d %s' % (linenum, filename))
51 os.system('jed +%d %s' % (linenum, filename))
52 print "exiting jed"
52 print "exiting jed"
53
53
54 ip.set_hook('editor',jed_editor)
54 ip.set_hook('editor',jed_editor)
55
55
56 o = ip.options()
56 o = ip.options()
57 o.autocall = 2 # FULL autocall mode
57 o.autocall = 2 # FULL autocall mode
58
58
59 print "done!"
59 print "done!"
60
60
61 '''
61 '''
62
62
63
63
64 class TryNext(Exception):
64 class TryNext(Exception):
65 """ Try next hook exception.
65 """ Try next hook exception.
66
66
67 Raise this in your hook function to indicate that the next
67 Raise this in your hook function to indicate that the next
68 hook handler should be used to handle the operation.
68 hook handler should be used to handle the operation.
69 """
69 """
70
70
71
71
72 # contains the most recently instantiated IPApi
72 # contains the most recently instantiated IPApi
73 _recent = None
73 _recent = None
74
74
75 def get():
75 def get():
76 """ Get an IPApi object, or None if not running under ipython
76 """ Get an IPApi object, or None if not running under ipython
77
77
78 Running this should be the first thing you do when writing
78 Running this should be the first thing you do when writing
79 extensions that can be imported as normal modules. You can then
79 extensions that can be imported as normal modules. You can then
80 direct all the configuration operations against the returned
80 direct all the configuration operations against the returned
81 object.
81 object.
82
82
83 """
83 """
84
84
85 return _recent
85 return _recent
86
86
87
87
88
88
89 class IPApi:
89 class IPApi:
90 """ The actual API class for configuring IPython
90 """ The actual API class for configuring IPython
91
91
92 You should do all of the IPython configuration by getting
92 You should do all of the IPython configuration by getting
93 an IPApi object with IPython.ipapi.get() and using the provided
93 an IPApi object with IPython.ipapi.get() and using the provided
94 methods.
94 methods.
95
95
96 """
96 """
97 def __init__(self,ip):
97 def __init__(self,ip):
98
98
99 self.magic = ip.ipmagic
99 self.magic = ip.ipmagic
100
100
101 self.system = ip.ipsystem
101 self.system = ip.ipsystem
102
102
103 self.set_hook = ip.set_hook
103 self.set_hook = ip.set_hook
104
104
105 self.set_custom_exc = ip.set_custom_exc
106
105 self.IP = ip
107 self.IP = ip
106 global _recent
108 global _recent
107 _recent = self
109 _recent = self
108
110
109
111
110
112
111 def options(self):
113 def options(self):
112 """ All configurable variables """
114 """ All configurable variables """
113 return self.IP.rc
115 return self.IP.rc
114
116
115 def user_ns(self):
117 def user_ns(self):
116 return self.IP.user_ns
118 return self.IP.user_ns
117
119
118 def expose_magic(self,magicname, func):
120 def expose_magic(self,magicname, func):
119 ''' Expose own function as magic function for ipython
121 ''' Expose own function as magic function for ipython
120
122
121 def foo_impl(self,parameter_s=''):
123 def foo_impl(self,parameter_s=''):
122 """My very own magic!. (Use docstrings, IPython reads them)."""
124 """My very own magic!. (Use docstrings, IPython reads them)."""
123 print 'Magic function. Passed parameter is between < >: <'+parameter_s+'>'
125 print 'Magic function. Passed parameter is between < >: <'+parameter_s+'>'
124 print 'The self object is:',self
126 print 'The self object is:',self
125
127
126 ipapi.expose_magic("foo",foo_impl)
128 ipapi.expose_magic("foo",foo_impl)
127 '''
129 '''
128
130
129 import new
131 import new
130 im = new.instancemethod(func,self.IP, self.IP.__class__)
132 im = new.instancemethod(func,self.IP, self.IP.__class__)
131 setattr(self.IP, "magic_" + magicname, im)
133 setattr(self.IP, "magic_" + magicname, im)
132
134
133
135
134 def ex(self,cmd):
136 def ex(self,cmd):
135 """ Execute a normal python statement in user namespace """
137 """ Execute a normal python statement in user namespace """
136 exec cmd in self.user_ns()
138 exec cmd in self.user_ns()
137
139
138 def ev(self,expr):
140 def ev(self,expr):
139 """ Evaluate python expression expr in user namespace
141 """ Evaluate python expression expr in user namespace
140
142
141 Returns the result of evaluation"""
143 Returns the result of evaluation"""
142 return eval(expr,self.user_ns())
144 return eval(expr,self.user_ns())
143
145
144 def meta(self):
146 def meta(self):
145 """ Get a session-specific data store
147 """ Get a session-specific data store
146
148
147 Object returned by this method can be used to store
149 Object returned by this method can be used to store
148 data that should persist through the ipython session.
150 data that should persist through the ipython session.
149 """
151 """
150 return self.IP.meta
152 return self.IP.meta
151
153
152 def getdb(self):
154 def getdb(self):
153 """ Return a handle to persistent dict-like database
155 """ Return a handle to persistent dict-like database
154
156
155 Return a PickleShareDB object.
157 Return a PickleShareDB object.
156 """
158 """
157 return self.IP.db
159 return self.IP.db
160 def runlines(self,lines):
161 """ Run the specified lines in interpreter, honoring ipython directives.
162
163 This allows %magic and !shell escape notations.
158
164
165 Takes either all lines in one string or list of lines.
166 """
167 if isinstance(lines,basestring):
168 self.IP.runlines(lines)
169 else:
170 self.IP.runlines('\n'.join(lines))
171
159
172
160 def launch_new_instance(user_ns = None):
173 def launch_new_instance(user_ns = None):
161 """ Create and start a new ipython instance.
174 """ Create and start a new ipython instance.
162
175
163 This can be called even without having an already initialized
176 This can be called even without having an already initialized
164 ipython session running.
177 ipython session running.
165
178
166 This is also used as the egg entry point for the 'ipython' script.
179 This is also used as the egg entry point for the 'ipython' script.
167
180
168 """
181 """
169 ses = create_session(user_ns)
182 ses = create_session(user_ns)
170 ses.mainloop()
183 ses.mainloop()
171
184
172
185
173 def create_session(user_ns = None):
186 def create_session(user_ns = None):
174 """ Creates, but does not launch an IPython session.
187 """ Creates, but does not launch an IPython session.
175
188
176 Later on you can call obj.mainloop() on the returned object.
189 Later on you can call obj.mainloop() on the returned object.
177
190
178 This should *not* be run when a session exists already.
191 This should *not* be run when a session exists already.
179
192
180 """
193 """
181 if user_ns is not None:
194 if user_ns is not None:
182 user_ns["__name__"] = user_ns.get("__name__",'ipy_session')
195 user_ns["__name__"] = user_ns.get("__name__",'ipy_session')
183 import IPython
196 import IPython
184 return IPython.Shell.start(user_ns = user_ns) No newline at end of file
197 return IPython.Shell.start(user_ns = user_ns)
@@ -1,5183 +1,5190 b''
1 2006-02-09 Ville Vainio <vivainio@gmail.com>
2
3 * test/*: Added a unit testing framework (finally).
4 '%run runtests.py' to run test_*.
5
6 * ipapi.py: Exposed runlines and set_custom_exc
7
1 2006-02-07 Ville Vainio <vivainio@gmail.com>
8 2006-02-07 Ville Vainio <vivainio@gmail.com>
2
9
3 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
10 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
4 instead use "f(1 2)" as before.
11 instead use "f(1 2)" as before.
5
12
6 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
13 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
7
14
8 * IPython/demo.py (IPythonDemo): Add new classes to the demo
15 * IPython/demo.py (IPythonDemo): Add new classes to the demo
9 facilities, for demos processed by the IPython input filter
16 facilities, for demos processed by the IPython input filter
10 (IPythonDemo), and for running a script one-line-at-a-time as a
17 (IPythonDemo), and for running a script one-line-at-a-time as a
11 demo, both for pure Python (LineDemo) and for IPython-processed
18 demo, both for pure Python (LineDemo) and for IPython-processed
12 input (IPythonLineDemo). After a request by Dave Kohel, from the
19 input (IPythonLineDemo). After a request by Dave Kohel, from the
13 SAGE team.
20 SAGE team.
14 (Demo.edit): added and edit() method to the demo objects, to edit
21 (Demo.edit): added and edit() method to the demo objects, to edit
15 the in-memory copy of the last executed block.
22 the in-memory copy of the last executed block.
16
23
17 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
24 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
18 processing to %edit, %macro and %save. These commands can now be
25 processing to %edit, %macro and %save. These commands can now be
19 invoked on the unprocessed input as it was typed by the user
26 invoked on the unprocessed input as it was typed by the user
20 (without any prefilters applied). After requests by the SAGE team
27 (without any prefilters applied). After requests by the SAGE team
21 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
28 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
22
29
23 2006-02-01 Ville Vainio <vivainio@gmail.com>
30 2006-02-01 Ville Vainio <vivainio@gmail.com>
24
31
25 * setup.py, eggsetup.py: easy_install ipython==dev works
32 * setup.py, eggsetup.py: easy_install ipython==dev works
26 correctly now (on Linux)
33 correctly now (on Linux)
27
34
28 * ipy_user_conf,ipmaker: user config changes, removed spurious
35 * ipy_user_conf,ipmaker: user config changes, removed spurious
29 warnings
36 warnings
30
37
31 * iplib: if rc.banner is string, use it as is.
38 * iplib: if rc.banner is string, use it as is.
32
39
33 * Magic: %pycat accepts a string argument and pages it's contents.
40 * Magic: %pycat accepts a string argument and pages it's contents.
34
41
35
42
36 2006-01-30 Ville Vainio <vivainio@gmail.com>
43 2006-01-30 Ville Vainio <vivainio@gmail.com>
37
44
38 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
45 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
39 Now %store and bookmarks work through PickleShare, meaning that
46 Now %store and bookmarks work through PickleShare, meaning that
40 concurrent access is possible and all ipython sessions see the
47 concurrent access is possible and all ipython sessions see the
41 same database situation all the time, instead of snapshot of
48 same database situation all the time, instead of snapshot of
42 the situation when the session was started. Hence, %bookmark
49 the situation when the session was started. Hence, %bookmark
43 results are immediately accessible from othes sessions. The database
50 results are immediately accessible from othes sessions. The database
44 is also available for use by user extensions. See:
51 is also available for use by user extensions. See:
45 http://www.python.org/pypi/pickleshare
52 http://www.python.org/pypi/pickleshare
46
53
47 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
54 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
48
55
49 * aliases can now be %store'd
56 * aliases can now be %store'd
50
57
51 * path.py move to Extensions so that pickleshare does not need
58 * path.py move to Extensions so that pickleshare does not need
52 IPython-specific import. Extensions added to pythonpath right
59 IPython-specific import. Extensions added to pythonpath right
53 at __init__.
60 at __init__.
54
61
55 * iplib.py: ipalias deprecated/redundant; aliases are converted and
62 * iplib.py: ipalias deprecated/redundant; aliases are converted and
56 called with _ip.system and the pre-transformed command string.
63 called with _ip.system and the pre-transformed command string.
57
64
58 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
65 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
59
66
60 * IPython/iplib.py (interact): Fix that we were not catching
67 * IPython/iplib.py (interact): Fix that we were not catching
61 KeyboardInterrupt exceptions properly. I'm not quite sure why the
68 KeyboardInterrupt exceptions properly. I'm not quite sure why the
62 logic here had to change, but it's fixed now.
69 logic here had to change, but it's fixed now.
63
70
64 2006-01-29 Ville Vainio <vivainio@gmail.com>
71 2006-01-29 Ville Vainio <vivainio@gmail.com>
65
72
66 * iplib.py: Try to import pyreadline on Windows.
73 * iplib.py: Try to import pyreadline on Windows.
67
74
68 2006-01-27 Ville Vainio <vivainio@gmail.com>
75 2006-01-27 Ville Vainio <vivainio@gmail.com>
69
76
70 * iplib.py: Expose ipapi as _ip in builtin namespace.
77 * iplib.py: Expose ipapi as _ip in builtin namespace.
71 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
78 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
72 and ip_set_hook (-> _ip.set_hook) redundant. % and !
79 and ip_set_hook (-> _ip.set_hook) redundant. % and !
73 syntax now produce _ip.* variant of the commands.
80 syntax now produce _ip.* variant of the commands.
74
81
75 * "_ip.options().autoedit_syntax = 2" automatically throws
82 * "_ip.options().autoedit_syntax = 2" automatically throws
76 user to editor for syntax error correction without prompting.
83 user to editor for syntax error correction without prompting.
77
84
78 2006-01-27 Ville Vainio <vivainio@gmail.com>
85 2006-01-27 Ville Vainio <vivainio@gmail.com>
79
86
80 * ipmaker.py: Give "realistic" sys.argv for scripts (without
87 * ipmaker.py: Give "realistic" sys.argv for scripts (without
81 'ipython' at argv[0]) executed through command line.
88 'ipython' at argv[0]) executed through command line.
82 NOTE: this DEPRECATES calling ipython with multiple scripts
89 NOTE: this DEPRECATES calling ipython with multiple scripts
83 ("ipython a.py b.py c.py")
90 ("ipython a.py b.py c.py")
84
91
85 * iplib.py, hooks.py: Added configurable input prefilter,
92 * iplib.py, hooks.py: Added configurable input prefilter,
86 named 'input_prefilter'. See ext_rescapture.py for example
93 named 'input_prefilter'. See ext_rescapture.py for example
87 usage.
94 usage.
88
95
89 * ext_rescapture.py, Magic.py: Better system command output capture
96 * ext_rescapture.py, Magic.py: Better system command output capture
90 through 'var = !ls' (deprecates user-visible %sc). Same notation
97 through 'var = !ls' (deprecates user-visible %sc). Same notation
91 applies for magics, 'var = %alias' assigns alias list to var.
98 applies for magics, 'var = %alias' assigns alias list to var.
92
99
93 * ipapi.py: added meta() for accessing extension-usable data store.
100 * ipapi.py: added meta() for accessing extension-usable data store.
94
101
95 * iplib.py: added InteractiveShell.getapi(). New magics should be
102 * iplib.py: added InteractiveShell.getapi(). New magics should be
96 written doing self.getapi() instead of using the shell directly.
103 written doing self.getapi() instead of using the shell directly.
97
104
98 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
105 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
99 %store foo >> ~/myfoo.txt to store variables to files (in clean
106 %store foo >> ~/myfoo.txt to store variables to files (in clean
100 textual form, not a restorable pickle).
107 textual form, not a restorable pickle).
101
108
102 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
109 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
103
110
104 * usage.py, Magic.py: added %quickref
111 * usage.py, Magic.py: added %quickref
105
112
106 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
113 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
107
114
108 * GetoptErrors when invoking magics etc. with wrong args
115 * GetoptErrors when invoking magics etc. with wrong args
109 are now more helpful:
116 are now more helpful:
110 GetoptError: option -l not recognized (allowed: "qb" )
117 GetoptError: option -l not recognized (allowed: "qb" )
111
118
112 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
119 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
113
120
114 * IPython/demo.py (Demo.show): Flush stdout after each block, so
121 * IPython/demo.py (Demo.show): Flush stdout after each block, so
115 computationally intensive blocks don't appear to stall the demo.
122 computationally intensive blocks don't appear to stall the demo.
116
123
117 2006-01-24 Ville Vainio <vivainio@gmail.com>
124 2006-01-24 Ville Vainio <vivainio@gmail.com>
118
125
119 * iplib.py, hooks.py: 'result_display' hook can return a non-None
126 * iplib.py, hooks.py: 'result_display' hook can return a non-None
120 value to manipulate resulting history entry.
127 value to manipulate resulting history entry.
121
128
122 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
129 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
123 to instance methods of IPApi class, to make extending an embedded
130 to instance methods of IPApi class, to make extending an embedded
124 IPython feasible. See ext_rehashdir.py for example usage.
131 IPython feasible. See ext_rehashdir.py for example usage.
125
132
126 * Merged 1071-1076 from banches/0.7.1
133 * Merged 1071-1076 from banches/0.7.1
127
134
128
135
129 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
136 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
130
137
131 * tools/release (daystamp): Fix build tools to use the new
138 * tools/release (daystamp): Fix build tools to use the new
132 eggsetup.py script to build lightweight eggs.
139 eggsetup.py script to build lightweight eggs.
133
140
134 * Applied changesets 1062 and 1064 before 0.7.1 release.
141 * Applied changesets 1062 and 1064 before 0.7.1 release.
135
142
136 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
143 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
137 see the raw input history (without conversions like %ls ->
144 see the raw input history (without conversions like %ls ->
138 ipmagic("ls")). After a request from W. Stein, SAGE
145 ipmagic("ls")). After a request from W. Stein, SAGE
139 (http://modular.ucsd.edu/sage) developer. This information is
146 (http://modular.ucsd.edu/sage) developer. This information is
140 stored in the input_hist_raw attribute of the IPython instance, so
147 stored in the input_hist_raw attribute of the IPython instance, so
141 developers can access it if needed (it's an InputList instance).
148 developers can access it if needed (it's an InputList instance).
142
149
143 * Versionstring = 0.7.2.svn
150 * Versionstring = 0.7.2.svn
144
151
145 * eggsetup.py: A separate script for constructing eggs, creates
152 * eggsetup.py: A separate script for constructing eggs, creates
146 proper launch scripts even on Windows (an .exe file in
153 proper launch scripts even on Windows (an .exe file in
147 \python24\scripts).
154 \python24\scripts).
148
155
149 * ipapi.py: launch_new_instance, launch entry point needed for the
156 * ipapi.py: launch_new_instance, launch entry point needed for the
150 egg.
157 egg.
151
158
152 2006-01-23 Ville Vainio <vivainio@gmail.com>
159 2006-01-23 Ville Vainio <vivainio@gmail.com>
153
160
154 * Added %cpaste magic for pasting python code
161 * Added %cpaste magic for pasting python code
155
162
156 2006-01-22 Ville Vainio <vivainio@gmail.com>
163 2006-01-22 Ville Vainio <vivainio@gmail.com>
157
164
158 * Merge from branches/0.7.1 into trunk, revs 1052-1057
165 * Merge from branches/0.7.1 into trunk, revs 1052-1057
159
166
160 * Versionstring = 0.7.2.svn
167 * Versionstring = 0.7.2.svn
161
168
162 * eggsetup.py: A separate script for constructing eggs, creates
169 * eggsetup.py: A separate script for constructing eggs, creates
163 proper launch scripts even on Windows (an .exe file in
170 proper launch scripts even on Windows (an .exe file in
164 \python24\scripts).
171 \python24\scripts).
165
172
166 * ipapi.py: launch_new_instance, launch entry point needed for the
173 * ipapi.py: launch_new_instance, launch entry point needed for the
167 egg.
174 egg.
168
175
169 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
176 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
170
177
171 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
178 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
172 %pfile foo would print the file for foo even if it was a binary.
179 %pfile foo would print the file for foo even if it was a binary.
173 Now, extensions '.so' and '.dll' are skipped.
180 Now, extensions '.so' and '.dll' are skipped.
174
181
175 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
182 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
176 bug, where macros would fail in all threaded modes. I'm not 100%
183 bug, where macros would fail in all threaded modes. I'm not 100%
177 sure, so I'm going to put out an rc instead of making a release
184 sure, so I'm going to put out an rc instead of making a release
178 today, and wait for feedback for at least a few days.
185 today, and wait for feedback for at least a few days.
179
186
180 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
187 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
181 it...) the handling of pasting external code with autoindent on.
188 it...) the handling of pasting external code with autoindent on.
182 To get out of a multiline input, the rule will appear for most
189 To get out of a multiline input, the rule will appear for most
183 users unchanged: two blank lines or change the indent level
190 users unchanged: two blank lines or change the indent level
184 proposed by IPython. But there is a twist now: you can
191 proposed by IPython. But there is a twist now: you can
185 add/subtract only *one or two spaces*. If you add/subtract three
192 add/subtract only *one or two spaces*. If you add/subtract three
186 or more (unless you completely delete the line), IPython will
193 or more (unless you completely delete the line), IPython will
187 accept that line, and you'll need to enter a second one of pure
194 accept that line, and you'll need to enter a second one of pure
188 whitespace. I know it sounds complicated, but I can't find a
195 whitespace. I know it sounds complicated, but I can't find a
189 different solution that covers all the cases, with the right
196 different solution that covers all the cases, with the right
190 heuristics. Hopefully in actual use, nobody will really notice
197 heuristics. Hopefully in actual use, nobody will really notice
191 all these strange rules and things will 'just work'.
198 all these strange rules and things will 'just work'.
192
199
193 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
200 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
194
201
195 * IPython/iplib.py (interact): catch exceptions which can be
202 * IPython/iplib.py (interact): catch exceptions which can be
196 triggered asynchronously by signal handlers. Thanks to an
203 triggered asynchronously by signal handlers. Thanks to an
197 automatic crash report, submitted by Colin Kingsley
204 automatic crash report, submitted by Colin Kingsley
198 <tercel-AT-gentoo.org>.
205 <tercel-AT-gentoo.org>.
199
206
200 2006-01-20 Ville Vainio <vivainio@gmail.com>
207 2006-01-20 Ville Vainio <vivainio@gmail.com>
201
208
202 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
209 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
203 (%rehashdir, very useful, try it out) of how to extend ipython
210 (%rehashdir, very useful, try it out) of how to extend ipython
204 with new magics. Also added Extensions dir to pythonpath to make
211 with new magics. Also added Extensions dir to pythonpath to make
205 importing extensions easy.
212 importing extensions easy.
206
213
207 * %store now complains when trying to store interactively declared
214 * %store now complains when trying to store interactively declared
208 classes / instances of those classes.
215 classes / instances of those classes.
209
216
210 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
217 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
211 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
218 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
212 if they exist, and ipy_user_conf.py with some defaults is created for
219 if they exist, and ipy_user_conf.py with some defaults is created for
213 the user.
220 the user.
214
221
215 * Startup rehashing done by the config file, not InterpreterExec.
222 * Startup rehashing done by the config file, not InterpreterExec.
216 This means system commands are available even without selecting the
223 This means system commands are available even without selecting the
217 pysh profile. It's the sensible default after all.
224 pysh profile. It's the sensible default after all.
218
225
219 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
226 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
220
227
221 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
228 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
222 multiline code with autoindent on working. But I am really not
229 multiline code with autoindent on working. But I am really not
223 sure, so this needs more testing. Will commit a debug-enabled
230 sure, so this needs more testing. Will commit a debug-enabled
224 version for now, while I test it some more, so that Ville and
231 version for now, while I test it some more, so that Ville and
225 others may also catch any problems. Also made
232 others may also catch any problems. Also made
226 self.indent_current_str() a method, to ensure that there's no
233 self.indent_current_str() a method, to ensure that there's no
227 chance of the indent space count and the corresponding string
234 chance of the indent space count and the corresponding string
228 falling out of sync. All code needing the string should just call
235 falling out of sync. All code needing the string should just call
229 the method.
236 the method.
230
237
231 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
238 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
232
239
233 * IPython/Magic.py (magic_edit): fix check for when users don't
240 * IPython/Magic.py (magic_edit): fix check for when users don't
234 save their output files, the try/except was in the wrong section.
241 save their output files, the try/except was in the wrong section.
235
242
236 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
243 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
237
244
238 * IPython/Magic.py (magic_run): fix __file__ global missing from
245 * IPython/Magic.py (magic_run): fix __file__ global missing from
239 script's namespace when executed via %run. After a report by
246 script's namespace when executed via %run. After a report by
240 Vivian.
247 Vivian.
241
248
242 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
249 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
243 when using python 2.4. The parent constructor changed in 2.4, and
250 when using python 2.4. The parent constructor changed in 2.4, and
244 we need to track it directly (we can't call it, as it messes up
251 we need to track it directly (we can't call it, as it messes up
245 readline and tab-completion inside our pdb would stop working).
252 readline and tab-completion inside our pdb would stop working).
246 After a bug report by R. Bernstein <rocky-AT-panix.com>.
253 After a bug report by R. Bernstein <rocky-AT-panix.com>.
247
254
248 2006-01-16 Ville Vainio <vivainio@gmail.com>
255 2006-01-16 Ville Vainio <vivainio@gmail.com>
249
256
250 * Ipython/magic.py:Reverted back to old %edit functionality
257 * Ipython/magic.py:Reverted back to old %edit functionality
251 that returns file contents on exit.
258 that returns file contents on exit.
252
259
253 * IPython/path.py: Added Jason Orendorff's "path" module to
260 * IPython/path.py: Added Jason Orendorff's "path" module to
254 IPython tree, http://www.jorendorff.com/articles/python/path/.
261 IPython tree, http://www.jorendorff.com/articles/python/path/.
255 You can get path objects conveniently through %sc, and !!, e.g.:
262 You can get path objects conveniently through %sc, and !!, e.g.:
256 sc files=ls
263 sc files=ls
257 for p in files.paths: # or files.p
264 for p in files.paths: # or files.p
258 print p,p.mtime
265 print p,p.mtime
259
266
260 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
267 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
261 now work again without considering the exclusion regexp -
268 now work again without considering the exclusion regexp -
262 hence, things like ',foo my/path' turn to 'foo("my/path")'
269 hence, things like ',foo my/path' turn to 'foo("my/path")'
263 instead of syntax error.
270 instead of syntax error.
264
271
265
272
266 2006-01-14 Ville Vainio <vivainio@gmail.com>
273 2006-01-14 Ville Vainio <vivainio@gmail.com>
267
274
268 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
275 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
269 ipapi decorators for python 2.4 users, options() provides access to rc
276 ipapi decorators for python 2.4 users, options() provides access to rc
270 data.
277 data.
271
278
272 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
279 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
273 as path separators (even on Linux ;-). Space character after
280 as path separators (even on Linux ;-). Space character after
274 backslash (as yielded by tab completer) is still space;
281 backslash (as yielded by tab completer) is still space;
275 "%cd long\ name" works as expected.
282 "%cd long\ name" works as expected.
276
283
277 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
284 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
278 as "chain of command", with priority. API stays the same,
285 as "chain of command", with priority. API stays the same,
279 TryNext exception raised by a hook function signals that
286 TryNext exception raised by a hook function signals that
280 current hook failed and next hook should try handling it, as
287 current hook failed and next hook should try handling it, as
281 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
288 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
282 requested configurable display hook, which is now implemented.
289 requested configurable display hook, which is now implemented.
283
290
284 2006-01-13 Ville Vainio <vivainio@gmail.com>
291 2006-01-13 Ville Vainio <vivainio@gmail.com>
285
292
286 * IPython/platutils*.py: platform specific utility functions,
293 * IPython/platutils*.py: platform specific utility functions,
287 so far only set_term_title is implemented (change terminal
294 so far only set_term_title is implemented (change terminal
288 label in windowing systems). %cd now changes the title to
295 label in windowing systems). %cd now changes the title to
289 current dir.
296 current dir.
290
297
291 * IPython/Release.py: Added myself to "authors" list,
298 * IPython/Release.py: Added myself to "authors" list,
292 had to create new files.
299 had to create new files.
293
300
294 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
301 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
295 shell escape; not a known bug but had potential to be one in the
302 shell escape; not a known bug but had potential to be one in the
296 future.
303 future.
297
304
298 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
305 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
299 extension API for IPython! See the module for usage example. Fix
306 extension API for IPython! See the module for usage example. Fix
300 OInspect for docstring-less magic functions.
307 OInspect for docstring-less magic functions.
301
308
302
309
303 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
310 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
304
311
305 * IPython/iplib.py (raw_input): temporarily deactivate all
312 * IPython/iplib.py (raw_input): temporarily deactivate all
306 attempts at allowing pasting of code with autoindent on. It
313 attempts at allowing pasting of code with autoindent on. It
307 introduced bugs (reported by Prabhu) and I can't seem to find a
314 introduced bugs (reported by Prabhu) and I can't seem to find a
308 robust combination which works in all cases. Will have to revisit
315 robust combination which works in all cases. Will have to revisit
309 later.
316 later.
310
317
311 * IPython/genutils.py: remove isspace() function. We've dropped
318 * IPython/genutils.py: remove isspace() function. We've dropped
312 2.2 compatibility, so it's OK to use the string method.
319 2.2 compatibility, so it's OK to use the string method.
313
320
314 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
321 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
315
322
316 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
323 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
317 matching what NOT to autocall on, to include all python binary
324 matching what NOT to autocall on, to include all python binary
318 operators (including things like 'and', 'or', 'is' and 'in').
325 operators (including things like 'and', 'or', 'is' and 'in').
319 Prompted by a bug report on 'foo & bar', but I realized we had
326 Prompted by a bug report on 'foo & bar', but I realized we had
320 many more potential bug cases with other operators. The regexp is
327 many more potential bug cases with other operators. The regexp is
321 self.re_exclude_auto, it's fairly commented.
328 self.re_exclude_auto, it's fairly commented.
322
329
323 2006-01-12 Ville Vainio <vivainio@gmail.com>
330 2006-01-12 Ville Vainio <vivainio@gmail.com>
324
331
325 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
332 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
326 Prettified and hardened string/backslash quoting with ipsystem(),
333 Prettified and hardened string/backslash quoting with ipsystem(),
327 ipalias() and ipmagic(). Now even \ characters are passed to
334 ipalias() and ipmagic(). Now even \ characters are passed to
328 %magics, !shell escapes and aliases exactly as they are in the
335 %magics, !shell escapes and aliases exactly as they are in the
329 ipython command line. Should improve backslash experience,
336 ipython command line. Should improve backslash experience,
330 particularly in Windows (path delimiter for some commands that
337 particularly in Windows (path delimiter for some commands that
331 won't understand '/'), but Unix benefits as well (regexps). %cd
338 won't understand '/'), but Unix benefits as well (regexps). %cd
332 magic still doesn't support backslash path delimiters, though. Also
339 magic still doesn't support backslash path delimiters, though. Also
333 deleted all pretense of supporting multiline command strings in
340 deleted all pretense of supporting multiline command strings in
334 !system or %magic commands. Thanks to Jerry McRae for suggestions.
341 !system or %magic commands. Thanks to Jerry McRae for suggestions.
335
342
336 * doc/build_doc_instructions.txt added. Documentation on how to
343 * doc/build_doc_instructions.txt added. Documentation on how to
337 use doc/update_manual.py, added yesterday. Both files contributed
344 use doc/update_manual.py, added yesterday. Both files contributed
338 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
345 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
339 doc/*.sh for deprecation at a later date.
346 doc/*.sh for deprecation at a later date.
340
347
341 * /ipython.py Added ipython.py to root directory for
348 * /ipython.py Added ipython.py to root directory for
342 zero-installation (tar xzvf ipython.tgz; cd ipython; python
349 zero-installation (tar xzvf ipython.tgz; cd ipython; python
343 ipython.py) and development convenience (no need to kee doing
350 ipython.py) and development convenience (no need to kee doing
344 "setup.py install" between changes).
351 "setup.py install" between changes).
345
352
346 * Made ! and !! shell escapes work (again) in multiline expressions:
353 * Made ! and !! shell escapes work (again) in multiline expressions:
347 if 1:
354 if 1:
348 !ls
355 !ls
349 !!ls
356 !!ls
350
357
351 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
358 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
352
359
353 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
360 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
354 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
361 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
355 module in case-insensitive installation. Was causing crashes
362 module in case-insensitive installation. Was causing crashes
356 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
363 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
357
364
358 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
365 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
359 <marienz-AT-gentoo.org>, closes
366 <marienz-AT-gentoo.org>, closes
360 http://www.scipy.net/roundup/ipython/issue51.
367 http://www.scipy.net/roundup/ipython/issue51.
361
368
362 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
369 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
363
370
364 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
371 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
365 problem of excessive CPU usage under *nix and keyboard lag under
372 problem of excessive CPU usage under *nix and keyboard lag under
366 win32.
373 win32.
367
374
368 2006-01-10 *** Released version 0.7.0
375 2006-01-10 *** Released version 0.7.0
369
376
370 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
377 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
371
378
372 * IPython/Release.py (revision): tag version number to 0.7.0,
379 * IPython/Release.py (revision): tag version number to 0.7.0,
373 ready for release.
380 ready for release.
374
381
375 * IPython/Magic.py (magic_edit): Add print statement to %edit so
382 * IPython/Magic.py (magic_edit): Add print statement to %edit so
376 it informs the user of the name of the temp. file used. This can
383 it informs the user of the name of the temp. file used. This can
377 help if you decide later to reuse that same file, so you know
384 help if you decide later to reuse that same file, so you know
378 where to copy the info from.
385 where to copy the info from.
379
386
380 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
387 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
381
388
382 * setup_bdist_egg.py: little script to build an egg. Added
389 * setup_bdist_egg.py: little script to build an egg. Added
383 support in the release tools as well.
390 support in the release tools as well.
384
391
385 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
392 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
386
393
387 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
394 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
388 version selection (new -wxversion command line and ipythonrc
395 version selection (new -wxversion command line and ipythonrc
389 parameter). Patch contributed by Arnd Baecker
396 parameter). Patch contributed by Arnd Baecker
390 <arnd.baecker-AT-web.de>.
397 <arnd.baecker-AT-web.de>.
391
398
392 * IPython/iplib.py (embed_mainloop): fix tab-completion in
399 * IPython/iplib.py (embed_mainloop): fix tab-completion in
393 embedded instances, for variables defined at the interactive
400 embedded instances, for variables defined at the interactive
394 prompt of the embedded ipython. Reported by Arnd.
401 prompt of the embedded ipython. Reported by Arnd.
395
402
396 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
403 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
397 it can be used as a (stateful) toggle, or with a direct parameter.
404 it can be used as a (stateful) toggle, or with a direct parameter.
398
405
399 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
406 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
400 could be triggered in certain cases and cause the traceback
407 could be triggered in certain cases and cause the traceback
401 printer not to work.
408 printer not to work.
402
409
403 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
410 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
404
411
405 * IPython/iplib.py (_should_recompile): Small fix, closes
412 * IPython/iplib.py (_should_recompile): Small fix, closes
406 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
413 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
407
414
408 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
415 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
409
416
410 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
417 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
411 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
418 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
412 Moad for help with tracking it down.
419 Moad for help with tracking it down.
413
420
414 * IPython/iplib.py (handle_auto): fix autocall handling for
421 * IPython/iplib.py (handle_auto): fix autocall handling for
415 objects which support BOTH __getitem__ and __call__ (so that f [x]
422 objects which support BOTH __getitem__ and __call__ (so that f [x]
416 is left alone, instead of becoming f([x]) automatically).
423 is left alone, instead of becoming f([x]) automatically).
417
424
418 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
425 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
419 Ville's patch.
426 Ville's patch.
420
427
421 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
428 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
422
429
423 * IPython/iplib.py (handle_auto): changed autocall semantics to
430 * IPython/iplib.py (handle_auto): changed autocall semantics to
424 include 'smart' mode, where the autocall transformation is NOT
431 include 'smart' mode, where the autocall transformation is NOT
425 applied if there are no arguments on the line. This allows you to
432 applied if there are no arguments on the line. This allows you to
426 just type 'foo' if foo is a callable to see its internal form,
433 just type 'foo' if foo is a callable to see its internal form,
427 instead of having it called with no arguments (typically a
434 instead of having it called with no arguments (typically a
428 mistake). The old 'full' autocall still exists: for that, you
435 mistake). The old 'full' autocall still exists: for that, you
429 need to set the 'autocall' parameter to 2 in your ipythonrc file.
436 need to set the 'autocall' parameter to 2 in your ipythonrc file.
430
437
431 * IPython/completer.py (Completer.attr_matches): add
438 * IPython/completer.py (Completer.attr_matches): add
432 tab-completion support for Enthoughts' traits. After a report by
439 tab-completion support for Enthoughts' traits. After a report by
433 Arnd and a patch by Prabhu.
440 Arnd and a patch by Prabhu.
434
441
435 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
442 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
436
443
437 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
444 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
438 Schmolck's patch to fix inspect.getinnerframes().
445 Schmolck's patch to fix inspect.getinnerframes().
439
446
440 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
447 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
441 for embedded instances, regarding handling of namespaces and items
448 for embedded instances, regarding handling of namespaces and items
442 added to the __builtin__ one. Multiple embedded instances and
449 added to the __builtin__ one. Multiple embedded instances and
443 recursive embeddings should work better now (though I'm not sure
450 recursive embeddings should work better now (though I'm not sure
444 I've got all the corner cases fixed, that code is a bit of a brain
451 I've got all the corner cases fixed, that code is a bit of a brain
445 twister).
452 twister).
446
453
447 * IPython/Magic.py (magic_edit): added support to edit in-memory
454 * IPython/Magic.py (magic_edit): added support to edit in-memory
448 macros (automatically creates the necessary temp files). %edit
455 macros (automatically creates the necessary temp files). %edit
449 also doesn't return the file contents anymore, it's just noise.
456 also doesn't return the file contents anymore, it's just noise.
450
457
451 * IPython/completer.py (Completer.attr_matches): revert change to
458 * IPython/completer.py (Completer.attr_matches): revert change to
452 complete only on attributes listed in __all__. I realized it
459 complete only on attributes listed in __all__. I realized it
453 cripples the tab-completion system as a tool for exploring the
460 cripples the tab-completion system as a tool for exploring the
454 internals of unknown libraries (it renders any non-__all__
461 internals of unknown libraries (it renders any non-__all__
455 attribute off-limits). I got bit by this when trying to see
462 attribute off-limits). I got bit by this when trying to see
456 something inside the dis module.
463 something inside the dis module.
457
464
458 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
465 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
459
466
460 * IPython/iplib.py (InteractiveShell.__init__): add .meta
467 * IPython/iplib.py (InteractiveShell.__init__): add .meta
461 namespace for users and extension writers to hold data in. This
468 namespace for users and extension writers to hold data in. This
462 follows the discussion in
469 follows the discussion in
463 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
470 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
464
471
465 * IPython/completer.py (IPCompleter.complete): small patch to help
472 * IPython/completer.py (IPCompleter.complete): small patch to help
466 tab-completion under Emacs, after a suggestion by John Barnard
473 tab-completion under Emacs, after a suggestion by John Barnard
467 <barnarj-AT-ccf.org>.
474 <barnarj-AT-ccf.org>.
468
475
469 * IPython/Magic.py (Magic.extract_input_slices): added support for
476 * IPython/Magic.py (Magic.extract_input_slices): added support for
470 the slice notation in magics to use N-M to represent numbers N...M
477 the slice notation in magics to use N-M to represent numbers N...M
471 (closed endpoints). This is used by %macro and %save.
478 (closed endpoints). This is used by %macro and %save.
472
479
473 * IPython/completer.py (Completer.attr_matches): for modules which
480 * IPython/completer.py (Completer.attr_matches): for modules which
474 define __all__, complete only on those. After a patch by Jeffrey
481 define __all__, complete only on those. After a patch by Jeffrey
475 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
482 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
476 speed up this routine.
483 speed up this routine.
477
484
478 * IPython/Logger.py (Logger.log): fix a history handling bug. I
485 * IPython/Logger.py (Logger.log): fix a history handling bug. I
479 don't know if this is the end of it, but the behavior now is
486 don't know if this is the end of it, but the behavior now is
480 certainly much more correct. Note that coupled with macros,
487 certainly much more correct. Note that coupled with macros,
481 slightly surprising (at first) behavior may occur: a macro will in
488 slightly surprising (at first) behavior may occur: a macro will in
482 general expand to multiple lines of input, so upon exiting, the
489 general expand to multiple lines of input, so upon exiting, the
483 in/out counters will both be bumped by the corresponding amount
490 in/out counters will both be bumped by the corresponding amount
484 (as if the macro's contents had been typed interactively). Typing
491 (as if the macro's contents had been typed interactively). Typing
485 %hist will reveal the intermediate (silently processed) lines.
492 %hist will reveal the intermediate (silently processed) lines.
486
493
487 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
494 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
488 pickle to fail (%run was overwriting __main__ and not restoring
495 pickle to fail (%run was overwriting __main__ and not restoring
489 it, but pickle relies on __main__ to operate).
496 it, but pickle relies on __main__ to operate).
490
497
491 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
498 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
492 using properties, but forgot to make the main InteractiveShell
499 using properties, but forgot to make the main InteractiveShell
493 class a new-style class. Properties fail silently, and
500 class a new-style class. Properties fail silently, and
494 misteriously, with old-style class (getters work, but
501 misteriously, with old-style class (getters work, but
495 setters don't do anything).
502 setters don't do anything).
496
503
497 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
504 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
498
505
499 * IPython/Magic.py (magic_history): fix history reporting bug (I
506 * IPython/Magic.py (magic_history): fix history reporting bug (I
500 know some nasties are still there, I just can't seem to find a
507 know some nasties are still there, I just can't seem to find a
501 reproducible test case to track them down; the input history is
508 reproducible test case to track them down; the input history is
502 falling out of sync...)
509 falling out of sync...)
503
510
504 * IPython/iplib.py (handle_shell_escape): fix bug where both
511 * IPython/iplib.py (handle_shell_escape): fix bug where both
505 aliases and system accesses where broken for indented code (such
512 aliases and system accesses where broken for indented code (such
506 as loops).
513 as loops).
507
514
508 * IPython/genutils.py (shell): fix small but critical bug for
515 * IPython/genutils.py (shell): fix small but critical bug for
509 win32 system access.
516 win32 system access.
510
517
511 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
518 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
512
519
513 * IPython/iplib.py (showtraceback): remove use of the
520 * IPython/iplib.py (showtraceback): remove use of the
514 sys.last_{type/value/traceback} structures, which are non
521 sys.last_{type/value/traceback} structures, which are non
515 thread-safe.
522 thread-safe.
516 (_prefilter): change control flow to ensure that we NEVER
523 (_prefilter): change control flow to ensure that we NEVER
517 introspect objects when autocall is off. This will guarantee that
524 introspect objects when autocall is off. This will guarantee that
518 having an input line of the form 'x.y', where access to attribute
525 having an input line of the form 'x.y', where access to attribute
519 'y' has side effects, doesn't trigger the side effect TWICE. It
526 'y' has side effects, doesn't trigger the side effect TWICE. It
520 is important to note that, with autocall on, these side effects
527 is important to note that, with autocall on, these side effects
521 can still happen.
528 can still happen.
522 (ipsystem): new builtin, to complete the ip{magic/alias/system}
529 (ipsystem): new builtin, to complete the ip{magic/alias/system}
523 trio. IPython offers these three kinds of special calls which are
530 trio. IPython offers these three kinds of special calls which are
524 not python code, and it's a good thing to have their call method
531 not python code, and it's a good thing to have their call method
525 be accessible as pure python functions (not just special syntax at
532 be accessible as pure python functions (not just special syntax at
526 the command line). It gives us a better internal implementation
533 the command line). It gives us a better internal implementation
527 structure, as well as exposing these for user scripting more
534 structure, as well as exposing these for user scripting more
528 cleanly.
535 cleanly.
529
536
530 * IPython/macro.py (Macro.__init__): moved macros to a standalone
537 * IPython/macro.py (Macro.__init__): moved macros to a standalone
531 file. Now that they'll be more likely to be used with the
538 file. Now that they'll be more likely to be used with the
532 persistance system (%store), I want to make sure their module path
539 persistance system (%store), I want to make sure their module path
533 doesn't change in the future, so that we don't break things for
540 doesn't change in the future, so that we don't break things for
534 users' persisted data.
541 users' persisted data.
535
542
536 * IPython/iplib.py (autoindent_update): move indentation
543 * IPython/iplib.py (autoindent_update): move indentation
537 management into the _text_ processing loop, not the keyboard
544 management into the _text_ processing loop, not the keyboard
538 interactive one. This is necessary to correctly process non-typed
545 interactive one. This is necessary to correctly process non-typed
539 multiline input (such as macros).
546 multiline input (such as macros).
540
547
541 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
548 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
542 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
549 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
543 which was producing problems in the resulting manual.
550 which was producing problems in the resulting manual.
544 (magic_whos): improve reporting of instances (show their class,
551 (magic_whos): improve reporting of instances (show their class,
545 instead of simply printing 'instance' which isn't terribly
552 instead of simply printing 'instance' which isn't terribly
546 informative).
553 informative).
547
554
548 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
555 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
549 (minor mods) to support network shares under win32.
556 (minor mods) to support network shares under win32.
550
557
551 * IPython/winconsole.py (get_console_size): add new winconsole
558 * IPython/winconsole.py (get_console_size): add new winconsole
552 module and fixes to page_dumb() to improve its behavior under
559 module and fixes to page_dumb() to improve its behavior under
553 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
560 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
554
561
555 * IPython/Magic.py (Macro): simplified Macro class to just
562 * IPython/Magic.py (Macro): simplified Macro class to just
556 subclass list. We've had only 2.2 compatibility for a very long
563 subclass list. We've had only 2.2 compatibility for a very long
557 time, yet I was still avoiding subclassing the builtin types. No
564 time, yet I was still avoiding subclassing the builtin types. No
558 more (I'm also starting to use properties, though I won't shift to
565 more (I'm also starting to use properties, though I won't shift to
559 2.3-specific features quite yet).
566 2.3-specific features quite yet).
560 (magic_store): added Ville's patch for lightweight variable
567 (magic_store): added Ville's patch for lightweight variable
561 persistence, after a request on the user list by Matt Wilkie
568 persistence, after a request on the user list by Matt Wilkie
562 <maphew-AT-gmail.com>. The new %store magic's docstring has full
569 <maphew-AT-gmail.com>. The new %store magic's docstring has full
563 details.
570 details.
564
571
565 * IPython/iplib.py (InteractiveShell.post_config_initialization):
572 * IPython/iplib.py (InteractiveShell.post_config_initialization):
566 changed the default logfile name from 'ipython.log' to
573 changed the default logfile name from 'ipython.log' to
567 'ipython_log.py'. These logs are real python files, and now that
574 'ipython_log.py'. These logs are real python files, and now that
568 we have much better multiline support, people are more likely to
575 we have much better multiline support, people are more likely to
569 want to use them as such. Might as well name them correctly.
576 want to use them as such. Might as well name them correctly.
570
577
571 * IPython/Magic.py: substantial cleanup. While we can't stop
578 * IPython/Magic.py: substantial cleanup. While we can't stop
572 using magics as mixins, due to the existing customizations 'out
579 using magics as mixins, due to the existing customizations 'out
573 there' which rely on the mixin naming conventions, at least I
580 there' which rely on the mixin naming conventions, at least I
574 cleaned out all cross-class name usage. So once we are OK with
581 cleaned out all cross-class name usage. So once we are OK with
575 breaking compatibility, the two systems can be separated.
582 breaking compatibility, the two systems can be separated.
576
583
577 * IPython/Logger.py: major cleanup. This one is NOT a mixin
584 * IPython/Logger.py: major cleanup. This one is NOT a mixin
578 anymore, and the class is a fair bit less hideous as well. New
585 anymore, and the class is a fair bit less hideous as well. New
579 features were also introduced: timestamping of input, and logging
586 features were also introduced: timestamping of input, and logging
580 of output results. These are user-visible with the -t and -o
587 of output results. These are user-visible with the -t and -o
581 options to %logstart. Closes
588 options to %logstart. Closes
582 http://www.scipy.net/roundup/ipython/issue11 and a request by
589 http://www.scipy.net/roundup/ipython/issue11 and a request by
583 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
590 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
584
591
585 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
592 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
586
593
587 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
594 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
588 better hadnle backslashes in paths. See the thread 'More Windows
595 better hadnle backslashes in paths. See the thread 'More Windows
589 questions part 2 - \/ characters revisited' on the iypthon user
596 questions part 2 - \/ characters revisited' on the iypthon user
590 list:
597 list:
591 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
598 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
592
599
593 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
600 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
594
601
595 (InteractiveShell.__init__): change threaded shells to not use the
602 (InteractiveShell.__init__): change threaded shells to not use the
596 ipython crash handler. This was causing more problems than not,
603 ipython crash handler. This was causing more problems than not,
597 as exceptions in the main thread (GUI code, typically) would
604 as exceptions in the main thread (GUI code, typically) would
598 always show up as a 'crash', when they really weren't.
605 always show up as a 'crash', when they really weren't.
599
606
600 The colors and exception mode commands (%colors/%xmode) have been
607 The colors and exception mode commands (%colors/%xmode) have been
601 synchronized to also take this into account, so users can get
608 synchronized to also take this into account, so users can get
602 verbose exceptions for their threaded code as well. I also added
609 verbose exceptions for their threaded code as well. I also added
603 support for activating pdb inside this exception handler as well,
610 support for activating pdb inside this exception handler as well,
604 so now GUI authors can use IPython's enhanced pdb at runtime.
611 so now GUI authors can use IPython's enhanced pdb at runtime.
605
612
606 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
613 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
607 true by default, and add it to the shipped ipythonrc file. Since
614 true by default, and add it to the shipped ipythonrc file. Since
608 this asks the user before proceeding, I think it's OK to make it
615 this asks the user before proceeding, I think it's OK to make it
609 true by default.
616 true by default.
610
617
611 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
618 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
612 of the previous special-casing of input in the eval loop. I think
619 of the previous special-casing of input in the eval loop. I think
613 this is cleaner, as they really are commands and shouldn't have
620 this is cleaner, as they really are commands and shouldn't have
614 a special role in the middle of the core code.
621 a special role in the middle of the core code.
615
622
616 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
623 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
617
624
618 * IPython/iplib.py (edit_syntax_error): added support for
625 * IPython/iplib.py (edit_syntax_error): added support for
619 automatically reopening the editor if the file had a syntax error
626 automatically reopening the editor if the file had a syntax error
620 in it. Thanks to scottt who provided the patch at:
627 in it. Thanks to scottt who provided the patch at:
621 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
628 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
622 version committed).
629 version committed).
623
630
624 * IPython/iplib.py (handle_normal): add suport for multi-line
631 * IPython/iplib.py (handle_normal): add suport for multi-line
625 input with emtpy lines. This fixes
632 input with emtpy lines. This fixes
626 http://www.scipy.net/roundup/ipython/issue43 and a similar
633 http://www.scipy.net/roundup/ipython/issue43 and a similar
627 discussion on the user list.
634 discussion on the user list.
628
635
629 WARNING: a behavior change is necessarily introduced to support
636 WARNING: a behavior change is necessarily introduced to support
630 blank lines: now a single blank line with whitespace does NOT
637 blank lines: now a single blank line with whitespace does NOT
631 break the input loop, which means that when autoindent is on, by
638 break the input loop, which means that when autoindent is on, by
632 default hitting return on the next (indented) line does NOT exit.
639 default hitting return on the next (indented) line does NOT exit.
633
640
634 Instead, to exit a multiline input you can either have:
641 Instead, to exit a multiline input you can either have:
635
642
636 - TWO whitespace lines (just hit return again), or
643 - TWO whitespace lines (just hit return again), or
637 - a single whitespace line of a different length than provided
644 - a single whitespace line of a different length than provided
638 by the autoindent (add or remove a space).
645 by the autoindent (add or remove a space).
639
646
640 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
647 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
641 module to better organize all readline-related functionality.
648 module to better organize all readline-related functionality.
642 I've deleted FlexCompleter and put all completion clases here.
649 I've deleted FlexCompleter and put all completion clases here.
643
650
644 * IPython/iplib.py (raw_input): improve indentation management.
651 * IPython/iplib.py (raw_input): improve indentation management.
645 It is now possible to paste indented code with autoindent on, and
652 It is now possible to paste indented code with autoindent on, and
646 the code is interpreted correctly (though it still looks bad on
653 the code is interpreted correctly (though it still looks bad on
647 screen, due to the line-oriented nature of ipython).
654 screen, due to the line-oriented nature of ipython).
648 (MagicCompleter.complete): change behavior so that a TAB key on an
655 (MagicCompleter.complete): change behavior so that a TAB key on an
649 otherwise empty line actually inserts a tab, instead of completing
656 otherwise empty line actually inserts a tab, instead of completing
650 on the entire global namespace. This makes it easier to use the
657 on the entire global namespace. This makes it easier to use the
651 TAB key for indentation. After a request by Hans Meine
658 TAB key for indentation. After a request by Hans Meine
652 <hans_meine-AT-gmx.net>
659 <hans_meine-AT-gmx.net>
653 (_prefilter): add support so that typing plain 'exit' or 'quit'
660 (_prefilter): add support so that typing plain 'exit' or 'quit'
654 does a sensible thing. Originally I tried to deviate as little as
661 does a sensible thing. Originally I tried to deviate as little as
655 possible from the default python behavior, but even that one may
662 possible from the default python behavior, but even that one may
656 change in this direction (thread on python-dev to that effect).
663 change in this direction (thread on python-dev to that effect).
657 Regardless, ipython should do the right thing even if CPython's
664 Regardless, ipython should do the right thing even if CPython's
658 '>>>' prompt doesn't.
665 '>>>' prompt doesn't.
659 (InteractiveShell): removed subclassing code.InteractiveConsole
666 (InteractiveShell): removed subclassing code.InteractiveConsole
660 class. By now we'd overridden just about all of its methods: I've
667 class. By now we'd overridden just about all of its methods: I've
661 copied the remaining two over, and now ipython is a standalone
668 copied the remaining two over, and now ipython is a standalone
662 class. This will provide a clearer picture for the chainsaw
669 class. This will provide a clearer picture for the chainsaw
663 branch refactoring.
670 branch refactoring.
664
671
665 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
672 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
666
673
667 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
674 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
668 failures for objects which break when dir() is called on them.
675 failures for objects which break when dir() is called on them.
669
676
670 * IPython/FlexCompleter.py (Completer.__init__): Added support for
677 * IPython/FlexCompleter.py (Completer.__init__): Added support for
671 distinct local and global namespaces in the completer API. This
678 distinct local and global namespaces in the completer API. This
672 change allows us top properly handle completion with distinct
679 change allows us top properly handle completion with distinct
673 scopes, including in embedded instances (this had never really
680 scopes, including in embedded instances (this had never really
674 worked correctly).
681 worked correctly).
675
682
676 Note: this introduces a change in the constructor for
683 Note: this introduces a change in the constructor for
677 MagicCompleter, as a new global_namespace parameter is now the
684 MagicCompleter, as a new global_namespace parameter is now the
678 second argument (the others were bumped one position).
685 second argument (the others were bumped one position).
679
686
680 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
687 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
681
688
682 * IPython/iplib.py (embed_mainloop): fix tab-completion in
689 * IPython/iplib.py (embed_mainloop): fix tab-completion in
683 embedded instances (which can be done now thanks to Vivian's
690 embedded instances (which can be done now thanks to Vivian's
684 frame-handling fixes for pdb).
691 frame-handling fixes for pdb).
685 (InteractiveShell.__init__): Fix namespace handling problem in
692 (InteractiveShell.__init__): Fix namespace handling problem in
686 embedded instances. We were overwriting __main__ unconditionally,
693 embedded instances. We were overwriting __main__ unconditionally,
687 and this should only be done for 'full' (non-embedded) IPython;
694 and this should only be done for 'full' (non-embedded) IPython;
688 embedded instances must respect the caller's __main__. Thanks to
695 embedded instances must respect the caller's __main__. Thanks to
689 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
696 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
690
697
691 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
698 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
692
699
693 * setup.py: added download_url to setup(). This registers the
700 * setup.py: added download_url to setup(). This registers the
694 download address at PyPI, which is not only useful to humans
701 download address at PyPI, which is not only useful to humans
695 browsing the site, but is also picked up by setuptools (the Eggs
702 browsing the site, but is also picked up by setuptools (the Eggs
696 machinery). Thanks to Ville and R. Kern for the info/discussion
703 machinery). Thanks to Ville and R. Kern for the info/discussion
697 on this.
704 on this.
698
705
699 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
706 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
700
707
701 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
708 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
702 This brings a lot of nice functionality to the pdb mode, which now
709 This brings a lot of nice functionality to the pdb mode, which now
703 has tab-completion, syntax highlighting, and better stack handling
710 has tab-completion, syntax highlighting, and better stack handling
704 than before. Many thanks to Vivian De Smedt
711 than before. Many thanks to Vivian De Smedt
705 <vivian-AT-vdesmedt.com> for the original patches.
712 <vivian-AT-vdesmedt.com> for the original patches.
706
713
707 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
714 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
708
715
709 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
716 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
710 sequence to consistently accept the banner argument. The
717 sequence to consistently accept the banner argument. The
711 inconsistency was tripping SAGE, thanks to Gary Zablackis
718 inconsistency was tripping SAGE, thanks to Gary Zablackis
712 <gzabl-AT-yahoo.com> for the report.
719 <gzabl-AT-yahoo.com> for the report.
713
720
714 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
721 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
715
722
716 * IPython/iplib.py (InteractiveShell.post_config_initialization):
723 * IPython/iplib.py (InteractiveShell.post_config_initialization):
717 Fix bug where a naked 'alias' call in the ipythonrc file would
724 Fix bug where a naked 'alias' call in the ipythonrc file would
718 cause a crash. Bug reported by Jorgen Stenarson.
725 cause a crash. Bug reported by Jorgen Stenarson.
719
726
720 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
727 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
721
728
722 * IPython/ipmaker.py (make_IPython): cleanups which should improve
729 * IPython/ipmaker.py (make_IPython): cleanups which should improve
723 startup time.
730 startup time.
724
731
725 * IPython/iplib.py (runcode): my globals 'fix' for embedded
732 * IPython/iplib.py (runcode): my globals 'fix' for embedded
726 instances had introduced a bug with globals in normal code. Now
733 instances had introduced a bug with globals in normal code. Now
727 it's working in all cases.
734 it's working in all cases.
728
735
729 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
736 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
730 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
737 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
731 has been introduced to set the default case sensitivity of the
738 has been introduced to set the default case sensitivity of the
732 searches. Users can still select either mode at runtime on a
739 searches. Users can still select either mode at runtime on a
733 per-search basis.
740 per-search basis.
734
741
735 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
742 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
736
743
737 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
744 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
738 attributes in wildcard searches for subclasses. Modified version
745 attributes in wildcard searches for subclasses. Modified version
739 of a patch by Jorgen.
746 of a patch by Jorgen.
740
747
741 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
748 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
742
749
743 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
750 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
744 embedded instances. I added a user_global_ns attribute to the
751 embedded instances. I added a user_global_ns attribute to the
745 InteractiveShell class to handle this.
752 InteractiveShell class to handle this.
746
753
747 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
754 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
748
755
749 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
756 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
750 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
757 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
751 (reported under win32, but may happen also in other platforms).
758 (reported under win32, but may happen also in other platforms).
752 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
759 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
753
760
754 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
761 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
755
762
756 * IPython/Magic.py (magic_psearch): new support for wildcard
763 * IPython/Magic.py (magic_psearch): new support for wildcard
757 patterns. Now, typing ?a*b will list all names which begin with a
764 patterns. Now, typing ?a*b will list all names which begin with a
758 and end in b, for example. The %psearch magic has full
765 and end in b, for example. The %psearch magic has full
759 docstrings. Many thanks to JΓΆrgen Stenarson
766 docstrings. Many thanks to JΓΆrgen Stenarson
760 <jorgen.stenarson-AT-bostream.nu>, author of the patches
767 <jorgen.stenarson-AT-bostream.nu>, author of the patches
761 implementing this functionality.
768 implementing this functionality.
762
769
763 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
770 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
764
771
765 * Manual: fixed long-standing annoyance of double-dashes (as in
772 * Manual: fixed long-standing annoyance of double-dashes (as in
766 --prefix=~, for example) being stripped in the HTML version. This
773 --prefix=~, for example) being stripped in the HTML version. This
767 is a latex2html bug, but a workaround was provided. Many thanks
774 is a latex2html bug, but a workaround was provided. Many thanks
768 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
775 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
769 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
776 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
770 rolling. This seemingly small issue had tripped a number of users
777 rolling. This seemingly small issue had tripped a number of users
771 when first installing, so I'm glad to see it gone.
778 when first installing, so I'm glad to see it gone.
772
779
773 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
780 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
774
781
775 * IPython/Extensions/numeric_formats.py: fix missing import,
782 * IPython/Extensions/numeric_formats.py: fix missing import,
776 reported by Stephen Walton.
783 reported by Stephen Walton.
777
784
778 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
785 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
779
786
780 * IPython/demo.py: finish demo module, fully documented now.
787 * IPython/demo.py: finish demo module, fully documented now.
781
788
782 * IPython/genutils.py (file_read): simple little utility to read a
789 * IPython/genutils.py (file_read): simple little utility to read a
783 file and ensure it's closed afterwards.
790 file and ensure it's closed afterwards.
784
791
785 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
792 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
786
793
787 * IPython/demo.py (Demo.__init__): added support for individually
794 * IPython/demo.py (Demo.__init__): added support for individually
788 tagging blocks for automatic execution.
795 tagging blocks for automatic execution.
789
796
790 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
797 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
791 syntax-highlighted python sources, requested by John.
798 syntax-highlighted python sources, requested by John.
792
799
793 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
800 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
794
801
795 * IPython/demo.py (Demo.again): fix bug where again() blocks after
802 * IPython/demo.py (Demo.again): fix bug where again() blocks after
796 finishing.
803 finishing.
797
804
798 * IPython/genutils.py (shlex_split): moved from Magic to here,
805 * IPython/genutils.py (shlex_split): moved from Magic to here,
799 where all 2.2 compatibility stuff lives. I needed it for demo.py.
806 where all 2.2 compatibility stuff lives. I needed it for demo.py.
800
807
801 * IPython/demo.py (Demo.__init__): added support for silent
808 * IPython/demo.py (Demo.__init__): added support for silent
802 blocks, improved marks as regexps, docstrings written.
809 blocks, improved marks as regexps, docstrings written.
803 (Demo.__init__): better docstring, added support for sys.argv.
810 (Demo.__init__): better docstring, added support for sys.argv.
804
811
805 * IPython/genutils.py (marquee): little utility used by the demo
812 * IPython/genutils.py (marquee): little utility used by the demo
806 code, handy in general.
813 code, handy in general.
807
814
808 * IPython/demo.py (Demo.__init__): new class for interactive
815 * IPython/demo.py (Demo.__init__): new class for interactive
809 demos. Not documented yet, I just wrote it in a hurry for
816 demos. Not documented yet, I just wrote it in a hurry for
810 scipy'05. Will docstring later.
817 scipy'05. Will docstring later.
811
818
812 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
819 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
813
820
814 * IPython/Shell.py (sigint_handler): Drastic simplification which
821 * IPython/Shell.py (sigint_handler): Drastic simplification which
815 also seems to make Ctrl-C work correctly across threads! This is
822 also seems to make Ctrl-C work correctly across threads! This is
816 so simple, that I can't beleive I'd missed it before. Needs more
823 so simple, that I can't beleive I'd missed it before. Needs more
817 testing, though.
824 testing, though.
818 (KBINT): Never mind, revert changes. I'm sure I'd tried something
825 (KBINT): Never mind, revert changes. I'm sure I'd tried something
819 like this before...
826 like this before...
820
827
821 * IPython/genutils.py (get_home_dir): add protection against
828 * IPython/genutils.py (get_home_dir): add protection against
822 non-dirs in win32 registry.
829 non-dirs in win32 registry.
823
830
824 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
831 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
825 bug where dict was mutated while iterating (pysh crash).
832 bug where dict was mutated while iterating (pysh crash).
826
833
827 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
834 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
828
835
829 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
836 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
830 spurious newlines added by this routine. After a report by
837 spurious newlines added by this routine. After a report by
831 F. Mantegazza.
838 F. Mantegazza.
832
839
833 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
840 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
834
841
835 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
842 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
836 calls. These were a leftover from the GTK 1.x days, and can cause
843 calls. These were a leftover from the GTK 1.x days, and can cause
837 problems in certain cases (after a report by John Hunter).
844 problems in certain cases (after a report by John Hunter).
838
845
839 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
846 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
840 os.getcwd() fails at init time. Thanks to patch from David Remahl
847 os.getcwd() fails at init time. Thanks to patch from David Remahl
841 <chmod007-AT-mac.com>.
848 <chmod007-AT-mac.com>.
842 (InteractiveShell.__init__): prevent certain special magics from
849 (InteractiveShell.__init__): prevent certain special magics from
843 being shadowed by aliases. Closes
850 being shadowed by aliases. Closes
844 http://www.scipy.net/roundup/ipython/issue41.
851 http://www.scipy.net/roundup/ipython/issue41.
845
852
846 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
853 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
847
854
848 * IPython/iplib.py (InteractiveShell.complete): Added new
855 * IPython/iplib.py (InteractiveShell.complete): Added new
849 top-level completion method to expose the completion mechanism
856 top-level completion method to expose the completion mechanism
850 beyond readline-based environments.
857 beyond readline-based environments.
851
858
852 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
859 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
853
860
854 * tools/ipsvnc (svnversion): fix svnversion capture.
861 * tools/ipsvnc (svnversion): fix svnversion capture.
855
862
856 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
863 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
857 attribute to self, which was missing. Before, it was set by a
864 attribute to self, which was missing. Before, it was set by a
858 routine which in certain cases wasn't being called, so the
865 routine which in certain cases wasn't being called, so the
859 instance could end up missing the attribute. This caused a crash.
866 instance could end up missing the attribute. This caused a crash.
860 Closes http://www.scipy.net/roundup/ipython/issue40.
867 Closes http://www.scipy.net/roundup/ipython/issue40.
861
868
862 2005-08-16 Fernando Perez <fperez@colorado.edu>
869 2005-08-16 Fernando Perez <fperez@colorado.edu>
863
870
864 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
871 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
865 contains non-string attribute. Closes
872 contains non-string attribute. Closes
866 http://www.scipy.net/roundup/ipython/issue38.
873 http://www.scipy.net/roundup/ipython/issue38.
867
874
868 2005-08-14 Fernando Perez <fperez@colorado.edu>
875 2005-08-14 Fernando Perez <fperez@colorado.edu>
869
876
870 * tools/ipsvnc: Minor improvements, to add changeset info.
877 * tools/ipsvnc: Minor improvements, to add changeset info.
871
878
872 2005-08-12 Fernando Perez <fperez@colorado.edu>
879 2005-08-12 Fernando Perez <fperez@colorado.edu>
873
880
874 * IPython/iplib.py (runsource): remove self.code_to_run_src
881 * IPython/iplib.py (runsource): remove self.code_to_run_src
875 attribute. I realized this is nothing more than
882 attribute. I realized this is nothing more than
876 '\n'.join(self.buffer), and having the same data in two different
883 '\n'.join(self.buffer), and having the same data in two different
877 places is just asking for synchronization bugs. This may impact
884 places is just asking for synchronization bugs. This may impact
878 people who have custom exception handlers, so I need to warn
885 people who have custom exception handlers, so I need to warn
879 ipython-dev about it (F. Mantegazza may use them).
886 ipython-dev about it (F. Mantegazza may use them).
880
887
881 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
888 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
882
889
883 * IPython/genutils.py: fix 2.2 compatibility (generators)
890 * IPython/genutils.py: fix 2.2 compatibility (generators)
884
891
885 2005-07-18 Fernando Perez <fperez@colorado.edu>
892 2005-07-18 Fernando Perez <fperez@colorado.edu>
886
893
887 * IPython/genutils.py (get_home_dir): fix to help users with
894 * IPython/genutils.py (get_home_dir): fix to help users with
888 invalid $HOME under win32.
895 invalid $HOME under win32.
889
896
890 2005-07-17 Fernando Perez <fperez@colorado.edu>
897 2005-07-17 Fernando Perez <fperez@colorado.edu>
891
898
892 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
899 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
893 some old hacks and clean up a bit other routines; code should be
900 some old hacks and clean up a bit other routines; code should be
894 simpler and a bit faster.
901 simpler and a bit faster.
895
902
896 * IPython/iplib.py (interact): removed some last-resort attempts
903 * IPython/iplib.py (interact): removed some last-resort attempts
897 to survive broken stdout/stderr. That code was only making it
904 to survive broken stdout/stderr. That code was only making it
898 harder to abstract out the i/o (necessary for gui integration),
905 harder to abstract out the i/o (necessary for gui integration),
899 and the crashes it could prevent were extremely rare in practice
906 and the crashes it could prevent were extremely rare in practice
900 (besides being fully user-induced in a pretty violent manner).
907 (besides being fully user-induced in a pretty violent manner).
901
908
902 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
909 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
903 Nothing major yet, but the code is simpler to read; this should
910 Nothing major yet, but the code is simpler to read; this should
904 make it easier to do more serious modifications in the future.
911 make it easier to do more serious modifications in the future.
905
912
906 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
913 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
907 which broke in .15 (thanks to a report by Ville).
914 which broke in .15 (thanks to a report by Ville).
908
915
909 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
916 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
910 be quite correct, I know next to nothing about unicode). This
917 be quite correct, I know next to nothing about unicode). This
911 will allow unicode strings to be used in prompts, amongst other
918 will allow unicode strings to be used in prompts, amongst other
912 cases. It also will prevent ipython from crashing when unicode
919 cases. It also will prevent ipython from crashing when unicode
913 shows up unexpectedly in many places. If ascii encoding fails, we
920 shows up unexpectedly in many places. If ascii encoding fails, we
914 assume utf_8. Currently the encoding is not a user-visible
921 assume utf_8. Currently the encoding is not a user-visible
915 setting, though it could be made so if there is demand for it.
922 setting, though it could be made so if there is demand for it.
916
923
917 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
924 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
918
925
919 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
926 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
920
927
921 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
928 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
922
929
923 * IPython/genutils.py: Add 2.2 compatibility here, so all other
930 * IPython/genutils.py: Add 2.2 compatibility here, so all other
924 code can work transparently for 2.2/2.3.
931 code can work transparently for 2.2/2.3.
925
932
926 2005-07-16 Fernando Perez <fperez@colorado.edu>
933 2005-07-16 Fernando Perez <fperez@colorado.edu>
927
934
928 * IPython/ultraTB.py (ExceptionColors): Make a global variable
935 * IPython/ultraTB.py (ExceptionColors): Make a global variable
929 out of the color scheme table used for coloring exception
936 out of the color scheme table used for coloring exception
930 tracebacks. This allows user code to add new schemes at runtime.
937 tracebacks. This allows user code to add new schemes at runtime.
931 This is a minimally modified version of the patch at
938 This is a minimally modified version of the patch at
932 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
939 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
933 for the contribution.
940 for the contribution.
934
941
935 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
942 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
936 slightly modified version of the patch in
943 slightly modified version of the patch in
937 http://www.scipy.net/roundup/ipython/issue34, which also allows me
944 http://www.scipy.net/roundup/ipython/issue34, which also allows me
938 to remove the previous try/except solution (which was costlier).
945 to remove the previous try/except solution (which was costlier).
939 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
946 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
940
947
941 2005-06-08 Fernando Perez <fperez@colorado.edu>
948 2005-06-08 Fernando Perez <fperez@colorado.edu>
942
949
943 * IPython/iplib.py (write/write_err): Add methods to abstract all
950 * IPython/iplib.py (write/write_err): Add methods to abstract all
944 I/O a bit more.
951 I/O a bit more.
945
952
946 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
953 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
947 warning, reported by Aric Hagberg, fix by JD Hunter.
954 warning, reported by Aric Hagberg, fix by JD Hunter.
948
955
949 2005-06-02 *** Released version 0.6.15
956 2005-06-02 *** Released version 0.6.15
950
957
951 2005-06-01 Fernando Perez <fperez@colorado.edu>
958 2005-06-01 Fernando Perez <fperez@colorado.edu>
952
959
953 * IPython/iplib.py (MagicCompleter.file_matches): Fix
960 * IPython/iplib.py (MagicCompleter.file_matches): Fix
954 tab-completion of filenames within open-quoted strings. Note that
961 tab-completion of filenames within open-quoted strings. Note that
955 this requires that in ~/.ipython/ipythonrc, users change the
962 this requires that in ~/.ipython/ipythonrc, users change the
956 readline delimiters configuration to read:
963 readline delimiters configuration to read:
957
964
958 readline_remove_delims -/~
965 readline_remove_delims -/~
959
966
960
967
961 2005-05-31 *** Released version 0.6.14
968 2005-05-31 *** Released version 0.6.14
962
969
963 2005-05-29 Fernando Perez <fperez@colorado.edu>
970 2005-05-29 Fernando Perez <fperez@colorado.edu>
964
971
965 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
972 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
966 with files not on the filesystem. Reported by Eliyahu Sandler
973 with files not on the filesystem. Reported by Eliyahu Sandler
967 <eli@gondolin.net>
974 <eli@gondolin.net>
968
975
969 2005-05-22 Fernando Perez <fperez@colorado.edu>
976 2005-05-22 Fernando Perez <fperez@colorado.edu>
970
977
971 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
978 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
972 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
979 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
973
980
974 2005-05-19 Fernando Perez <fperez@colorado.edu>
981 2005-05-19 Fernando Perez <fperez@colorado.edu>
975
982
976 * IPython/iplib.py (safe_execfile): close a file which could be
983 * IPython/iplib.py (safe_execfile): close a file which could be
977 left open (causing problems in win32, which locks open files).
984 left open (causing problems in win32, which locks open files).
978 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
985 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
979
986
980 2005-05-18 Fernando Perez <fperez@colorado.edu>
987 2005-05-18 Fernando Perez <fperez@colorado.edu>
981
988
982 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
989 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
983 keyword arguments correctly to safe_execfile().
990 keyword arguments correctly to safe_execfile().
984
991
985 2005-05-13 Fernando Perez <fperez@colorado.edu>
992 2005-05-13 Fernando Perez <fperez@colorado.edu>
986
993
987 * ipython.1: Added info about Qt to manpage, and threads warning
994 * ipython.1: Added info about Qt to manpage, and threads warning
988 to usage page (invoked with --help).
995 to usage page (invoked with --help).
989
996
990 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
997 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
991 new matcher (it goes at the end of the priority list) to do
998 new matcher (it goes at the end of the priority list) to do
992 tab-completion on named function arguments. Submitted by George
999 tab-completion on named function arguments. Submitted by George
993 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1000 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
994 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1001 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
995 for more details.
1002 for more details.
996
1003
997 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1004 * IPython/Magic.py (magic_run): Added new -e flag to ignore
998 SystemExit exceptions in the script being run. Thanks to a report
1005 SystemExit exceptions in the script being run. Thanks to a report
999 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1006 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1000 producing very annoying behavior when running unit tests.
1007 producing very annoying behavior when running unit tests.
1001
1008
1002 2005-05-12 Fernando Perez <fperez@colorado.edu>
1009 2005-05-12 Fernando Perez <fperez@colorado.edu>
1003
1010
1004 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1011 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1005 which I'd broken (again) due to a changed regexp. In the process,
1012 which I'd broken (again) due to a changed regexp. In the process,
1006 added ';' as an escape to auto-quote the whole line without
1013 added ';' as an escape to auto-quote the whole line without
1007 splitting its arguments. Thanks to a report by Jerry McRae
1014 splitting its arguments. Thanks to a report by Jerry McRae
1008 <qrs0xyc02-AT-sneakemail.com>.
1015 <qrs0xyc02-AT-sneakemail.com>.
1009
1016
1010 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1017 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1011 possible crashes caused by a TokenError. Reported by Ed Schofield
1018 possible crashes caused by a TokenError. Reported by Ed Schofield
1012 <schofield-AT-ftw.at>.
1019 <schofield-AT-ftw.at>.
1013
1020
1014 2005-05-06 Fernando Perez <fperez@colorado.edu>
1021 2005-05-06 Fernando Perez <fperez@colorado.edu>
1015
1022
1016 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1023 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1017
1024
1018 2005-04-29 Fernando Perez <fperez@colorado.edu>
1025 2005-04-29 Fernando Perez <fperez@colorado.edu>
1019
1026
1020 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1027 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1021 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1028 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1022 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1029 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1023 which provides support for Qt interactive usage (similar to the
1030 which provides support for Qt interactive usage (similar to the
1024 existing one for WX and GTK). This had been often requested.
1031 existing one for WX and GTK). This had been often requested.
1025
1032
1026 2005-04-14 *** Released version 0.6.13
1033 2005-04-14 *** Released version 0.6.13
1027
1034
1028 2005-04-08 Fernando Perez <fperez@colorado.edu>
1035 2005-04-08 Fernando Perez <fperez@colorado.edu>
1029
1036
1030 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1037 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1031 from _ofind, which gets called on almost every input line. Now,
1038 from _ofind, which gets called on almost every input line. Now,
1032 we only try to get docstrings if they are actually going to be
1039 we only try to get docstrings if they are actually going to be
1033 used (the overhead of fetching unnecessary docstrings can be
1040 used (the overhead of fetching unnecessary docstrings can be
1034 noticeable for certain objects, such as Pyro proxies).
1041 noticeable for certain objects, such as Pyro proxies).
1035
1042
1036 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1043 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1037 for completers. For some reason I had been passing them the state
1044 for completers. For some reason I had been passing them the state
1038 variable, which completers never actually need, and was in
1045 variable, which completers never actually need, and was in
1039 conflict with the rlcompleter API. Custom completers ONLY need to
1046 conflict with the rlcompleter API. Custom completers ONLY need to
1040 take the text parameter.
1047 take the text parameter.
1041
1048
1042 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1049 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1043 work correctly in pysh. I've also moved all the logic which used
1050 work correctly in pysh. I've also moved all the logic which used
1044 to be in pysh.py here, which will prevent problems with future
1051 to be in pysh.py here, which will prevent problems with future
1045 upgrades. However, this time I must warn users to update their
1052 upgrades. However, this time I must warn users to update their
1046 pysh profile to include the line
1053 pysh profile to include the line
1047
1054
1048 import_all IPython.Extensions.InterpreterExec
1055 import_all IPython.Extensions.InterpreterExec
1049
1056
1050 because otherwise things won't work for them. They MUST also
1057 because otherwise things won't work for them. They MUST also
1051 delete pysh.py and the line
1058 delete pysh.py and the line
1052
1059
1053 execfile pysh.py
1060 execfile pysh.py
1054
1061
1055 from their ipythonrc-pysh.
1062 from their ipythonrc-pysh.
1056
1063
1057 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1064 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1058 robust in the face of objects whose dir() returns non-strings
1065 robust in the face of objects whose dir() returns non-strings
1059 (which it shouldn't, but some broken libs like ITK do). Thanks to
1066 (which it shouldn't, but some broken libs like ITK do). Thanks to
1060 a patch by John Hunter (implemented differently, though). Also
1067 a patch by John Hunter (implemented differently, though). Also
1061 minor improvements by using .extend instead of + on lists.
1068 minor improvements by using .extend instead of + on lists.
1062
1069
1063 * pysh.py:
1070 * pysh.py:
1064
1071
1065 2005-04-06 Fernando Perez <fperez@colorado.edu>
1072 2005-04-06 Fernando Perez <fperez@colorado.edu>
1066
1073
1067 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1074 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1068 by default, so that all users benefit from it. Those who don't
1075 by default, so that all users benefit from it. Those who don't
1069 want it can still turn it off.
1076 want it can still turn it off.
1070
1077
1071 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1078 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1072 config file, I'd forgotten about this, so users were getting it
1079 config file, I'd forgotten about this, so users were getting it
1073 off by default.
1080 off by default.
1074
1081
1075 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1082 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1076 consistency. Now magics can be called in multiline statements,
1083 consistency. Now magics can be called in multiline statements,
1077 and python variables can be expanded in magic calls via $var.
1084 and python variables can be expanded in magic calls via $var.
1078 This makes the magic system behave just like aliases or !system
1085 This makes the magic system behave just like aliases or !system
1079 calls.
1086 calls.
1080
1087
1081 2005-03-28 Fernando Perez <fperez@colorado.edu>
1088 2005-03-28 Fernando Perez <fperez@colorado.edu>
1082
1089
1083 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1090 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1084 expensive string additions for building command. Add support for
1091 expensive string additions for building command. Add support for
1085 trailing ';' when autocall is used.
1092 trailing ';' when autocall is used.
1086
1093
1087 2005-03-26 Fernando Perez <fperez@colorado.edu>
1094 2005-03-26 Fernando Perez <fperez@colorado.edu>
1088
1095
1089 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1096 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1090 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1097 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1091 ipython.el robust against prompts with any number of spaces
1098 ipython.el robust against prompts with any number of spaces
1092 (including 0) after the ':' character.
1099 (including 0) after the ':' character.
1093
1100
1094 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1101 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1095 continuation prompt, which misled users to think the line was
1102 continuation prompt, which misled users to think the line was
1096 already indented. Closes debian Bug#300847, reported to me by
1103 already indented. Closes debian Bug#300847, reported to me by
1097 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1104 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1098
1105
1099 2005-03-23 Fernando Perez <fperez@colorado.edu>
1106 2005-03-23 Fernando Perez <fperez@colorado.edu>
1100
1107
1101 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1108 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1102 properly aligned if they have embedded newlines.
1109 properly aligned if they have embedded newlines.
1103
1110
1104 * IPython/iplib.py (runlines): Add a public method to expose
1111 * IPython/iplib.py (runlines): Add a public method to expose
1105 IPython's code execution machinery, so that users can run strings
1112 IPython's code execution machinery, so that users can run strings
1106 as if they had been typed at the prompt interactively.
1113 as if they had been typed at the prompt interactively.
1107 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1114 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1108 methods which can call the system shell, but with python variable
1115 methods which can call the system shell, but with python variable
1109 expansion. The three such methods are: __IPYTHON__.system,
1116 expansion. The three such methods are: __IPYTHON__.system,
1110 .getoutput and .getoutputerror. These need to be documented in a
1117 .getoutput and .getoutputerror. These need to be documented in a
1111 'public API' section (to be written) of the manual.
1118 'public API' section (to be written) of the manual.
1112
1119
1113 2005-03-20 Fernando Perez <fperez@colorado.edu>
1120 2005-03-20 Fernando Perez <fperez@colorado.edu>
1114
1121
1115 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1122 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1116 for custom exception handling. This is quite powerful, and it
1123 for custom exception handling. This is quite powerful, and it
1117 allows for user-installable exception handlers which can trap
1124 allows for user-installable exception handlers which can trap
1118 custom exceptions at runtime and treat them separately from
1125 custom exceptions at runtime and treat them separately from
1119 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1126 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1120 Mantegazza <mantegazza-AT-ill.fr>.
1127 Mantegazza <mantegazza-AT-ill.fr>.
1121 (InteractiveShell.set_custom_completer): public API function to
1128 (InteractiveShell.set_custom_completer): public API function to
1122 add new completers at runtime.
1129 add new completers at runtime.
1123
1130
1124 2005-03-19 Fernando Perez <fperez@colorado.edu>
1131 2005-03-19 Fernando Perez <fperez@colorado.edu>
1125
1132
1126 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1133 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1127 allow objects which provide their docstrings via non-standard
1134 allow objects which provide their docstrings via non-standard
1128 mechanisms (like Pyro proxies) to still be inspected by ipython's
1135 mechanisms (like Pyro proxies) to still be inspected by ipython's
1129 ? system.
1136 ? system.
1130
1137
1131 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1138 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1132 automatic capture system. I tried quite hard to make it work
1139 automatic capture system. I tried quite hard to make it work
1133 reliably, and simply failed. I tried many combinations with the
1140 reliably, and simply failed. I tried many combinations with the
1134 subprocess module, but eventually nothing worked in all needed
1141 subprocess module, but eventually nothing worked in all needed
1135 cases (not blocking stdin for the child, duplicating stdout
1142 cases (not blocking stdin for the child, duplicating stdout
1136 without blocking, etc). The new %sc/%sx still do capture to these
1143 without blocking, etc). The new %sc/%sx still do capture to these
1137 magical list/string objects which make shell use much more
1144 magical list/string objects which make shell use much more
1138 conveninent, so not all is lost.
1145 conveninent, so not all is lost.
1139
1146
1140 XXX - FIX MANUAL for the change above!
1147 XXX - FIX MANUAL for the change above!
1141
1148
1142 (runsource): I copied code.py's runsource() into ipython to modify
1149 (runsource): I copied code.py's runsource() into ipython to modify
1143 it a bit. Now the code object and source to be executed are
1150 it a bit. Now the code object and source to be executed are
1144 stored in ipython. This makes this info accessible to third-party
1151 stored in ipython. This makes this info accessible to third-party
1145 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1152 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1146 Mantegazza <mantegazza-AT-ill.fr>.
1153 Mantegazza <mantegazza-AT-ill.fr>.
1147
1154
1148 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1155 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1149 history-search via readline (like C-p/C-n). I'd wanted this for a
1156 history-search via readline (like C-p/C-n). I'd wanted this for a
1150 long time, but only recently found out how to do it. For users
1157 long time, but only recently found out how to do it. For users
1151 who already have their ipythonrc files made and want this, just
1158 who already have their ipythonrc files made and want this, just
1152 add:
1159 add:
1153
1160
1154 readline_parse_and_bind "\e[A": history-search-backward
1161 readline_parse_and_bind "\e[A": history-search-backward
1155 readline_parse_and_bind "\e[B": history-search-forward
1162 readline_parse_and_bind "\e[B": history-search-forward
1156
1163
1157 2005-03-18 Fernando Perez <fperez@colorado.edu>
1164 2005-03-18 Fernando Perez <fperez@colorado.edu>
1158
1165
1159 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1166 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1160 LSString and SList classes which allow transparent conversions
1167 LSString and SList classes which allow transparent conversions
1161 between list mode and whitespace-separated string.
1168 between list mode and whitespace-separated string.
1162 (magic_r): Fix recursion problem in %r.
1169 (magic_r): Fix recursion problem in %r.
1163
1170
1164 * IPython/genutils.py (LSString): New class to be used for
1171 * IPython/genutils.py (LSString): New class to be used for
1165 automatic storage of the results of all alias/system calls in _o
1172 automatic storage of the results of all alias/system calls in _o
1166 and _e (stdout/err). These provide a .l/.list attribute which
1173 and _e (stdout/err). These provide a .l/.list attribute which
1167 does automatic splitting on newlines. This means that for most
1174 does automatic splitting on newlines. This means that for most
1168 uses, you'll never need to do capturing of output with %sc/%sx
1175 uses, you'll never need to do capturing of output with %sc/%sx
1169 anymore, since ipython keeps this always done for you. Note that
1176 anymore, since ipython keeps this always done for you. Note that
1170 only the LAST results are stored, the _o/e variables are
1177 only the LAST results are stored, the _o/e variables are
1171 overwritten on each call. If you need to save their contents
1178 overwritten on each call. If you need to save their contents
1172 further, simply bind them to any other name.
1179 further, simply bind them to any other name.
1173
1180
1174 2005-03-17 Fernando Perez <fperez@colorado.edu>
1181 2005-03-17 Fernando Perez <fperez@colorado.edu>
1175
1182
1176 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1183 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1177 prompt namespace handling.
1184 prompt namespace handling.
1178
1185
1179 2005-03-16 Fernando Perez <fperez@colorado.edu>
1186 2005-03-16 Fernando Perez <fperez@colorado.edu>
1180
1187
1181 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1188 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1182 classic prompts to be '>>> ' (final space was missing, and it
1189 classic prompts to be '>>> ' (final space was missing, and it
1183 trips the emacs python mode).
1190 trips the emacs python mode).
1184 (BasePrompt.__str__): Added safe support for dynamic prompt
1191 (BasePrompt.__str__): Added safe support for dynamic prompt
1185 strings. Now you can set your prompt string to be '$x', and the
1192 strings. Now you can set your prompt string to be '$x', and the
1186 value of x will be printed from your interactive namespace. The
1193 value of x will be printed from your interactive namespace. The
1187 interpolation syntax includes the full Itpl support, so
1194 interpolation syntax includes the full Itpl support, so
1188 ${foo()+x+bar()} is a valid prompt string now, and the function
1195 ${foo()+x+bar()} is a valid prompt string now, and the function
1189 calls will be made at runtime.
1196 calls will be made at runtime.
1190
1197
1191 2005-03-15 Fernando Perez <fperez@colorado.edu>
1198 2005-03-15 Fernando Perez <fperez@colorado.edu>
1192
1199
1193 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1200 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1194 avoid name clashes in pylab. %hist still works, it just forwards
1201 avoid name clashes in pylab. %hist still works, it just forwards
1195 the call to %history.
1202 the call to %history.
1196
1203
1197 2005-03-02 *** Released version 0.6.12
1204 2005-03-02 *** Released version 0.6.12
1198
1205
1199 2005-03-02 Fernando Perez <fperez@colorado.edu>
1206 2005-03-02 Fernando Perez <fperez@colorado.edu>
1200
1207
1201 * IPython/iplib.py (handle_magic): log magic calls properly as
1208 * IPython/iplib.py (handle_magic): log magic calls properly as
1202 ipmagic() function calls.
1209 ipmagic() function calls.
1203
1210
1204 * IPython/Magic.py (magic_time): Improved %time to support
1211 * IPython/Magic.py (magic_time): Improved %time to support
1205 statements and provide wall-clock as well as CPU time.
1212 statements and provide wall-clock as well as CPU time.
1206
1213
1207 2005-02-27 Fernando Perez <fperez@colorado.edu>
1214 2005-02-27 Fernando Perez <fperez@colorado.edu>
1208
1215
1209 * IPython/hooks.py: New hooks module, to expose user-modifiable
1216 * IPython/hooks.py: New hooks module, to expose user-modifiable
1210 IPython functionality in a clean manner. For now only the editor
1217 IPython functionality in a clean manner. For now only the editor
1211 hook is actually written, and other thigns which I intend to turn
1218 hook is actually written, and other thigns which I intend to turn
1212 into proper hooks aren't yet there. The display and prefilter
1219 into proper hooks aren't yet there. The display and prefilter
1213 stuff, for example, should be hooks. But at least now the
1220 stuff, for example, should be hooks. But at least now the
1214 framework is in place, and the rest can be moved here with more
1221 framework is in place, and the rest can be moved here with more
1215 time later. IPython had had a .hooks variable for a long time for
1222 time later. IPython had had a .hooks variable for a long time for
1216 this purpose, but I'd never actually used it for anything.
1223 this purpose, but I'd never actually used it for anything.
1217
1224
1218 2005-02-26 Fernando Perez <fperez@colorado.edu>
1225 2005-02-26 Fernando Perez <fperez@colorado.edu>
1219
1226
1220 * IPython/ipmaker.py (make_IPython): make the default ipython
1227 * IPython/ipmaker.py (make_IPython): make the default ipython
1221 directory be called _ipython under win32, to follow more the
1228 directory be called _ipython under win32, to follow more the
1222 naming peculiarities of that platform (where buggy software like
1229 naming peculiarities of that platform (where buggy software like
1223 Visual Sourcesafe breaks with .named directories). Reported by
1230 Visual Sourcesafe breaks with .named directories). Reported by
1224 Ville Vainio.
1231 Ville Vainio.
1225
1232
1226 2005-02-23 Fernando Perez <fperez@colorado.edu>
1233 2005-02-23 Fernando Perez <fperez@colorado.edu>
1227
1234
1228 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1235 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1229 auto_aliases for win32 which were causing problems. Users can
1236 auto_aliases for win32 which were causing problems. Users can
1230 define the ones they personally like.
1237 define the ones they personally like.
1231
1238
1232 2005-02-21 Fernando Perez <fperez@colorado.edu>
1239 2005-02-21 Fernando Perez <fperez@colorado.edu>
1233
1240
1234 * IPython/Magic.py (magic_time): new magic to time execution of
1241 * IPython/Magic.py (magic_time): new magic to time execution of
1235 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1242 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1236
1243
1237 2005-02-19 Fernando Perez <fperez@colorado.edu>
1244 2005-02-19 Fernando Perez <fperez@colorado.edu>
1238
1245
1239 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1246 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1240 into keys (for prompts, for example).
1247 into keys (for prompts, for example).
1241
1248
1242 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1249 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1243 prompts in case users want them. This introduces a small behavior
1250 prompts in case users want them. This introduces a small behavior
1244 change: ipython does not automatically add a space to all prompts
1251 change: ipython does not automatically add a space to all prompts
1245 anymore. To get the old prompts with a space, users should add it
1252 anymore. To get the old prompts with a space, users should add it
1246 manually to their ipythonrc file, so for example prompt_in1 should
1253 manually to their ipythonrc file, so for example prompt_in1 should
1247 now read 'In [\#]: ' instead of 'In [\#]:'.
1254 now read 'In [\#]: ' instead of 'In [\#]:'.
1248 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1255 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1249 file) to control left-padding of secondary prompts.
1256 file) to control left-padding of secondary prompts.
1250
1257
1251 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1258 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1252 the profiler can't be imported. Fix for Debian, which removed
1259 the profiler can't be imported. Fix for Debian, which removed
1253 profile.py because of License issues. I applied a slightly
1260 profile.py because of License issues. I applied a slightly
1254 modified version of the original Debian patch at
1261 modified version of the original Debian patch at
1255 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1262 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1256
1263
1257 2005-02-17 Fernando Perez <fperez@colorado.edu>
1264 2005-02-17 Fernando Perez <fperez@colorado.edu>
1258
1265
1259 * IPython/genutils.py (native_line_ends): Fix bug which would
1266 * IPython/genutils.py (native_line_ends): Fix bug which would
1260 cause improper line-ends under win32 b/c I was not opening files
1267 cause improper line-ends under win32 b/c I was not opening files
1261 in binary mode. Bug report and fix thanks to Ville.
1268 in binary mode. Bug report and fix thanks to Ville.
1262
1269
1263 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1270 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1264 trying to catch spurious foo[1] autocalls. My fix actually broke
1271 trying to catch spurious foo[1] autocalls. My fix actually broke
1265 ',/' autoquote/call with explicit escape (bad regexp).
1272 ',/' autoquote/call with explicit escape (bad regexp).
1266
1273
1267 2005-02-15 *** Released version 0.6.11
1274 2005-02-15 *** Released version 0.6.11
1268
1275
1269 2005-02-14 Fernando Perez <fperez@colorado.edu>
1276 2005-02-14 Fernando Perez <fperez@colorado.edu>
1270
1277
1271 * IPython/background_jobs.py: New background job management
1278 * IPython/background_jobs.py: New background job management
1272 subsystem. This is implemented via a new set of classes, and
1279 subsystem. This is implemented via a new set of classes, and
1273 IPython now provides a builtin 'jobs' object for background job
1280 IPython now provides a builtin 'jobs' object for background job
1274 execution. A convenience %bg magic serves as a lightweight
1281 execution. A convenience %bg magic serves as a lightweight
1275 frontend for starting the more common type of calls. This was
1282 frontend for starting the more common type of calls. This was
1276 inspired by discussions with B. Granger and the BackgroundCommand
1283 inspired by discussions with B. Granger and the BackgroundCommand
1277 class described in the book Python Scripting for Computational
1284 class described in the book Python Scripting for Computational
1278 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1285 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1279 (although ultimately no code from this text was used, as IPython's
1286 (although ultimately no code from this text was used, as IPython's
1280 system is a separate implementation).
1287 system is a separate implementation).
1281
1288
1282 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1289 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1283 to control the completion of single/double underscore names
1290 to control the completion of single/double underscore names
1284 separately. As documented in the example ipytonrc file, the
1291 separately. As documented in the example ipytonrc file, the
1285 readline_omit__names variable can now be set to 2, to omit even
1292 readline_omit__names variable can now be set to 2, to omit even
1286 single underscore names. Thanks to a patch by Brian Wong
1293 single underscore names. Thanks to a patch by Brian Wong
1287 <BrianWong-AT-AirgoNetworks.Com>.
1294 <BrianWong-AT-AirgoNetworks.Com>.
1288 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1295 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1289 be autocalled as foo([1]) if foo were callable. A problem for
1296 be autocalled as foo([1]) if foo were callable. A problem for
1290 things which are both callable and implement __getitem__.
1297 things which are both callable and implement __getitem__.
1291 (init_readline): Fix autoindentation for win32. Thanks to a patch
1298 (init_readline): Fix autoindentation for win32. Thanks to a patch
1292 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1299 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1293
1300
1294 2005-02-12 Fernando Perez <fperez@colorado.edu>
1301 2005-02-12 Fernando Perez <fperez@colorado.edu>
1295
1302
1296 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1303 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1297 which I had written long ago to sort out user error messages which
1304 which I had written long ago to sort out user error messages which
1298 may occur during startup. This seemed like a good idea initially,
1305 may occur during startup. This seemed like a good idea initially,
1299 but it has proven a disaster in retrospect. I don't want to
1306 but it has proven a disaster in retrospect. I don't want to
1300 change much code for now, so my fix is to set the internal 'debug'
1307 change much code for now, so my fix is to set the internal 'debug'
1301 flag to true everywhere, whose only job was precisely to control
1308 flag to true everywhere, whose only job was precisely to control
1302 this subsystem. This closes issue 28 (as well as avoiding all
1309 this subsystem. This closes issue 28 (as well as avoiding all
1303 sorts of strange hangups which occur from time to time).
1310 sorts of strange hangups which occur from time to time).
1304
1311
1305 2005-02-07 Fernando Perez <fperez@colorado.edu>
1312 2005-02-07 Fernando Perez <fperez@colorado.edu>
1306
1313
1307 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1314 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1308 previous call produced a syntax error.
1315 previous call produced a syntax error.
1309
1316
1310 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1317 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1311 classes without constructor.
1318 classes without constructor.
1312
1319
1313 2005-02-06 Fernando Perez <fperez@colorado.edu>
1320 2005-02-06 Fernando Perez <fperez@colorado.edu>
1314
1321
1315 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1322 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1316 completions with the results of each matcher, so we return results
1323 completions with the results of each matcher, so we return results
1317 to the user from all namespaces. This breaks with ipython
1324 to the user from all namespaces. This breaks with ipython
1318 tradition, but I think it's a nicer behavior. Now you get all
1325 tradition, but I think it's a nicer behavior. Now you get all
1319 possible completions listed, from all possible namespaces (python,
1326 possible completions listed, from all possible namespaces (python,
1320 filesystem, magics...) After a request by John Hunter
1327 filesystem, magics...) After a request by John Hunter
1321 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1328 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1322
1329
1323 2005-02-05 Fernando Perez <fperez@colorado.edu>
1330 2005-02-05 Fernando Perez <fperez@colorado.edu>
1324
1331
1325 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1332 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1326 the call had quote characters in it (the quotes were stripped).
1333 the call had quote characters in it (the quotes were stripped).
1327
1334
1328 2005-01-31 Fernando Perez <fperez@colorado.edu>
1335 2005-01-31 Fernando Perez <fperez@colorado.edu>
1329
1336
1330 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1337 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1331 Itpl.itpl() to make the code more robust against psyco
1338 Itpl.itpl() to make the code more robust against psyco
1332 optimizations.
1339 optimizations.
1333
1340
1334 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1341 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1335 of causing an exception. Quicker, cleaner.
1342 of causing an exception. Quicker, cleaner.
1336
1343
1337 2005-01-28 Fernando Perez <fperez@colorado.edu>
1344 2005-01-28 Fernando Perez <fperez@colorado.edu>
1338
1345
1339 * scripts/ipython_win_post_install.py (install): hardcode
1346 * scripts/ipython_win_post_install.py (install): hardcode
1340 sys.prefix+'python.exe' as the executable path. It turns out that
1347 sys.prefix+'python.exe' as the executable path. It turns out that
1341 during the post-installation run, sys.executable resolves to the
1348 during the post-installation run, sys.executable resolves to the
1342 name of the binary installer! I should report this as a distutils
1349 name of the binary installer! I should report this as a distutils
1343 bug, I think. I updated the .10 release with this tiny fix, to
1350 bug, I think. I updated the .10 release with this tiny fix, to
1344 avoid annoying the lists further.
1351 avoid annoying the lists further.
1345
1352
1346 2005-01-27 *** Released version 0.6.10
1353 2005-01-27 *** Released version 0.6.10
1347
1354
1348 2005-01-27 Fernando Perez <fperez@colorado.edu>
1355 2005-01-27 Fernando Perez <fperez@colorado.edu>
1349
1356
1350 * IPython/numutils.py (norm): Added 'inf' as optional name for
1357 * IPython/numutils.py (norm): Added 'inf' as optional name for
1351 L-infinity norm, included references to mathworld.com for vector
1358 L-infinity norm, included references to mathworld.com for vector
1352 norm definitions.
1359 norm definitions.
1353 (amin/amax): added amin/amax for array min/max. Similar to what
1360 (amin/amax): added amin/amax for array min/max. Similar to what
1354 pylab ships with after the recent reorganization of names.
1361 pylab ships with after the recent reorganization of names.
1355 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1362 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1356
1363
1357 * ipython.el: committed Alex's recent fixes and improvements.
1364 * ipython.el: committed Alex's recent fixes and improvements.
1358 Tested with python-mode from CVS, and it looks excellent. Since
1365 Tested with python-mode from CVS, and it looks excellent. Since
1359 python-mode hasn't released anything in a while, I'm temporarily
1366 python-mode hasn't released anything in a while, I'm temporarily
1360 putting a copy of today's CVS (v 4.70) of python-mode in:
1367 putting a copy of today's CVS (v 4.70) of python-mode in:
1361 http://ipython.scipy.org/tmp/python-mode.el
1368 http://ipython.scipy.org/tmp/python-mode.el
1362
1369
1363 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1370 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1364 sys.executable for the executable name, instead of assuming it's
1371 sys.executable for the executable name, instead of assuming it's
1365 called 'python.exe' (the post-installer would have produced broken
1372 called 'python.exe' (the post-installer would have produced broken
1366 setups on systems with a differently named python binary).
1373 setups on systems with a differently named python binary).
1367
1374
1368 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1375 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1369 references to os.linesep, to make the code more
1376 references to os.linesep, to make the code more
1370 platform-independent. This is also part of the win32 coloring
1377 platform-independent. This is also part of the win32 coloring
1371 fixes.
1378 fixes.
1372
1379
1373 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1380 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1374 lines, which actually cause coloring bugs because the length of
1381 lines, which actually cause coloring bugs because the length of
1375 the line is very difficult to correctly compute with embedded
1382 the line is very difficult to correctly compute with embedded
1376 escapes. This was the source of all the coloring problems under
1383 escapes. This was the source of all the coloring problems under
1377 Win32. I think that _finally_, Win32 users have a properly
1384 Win32. I think that _finally_, Win32 users have a properly
1378 working ipython in all respects. This would never have happened
1385 working ipython in all respects. This would never have happened
1379 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1386 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1380
1387
1381 2005-01-26 *** Released version 0.6.9
1388 2005-01-26 *** Released version 0.6.9
1382
1389
1383 2005-01-25 Fernando Perez <fperez@colorado.edu>
1390 2005-01-25 Fernando Perez <fperez@colorado.edu>
1384
1391
1385 * setup.py: finally, we have a true Windows installer, thanks to
1392 * setup.py: finally, we have a true Windows installer, thanks to
1386 the excellent work of Viktor Ransmayr
1393 the excellent work of Viktor Ransmayr
1387 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1394 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1388 Windows users. The setup routine is quite a bit cleaner thanks to
1395 Windows users. The setup routine is quite a bit cleaner thanks to
1389 this, and the post-install script uses the proper functions to
1396 this, and the post-install script uses the proper functions to
1390 allow a clean de-installation using the standard Windows Control
1397 allow a clean de-installation using the standard Windows Control
1391 Panel.
1398 Panel.
1392
1399
1393 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1400 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1394 environment variable under all OSes (including win32) if
1401 environment variable under all OSes (including win32) if
1395 available. This will give consistency to win32 users who have set
1402 available. This will give consistency to win32 users who have set
1396 this variable for any reason. If os.environ['HOME'] fails, the
1403 this variable for any reason. If os.environ['HOME'] fails, the
1397 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1404 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1398
1405
1399 2005-01-24 Fernando Perez <fperez@colorado.edu>
1406 2005-01-24 Fernando Perez <fperez@colorado.edu>
1400
1407
1401 * IPython/numutils.py (empty_like): add empty_like(), similar to
1408 * IPython/numutils.py (empty_like): add empty_like(), similar to
1402 zeros_like() but taking advantage of the new empty() Numeric routine.
1409 zeros_like() but taking advantage of the new empty() Numeric routine.
1403
1410
1404 2005-01-23 *** Released version 0.6.8
1411 2005-01-23 *** Released version 0.6.8
1405
1412
1406 2005-01-22 Fernando Perez <fperez@colorado.edu>
1413 2005-01-22 Fernando Perez <fperez@colorado.edu>
1407
1414
1408 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1415 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1409 automatic show() calls. After discussing things with JDH, it
1416 automatic show() calls. After discussing things with JDH, it
1410 turns out there are too many corner cases where this can go wrong.
1417 turns out there are too many corner cases where this can go wrong.
1411 It's best not to try to be 'too smart', and simply have ipython
1418 It's best not to try to be 'too smart', and simply have ipython
1412 reproduce as much as possible the default behavior of a normal
1419 reproduce as much as possible the default behavior of a normal
1413 python shell.
1420 python shell.
1414
1421
1415 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1422 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1416 line-splitting regexp and _prefilter() to avoid calling getattr()
1423 line-splitting regexp and _prefilter() to avoid calling getattr()
1417 on assignments. This closes
1424 on assignments. This closes
1418 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1425 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1419 readline uses getattr(), so a simple <TAB> keypress is still
1426 readline uses getattr(), so a simple <TAB> keypress is still
1420 enough to trigger getattr() calls on an object.
1427 enough to trigger getattr() calls on an object.
1421
1428
1422 2005-01-21 Fernando Perez <fperez@colorado.edu>
1429 2005-01-21 Fernando Perez <fperez@colorado.edu>
1423
1430
1424 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1431 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1425 docstring under pylab so it doesn't mask the original.
1432 docstring under pylab so it doesn't mask the original.
1426
1433
1427 2005-01-21 *** Released version 0.6.7
1434 2005-01-21 *** Released version 0.6.7
1428
1435
1429 2005-01-21 Fernando Perez <fperez@colorado.edu>
1436 2005-01-21 Fernando Perez <fperez@colorado.edu>
1430
1437
1431 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1438 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1432 signal handling for win32 users in multithreaded mode.
1439 signal handling for win32 users in multithreaded mode.
1433
1440
1434 2005-01-17 Fernando Perez <fperez@colorado.edu>
1441 2005-01-17 Fernando Perez <fperez@colorado.edu>
1435
1442
1436 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1443 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1437 instances with no __init__. After a crash report by Norbert Nemec
1444 instances with no __init__. After a crash report by Norbert Nemec
1438 <Norbert-AT-nemec-online.de>.
1445 <Norbert-AT-nemec-online.de>.
1439
1446
1440 2005-01-14 Fernando Perez <fperez@colorado.edu>
1447 2005-01-14 Fernando Perez <fperez@colorado.edu>
1441
1448
1442 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1449 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1443 names for verbose exceptions, when multiple dotted names and the
1450 names for verbose exceptions, when multiple dotted names and the
1444 'parent' object were present on the same line.
1451 'parent' object were present on the same line.
1445
1452
1446 2005-01-11 Fernando Perez <fperez@colorado.edu>
1453 2005-01-11 Fernando Perez <fperez@colorado.edu>
1447
1454
1448 * IPython/genutils.py (flag_calls): new utility to trap and flag
1455 * IPython/genutils.py (flag_calls): new utility to trap and flag
1449 calls in functions. I need it to clean up matplotlib support.
1456 calls in functions. I need it to clean up matplotlib support.
1450 Also removed some deprecated code in genutils.
1457 Also removed some deprecated code in genutils.
1451
1458
1452 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1459 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1453 that matplotlib scripts called with %run, which don't call show()
1460 that matplotlib scripts called with %run, which don't call show()
1454 themselves, still have their plotting windows open.
1461 themselves, still have their plotting windows open.
1455
1462
1456 2005-01-05 Fernando Perez <fperez@colorado.edu>
1463 2005-01-05 Fernando Perez <fperez@colorado.edu>
1457
1464
1458 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1465 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1459 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1466 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1460
1467
1461 2004-12-19 Fernando Perez <fperez@colorado.edu>
1468 2004-12-19 Fernando Perez <fperez@colorado.edu>
1462
1469
1463 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1470 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1464 parent_runcode, which was an eyesore. The same result can be
1471 parent_runcode, which was an eyesore. The same result can be
1465 obtained with Python's regular superclass mechanisms.
1472 obtained with Python's regular superclass mechanisms.
1466
1473
1467 2004-12-17 Fernando Perez <fperez@colorado.edu>
1474 2004-12-17 Fernando Perez <fperez@colorado.edu>
1468
1475
1469 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1476 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1470 reported by Prabhu.
1477 reported by Prabhu.
1471 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1478 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1472 sys.stderr) instead of explicitly calling sys.stderr. This helps
1479 sys.stderr) instead of explicitly calling sys.stderr. This helps
1473 maintain our I/O abstractions clean, for future GUI embeddings.
1480 maintain our I/O abstractions clean, for future GUI embeddings.
1474
1481
1475 * IPython/genutils.py (info): added new utility for sys.stderr
1482 * IPython/genutils.py (info): added new utility for sys.stderr
1476 unified info message handling (thin wrapper around warn()).
1483 unified info message handling (thin wrapper around warn()).
1477
1484
1478 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1485 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1479 composite (dotted) names on verbose exceptions.
1486 composite (dotted) names on verbose exceptions.
1480 (VerboseTB.nullrepr): harden against another kind of errors which
1487 (VerboseTB.nullrepr): harden against another kind of errors which
1481 Python's inspect module can trigger, and which were crashing
1488 Python's inspect module can trigger, and which were crashing
1482 IPython. Thanks to a report by Marco Lombardi
1489 IPython. Thanks to a report by Marco Lombardi
1483 <mlombard-AT-ma010192.hq.eso.org>.
1490 <mlombard-AT-ma010192.hq.eso.org>.
1484
1491
1485 2004-12-13 *** Released version 0.6.6
1492 2004-12-13 *** Released version 0.6.6
1486
1493
1487 2004-12-12 Fernando Perez <fperez@colorado.edu>
1494 2004-12-12 Fernando Perez <fperez@colorado.edu>
1488
1495
1489 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1496 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1490 generated by pygtk upon initialization if it was built without
1497 generated by pygtk upon initialization if it was built without
1491 threads (for matplotlib users). After a crash reported by
1498 threads (for matplotlib users). After a crash reported by
1492 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1499 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1493
1500
1494 * IPython/ipmaker.py (make_IPython): fix small bug in the
1501 * IPython/ipmaker.py (make_IPython): fix small bug in the
1495 import_some parameter for multiple imports.
1502 import_some parameter for multiple imports.
1496
1503
1497 * IPython/iplib.py (ipmagic): simplified the interface of
1504 * IPython/iplib.py (ipmagic): simplified the interface of
1498 ipmagic() to take a single string argument, just as it would be
1505 ipmagic() to take a single string argument, just as it would be
1499 typed at the IPython cmd line.
1506 typed at the IPython cmd line.
1500 (ipalias): Added new ipalias() with an interface identical to
1507 (ipalias): Added new ipalias() with an interface identical to
1501 ipmagic(). This completes exposing a pure python interface to the
1508 ipmagic(). This completes exposing a pure python interface to the
1502 alias and magic system, which can be used in loops or more complex
1509 alias and magic system, which can be used in loops or more complex
1503 code where IPython's automatic line mangling is not active.
1510 code where IPython's automatic line mangling is not active.
1504
1511
1505 * IPython/genutils.py (timing): changed interface of timing to
1512 * IPython/genutils.py (timing): changed interface of timing to
1506 simply run code once, which is the most common case. timings()
1513 simply run code once, which is the most common case. timings()
1507 remains unchanged, for the cases where you want multiple runs.
1514 remains unchanged, for the cases where you want multiple runs.
1508
1515
1509 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1516 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1510 bug where Python2.2 crashes with exec'ing code which does not end
1517 bug where Python2.2 crashes with exec'ing code which does not end
1511 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1518 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1512 before.
1519 before.
1513
1520
1514 2004-12-10 Fernando Perez <fperez@colorado.edu>
1521 2004-12-10 Fernando Perez <fperez@colorado.edu>
1515
1522
1516 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1523 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1517 -t to -T, to accomodate the new -t flag in %run (the %run and
1524 -t to -T, to accomodate the new -t flag in %run (the %run and
1518 %prun options are kind of intermixed, and it's not easy to change
1525 %prun options are kind of intermixed, and it's not easy to change
1519 this with the limitations of python's getopt).
1526 this with the limitations of python's getopt).
1520
1527
1521 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1528 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1522 the execution of scripts. It's not as fine-tuned as timeit.py,
1529 the execution of scripts. It's not as fine-tuned as timeit.py,
1523 but it works from inside ipython (and under 2.2, which lacks
1530 but it works from inside ipython (and under 2.2, which lacks
1524 timeit.py). Optionally a number of runs > 1 can be given for
1531 timeit.py). Optionally a number of runs > 1 can be given for
1525 timing very short-running code.
1532 timing very short-running code.
1526
1533
1527 * IPython/genutils.py (uniq_stable): new routine which returns a
1534 * IPython/genutils.py (uniq_stable): new routine which returns a
1528 list of unique elements in any iterable, but in stable order of
1535 list of unique elements in any iterable, but in stable order of
1529 appearance. I needed this for the ultraTB fixes, and it's a handy
1536 appearance. I needed this for the ultraTB fixes, and it's a handy
1530 utility.
1537 utility.
1531
1538
1532 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1539 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1533 dotted names in Verbose exceptions. This had been broken since
1540 dotted names in Verbose exceptions. This had been broken since
1534 the very start, now x.y will properly be printed in a Verbose
1541 the very start, now x.y will properly be printed in a Verbose
1535 traceback, instead of x being shown and y appearing always as an
1542 traceback, instead of x being shown and y appearing always as an
1536 'undefined global'. Getting this to work was a bit tricky,
1543 'undefined global'. Getting this to work was a bit tricky,
1537 because by default python tokenizers are stateless. Saved by
1544 because by default python tokenizers are stateless. Saved by
1538 python's ability to easily add a bit of state to an arbitrary
1545 python's ability to easily add a bit of state to an arbitrary
1539 function (without needing to build a full-blown callable object).
1546 function (without needing to build a full-blown callable object).
1540
1547
1541 Also big cleanup of this code, which had horrendous runtime
1548 Also big cleanup of this code, which had horrendous runtime
1542 lookups of zillions of attributes for colorization. Moved all
1549 lookups of zillions of attributes for colorization. Moved all
1543 this code into a few templates, which make it cleaner and quicker.
1550 this code into a few templates, which make it cleaner and quicker.
1544
1551
1545 Printout quality was also improved for Verbose exceptions: one
1552 Printout quality was also improved for Verbose exceptions: one
1546 variable per line, and memory addresses are printed (this can be
1553 variable per line, and memory addresses are printed (this can be
1547 quite handy in nasty debugging situations, which is what Verbose
1554 quite handy in nasty debugging situations, which is what Verbose
1548 is for).
1555 is for).
1549
1556
1550 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1557 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1551 the command line as scripts to be loaded by embedded instances.
1558 the command line as scripts to be loaded by embedded instances.
1552 Doing so has the potential for an infinite recursion if there are
1559 Doing so has the potential for an infinite recursion if there are
1553 exceptions thrown in the process. This fixes a strange crash
1560 exceptions thrown in the process. This fixes a strange crash
1554 reported by Philippe MULLER <muller-AT-irit.fr>.
1561 reported by Philippe MULLER <muller-AT-irit.fr>.
1555
1562
1556 2004-12-09 Fernando Perez <fperez@colorado.edu>
1563 2004-12-09 Fernando Perez <fperez@colorado.edu>
1557
1564
1558 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1565 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1559 to reflect new names in matplotlib, which now expose the
1566 to reflect new names in matplotlib, which now expose the
1560 matlab-compatible interface via a pylab module instead of the
1567 matlab-compatible interface via a pylab module instead of the
1561 'matlab' name. The new code is backwards compatible, so users of
1568 'matlab' name. The new code is backwards compatible, so users of
1562 all matplotlib versions are OK. Patch by J. Hunter.
1569 all matplotlib versions are OK. Patch by J. Hunter.
1563
1570
1564 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1571 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1565 of __init__ docstrings for instances (class docstrings are already
1572 of __init__ docstrings for instances (class docstrings are already
1566 automatically printed). Instances with customized docstrings
1573 automatically printed). Instances with customized docstrings
1567 (indep. of the class) are also recognized and all 3 separate
1574 (indep. of the class) are also recognized and all 3 separate
1568 docstrings are printed (instance, class, constructor). After some
1575 docstrings are printed (instance, class, constructor). After some
1569 comments/suggestions by J. Hunter.
1576 comments/suggestions by J. Hunter.
1570
1577
1571 2004-12-05 Fernando Perez <fperez@colorado.edu>
1578 2004-12-05 Fernando Perez <fperez@colorado.edu>
1572
1579
1573 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1580 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1574 warnings when tab-completion fails and triggers an exception.
1581 warnings when tab-completion fails and triggers an exception.
1575
1582
1576 2004-12-03 Fernando Perez <fperez@colorado.edu>
1583 2004-12-03 Fernando Perez <fperez@colorado.edu>
1577
1584
1578 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1585 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1579 be triggered when using 'run -p'. An incorrect option flag was
1586 be triggered when using 'run -p'. An incorrect option flag was
1580 being set ('d' instead of 'D').
1587 being set ('d' instead of 'D').
1581 (manpage): fix missing escaped \- sign.
1588 (manpage): fix missing escaped \- sign.
1582
1589
1583 2004-11-30 *** Released version 0.6.5
1590 2004-11-30 *** Released version 0.6.5
1584
1591
1585 2004-11-30 Fernando Perez <fperez@colorado.edu>
1592 2004-11-30 Fernando Perez <fperez@colorado.edu>
1586
1593
1587 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1594 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1588 setting with -d option.
1595 setting with -d option.
1589
1596
1590 * setup.py (docfiles): Fix problem where the doc glob I was using
1597 * setup.py (docfiles): Fix problem where the doc glob I was using
1591 was COMPLETELY BROKEN. It was giving the right files by pure
1598 was COMPLETELY BROKEN. It was giving the right files by pure
1592 accident, but failed once I tried to include ipython.el. Note:
1599 accident, but failed once I tried to include ipython.el. Note:
1593 glob() does NOT allow you to do exclusion on multiple endings!
1600 glob() does NOT allow you to do exclusion on multiple endings!
1594
1601
1595 2004-11-29 Fernando Perez <fperez@colorado.edu>
1602 2004-11-29 Fernando Perez <fperez@colorado.edu>
1596
1603
1597 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
1604 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
1598 the manpage as the source. Better formatting & consistency.
1605 the manpage as the source. Better formatting & consistency.
1599
1606
1600 * IPython/Magic.py (magic_run): Added new -d option, to run
1607 * IPython/Magic.py (magic_run): Added new -d option, to run
1601 scripts under the control of the python pdb debugger. Note that
1608 scripts under the control of the python pdb debugger. Note that
1602 this required changing the %prun option -d to -D, to avoid a clash
1609 this required changing the %prun option -d to -D, to avoid a clash
1603 (since %run must pass options to %prun, and getopt is too dumb to
1610 (since %run must pass options to %prun, and getopt is too dumb to
1604 handle options with string values with embedded spaces). Thanks
1611 handle options with string values with embedded spaces). Thanks
1605 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
1612 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
1606 (magic_who_ls): added type matching to %who and %whos, so that one
1613 (magic_who_ls): added type matching to %who and %whos, so that one
1607 can filter their output to only include variables of certain
1614 can filter their output to only include variables of certain
1608 types. Another suggestion by Matthew.
1615 types. Another suggestion by Matthew.
1609 (magic_whos): Added memory summaries in kb and Mb for arrays.
1616 (magic_whos): Added memory summaries in kb and Mb for arrays.
1610 (magic_who): Improve formatting (break lines every 9 vars).
1617 (magic_who): Improve formatting (break lines every 9 vars).
1611
1618
1612 2004-11-28 Fernando Perez <fperez@colorado.edu>
1619 2004-11-28 Fernando Perez <fperez@colorado.edu>
1613
1620
1614 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
1621 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
1615 cache when empty lines were present.
1622 cache when empty lines were present.
1616
1623
1617 2004-11-24 Fernando Perez <fperez@colorado.edu>
1624 2004-11-24 Fernando Perez <fperez@colorado.edu>
1618
1625
1619 * IPython/usage.py (__doc__): document the re-activated threading
1626 * IPython/usage.py (__doc__): document the re-activated threading
1620 options for WX and GTK.
1627 options for WX and GTK.
1621
1628
1622 2004-11-23 Fernando Perez <fperez@colorado.edu>
1629 2004-11-23 Fernando Perez <fperez@colorado.edu>
1623
1630
1624 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1631 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1625 the -wthread and -gthread options, along with a new -tk one to try
1632 the -wthread and -gthread options, along with a new -tk one to try
1626 and coordinate Tk threading with wx/gtk. The tk support is very
1633 and coordinate Tk threading with wx/gtk. The tk support is very
1627 platform dependent, since it seems to require Tcl and Tk to be
1634 platform dependent, since it seems to require Tcl and Tk to be
1628 built with threads (Fedora1/2 appears NOT to have it, but in
1635 built with threads (Fedora1/2 appears NOT to have it, but in
1629 Prabhu's Debian boxes it works OK). But even with some Tk
1636 Prabhu's Debian boxes it works OK). But even with some Tk
1630 limitations, this is a great improvement.
1637 limitations, this is a great improvement.
1631
1638
1632 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1639 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1633 info in user prompts. Patch by Prabhu.
1640 info in user prompts. Patch by Prabhu.
1634
1641
1635 2004-11-18 Fernando Perez <fperez@colorado.edu>
1642 2004-11-18 Fernando Perez <fperez@colorado.edu>
1636
1643
1637 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1644 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1638 EOFErrors and bail, to avoid infinite loops if a non-terminating
1645 EOFErrors and bail, to avoid infinite loops if a non-terminating
1639 file is fed into ipython. Patch submitted in issue 19 by user,
1646 file is fed into ipython. Patch submitted in issue 19 by user,
1640 many thanks.
1647 many thanks.
1641
1648
1642 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1649 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1643 autoquote/parens in continuation prompts, which can cause lots of
1650 autoquote/parens in continuation prompts, which can cause lots of
1644 problems. Closes roundup issue 20.
1651 problems. Closes roundup issue 20.
1645
1652
1646 2004-11-17 Fernando Perez <fperez@colorado.edu>
1653 2004-11-17 Fernando Perez <fperez@colorado.edu>
1647
1654
1648 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1655 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1649 reported as debian bug #280505. I'm not sure my local changelog
1656 reported as debian bug #280505. I'm not sure my local changelog
1650 entry has the proper debian format (Jack?).
1657 entry has the proper debian format (Jack?).
1651
1658
1652 2004-11-08 *** Released version 0.6.4
1659 2004-11-08 *** Released version 0.6.4
1653
1660
1654 2004-11-08 Fernando Perez <fperez@colorado.edu>
1661 2004-11-08 Fernando Perez <fperez@colorado.edu>
1655
1662
1656 * IPython/iplib.py (init_readline): Fix exit message for Windows
1663 * IPython/iplib.py (init_readline): Fix exit message for Windows
1657 when readline is active. Thanks to a report by Eric Jones
1664 when readline is active. Thanks to a report by Eric Jones
1658 <eric-AT-enthought.com>.
1665 <eric-AT-enthought.com>.
1659
1666
1660 2004-11-07 Fernando Perez <fperez@colorado.edu>
1667 2004-11-07 Fernando Perez <fperez@colorado.edu>
1661
1668
1662 * IPython/genutils.py (page): Add a trap for OSError exceptions,
1669 * IPython/genutils.py (page): Add a trap for OSError exceptions,
1663 sometimes seen by win2k/cygwin users.
1670 sometimes seen by win2k/cygwin users.
1664
1671
1665 2004-11-06 Fernando Perez <fperez@colorado.edu>
1672 2004-11-06 Fernando Perez <fperez@colorado.edu>
1666
1673
1667 * IPython/iplib.py (interact): Change the handling of %Exit from
1674 * IPython/iplib.py (interact): Change the handling of %Exit from
1668 trying to propagate a SystemExit to an internal ipython flag.
1675 trying to propagate a SystemExit to an internal ipython flag.
1669 This is less elegant than using Python's exception mechanism, but
1676 This is less elegant than using Python's exception mechanism, but
1670 I can't get that to work reliably with threads, so under -pylab
1677 I can't get that to work reliably with threads, so under -pylab
1671 %Exit was hanging IPython. Cross-thread exception handling is
1678 %Exit was hanging IPython. Cross-thread exception handling is
1672 really a bitch. Thaks to a bug report by Stephen Walton
1679 really a bitch. Thaks to a bug report by Stephen Walton
1673 <stephen.walton-AT-csun.edu>.
1680 <stephen.walton-AT-csun.edu>.
1674
1681
1675 2004-11-04 Fernando Perez <fperez@colorado.edu>
1682 2004-11-04 Fernando Perez <fperez@colorado.edu>
1676
1683
1677 * IPython/iplib.py (raw_input_original): store a pointer to the
1684 * IPython/iplib.py (raw_input_original): store a pointer to the
1678 true raw_input to harden against code which can modify it
1685 true raw_input to harden against code which can modify it
1679 (wx.py.PyShell does this and would otherwise crash ipython).
1686 (wx.py.PyShell does this and would otherwise crash ipython).
1680 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
1687 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
1681
1688
1682 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
1689 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
1683 Ctrl-C problem, which does not mess up the input line.
1690 Ctrl-C problem, which does not mess up the input line.
1684
1691
1685 2004-11-03 Fernando Perez <fperez@colorado.edu>
1692 2004-11-03 Fernando Perez <fperez@colorado.edu>
1686
1693
1687 * IPython/Release.py: Changed licensing to BSD, in all files.
1694 * IPython/Release.py: Changed licensing to BSD, in all files.
1688 (name): lowercase name for tarball/RPM release.
1695 (name): lowercase name for tarball/RPM release.
1689
1696
1690 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
1697 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
1691 use throughout ipython.
1698 use throughout ipython.
1692
1699
1693 * IPython/Magic.py (Magic._ofind): Switch to using the new
1700 * IPython/Magic.py (Magic._ofind): Switch to using the new
1694 OInspect.getdoc() function.
1701 OInspect.getdoc() function.
1695
1702
1696 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
1703 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
1697 of the line currently being canceled via Ctrl-C. It's extremely
1704 of the line currently being canceled via Ctrl-C. It's extremely
1698 ugly, but I don't know how to do it better (the problem is one of
1705 ugly, but I don't know how to do it better (the problem is one of
1699 handling cross-thread exceptions).
1706 handling cross-thread exceptions).
1700
1707
1701 2004-10-28 Fernando Perez <fperez@colorado.edu>
1708 2004-10-28 Fernando Perez <fperez@colorado.edu>
1702
1709
1703 * IPython/Shell.py (signal_handler): add signal handlers to trap
1710 * IPython/Shell.py (signal_handler): add signal handlers to trap
1704 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
1711 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
1705 report by Francesc Alted.
1712 report by Francesc Alted.
1706
1713
1707 2004-10-21 Fernando Perez <fperez@colorado.edu>
1714 2004-10-21 Fernando Perez <fperez@colorado.edu>
1708
1715
1709 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
1716 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
1710 to % for pysh syntax extensions.
1717 to % for pysh syntax extensions.
1711
1718
1712 2004-10-09 Fernando Perez <fperez@colorado.edu>
1719 2004-10-09 Fernando Perez <fperez@colorado.edu>
1713
1720
1714 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
1721 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
1715 arrays to print a more useful summary, without calling str(arr).
1722 arrays to print a more useful summary, without calling str(arr).
1716 This avoids the problem of extremely lengthy computations which
1723 This avoids the problem of extremely lengthy computations which
1717 occur if arr is large, and appear to the user as a system lockup
1724 occur if arr is large, and appear to the user as a system lockup
1718 with 100% cpu activity. After a suggestion by Kristian Sandberg
1725 with 100% cpu activity. After a suggestion by Kristian Sandberg
1719 <Kristian.Sandberg@colorado.edu>.
1726 <Kristian.Sandberg@colorado.edu>.
1720 (Magic.__init__): fix bug in global magic escapes not being
1727 (Magic.__init__): fix bug in global magic escapes not being
1721 correctly set.
1728 correctly set.
1722
1729
1723 2004-10-08 Fernando Perez <fperez@colorado.edu>
1730 2004-10-08 Fernando Perez <fperez@colorado.edu>
1724
1731
1725 * IPython/Magic.py (__license__): change to absolute imports of
1732 * IPython/Magic.py (__license__): change to absolute imports of
1726 ipython's own internal packages, to start adapting to the absolute
1733 ipython's own internal packages, to start adapting to the absolute
1727 import requirement of PEP-328.
1734 import requirement of PEP-328.
1728
1735
1729 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
1736 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
1730 files, and standardize author/license marks through the Release
1737 files, and standardize author/license marks through the Release
1731 module instead of having per/file stuff (except for files with
1738 module instead of having per/file stuff (except for files with
1732 particular licenses, like the MIT/PSF-licensed codes).
1739 particular licenses, like the MIT/PSF-licensed codes).
1733
1740
1734 * IPython/Debugger.py: remove dead code for python 2.1
1741 * IPython/Debugger.py: remove dead code for python 2.1
1735
1742
1736 2004-10-04 Fernando Perez <fperez@colorado.edu>
1743 2004-10-04 Fernando Perez <fperez@colorado.edu>
1737
1744
1738 * IPython/iplib.py (ipmagic): New function for accessing magics
1745 * IPython/iplib.py (ipmagic): New function for accessing magics
1739 via a normal python function call.
1746 via a normal python function call.
1740
1747
1741 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
1748 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
1742 from '@' to '%', to accomodate the new @decorator syntax of python
1749 from '@' to '%', to accomodate the new @decorator syntax of python
1743 2.4.
1750 2.4.
1744
1751
1745 2004-09-29 Fernando Perez <fperez@colorado.edu>
1752 2004-09-29 Fernando Perez <fperez@colorado.edu>
1746
1753
1747 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
1754 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
1748 matplotlib.use to prevent running scripts which try to switch
1755 matplotlib.use to prevent running scripts which try to switch
1749 interactive backends from within ipython. This will just crash
1756 interactive backends from within ipython. This will just crash
1750 the python interpreter, so we can't allow it (but a detailed error
1757 the python interpreter, so we can't allow it (but a detailed error
1751 is given to the user).
1758 is given to the user).
1752
1759
1753 2004-09-28 Fernando Perez <fperez@colorado.edu>
1760 2004-09-28 Fernando Perez <fperez@colorado.edu>
1754
1761
1755 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
1762 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
1756 matplotlib-related fixes so that using @run with non-matplotlib
1763 matplotlib-related fixes so that using @run with non-matplotlib
1757 scripts doesn't pop up spurious plot windows. This requires
1764 scripts doesn't pop up spurious plot windows. This requires
1758 matplotlib >= 0.63, where I had to make some changes as well.
1765 matplotlib >= 0.63, where I had to make some changes as well.
1759
1766
1760 * IPython/ipmaker.py (make_IPython): update version requirement to
1767 * IPython/ipmaker.py (make_IPython): update version requirement to
1761 python 2.2.
1768 python 2.2.
1762
1769
1763 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
1770 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
1764 banner arg for embedded customization.
1771 banner arg for embedded customization.
1765
1772
1766 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
1773 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
1767 explicit uses of __IP as the IPython's instance name. Now things
1774 explicit uses of __IP as the IPython's instance name. Now things
1768 are properly handled via the shell.name value. The actual code
1775 are properly handled via the shell.name value. The actual code
1769 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
1776 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
1770 is much better than before. I'll clean things completely when the
1777 is much better than before. I'll clean things completely when the
1771 magic stuff gets a real overhaul.
1778 magic stuff gets a real overhaul.
1772
1779
1773 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
1780 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
1774 minor changes to debian dir.
1781 minor changes to debian dir.
1775
1782
1776 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
1783 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
1777 pointer to the shell itself in the interactive namespace even when
1784 pointer to the shell itself in the interactive namespace even when
1778 a user-supplied dict is provided. This is needed for embedding
1785 a user-supplied dict is provided. This is needed for embedding
1779 purposes (found by tests with Michel Sanner).
1786 purposes (found by tests with Michel Sanner).
1780
1787
1781 2004-09-27 Fernando Perez <fperez@colorado.edu>
1788 2004-09-27 Fernando Perez <fperez@colorado.edu>
1782
1789
1783 * IPython/UserConfig/ipythonrc: remove []{} from
1790 * IPython/UserConfig/ipythonrc: remove []{} from
1784 readline_remove_delims, so that things like [modname.<TAB> do
1791 readline_remove_delims, so that things like [modname.<TAB> do
1785 proper completion. This disables [].TAB, but that's a less common
1792 proper completion. This disables [].TAB, but that's a less common
1786 case than module names in list comprehensions, for example.
1793 case than module names in list comprehensions, for example.
1787 Thanks to a report by Andrea Riciputi.
1794 Thanks to a report by Andrea Riciputi.
1788
1795
1789 2004-09-09 Fernando Perez <fperez@colorado.edu>
1796 2004-09-09 Fernando Perez <fperez@colorado.edu>
1790
1797
1791 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
1798 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
1792 blocking problems in win32 and osx. Fix by John.
1799 blocking problems in win32 and osx. Fix by John.
1793
1800
1794 2004-09-08 Fernando Perez <fperez@colorado.edu>
1801 2004-09-08 Fernando Perez <fperez@colorado.edu>
1795
1802
1796 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
1803 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
1797 for Win32 and OSX. Fix by John Hunter.
1804 for Win32 and OSX. Fix by John Hunter.
1798
1805
1799 2004-08-30 *** Released version 0.6.3
1806 2004-08-30 *** Released version 0.6.3
1800
1807
1801 2004-08-30 Fernando Perez <fperez@colorado.edu>
1808 2004-08-30 Fernando Perez <fperez@colorado.edu>
1802
1809
1803 * setup.py (isfile): Add manpages to list of dependent files to be
1810 * setup.py (isfile): Add manpages to list of dependent files to be
1804 updated.
1811 updated.
1805
1812
1806 2004-08-27 Fernando Perez <fperez@colorado.edu>
1813 2004-08-27 Fernando Perez <fperez@colorado.edu>
1807
1814
1808 * IPython/Shell.py (start): I've disabled -wthread and -gthread
1815 * IPython/Shell.py (start): I've disabled -wthread and -gthread
1809 for now. They don't really work with standalone WX/GTK code
1816 for now. They don't really work with standalone WX/GTK code
1810 (though matplotlib IS working fine with both of those backends).
1817 (though matplotlib IS working fine with both of those backends).
1811 This will neeed much more testing. I disabled most things with
1818 This will neeed much more testing. I disabled most things with
1812 comments, so turning it back on later should be pretty easy.
1819 comments, so turning it back on later should be pretty easy.
1813
1820
1814 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
1821 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
1815 autocalling of expressions like r'foo', by modifying the line
1822 autocalling of expressions like r'foo', by modifying the line
1816 split regexp. Closes
1823 split regexp. Closes
1817 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
1824 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
1818 Riley <ipythonbugs-AT-sabi.net>.
1825 Riley <ipythonbugs-AT-sabi.net>.
1819 (InteractiveShell.mainloop): honor --nobanner with banner
1826 (InteractiveShell.mainloop): honor --nobanner with banner
1820 extensions.
1827 extensions.
1821
1828
1822 * IPython/Shell.py: Significant refactoring of all classes, so
1829 * IPython/Shell.py: Significant refactoring of all classes, so
1823 that we can really support ALL matplotlib backends and threading
1830 that we can really support ALL matplotlib backends and threading
1824 models (John spotted a bug with Tk which required this). Now we
1831 models (John spotted a bug with Tk which required this). Now we
1825 should support single-threaded, WX-threads and GTK-threads, both
1832 should support single-threaded, WX-threads and GTK-threads, both
1826 for generic code and for matplotlib.
1833 for generic code and for matplotlib.
1827
1834
1828 * IPython/ipmaker.py (__call__): Changed -mpthread option to
1835 * IPython/ipmaker.py (__call__): Changed -mpthread option to
1829 -pylab, to simplify things for users. Will also remove the pylab
1836 -pylab, to simplify things for users. Will also remove the pylab
1830 profile, since now all of matplotlib configuration is directly
1837 profile, since now all of matplotlib configuration is directly
1831 handled here. This also reduces startup time.
1838 handled here. This also reduces startup time.
1832
1839
1833 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
1840 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
1834 shell wasn't being correctly called. Also in IPShellWX.
1841 shell wasn't being correctly called. Also in IPShellWX.
1835
1842
1836 * IPython/iplib.py (InteractiveShell.__init__): Added option to
1843 * IPython/iplib.py (InteractiveShell.__init__): Added option to
1837 fine-tune banner.
1844 fine-tune banner.
1838
1845
1839 * IPython/numutils.py (spike): Deprecate these spike functions,
1846 * IPython/numutils.py (spike): Deprecate these spike functions,
1840 delete (long deprecated) gnuplot_exec handler.
1847 delete (long deprecated) gnuplot_exec handler.
1841
1848
1842 2004-08-26 Fernando Perez <fperez@colorado.edu>
1849 2004-08-26 Fernando Perez <fperez@colorado.edu>
1843
1850
1844 * ipython.1: Update for threading options, plus some others which
1851 * ipython.1: Update for threading options, plus some others which
1845 were missing.
1852 were missing.
1846
1853
1847 * IPython/ipmaker.py (__call__): Added -wthread option for
1854 * IPython/ipmaker.py (__call__): Added -wthread option for
1848 wxpython thread handling. Make sure threading options are only
1855 wxpython thread handling. Make sure threading options are only
1849 valid at the command line.
1856 valid at the command line.
1850
1857
1851 * scripts/ipython: moved shell selection into a factory function
1858 * scripts/ipython: moved shell selection into a factory function
1852 in Shell.py, to keep the starter script to a minimum.
1859 in Shell.py, to keep the starter script to a minimum.
1853
1860
1854 2004-08-25 Fernando Perez <fperez@colorado.edu>
1861 2004-08-25 Fernando Perez <fperez@colorado.edu>
1855
1862
1856 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
1863 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
1857 John. Along with some recent changes he made to matplotlib, the
1864 John. Along with some recent changes he made to matplotlib, the
1858 next versions of both systems should work very well together.
1865 next versions of both systems should work very well together.
1859
1866
1860 2004-08-24 Fernando Perez <fperez@colorado.edu>
1867 2004-08-24 Fernando Perez <fperez@colorado.edu>
1861
1868
1862 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
1869 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
1863 tried to switch the profiling to using hotshot, but I'm getting
1870 tried to switch the profiling to using hotshot, but I'm getting
1864 strange errors from prof.runctx() there. I may be misreading the
1871 strange errors from prof.runctx() there. I may be misreading the
1865 docs, but it looks weird. For now the profiling code will
1872 docs, but it looks weird. For now the profiling code will
1866 continue to use the standard profiler.
1873 continue to use the standard profiler.
1867
1874
1868 2004-08-23 Fernando Perez <fperez@colorado.edu>
1875 2004-08-23 Fernando Perez <fperez@colorado.edu>
1869
1876
1870 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
1877 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
1871 threaded shell, by John Hunter. It's not quite ready yet, but
1878 threaded shell, by John Hunter. It's not quite ready yet, but
1872 close.
1879 close.
1873
1880
1874 2004-08-22 Fernando Perez <fperez@colorado.edu>
1881 2004-08-22 Fernando Perez <fperez@colorado.edu>
1875
1882
1876 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
1883 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
1877 in Magic and ultraTB.
1884 in Magic and ultraTB.
1878
1885
1879 * ipython.1: document threading options in manpage.
1886 * ipython.1: document threading options in manpage.
1880
1887
1881 * scripts/ipython: Changed name of -thread option to -gthread,
1888 * scripts/ipython: Changed name of -thread option to -gthread,
1882 since this is GTK specific. I want to leave the door open for a
1889 since this is GTK specific. I want to leave the door open for a
1883 -wthread option for WX, which will most likely be necessary. This
1890 -wthread option for WX, which will most likely be necessary. This
1884 change affects usage and ipmaker as well.
1891 change affects usage and ipmaker as well.
1885
1892
1886 * IPython/Shell.py (matplotlib_shell): Add a factory function to
1893 * IPython/Shell.py (matplotlib_shell): Add a factory function to
1887 handle the matplotlib shell issues. Code by John Hunter
1894 handle the matplotlib shell issues. Code by John Hunter
1888 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1895 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1889 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
1896 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
1890 broken (and disabled for end users) for now, but it puts the
1897 broken (and disabled for end users) for now, but it puts the
1891 infrastructure in place.
1898 infrastructure in place.
1892
1899
1893 2004-08-21 Fernando Perez <fperez@colorado.edu>
1900 2004-08-21 Fernando Perez <fperez@colorado.edu>
1894
1901
1895 * ipythonrc-pylab: Add matplotlib support.
1902 * ipythonrc-pylab: Add matplotlib support.
1896
1903
1897 * matplotlib_config.py: new files for matplotlib support, part of
1904 * matplotlib_config.py: new files for matplotlib support, part of
1898 the pylab profile.
1905 the pylab profile.
1899
1906
1900 * IPython/usage.py (__doc__): documented the threading options.
1907 * IPython/usage.py (__doc__): documented the threading options.
1901
1908
1902 2004-08-20 Fernando Perez <fperez@colorado.edu>
1909 2004-08-20 Fernando Perez <fperez@colorado.edu>
1903
1910
1904 * ipython: Modified the main calling routine to handle the -thread
1911 * ipython: Modified the main calling routine to handle the -thread
1905 and -mpthread options. This needs to be done as a top-level hack,
1912 and -mpthread options. This needs to be done as a top-level hack,
1906 because it determines which class to instantiate for IPython
1913 because it determines which class to instantiate for IPython
1907 itself.
1914 itself.
1908
1915
1909 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
1916 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
1910 classes to support multithreaded GTK operation without blocking,
1917 classes to support multithreaded GTK operation without blocking,
1911 and matplotlib with all backends. This is a lot of still very
1918 and matplotlib with all backends. This is a lot of still very
1912 experimental code, and threads are tricky. So it may still have a
1919 experimental code, and threads are tricky. So it may still have a
1913 few rough edges... This code owes a lot to
1920 few rough edges... This code owes a lot to
1914 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
1921 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
1915 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
1922 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
1916 to John Hunter for all the matplotlib work.
1923 to John Hunter for all the matplotlib work.
1917
1924
1918 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
1925 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
1919 options for gtk thread and matplotlib support.
1926 options for gtk thread and matplotlib support.
1920
1927
1921 2004-08-16 Fernando Perez <fperez@colorado.edu>
1928 2004-08-16 Fernando Perez <fperez@colorado.edu>
1922
1929
1923 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
1930 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
1924 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
1931 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
1925 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
1932 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
1926
1933
1927 2004-08-11 Fernando Perez <fperez@colorado.edu>
1934 2004-08-11 Fernando Perez <fperez@colorado.edu>
1928
1935
1929 * setup.py (isfile): Fix build so documentation gets updated for
1936 * setup.py (isfile): Fix build so documentation gets updated for
1930 rpms (it was only done for .tgz builds).
1937 rpms (it was only done for .tgz builds).
1931
1938
1932 2004-08-10 Fernando Perez <fperez@colorado.edu>
1939 2004-08-10 Fernando Perez <fperez@colorado.edu>
1933
1940
1934 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
1941 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
1935
1942
1936 * iplib.py : Silence syntax error exceptions in tab-completion.
1943 * iplib.py : Silence syntax error exceptions in tab-completion.
1937
1944
1938 2004-08-05 Fernando Perez <fperez@colorado.edu>
1945 2004-08-05 Fernando Perez <fperez@colorado.edu>
1939
1946
1940 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
1947 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
1941 'color off' mark for continuation prompts. This was causing long
1948 'color off' mark for continuation prompts. This was causing long
1942 continuation lines to mis-wrap.
1949 continuation lines to mis-wrap.
1943
1950
1944 2004-08-01 Fernando Perez <fperez@colorado.edu>
1951 2004-08-01 Fernando Perez <fperez@colorado.edu>
1945
1952
1946 * IPython/ipmaker.py (make_IPython): Allow the shell class used
1953 * IPython/ipmaker.py (make_IPython): Allow the shell class used
1947 for building ipython to be a parameter. All this is necessary
1954 for building ipython to be a parameter. All this is necessary
1948 right now to have a multithreaded version, but this insane
1955 right now to have a multithreaded version, but this insane
1949 non-design will be cleaned up soon. For now, it's a hack that
1956 non-design will be cleaned up soon. For now, it's a hack that
1950 works.
1957 works.
1951
1958
1952 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
1959 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
1953 args in various places. No bugs so far, but it's a dangerous
1960 args in various places. No bugs so far, but it's a dangerous
1954 practice.
1961 practice.
1955
1962
1956 2004-07-31 Fernando Perez <fperez@colorado.edu>
1963 2004-07-31 Fernando Perez <fperez@colorado.edu>
1957
1964
1958 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
1965 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
1959 fix completion of files with dots in their names under most
1966 fix completion of files with dots in their names under most
1960 profiles (pysh was OK because the completion order is different).
1967 profiles (pysh was OK because the completion order is different).
1961
1968
1962 2004-07-27 Fernando Perez <fperez@colorado.edu>
1969 2004-07-27 Fernando Perez <fperez@colorado.edu>
1963
1970
1964 * IPython/iplib.py (InteractiveShell.__init__): build dict of
1971 * IPython/iplib.py (InteractiveShell.__init__): build dict of
1965 keywords manually, b/c the one in keyword.py was removed in python
1972 keywords manually, b/c the one in keyword.py was removed in python
1966 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
1973 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
1967 This is NOT a bug under python 2.3 and earlier.
1974 This is NOT a bug under python 2.3 and earlier.
1968
1975
1969 2004-07-26 Fernando Perez <fperez@colorado.edu>
1976 2004-07-26 Fernando Perez <fperez@colorado.edu>
1970
1977
1971 * IPython/ultraTB.py (VerboseTB.text): Add another
1978 * IPython/ultraTB.py (VerboseTB.text): Add another
1972 linecache.checkcache() call to try to prevent inspect.py from
1979 linecache.checkcache() call to try to prevent inspect.py from
1973 crashing under python 2.3. I think this fixes
1980 crashing under python 2.3. I think this fixes
1974 http://www.scipy.net/roundup/ipython/issue17.
1981 http://www.scipy.net/roundup/ipython/issue17.
1975
1982
1976 2004-07-26 *** Released version 0.6.2
1983 2004-07-26 *** Released version 0.6.2
1977
1984
1978 2004-07-26 Fernando Perez <fperez@colorado.edu>
1985 2004-07-26 Fernando Perez <fperez@colorado.edu>
1979
1986
1980 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
1987 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
1981 fail for any number.
1988 fail for any number.
1982 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
1989 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
1983 empty bookmarks.
1990 empty bookmarks.
1984
1991
1985 2004-07-26 *** Released version 0.6.1
1992 2004-07-26 *** Released version 0.6.1
1986
1993
1987 2004-07-26 Fernando Perez <fperez@colorado.edu>
1994 2004-07-26 Fernando Perez <fperez@colorado.edu>
1988
1995
1989 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
1996 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
1990
1997
1991 * IPython/iplib.py (protect_filename): Applied Ville's patch for
1998 * IPython/iplib.py (protect_filename): Applied Ville's patch for
1992 escaping '()[]{}' in filenames.
1999 escaping '()[]{}' in filenames.
1993
2000
1994 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2001 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
1995 Python 2.2 users who lack a proper shlex.split.
2002 Python 2.2 users who lack a proper shlex.split.
1996
2003
1997 2004-07-19 Fernando Perez <fperez@colorado.edu>
2004 2004-07-19 Fernando Perez <fperez@colorado.edu>
1998
2005
1999 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2006 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2000 for reading readline's init file. I follow the normal chain:
2007 for reading readline's init file. I follow the normal chain:
2001 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2008 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2002 report by Mike Heeter. This closes
2009 report by Mike Heeter. This closes
2003 http://www.scipy.net/roundup/ipython/issue16.
2010 http://www.scipy.net/roundup/ipython/issue16.
2004
2011
2005 2004-07-18 Fernando Perez <fperez@colorado.edu>
2012 2004-07-18 Fernando Perez <fperez@colorado.edu>
2006
2013
2007 * IPython/iplib.py (__init__): Add better handling of '\' under
2014 * IPython/iplib.py (__init__): Add better handling of '\' under
2008 Win32 for filenames. After a patch by Ville.
2015 Win32 for filenames. After a patch by Ville.
2009
2016
2010 2004-07-17 Fernando Perez <fperez@colorado.edu>
2017 2004-07-17 Fernando Perez <fperez@colorado.edu>
2011
2018
2012 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2019 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2013 autocalling would be triggered for 'foo is bar' if foo is
2020 autocalling would be triggered for 'foo is bar' if foo is
2014 callable. I also cleaned up the autocall detection code to use a
2021 callable. I also cleaned up the autocall detection code to use a
2015 regexp, which is faster. Bug reported by Alexander Schmolck.
2022 regexp, which is faster. Bug reported by Alexander Schmolck.
2016
2023
2017 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2024 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2018 '?' in them would confuse the help system. Reported by Alex
2025 '?' in them would confuse the help system. Reported by Alex
2019 Schmolck.
2026 Schmolck.
2020
2027
2021 2004-07-16 Fernando Perez <fperez@colorado.edu>
2028 2004-07-16 Fernando Perez <fperez@colorado.edu>
2022
2029
2023 * IPython/GnuplotInteractive.py (__all__): added plot2.
2030 * IPython/GnuplotInteractive.py (__all__): added plot2.
2024
2031
2025 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2032 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2026 plotting dictionaries, lists or tuples of 1d arrays.
2033 plotting dictionaries, lists or tuples of 1d arrays.
2027
2034
2028 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2035 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2029 optimizations.
2036 optimizations.
2030
2037
2031 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2038 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2032 the information which was there from Janko's original IPP code:
2039 the information which was there from Janko's original IPP code:
2033
2040
2034 03.05.99 20:53 porto.ifm.uni-kiel.de
2041 03.05.99 20:53 porto.ifm.uni-kiel.de
2035 --Started changelog.
2042 --Started changelog.
2036 --make clear do what it say it does
2043 --make clear do what it say it does
2037 --added pretty output of lines from inputcache
2044 --added pretty output of lines from inputcache
2038 --Made Logger a mixin class, simplifies handling of switches
2045 --Made Logger a mixin class, simplifies handling of switches
2039 --Added own completer class. .string<TAB> expands to last history
2046 --Added own completer class. .string<TAB> expands to last history
2040 line which starts with string. The new expansion is also present
2047 line which starts with string. The new expansion is also present
2041 with Ctrl-r from the readline library. But this shows, who this
2048 with Ctrl-r from the readline library. But this shows, who this
2042 can be done for other cases.
2049 can be done for other cases.
2043 --Added convention that all shell functions should accept a
2050 --Added convention that all shell functions should accept a
2044 parameter_string This opens the door for different behaviour for
2051 parameter_string This opens the door for different behaviour for
2045 each function. @cd is a good example of this.
2052 each function. @cd is a good example of this.
2046
2053
2047 04.05.99 12:12 porto.ifm.uni-kiel.de
2054 04.05.99 12:12 porto.ifm.uni-kiel.de
2048 --added logfile rotation
2055 --added logfile rotation
2049 --added new mainloop method which freezes first the namespace
2056 --added new mainloop method which freezes first the namespace
2050
2057
2051 07.05.99 21:24 porto.ifm.uni-kiel.de
2058 07.05.99 21:24 porto.ifm.uni-kiel.de
2052 --added the docreader classes. Now there is a help system.
2059 --added the docreader classes. Now there is a help system.
2053 -This is only a first try. Currently it's not easy to put new
2060 -This is only a first try. Currently it's not easy to put new
2054 stuff in the indices. But this is the way to go. Info would be
2061 stuff in the indices. But this is the way to go. Info would be
2055 better, but HTML is every where and not everybody has an info
2062 better, but HTML is every where and not everybody has an info
2056 system installed and it's not so easy to change html-docs to info.
2063 system installed and it's not so easy to change html-docs to info.
2057 --added global logfile option
2064 --added global logfile option
2058 --there is now a hook for object inspection method pinfo needs to
2065 --there is now a hook for object inspection method pinfo needs to
2059 be provided for this. Can be reached by two '??'.
2066 be provided for this. Can be reached by two '??'.
2060
2067
2061 08.05.99 20:51 porto.ifm.uni-kiel.de
2068 08.05.99 20:51 porto.ifm.uni-kiel.de
2062 --added a README
2069 --added a README
2063 --bug in rc file. Something has changed so functions in the rc
2070 --bug in rc file. Something has changed so functions in the rc
2064 file need to reference the shell and not self. Not clear if it's a
2071 file need to reference the shell and not self. Not clear if it's a
2065 bug or feature.
2072 bug or feature.
2066 --changed rc file for new behavior
2073 --changed rc file for new behavior
2067
2074
2068 2004-07-15 Fernando Perez <fperez@colorado.edu>
2075 2004-07-15 Fernando Perez <fperez@colorado.edu>
2069
2076
2070 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2077 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2071 cache was falling out of sync in bizarre manners when multi-line
2078 cache was falling out of sync in bizarre manners when multi-line
2072 input was present. Minor optimizations and cleanup.
2079 input was present. Minor optimizations and cleanup.
2073
2080
2074 (Logger): Remove old Changelog info for cleanup. This is the
2081 (Logger): Remove old Changelog info for cleanup. This is the
2075 information which was there from Janko's original code:
2082 information which was there from Janko's original code:
2076
2083
2077 Changes to Logger: - made the default log filename a parameter
2084 Changes to Logger: - made the default log filename a parameter
2078
2085
2079 - put a check for lines beginning with !@? in log(). Needed
2086 - put a check for lines beginning with !@? in log(). Needed
2080 (even if the handlers properly log their lines) for mid-session
2087 (even if the handlers properly log their lines) for mid-session
2081 logging activation to work properly. Without this, lines logged
2088 logging activation to work properly. Without this, lines logged
2082 in mid session, which get read from the cache, would end up
2089 in mid session, which get read from the cache, would end up
2083 'bare' (with !@? in the open) in the log. Now they are caught
2090 'bare' (with !@? in the open) in the log. Now they are caught
2084 and prepended with a #.
2091 and prepended with a #.
2085
2092
2086 * IPython/iplib.py (InteractiveShell.init_readline): added check
2093 * IPython/iplib.py (InteractiveShell.init_readline): added check
2087 in case MagicCompleter fails to be defined, so we don't crash.
2094 in case MagicCompleter fails to be defined, so we don't crash.
2088
2095
2089 2004-07-13 Fernando Perez <fperez@colorado.edu>
2096 2004-07-13 Fernando Perez <fperez@colorado.edu>
2090
2097
2091 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2098 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2092 of EPS if the requested filename ends in '.eps'.
2099 of EPS if the requested filename ends in '.eps'.
2093
2100
2094 2004-07-04 Fernando Perez <fperez@colorado.edu>
2101 2004-07-04 Fernando Perez <fperez@colorado.edu>
2095
2102
2096 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2103 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2097 escaping of quotes when calling the shell.
2104 escaping of quotes when calling the shell.
2098
2105
2099 2004-07-02 Fernando Perez <fperez@colorado.edu>
2106 2004-07-02 Fernando Perez <fperez@colorado.edu>
2100
2107
2101 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2108 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2102 gettext not working because we were clobbering '_'. Fixes
2109 gettext not working because we were clobbering '_'. Fixes
2103 http://www.scipy.net/roundup/ipython/issue6.
2110 http://www.scipy.net/roundup/ipython/issue6.
2104
2111
2105 2004-07-01 Fernando Perez <fperez@colorado.edu>
2112 2004-07-01 Fernando Perez <fperez@colorado.edu>
2106
2113
2107 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2114 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2108 into @cd. Patch by Ville.
2115 into @cd. Patch by Ville.
2109
2116
2110 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2117 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2111 new function to store things after ipmaker runs. Patch by Ville.
2118 new function to store things after ipmaker runs. Patch by Ville.
2112 Eventually this will go away once ipmaker is removed and the class
2119 Eventually this will go away once ipmaker is removed and the class
2113 gets cleaned up, but for now it's ok. Key functionality here is
2120 gets cleaned up, but for now it's ok. Key functionality here is
2114 the addition of the persistent storage mechanism, a dict for
2121 the addition of the persistent storage mechanism, a dict for
2115 keeping data across sessions (for now just bookmarks, but more can
2122 keeping data across sessions (for now just bookmarks, but more can
2116 be implemented later).
2123 be implemented later).
2117
2124
2118 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2125 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2119 persistent across sections. Patch by Ville, I modified it
2126 persistent across sections. Patch by Ville, I modified it
2120 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2127 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2121 added a '-l' option to list all bookmarks.
2128 added a '-l' option to list all bookmarks.
2122
2129
2123 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2130 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2124 center for cleanup. Registered with atexit.register(). I moved
2131 center for cleanup. Registered with atexit.register(). I moved
2125 here the old exit_cleanup(). After a patch by Ville.
2132 here the old exit_cleanup(). After a patch by Ville.
2126
2133
2127 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2134 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2128 characters in the hacked shlex_split for python 2.2.
2135 characters in the hacked shlex_split for python 2.2.
2129
2136
2130 * IPython/iplib.py (file_matches): more fixes to filenames with
2137 * IPython/iplib.py (file_matches): more fixes to filenames with
2131 whitespace in them. It's not perfect, but limitations in python's
2138 whitespace in them. It's not perfect, but limitations in python's
2132 readline make it impossible to go further.
2139 readline make it impossible to go further.
2133
2140
2134 2004-06-29 Fernando Perez <fperez@colorado.edu>
2141 2004-06-29 Fernando Perez <fperez@colorado.edu>
2135
2142
2136 * IPython/iplib.py (file_matches): escape whitespace correctly in
2143 * IPython/iplib.py (file_matches): escape whitespace correctly in
2137 filename completions. Bug reported by Ville.
2144 filename completions. Bug reported by Ville.
2138
2145
2139 2004-06-28 Fernando Perez <fperez@colorado.edu>
2146 2004-06-28 Fernando Perez <fperez@colorado.edu>
2140
2147
2141 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2148 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2142 the history file will be called 'history-PROFNAME' (or just
2149 the history file will be called 'history-PROFNAME' (or just
2143 'history' if no profile is loaded). I was getting annoyed at
2150 'history' if no profile is loaded). I was getting annoyed at
2144 getting my Numerical work history clobbered by pysh sessions.
2151 getting my Numerical work history clobbered by pysh sessions.
2145
2152
2146 * IPython/iplib.py (InteractiveShell.__init__): Internal
2153 * IPython/iplib.py (InteractiveShell.__init__): Internal
2147 getoutputerror() function so that we can honor the system_verbose
2154 getoutputerror() function so that we can honor the system_verbose
2148 flag for _all_ system calls. I also added escaping of #
2155 flag for _all_ system calls. I also added escaping of #
2149 characters here to avoid confusing Itpl.
2156 characters here to avoid confusing Itpl.
2150
2157
2151 * IPython/Magic.py (shlex_split): removed call to shell in
2158 * IPython/Magic.py (shlex_split): removed call to shell in
2152 parse_options and replaced it with shlex.split(). The annoying
2159 parse_options and replaced it with shlex.split(). The annoying
2153 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2160 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2154 to backport it from 2.3, with several frail hacks (the shlex
2161 to backport it from 2.3, with several frail hacks (the shlex
2155 module is rather limited in 2.2). Thanks to a suggestion by Ville
2162 module is rather limited in 2.2). Thanks to a suggestion by Ville
2156 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2163 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2157 problem.
2164 problem.
2158
2165
2159 (Magic.magic_system_verbose): new toggle to print the actual
2166 (Magic.magic_system_verbose): new toggle to print the actual
2160 system calls made by ipython. Mainly for debugging purposes.
2167 system calls made by ipython. Mainly for debugging purposes.
2161
2168
2162 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2169 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2163 doesn't support persistence. Reported (and fix suggested) by
2170 doesn't support persistence. Reported (and fix suggested) by
2164 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2171 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2165
2172
2166 2004-06-26 Fernando Perez <fperez@colorado.edu>
2173 2004-06-26 Fernando Perez <fperez@colorado.edu>
2167
2174
2168 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2175 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2169 continue prompts.
2176 continue prompts.
2170
2177
2171 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2178 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2172 function (basically a big docstring) and a few more things here to
2179 function (basically a big docstring) and a few more things here to
2173 speedup startup. pysh.py is now very lightweight. We want because
2180 speedup startup. pysh.py is now very lightweight. We want because
2174 it gets execfile'd, while InterpreterExec gets imported, so
2181 it gets execfile'd, while InterpreterExec gets imported, so
2175 byte-compilation saves time.
2182 byte-compilation saves time.
2176
2183
2177 2004-06-25 Fernando Perez <fperez@colorado.edu>
2184 2004-06-25 Fernando Perez <fperez@colorado.edu>
2178
2185
2179 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2186 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2180 -NUM', which was recently broken.
2187 -NUM', which was recently broken.
2181
2188
2182 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2189 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2183 in multi-line input (but not !!, which doesn't make sense there).
2190 in multi-line input (but not !!, which doesn't make sense there).
2184
2191
2185 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2192 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2186 It's just too useful, and people can turn it off in the less
2193 It's just too useful, and people can turn it off in the less
2187 common cases where it's a problem.
2194 common cases where it's a problem.
2188
2195
2189 2004-06-24 Fernando Perez <fperez@colorado.edu>
2196 2004-06-24 Fernando Perez <fperez@colorado.edu>
2190
2197
2191 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2198 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2192 special syntaxes (like alias calling) is now allied in multi-line
2199 special syntaxes (like alias calling) is now allied in multi-line
2193 input. This is still _very_ experimental, but it's necessary for
2200 input. This is still _very_ experimental, but it's necessary for
2194 efficient shell usage combining python looping syntax with system
2201 efficient shell usage combining python looping syntax with system
2195 calls. For now it's restricted to aliases, I don't think it
2202 calls. For now it's restricted to aliases, I don't think it
2196 really even makes sense to have this for magics.
2203 really even makes sense to have this for magics.
2197
2204
2198 2004-06-23 Fernando Perez <fperez@colorado.edu>
2205 2004-06-23 Fernando Perez <fperez@colorado.edu>
2199
2206
2200 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2207 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2201 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2208 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2202
2209
2203 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2210 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2204 extensions under Windows (after code sent by Gary Bishop). The
2211 extensions under Windows (after code sent by Gary Bishop). The
2205 extensions considered 'executable' are stored in IPython's rc
2212 extensions considered 'executable' are stored in IPython's rc
2206 structure as win_exec_ext.
2213 structure as win_exec_ext.
2207
2214
2208 * IPython/genutils.py (shell): new function, like system() but
2215 * IPython/genutils.py (shell): new function, like system() but
2209 without return value. Very useful for interactive shell work.
2216 without return value. Very useful for interactive shell work.
2210
2217
2211 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2218 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2212 delete aliases.
2219 delete aliases.
2213
2220
2214 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2221 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2215 sure that the alias table doesn't contain python keywords.
2222 sure that the alias table doesn't contain python keywords.
2216
2223
2217 2004-06-21 Fernando Perez <fperez@colorado.edu>
2224 2004-06-21 Fernando Perez <fperez@colorado.edu>
2218
2225
2219 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2226 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2220 non-existent items are found in $PATH. Reported by Thorsten.
2227 non-existent items are found in $PATH. Reported by Thorsten.
2221
2228
2222 2004-06-20 Fernando Perez <fperez@colorado.edu>
2229 2004-06-20 Fernando Perez <fperez@colorado.edu>
2223
2230
2224 * IPython/iplib.py (complete): modified the completer so that the
2231 * IPython/iplib.py (complete): modified the completer so that the
2225 order of priorities can be easily changed at runtime.
2232 order of priorities can be easily changed at runtime.
2226
2233
2227 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2234 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2228 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2235 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2229
2236
2230 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2237 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2231 expand Python variables prepended with $ in all system calls. The
2238 expand Python variables prepended with $ in all system calls. The
2232 same was done to InteractiveShell.handle_shell_escape. Now all
2239 same was done to InteractiveShell.handle_shell_escape. Now all
2233 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2240 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2234 expansion of python variables and expressions according to the
2241 expansion of python variables and expressions according to the
2235 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2242 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2236
2243
2237 Though PEP-215 has been rejected, a similar (but simpler) one
2244 Though PEP-215 has been rejected, a similar (but simpler) one
2238 seems like it will go into Python 2.4, PEP-292 -
2245 seems like it will go into Python 2.4, PEP-292 -
2239 http://www.python.org/peps/pep-0292.html.
2246 http://www.python.org/peps/pep-0292.html.
2240
2247
2241 I'll keep the full syntax of PEP-215, since IPython has since the
2248 I'll keep the full syntax of PEP-215, since IPython has since the
2242 start used Ka-Ping Yee's reference implementation discussed there
2249 start used Ka-Ping Yee's reference implementation discussed there
2243 (Itpl), and I actually like the powerful semantics it offers.
2250 (Itpl), and I actually like the powerful semantics it offers.
2244
2251
2245 In order to access normal shell variables, the $ has to be escaped
2252 In order to access normal shell variables, the $ has to be escaped
2246 via an extra $. For example:
2253 via an extra $. For example:
2247
2254
2248 In [7]: PATH='a python variable'
2255 In [7]: PATH='a python variable'
2249
2256
2250 In [8]: !echo $PATH
2257 In [8]: !echo $PATH
2251 a python variable
2258 a python variable
2252
2259
2253 In [9]: !echo $$PATH
2260 In [9]: !echo $$PATH
2254 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2261 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2255
2262
2256 (Magic.parse_options): escape $ so the shell doesn't evaluate
2263 (Magic.parse_options): escape $ so the shell doesn't evaluate
2257 things prematurely.
2264 things prematurely.
2258
2265
2259 * IPython/iplib.py (InteractiveShell.call_alias): added the
2266 * IPython/iplib.py (InteractiveShell.call_alias): added the
2260 ability for aliases to expand python variables via $.
2267 ability for aliases to expand python variables via $.
2261
2268
2262 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2269 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2263 system, now there's a @rehash/@rehashx pair of magics. These work
2270 system, now there's a @rehash/@rehashx pair of magics. These work
2264 like the csh rehash command, and can be invoked at any time. They
2271 like the csh rehash command, and can be invoked at any time. They
2265 build a table of aliases to everything in the user's $PATH
2272 build a table of aliases to everything in the user's $PATH
2266 (@rehash uses everything, @rehashx is slower but only adds
2273 (@rehash uses everything, @rehashx is slower but only adds
2267 executable files). With this, the pysh.py-based shell profile can
2274 executable files). With this, the pysh.py-based shell profile can
2268 now simply call rehash upon startup, and full access to all
2275 now simply call rehash upon startup, and full access to all
2269 programs in the user's path is obtained.
2276 programs in the user's path is obtained.
2270
2277
2271 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2278 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2272 functionality is now fully in place. I removed the old dynamic
2279 functionality is now fully in place. I removed the old dynamic
2273 code generation based approach, in favor of a much lighter one
2280 code generation based approach, in favor of a much lighter one
2274 based on a simple dict. The advantage is that this allows me to
2281 based on a simple dict. The advantage is that this allows me to
2275 now have thousands of aliases with negligible cost (unthinkable
2282 now have thousands of aliases with negligible cost (unthinkable
2276 with the old system).
2283 with the old system).
2277
2284
2278 2004-06-19 Fernando Perez <fperez@colorado.edu>
2285 2004-06-19 Fernando Perez <fperez@colorado.edu>
2279
2286
2280 * IPython/iplib.py (__init__): extended MagicCompleter class to
2287 * IPython/iplib.py (__init__): extended MagicCompleter class to
2281 also complete (last in priority) on user aliases.
2288 also complete (last in priority) on user aliases.
2282
2289
2283 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2290 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2284 call to eval.
2291 call to eval.
2285 (ItplNS.__init__): Added a new class which functions like Itpl,
2292 (ItplNS.__init__): Added a new class which functions like Itpl,
2286 but allows configuring the namespace for the evaluation to occur
2293 but allows configuring the namespace for the evaluation to occur
2287 in.
2294 in.
2288
2295
2289 2004-06-18 Fernando Perez <fperez@colorado.edu>
2296 2004-06-18 Fernando Perez <fperez@colorado.edu>
2290
2297
2291 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2298 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2292 better message when 'exit' or 'quit' are typed (a common newbie
2299 better message when 'exit' or 'quit' are typed (a common newbie
2293 confusion).
2300 confusion).
2294
2301
2295 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2302 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2296 check for Windows users.
2303 check for Windows users.
2297
2304
2298 * IPython/iplib.py (InteractiveShell.user_setup): removed
2305 * IPython/iplib.py (InteractiveShell.user_setup): removed
2299 disabling of colors for Windows. I'll test at runtime and issue a
2306 disabling of colors for Windows. I'll test at runtime and issue a
2300 warning if Gary's readline isn't found, as to nudge users to
2307 warning if Gary's readline isn't found, as to nudge users to
2301 download it.
2308 download it.
2302
2309
2303 2004-06-16 Fernando Perez <fperez@colorado.edu>
2310 2004-06-16 Fernando Perez <fperez@colorado.edu>
2304
2311
2305 * IPython/genutils.py (Stream.__init__): changed to print errors
2312 * IPython/genutils.py (Stream.__init__): changed to print errors
2306 to sys.stderr. I had a circular dependency here. Now it's
2313 to sys.stderr. I had a circular dependency here. Now it's
2307 possible to run ipython as IDLE's shell (consider this pre-alpha,
2314 possible to run ipython as IDLE's shell (consider this pre-alpha,
2308 since true stdout things end up in the starting terminal instead
2315 since true stdout things end up in the starting terminal instead
2309 of IDLE's out).
2316 of IDLE's out).
2310
2317
2311 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2318 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2312 users who haven't # updated their prompt_in2 definitions. Remove
2319 users who haven't # updated their prompt_in2 definitions. Remove
2313 eventually.
2320 eventually.
2314 (multiple_replace): added credit to original ASPN recipe.
2321 (multiple_replace): added credit to original ASPN recipe.
2315
2322
2316 2004-06-15 Fernando Perez <fperez@colorado.edu>
2323 2004-06-15 Fernando Perez <fperez@colorado.edu>
2317
2324
2318 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2325 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2319 list of auto-defined aliases.
2326 list of auto-defined aliases.
2320
2327
2321 2004-06-13 Fernando Perez <fperez@colorado.edu>
2328 2004-06-13 Fernando Perez <fperez@colorado.edu>
2322
2329
2323 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2330 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2324 install was really requested (so setup.py can be used for other
2331 install was really requested (so setup.py can be used for other
2325 things under Windows).
2332 things under Windows).
2326
2333
2327 2004-06-10 Fernando Perez <fperez@colorado.edu>
2334 2004-06-10 Fernando Perez <fperez@colorado.edu>
2328
2335
2329 * IPython/Logger.py (Logger.create_log): Manually remove any old
2336 * IPython/Logger.py (Logger.create_log): Manually remove any old
2330 backup, since os.remove may fail under Windows. Fixes bug
2337 backup, since os.remove may fail under Windows. Fixes bug
2331 reported by Thorsten.
2338 reported by Thorsten.
2332
2339
2333 2004-06-09 Fernando Perez <fperez@colorado.edu>
2340 2004-06-09 Fernando Perez <fperez@colorado.edu>
2334
2341
2335 * examples/example-embed.py: fixed all references to %n (replaced
2342 * examples/example-embed.py: fixed all references to %n (replaced
2336 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2343 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2337 for all examples and the manual as well.
2344 for all examples and the manual as well.
2338
2345
2339 2004-06-08 Fernando Perez <fperez@colorado.edu>
2346 2004-06-08 Fernando Perez <fperez@colorado.edu>
2340
2347
2341 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2348 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2342 alignment and color management. All 3 prompt subsystems now
2349 alignment and color management. All 3 prompt subsystems now
2343 inherit from BasePrompt.
2350 inherit from BasePrompt.
2344
2351
2345 * tools/release: updates for windows installer build and tag rpms
2352 * tools/release: updates for windows installer build and tag rpms
2346 with python version (since paths are fixed).
2353 with python version (since paths are fixed).
2347
2354
2348 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2355 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2349 which will become eventually obsolete. Also fixed the default
2356 which will become eventually obsolete. Also fixed the default
2350 prompt_in2 to use \D, so at least new users start with the correct
2357 prompt_in2 to use \D, so at least new users start with the correct
2351 defaults.
2358 defaults.
2352 WARNING: Users with existing ipythonrc files will need to apply
2359 WARNING: Users with existing ipythonrc files will need to apply
2353 this fix manually!
2360 this fix manually!
2354
2361
2355 * setup.py: make windows installer (.exe). This is finally the
2362 * setup.py: make windows installer (.exe). This is finally the
2356 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2363 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2357 which I hadn't included because it required Python 2.3 (or recent
2364 which I hadn't included because it required Python 2.3 (or recent
2358 distutils).
2365 distutils).
2359
2366
2360 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2367 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2361 usage of new '\D' escape.
2368 usage of new '\D' escape.
2362
2369
2363 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2370 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2364 lacks os.getuid())
2371 lacks os.getuid())
2365 (CachedOutput.set_colors): Added the ability to turn coloring
2372 (CachedOutput.set_colors): Added the ability to turn coloring
2366 on/off with @colors even for manually defined prompt colors. It
2373 on/off with @colors even for manually defined prompt colors. It
2367 uses a nasty global, but it works safely and via the generic color
2374 uses a nasty global, but it works safely and via the generic color
2368 handling mechanism.
2375 handling mechanism.
2369 (Prompt2.__init__): Introduced new escape '\D' for continuation
2376 (Prompt2.__init__): Introduced new escape '\D' for continuation
2370 prompts. It represents the counter ('\#') as dots.
2377 prompts. It represents the counter ('\#') as dots.
2371 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2378 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2372 need to update their ipythonrc files and replace '%n' with '\D' in
2379 need to update their ipythonrc files and replace '%n' with '\D' in
2373 their prompt_in2 settings everywhere. Sorry, but there's
2380 their prompt_in2 settings everywhere. Sorry, but there's
2374 otherwise no clean way to get all prompts to properly align. The
2381 otherwise no clean way to get all prompts to properly align. The
2375 ipythonrc shipped with IPython has been updated.
2382 ipythonrc shipped with IPython has been updated.
2376
2383
2377 2004-06-07 Fernando Perez <fperez@colorado.edu>
2384 2004-06-07 Fernando Perez <fperez@colorado.edu>
2378
2385
2379 * setup.py (isfile): Pass local_icons option to latex2html, so the
2386 * setup.py (isfile): Pass local_icons option to latex2html, so the
2380 resulting HTML file is self-contained. Thanks to
2387 resulting HTML file is self-contained. Thanks to
2381 dryice-AT-liu.com.cn for the tip.
2388 dryice-AT-liu.com.cn for the tip.
2382
2389
2383 * pysh.py: I created a new profile 'shell', which implements a
2390 * pysh.py: I created a new profile 'shell', which implements a
2384 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2391 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2385 system shell, nor will it become one anytime soon. It's mainly
2392 system shell, nor will it become one anytime soon. It's mainly
2386 meant to illustrate the use of the new flexible bash-like prompts.
2393 meant to illustrate the use of the new flexible bash-like prompts.
2387 I guess it could be used by hardy souls for true shell management,
2394 I guess it could be used by hardy souls for true shell management,
2388 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2395 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2389 profile. This uses the InterpreterExec extension provided by
2396 profile. This uses the InterpreterExec extension provided by
2390 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2397 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2391
2398
2392 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2399 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2393 auto-align itself with the length of the previous input prompt
2400 auto-align itself with the length of the previous input prompt
2394 (taking into account the invisible color escapes).
2401 (taking into account the invisible color escapes).
2395 (CachedOutput.__init__): Large restructuring of this class. Now
2402 (CachedOutput.__init__): Large restructuring of this class. Now
2396 all three prompts (primary1, primary2, output) are proper objects,
2403 all three prompts (primary1, primary2, output) are proper objects,
2397 managed by the 'parent' CachedOutput class. The code is still a
2404 managed by the 'parent' CachedOutput class. The code is still a
2398 bit hackish (all prompts share state via a pointer to the cache),
2405 bit hackish (all prompts share state via a pointer to the cache),
2399 but it's overall far cleaner than before.
2406 but it's overall far cleaner than before.
2400
2407
2401 * IPython/genutils.py (getoutputerror): modified to add verbose,
2408 * IPython/genutils.py (getoutputerror): modified to add verbose,
2402 debug and header options. This makes the interface of all getout*
2409 debug and header options. This makes the interface of all getout*
2403 functions uniform.
2410 functions uniform.
2404 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2411 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2405
2412
2406 * IPython/Magic.py (Magic.default_option): added a function to
2413 * IPython/Magic.py (Magic.default_option): added a function to
2407 allow registering default options for any magic command. This
2414 allow registering default options for any magic command. This
2408 makes it easy to have profiles which customize the magics globally
2415 makes it easy to have profiles which customize the magics globally
2409 for a certain use. The values set through this function are
2416 for a certain use. The values set through this function are
2410 picked up by the parse_options() method, which all magics should
2417 picked up by the parse_options() method, which all magics should
2411 use to parse their options.
2418 use to parse their options.
2412
2419
2413 * IPython/genutils.py (warn): modified the warnings framework to
2420 * IPython/genutils.py (warn): modified the warnings framework to
2414 use the Term I/O class. I'm trying to slowly unify all of
2421 use the Term I/O class. I'm trying to slowly unify all of
2415 IPython's I/O operations to pass through Term.
2422 IPython's I/O operations to pass through Term.
2416
2423
2417 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2424 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2418 the secondary prompt to correctly match the length of the primary
2425 the secondary prompt to correctly match the length of the primary
2419 one for any prompt. Now multi-line code will properly line up
2426 one for any prompt. Now multi-line code will properly line up
2420 even for path dependent prompts, such as the new ones available
2427 even for path dependent prompts, such as the new ones available
2421 via the prompt_specials.
2428 via the prompt_specials.
2422
2429
2423 2004-06-06 Fernando Perez <fperez@colorado.edu>
2430 2004-06-06 Fernando Perez <fperez@colorado.edu>
2424
2431
2425 * IPython/Prompts.py (prompt_specials): Added the ability to have
2432 * IPython/Prompts.py (prompt_specials): Added the ability to have
2426 bash-like special sequences in the prompts, which get
2433 bash-like special sequences in the prompts, which get
2427 automatically expanded. Things like hostname, current working
2434 automatically expanded. Things like hostname, current working
2428 directory and username are implemented already, but it's easy to
2435 directory and username are implemented already, but it's easy to
2429 add more in the future. Thanks to a patch by W.J. van der Laan
2436 add more in the future. Thanks to a patch by W.J. van der Laan
2430 <gnufnork-AT-hetdigitalegat.nl>
2437 <gnufnork-AT-hetdigitalegat.nl>
2431 (prompt_specials): Added color support for prompt strings, so
2438 (prompt_specials): Added color support for prompt strings, so
2432 users can define arbitrary color setups for their prompts.
2439 users can define arbitrary color setups for their prompts.
2433
2440
2434 2004-06-05 Fernando Perez <fperez@colorado.edu>
2441 2004-06-05 Fernando Perez <fperez@colorado.edu>
2435
2442
2436 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2443 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2437 code to load Gary Bishop's readline and configure it
2444 code to load Gary Bishop's readline and configure it
2438 automatically. Thanks to Gary for help on this.
2445 automatically. Thanks to Gary for help on this.
2439
2446
2440 2004-06-01 Fernando Perez <fperez@colorado.edu>
2447 2004-06-01 Fernando Perez <fperez@colorado.edu>
2441
2448
2442 * IPython/Logger.py (Logger.create_log): fix bug for logging
2449 * IPython/Logger.py (Logger.create_log): fix bug for logging
2443 with no filename (previous fix was incomplete).
2450 with no filename (previous fix was incomplete).
2444
2451
2445 2004-05-25 Fernando Perez <fperez@colorado.edu>
2452 2004-05-25 Fernando Perez <fperez@colorado.edu>
2446
2453
2447 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2454 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2448 parens would get passed to the shell.
2455 parens would get passed to the shell.
2449
2456
2450 2004-05-20 Fernando Perez <fperez@colorado.edu>
2457 2004-05-20 Fernando Perez <fperez@colorado.edu>
2451
2458
2452 * IPython/Magic.py (Magic.magic_prun): changed default profile
2459 * IPython/Magic.py (Magic.magic_prun): changed default profile
2453 sort order to 'time' (the more common profiling need).
2460 sort order to 'time' (the more common profiling need).
2454
2461
2455 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2462 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2456 so that source code shown is guaranteed in sync with the file on
2463 so that source code shown is guaranteed in sync with the file on
2457 disk (also changed in psource). Similar fix to the one for
2464 disk (also changed in psource). Similar fix to the one for
2458 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2465 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2459 <yann.ledu-AT-noos.fr>.
2466 <yann.ledu-AT-noos.fr>.
2460
2467
2461 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2468 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2462 with a single option would not be correctly parsed. Closes
2469 with a single option would not be correctly parsed. Closes
2463 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2470 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2464 introduced in 0.6.0 (on 2004-05-06).
2471 introduced in 0.6.0 (on 2004-05-06).
2465
2472
2466 2004-05-13 *** Released version 0.6.0
2473 2004-05-13 *** Released version 0.6.0
2467
2474
2468 2004-05-13 Fernando Perez <fperez@colorado.edu>
2475 2004-05-13 Fernando Perez <fperez@colorado.edu>
2469
2476
2470 * debian/: Added debian/ directory to CVS, so that debian support
2477 * debian/: Added debian/ directory to CVS, so that debian support
2471 is publicly accessible. The debian package is maintained by Jack
2478 is publicly accessible. The debian package is maintained by Jack
2472 Moffit <jack-AT-xiph.org>.
2479 Moffit <jack-AT-xiph.org>.
2473
2480
2474 * Documentation: included the notes about an ipython-based system
2481 * Documentation: included the notes about an ipython-based system
2475 shell (the hypothetical 'pysh') into the new_design.pdf document,
2482 shell (the hypothetical 'pysh') into the new_design.pdf document,
2476 so that these ideas get distributed to users along with the
2483 so that these ideas get distributed to users along with the
2477 official documentation.
2484 official documentation.
2478
2485
2479 2004-05-10 Fernando Perez <fperez@colorado.edu>
2486 2004-05-10 Fernando Perez <fperez@colorado.edu>
2480
2487
2481 * IPython/Logger.py (Logger.create_log): fix recently introduced
2488 * IPython/Logger.py (Logger.create_log): fix recently introduced
2482 bug (misindented line) where logstart would fail when not given an
2489 bug (misindented line) where logstart would fail when not given an
2483 explicit filename.
2490 explicit filename.
2484
2491
2485 2004-05-09 Fernando Perez <fperez@colorado.edu>
2492 2004-05-09 Fernando Perez <fperez@colorado.edu>
2486
2493
2487 * IPython/Magic.py (Magic.parse_options): skip system call when
2494 * IPython/Magic.py (Magic.parse_options): skip system call when
2488 there are no options to look for. Faster, cleaner for the common
2495 there are no options to look for. Faster, cleaner for the common
2489 case.
2496 case.
2490
2497
2491 * Documentation: many updates to the manual: describing Windows
2498 * Documentation: many updates to the manual: describing Windows
2492 support better, Gnuplot updates, credits, misc small stuff. Also
2499 support better, Gnuplot updates, credits, misc small stuff. Also
2493 updated the new_design doc a bit.
2500 updated the new_design doc a bit.
2494
2501
2495 2004-05-06 *** Released version 0.6.0.rc1
2502 2004-05-06 *** Released version 0.6.0.rc1
2496
2503
2497 2004-05-06 Fernando Perez <fperez@colorado.edu>
2504 2004-05-06 Fernando Perez <fperez@colorado.edu>
2498
2505
2499 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2506 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2500 operations to use the vastly more efficient list/''.join() method.
2507 operations to use the vastly more efficient list/''.join() method.
2501 (FormattedTB.text): Fix
2508 (FormattedTB.text): Fix
2502 http://www.scipy.net/roundup/ipython/issue12 - exception source
2509 http://www.scipy.net/roundup/ipython/issue12 - exception source
2503 extract not updated after reload. Thanks to Mike Salib
2510 extract not updated after reload. Thanks to Mike Salib
2504 <msalib-AT-mit.edu> for pinning the source of the problem.
2511 <msalib-AT-mit.edu> for pinning the source of the problem.
2505 Fortunately, the solution works inside ipython and doesn't require
2512 Fortunately, the solution works inside ipython and doesn't require
2506 any changes to python proper.
2513 any changes to python proper.
2507
2514
2508 * IPython/Magic.py (Magic.parse_options): Improved to process the
2515 * IPython/Magic.py (Magic.parse_options): Improved to process the
2509 argument list as a true shell would (by actually using the
2516 argument list as a true shell would (by actually using the
2510 underlying system shell). This way, all @magics automatically get
2517 underlying system shell). This way, all @magics automatically get
2511 shell expansion for variables. Thanks to a comment by Alex
2518 shell expansion for variables. Thanks to a comment by Alex
2512 Schmolck.
2519 Schmolck.
2513
2520
2514 2004-04-04 Fernando Perez <fperez@colorado.edu>
2521 2004-04-04 Fernando Perez <fperez@colorado.edu>
2515
2522
2516 * IPython/iplib.py (InteractiveShell.interact): Added a special
2523 * IPython/iplib.py (InteractiveShell.interact): Added a special
2517 trap for a debugger quit exception, which is basically impossible
2524 trap for a debugger quit exception, which is basically impossible
2518 to handle by normal mechanisms, given what pdb does to the stack.
2525 to handle by normal mechanisms, given what pdb does to the stack.
2519 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2526 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2520
2527
2521 2004-04-03 Fernando Perez <fperez@colorado.edu>
2528 2004-04-03 Fernando Perez <fperez@colorado.edu>
2522
2529
2523 * IPython/genutils.py (Term): Standardized the names of the Term
2530 * IPython/genutils.py (Term): Standardized the names of the Term
2524 class streams to cin/cout/cerr, following C++ naming conventions
2531 class streams to cin/cout/cerr, following C++ naming conventions
2525 (I can't use in/out/err because 'in' is not a valid attribute
2532 (I can't use in/out/err because 'in' is not a valid attribute
2526 name).
2533 name).
2527
2534
2528 * IPython/iplib.py (InteractiveShell.interact): don't increment
2535 * IPython/iplib.py (InteractiveShell.interact): don't increment
2529 the prompt if there's no user input. By Daniel 'Dang' Griffith
2536 the prompt if there's no user input. By Daniel 'Dang' Griffith
2530 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2537 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2531 Francois Pinard.
2538 Francois Pinard.
2532
2539
2533 2004-04-02 Fernando Perez <fperez@colorado.edu>
2540 2004-04-02 Fernando Perez <fperez@colorado.edu>
2534
2541
2535 * IPython/genutils.py (Stream.__init__): Modified to survive at
2542 * IPython/genutils.py (Stream.__init__): Modified to survive at
2536 least importing in contexts where stdin/out/err aren't true file
2543 least importing in contexts where stdin/out/err aren't true file
2537 objects, such as PyCrust (they lack fileno() and mode). However,
2544 objects, such as PyCrust (they lack fileno() and mode). However,
2538 the recovery facilities which rely on these things existing will
2545 the recovery facilities which rely on these things existing will
2539 not work.
2546 not work.
2540
2547
2541 2004-04-01 Fernando Perez <fperez@colorado.edu>
2548 2004-04-01 Fernando Perez <fperez@colorado.edu>
2542
2549
2543 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2550 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2544 use the new getoutputerror() function, so it properly
2551 use the new getoutputerror() function, so it properly
2545 distinguishes stdout/err.
2552 distinguishes stdout/err.
2546
2553
2547 * IPython/genutils.py (getoutputerror): added a function to
2554 * IPython/genutils.py (getoutputerror): added a function to
2548 capture separately the standard output and error of a command.
2555 capture separately the standard output and error of a command.
2549 After a comment from dang on the mailing lists. This code is
2556 After a comment from dang on the mailing lists. This code is
2550 basically a modified version of commands.getstatusoutput(), from
2557 basically a modified version of commands.getstatusoutput(), from
2551 the standard library.
2558 the standard library.
2552
2559
2553 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2560 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2554 '!!' as a special syntax (shorthand) to access @sx.
2561 '!!' as a special syntax (shorthand) to access @sx.
2555
2562
2556 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2563 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2557 command and return its output as a list split on '\n'.
2564 command and return its output as a list split on '\n'.
2558
2565
2559 2004-03-31 Fernando Perez <fperez@colorado.edu>
2566 2004-03-31 Fernando Perez <fperez@colorado.edu>
2560
2567
2561 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2568 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2562 method to dictionaries used as FakeModule instances if they lack
2569 method to dictionaries used as FakeModule instances if they lack
2563 it. At least pydoc in python2.3 breaks for runtime-defined
2570 it. At least pydoc in python2.3 breaks for runtime-defined
2564 functions without this hack. At some point I need to _really_
2571 functions without this hack. At some point I need to _really_
2565 understand what FakeModule is doing, because it's a gross hack.
2572 understand what FakeModule is doing, because it's a gross hack.
2566 But it solves Arnd's problem for now...
2573 But it solves Arnd's problem for now...
2567
2574
2568 2004-02-27 Fernando Perez <fperez@colorado.edu>
2575 2004-02-27 Fernando Perez <fperez@colorado.edu>
2569
2576
2570 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2577 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2571 mode would behave erratically. Also increased the number of
2578 mode would behave erratically. Also increased the number of
2572 possible logs in rotate mod to 999. Thanks to Rod Holland
2579 possible logs in rotate mod to 999. Thanks to Rod Holland
2573 <rhh@StructureLABS.com> for the report and fixes.
2580 <rhh@StructureLABS.com> for the report and fixes.
2574
2581
2575 2004-02-26 Fernando Perez <fperez@colorado.edu>
2582 2004-02-26 Fernando Perez <fperez@colorado.edu>
2576
2583
2577 * IPython/genutils.py (page): Check that the curses module really
2584 * IPython/genutils.py (page): Check that the curses module really
2578 has the initscr attribute before trying to use it. For some
2585 has the initscr attribute before trying to use it. For some
2579 reason, the Solaris curses module is missing this. I think this
2586 reason, the Solaris curses module is missing this. I think this
2580 should be considered a Solaris python bug, but I'm not sure.
2587 should be considered a Solaris python bug, but I'm not sure.
2581
2588
2582 2004-01-17 Fernando Perez <fperez@colorado.edu>
2589 2004-01-17 Fernando Perez <fperez@colorado.edu>
2583
2590
2584 * IPython/genutils.py (Stream.__init__): Changes to try to make
2591 * IPython/genutils.py (Stream.__init__): Changes to try to make
2585 ipython robust against stdin/out/err being closed by the user.
2592 ipython robust against stdin/out/err being closed by the user.
2586 This is 'user error' (and blocks a normal python session, at least
2593 This is 'user error' (and blocks a normal python session, at least
2587 the stdout case). However, Ipython should be able to survive such
2594 the stdout case). However, Ipython should be able to survive such
2588 instances of abuse as gracefully as possible. To simplify the
2595 instances of abuse as gracefully as possible. To simplify the
2589 coding and maintain compatibility with Gary Bishop's Term
2596 coding and maintain compatibility with Gary Bishop's Term
2590 contributions, I've made use of classmethods for this. I think
2597 contributions, I've made use of classmethods for this. I think
2591 this introduces a dependency on python 2.2.
2598 this introduces a dependency on python 2.2.
2592
2599
2593 2004-01-13 Fernando Perez <fperez@colorado.edu>
2600 2004-01-13 Fernando Perez <fperez@colorado.edu>
2594
2601
2595 * IPython/numutils.py (exp_safe): simplified the code a bit and
2602 * IPython/numutils.py (exp_safe): simplified the code a bit and
2596 removed the need for importing the kinds module altogether.
2603 removed the need for importing the kinds module altogether.
2597
2604
2598 2004-01-06 Fernando Perez <fperez@colorado.edu>
2605 2004-01-06 Fernando Perez <fperez@colorado.edu>
2599
2606
2600 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
2607 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
2601 a magic function instead, after some community feedback. No
2608 a magic function instead, after some community feedback. No
2602 special syntax will exist for it, but its name is deliberately
2609 special syntax will exist for it, but its name is deliberately
2603 very short.
2610 very short.
2604
2611
2605 2003-12-20 Fernando Perez <fperez@colorado.edu>
2612 2003-12-20 Fernando Perez <fperez@colorado.edu>
2606
2613
2607 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
2614 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
2608 new functionality, to automagically assign the result of a shell
2615 new functionality, to automagically assign the result of a shell
2609 command to a variable. I'll solicit some community feedback on
2616 command to a variable. I'll solicit some community feedback on
2610 this before making it permanent.
2617 this before making it permanent.
2611
2618
2612 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
2619 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
2613 requested about callables for which inspect couldn't obtain a
2620 requested about callables for which inspect couldn't obtain a
2614 proper argspec. Thanks to a crash report sent by Etienne
2621 proper argspec. Thanks to a crash report sent by Etienne
2615 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2622 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2616
2623
2617 2003-12-09 Fernando Perez <fperez@colorado.edu>
2624 2003-12-09 Fernando Perez <fperez@colorado.edu>
2618
2625
2619 * IPython/genutils.py (page): patch for the pager to work across
2626 * IPython/genutils.py (page): patch for the pager to work across
2620 various versions of Windows. By Gary Bishop.
2627 various versions of Windows. By Gary Bishop.
2621
2628
2622 2003-12-04 Fernando Perez <fperez@colorado.edu>
2629 2003-12-04 Fernando Perez <fperez@colorado.edu>
2623
2630
2624 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2631 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2625 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2632 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2626 While I tested this and it looks ok, there may still be corner
2633 While I tested this and it looks ok, there may still be corner
2627 cases I've missed.
2634 cases I've missed.
2628
2635
2629 2003-12-01 Fernando Perez <fperez@colorado.edu>
2636 2003-12-01 Fernando Perez <fperez@colorado.edu>
2630
2637
2631 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2638 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2632 where a line like 'p,q=1,2' would fail because the automagic
2639 where a line like 'p,q=1,2' would fail because the automagic
2633 system would be triggered for @p.
2640 system would be triggered for @p.
2634
2641
2635 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2642 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2636 cleanups, code unmodified.
2643 cleanups, code unmodified.
2637
2644
2638 * IPython/genutils.py (Term): added a class for IPython to handle
2645 * IPython/genutils.py (Term): added a class for IPython to handle
2639 output. In most cases it will just be a proxy for stdout/err, but
2646 output. In most cases it will just be a proxy for stdout/err, but
2640 having this allows modifications to be made for some platforms,
2647 having this allows modifications to be made for some platforms,
2641 such as handling color escapes under Windows. All of this code
2648 such as handling color escapes under Windows. All of this code
2642 was contributed by Gary Bishop, with minor modifications by me.
2649 was contributed by Gary Bishop, with minor modifications by me.
2643 The actual changes affect many files.
2650 The actual changes affect many files.
2644
2651
2645 2003-11-30 Fernando Perez <fperez@colorado.edu>
2652 2003-11-30 Fernando Perez <fperez@colorado.edu>
2646
2653
2647 * IPython/iplib.py (file_matches): new completion code, courtesy
2654 * IPython/iplib.py (file_matches): new completion code, courtesy
2648 of Jeff Collins. This enables filename completion again under
2655 of Jeff Collins. This enables filename completion again under
2649 python 2.3, which disabled it at the C level.
2656 python 2.3, which disabled it at the C level.
2650
2657
2651 2003-11-11 Fernando Perez <fperez@colorado.edu>
2658 2003-11-11 Fernando Perez <fperez@colorado.edu>
2652
2659
2653 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2660 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2654 for Numeric.array(map(...)), but often convenient.
2661 for Numeric.array(map(...)), but often convenient.
2655
2662
2656 2003-11-05 Fernando Perez <fperez@colorado.edu>
2663 2003-11-05 Fernando Perez <fperez@colorado.edu>
2657
2664
2658 * IPython/numutils.py (frange): Changed a call from int() to
2665 * IPython/numutils.py (frange): Changed a call from int() to
2659 int(round()) to prevent a problem reported with arange() in the
2666 int(round()) to prevent a problem reported with arange() in the
2660 numpy list.
2667 numpy list.
2661
2668
2662 2003-10-06 Fernando Perez <fperez@colorado.edu>
2669 2003-10-06 Fernando Perez <fperez@colorado.edu>
2663
2670
2664 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
2671 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
2665 prevent crashes if sys lacks an argv attribute (it happens with
2672 prevent crashes if sys lacks an argv attribute (it happens with
2666 embedded interpreters which build a bare-bones sys module).
2673 embedded interpreters which build a bare-bones sys module).
2667 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
2674 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
2668
2675
2669 2003-09-24 Fernando Perez <fperez@colorado.edu>
2676 2003-09-24 Fernando Perez <fperez@colorado.edu>
2670
2677
2671 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
2678 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
2672 to protect against poorly written user objects where __getattr__
2679 to protect against poorly written user objects where __getattr__
2673 raises exceptions other than AttributeError. Thanks to a bug
2680 raises exceptions other than AttributeError. Thanks to a bug
2674 report by Oliver Sander <osander-AT-gmx.de>.
2681 report by Oliver Sander <osander-AT-gmx.de>.
2675
2682
2676 * IPython/FakeModule.py (FakeModule.__repr__): this method was
2683 * IPython/FakeModule.py (FakeModule.__repr__): this method was
2677 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
2684 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
2678
2685
2679 2003-09-09 Fernando Perez <fperez@colorado.edu>
2686 2003-09-09 Fernando Perez <fperez@colorado.edu>
2680
2687
2681 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2688 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2682 unpacking a list whith a callable as first element would
2689 unpacking a list whith a callable as first element would
2683 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
2690 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
2684 Collins.
2691 Collins.
2685
2692
2686 2003-08-25 *** Released version 0.5.0
2693 2003-08-25 *** Released version 0.5.0
2687
2694
2688 2003-08-22 Fernando Perez <fperez@colorado.edu>
2695 2003-08-22 Fernando Perez <fperez@colorado.edu>
2689
2696
2690 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
2697 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
2691 improperly defined user exceptions. Thanks to feedback from Mark
2698 improperly defined user exceptions. Thanks to feedback from Mark
2692 Russell <mrussell-AT-verio.net>.
2699 Russell <mrussell-AT-verio.net>.
2693
2700
2694 2003-08-20 Fernando Perez <fperez@colorado.edu>
2701 2003-08-20 Fernando Perez <fperez@colorado.edu>
2695
2702
2696 * IPython/OInspect.py (Inspector.pinfo): changed String Form
2703 * IPython/OInspect.py (Inspector.pinfo): changed String Form
2697 printing so that it would print multi-line string forms starting
2704 printing so that it would print multi-line string forms starting
2698 with a new line. This way the formatting is better respected for
2705 with a new line. This way the formatting is better respected for
2699 objects which work hard to make nice string forms.
2706 objects which work hard to make nice string forms.
2700
2707
2701 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
2708 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
2702 autocall would overtake data access for objects with both
2709 autocall would overtake data access for objects with both
2703 __getitem__ and __call__.
2710 __getitem__ and __call__.
2704
2711
2705 2003-08-19 *** Released version 0.5.0-rc1
2712 2003-08-19 *** Released version 0.5.0-rc1
2706
2713
2707 2003-08-19 Fernando Perez <fperez@colorado.edu>
2714 2003-08-19 Fernando Perez <fperez@colorado.edu>
2708
2715
2709 * IPython/deep_reload.py (load_tail): single tiny change here
2716 * IPython/deep_reload.py (load_tail): single tiny change here
2710 seems to fix the long-standing bug of dreload() failing to work
2717 seems to fix the long-standing bug of dreload() failing to work
2711 for dotted names. But this module is pretty tricky, so I may have
2718 for dotted names. But this module is pretty tricky, so I may have
2712 missed some subtlety. Needs more testing!.
2719 missed some subtlety. Needs more testing!.
2713
2720
2714 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
2721 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
2715 exceptions which have badly implemented __str__ methods.
2722 exceptions which have badly implemented __str__ methods.
2716 (VerboseTB.text): harden against inspect.getinnerframes crashing,
2723 (VerboseTB.text): harden against inspect.getinnerframes crashing,
2717 which I've been getting reports about from Python 2.3 users. I
2724 which I've been getting reports about from Python 2.3 users. I
2718 wish I had a simple test case to reproduce the problem, so I could
2725 wish I had a simple test case to reproduce the problem, so I could
2719 either write a cleaner workaround or file a bug report if
2726 either write a cleaner workaround or file a bug report if
2720 necessary.
2727 necessary.
2721
2728
2722 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
2729 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
2723 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
2730 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
2724 a bug report by Tjabo Kloppenburg.
2731 a bug report by Tjabo Kloppenburg.
2725
2732
2726 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
2733 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
2727 crashes. Wrapped the pdb call in a blanket try/except, since pdb
2734 crashes. Wrapped the pdb call in a blanket try/except, since pdb
2728 seems rather unstable. Thanks to a bug report by Tjabo
2735 seems rather unstable. Thanks to a bug report by Tjabo
2729 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
2736 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
2730
2737
2731 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
2738 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
2732 this out soon because of the critical fixes in the inner loop for
2739 this out soon because of the critical fixes in the inner loop for
2733 generators.
2740 generators.
2734
2741
2735 * IPython/Magic.py (Magic.getargspec): removed. This (and
2742 * IPython/Magic.py (Magic.getargspec): removed. This (and
2736 _get_def) have been obsoleted by OInspect for a long time, I
2743 _get_def) have been obsoleted by OInspect for a long time, I
2737 hadn't noticed that they were dead code.
2744 hadn't noticed that they were dead code.
2738 (Magic._ofind): restored _ofind functionality for a few literals
2745 (Magic._ofind): restored _ofind functionality for a few literals
2739 (those in ["''",'""','[]','{}','()']). But it won't work anymore
2746 (those in ["''",'""','[]','{}','()']). But it won't work anymore
2740 for things like "hello".capitalize?, since that would require a
2747 for things like "hello".capitalize?, since that would require a
2741 potentially dangerous eval() again.
2748 potentially dangerous eval() again.
2742
2749
2743 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
2750 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
2744 logic a bit more to clean up the escapes handling and minimize the
2751 logic a bit more to clean up the escapes handling and minimize the
2745 use of _ofind to only necessary cases. The interactive 'feel' of
2752 use of _ofind to only necessary cases. The interactive 'feel' of
2746 IPython should have improved quite a bit with the changes in
2753 IPython should have improved quite a bit with the changes in
2747 _prefilter and _ofind (besides being far safer than before).
2754 _prefilter and _ofind (besides being far safer than before).
2748
2755
2749 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
2756 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
2750 obscure, never reported). Edit would fail to find the object to
2757 obscure, never reported). Edit would fail to find the object to
2751 edit under some circumstances.
2758 edit under some circumstances.
2752 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
2759 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
2753 which were causing double-calling of generators. Those eval calls
2760 which were causing double-calling of generators. Those eval calls
2754 were _very_ dangerous, since code with side effects could be
2761 were _very_ dangerous, since code with side effects could be
2755 triggered. As they say, 'eval is evil'... These were the
2762 triggered. As they say, 'eval is evil'... These were the
2756 nastiest evals in IPython. Besides, _ofind is now far simpler,
2763 nastiest evals in IPython. Besides, _ofind is now far simpler,
2757 and it should also be quite a bit faster. Its use of inspect is
2764 and it should also be quite a bit faster. Its use of inspect is
2758 also safer, so perhaps some of the inspect-related crashes I've
2765 also safer, so perhaps some of the inspect-related crashes I've
2759 seen lately with Python 2.3 might be taken care of. That will
2766 seen lately with Python 2.3 might be taken care of. That will
2760 need more testing.
2767 need more testing.
2761
2768
2762 2003-08-17 Fernando Perez <fperez@colorado.edu>
2769 2003-08-17 Fernando Perez <fperez@colorado.edu>
2763
2770
2764 * IPython/iplib.py (InteractiveShell._prefilter): significant
2771 * IPython/iplib.py (InteractiveShell._prefilter): significant
2765 simplifications to the logic for handling user escapes. Faster
2772 simplifications to the logic for handling user escapes. Faster
2766 and simpler code.
2773 and simpler code.
2767
2774
2768 2003-08-14 Fernando Perez <fperez@colorado.edu>
2775 2003-08-14 Fernando Perez <fperez@colorado.edu>
2769
2776
2770 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
2777 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
2771 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
2778 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
2772 but it should be quite a bit faster. And the recursive version
2779 but it should be quite a bit faster. And the recursive version
2773 generated O(log N) intermediate storage for all rank>1 arrays,
2780 generated O(log N) intermediate storage for all rank>1 arrays,
2774 even if they were contiguous.
2781 even if they were contiguous.
2775 (l1norm): Added this function.
2782 (l1norm): Added this function.
2776 (norm): Added this function for arbitrary norms (including
2783 (norm): Added this function for arbitrary norms (including
2777 l-infinity). l1 and l2 are still special cases for convenience
2784 l-infinity). l1 and l2 are still special cases for convenience
2778 and speed.
2785 and speed.
2779
2786
2780 2003-08-03 Fernando Perez <fperez@colorado.edu>
2787 2003-08-03 Fernando Perez <fperez@colorado.edu>
2781
2788
2782 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
2789 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
2783 exceptions, which now raise PendingDeprecationWarnings in Python
2790 exceptions, which now raise PendingDeprecationWarnings in Python
2784 2.3. There were some in Magic and some in Gnuplot2.
2791 2.3. There were some in Magic and some in Gnuplot2.
2785
2792
2786 2003-06-30 Fernando Perez <fperez@colorado.edu>
2793 2003-06-30 Fernando Perez <fperez@colorado.edu>
2787
2794
2788 * IPython/genutils.py (page): modified to call curses only for
2795 * IPython/genutils.py (page): modified to call curses only for
2789 terminals where TERM=='xterm'. After problems under many other
2796 terminals where TERM=='xterm'. After problems under many other
2790 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
2797 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
2791
2798
2792 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
2799 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
2793 would be triggered when readline was absent. This was just an old
2800 would be triggered when readline was absent. This was just an old
2794 debugging statement I'd forgotten to take out.
2801 debugging statement I'd forgotten to take out.
2795
2802
2796 2003-06-20 Fernando Perez <fperez@colorado.edu>
2803 2003-06-20 Fernando Perez <fperez@colorado.edu>
2797
2804
2798 * IPython/genutils.py (clock): modified to return only user time
2805 * IPython/genutils.py (clock): modified to return only user time
2799 (not counting system time), after a discussion on scipy. While
2806 (not counting system time), after a discussion on scipy. While
2800 system time may be a useful quantity occasionally, it may much
2807 system time may be a useful quantity occasionally, it may much
2801 more easily be skewed by occasional swapping or other similar
2808 more easily be skewed by occasional swapping or other similar
2802 activity.
2809 activity.
2803
2810
2804 2003-06-05 Fernando Perez <fperez@colorado.edu>
2811 2003-06-05 Fernando Perez <fperez@colorado.edu>
2805
2812
2806 * IPython/numutils.py (identity): new function, for building
2813 * IPython/numutils.py (identity): new function, for building
2807 arbitrary rank Kronecker deltas (mostly backwards compatible with
2814 arbitrary rank Kronecker deltas (mostly backwards compatible with
2808 Numeric.identity)
2815 Numeric.identity)
2809
2816
2810 2003-06-03 Fernando Perez <fperez@colorado.edu>
2817 2003-06-03 Fernando Perez <fperez@colorado.edu>
2811
2818
2812 * IPython/iplib.py (InteractiveShell.handle_magic): protect
2819 * IPython/iplib.py (InteractiveShell.handle_magic): protect
2813 arguments passed to magics with spaces, to allow trailing '\' to
2820 arguments passed to magics with spaces, to allow trailing '\' to
2814 work normally (mainly for Windows users).
2821 work normally (mainly for Windows users).
2815
2822
2816 2003-05-29 Fernando Perez <fperez@colorado.edu>
2823 2003-05-29 Fernando Perez <fperez@colorado.edu>
2817
2824
2818 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
2825 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
2819 instead of pydoc.help. This fixes a bizarre behavior where
2826 instead of pydoc.help. This fixes a bizarre behavior where
2820 printing '%s' % locals() would trigger the help system. Now
2827 printing '%s' % locals() would trigger the help system. Now
2821 ipython behaves like normal python does.
2828 ipython behaves like normal python does.
2822
2829
2823 Note that if one does 'from pydoc import help', the bizarre
2830 Note that if one does 'from pydoc import help', the bizarre
2824 behavior returns, but this will also happen in normal python, so
2831 behavior returns, but this will also happen in normal python, so
2825 it's not an ipython bug anymore (it has to do with how pydoc.help
2832 it's not an ipython bug anymore (it has to do with how pydoc.help
2826 is implemented).
2833 is implemented).
2827
2834
2828 2003-05-22 Fernando Perez <fperez@colorado.edu>
2835 2003-05-22 Fernando Perez <fperez@colorado.edu>
2829
2836
2830 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
2837 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
2831 return [] instead of None when nothing matches, also match to end
2838 return [] instead of None when nothing matches, also match to end
2832 of line. Patch by Gary Bishop.
2839 of line. Patch by Gary Bishop.
2833
2840
2834 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
2841 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
2835 protection as before, for files passed on the command line. This
2842 protection as before, for files passed on the command line. This
2836 prevents the CrashHandler from kicking in if user files call into
2843 prevents the CrashHandler from kicking in if user files call into
2837 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
2844 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
2838 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
2845 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
2839
2846
2840 2003-05-20 *** Released version 0.4.0
2847 2003-05-20 *** Released version 0.4.0
2841
2848
2842 2003-05-20 Fernando Perez <fperez@colorado.edu>
2849 2003-05-20 Fernando Perez <fperez@colorado.edu>
2843
2850
2844 * setup.py: added support for manpages. It's a bit hackish b/c of
2851 * setup.py: added support for manpages. It's a bit hackish b/c of
2845 a bug in the way the bdist_rpm distutils target handles gzipped
2852 a bug in the way the bdist_rpm distutils target handles gzipped
2846 manpages, but it works. After a patch by Jack.
2853 manpages, but it works. After a patch by Jack.
2847
2854
2848 2003-05-19 Fernando Perez <fperez@colorado.edu>
2855 2003-05-19 Fernando Perez <fperez@colorado.edu>
2849
2856
2850 * IPython/numutils.py: added a mockup of the kinds module, since
2857 * IPython/numutils.py: added a mockup of the kinds module, since
2851 it was recently removed from Numeric. This way, numutils will
2858 it was recently removed from Numeric. This way, numutils will
2852 work for all users even if they are missing kinds.
2859 work for all users even if they are missing kinds.
2853
2860
2854 * IPython/Magic.py (Magic._ofind): Harden against an inspect
2861 * IPython/Magic.py (Magic._ofind): Harden against an inspect
2855 failure, which can occur with SWIG-wrapped extensions. After a
2862 failure, which can occur with SWIG-wrapped extensions. After a
2856 crash report from Prabhu.
2863 crash report from Prabhu.
2857
2864
2858 2003-05-16 Fernando Perez <fperez@colorado.edu>
2865 2003-05-16 Fernando Perez <fperez@colorado.edu>
2859
2866
2860 * IPython/iplib.py (InteractiveShell.excepthook): New method to
2867 * IPython/iplib.py (InteractiveShell.excepthook): New method to
2861 protect ipython from user code which may call directly
2868 protect ipython from user code which may call directly
2862 sys.excepthook (this looks like an ipython crash to the user, even
2869 sys.excepthook (this looks like an ipython crash to the user, even
2863 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2870 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2864 This is especially important to help users of WxWindows, but may
2871 This is especially important to help users of WxWindows, but may
2865 also be useful in other cases.
2872 also be useful in other cases.
2866
2873
2867 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
2874 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
2868 an optional tb_offset to be specified, and to preserve exception
2875 an optional tb_offset to be specified, and to preserve exception
2869 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2876 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2870
2877
2871 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
2878 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
2872
2879
2873 2003-05-15 Fernando Perez <fperez@colorado.edu>
2880 2003-05-15 Fernando Perez <fperez@colorado.edu>
2874
2881
2875 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
2882 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
2876 installing for a new user under Windows.
2883 installing for a new user under Windows.
2877
2884
2878 2003-05-12 Fernando Perez <fperez@colorado.edu>
2885 2003-05-12 Fernando Perez <fperez@colorado.edu>
2879
2886
2880 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
2887 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
2881 handler for Emacs comint-based lines. Currently it doesn't do
2888 handler for Emacs comint-based lines. Currently it doesn't do
2882 much (but importantly, it doesn't update the history cache). In
2889 much (but importantly, it doesn't update the history cache). In
2883 the future it may be expanded if Alex needs more functionality
2890 the future it may be expanded if Alex needs more functionality
2884 there.
2891 there.
2885
2892
2886 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
2893 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
2887 info to crash reports.
2894 info to crash reports.
2888
2895
2889 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
2896 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
2890 just like Python's -c. Also fixed crash with invalid -color
2897 just like Python's -c. Also fixed crash with invalid -color
2891 option value at startup. Thanks to Will French
2898 option value at startup. Thanks to Will French
2892 <wfrench-AT-bestweb.net> for the bug report.
2899 <wfrench-AT-bestweb.net> for the bug report.
2893
2900
2894 2003-05-09 Fernando Perez <fperez@colorado.edu>
2901 2003-05-09 Fernando Perez <fperez@colorado.edu>
2895
2902
2896 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
2903 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
2897 to EvalDict (it's a mapping, after all) and simplified its code
2904 to EvalDict (it's a mapping, after all) and simplified its code
2898 quite a bit, after a nice discussion on c.l.py where Gustavo
2905 quite a bit, after a nice discussion on c.l.py where Gustavo
2899 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
2906 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
2900
2907
2901 2003-04-30 Fernando Perez <fperez@colorado.edu>
2908 2003-04-30 Fernando Perez <fperez@colorado.edu>
2902
2909
2903 * IPython/genutils.py (timings_out): modified it to reduce its
2910 * IPython/genutils.py (timings_out): modified it to reduce its
2904 overhead in the common reps==1 case.
2911 overhead in the common reps==1 case.
2905
2912
2906 2003-04-29 Fernando Perez <fperez@colorado.edu>
2913 2003-04-29 Fernando Perez <fperez@colorado.edu>
2907
2914
2908 * IPython/genutils.py (timings_out): Modified to use the resource
2915 * IPython/genutils.py (timings_out): Modified to use the resource
2909 module, which avoids the wraparound problems of time.clock().
2916 module, which avoids the wraparound problems of time.clock().
2910
2917
2911 2003-04-17 *** Released version 0.2.15pre4
2918 2003-04-17 *** Released version 0.2.15pre4
2912
2919
2913 2003-04-17 Fernando Perez <fperez@colorado.edu>
2920 2003-04-17 Fernando Perez <fperez@colorado.edu>
2914
2921
2915 * setup.py (scriptfiles): Split windows-specific stuff over to a
2922 * setup.py (scriptfiles): Split windows-specific stuff over to a
2916 separate file, in an attempt to have a Windows GUI installer.
2923 separate file, in an attempt to have a Windows GUI installer.
2917 That didn't work, but part of the groundwork is done.
2924 That didn't work, but part of the groundwork is done.
2918
2925
2919 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
2926 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
2920 indent/unindent with 4 spaces. Particularly useful in combination
2927 indent/unindent with 4 spaces. Particularly useful in combination
2921 with the new auto-indent option.
2928 with the new auto-indent option.
2922
2929
2923 2003-04-16 Fernando Perez <fperez@colorado.edu>
2930 2003-04-16 Fernando Perez <fperez@colorado.edu>
2924
2931
2925 * IPython/Magic.py: various replacements of self.rc for
2932 * IPython/Magic.py: various replacements of self.rc for
2926 self.shell.rc. A lot more remains to be done to fully disentangle
2933 self.shell.rc. A lot more remains to be done to fully disentangle
2927 this class from the main Shell class.
2934 this class from the main Shell class.
2928
2935
2929 * IPython/GnuplotRuntime.py: added checks for mouse support so
2936 * IPython/GnuplotRuntime.py: added checks for mouse support so
2930 that we don't try to enable it if the current gnuplot doesn't
2937 that we don't try to enable it if the current gnuplot doesn't
2931 really support it. Also added checks so that we don't try to
2938 really support it. Also added checks so that we don't try to
2932 enable persist under Windows (where Gnuplot doesn't recognize the
2939 enable persist under Windows (where Gnuplot doesn't recognize the
2933 option).
2940 option).
2934
2941
2935 * IPython/iplib.py (InteractiveShell.interact): Added optional
2942 * IPython/iplib.py (InteractiveShell.interact): Added optional
2936 auto-indenting code, after a patch by King C. Shu
2943 auto-indenting code, after a patch by King C. Shu
2937 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
2944 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
2938 get along well with pasting indented code. If I ever figure out
2945 get along well with pasting indented code. If I ever figure out
2939 how to make that part go well, it will become on by default.
2946 how to make that part go well, it will become on by default.
2940
2947
2941 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
2948 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
2942 crash ipython if there was an unmatched '%' in the user's prompt
2949 crash ipython if there was an unmatched '%' in the user's prompt
2943 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
2950 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
2944
2951
2945 * IPython/iplib.py (InteractiveShell.interact): removed the
2952 * IPython/iplib.py (InteractiveShell.interact): removed the
2946 ability to ask the user whether he wants to crash or not at the
2953 ability to ask the user whether he wants to crash or not at the
2947 'last line' exception handler. Calling functions at that point
2954 'last line' exception handler. Calling functions at that point
2948 changes the stack, and the error reports would have incorrect
2955 changes the stack, and the error reports would have incorrect
2949 tracebacks.
2956 tracebacks.
2950
2957
2951 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
2958 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
2952 pass through a peger a pretty-printed form of any object. After a
2959 pass through a peger a pretty-printed form of any object. After a
2953 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
2960 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
2954
2961
2955 2003-04-14 Fernando Perez <fperez@colorado.edu>
2962 2003-04-14 Fernando Perez <fperez@colorado.edu>
2956
2963
2957 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
2964 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
2958 all files in ~ would be modified at first install (instead of
2965 all files in ~ would be modified at first install (instead of
2959 ~/.ipython). This could be potentially disastrous, as the
2966 ~/.ipython). This could be potentially disastrous, as the
2960 modification (make line-endings native) could damage binary files.
2967 modification (make line-endings native) could damage binary files.
2961
2968
2962 2003-04-10 Fernando Perez <fperez@colorado.edu>
2969 2003-04-10 Fernando Perez <fperez@colorado.edu>
2963
2970
2964 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
2971 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
2965 handle only lines which are invalid python. This now means that
2972 handle only lines which are invalid python. This now means that
2966 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
2973 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
2967 for the bug report.
2974 for the bug report.
2968
2975
2969 2003-04-01 Fernando Perez <fperez@colorado.edu>
2976 2003-04-01 Fernando Perez <fperez@colorado.edu>
2970
2977
2971 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
2978 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
2972 where failing to set sys.last_traceback would crash pdb.pm().
2979 where failing to set sys.last_traceback would crash pdb.pm().
2973 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
2980 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
2974 report.
2981 report.
2975
2982
2976 2003-03-25 Fernando Perez <fperez@colorado.edu>
2983 2003-03-25 Fernando Perez <fperez@colorado.edu>
2977
2984
2978 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
2985 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
2979 before printing it (it had a lot of spurious blank lines at the
2986 before printing it (it had a lot of spurious blank lines at the
2980 end).
2987 end).
2981
2988
2982 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
2989 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
2983 output would be sent 21 times! Obviously people don't use this
2990 output would be sent 21 times! Obviously people don't use this
2984 too often, or I would have heard about it.
2991 too often, or I would have heard about it.
2985
2992
2986 2003-03-24 Fernando Perez <fperez@colorado.edu>
2993 2003-03-24 Fernando Perez <fperez@colorado.edu>
2987
2994
2988 * setup.py (scriptfiles): renamed the data_files parameter from
2995 * setup.py (scriptfiles): renamed the data_files parameter from
2989 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
2996 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
2990 for the patch.
2997 for the patch.
2991
2998
2992 2003-03-20 Fernando Perez <fperez@colorado.edu>
2999 2003-03-20 Fernando Perez <fperez@colorado.edu>
2993
3000
2994 * IPython/genutils.py (error): added error() and fatal()
3001 * IPython/genutils.py (error): added error() and fatal()
2995 functions.
3002 functions.
2996
3003
2997 2003-03-18 *** Released version 0.2.15pre3
3004 2003-03-18 *** Released version 0.2.15pre3
2998
3005
2999 2003-03-18 Fernando Perez <fperez@colorado.edu>
3006 2003-03-18 Fernando Perez <fperez@colorado.edu>
3000
3007
3001 * setupext/install_data_ext.py
3008 * setupext/install_data_ext.py
3002 (install_data_ext.initialize_options): Class contributed by Jack
3009 (install_data_ext.initialize_options): Class contributed by Jack
3003 Moffit for fixing the old distutils hack. He is sending this to
3010 Moffit for fixing the old distutils hack. He is sending this to
3004 the distutils folks so in the future we may not need it as a
3011 the distutils folks so in the future we may not need it as a
3005 private fix.
3012 private fix.
3006
3013
3007 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3014 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3008 changes for Debian packaging. See his patch for full details.
3015 changes for Debian packaging. See his patch for full details.
3009 The old distutils hack of making the ipythonrc* files carry a
3016 The old distutils hack of making the ipythonrc* files carry a
3010 bogus .py extension is gone, at last. Examples were moved to a
3017 bogus .py extension is gone, at last. Examples were moved to a
3011 separate subdir under doc/, and the separate executable scripts
3018 separate subdir under doc/, and the separate executable scripts
3012 now live in their own directory. Overall a great cleanup. The
3019 now live in their own directory. Overall a great cleanup. The
3013 manual was updated to use the new files, and setup.py has been
3020 manual was updated to use the new files, and setup.py has been
3014 fixed for this setup.
3021 fixed for this setup.
3015
3022
3016 * IPython/PyColorize.py (Parser.usage): made non-executable and
3023 * IPython/PyColorize.py (Parser.usage): made non-executable and
3017 created a pycolor wrapper around it to be included as a script.
3024 created a pycolor wrapper around it to be included as a script.
3018
3025
3019 2003-03-12 *** Released version 0.2.15pre2
3026 2003-03-12 *** Released version 0.2.15pre2
3020
3027
3021 2003-03-12 Fernando Perez <fperez@colorado.edu>
3028 2003-03-12 Fernando Perez <fperez@colorado.edu>
3022
3029
3023 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3030 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3024 long-standing problem with garbage characters in some terminals.
3031 long-standing problem with garbage characters in some terminals.
3025 The issue was really that the \001 and \002 escapes must _only_ be
3032 The issue was really that the \001 and \002 escapes must _only_ be
3026 passed to input prompts (which call readline), but _never_ to
3033 passed to input prompts (which call readline), but _never_ to
3027 normal text to be printed on screen. I changed ColorANSI to have
3034 normal text to be printed on screen. I changed ColorANSI to have
3028 two classes: TermColors and InputTermColors, each with the
3035 two classes: TermColors and InputTermColors, each with the
3029 appropriate escapes for input prompts or normal text. The code in
3036 appropriate escapes for input prompts or normal text. The code in
3030 Prompts.py got slightly more complicated, but this very old and
3037 Prompts.py got slightly more complicated, but this very old and
3031 annoying bug is finally fixed.
3038 annoying bug is finally fixed.
3032
3039
3033 All the credit for nailing down the real origin of this problem
3040 All the credit for nailing down the real origin of this problem
3034 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3041 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3035 *Many* thanks to him for spending quite a bit of effort on this.
3042 *Many* thanks to him for spending quite a bit of effort on this.
3036
3043
3037 2003-03-05 *** Released version 0.2.15pre1
3044 2003-03-05 *** Released version 0.2.15pre1
3038
3045
3039 2003-03-03 Fernando Perez <fperez@colorado.edu>
3046 2003-03-03 Fernando Perez <fperez@colorado.edu>
3040
3047
3041 * IPython/FakeModule.py: Moved the former _FakeModule to a
3048 * IPython/FakeModule.py: Moved the former _FakeModule to a
3042 separate file, because it's also needed by Magic (to fix a similar
3049 separate file, because it's also needed by Magic (to fix a similar
3043 pickle-related issue in @run).
3050 pickle-related issue in @run).
3044
3051
3045 2003-03-02 Fernando Perez <fperez@colorado.edu>
3052 2003-03-02 Fernando Perez <fperez@colorado.edu>
3046
3053
3047 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3054 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3048 the autocall option at runtime.
3055 the autocall option at runtime.
3049 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3056 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3050 across Magic.py to start separating Magic from InteractiveShell.
3057 across Magic.py to start separating Magic from InteractiveShell.
3051 (Magic._ofind): Fixed to return proper namespace for dotted
3058 (Magic._ofind): Fixed to return proper namespace for dotted
3052 names. Before, a dotted name would always return 'not currently
3059 names. Before, a dotted name would always return 'not currently
3053 defined', because it would find the 'parent'. s.x would be found,
3060 defined', because it would find the 'parent'. s.x would be found,
3054 but since 'x' isn't defined by itself, it would get confused.
3061 but since 'x' isn't defined by itself, it would get confused.
3055 (Magic.magic_run): Fixed pickling problems reported by Ralf
3062 (Magic.magic_run): Fixed pickling problems reported by Ralf
3056 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3063 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3057 that I'd used when Mike Heeter reported similar issues at the
3064 that I'd used when Mike Heeter reported similar issues at the
3058 top-level, but now for @run. It boils down to injecting the
3065 top-level, but now for @run. It boils down to injecting the
3059 namespace where code is being executed with something that looks
3066 namespace where code is being executed with something that looks
3060 enough like a module to fool pickle.dump(). Since a pickle stores
3067 enough like a module to fool pickle.dump(). Since a pickle stores
3061 a named reference to the importing module, we need this for
3068 a named reference to the importing module, we need this for
3062 pickles to save something sensible.
3069 pickles to save something sensible.
3063
3070
3064 * IPython/ipmaker.py (make_IPython): added an autocall option.
3071 * IPython/ipmaker.py (make_IPython): added an autocall option.
3065
3072
3066 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3073 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3067 the auto-eval code. Now autocalling is an option, and the code is
3074 the auto-eval code. Now autocalling is an option, and the code is
3068 also vastly safer. There is no more eval() involved at all.
3075 also vastly safer. There is no more eval() involved at all.
3069
3076
3070 2003-03-01 Fernando Perez <fperez@colorado.edu>
3077 2003-03-01 Fernando Perez <fperez@colorado.edu>
3071
3078
3072 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3079 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3073 dict with named keys instead of a tuple.
3080 dict with named keys instead of a tuple.
3074
3081
3075 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3082 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3076
3083
3077 * setup.py (make_shortcut): Fixed message about directories
3084 * setup.py (make_shortcut): Fixed message about directories
3078 created during Windows installation (the directories were ok, just
3085 created during Windows installation (the directories were ok, just
3079 the printed message was misleading). Thanks to Chris Liechti
3086 the printed message was misleading). Thanks to Chris Liechti
3080 <cliechti-AT-gmx.net> for the heads up.
3087 <cliechti-AT-gmx.net> for the heads up.
3081
3088
3082 2003-02-21 Fernando Perez <fperez@colorado.edu>
3089 2003-02-21 Fernando Perez <fperez@colorado.edu>
3083
3090
3084 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3091 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3085 of ValueError exception when checking for auto-execution. This
3092 of ValueError exception when checking for auto-execution. This
3086 one is raised by things like Numeric arrays arr.flat when the
3093 one is raised by things like Numeric arrays arr.flat when the
3087 array is non-contiguous.
3094 array is non-contiguous.
3088
3095
3089 2003-01-31 Fernando Perez <fperez@colorado.edu>
3096 2003-01-31 Fernando Perez <fperez@colorado.edu>
3090
3097
3091 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3098 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3092 not return any value at all (even though the command would get
3099 not return any value at all (even though the command would get
3093 executed).
3100 executed).
3094 (xsys): Flush stdout right after printing the command to ensure
3101 (xsys): Flush stdout right after printing the command to ensure
3095 proper ordering of commands and command output in the total
3102 proper ordering of commands and command output in the total
3096 output.
3103 output.
3097 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3104 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3098 system/getoutput as defaults. The old ones are kept for
3105 system/getoutput as defaults. The old ones are kept for
3099 compatibility reasons, so no code which uses this library needs
3106 compatibility reasons, so no code which uses this library needs
3100 changing.
3107 changing.
3101
3108
3102 2003-01-27 *** Released version 0.2.14
3109 2003-01-27 *** Released version 0.2.14
3103
3110
3104 2003-01-25 Fernando Perez <fperez@colorado.edu>
3111 2003-01-25 Fernando Perez <fperez@colorado.edu>
3105
3112
3106 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3113 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3107 functions defined in previous edit sessions could not be re-edited
3114 functions defined in previous edit sessions could not be re-edited
3108 (because the temp files were immediately removed). Now temp files
3115 (because the temp files were immediately removed). Now temp files
3109 are removed only at IPython's exit.
3116 are removed only at IPython's exit.
3110 (Magic.magic_run): Improved @run to perform shell-like expansions
3117 (Magic.magic_run): Improved @run to perform shell-like expansions
3111 on its arguments (~users and $VARS). With this, @run becomes more
3118 on its arguments (~users and $VARS). With this, @run becomes more
3112 like a normal command-line.
3119 like a normal command-line.
3113
3120
3114 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3121 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3115 bugs related to embedding and cleaned up that code. A fairly
3122 bugs related to embedding and cleaned up that code. A fairly
3116 important one was the impossibility to access the global namespace
3123 important one was the impossibility to access the global namespace
3117 through the embedded IPython (only local variables were visible).
3124 through the embedded IPython (only local variables were visible).
3118
3125
3119 2003-01-14 Fernando Perez <fperez@colorado.edu>
3126 2003-01-14 Fernando Perez <fperez@colorado.edu>
3120
3127
3121 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3128 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3122 auto-calling to be a bit more conservative. Now it doesn't get
3129 auto-calling to be a bit more conservative. Now it doesn't get
3123 triggered if any of '!=()<>' are in the rest of the input line, to
3130 triggered if any of '!=()<>' are in the rest of the input line, to
3124 allow comparing callables. Thanks to Alex for the heads up.
3131 allow comparing callables. Thanks to Alex for the heads up.
3125
3132
3126 2003-01-07 Fernando Perez <fperez@colorado.edu>
3133 2003-01-07 Fernando Perez <fperez@colorado.edu>
3127
3134
3128 * IPython/genutils.py (page): fixed estimation of the number of
3135 * IPython/genutils.py (page): fixed estimation of the number of
3129 lines in a string to be paged to simply count newlines. This
3136 lines in a string to be paged to simply count newlines. This
3130 prevents over-guessing due to embedded escape sequences. A better
3137 prevents over-guessing due to embedded escape sequences. A better
3131 long-term solution would involve stripping out the control chars
3138 long-term solution would involve stripping out the control chars
3132 for the count, but it's potentially so expensive I just don't
3139 for the count, but it's potentially so expensive I just don't
3133 think it's worth doing.
3140 think it's worth doing.
3134
3141
3135 2002-12-19 *** Released version 0.2.14pre50
3142 2002-12-19 *** Released version 0.2.14pre50
3136
3143
3137 2002-12-19 Fernando Perez <fperez@colorado.edu>
3144 2002-12-19 Fernando Perez <fperez@colorado.edu>
3138
3145
3139 * tools/release (version): Changed release scripts to inform
3146 * tools/release (version): Changed release scripts to inform
3140 Andrea and build a NEWS file with a list of recent changes.
3147 Andrea and build a NEWS file with a list of recent changes.
3141
3148
3142 * IPython/ColorANSI.py (__all__): changed terminal detection
3149 * IPython/ColorANSI.py (__all__): changed terminal detection
3143 code. Seems to work better for xterms without breaking
3150 code. Seems to work better for xterms without breaking
3144 konsole. Will need more testing to determine if WinXP and Mac OSX
3151 konsole. Will need more testing to determine if WinXP and Mac OSX
3145 also work ok.
3152 also work ok.
3146
3153
3147 2002-12-18 *** Released version 0.2.14pre49
3154 2002-12-18 *** Released version 0.2.14pre49
3148
3155
3149 2002-12-18 Fernando Perez <fperez@colorado.edu>
3156 2002-12-18 Fernando Perez <fperez@colorado.edu>
3150
3157
3151 * Docs: added new info about Mac OSX, from Andrea.
3158 * Docs: added new info about Mac OSX, from Andrea.
3152
3159
3153 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3160 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3154 allow direct plotting of python strings whose format is the same
3161 allow direct plotting of python strings whose format is the same
3155 of gnuplot data files.
3162 of gnuplot data files.
3156
3163
3157 2002-12-16 Fernando Perez <fperez@colorado.edu>
3164 2002-12-16 Fernando Perez <fperez@colorado.edu>
3158
3165
3159 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3166 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3160 value of exit question to be acknowledged.
3167 value of exit question to be acknowledged.
3161
3168
3162 2002-12-03 Fernando Perez <fperez@colorado.edu>
3169 2002-12-03 Fernando Perez <fperez@colorado.edu>
3163
3170
3164 * IPython/ipmaker.py: removed generators, which had been added
3171 * IPython/ipmaker.py: removed generators, which had been added
3165 by mistake in an earlier debugging run. This was causing trouble
3172 by mistake in an earlier debugging run. This was causing trouble
3166 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3173 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3167 for pointing this out.
3174 for pointing this out.
3168
3175
3169 2002-11-17 Fernando Perez <fperez@colorado.edu>
3176 2002-11-17 Fernando Perez <fperez@colorado.edu>
3170
3177
3171 * Manual: updated the Gnuplot section.
3178 * Manual: updated the Gnuplot section.
3172
3179
3173 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3180 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3174 a much better split of what goes in Runtime and what goes in
3181 a much better split of what goes in Runtime and what goes in
3175 Interactive.
3182 Interactive.
3176
3183
3177 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3184 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3178 being imported from iplib.
3185 being imported from iplib.
3179
3186
3180 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3187 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3181 for command-passing. Now the global Gnuplot instance is called
3188 for command-passing. Now the global Gnuplot instance is called
3182 'gp' instead of 'g', which was really a far too fragile and
3189 'gp' instead of 'g', which was really a far too fragile and
3183 common name.
3190 common name.
3184
3191
3185 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3192 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3186 bounding boxes generated by Gnuplot for square plots.
3193 bounding boxes generated by Gnuplot for square plots.
3187
3194
3188 * IPython/genutils.py (popkey): new function added. I should
3195 * IPython/genutils.py (popkey): new function added. I should
3189 suggest this on c.l.py as a dict method, it seems useful.
3196 suggest this on c.l.py as a dict method, it seems useful.
3190
3197
3191 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3198 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3192 to transparently handle PostScript generation. MUCH better than
3199 to transparently handle PostScript generation. MUCH better than
3193 the previous plot_eps/replot_eps (which I removed now). The code
3200 the previous plot_eps/replot_eps (which I removed now). The code
3194 is also fairly clean and well documented now (including
3201 is also fairly clean and well documented now (including
3195 docstrings).
3202 docstrings).
3196
3203
3197 2002-11-13 Fernando Perez <fperez@colorado.edu>
3204 2002-11-13 Fernando Perez <fperez@colorado.edu>
3198
3205
3199 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3206 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3200 (inconsistent with options).
3207 (inconsistent with options).
3201
3208
3202 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3209 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3203 manually disabled, I don't know why. Fixed it.
3210 manually disabled, I don't know why. Fixed it.
3204 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3211 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3205 eps output.
3212 eps output.
3206
3213
3207 2002-11-12 Fernando Perez <fperez@colorado.edu>
3214 2002-11-12 Fernando Perez <fperez@colorado.edu>
3208
3215
3209 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3216 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3210 don't propagate up to caller. Fixes crash reported by François
3217 don't propagate up to caller. Fixes crash reported by François
3211 Pinard.
3218 Pinard.
3212
3219
3213 2002-11-09 Fernando Perez <fperez@colorado.edu>
3220 2002-11-09 Fernando Perez <fperez@colorado.edu>
3214
3221
3215 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3222 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3216 history file for new users.
3223 history file for new users.
3217 (make_IPython): fixed bug where initial install would leave the
3224 (make_IPython): fixed bug where initial install would leave the
3218 user running in the .ipython dir.
3225 user running in the .ipython dir.
3219 (make_IPython): fixed bug where config dir .ipython would be
3226 (make_IPython): fixed bug where config dir .ipython would be
3220 created regardless of the given -ipythondir option. Thanks to Cory
3227 created regardless of the given -ipythondir option. Thanks to Cory
3221 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3228 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3222
3229
3223 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3230 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3224 type confirmations. Will need to use it in all of IPython's code
3231 type confirmations. Will need to use it in all of IPython's code
3225 consistently.
3232 consistently.
3226
3233
3227 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3234 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3228 context to print 31 lines instead of the default 5. This will make
3235 context to print 31 lines instead of the default 5. This will make
3229 the crash reports extremely detailed in case the problem is in
3236 the crash reports extremely detailed in case the problem is in
3230 libraries I don't have access to.
3237 libraries I don't have access to.
3231
3238
3232 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3239 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3233 line of defense' code to still crash, but giving users fair
3240 line of defense' code to still crash, but giving users fair
3234 warning. I don't want internal errors to go unreported: if there's
3241 warning. I don't want internal errors to go unreported: if there's
3235 an internal problem, IPython should crash and generate a full
3242 an internal problem, IPython should crash and generate a full
3236 report.
3243 report.
3237
3244
3238 2002-11-08 Fernando Perez <fperez@colorado.edu>
3245 2002-11-08 Fernando Perez <fperez@colorado.edu>
3239
3246
3240 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3247 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3241 otherwise uncaught exceptions which can appear if people set
3248 otherwise uncaught exceptions which can appear if people set
3242 sys.stdout to something badly broken. Thanks to a crash report
3249 sys.stdout to something badly broken. Thanks to a crash report
3243 from henni-AT-mail.brainbot.com.
3250 from henni-AT-mail.brainbot.com.
3244
3251
3245 2002-11-04 Fernando Perez <fperez@colorado.edu>
3252 2002-11-04 Fernando Perez <fperez@colorado.edu>
3246
3253
3247 * IPython/iplib.py (InteractiveShell.interact): added
3254 * IPython/iplib.py (InteractiveShell.interact): added
3248 __IPYTHON__active to the builtins. It's a flag which goes on when
3255 __IPYTHON__active to the builtins. It's a flag which goes on when
3249 the interaction starts and goes off again when it stops. This
3256 the interaction starts and goes off again when it stops. This
3250 allows embedding code to detect being inside IPython. Before this
3257 allows embedding code to detect being inside IPython. Before this
3251 was done via __IPYTHON__, but that only shows that an IPython
3258 was done via __IPYTHON__, but that only shows that an IPython
3252 instance has been created.
3259 instance has been created.
3253
3260
3254 * IPython/Magic.py (Magic.magic_env): I realized that in a
3261 * IPython/Magic.py (Magic.magic_env): I realized that in a
3255 UserDict, instance.data holds the data as a normal dict. So I
3262 UserDict, instance.data holds the data as a normal dict. So I
3256 modified @env to return os.environ.data instead of rebuilding a
3263 modified @env to return os.environ.data instead of rebuilding a
3257 dict by hand.
3264 dict by hand.
3258
3265
3259 2002-11-02 Fernando Perez <fperez@colorado.edu>
3266 2002-11-02 Fernando Perez <fperez@colorado.edu>
3260
3267
3261 * IPython/genutils.py (warn): changed so that level 1 prints no
3268 * IPython/genutils.py (warn): changed so that level 1 prints no
3262 header. Level 2 is now the default (with 'WARNING' header, as
3269 header. Level 2 is now the default (with 'WARNING' header, as
3263 before). I think I tracked all places where changes were needed in
3270 before). I think I tracked all places where changes were needed in
3264 IPython, but outside code using the old level numbering may have
3271 IPython, but outside code using the old level numbering may have
3265 broken.
3272 broken.
3266
3273
3267 * IPython/iplib.py (InteractiveShell.runcode): added this to
3274 * IPython/iplib.py (InteractiveShell.runcode): added this to
3268 handle the tracebacks in SystemExit traps correctly. The previous
3275 handle the tracebacks in SystemExit traps correctly. The previous
3269 code (through interact) was printing more of the stack than
3276 code (through interact) was printing more of the stack than
3270 necessary, showing IPython internal code to the user.
3277 necessary, showing IPython internal code to the user.
3271
3278
3272 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3279 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3273 default. Now that the default at the confirmation prompt is yes,
3280 default. Now that the default at the confirmation prompt is yes,
3274 it's not so intrusive. François' argument that ipython sessions
3281 it's not so intrusive. François' argument that ipython sessions
3275 tend to be complex enough not to lose them from an accidental C-d,
3282 tend to be complex enough not to lose them from an accidental C-d,
3276 is a valid one.
3283 is a valid one.
3277
3284
3278 * IPython/iplib.py (InteractiveShell.interact): added a
3285 * IPython/iplib.py (InteractiveShell.interact): added a
3279 showtraceback() call to the SystemExit trap, and modified the exit
3286 showtraceback() call to the SystemExit trap, and modified the exit
3280 confirmation to have yes as the default.
3287 confirmation to have yes as the default.
3281
3288
3282 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3289 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3283 this file. It's been gone from the code for a long time, this was
3290 this file. It's been gone from the code for a long time, this was
3284 simply leftover junk.
3291 simply leftover junk.
3285
3292
3286 2002-11-01 Fernando Perez <fperez@colorado.edu>
3293 2002-11-01 Fernando Perez <fperez@colorado.edu>
3287
3294
3288 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3295 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3289 added. If set, IPython now traps EOF and asks for
3296 added. If set, IPython now traps EOF and asks for
3290 confirmation. After a request by François Pinard.
3297 confirmation. After a request by François Pinard.
3291
3298
3292 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3299 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3293 of @abort, and with a new (better) mechanism for handling the
3300 of @abort, and with a new (better) mechanism for handling the
3294 exceptions.
3301 exceptions.
3295
3302
3296 2002-10-27 Fernando Perez <fperez@colorado.edu>
3303 2002-10-27 Fernando Perez <fperez@colorado.edu>
3297
3304
3298 * IPython/usage.py (__doc__): updated the --help information and
3305 * IPython/usage.py (__doc__): updated the --help information and
3299 the ipythonrc file to indicate that -log generates
3306 the ipythonrc file to indicate that -log generates
3300 ./ipython.log. Also fixed the corresponding info in @logstart.
3307 ./ipython.log. Also fixed the corresponding info in @logstart.
3301 This and several other fixes in the manuals thanks to reports by
3308 This and several other fixes in the manuals thanks to reports by
3302 François Pinard <pinard-AT-iro.umontreal.ca>.
3309 François Pinard <pinard-AT-iro.umontreal.ca>.
3303
3310
3304 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3311 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3305 refer to @logstart (instead of @log, which doesn't exist).
3312 refer to @logstart (instead of @log, which doesn't exist).
3306
3313
3307 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3314 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3308 AttributeError crash. Thanks to Christopher Armstrong
3315 AttributeError crash. Thanks to Christopher Armstrong
3309 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3316 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3310 introduced recently (in 0.2.14pre37) with the fix to the eval
3317 introduced recently (in 0.2.14pre37) with the fix to the eval
3311 problem mentioned below.
3318 problem mentioned below.
3312
3319
3313 2002-10-17 Fernando Perez <fperez@colorado.edu>
3320 2002-10-17 Fernando Perez <fperez@colorado.edu>
3314
3321
3315 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3322 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3316 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3323 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3317
3324
3318 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3325 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3319 this function to fix a problem reported by Alex Schmolck. He saw
3326 this function to fix a problem reported by Alex Schmolck. He saw
3320 it with list comprehensions and generators, which were getting
3327 it with list comprehensions and generators, which were getting
3321 called twice. The real problem was an 'eval' call in testing for
3328 called twice. The real problem was an 'eval' call in testing for
3322 automagic which was evaluating the input line silently.
3329 automagic which was evaluating the input line silently.
3323
3330
3324 This is a potentially very nasty bug, if the input has side
3331 This is a potentially very nasty bug, if the input has side
3325 effects which must not be repeated. The code is much cleaner now,
3332 effects which must not be repeated. The code is much cleaner now,
3326 without any blanket 'except' left and with a regexp test for
3333 without any blanket 'except' left and with a regexp test for
3327 actual function names.
3334 actual function names.
3328
3335
3329 But an eval remains, which I'm not fully comfortable with. I just
3336 But an eval remains, which I'm not fully comfortable with. I just
3330 don't know how to find out if an expression could be a callable in
3337 don't know how to find out if an expression could be a callable in
3331 the user's namespace without doing an eval on the string. However
3338 the user's namespace without doing an eval on the string. However
3332 that string is now much more strictly checked so that no code
3339 that string is now much more strictly checked so that no code
3333 slips by, so the eval should only happen for things that can
3340 slips by, so the eval should only happen for things that can
3334 really be only function/method names.
3341 really be only function/method names.
3335
3342
3336 2002-10-15 Fernando Perez <fperez@colorado.edu>
3343 2002-10-15 Fernando Perez <fperez@colorado.edu>
3337
3344
3338 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3345 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3339 OSX information to main manual, removed README_Mac_OSX file from
3346 OSX information to main manual, removed README_Mac_OSX file from
3340 distribution. Also updated credits for recent additions.
3347 distribution. Also updated credits for recent additions.
3341
3348
3342 2002-10-10 Fernando Perez <fperez@colorado.edu>
3349 2002-10-10 Fernando Perez <fperez@colorado.edu>
3343
3350
3344 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3351 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3345 terminal-related issues. Many thanks to Andrea Riciputi
3352 terminal-related issues. Many thanks to Andrea Riciputi
3346 <andrea.riciputi-AT-libero.it> for writing it.
3353 <andrea.riciputi-AT-libero.it> for writing it.
3347
3354
3348 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3355 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3349 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3356 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3350
3357
3351 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3358 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3352 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3359 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3353 <syver-en-AT-online.no> who both submitted patches for this problem.
3360 <syver-en-AT-online.no> who both submitted patches for this problem.
3354
3361
3355 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3362 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3356 global embedding to make sure that things don't overwrite user
3363 global embedding to make sure that things don't overwrite user
3357 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3364 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3358
3365
3359 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3366 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3360 compatibility. Thanks to Hayden Callow
3367 compatibility. Thanks to Hayden Callow
3361 <h.callow-AT-elec.canterbury.ac.nz>
3368 <h.callow-AT-elec.canterbury.ac.nz>
3362
3369
3363 2002-10-04 Fernando Perez <fperez@colorado.edu>
3370 2002-10-04 Fernando Perez <fperez@colorado.edu>
3364
3371
3365 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3372 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3366 Gnuplot.File objects.
3373 Gnuplot.File objects.
3367
3374
3368 2002-07-23 Fernando Perez <fperez@colorado.edu>
3375 2002-07-23 Fernando Perez <fperez@colorado.edu>
3369
3376
3370 * IPython/genutils.py (timing): Added timings() and timing() for
3377 * IPython/genutils.py (timing): Added timings() and timing() for
3371 quick access to the most commonly needed data, the execution
3378 quick access to the most commonly needed data, the execution
3372 times. Old timing() renamed to timings_out().
3379 times. Old timing() renamed to timings_out().
3373
3380
3374 2002-07-18 Fernando Perez <fperez@colorado.edu>
3381 2002-07-18 Fernando Perez <fperez@colorado.edu>
3375
3382
3376 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3383 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3377 bug with nested instances disrupting the parent's tab completion.
3384 bug with nested instances disrupting the parent's tab completion.
3378
3385
3379 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3386 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3380 all_completions code to begin the emacs integration.
3387 all_completions code to begin the emacs integration.
3381
3388
3382 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3389 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3383 argument to allow titling individual arrays when plotting.
3390 argument to allow titling individual arrays when plotting.
3384
3391
3385 2002-07-15 Fernando Perez <fperez@colorado.edu>
3392 2002-07-15 Fernando Perez <fperez@colorado.edu>
3386
3393
3387 * setup.py (make_shortcut): changed to retrieve the value of
3394 * setup.py (make_shortcut): changed to retrieve the value of
3388 'Program Files' directory from the registry (this value changes in
3395 'Program Files' directory from the registry (this value changes in
3389 non-english versions of Windows). Thanks to Thomas Fanslau
3396 non-english versions of Windows). Thanks to Thomas Fanslau
3390 <tfanslau-AT-gmx.de> for the report.
3397 <tfanslau-AT-gmx.de> for the report.
3391
3398
3392 2002-07-10 Fernando Perez <fperez@colorado.edu>
3399 2002-07-10 Fernando Perez <fperez@colorado.edu>
3393
3400
3394 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3401 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3395 a bug in pdb, which crashes if a line with only whitespace is
3402 a bug in pdb, which crashes if a line with only whitespace is
3396 entered. Bug report submitted to sourceforge.
3403 entered. Bug report submitted to sourceforge.
3397
3404
3398 2002-07-09 Fernando Perez <fperez@colorado.edu>
3405 2002-07-09 Fernando Perez <fperez@colorado.edu>
3399
3406
3400 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3407 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3401 reporting exceptions (it's a bug in inspect.py, I just set a
3408 reporting exceptions (it's a bug in inspect.py, I just set a
3402 workaround).
3409 workaround).
3403
3410
3404 2002-07-08 Fernando Perez <fperez@colorado.edu>
3411 2002-07-08 Fernando Perez <fperez@colorado.edu>
3405
3412
3406 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3413 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3407 __IPYTHON__ in __builtins__ to show up in user_ns.
3414 __IPYTHON__ in __builtins__ to show up in user_ns.
3408
3415
3409 2002-07-03 Fernando Perez <fperez@colorado.edu>
3416 2002-07-03 Fernando Perez <fperez@colorado.edu>
3410
3417
3411 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3418 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3412 name from @gp_set_instance to @gp_set_default.
3419 name from @gp_set_instance to @gp_set_default.
3413
3420
3414 * IPython/ipmaker.py (make_IPython): default editor value set to
3421 * IPython/ipmaker.py (make_IPython): default editor value set to
3415 '0' (a string), to match the rc file. Otherwise will crash when
3422 '0' (a string), to match the rc file. Otherwise will crash when
3416 .strip() is called on it.
3423 .strip() is called on it.
3417
3424
3418
3425
3419 2002-06-28 Fernando Perez <fperez@colorado.edu>
3426 2002-06-28 Fernando Perez <fperez@colorado.edu>
3420
3427
3421 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3428 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3422 of files in current directory when a file is executed via
3429 of files in current directory when a file is executed via
3423 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3430 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3424
3431
3425 * setup.py (manfiles): fix for rpm builds, submitted by RA
3432 * setup.py (manfiles): fix for rpm builds, submitted by RA
3426 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3433 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3427
3434
3428 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3435 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3429 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3436 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3430 string!). A. Schmolck caught this one.
3437 string!). A. Schmolck caught this one.
3431
3438
3432 2002-06-27 Fernando Perez <fperez@colorado.edu>
3439 2002-06-27 Fernando Perez <fperez@colorado.edu>
3433
3440
3434 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3441 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3435 defined files at the cmd line. __name__ wasn't being set to
3442 defined files at the cmd line. __name__ wasn't being set to
3436 __main__.
3443 __main__.
3437
3444
3438 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3445 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3439 regular lists and tuples besides Numeric arrays.
3446 regular lists and tuples besides Numeric arrays.
3440
3447
3441 * IPython/Prompts.py (CachedOutput.__call__): Added output
3448 * IPython/Prompts.py (CachedOutput.__call__): Added output
3442 supression for input ending with ';'. Similar to Mathematica and
3449 supression for input ending with ';'. Similar to Mathematica and
3443 Matlab. The _* vars and Out[] list are still updated, just like
3450 Matlab. The _* vars and Out[] list are still updated, just like
3444 Mathematica behaves.
3451 Mathematica behaves.
3445
3452
3446 2002-06-25 Fernando Perez <fperez@colorado.edu>
3453 2002-06-25 Fernando Perez <fperez@colorado.edu>
3447
3454
3448 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3455 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3449 .ini extensions for profiels under Windows.
3456 .ini extensions for profiels under Windows.
3450
3457
3451 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3458 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3452 string form. Fix contributed by Alexander Schmolck
3459 string form. Fix contributed by Alexander Schmolck
3453 <a.schmolck-AT-gmx.net>
3460 <a.schmolck-AT-gmx.net>
3454
3461
3455 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3462 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3456 pre-configured Gnuplot instance.
3463 pre-configured Gnuplot instance.
3457
3464
3458 2002-06-21 Fernando Perez <fperez@colorado.edu>
3465 2002-06-21 Fernando Perez <fperez@colorado.edu>
3459
3466
3460 * IPython/numutils.py (exp_safe): new function, works around the
3467 * IPython/numutils.py (exp_safe): new function, works around the
3461 underflow problems in Numeric.
3468 underflow problems in Numeric.
3462 (log2): New fn. Safe log in base 2: returns exact integer answer
3469 (log2): New fn. Safe log in base 2: returns exact integer answer
3463 for exact integer powers of 2.
3470 for exact integer powers of 2.
3464
3471
3465 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3472 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3466 properly.
3473 properly.
3467
3474
3468 2002-06-20 Fernando Perez <fperez@colorado.edu>
3475 2002-06-20 Fernando Perez <fperez@colorado.edu>
3469
3476
3470 * IPython/genutils.py (timing): new function like
3477 * IPython/genutils.py (timing): new function like
3471 Mathematica's. Similar to time_test, but returns more info.
3478 Mathematica's. Similar to time_test, but returns more info.
3472
3479
3473 2002-06-18 Fernando Perez <fperez@colorado.edu>
3480 2002-06-18 Fernando Perez <fperez@colorado.edu>
3474
3481
3475 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3482 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3476 according to Mike Heeter's suggestions.
3483 according to Mike Heeter's suggestions.
3477
3484
3478 2002-06-16 Fernando Perez <fperez@colorado.edu>
3485 2002-06-16 Fernando Perez <fperez@colorado.edu>
3479
3486
3480 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3487 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3481 system. GnuplotMagic is gone as a user-directory option. New files
3488 system. GnuplotMagic is gone as a user-directory option. New files
3482 make it easier to use all the gnuplot stuff both from external
3489 make it easier to use all the gnuplot stuff both from external
3483 programs as well as from IPython. Had to rewrite part of
3490 programs as well as from IPython. Had to rewrite part of
3484 hardcopy() b/c of a strange bug: often the ps files simply don't
3491 hardcopy() b/c of a strange bug: often the ps files simply don't
3485 get created, and require a repeat of the command (often several
3492 get created, and require a repeat of the command (often several
3486 times).
3493 times).
3487
3494
3488 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3495 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3489 resolve output channel at call time, so that if sys.stderr has
3496 resolve output channel at call time, so that if sys.stderr has
3490 been redirected by user this gets honored.
3497 been redirected by user this gets honored.
3491
3498
3492 2002-06-13 Fernando Perez <fperez@colorado.edu>
3499 2002-06-13 Fernando Perez <fperez@colorado.edu>
3493
3500
3494 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3501 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3495 IPShell. Kept a copy with the old names to avoid breaking people's
3502 IPShell. Kept a copy with the old names to avoid breaking people's
3496 embedded code.
3503 embedded code.
3497
3504
3498 * IPython/ipython: simplified it to the bare minimum after
3505 * IPython/ipython: simplified it to the bare minimum after
3499 Holger's suggestions. Added info about how to use it in
3506 Holger's suggestions. Added info about how to use it in
3500 PYTHONSTARTUP.
3507 PYTHONSTARTUP.
3501
3508
3502 * IPython/Shell.py (IPythonShell): changed the options passing
3509 * IPython/Shell.py (IPythonShell): changed the options passing
3503 from a string with funky %s replacements to a straight list. Maybe
3510 from a string with funky %s replacements to a straight list. Maybe
3504 a bit more typing, but it follows sys.argv conventions, so there's
3511 a bit more typing, but it follows sys.argv conventions, so there's
3505 less special-casing to remember.
3512 less special-casing to remember.
3506
3513
3507 2002-06-12 Fernando Perez <fperez@colorado.edu>
3514 2002-06-12 Fernando Perez <fperez@colorado.edu>
3508
3515
3509 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3516 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3510 command. Thanks to a suggestion by Mike Heeter.
3517 command. Thanks to a suggestion by Mike Heeter.
3511 (Magic.magic_pfile): added behavior to look at filenames if given
3518 (Magic.magic_pfile): added behavior to look at filenames if given
3512 arg is not a defined object.
3519 arg is not a defined object.
3513 (Magic.magic_save): New @save function to save code snippets. Also
3520 (Magic.magic_save): New @save function to save code snippets. Also
3514 a Mike Heeter idea.
3521 a Mike Heeter idea.
3515
3522
3516 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3523 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3517 plot() and replot(). Much more convenient now, especially for
3524 plot() and replot(). Much more convenient now, especially for
3518 interactive use.
3525 interactive use.
3519
3526
3520 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3527 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3521 filenames.
3528 filenames.
3522
3529
3523 2002-06-02 Fernando Perez <fperez@colorado.edu>
3530 2002-06-02 Fernando Perez <fperez@colorado.edu>
3524
3531
3525 * IPython/Struct.py (Struct.__init__): modified to admit
3532 * IPython/Struct.py (Struct.__init__): modified to admit
3526 initialization via another struct.
3533 initialization via another struct.
3527
3534
3528 * IPython/genutils.py (SystemExec.__init__): New stateful
3535 * IPython/genutils.py (SystemExec.__init__): New stateful
3529 interface to xsys and bq. Useful for writing system scripts.
3536 interface to xsys and bq. Useful for writing system scripts.
3530
3537
3531 2002-05-30 Fernando Perez <fperez@colorado.edu>
3538 2002-05-30 Fernando Perez <fperez@colorado.edu>
3532
3539
3533 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3540 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3534 documents. This will make the user download smaller (it's getting
3541 documents. This will make the user download smaller (it's getting
3535 too big).
3542 too big).
3536
3543
3537 2002-05-29 Fernando Perez <fperez@colorado.edu>
3544 2002-05-29 Fernando Perez <fperez@colorado.edu>
3538
3545
3539 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3546 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3540 fix problems with shelve and pickle. Seems to work, but I don't
3547 fix problems with shelve and pickle. Seems to work, but I don't
3541 know if corner cases break it. Thanks to Mike Heeter
3548 know if corner cases break it. Thanks to Mike Heeter
3542 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3549 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3543
3550
3544 2002-05-24 Fernando Perez <fperez@colorado.edu>
3551 2002-05-24 Fernando Perez <fperez@colorado.edu>
3545
3552
3546 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3553 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3547 macros having broken.
3554 macros having broken.
3548
3555
3549 2002-05-21 Fernando Perez <fperez@colorado.edu>
3556 2002-05-21 Fernando Perez <fperez@colorado.edu>
3550
3557
3551 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3558 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3552 introduced logging bug: all history before logging started was
3559 introduced logging bug: all history before logging started was
3553 being written one character per line! This came from the redesign
3560 being written one character per line! This came from the redesign
3554 of the input history as a special list which slices to strings,
3561 of the input history as a special list which slices to strings,
3555 not to lists.
3562 not to lists.
3556
3563
3557 2002-05-20 Fernando Perez <fperez@colorado.edu>
3564 2002-05-20 Fernando Perez <fperez@colorado.edu>
3558
3565
3559 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3566 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3560 be an attribute of all classes in this module. The design of these
3567 be an attribute of all classes in this module. The design of these
3561 classes needs some serious overhauling.
3568 classes needs some serious overhauling.
3562
3569
3563 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3570 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3564 which was ignoring '_' in option names.
3571 which was ignoring '_' in option names.
3565
3572
3566 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3573 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3567 'Verbose_novars' to 'Context' and made it the new default. It's a
3574 'Verbose_novars' to 'Context' and made it the new default. It's a
3568 bit more readable and also safer than verbose.
3575 bit more readable and also safer than verbose.
3569
3576
3570 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3577 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3571 triple-quoted strings.
3578 triple-quoted strings.
3572
3579
3573 * IPython/OInspect.py (__all__): new module exposing the object
3580 * IPython/OInspect.py (__all__): new module exposing the object
3574 introspection facilities. Now the corresponding magics are dummy
3581 introspection facilities. Now the corresponding magics are dummy
3575 wrappers around this. Having this module will make it much easier
3582 wrappers around this. Having this module will make it much easier
3576 to put these functions into our modified pdb.
3583 to put these functions into our modified pdb.
3577 This new object inspector system uses the new colorizing module,
3584 This new object inspector system uses the new colorizing module,
3578 so source code and other things are nicely syntax highlighted.
3585 so source code and other things are nicely syntax highlighted.
3579
3586
3580 2002-05-18 Fernando Perez <fperez@colorado.edu>
3587 2002-05-18 Fernando Perez <fperez@colorado.edu>
3581
3588
3582 * IPython/ColorANSI.py: Split the coloring tools into a separate
3589 * IPython/ColorANSI.py: Split the coloring tools into a separate
3583 module so I can use them in other code easier (they were part of
3590 module so I can use them in other code easier (they were part of
3584 ultraTB).
3591 ultraTB).
3585
3592
3586 2002-05-17 Fernando Perez <fperez@colorado.edu>
3593 2002-05-17 Fernando Perez <fperez@colorado.edu>
3587
3594
3588 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3595 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3589 fixed it to set the global 'g' also to the called instance, as
3596 fixed it to set the global 'g' also to the called instance, as
3590 long as 'g' was still a gnuplot instance (so it doesn't overwrite
3597 long as 'g' was still a gnuplot instance (so it doesn't overwrite
3591 user's 'g' variables).
3598 user's 'g' variables).
3592
3599
3593 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
3600 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
3594 global variables (aliases to _ih,_oh) so that users which expect
3601 global variables (aliases to _ih,_oh) so that users which expect
3595 In[5] or Out[7] to work aren't unpleasantly surprised.
3602 In[5] or Out[7] to work aren't unpleasantly surprised.
3596 (InputList.__getslice__): new class to allow executing slices of
3603 (InputList.__getslice__): new class to allow executing slices of
3597 input history directly. Very simple class, complements the use of
3604 input history directly. Very simple class, complements the use of
3598 macros.
3605 macros.
3599
3606
3600 2002-05-16 Fernando Perez <fperez@colorado.edu>
3607 2002-05-16 Fernando Perez <fperez@colorado.edu>
3601
3608
3602 * setup.py (docdirbase): make doc directory be just doc/IPython
3609 * setup.py (docdirbase): make doc directory be just doc/IPython
3603 without version numbers, it will reduce clutter for users.
3610 without version numbers, it will reduce clutter for users.
3604
3611
3605 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
3612 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
3606 execfile call to prevent possible memory leak. See for details:
3613 execfile call to prevent possible memory leak. See for details:
3607 http://mail.python.org/pipermail/python-list/2002-February/088476.html
3614 http://mail.python.org/pipermail/python-list/2002-February/088476.html
3608
3615
3609 2002-05-15 Fernando Perez <fperez@colorado.edu>
3616 2002-05-15 Fernando Perez <fperez@colorado.edu>
3610
3617
3611 * IPython/Magic.py (Magic.magic_psource): made the object
3618 * IPython/Magic.py (Magic.magic_psource): made the object
3612 introspection names be more standard: pdoc, pdef, pfile and
3619 introspection names be more standard: pdoc, pdef, pfile and
3613 psource. They all print/page their output, and it makes
3620 psource. They all print/page their output, and it makes
3614 remembering them easier. Kept old names for compatibility as
3621 remembering them easier. Kept old names for compatibility as
3615 aliases.
3622 aliases.
3616
3623
3617 2002-05-14 Fernando Perez <fperez@colorado.edu>
3624 2002-05-14 Fernando Perez <fperez@colorado.edu>
3618
3625
3619 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3626 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3620 what the mouse problem was. The trick is to use gnuplot with temp
3627 what the mouse problem was. The trick is to use gnuplot with temp
3621 files and NOT with pipes (for data communication), because having
3628 files and NOT with pipes (for data communication), because having
3622 both pipes and the mouse on is bad news.
3629 both pipes and the mouse on is bad news.
3623
3630
3624 2002-05-13 Fernando Perez <fperez@colorado.edu>
3631 2002-05-13 Fernando Perez <fperez@colorado.edu>
3625
3632
3626 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3633 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3627 bug. Information would be reported about builtins even when
3634 bug. Information would be reported about builtins even when
3628 user-defined functions overrode them.
3635 user-defined functions overrode them.
3629
3636
3630 2002-05-11 Fernando Perez <fperez@colorado.edu>
3637 2002-05-11 Fernando Perez <fperez@colorado.edu>
3631
3638
3632 * IPython/__init__.py (__all__): removed FlexCompleter from
3639 * IPython/__init__.py (__all__): removed FlexCompleter from
3633 __all__ so that things don't fail in platforms without readline.
3640 __all__ so that things don't fail in platforms without readline.
3634
3641
3635 2002-05-10 Fernando Perez <fperez@colorado.edu>
3642 2002-05-10 Fernando Perez <fperez@colorado.edu>
3636
3643
3637 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3644 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3638 it requires Numeric, effectively making Numeric a dependency for
3645 it requires Numeric, effectively making Numeric a dependency for
3639 IPython.
3646 IPython.
3640
3647
3641 * Released 0.2.13
3648 * Released 0.2.13
3642
3649
3643 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3650 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3644 profiler interface. Now all the major options from the profiler
3651 profiler interface. Now all the major options from the profiler
3645 module are directly supported in IPython, both for single
3652 module are directly supported in IPython, both for single
3646 expressions (@prun) and for full programs (@run -p).
3653 expressions (@prun) and for full programs (@run -p).
3647
3654
3648 2002-05-09 Fernando Perez <fperez@colorado.edu>
3655 2002-05-09 Fernando Perez <fperez@colorado.edu>
3649
3656
3650 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3657 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3651 magic properly formatted for screen.
3658 magic properly formatted for screen.
3652
3659
3653 * setup.py (make_shortcut): Changed things to put pdf version in
3660 * setup.py (make_shortcut): Changed things to put pdf version in
3654 doc/ instead of doc/manual (had to change lyxport a bit).
3661 doc/ instead of doc/manual (had to change lyxport a bit).
3655
3662
3656 * IPython/Magic.py (Profile.string_stats): made profile runs go
3663 * IPython/Magic.py (Profile.string_stats): made profile runs go
3657 through pager (they are long and a pager allows searching, saving,
3664 through pager (they are long and a pager allows searching, saving,
3658 etc.)
3665 etc.)
3659
3666
3660 2002-05-08 Fernando Perez <fperez@colorado.edu>
3667 2002-05-08 Fernando Perez <fperez@colorado.edu>
3661
3668
3662 * Released 0.2.12
3669 * Released 0.2.12
3663
3670
3664 2002-05-06 Fernando Perez <fperez@colorado.edu>
3671 2002-05-06 Fernando Perez <fperez@colorado.edu>
3665
3672
3666 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
3673 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
3667 introduced); 'hist n1 n2' was broken.
3674 introduced); 'hist n1 n2' was broken.
3668 (Magic.magic_pdb): added optional on/off arguments to @pdb
3675 (Magic.magic_pdb): added optional on/off arguments to @pdb
3669 (Magic.magic_run): added option -i to @run, which executes code in
3676 (Magic.magic_run): added option -i to @run, which executes code in
3670 the IPython namespace instead of a clean one. Also added @irun as
3677 the IPython namespace instead of a clean one. Also added @irun as
3671 an alias to @run -i.
3678 an alias to @run -i.
3672
3679
3673 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3680 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3674 fixed (it didn't really do anything, the namespaces were wrong).
3681 fixed (it didn't really do anything, the namespaces were wrong).
3675
3682
3676 * IPython/Debugger.py (__init__): Added workaround for python 2.1
3683 * IPython/Debugger.py (__init__): Added workaround for python 2.1
3677
3684
3678 * IPython/__init__.py (__all__): Fixed package namespace, now
3685 * IPython/__init__.py (__all__): Fixed package namespace, now
3679 'import IPython' does give access to IPython.<all> as
3686 'import IPython' does give access to IPython.<all> as
3680 expected. Also renamed __release__ to Release.
3687 expected. Also renamed __release__ to Release.
3681
3688
3682 * IPython/Debugger.py (__license__): created new Pdb class which
3689 * IPython/Debugger.py (__license__): created new Pdb class which
3683 functions like a drop-in for the normal pdb.Pdb but does NOT
3690 functions like a drop-in for the normal pdb.Pdb but does NOT
3684 import readline by default. This way it doesn't muck up IPython's
3691 import readline by default. This way it doesn't muck up IPython's
3685 readline handling, and now tab-completion finally works in the
3692 readline handling, and now tab-completion finally works in the
3686 debugger -- sort of. It completes things globally visible, but the
3693 debugger -- sort of. It completes things globally visible, but the
3687 completer doesn't track the stack as pdb walks it. That's a bit
3694 completer doesn't track the stack as pdb walks it. That's a bit
3688 tricky, and I'll have to implement it later.
3695 tricky, and I'll have to implement it later.
3689
3696
3690 2002-05-05 Fernando Perez <fperez@colorado.edu>
3697 2002-05-05 Fernando Perez <fperez@colorado.edu>
3691
3698
3692 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
3699 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
3693 magic docstrings when printed via ? (explicit \'s were being
3700 magic docstrings when printed via ? (explicit \'s were being
3694 printed).
3701 printed).
3695
3702
3696 * IPython/ipmaker.py (make_IPython): fixed namespace
3703 * IPython/ipmaker.py (make_IPython): fixed namespace
3697 identification bug. Now variables loaded via logs or command-line
3704 identification bug. Now variables loaded via logs or command-line
3698 files are recognized in the interactive namespace by @who.
3705 files are recognized in the interactive namespace by @who.
3699
3706
3700 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
3707 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
3701 log replay system stemming from the string form of Structs.
3708 log replay system stemming from the string form of Structs.
3702
3709
3703 * IPython/Magic.py (Macro.__init__): improved macros to properly
3710 * IPython/Magic.py (Macro.__init__): improved macros to properly
3704 handle magic commands in them.
3711 handle magic commands in them.
3705 (Magic.magic_logstart): usernames are now expanded so 'logstart
3712 (Magic.magic_logstart): usernames are now expanded so 'logstart
3706 ~/mylog' now works.
3713 ~/mylog' now works.
3707
3714
3708 * IPython/iplib.py (complete): fixed bug where paths starting with
3715 * IPython/iplib.py (complete): fixed bug where paths starting with
3709 '/' would be completed as magic names.
3716 '/' would be completed as magic names.
3710
3717
3711 2002-05-04 Fernando Perez <fperez@colorado.edu>
3718 2002-05-04 Fernando Perez <fperez@colorado.edu>
3712
3719
3713 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
3720 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
3714 allow running full programs under the profiler's control.
3721 allow running full programs under the profiler's control.
3715
3722
3716 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
3723 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
3717 mode to report exceptions verbosely but without formatting
3724 mode to report exceptions verbosely but without formatting
3718 variables. This addresses the issue of ipython 'freezing' (it's
3725 variables. This addresses the issue of ipython 'freezing' (it's
3719 not frozen, but caught in an expensive formatting loop) when huge
3726 not frozen, but caught in an expensive formatting loop) when huge
3720 variables are in the context of an exception.
3727 variables are in the context of an exception.
3721 (VerboseTB.text): Added '--->' markers at line where exception was
3728 (VerboseTB.text): Added '--->' markers at line where exception was
3722 triggered. Much clearer to read, especially in NoColor modes.
3729 triggered. Much clearer to read, especially in NoColor modes.
3723
3730
3724 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
3731 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
3725 implemented in reverse when changing to the new parse_options().
3732 implemented in reverse when changing to the new parse_options().
3726
3733
3727 2002-05-03 Fernando Perez <fperez@colorado.edu>
3734 2002-05-03 Fernando Perez <fperez@colorado.edu>
3728
3735
3729 * IPython/Magic.py (Magic.parse_options): new function so that
3736 * IPython/Magic.py (Magic.parse_options): new function so that
3730 magics can parse options easier.
3737 magics can parse options easier.
3731 (Magic.magic_prun): new function similar to profile.run(),
3738 (Magic.magic_prun): new function similar to profile.run(),
3732 suggested by Chris Hart.
3739 suggested by Chris Hart.
3733 (Magic.magic_cd): fixed behavior so that it only changes if
3740 (Magic.magic_cd): fixed behavior so that it only changes if
3734 directory actually is in history.
3741 directory actually is in history.
3735
3742
3736 * IPython/usage.py (__doc__): added information about potential
3743 * IPython/usage.py (__doc__): added information about potential
3737 slowness of Verbose exception mode when there are huge data
3744 slowness of Verbose exception mode when there are huge data
3738 structures to be formatted (thanks to Archie Paulson).
3745 structures to be formatted (thanks to Archie Paulson).
3739
3746
3740 * IPython/ipmaker.py (make_IPython): Changed default logging
3747 * IPython/ipmaker.py (make_IPython): Changed default logging
3741 (when simply called with -log) to use curr_dir/ipython.log in
3748 (when simply called with -log) to use curr_dir/ipython.log in
3742 rotate mode. Fixed crash which was occuring with -log before
3749 rotate mode. Fixed crash which was occuring with -log before
3743 (thanks to Jim Boyle).
3750 (thanks to Jim Boyle).
3744
3751
3745 2002-05-01 Fernando Perez <fperez@colorado.edu>
3752 2002-05-01 Fernando Perez <fperez@colorado.edu>
3746
3753
3747 * Released 0.2.11 for these fixes (mainly the ultraTB one which
3754 * Released 0.2.11 for these fixes (mainly the ultraTB one which
3748 was nasty -- though somewhat of a corner case).
3755 was nasty -- though somewhat of a corner case).
3749
3756
3750 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
3757 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
3751 text (was a bug).
3758 text (was a bug).
3752
3759
3753 2002-04-30 Fernando Perez <fperez@colorado.edu>
3760 2002-04-30 Fernando Perez <fperez@colorado.edu>
3754
3761
3755 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
3762 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
3756 a print after ^D or ^C from the user so that the In[] prompt
3763 a print after ^D or ^C from the user so that the In[] prompt
3757 doesn't over-run the gnuplot one.
3764 doesn't over-run the gnuplot one.
3758
3765
3759 2002-04-29 Fernando Perez <fperez@colorado.edu>
3766 2002-04-29 Fernando Perez <fperez@colorado.edu>
3760
3767
3761 * Released 0.2.10
3768 * Released 0.2.10
3762
3769
3763 * IPython/__release__.py (version): get date dynamically.
3770 * IPython/__release__.py (version): get date dynamically.
3764
3771
3765 * Misc. documentation updates thanks to Arnd's comments. Also ran
3772 * Misc. documentation updates thanks to Arnd's comments. Also ran
3766 a full spellcheck on the manual (hadn't been done in a while).
3773 a full spellcheck on the manual (hadn't been done in a while).
3767
3774
3768 2002-04-27 Fernando Perez <fperez@colorado.edu>
3775 2002-04-27 Fernando Perez <fperez@colorado.edu>
3769
3776
3770 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
3777 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
3771 starting a log in mid-session would reset the input history list.
3778 starting a log in mid-session would reset the input history list.
3772
3779
3773 2002-04-26 Fernando Perez <fperez@colorado.edu>
3780 2002-04-26 Fernando Perez <fperez@colorado.edu>
3774
3781
3775 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
3782 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
3776 all files were being included in an update. Now anything in
3783 all files were being included in an update. Now anything in
3777 UserConfig that matches [A-Za-z]*.py will go (this excludes
3784 UserConfig that matches [A-Za-z]*.py will go (this excludes
3778 __init__.py)
3785 __init__.py)
3779
3786
3780 2002-04-25 Fernando Perez <fperez@colorado.edu>
3787 2002-04-25 Fernando Perez <fperez@colorado.edu>
3781
3788
3782 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
3789 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
3783 to __builtins__ so that any form of embedded or imported code can
3790 to __builtins__ so that any form of embedded or imported code can
3784 test for being inside IPython.
3791 test for being inside IPython.
3785
3792
3786 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
3793 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
3787 changed to GnuplotMagic because it's now an importable module,
3794 changed to GnuplotMagic because it's now an importable module,
3788 this makes the name follow that of the standard Gnuplot module.
3795 this makes the name follow that of the standard Gnuplot module.
3789 GnuplotMagic can now be loaded at any time in mid-session.
3796 GnuplotMagic can now be loaded at any time in mid-session.
3790
3797
3791 2002-04-24 Fernando Perez <fperez@colorado.edu>
3798 2002-04-24 Fernando Perez <fperez@colorado.edu>
3792
3799
3793 * IPython/numutils.py: removed SIUnits. It doesn't properly set
3800 * IPython/numutils.py: removed SIUnits. It doesn't properly set
3794 the globals (IPython has its own namespace) and the
3801 the globals (IPython has its own namespace) and the
3795 PhysicalQuantity stuff is much better anyway.
3802 PhysicalQuantity stuff is much better anyway.
3796
3803
3797 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
3804 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
3798 embedding example to standard user directory for
3805 embedding example to standard user directory for
3799 distribution. Also put it in the manual.
3806 distribution. Also put it in the manual.
3800
3807
3801 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
3808 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
3802 instance as first argument (so it doesn't rely on some obscure
3809 instance as first argument (so it doesn't rely on some obscure
3803 hidden global).
3810 hidden global).
3804
3811
3805 * IPython/UserConfig/ipythonrc.py: put () back in accepted
3812 * IPython/UserConfig/ipythonrc.py: put () back in accepted
3806 delimiters. While it prevents ().TAB from working, it allows
3813 delimiters. While it prevents ().TAB from working, it allows
3807 completions in open (... expressions. This is by far a more common
3814 completions in open (... expressions. This is by far a more common
3808 case.
3815 case.
3809
3816
3810 2002-04-23 Fernando Perez <fperez@colorado.edu>
3817 2002-04-23 Fernando Perez <fperez@colorado.edu>
3811
3818
3812 * IPython/Extensions/InterpreterPasteInput.py: new
3819 * IPython/Extensions/InterpreterPasteInput.py: new
3813 syntax-processing module for pasting lines with >>> or ... at the
3820 syntax-processing module for pasting lines with >>> or ... at the
3814 start.
3821 start.
3815
3822
3816 * IPython/Extensions/PhysicalQ_Interactive.py
3823 * IPython/Extensions/PhysicalQ_Interactive.py
3817 (PhysicalQuantityInteractive.__int__): fixed to work with either
3824 (PhysicalQuantityInteractive.__int__): fixed to work with either
3818 Numeric or math.
3825 Numeric or math.
3819
3826
3820 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
3827 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
3821 provided profiles. Now we have:
3828 provided profiles. Now we have:
3822 -math -> math module as * and cmath with its own namespace.
3829 -math -> math module as * and cmath with its own namespace.
3823 -numeric -> Numeric as *, plus gnuplot & grace
3830 -numeric -> Numeric as *, plus gnuplot & grace
3824 -physics -> same as before
3831 -physics -> same as before
3825
3832
3826 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
3833 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
3827 user-defined magics wouldn't be found by @magic if they were
3834 user-defined magics wouldn't be found by @magic if they were
3828 defined as class methods. Also cleaned up the namespace search
3835 defined as class methods. Also cleaned up the namespace search
3829 logic and the string building (to use %s instead of many repeated
3836 logic and the string building (to use %s instead of many repeated
3830 string adds).
3837 string adds).
3831
3838
3832 * IPython/UserConfig/example-magic.py (magic_foo): updated example
3839 * IPython/UserConfig/example-magic.py (magic_foo): updated example
3833 of user-defined magics to operate with class methods (cleaner, in
3840 of user-defined magics to operate with class methods (cleaner, in
3834 line with the gnuplot code).
3841 line with the gnuplot code).
3835
3842
3836 2002-04-22 Fernando Perez <fperez@colorado.edu>
3843 2002-04-22 Fernando Perez <fperez@colorado.edu>
3837
3844
3838 * setup.py: updated dependency list so that manual is updated when
3845 * setup.py: updated dependency list so that manual is updated when
3839 all included files change.
3846 all included files change.
3840
3847
3841 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
3848 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
3842 the delimiter removal option (the fix is ugly right now).
3849 the delimiter removal option (the fix is ugly right now).
3843
3850
3844 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
3851 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
3845 all of the math profile (quicker loading, no conflict between
3852 all of the math profile (quicker loading, no conflict between
3846 g-9.8 and g-gnuplot).
3853 g-9.8 and g-gnuplot).
3847
3854
3848 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
3855 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
3849 name of post-mortem files to IPython_crash_report.txt.
3856 name of post-mortem files to IPython_crash_report.txt.
3850
3857
3851 * Cleanup/update of the docs. Added all the new readline info and
3858 * Cleanup/update of the docs. Added all the new readline info and
3852 formatted all lists as 'real lists'.
3859 formatted all lists as 'real lists'.
3853
3860
3854 * IPython/ipmaker.py (make_IPython): removed now-obsolete
3861 * IPython/ipmaker.py (make_IPython): removed now-obsolete
3855 tab-completion options, since the full readline parse_and_bind is
3862 tab-completion options, since the full readline parse_and_bind is
3856 now accessible.
3863 now accessible.
3857
3864
3858 * IPython/iplib.py (InteractiveShell.init_readline): Changed
3865 * IPython/iplib.py (InteractiveShell.init_readline): Changed
3859 handling of readline options. Now users can specify any string to
3866 handling of readline options. Now users can specify any string to
3860 be passed to parse_and_bind(), as well as the delimiters to be
3867 be passed to parse_and_bind(), as well as the delimiters to be
3861 removed.
3868 removed.
3862 (InteractiveShell.__init__): Added __name__ to the global
3869 (InteractiveShell.__init__): Added __name__ to the global
3863 namespace so that things like Itpl which rely on its existence
3870 namespace so that things like Itpl which rely on its existence
3864 don't crash.
3871 don't crash.
3865 (InteractiveShell._prefilter): Defined the default with a _ so
3872 (InteractiveShell._prefilter): Defined the default with a _ so
3866 that prefilter() is easier to override, while the default one
3873 that prefilter() is easier to override, while the default one
3867 remains available.
3874 remains available.
3868
3875
3869 2002-04-18 Fernando Perez <fperez@colorado.edu>
3876 2002-04-18 Fernando Perez <fperez@colorado.edu>
3870
3877
3871 * Added information about pdb in the docs.
3878 * Added information about pdb in the docs.
3872
3879
3873 2002-04-17 Fernando Perez <fperez@colorado.edu>
3880 2002-04-17 Fernando Perez <fperez@colorado.edu>
3874
3881
3875 * IPython/ipmaker.py (make_IPython): added rc_override option to
3882 * IPython/ipmaker.py (make_IPython): added rc_override option to
3876 allow passing config options at creation time which may override
3883 allow passing config options at creation time which may override
3877 anything set in the config files or command line. This is
3884 anything set in the config files or command line. This is
3878 particularly useful for configuring embedded instances.
3885 particularly useful for configuring embedded instances.
3879
3886
3880 2002-04-15 Fernando Perez <fperez@colorado.edu>
3887 2002-04-15 Fernando Perez <fperez@colorado.edu>
3881
3888
3882 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
3889 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
3883 crash embedded instances because of the input cache falling out of
3890 crash embedded instances because of the input cache falling out of
3884 sync with the output counter.
3891 sync with the output counter.
3885
3892
3886 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
3893 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
3887 mode which calls pdb after an uncaught exception in IPython itself.
3894 mode which calls pdb after an uncaught exception in IPython itself.
3888
3895
3889 2002-04-14 Fernando Perez <fperez@colorado.edu>
3896 2002-04-14 Fernando Perez <fperez@colorado.edu>
3890
3897
3891 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
3898 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
3892 readline, fix it back after each call.
3899 readline, fix it back after each call.
3893
3900
3894 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
3901 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
3895 method to force all access via __call__(), which guarantees that
3902 method to force all access via __call__(), which guarantees that
3896 traceback references are properly deleted.
3903 traceback references are properly deleted.
3897
3904
3898 * IPython/Prompts.py (CachedOutput._display): minor fixes to
3905 * IPython/Prompts.py (CachedOutput._display): minor fixes to
3899 improve printing when pprint is in use.
3906 improve printing when pprint is in use.
3900
3907
3901 2002-04-13 Fernando Perez <fperez@colorado.edu>
3908 2002-04-13 Fernando Perez <fperez@colorado.edu>
3902
3909
3903 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
3910 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
3904 exceptions aren't caught anymore. If the user triggers one, he
3911 exceptions aren't caught anymore. If the user triggers one, he
3905 should know why he's doing it and it should go all the way up,
3912 should know why he's doing it and it should go all the way up,
3906 just like any other exception. So now @abort will fully kill the
3913 just like any other exception. So now @abort will fully kill the
3907 embedded interpreter and the embedding code (unless that happens
3914 embedded interpreter and the embedding code (unless that happens
3908 to catch SystemExit).
3915 to catch SystemExit).
3909
3916
3910 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
3917 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
3911 and a debugger() method to invoke the interactive pdb debugger
3918 and a debugger() method to invoke the interactive pdb debugger
3912 after printing exception information. Also added the corresponding
3919 after printing exception information. Also added the corresponding
3913 -pdb option and @pdb magic to control this feature, and updated
3920 -pdb option and @pdb magic to control this feature, and updated
3914 the docs. After a suggestion from Christopher Hart
3921 the docs. After a suggestion from Christopher Hart
3915 (hart-AT-caltech.edu).
3922 (hart-AT-caltech.edu).
3916
3923
3917 2002-04-12 Fernando Perez <fperez@colorado.edu>
3924 2002-04-12 Fernando Perez <fperez@colorado.edu>
3918
3925
3919 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
3926 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
3920 the exception handlers defined by the user (not the CrashHandler)
3927 the exception handlers defined by the user (not the CrashHandler)
3921 so that user exceptions don't trigger an ipython bug report.
3928 so that user exceptions don't trigger an ipython bug report.
3922
3929
3923 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
3930 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
3924 configurable (it should have always been so).
3931 configurable (it should have always been so).
3925
3932
3926 2002-03-26 Fernando Perez <fperez@colorado.edu>
3933 2002-03-26 Fernando Perez <fperez@colorado.edu>
3927
3934
3928 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
3935 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
3929 and there to fix embedding namespace issues. This should all be
3936 and there to fix embedding namespace issues. This should all be
3930 done in a more elegant way.
3937 done in a more elegant way.
3931
3938
3932 2002-03-25 Fernando Perez <fperez@colorado.edu>
3939 2002-03-25 Fernando Perez <fperez@colorado.edu>
3933
3940
3934 * IPython/genutils.py (get_home_dir): Try to make it work under
3941 * IPython/genutils.py (get_home_dir): Try to make it work under
3935 win9x also.
3942 win9x also.
3936
3943
3937 2002-03-20 Fernando Perez <fperez@colorado.edu>
3944 2002-03-20 Fernando Perez <fperez@colorado.edu>
3938
3945
3939 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
3946 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
3940 sys.displayhook untouched upon __init__.
3947 sys.displayhook untouched upon __init__.
3941
3948
3942 2002-03-19 Fernando Perez <fperez@colorado.edu>
3949 2002-03-19 Fernando Perez <fperez@colorado.edu>
3943
3950
3944 * Released 0.2.9 (for embedding bug, basically).
3951 * Released 0.2.9 (for embedding bug, basically).
3945
3952
3946 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
3953 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
3947 exceptions so that enclosing shell's state can be restored.
3954 exceptions so that enclosing shell's state can be restored.
3948
3955
3949 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
3956 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
3950 naming conventions in the .ipython/ dir.
3957 naming conventions in the .ipython/ dir.
3951
3958
3952 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
3959 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
3953 from delimiters list so filenames with - in them get expanded.
3960 from delimiters list so filenames with - in them get expanded.
3954
3961
3955 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
3962 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
3956 sys.displayhook not being properly restored after an embedded call.
3963 sys.displayhook not being properly restored after an embedded call.
3957
3964
3958 2002-03-18 Fernando Perez <fperez@colorado.edu>
3965 2002-03-18 Fernando Perez <fperez@colorado.edu>
3959
3966
3960 * Released 0.2.8
3967 * Released 0.2.8
3961
3968
3962 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
3969 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
3963 some files weren't being included in a -upgrade.
3970 some files weren't being included in a -upgrade.
3964 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
3971 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
3965 on' so that the first tab completes.
3972 on' so that the first tab completes.
3966 (InteractiveShell.handle_magic): fixed bug with spaces around
3973 (InteractiveShell.handle_magic): fixed bug with spaces around
3967 quotes breaking many magic commands.
3974 quotes breaking many magic commands.
3968
3975
3969 * setup.py: added note about ignoring the syntax error messages at
3976 * setup.py: added note about ignoring the syntax error messages at
3970 installation.
3977 installation.
3971
3978
3972 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
3979 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
3973 streamlining the gnuplot interface, now there's only one magic @gp.
3980 streamlining the gnuplot interface, now there's only one magic @gp.
3974
3981
3975 2002-03-17 Fernando Perez <fperez@colorado.edu>
3982 2002-03-17 Fernando Perez <fperez@colorado.edu>
3976
3983
3977 * IPython/UserConfig/magic_gnuplot.py: new name for the
3984 * IPython/UserConfig/magic_gnuplot.py: new name for the
3978 example-magic_pm.py file. Much enhanced system, now with a shell
3985 example-magic_pm.py file. Much enhanced system, now with a shell
3979 for communicating directly with gnuplot, one command at a time.
3986 for communicating directly with gnuplot, one command at a time.
3980
3987
3981 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
3988 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
3982 setting __name__=='__main__'.
3989 setting __name__=='__main__'.
3983
3990
3984 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
3991 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
3985 mini-shell for accessing gnuplot from inside ipython. Should
3992 mini-shell for accessing gnuplot from inside ipython. Should
3986 extend it later for grace access too. Inspired by Arnd's
3993 extend it later for grace access too. Inspired by Arnd's
3987 suggestion.
3994 suggestion.
3988
3995
3989 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
3996 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
3990 calling magic functions with () in their arguments. Thanks to Arnd
3997 calling magic functions with () in their arguments. Thanks to Arnd
3991 Baecker for pointing this to me.
3998 Baecker for pointing this to me.
3992
3999
3993 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4000 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
3994 infinitely for integer or complex arrays (only worked with floats).
4001 infinitely for integer or complex arrays (only worked with floats).
3995
4002
3996 2002-03-16 Fernando Perez <fperez@colorado.edu>
4003 2002-03-16 Fernando Perez <fperez@colorado.edu>
3997
4004
3998 * setup.py: Merged setup and setup_windows into a single script
4005 * setup.py: Merged setup and setup_windows into a single script
3999 which properly handles things for windows users.
4006 which properly handles things for windows users.
4000
4007
4001 2002-03-15 Fernando Perez <fperez@colorado.edu>
4008 2002-03-15 Fernando Perez <fperez@colorado.edu>
4002
4009
4003 * Big change to the manual: now the magics are all automatically
4010 * Big change to the manual: now the magics are all automatically
4004 documented. This information is generated from their docstrings
4011 documented. This information is generated from their docstrings
4005 and put in a latex file included by the manual lyx file. This way
4012 and put in a latex file included by the manual lyx file. This way
4006 we get always up to date information for the magics. The manual
4013 we get always up to date information for the magics. The manual
4007 now also has proper version information, also auto-synced.
4014 now also has proper version information, also auto-synced.
4008
4015
4009 For this to work, an undocumented --magic_docstrings option was added.
4016 For this to work, an undocumented --magic_docstrings option was added.
4010
4017
4011 2002-03-13 Fernando Perez <fperez@colorado.edu>
4018 2002-03-13 Fernando Perez <fperez@colorado.edu>
4012
4019
4013 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4020 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4014 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4021 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4015
4022
4016 2002-03-12 Fernando Perez <fperez@colorado.edu>
4023 2002-03-12 Fernando Perez <fperez@colorado.edu>
4017
4024
4018 * IPython/ultraTB.py (TermColors): changed color escapes again to
4025 * IPython/ultraTB.py (TermColors): changed color escapes again to
4019 fix the (old, reintroduced) line-wrapping bug. Basically, if
4026 fix the (old, reintroduced) line-wrapping bug. Basically, if
4020 \001..\002 aren't given in the color escapes, lines get wrapped
4027 \001..\002 aren't given in the color escapes, lines get wrapped
4021 weirdly. But giving those screws up old xterms and emacs terms. So
4028 weirdly. But giving those screws up old xterms and emacs terms. So
4022 I added some logic for emacs terms to be ok, but I can't identify old
4029 I added some logic for emacs terms to be ok, but I can't identify old
4023 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4030 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4024
4031
4025 2002-03-10 Fernando Perez <fperez@colorado.edu>
4032 2002-03-10 Fernando Perez <fperez@colorado.edu>
4026
4033
4027 * IPython/usage.py (__doc__): Various documentation cleanups and
4034 * IPython/usage.py (__doc__): Various documentation cleanups and
4028 updates, both in usage docstrings and in the manual.
4035 updates, both in usage docstrings and in the manual.
4029
4036
4030 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4037 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4031 handling of caching. Set minimum acceptabe value for having a
4038 handling of caching. Set minimum acceptabe value for having a
4032 cache at 20 values.
4039 cache at 20 values.
4033
4040
4034 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4041 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4035 install_first_time function to a method, renamed it and added an
4042 install_first_time function to a method, renamed it and added an
4036 'upgrade' mode. Now people can update their config directory with
4043 'upgrade' mode. Now people can update their config directory with
4037 a simple command line switch (-upgrade, also new).
4044 a simple command line switch (-upgrade, also new).
4038
4045
4039 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4046 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4040 @file (convenient for automagic users under Python >= 2.2).
4047 @file (convenient for automagic users under Python >= 2.2).
4041 Removed @files (it seemed more like a plural than an abbrev. of
4048 Removed @files (it seemed more like a plural than an abbrev. of
4042 'file show').
4049 'file show').
4043
4050
4044 * IPython/iplib.py (install_first_time): Fixed crash if there were
4051 * IPython/iplib.py (install_first_time): Fixed crash if there were
4045 backup files ('~') in .ipython/ install directory.
4052 backup files ('~') in .ipython/ install directory.
4046
4053
4047 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4054 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4048 system. Things look fine, but these changes are fairly
4055 system. Things look fine, but these changes are fairly
4049 intrusive. Test them for a few days.
4056 intrusive. Test them for a few days.
4050
4057
4051 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4058 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4052 the prompts system. Now all in/out prompt strings are user
4059 the prompts system. Now all in/out prompt strings are user
4053 controllable. This is particularly useful for embedding, as one
4060 controllable. This is particularly useful for embedding, as one
4054 can tag embedded instances with particular prompts.
4061 can tag embedded instances with particular prompts.
4055
4062
4056 Also removed global use of sys.ps1/2, which now allows nested
4063 Also removed global use of sys.ps1/2, which now allows nested
4057 embeddings without any problems. Added command-line options for
4064 embeddings without any problems. Added command-line options for
4058 the prompt strings.
4065 the prompt strings.
4059
4066
4060 2002-03-08 Fernando Perez <fperez@colorado.edu>
4067 2002-03-08 Fernando Perez <fperez@colorado.edu>
4061
4068
4062 * IPython/UserConfig/example-embed-short.py (ipshell): added
4069 * IPython/UserConfig/example-embed-short.py (ipshell): added
4063 example file with the bare minimum code for embedding.
4070 example file with the bare minimum code for embedding.
4064
4071
4065 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4072 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4066 functionality for the embeddable shell to be activated/deactivated
4073 functionality for the embeddable shell to be activated/deactivated
4067 either globally or at each call.
4074 either globally or at each call.
4068
4075
4069 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4076 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4070 rewriting the prompt with '--->' for auto-inputs with proper
4077 rewriting the prompt with '--->' for auto-inputs with proper
4071 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4078 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4072 this is handled by the prompts class itself, as it should.
4079 this is handled by the prompts class itself, as it should.
4073
4080
4074 2002-03-05 Fernando Perez <fperez@colorado.edu>
4081 2002-03-05 Fernando Perez <fperez@colorado.edu>
4075
4082
4076 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4083 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4077 @logstart to avoid name clashes with the math log function.
4084 @logstart to avoid name clashes with the math log function.
4078
4085
4079 * Big updates to X/Emacs section of the manual.
4086 * Big updates to X/Emacs section of the manual.
4080
4087
4081 * Removed ipython_emacs. Milan explained to me how to pass
4088 * Removed ipython_emacs. Milan explained to me how to pass
4082 arguments to ipython through Emacs. Some day I'm going to end up
4089 arguments to ipython through Emacs. Some day I'm going to end up
4083 learning some lisp...
4090 learning some lisp...
4084
4091
4085 2002-03-04 Fernando Perez <fperez@colorado.edu>
4092 2002-03-04 Fernando Perez <fperez@colorado.edu>
4086
4093
4087 * IPython/ipython_emacs: Created script to be used as the
4094 * IPython/ipython_emacs: Created script to be used as the
4088 py-python-command Emacs variable so we can pass IPython
4095 py-python-command Emacs variable so we can pass IPython
4089 parameters. I can't figure out how to tell Emacs directly to pass
4096 parameters. I can't figure out how to tell Emacs directly to pass
4090 parameters to IPython, so a dummy shell script will do it.
4097 parameters to IPython, so a dummy shell script will do it.
4091
4098
4092 Other enhancements made for things to work better under Emacs'
4099 Other enhancements made for things to work better under Emacs'
4093 various types of terminals. Many thanks to Milan Zamazal
4100 various types of terminals. Many thanks to Milan Zamazal
4094 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4101 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4095
4102
4096 2002-03-01 Fernando Perez <fperez@colorado.edu>
4103 2002-03-01 Fernando Perez <fperez@colorado.edu>
4097
4104
4098 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4105 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4099 that loading of readline is now optional. This gives better
4106 that loading of readline is now optional. This gives better
4100 control to emacs users.
4107 control to emacs users.
4101
4108
4102 * IPython/ultraTB.py (__date__): Modified color escape sequences
4109 * IPython/ultraTB.py (__date__): Modified color escape sequences
4103 and now things work fine under xterm and in Emacs' term buffers
4110 and now things work fine under xterm and in Emacs' term buffers
4104 (though not shell ones). Well, in emacs you get colors, but all
4111 (though not shell ones). Well, in emacs you get colors, but all
4105 seem to be 'light' colors (no difference between dark and light
4112 seem to be 'light' colors (no difference between dark and light
4106 ones). But the garbage chars are gone, and also in xterms. It
4113 ones). But the garbage chars are gone, and also in xterms. It
4107 seems that now I'm using 'cleaner' ansi sequences.
4114 seems that now I'm using 'cleaner' ansi sequences.
4108
4115
4109 2002-02-21 Fernando Perez <fperez@colorado.edu>
4116 2002-02-21 Fernando Perez <fperez@colorado.edu>
4110
4117
4111 * Released 0.2.7 (mainly to publish the scoping fix).
4118 * Released 0.2.7 (mainly to publish the scoping fix).
4112
4119
4113 * IPython/Logger.py (Logger.logstate): added. A corresponding
4120 * IPython/Logger.py (Logger.logstate): added. A corresponding
4114 @logstate magic was created.
4121 @logstate magic was created.
4115
4122
4116 * IPython/Magic.py: fixed nested scoping problem under Python
4123 * IPython/Magic.py: fixed nested scoping problem under Python
4117 2.1.x (automagic wasn't working).
4124 2.1.x (automagic wasn't working).
4118
4125
4119 2002-02-20 Fernando Perez <fperez@colorado.edu>
4126 2002-02-20 Fernando Perez <fperez@colorado.edu>
4120
4127
4121 * Released 0.2.6.
4128 * Released 0.2.6.
4122
4129
4123 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4130 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4124 option so that logs can come out without any headers at all.
4131 option so that logs can come out without any headers at all.
4125
4132
4126 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4133 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4127 SciPy.
4134 SciPy.
4128
4135
4129 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4136 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4130 that embedded IPython calls don't require vars() to be explicitly
4137 that embedded IPython calls don't require vars() to be explicitly
4131 passed. Now they are extracted from the caller's frame (code
4138 passed. Now they are extracted from the caller's frame (code
4132 snatched from Eric Jones' weave). Added better documentation to
4139 snatched from Eric Jones' weave). Added better documentation to
4133 the section on embedding and the example file.
4140 the section on embedding and the example file.
4134
4141
4135 * IPython/genutils.py (page): Changed so that under emacs, it just
4142 * IPython/genutils.py (page): Changed so that under emacs, it just
4136 prints the string. You can then page up and down in the emacs
4143 prints the string. You can then page up and down in the emacs
4137 buffer itself. This is how the builtin help() works.
4144 buffer itself. This is how the builtin help() works.
4138
4145
4139 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4146 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4140 macro scoping: macros need to be executed in the user's namespace
4147 macro scoping: macros need to be executed in the user's namespace
4141 to work as if they had been typed by the user.
4148 to work as if they had been typed by the user.
4142
4149
4143 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4150 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4144 execute automatically (no need to type 'exec...'). They then
4151 execute automatically (no need to type 'exec...'). They then
4145 behave like 'true macros'. The printing system was also modified
4152 behave like 'true macros'. The printing system was also modified
4146 for this to work.
4153 for this to work.
4147
4154
4148 2002-02-19 Fernando Perez <fperez@colorado.edu>
4155 2002-02-19 Fernando Perez <fperez@colorado.edu>
4149
4156
4150 * IPython/genutils.py (page_file): new function for paging files
4157 * IPython/genutils.py (page_file): new function for paging files
4151 in an OS-independent way. Also necessary for file viewing to work
4158 in an OS-independent way. Also necessary for file viewing to work
4152 well inside Emacs buffers.
4159 well inside Emacs buffers.
4153 (page): Added checks for being in an emacs buffer.
4160 (page): Added checks for being in an emacs buffer.
4154 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4161 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4155 same bug in iplib.
4162 same bug in iplib.
4156
4163
4157 2002-02-18 Fernando Perez <fperez@colorado.edu>
4164 2002-02-18 Fernando Perez <fperez@colorado.edu>
4158
4165
4159 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4166 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4160 of readline so that IPython can work inside an Emacs buffer.
4167 of readline so that IPython can work inside an Emacs buffer.
4161
4168
4162 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4169 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4163 method signatures (they weren't really bugs, but it looks cleaner
4170 method signatures (they weren't really bugs, but it looks cleaner
4164 and keeps PyChecker happy).
4171 and keeps PyChecker happy).
4165
4172
4166 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4173 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4167 for implementing various user-defined hooks. Currently only
4174 for implementing various user-defined hooks. Currently only
4168 display is done.
4175 display is done.
4169
4176
4170 * IPython/Prompts.py (CachedOutput._display): changed display
4177 * IPython/Prompts.py (CachedOutput._display): changed display
4171 functions so that they can be dynamically changed by users easily.
4178 functions so that they can be dynamically changed by users easily.
4172
4179
4173 * IPython/Extensions/numeric_formats.py (num_display): added an
4180 * IPython/Extensions/numeric_formats.py (num_display): added an
4174 extension for printing NumPy arrays in flexible manners. It
4181 extension for printing NumPy arrays in flexible manners. It
4175 doesn't do anything yet, but all the structure is in
4182 doesn't do anything yet, but all the structure is in
4176 place. Ultimately the plan is to implement output format control
4183 place. Ultimately the plan is to implement output format control
4177 like in Octave.
4184 like in Octave.
4178
4185
4179 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4186 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4180 methods are found at run-time by all the automatic machinery.
4187 methods are found at run-time by all the automatic machinery.
4181
4188
4182 2002-02-17 Fernando Perez <fperez@colorado.edu>
4189 2002-02-17 Fernando Perez <fperez@colorado.edu>
4183
4190
4184 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4191 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4185 whole file a little.
4192 whole file a little.
4186
4193
4187 * ToDo: closed this document. Now there's a new_design.lyx
4194 * ToDo: closed this document. Now there's a new_design.lyx
4188 document for all new ideas. Added making a pdf of it for the
4195 document for all new ideas. Added making a pdf of it for the
4189 end-user distro.
4196 end-user distro.
4190
4197
4191 * IPython/Logger.py (Logger.switch_log): Created this to replace
4198 * IPython/Logger.py (Logger.switch_log): Created this to replace
4192 logon() and logoff(). It also fixes a nasty crash reported by
4199 logon() and logoff(). It also fixes a nasty crash reported by
4193 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4200 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4194
4201
4195 * IPython/iplib.py (complete): got auto-completion to work with
4202 * IPython/iplib.py (complete): got auto-completion to work with
4196 automagic (I had wanted this for a long time).
4203 automagic (I had wanted this for a long time).
4197
4204
4198 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4205 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4199 to @file, since file() is now a builtin and clashes with automagic
4206 to @file, since file() is now a builtin and clashes with automagic
4200 for @file.
4207 for @file.
4201
4208
4202 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4209 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4203 of this was previously in iplib, which had grown to more than 2000
4210 of this was previously in iplib, which had grown to more than 2000
4204 lines, way too long. No new functionality, but it makes managing
4211 lines, way too long. No new functionality, but it makes managing
4205 the code a bit easier.
4212 the code a bit easier.
4206
4213
4207 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4214 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4208 information to crash reports.
4215 information to crash reports.
4209
4216
4210 2002-02-12 Fernando Perez <fperez@colorado.edu>
4217 2002-02-12 Fernando Perez <fperez@colorado.edu>
4211
4218
4212 * Released 0.2.5.
4219 * Released 0.2.5.
4213
4220
4214 2002-02-11 Fernando Perez <fperez@colorado.edu>
4221 2002-02-11 Fernando Perez <fperez@colorado.edu>
4215
4222
4216 * Wrote a relatively complete Windows installer. It puts
4223 * Wrote a relatively complete Windows installer. It puts
4217 everything in place, creates Start Menu entries and fixes the
4224 everything in place, creates Start Menu entries and fixes the
4218 color issues. Nothing fancy, but it works.
4225 color issues. Nothing fancy, but it works.
4219
4226
4220 2002-02-10 Fernando Perez <fperez@colorado.edu>
4227 2002-02-10 Fernando Perez <fperez@colorado.edu>
4221
4228
4222 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4229 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4223 os.path.expanduser() call so that we can type @run ~/myfile.py and
4230 os.path.expanduser() call so that we can type @run ~/myfile.py and
4224 have thigs work as expected.
4231 have thigs work as expected.
4225
4232
4226 * IPython/genutils.py (page): fixed exception handling so things
4233 * IPython/genutils.py (page): fixed exception handling so things
4227 work both in Unix and Windows correctly. Quitting a pager triggers
4234 work both in Unix and Windows correctly. Quitting a pager triggers
4228 an IOError/broken pipe in Unix, and in windows not finding a pager
4235 an IOError/broken pipe in Unix, and in windows not finding a pager
4229 is also an IOError, so I had to actually look at the return value
4236 is also an IOError, so I had to actually look at the return value
4230 of the exception, not just the exception itself. Should be ok now.
4237 of the exception, not just the exception itself. Should be ok now.
4231
4238
4232 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4239 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4233 modified to allow case-insensitive color scheme changes.
4240 modified to allow case-insensitive color scheme changes.
4234
4241
4235 2002-02-09 Fernando Perez <fperez@colorado.edu>
4242 2002-02-09 Fernando Perez <fperez@colorado.edu>
4236
4243
4237 * IPython/genutils.py (native_line_ends): new function to leave
4244 * IPython/genutils.py (native_line_ends): new function to leave
4238 user config files with os-native line-endings.
4245 user config files with os-native line-endings.
4239
4246
4240 * README and manual updates.
4247 * README and manual updates.
4241
4248
4242 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4249 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4243 instead of StringType to catch Unicode strings.
4250 instead of StringType to catch Unicode strings.
4244
4251
4245 * IPython/genutils.py (filefind): fixed bug for paths with
4252 * IPython/genutils.py (filefind): fixed bug for paths with
4246 embedded spaces (very common in Windows).
4253 embedded spaces (very common in Windows).
4247
4254
4248 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4255 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4249 files under Windows, so that they get automatically associated
4256 files under Windows, so that they get automatically associated
4250 with a text editor. Windows makes it a pain to handle
4257 with a text editor. Windows makes it a pain to handle
4251 extension-less files.
4258 extension-less files.
4252
4259
4253 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4260 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4254 warning about readline only occur for Posix. In Windows there's no
4261 warning about readline only occur for Posix. In Windows there's no
4255 way to get readline, so why bother with the warning.
4262 way to get readline, so why bother with the warning.
4256
4263
4257 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4264 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4258 for __str__ instead of dir(self), since dir() changed in 2.2.
4265 for __str__ instead of dir(self), since dir() changed in 2.2.
4259
4266
4260 * Ported to Windows! Tested on XP, I suspect it should work fine
4267 * Ported to Windows! Tested on XP, I suspect it should work fine
4261 on NT/2000, but I don't think it will work on 98 et al. That
4268 on NT/2000, but I don't think it will work on 98 et al. That
4262 series of Windows is such a piece of junk anyway that I won't try
4269 series of Windows is such a piece of junk anyway that I won't try
4263 porting it there. The XP port was straightforward, showed a few
4270 porting it there. The XP port was straightforward, showed a few
4264 bugs here and there (fixed all), in particular some string
4271 bugs here and there (fixed all), in particular some string
4265 handling stuff which required considering Unicode strings (which
4272 handling stuff which required considering Unicode strings (which
4266 Windows uses). This is good, but hasn't been too tested :) No
4273 Windows uses). This is good, but hasn't been too tested :) No
4267 fancy installer yet, I'll put a note in the manual so people at
4274 fancy installer yet, I'll put a note in the manual so people at
4268 least make manually a shortcut.
4275 least make manually a shortcut.
4269
4276
4270 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4277 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4271 into a single one, "colors". This now controls both prompt and
4278 into a single one, "colors". This now controls both prompt and
4272 exception color schemes, and can be changed both at startup
4279 exception color schemes, and can be changed both at startup
4273 (either via command-line switches or via ipythonrc files) and at
4280 (either via command-line switches or via ipythonrc files) and at
4274 runtime, with @colors.
4281 runtime, with @colors.
4275 (Magic.magic_run): renamed @prun to @run and removed the old
4282 (Magic.magic_run): renamed @prun to @run and removed the old
4276 @run. The two were too similar to warrant keeping both.
4283 @run. The two were too similar to warrant keeping both.
4277
4284
4278 2002-02-03 Fernando Perez <fperez@colorado.edu>
4285 2002-02-03 Fernando Perez <fperez@colorado.edu>
4279
4286
4280 * IPython/iplib.py (install_first_time): Added comment on how to
4287 * IPython/iplib.py (install_first_time): Added comment on how to
4281 configure the color options for first-time users. Put a <return>
4288 configure the color options for first-time users. Put a <return>
4282 request at the end so that small-terminal users get a chance to
4289 request at the end so that small-terminal users get a chance to
4283 read the startup info.
4290 read the startup info.
4284
4291
4285 2002-01-23 Fernando Perez <fperez@colorado.edu>
4292 2002-01-23 Fernando Perez <fperez@colorado.edu>
4286
4293
4287 * IPython/iplib.py (CachedOutput.update): Changed output memory
4294 * IPython/iplib.py (CachedOutput.update): Changed output memory
4288 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4295 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4289 input history we still use _i. Did this b/c these variable are
4296 input history we still use _i. Did this b/c these variable are
4290 very commonly used in interactive work, so the less we need to
4297 very commonly used in interactive work, so the less we need to
4291 type the better off we are.
4298 type the better off we are.
4292 (Magic.magic_prun): updated @prun to better handle the namespaces
4299 (Magic.magic_prun): updated @prun to better handle the namespaces
4293 the file will run in, including a fix for __name__ not being set
4300 the file will run in, including a fix for __name__ not being set
4294 before.
4301 before.
4295
4302
4296 2002-01-20 Fernando Perez <fperez@colorado.edu>
4303 2002-01-20 Fernando Perez <fperez@colorado.edu>
4297
4304
4298 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4305 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4299 extra garbage for Python 2.2. Need to look more carefully into
4306 extra garbage for Python 2.2. Need to look more carefully into
4300 this later.
4307 this later.
4301
4308
4302 2002-01-19 Fernando Perez <fperez@colorado.edu>
4309 2002-01-19 Fernando Perez <fperez@colorado.edu>
4303
4310
4304 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4311 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4305 display SyntaxError exceptions properly formatted when they occur
4312 display SyntaxError exceptions properly formatted when they occur
4306 (they can be triggered by imported code).
4313 (they can be triggered by imported code).
4307
4314
4308 2002-01-18 Fernando Perez <fperez@colorado.edu>
4315 2002-01-18 Fernando Perez <fperez@colorado.edu>
4309
4316
4310 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4317 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4311 SyntaxError exceptions are reported nicely formatted, instead of
4318 SyntaxError exceptions are reported nicely formatted, instead of
4312 spitting out only offset information as before.
4319 spitting out only offset information as before.
4313 (Magic.magic_prun): Added the @prun function for executing
4320 (Magic.magic_prun): Added the @prun function for executing
4314 programs with command line args inside IPython.
4321 programs with command line args inside IPython.
4315
4322
4316 2002-01-16 Fernando Perez <fperez@colorado.edu>
4323 2002-01-16 Fernando Perez <fperez@colorado.edu>
4317
4324
4318 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4325 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4319 to *not* include the last item given in a range. This brings their
4326 to *not* include the last item given in a range. This brings their
4320 behavior in line with Python's slicing:
4327 behavior in line with Python's slicing:
4321 a[n1:n2] -> a[n1]...a[n2-1]
4328 a[n1:n2] -> a[n1]...a[n2-1]
4322 It may be a bit less convenient, but I prefer to stick to Python's
4329 It may be a bit less convenient, but I prefer to stick to Python's
4323 conventions *everywhere*, so users never have to wonder.
4330 conventions *everywhere*, so users never have to wonder.
4324 (Magic.magic_macro): Added @macro function to ease the creation of
4331 (Magic.magic_macro): Added @macro function to ease the creation of
4325 macros.
4332 macros.
4326
4333
4327 2002-01-05 Fernando Perez <fperez@colorado.edu>
4334 2002-01-05 Fernando Perez <fperez@colorado.edu>
4328
4335
4329 * Released 0.2.4.
4336 * Released 0.2.4.
4330
4337
4331 * IPython/iplib.py (Magic.magic_pdef):
4338 * IPython/iplib.py (Magic.magic_pdef):
4332 (InteractiveShell.safe_execfile): report magic lines and error
4339 (InteractiveShell.safe_execfile): report magic lines and error
4333 lines without line numbers so one can easily copy/paste them for
4340 lines without line numbers so one can easily copy/paste them for
4334 re-execution.
4341 re-execution.
4335
4342
4336 * Updated manual with recent changes.
4343 * Updated manual with recent changes.
4337
4344
4338 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4345 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4339 docstring printing when class? is called. Very handy for knowing
4346 docstring printing when class? is called. Very handy for knowing
4340 how to create class instances (as long as __init__ is well
4347 how to create class instances (as long as __init__ is well
4341 documented, of course :)
4348 documented, of course :)
4342 (Magic.magic_doc): print both class and constructor docstrings.
4349 (Magic.magic_doc): print both class and constructor docstrings.
4343 (Magic.magic_pdef): give constructor info if passed a class and
4350 (Magic.magic_pdef): give constructor info if passed a class and
4344 __call__ info for callable object instances.
4351 __call__ info for callable object instances.
4345
4352
4346 2002-01-04 Fernando Perez <fperez@colorado.edu>
4353 2002-01-04 Fernando Perez <fperez@colorado.edu>
4347
4354
4348 * Made deep_reload() off by default. It doesn't always work
4355 * Made deep_reload() off by default. It doesn't always work
4349 exactly as intended, so it's probably safer to have it off. It's
4356 exactly as intended, so it's probably safer to have it off. It's
4350 still available as dreload() anyway, so nothing is lost.
4357 still available as dreload() anyway, so nothing is lost.
4351
4358
4352 2002-01-02 Fernando Perez <fperez@colorado.edu>
4359 2002-01-02 Fernando Perez <fperez@colorado.edu>
4353
4360
4354 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4361 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4355 so I wanted an updated release).
4362 so I wanted an updated release).
4356
4363
4357 2001-12-27 Fernando Perez <fperez@colorado.edu>
4364 2001-12-27 Fernando Perez <fperez@colorado.edu>
4358
4365
4359 * IPython/iplib.py (InteractiveShell.interact): Added the original
4366 * IPython/iplib.py (InteractiveShell.interact): Added the original
4360 code from 'code.py' for this module in order to change the
4367 code from 'code.py' for this module in order to change the
4361 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4368 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4362 the history cache would break when the user hit Ctrl-C, and
4369 the history cache would break when the user hit Ctrl-C, and
4363 interact() offers no way to add any hooks to it.
4370 interact() offers no way to add any hooks to it.
4364
4371
4365 2001-12-23 Fernando Perez <fperez@colorado.edu>
4372 2001-12-23 Fernando Perez <fperez@colorado.edu>
4366
4373
4367 * setup.py: added check for 'MANIFEST' before trying to remove
4374 * setup.py: added check for 'MANIFEST' before trying to remove
4368 it. Thanks to Sean Reifschneider.
4375 it. Thanks to Sean Reifschneider.
4369
4376
4370 2001-12-22 Fernando Perez <fperez@colorado.edu>
4377 2001-12-22 Fernando Perez <fperez@colorado.edu>
4371
4378
4372 * Released 0.2.2.
4379 * Released 0.2.2.
4373
4380
4374 * Finished (reasonably) writing the manual. Later will add the
4381 * Finished (reasonably) writing the manual. Later will add the
4375 python-standard navigation stylesheets, but for the time being
4382 python-standard navigation stylesheets, but for the time being
4376 it's fairly complete. Distribution will include html and pdf
4383 it's fairly complete. Distribution will include html and pdf
4377 versions.
4384 versions.
4378
4385
4379 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4386 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4380 (MayaVi author).
4387 (MayaVi author).
4381
4388
4382 2001-12-21 Fernando Perez <fperez@colorado.edu>
4389 2001-12-21 Fernando Perez <fperez@colorado.edu>
4383
4390
4384 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4391 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4385 good public release, I think (with the manual and the distutils
4392 good public release, I think (with the manual and the distutils
4386 installer). The manual can use some work, but that can go
4393 installer). The manual can use some work, but that can go
4387 slowly. Otherwise I think it's quite nice for end users. Next
4394 slowly. Otherwise I think it's quite nice for end users. Next
4388 summer, rewrite the guts of it...
4395 summer, rewrite the guts of it...
4389
4396
4390 * Changed format of ipythonrc files to use whitespace as the
4397 * Changed format of ipythonrc files to use whitespace as the
4391 separator instead of an explicit '='. Cleaner.
4398 separator instead of an explicit '='. Cleaner.
4392
4399
4393 2001-12-20 Fernando Perez <fperez@colorado.edu>
4400 2001-12-20 Fernando Perez <fperez@colorado.edu>
4394
4401
4395 * Started a manual in LyX. For now it's just a quick merge of the
4402 * Started a manual in LyX. For now it's just a quick merge of the
4396 various internal docstrings and READMEs. Later it may grow into a
4403 various internal docstrings and READMEs. Later it may grow into a
4397 nice, full-blown manual.
4404 nice, full-blown manual.
4398
4405
4399 * Set up a distutils based installer. Installation should now be
4406 * Set up a distutils based installer. Installation should now be
4400 trivially simple for end-users.
4407 trivially simple for end-users.
4401
4408
4402 2001-12-11 Fernando Perez <fperez@colorado.edu>
4409 2001-12-11 Fernando Perez <fperez@colorado.edu>
4403
4410
4404 * Released 0.2.0. First public release, announced it at
4411 * Released 0.2.0. First public release, announced it at
4405 comp.lang.python. From now on, just bugfixes...
4412 comp.lang.python. From now on, just bugfixes...
4406
4413
4407 * Went through all the files, set copyright/license notices and
4414 * Went through all the files, set copyright/license notices and
4408 cleaned up things. Ready for release.
4415 cleaned up things. Ready for release.
4409
4416
4410 2001-12-10 Fernando Perez <fperez@colorado.edu>
4417 2001-12-10 Fernando Perez <fperez@colorado.edu>
4411
4418
4412 * Changed the first-time installer not to use tarfiles. It's more
4419 * Changed the first-time installer not to use tarfiles. It's more
4413 robust now and less unix-dependent. Also makes it easier for
4420 robust now and less unix-dependent. Also makes it easier for
4414 people to later upgrade versions.
4421 people to later upgrade versions.
4415
4422
4416 * Changed @exit to @abort to reflect the fact that it's pretty
4423 * Changed @exit to @abort to reflect the fact that it's pretty
4417 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4424 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4418 becomes significant only when IPyhton is embedded: in that case,
4425 becomes significant only when IPyhton is embedded: in that case,
4419 C-D closes IPython only, but @abort kills the enclosing program
4426 C-D closes IPython only, but @abort kills the enclosing program
4420 too (unless it had called IPython inside a try catching
4427 too (unless it had called IPython inside a try catching
4421 SystemExit).
4428 SystemExit).
4422
4429
4423 * Created Shell module which exposes the actuall IPython Shell
4430 * Created Shell module which exposes the actuall IPython Shell
4424 classes, currently the normal and the embeddable one. This at
4431 classes, currently the normal and the embeddable one. This at
4425 least offers a stable interface we won't need to change when
4432 least offers a stable interface we won't need to change when
4426 (later) the internals are rewritten. That rewrite will be confined
4433 (later) the internals are rewritten. That rewrite will be confined
4427 to iplib and ipmaker, but the Shell interface should remain as is.
4434 to iplib and ipmaker, but the Shell interface should remain as is.
4428
4435
4429 * Added embed module which offers an embeddable IPShell object,
4436 * Added embed module which offers an embeddable IPShell object,
4430 useful to fire up IPython *inside* a running program. Great for
4437 useful to fire up IPython *inside* a running program. Great for
4431 debugging or dynamical data analysis.
4438 debugging or dynamical data analysis.
4432
4439
4433 2001-12-08 Fernando Perez <fperez@colorado.edu>
4440 2001-12-08 Fernando Perez <fperez@colorado.edu>
4434
4441
4435 * Fixed small bug preventing seeing info from methods of defined
4442 * Fixed small bug preventing seeing info from methods of defined
4436 objects (incorrect namespace in _ofind()).
4443 objects (incorrect namespace in _ofind()).
4437
4444
4438 * Documentation cleanup. Moved the main usage docstrings to a
4445 * Documentation cleanup. Moved the main usage docstrings to a
4439 separate file, usage.py (cleaner to maintain, and hopefully in the
4446 separate file, usage.py (cleaner to maintain, and hopefully in the
4440 future some perlpod-like way of producing interactive, man and
4447 future some perlpod-like way of producing interactive, man and
4441 html docs out of it will be found).
4448 html docs out of it will be found).
4442
4449
4443 * Added @profile to see your profile at any time.
4450 * Added @profile to see your profile at any time.
4444
4451
4445 * Added @p as an alias for 'print'. It's especially convenient if
4452 * Added @p as an alias for 'print'. It's especially convenient if
4446 using automagic ('p x' prints x).
4453 using automagic ('p x' prints x).
4447
4454
4448 * Small cleanups and fixes after a pychecker run.
4455 * Small cleanups and fixes after a pychecker run.
4449
4456
4450 * Changed the @cd command to handle @cd - and @cd -<n> for
4457 * Changed the @cd command to handle @cd - and @cd -<n> for
4451 visiting any directory in _dh.
4458 visiting any directory in _dh.
4452
4459
4453 * Introduced _dh, a history of visited directories. @dhist prints
4460 * Introduced _dh, a history of visited directories. @dhist prints
4454 it out with numbers.
4461 it out with numbers.
4455
4462
4456 2001-12-07 Fernando Perez <fperez@colorado.edu>
4463 2001-12-07 Fernando Perez <fperez@colorado.edu>
4457
4464
4458 * Released 0.1.22
4465 * Released 0.1.22
4459
4466
4460 * Made initialization a bit more robust against invalid color
4467 * Made initialization a bit more robust against invalid color
4461 options in user input (exit, not traceback-crash).
4468 options in user input (exit, not traceback-crash).
4462
4469
4463 * Changed the bug crash reporter to write the report only in the
4470 * Changed the bug crash reporter to write the report only in the
4464 user's .ipython directory. That way IPython won't litter people's
4471 user's .ipython directory. That way IPython won't litter people's
4465 hard disks with crash files all over the place. Also print on
4472 hard disks with crash files all over the place. Also print on
4466 screen the necessary mail command.
4473 screen the necessary mail command.
4467
4474
4468 * With the new ultraTB, implemented LightBG color scheme for light
4475 * With the new ultraTB, implemented LightBG color scheme for light
4469 background terminals. A lot of people like white backgrounds, so I
4476 background terminals. A lot of people like white backgrounds, so I
4470 guess we should at least give them something readable.
4477 guess we should at least give them something readable.
4471
4478
4472 2001-12-06 Fernando Perez <fperez@colorado.edu>
4479 2001-12-06 Fernando Perez <fperez@colorado.edu>
4473
4480
4474 * Modified the structure of ultraTB. Now there's a proper class
4481 * Modified the structure of ultraTB. Now there's a proper class
4475 for tables of color schemes which allow adding schemes easily and
4482 for tables of color schemes which allow adding schemes easily and
4476 switching the active scheme without creating a new instance every
4483 switching the active scheme without creating a new instance every
4477 time (which was ridiculous). The syntax for creating new schemes
4484 time (which was ridiculous). The syntax for creating new schemes
4478 is also cleaner. I think ultraTB is finally done, with a clean
4485 is also cleaner. I think ultraTB is finally done, with a clean
4479 class structure. Names are also much cleaner (now there's proper
4486 class structure. Names are also much cleaner (now there's proper
4480 color tables, no need for every variable to also have 'color' in
4487 color tables, no need for every variable to also have 'color' in
4481 its name).
4488 its name).
4482
4489
4483 * Broke down genutils into separate files. Now genutils only
4490 * Broke down genutils into separate files. Now genutils only
4484 contains utility functions, and classes have been moved to their
4491 contains utility functions, and classes have been moved to their
4485 own files (they had enough independent functionality to warrant
4492 own files (they had enough independent functionality to warrant
4486 it): ConfigLoader, OutputTrap, Struct.
4493 it): ConfigLoader, OutputTrap, Struct.
4487
4494
4488 2001-12-05 Fernando Perez <fperez@colorado.edu>
4495 2001-12-05 Fernando Perez <fperez@colorado.edu>
4489
4496
4490 * IPython turns 21! Released version 0.1.21, as a candidate for
4497 * IPython turns 21! Released version 0.1.21, as a candidate for
4491 public consumption. If all goes well, release in a few days.
4498 public consumption. If all goes well, release in a few days.
4492
4499
4493 * Fixed path bug (files in Extensions/ directory wouldn't be found
4500 * Fixed path bug (files in Extensions/ directory wouldn't be found
4494 unless IPython/ was explicitly in sys.path).
4501 unless IPython/ was explicitly in sys.path).
4495
4502
4496 * Extended the FlexCompleter class as MagicCompleter to allow
4503 * Extended the FlexCompleter class as MagicCompleter to allow
4497 completion of @-starting lines.
4504 completion of @-starting lines.
4498
4505
4499 * Created __release__.py file as a central repository for release
4506 * Created __release__.py file as a central repository for release
4500 info that other files can read from.
4507 info that other files can read from.
4501
4508
4502 * Fixed small bug in logging: when logging was turned on in
4509 * Fixed small bug in logging: when logging was turned on in
4503 mid-session, old lines with special meanings (!@?) were being
4510 mid-session, old lines with special meanings (!@?) were being
4504 logged without the prepended comment, which is necessary since
4511 logged without the prepended comment, which is necessary since
4505 they are not truly valid python syntax. This should make session
4512 they are not truly valid python syntax. This should make session
4506 restores produce less errors.
4513 restores produce less errors.
4507
4514
4508 * The namespace cleanup forced me to make a FlexCompleter class
4515 * The namespace cleanup forced me to make a FlexCompleter class
4509 which is nothing but a ripoff of rlcompleter, but with selectable
4516 which is nothing but a ripoff of rlcompleter, but with selectable
4510 namespace (rlcompleter only works in __main__.__dict__). I'll try
4517 namespace (rlcompleter only works in __main__.__dict__). I'll try
4511 to submit a note to the authors to see if this change can be
4518 to submit a note to the authors to see if this change can be
4512 incorporated in future rlcompleter releases (Dec.6: done)
4519 incorporated in future rlcompleter releases (Dec.6: done)
4513
4520
4514 * More fixes to namespace handling. It was a mess! Now all
4521 * More fixes to namespace handling. It was a mess! Now all
4515 explicit references to __main__.__dict__ are gone (except when
4522 explicit references to __main__.__dict__ are gone (except when
4516 really needed) and everything is handled through the namespace
4523 really needed) and everything is handled through the namespace
4517 dicts in the IPython instance. We seem to be getting somewhere
4524 dicts in the IPython instance. We seem to be getting somewhere
4518 with this, finally...
4525 with this, finally...
4519
4526
4520 * Small documentation updates.
4527 * Small documentation updates.
4521
4528
4522 * Created the Extensions directory under IPython (with an
4529 * Created the Extensions directory under IPython (with an
4523 __init__.py). Put the PhysicalQ stuff there. This directory should
4530 __init__.py). Put the PhysicalQ stuff there. This directory should
4524 be used for all special-purpose extensions.
4531 be used for all special-purpose extensions.
4525
4532
4526 * File renaming:
4533 * File renaming:
4527 ipythonlib --> ipmaker
4534 ipythonlib --> ipmaker
4528 ipplib --> iplib
4535 ipplib --> iplib
4529 This makes a bit more sense in terms of what these files actually do.
4536 This makes a bit more sense in terms of what these files actually do.
4530
4537
4531 * Moved all the classes and functions in ipythonlib to ipplib, so
4538 * Moved all the classes and functions in ipythonlib to ipplib, so
4532 now ipythonlib only has make_IPython(). This will ease up its
4539 now ipythonlib only has make_IPython(). This will ease up its
4533 splitting in smaller functional chunks later.
4540 splitting in smaller functional chunks later.
4534
4541
4535 * Cleaned up (done, I think) output of @whos. Better column
4542 * Cleaned up (done, I think) output of @whos. Better column
4536 formatting, and now shows str(var) for as much as it can, which is
4543 formatting, and now shows str(var) for as much as it can, which is
4537 typically what one gets with a 'print var'.
4544 typically what one gets with a 'print var'.
4538
4545
4539 2001-12-04 Fernando Perez <fperez@colorado.edu>
4546 2001-12-04 Fernando Perez <fperez@colorado.edu>
4540
4547
4541 * Fixed namespace problems. Now builtin/IPyhton/user names get
4548 * Fixed namespace problems. Now builtin/IPyhton/user names get
4542 properly reported in their namespace. Internal namespace handling
4549 properly reported in their namespace. Internal namespace handling
4543 is finally getting decent (not perfect yet, but much better than
4550 is finally getting decent (not perfect yet, but much better than
4544 the ad-hoc mess we had).
4551 the ad-hoc mess we had).
4545
4552
4546 * Removed -exit option. If people just want to run a python
4553 * Removed -exit option. If people just want to run a python
4547 script, that's what the normal interpreter is for. Less
4554 script, that's what the normal interpreter is for. Less
4548 unnecessary options, less chances for bugs.
4555 unnecessary options, less chances for bugs.
4549
4556
4550 * Added a crash handler which generates a complete post-mortem if
4557 * Added a crash handler which generates a complete post-mortem if
4551 IPython crashes. This will help a lot in tracking bugs down the
4558 IPython crashes. This will help a lot in tracking bugs down the
4552 road.
4559 road.
4553
4560
4554 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4561 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4555 which were boud to functions being reassigned would bypass the
4562 which were boud to functions being reassigned would bypass the
4556 logger, breaking the sync of _il with the prompt counter. This
4563 logger, breaking the sync of _il with the prompt counter. This
4557 would then crash IPython later when a new line was logged.
4564 would then crash IPython later when a new line was logged.
4558
4565
4559 2001-12-02 Fernando Perez <fperez@colorado.edu>
4566 2001-12-02 Fernando Perez <fperez@colorado.edu>
4560
4567
4561 * Made IPython a package. This means people don't have to clutter
4568 * Made IPython a package. This means people don't have to clutter
4562 their sys.path with yet another directory. Changed the INSTALL
4569 their sys.path with yet another directory. Changed the INSTALL
4563 file accordingly.
4570 file accordingly.
4564
4571
4565 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4572 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4566 sorts its output (so @who shows it sorted) and @whos formats the
4573 sorts its output (so @who shows it sorted) and @whos formats the
4567 table according to the width of the first column. Nicer, easier to
4574 table according to the width of the first column. Nicer, easier to
4568 read. Todo: write a generic table_format() which takes a list of
4575 read. Todo: write a generic table_format() which takes a list of
4569 lists and prints it nicely formatted, with optional row/column
4576 lists and prints it nicely formatted, with optional row/column
4570 separators and proper padding and justification.
4577 separators and proper padding and justification.
4571
4578
4572 * Released 0.1.20
4579 * Released 0.1.20
4573
4580
4574 * Fixed bug in @log which would reverse the inputcache list (a
4581 * Fixed bug in @log which would reverse the inputcache list (a
4575 copy operation was missing).
4582 copy operation was missing).
4576
4583
4577 * Code cleanup. @config was changed to use page(). Better, since
4584 * Code cleanup. @config was changed to use page(). Better, since
4578 its output is always quite long.
4585 its output is always quite long.
4579
4586
4580 * Itpl is back as a dependency. I was having too many problems
4587 * Itpl is back as a dependency. I was having too many problems
4581 getting the parametric aliases to work reliably, and it's just
4588 getting the parametric aliases to work reliably, and it's just
4582 easier to code weird string operations with it than playing %()s
4589 easier to code weird string operations with it than playing %()s
4583 games. It's only ~6k, so I don't think it's too big a deal.
4590 games. It's only ~6k, so I don't think it's too big a deal.
4584
4591
4585 * Found (and fixed) a very nasty bug with history. !lines weren't
4592 * Found (and fixed) a very nasty bug with history. !lines weren't
4586 getting cached, and the out of sync caches would crash
4593 getting cached, and the out of sync caches would crash
4587 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4594 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4588 division of labor a bit better. Bug fixed, cleaner structure.
4595 division of labor a bit better. Bug fixed, cleaner structure.
4589
4596
4590 2001-12-01 Fernando Perez <fperez@colorado.edu>
4597 2001-12-01 Fernando Perez <fperez@colorado.edu>
4591
4598
4592 * Released 0.1.19
4599 * Released 0.1.19
4593
4600
4594 * Added option -n to @hist to prevent line number printing. Much
4601 * Added option -n to @hist to prevent line number printing. Much
4595 easier to copy/paste code this way.
4602 easier to copy/paste code this way.
4596
4603
4597 * Created global _il to hold the input list. Allows easy
4604 * Created global _il to hold the input list. Allows easy
4598 re-execution of blocks of code by slicing it (inspired by Janko's
4605 re-execution of blocks of code by slicing it (inspired by Janko's
4599 comment on 'macros').
4606 comment on 'macros').
4600
4607
4601 * Small fixes and doc updates.
4608 * Small fixes and doc updates.
4602
4609
4603 * Rewrote @history function (was @h). Renamed it to @hist, @h is
4610 * Rewrote @history function (was @h). Renamed it to @hist, @h is
4604 much too fragile with automagic. Handles properly multi-line
4611 much too fragile with automagic. Handles properly multi-line
4605 statements and takes parameters.
4612 statements and takes parameters.
4606
4613
4607 2001-11-30 Fernando Perez <fperez@colorado.edu>
4614 2001-11-30 Fernando Perez <fperez@colorado.edu>
4608
4615
4609 * Version 0.1.18 released.
4616 * Version 0.1.18 released.
4610
4617
4611 * Fixed nasty namespace bug in initial module imports.
4618 * Fixed nasty namespace bug in initial module imports.
4612
4619
4613 * Added copyright/license notes to all code files (except
4620 * Added copyright/license notes to all code files (except
4614 DPyGetOpt). For the time being, LGPL. That could change.
4621 DPyGetOpt). For the time being, LGPL. That could change.
4615
4622
4616 * Rewrote a much nicer README, updated INSTALL, cleaned up
4623 * Rewrote a much nicer README, updated INSTALL, cleaned up
4617 ipythonrc-* samples.
4624 ipythonrc-* samples.
4618
4625
4619 * Overall code/documentation cleanup. Basically ready for
4626 * Overall code/documentation cleanup. Basically ready for
4620 release. Only remaining thing: licence decision (LGPL?).
4627 release. Only remaining thing: licence decision (LGPL?).
4621
4628
4622 * Converted load_config to a class, ConfigLoader. Now recursion
4629 * Converted load_config to a class, ConfigLoader. Now recursion
4623 control is better organized. Doesn't include the same file twice.
4630 control is better organized. Doesn't include the same file twice.
4624
4631
4625 2001-11-29 Fernando Perez <fperez@colorado.edu>
4632 2001-11-29 Fernando Perez <fperez@colorado.edu>
4626
4633
4627 * Got input history working. Changed output history variables from
4634 * Got input history working. Changed output history variables from
4628 _p to _o so that _i is for input and _o for output. Just cleaner
4635 _p to _o so that _i is for input and _o for output. Just cleaner
4629 convention.
4636 convention.
4630
4637
4631 * Implemented parametric aliases. This pretty much allows the
4638 * Implemented parametric aliases. This pretty much allows the
4632 alias system to offer full-blown shell convenience, I think.
4639 alias system to offer full-blown shell convenience, I think.
4633
4640
4634 * Version 0.1.17 released, 0.1.18 opened.
4641 * Version 0.1.17 released, 0.1.18 opened.
4635
4642
4636 * dot_ipython/ipythonrc (alias): added documentation.
4643 * dot_ipython/ipythonrc (alias): added documentation.
4637 (xcolor): Fixed small bug (xcolors -> xcolor)
4644 (xcolor): Fixed small bug (xcolors -> xcolor)
4638
4645
4639 * Changed the alias system. Now alias is a magic command to define
4646 * Changed the alias system. Now alias is a magic command to define
4640 aliases just like the shell. Rationale: the builtin magics should
4647 aliases just like the shell. Rationale: the builtin magics should
4641 be there for things deeply connected to IPython's
4648 be there for things deeply connected to IPython's
4642 architecture. And this is a much lighter system for what I think
4649 architecture. And this is a much lighter system for what I think
4643 is the really important feature: allowing users to define quickly
4650 is the really important feature: allowing users to define quickly
4644 magics that will do shell things for them, so they can customize
4651 magics that will do shell things for them, so they can customize
4645 IPython easily to match their work habits. If someone is really
4652 IPython easily to match their work habits. If someone is really
4646 desperate to have another name for a builtin alias, they can
4653 desperate to have another name for a builtin alias, they can
4647 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4654 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4648 works.
4655 works.
4649
4656
4650 2001-11-28 Fernando Perez <fperez@colorado.edu>
4657 2001-11-28 Fernando Perez <fperez@colorado.edu>
4651
4658
4652 * Changed @file so that it opens the source file at the proper
4659 * Changed @file so that it opens the source file at the proper
4653 line. Since it uses less, if your EDITOR environment is
4660 line. Since it uses less, if your EDITOR environment is
4654 configured, typing v will immediately open your editor of choice
4661 configured, typing v will immediately open your editor of choice
4655 right at the line where the object is defined. Not as quick as
4662 right at the line where the object is defined. Not as quick as
4656 having a direct @edit command, but for all intents and purposes it
4663 having a direct @edit command, but for all intents and purposes it
4657 works. And I don't have to worry about writing @edit to deal with
4664 works. And I don't have to worry about writing @edit to deal with
4658 all the editors, less does that.
4665 all the editors, less does that.
4659
4666
4660 * Version 0.1.16 released, 0.1.17 opened.
4667 * Version 0.1.16 released, 0.1.17 opened.
4661
4668
4662 * Fixed some nasty bugs in the page/page_dumb combo that could
4669 * Fixed some nasty bugs in the page/page_dumb combo that could
4663 crash IPython.
4670 crash IPython.
4664
4671
4665 2001-11-27 Fernando Perez <fperez@colorado.edu>
4672 2001-11-27 Fernando Perez <fperez@colorado.edu>
4666
4673
4667 * Version 0.1.15 released, 0.1.16 opened.
4674 * Version 0.1.15 released, 0.1.16 opened.
4668
4675
4669 * Finally got ? and ?? to work for undefined things: now it's
4676 * Finally got ? and ?? to work for undefined things: now it's
4670 possible to type {}.get? and get information about the get method
4677 possible to type {}.get? and get information about the get method
4671 of dicts, or os.path? even if only os is defined (so technically
4678 of dicts, or os.path? even if only os is defined (so technically
4672 os.path isn't). Works at any level. For example, after import os,
4679 os.path isn't). Works at any level. For example, after import os,
4673 os?, os.path?, os.path.abspath? all work. This is great, took some
4680 os?, os.path?, os.path.abspath? all work. This is great, took some
4674 work in _ofind.
4681 work in _ofind.
4675
4682
4676 * Fixed more bugs with logging. The sanest way to do it was to add
4683 * Fixed more bugs with logging. The sanest way to do it was to add
4677 to @log a 'mode' parameter. Killed two in one shot (this mode
4684 to @log a 'mode' parameter. Killed two in one shot (this mode
4678 option was a request of Janko's). I think it's finally clean
4685 option was a request of Janko's). I think it's finally clean
4679 (famous last words).
4686 (famous last words).
4680
4687
4681 * Added a page_dumb() pager which does a decent job of paging on
4688 * Added a page_dumb() pager which does a decent job of paging on
4682 screen, if better things (like less) aren't available. One less
4689 screen, if better things (like less) aren't available. One less
4683 unix dependency (someday maybe somebody will port this to
4690 unix dependency (someday maybe somebody will port this to
4684 windows).
4691 windows).
4685
4692
4686 * Fixed problem in magic_log: would lock of logging out if log
4693 * Fixed problem in magic_log: would lock of logging out if log
4687 creation failed (because it would still think it had succeeded).
4694 creation failed (because it would still think it had succeeded).
4688
4695
4689 * Improved the page() function using curses to auto-detect screen
4696 * Improved the page() function using curses to auto-detect screen
4690 size. Now it can make a much better decision on whether to print
4697 size. Now it can make a much better decision on whether to print
4691 or page a string. Option screen_length was modified: a value 0
4698 or page a string. Option screen_length was modified: a value 0
4692 means auto-detect, and that's the default now.
4699 means auto-detect, and that's the default now.
4693
4700
4694 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
4701 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
4695 go out. I'll test it for a few days, then talk to Janko about
4702 go out. I'll test it for a few days, then talk to Janko about
4696 licences and announce it.
4703 licences and announce it.
4697
4704
4698 * Fixed the length of the auto-generated ---> prompt which appears
4705 * Fixed the length of the auto-generated ---> prompt which appears
4699 for auto-parens and auto-quotes. Getting this right isn't trivial,
4706 for auto-parens and auto-quotes. Getting this right isn't trivial,
4700 with all the color escapes, different prompt types and optional
4707 with all the color escapes, different prompt types and optional
4701 separators. But it seems to be working in all the combinations.
4708 separators. But it seems to be working in all the combinations.
4702
4709
4703 2001-11-26 Fernando Perez <fperez@colorado.edu>
4710 2001-11-26 Fernando Perez <fperez@colorado.edu>
4704
4711
4705 * Wrote a regexp filter to get option types from the option names
4712 * Wrote a regexp filter to get option types from the option names
4706 string. This eliminates the need to manually keep two duplicate
4713 string. This eliminates the need to manually keep two duplicate
4707 lists.
4714 lists.
4708
4715
4709 * Removed the unneeded check_option_names. Now options are handled
4716 * Removed the unneeded check_option_names. Now options are handled
4710 in a much saner manner and it's easy to visually check that things
4717 in a much saner manner and it's easy to visually check that things
4711 are ok.
4718 are ok.
4712
4719
4713 * Updated version numbers on all files I modified to carry a
4720 * Updated version numbers on all files I modified to carry a
4714 notice so Janko and Nathan have clear version markers.
4721 notice so Janko and Nathan have clear version markers.
4715
4722
4716 * Updated docstring for ultraTB with my changes. I should send
4723 * Updated docstring for ultraTB with my changes. I should send
4717 this to Nathan.
4724 this to Nathan.
4718
4725
4719 * Lots of small fixes. Ran everything through pychecker again.
4726 * Lots of small fixes. Ran everything through pychecker again.
4720
4727
4721 * Made loading of deep_reload an cmd line option. If it's not too
4728 * Made loading of deep_reload an cmd line option. If it's not too
4722 kosher, now people can just disable it. With -nodeep_reload it's
4729 kosher, now people can just disable it. With -nodeep_reload it's
4723 still available as dreload(), it just won't overwrite reload().
4730 still available as dreload(), it just won't overwrite reload().
4724
4731
4725 * Moved many options to the no| form (-opt and -noopt
4732 * Moved many options to the no| form (-opt and -noopt
4726 accepted). Cleaner.
4733 accepted). Cleaner.
4727
4734
4728 * Changed magic_log so that if called with no parameters, it uses
4735 * Changed magic_log so that if called with no parameters, it uses
4729 'rotate' mode. That way auto-generated logs aren't automatically
4736 'rotate' mode. That way auto-generated logs aren't automatically
4730 over-written. For normal logs, now a backup is made if it exists
4737 over-written. For normal logs, now a backup is made if it exists
4731 (only 1 level of backups). A new 'backup' mode was added to the
4738 (only 1 level of backups). A new 'backup' mode was added to the
4732 Logger class to support this. This was a request by Janko.
4739 Logger class to support this. This was a request by Janko.
4733
4740
4734 * Added @logoff/@logon to stop/restart an active log.
4741 * Added @logoff/@logon to stop/restart an active log.
4735
4742
4736 * Fixed a lot of bugs in log saving/replay. It was pretty
4743 * Fixed a lot of bugs in log saving/replay. It was pretty
4737 broken. Now special lines (!@,/) appear properly in the command
4744 broken. Now special lines (!@,/) appear properly in the command
4738 history after a log replay.
4745 history after a log replay.
4739
4746
4740 * Tried and failed to implement full session saving via pickle. My
4747 * Tried and failed to implement full session saving via pickle. My
4741 idea was to pickle __main__.__dict__, but modules can't be
4748 idea was to pickle __main__.__dict__, but modules can't be
4742 pickled. This would be a better alternative to replaying logs, but
4749 pickled. This would be a better alternative to replaying logs, but
4743 seems quite tricky to get to work. Changed -session to be called
4750 seems quite tricky to get to work. Changed -session to be called
4744 -logplay, which more accurately reflects what it does. And if we
4751 -logplay, which more accurately reflects what it does. And if we
4745 ever get real session saving working, -session is now available.
4752 ever get real session saving working, -session is now available.
4746
4753
4747 * Implemented color schemes for prompts also. As for tracebacks,
4754 * Implemented color schemes for prompts also. As for tracebacks,
4748 currently only NoColor and Linux are supported. But now the
4755 currently only NoColor and Linux are supported. But now the
4749 infrastructure is in place, based on a generic ColorScheme
4756 infrastructure is in place, based on a generic ColorScheme
4750 class. So writing and activating new schemes both for the prompts
4757 class. So writing and activating new schemes both for the prompts
4751 and the tracebacks should be straightforward.
4758 and the tracebacks should be straightforward.
4752
4759
4753 * Version 0.1.13 released, 0.1.14 opened.
4760 * Version 0.1.13 released, 0.1.14 opened.
4754
4761
4755 * Changed handling of options for output cache. Now counter is
4762 * Changed handling of options for output cache. Now counter is
4756 hardwired starting at 1 and one specifies the maximum number of
4763 hardwired starting at 1 and one specifies the maximum number of
4757 entries *in the outcache* (not the max prompt counter). This is
4764 entries *in the outcache* (not the max prompt counter). This is
4758 much better, since many statements won't increase the cache
4765 much better, since many statements won't increase the cache
4759 count. It also eliminated some confusing options, now there's only
4766 count. It also eliminated some confusing options, now there's only
4760 one: cache_size.
4767 one: cache_size.
4761
4768
4762 * Added 'alias' magic function and magic_alias option in the
4769 * Added 'alias' magic function and magic_alias option in the
4763 ipythonrc file. Now the user can easily define whatever names he
4770 ipythonrc file. Now the user can easily define whatever names he
4764 wants for the magic functions without having to play weird
4771 wants for the magic functions without having to play weird
4765 namespace games. This gives IPython a real shell-like feel.
4772 namespace games. This gives IPython a real shell-like feel.
4766
4773
4767 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
4774 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
4768 @ or not).
4775 @ or not).
4769
4776
4770 This was one of the last remaining 'visible' bugs (that I know
4777 This was one of the last remaining 'visible' bugs (that I know
4771 of). I think if I can clean up the session loading so it works
4778 of). I think if I can clean up the session loading so it works
4772 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
4779 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
4773 about licensing).
4780 about licensing).
4774
4781
4775 2001-11-25 Fernando Perez <fperez@colorado.edu>
4782 2001-11-25 Fernando Perez <fperez@colorado.edu>
4776
4783
4777 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
4784 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
4778 there's a cleaner distinction between what ? and ?? show.
4785 there's a cleaner distinction between what ? and ?? show.
4779
4786
4780 * Added screen_length option. Now the user can define his own
4787 * Added screen_length option. Now the user can define his own
4781 screen size for page() operations.
4788 screen size for page() operations.
4782
4789
4783 * Implemented magic shell-like functions with automatic code
4790 * Implemented magic shell-like functions with automatic code
4784 generation. Now adding another function is just a matter of adding
4791 generation. Now adding another function is just a matter of adding
4785 an entry to a dict, and the function is dynamically generated at
4792 an entry to a dict, and the function is dynamically generated at
4786 run-time. Python has some really cool features!
4793 run-time. Python has some really cool features!
4787
4794
4788 * Renamed many options to cleanup conventions a little. Now all
4795 * Renamed many options to cleanup conventions a little. Now all
4789 are lowercase, and only underscores where needed. Also in the code
4796 are lowercase, and only underscores where needed. Also in the code
4790 option name tables are clearer.
4797 option name tables are clearer.
4791
4798
4792 * Changed prompts a little. Now input is 'In [n]:' instead of
4799 * Changed prompts a little. Now input is 'In [n]:' instead of
4793 'In[n]:='. This allows it the numbers to be aligned with the
4800 'In[n]:='. This allows it the numbers to be aligned with the
4794 Out[n] numbers, and removes usage of ':=' which doesn't exist in
4801 Out[n] numbers, and removes usage of ':=' which doesn't exist in
4795 Python (it was a Mathematica thing). The '...' continuation prompt
4802 Python (it was a Mathematica thing). The '...' continuation prompt
4796 was also changed a little to align better.
4803 was also changed a little to align better.
4797
4804
4798 * Fixed bug when flushing output cache. Not all _p<n> variables
4805 * Fixed bug when flushing output cache. Not all _p<n> variables
4799 exist, so their deletion needs to be wrapped in a try:
4806 exist, so their deletion needs to be wrapped in a try:
4800
4807
4801 * Figured out how to properly use inspect.formatargspec() (it
4808 * Figured out how to properly use inspect.formatargspec() (it
4802 requires the args preceded by *). So I removed all the code from
4809 requires the args preceded by *). So I removed all the code from
4803 _get_pdef in Magic, which was just replicating that.
4810 _get_pdef in Magic, which was just replicating that.
4804
4811
4805 * Added test to prefilter to allow redefining magic function names
4812 * Added test to prefilter to allow redefining magic function names
4806 as variables. This is ok, since the @ form is always available,
4813 as variables. This is ok, since the @ form is always available,
4807 but whe should allow the user to define a variable called 'ls' if
4814 but whe should allow the user to define a variable called 'ls' if
4808 he needs it.
4815 he needs it.
4809
4816
4810 * Moved the ToDo information from README into a separate ToDo.
4817 * Moved the ToDo information from README into a separate ToDo.
4811
4818
4812 * General code cleanup and small bugfixes. I think it's close to a
4819 * General code cleanup and small bugfixes. I think it's close to a
4813 state where it can be released, obviously with a big 'beta'
4820 state where it can be released, obviously with a big 'beta'
4814 warning on it.
4821 warning on it.
4815
4822
4816 * Got the magic function split to work. Now all magics are defined
4823 * Got the magic function split to work. Now all magics are defined
4817 in a separate class. It just organizes things a bit, and now
4824 in a separate class. It just organizes things a bit, and now
4818 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
4825 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
4819 was too long).
4826 was too long).
4820
4827
4821 * Changed @clear to @reset to avoid potential confusions with
4828 * Changed @clear to @reset to avoid potential confusions with
4822 the shell command clear. Also renamed @cl to @clear, which does
4829 the shell command clear. Also renamed @cl to @clear, which does
4823 exactly what people expect it to from their shell experience.
4830 exactly what people expect it to from their shell experience.
4824
4831
4825 Added a check to the @reset command (since it's so
4832 Added a check to the @reset command (since it's so
4826 destructive, it's probably a good idea to ask for confirmation).
4833 destructive, it's probably a good idea to ask for confirmation).
4827 But now reset only works for full namespace resetting. Since the
4834 But now reset only works for full namespace resetting. Since the
4828 del keyword is already there for deleting a few specific
4835 del keyword is already there for deleting a few specific
4829 variables, I don't see the point of having a redundant magic
4836 variables, I don't see the point of having a redundant magic
4830 function for the same task.
4837 function for the same task.
4831
4838
4832 2001-11-24 Fernando Perez <fperez@colorado.edu>
4839 2001-11-24 Fernando Perez <fperez@colorado.edu>
4833
4840
4834 * Updated the builtin docs (esp. the ? ones).
4841 * Updated the builtin docs (esp. the ? ones).
4835
4842
4836 * Ran all the code through pychecker. Not terribly impressed with
4843 * Ran all the code through pychecker. Not terribly impressed with
4837 it: lots of spurious warnings and didn't really find anything of
4844 it: lots of spurious warnings and didn't really find anything of
4838 substance (just a few modules being imported and not used).
4845 substance (just a few modules being imported and not used).
4839
4846
4840 * Implemented the new ultraTB functionality into IPython. New
4847 * Implemented the new ultraTB functionality into IPython. New
4841 option: xcolors. This chooses color scheme. xmode now only selects
4848 option: xcolors. This chooses color scheme. xmode now only selects
4842 between Plain and Verbose. Better orthogonality.
4849 between Plain and Verbose. Better orthogonality.
4843
4850
4844 * Large rewrite of ultraTB. Much cleaner now, with a separation of
4851 * Large rewrite of ultraTB. Much cleaner now, with a separation of
4845 mode and color scheme for the exception handlers. Now it's
4852 mode and color scheme for the exception handlers. Now it's
4846 possible to have the verbose traceback with no coloring.
4853 possible to have the verbose traceback with no coloring.
4847
4854
4848 2001-11-23 Fernando Perez <fperez@colorado.edu>
4855 2001-11-23 Fernando Perez <fperez@colorado.edu>
4849
4856
4850 * Version 0.1.12 released, 0.1.13 opened.
4857 * Version 0.1.12 released, 0.1.13 opened.
4851
4858
4852 * Removed option to set auto-quote and auto-paren escapes by
4859 * Removed option to set auto-quote and auto-paren escapes by
4853 user. The chances of breaking valid syntax are just too high. If
4860 user. The chances of breaking valid syntax are just too high. If
4854 someone *really* wants, they can always dig into the code.
4861 someone *really* wants, they can always dig into the code.
4855
4862
4856 * Made prompt separators configurable.
4863 * Made prompt separators configurable.
4857
4864
4858 2001-11-22 Fernando Perez <fperez@colorado.edu>
4865 2001-11-22 Fernando Perez <fperez@colorado.edu>
4859
4866
4860 * Small bugfixes in many places.
4867 * Small bugfixes in many places.
4861
4868
4862 * Removed the MyCompleter class from ipplib. It seemed redundant
4869 * Removed the MyCompleter class from ipplib. It seemed redundant
4863 with the C-p,C-n history search functionality. Less code to
4870 with the C-p,C-n history search functionality. Less code to
4864 maintain.
4871 maintain.
4865
4872
4866 * Moved all the original ipython.py code into ipythonlib.py. Right
4873 * Moved all the original ipython.py code into ipythonlib.py. Right
4867 now it's just one big dump into a function called make_IPython, so
4874 now it's just one big dump into a function called make_IPython, so
4868 no real modularity has been gained. But at least it makes the
4875 no real modularity has been gained. But at least it makes the
4869 wrapper script tiny, and since ipythonlib is a module, it gets
4876 wrapper script tiny, and since ipythonlib is a module, it gets
4870 compiled and startup is much faster.
4877 compiled and startup is much faster.
4871
4878
4872 This is a reasobably 'deep' change, so we should test it for a
4879 This is a reasobably 'deep' change, so we should test it for a
4873 while without messing too much more with the code.
4880 while without messing too much more with the code.
4874
4881
4875 2001-11-21 Fernando Perez <fperez@colorado.edu>
4882 2001-11-21 Fernando Perez <fperez@colorado.edu>
4876
4883
4877 * Version 0.1.11 released, 0.1.12 opened for further work.
4884 * Version 0.1.11 released, 0.1.12 opened for further work.
4878
4885
4879 * Removed dependency on Itpl. It was only needed in one place. It
4886 * Removed dependency on Itpl. It was only needed in one place. It
4880 would be nice if this became part of python, though. It makes life
4887 would be nice if this became part of python, though. It makes life
4881 *a lot* easier in some cases.
4888 *a lot* easier in some cases.
4882
4889
4883 * Simplified the prefilter code a bit. Now all handlers are
4890 * Simplified the prefilter code a bit. Now all handlers are
4884 expected to explicitly return a value (at least a blank string).
4891 expected to explicitly return a value (at least a blank string).
4885
4892
4886 * Heavy edits in ipplib. Removed the help system altogether. Now
4893 * Heavy edits in ipplib. Removed the help system altogether. Now
4887 obj?/?? is used for inspecting objects, a magic @doc prints
4894 obj?/?? is used for inspecting objects, a magic @doc prints
4888 docstrings, and full-blown Python help is accessed via the 'help'
4895 docstrings, and full-blown Python help is accessed via the 'help'
4889 keyword. This cleans up a lot of code (less to maintain) and does
4896 keyword. This cleans up a lot of code (less to maintain) and does
4890 the job. Since 'help' is now a standard Python component, might as
4897 the job. Since 'help' is now a standard Python component, might as
4891 well use it and remove duplicate functionality.
4898 well use it and remove duplicate functionality.
4892
4899
4893 Also removed the option to use ipplib as a standalone program. By
4900 Also removed the option to use ipplib as a standalone program. By
4894 now it's too dependent on other parts of IPython to function alone.
4901 now it's too dependent on other parts of IPython to function alone.
4895
4902
4896 * Fixed bug in genutils.pager. It would crash if the pager was
4903 * Fixed bug in genutils.pager. It would crash if the pager was
4897 exited immediately after opening (broken pipe).
4904 exited immediately after opening (broken pipe).
4898
4905
4899 * Trimmed down the VerboseTB reporting a little. The header is
4906 * Trimmed down the VerboseTB reporting a little. The header is
4900 much shorter now and the repeated exception arguments at the end
4907 much shorter now and the repeated exception arguments at the end
4901 have been removed. For interactive use the old header seemed a bit
4908 have been removed. For interactive use the old header seemed a bit
4902 excessive.
4909 excessive.
4903
4910
4904 * Fixed small bug in output of @whos for variables with multi-word
4911 * Fixed small bug in output of @whos for variables with multi-word
4905 types (only first word was displayed).
4912 types (only first word was displayed).
4906
4913
4907 2001-11-17 Fernando Perez <fperez@colorado.edu>
4914 2001-11-17 Fernando Perez <fperez@colorado.edu>
4908
4915
4909 * Version 0.1.10 released, 0.1.11 opened for further work.
4916 * Version 0.1.10 released, 0.1.11 opened for further work.
4910
4917
4911 * Modified dirs and friends. dirs now *returns* the stack (not
4918 * Modified dirs and friends. dirs now *returns* the stack (not
4912 prints), so one can manipulate it as a variable. Convenient to
4919 prints), so one can manipulate it as a variable. Convenient to
4913 travel along many directories.
4920 travel along many directories.
4914
4921
4915 * Fixed bug in magic_pdef: would only work with functions with
4922 * Fixed bug in magic_pdef: would only work with functions with
4916 arguments with default values.
4923 arguments with default values.
4917
4924
4918 2001-11-14 Fernando Perez <fperez@colorado.edu>
4925 2001-11-14 Fernando Perez <fperez@colorado.edu>
4919
4926
4920 * Added the PhysicsInput stuff to dot_ipython so it ships as an
4927 * Added the PhysicsInput stuff to dot_ipython so it ships as an
4921 example with IPython. Various other minor fixes and cleanups.
4928 example with IPython. Various other minor fixes and cleanups.
4922
4929
4923 * Version 0.1.9 released, 0.1.10 opened for further work.
4930 * Version 0.1.9 released, 0.1.10 opened for further work.
4924
4931
4925 * Added sys.path to the list of directories searched in the
4932 * Added sys.path to the list of directories searched in the
4926 execfile= option. It used to be the current directory and the
4933 execfile= option. It used to be the current directory and the
4927 user's IPYTHONDIR only.
4934 user's IPYTHONDIR only.
4928
4935
4929 2001-11-13 Fernando Perez <fperez@colorado.edu>
4936 2001-11-13 Fernando Perez <fperez@colorado.edu>
4930
4937
4931 * Reinstated the raw_input/prefilter separation that Janko had
4938 * Reinstated the raw_input/prefilter separation that Janko had
4932 initially. This gives a more convenient setup for extending the
4939 initially. This gives a more convenient setup for extending the
4933 pre-processor from the outside: raw_input always gets a string,
4940 pre-processor from the outside: raw_input always gets a string,
4934 and prefilter has to process it. We can then redefine prefilter
4941 and prefilter has to process it. We can then redefine prefilter
4935 from the outside and implement extensions for special
4942 from the outside and implement extensions for special
4936 purposes.
4943 purposes.
4937
4944
4938 Today I got one for inputting PhysicalQuantity objects
4945 Today I got one for inputting PhysicalQuantity objects
4939 (from Scientific) without needing any function calls at
4946 (from Scientific) without needing any function calls at
4940 all. Extremely convenient, and it's all done as a user-level
4947 all. Extremely convenient, and it's all done as a user-level
4941 extension (no IPython code was touched). Now instead of:
4948 extension (no IPython code was touched). Now instead of:
4942 a = PhysicalQuantity(4.2,'m/s**2')
4949 a = PhysicalQuantity(4.2,'m/s**2')
4943 one can simply say
4950 one can simply say
4944 a = 4.2 m/s**2
4951 a = 4.2 m/s**2
4945 or even
4952 or even
4946 a = 4.2 m/s^2
4953 a = 4.2 m/s^2
4947
4954
4948 I use this, but it's also a proof of concept: IPython really is
4955 I use this, but it's also a proof of concept: IPython really is
4949 fully user-extensible, even at the level of the parsing of the
4956 fully user-extensible, even at the level of the parsing of the
4950 command line. It's not trivial, but it's perfectly doable.
4957 command line. It's not trivial, but it's perfectly doable.
4951
4958
4952 * Added 'add_flip' method to inclusion conflict resolver. Fixes
4959 * Added 'add_flip' method to inclusion conflict resolver. Fixes
4953 the problem of modules being loaded in the inverse order in which
4960 the problem of modules being loaded in the inverse order in which
4954 they were defined in
4961 they were defined in
4955
4962
4956 * Version 0.1.8 released, 0.1.9 opened for further work.
4963 * Version 0.1.8 released, 0.1.9 opened for further work.
4957
4964
4958 * Added magics pdef, source and file. They respectively show the
4965 * Added magics pdef, source and file. They respectively show the
4959 definition line ('prototype' in C), source code and full python
4966 definition line ('prototype' in C), source code and full python
4960 file for any callable object. The object inspector oinfo uses
4967 file for any callable object. The object inspector oinfo uses
4961 these to show the same information.
4968 these to show the same information.
4962
4969
4963 * Version 0.1.7 released, 0.1.8 opened for further work.
4970 * Version 0.1.7 released, 0.1.8 opened for further work.
4964
4971
4965 * Separated all the magic functions into a class called Magic. The
4972 * Separated all the magic functions into a class called Magic. The
4966 InteractiveShell class was becoming too big for Xemacs to handle
4973 InteractiveShell class was becoming too big for Xemacs to handle
4967 (de-indenting a line would lock it up for 10 seconds while it
4974 (de-indenting a line would lock it up for 10 seconds while it
4968 backtracked on the whole class!)
4975 backtracked on the whole class!)
4969
4976
4970 FIXME: didn't work. It can be done, but right now namespaces are
4977 FIXME: didn't work. It can be done, but right now namespaces are
4971 all messed up. Do it later (reverted it for now, so at least
4978 all messed up. Do it later (reverted it for now, so at least
4972 everything works as before).
4979 everything works as before).
4973
4980
4974 * Got the object introspection system (magic_oinfo) working! I
4981 * Got the object introspection system (magic_oinfo) working! I
4975 think this is pretty much ready for release to Janko, so he can
4982 think this is pretty much ready for release to Janko, so he can
4976 test it for a while and then announce it. Pretty much 100% of what
4983 test it for a while and then announce it. Pretty much 100% of what
4977 I wanted for the 'phase 1' release is ready. Happy, tired.
4984 I wanted for the 'phase 1' release is ready. Happy, tired.
4978
4985
4979 2001-11-12 Fernando Perez <fperez@colorado.edu>
4986 2001-11-12 Fernando Perez <fperez@colorado.edu>
4980
4987
4981 * Version 0.1.6 released, 0.1.7 opened for further work.
4988 * Version 0.1.6 released, 0.1.7 opened for further work.
4982
4989
4983 * Fixed bug in printing: it used to test for truth before
4990 * Fixed bug in printing: it used to test for truth before
4984 printing, so 0 wouldn't print. Now checks for None.
4991 printing, so 0 wouldn't print. Now checks for None.
4985
4992
4986 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
4993 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
4987 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
4994 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
4988 reaches by hand into the outputcache. Think of a better way to do
4995 reaches by hand into the outputcache. Think of a better way to do
4989 this later.
4996 this later.
4990
4997
4991 * Various small fixes thanks to Nathan's comments.
4998 * Various small fixes thanks to Nathan's comments.
4992
4999
4993 * Changed magic_pprint to magic_Pprint. This way it doesn't
5000 * Changed magic_pprint to magic_Pprint. This way it doesn't
4994 collide with pprint() and the name is consistent with the command
5001 collide with pprint() and the name is consistent with the command
4995 line option.
5002 line option.
4996
5003
4997 * Changed prompt counter behavior to be fully like
5004 * Changed prompt counter behavior to be fully like
4998 Mathematica's. That is, even input that doesn't return a result
5005 Mathematica's. That is, even input that doesn't return a result
4999 raises the prompt counter. The old behavior was kind of confusing
5006 raises the prompt counter. The old behavior was kind of confusing
5000 (getting the same prompt number several times if the operation
5007 (getting the same prompt number several times if the operation
5001 didn't return a result).
5008 didn't return a result).
5002
5009
5003 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5010 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5004
5011
5005 * Fixed -Classic mode (wasn't working anymore).
5012 * Fixed -Classic mode (wasn't working anymore).
5006
5013
5007 * Added colored prompts using Nathan's new code. Colors are
5014 * Added colored prompts using Nathan's new code. Colors are
5008 currently hardwired, they can be user-configurable. For
5015 currently hardwired, they can be user-configurable. For
5009 developers, they can be chosen in file ipythonlib.py, at the
5016 developers, they can be chosen in file ipythonlib.py, at the
5010 beginning of the CachedOutput class def.
5017 beginning of the CachedOutput class def.
5011
5018
5012 2001-11-11 Fernando Perez <fperez@colorado.edu>
5019 2001-11-11 Fernando Perez <fperez@colorado.edu>
5013
5020
5014 * Version 0.1.5 released, 0.1.6 opened for further work.
5021 * Version 0.1.5 released, 0.1.6 opened for further work.
5015
5022
5016 * Changed magic_env to *return* the environment as a dict (not to
5023 * Changed magic_env to *return* the environment as a dict (not to
5017 print it). This way it prints, but it can also be processed.
5024 print it). This way it prints, but it can also be processed.
5018
5025
5019 * Added Verbose exception reporting to interactive
5026 * Added Verbose exception reporting to interactive
5020 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5027 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5021 traceback. Had to make some changes to the ultraTB file. This is
5028 traceback. Had to make some changes to the ultraTB file. This is
5022 probably the last 'big' thing in my mental todo list. This ties
5029 probably the last 'big' thing in my mental todo list. This ties
5023 in with the next entry:
5030 in with the next entry:
5024
5031
5025 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5032 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5026 has to specify is Plain, Color or Verbose for all exception
5033 has to specify is Plain, Color or Verbose for all exception
5027 handling.
5034 handling.
5028
5035
5029 * Removed ShellServices option. All this can really be done via
5036 * Removed ShellServices option. All this can really be done via
5030 the magic system. It's easier to extend, cleaner and has automatic
5037 the magic system. It's easier to extend, cleaner and has automatic
5031 namespace protection and documentation.
5038 namespace protection and documentation.
5032
5039
5033 2001-11-09 Fernando Perez <fperez@colorado.edu>
5040 2001-11-09 Fernando Perez <fperez@colorado.edu>
5034
5041
5035 * Fixed bug in output cache flushing (missing parameter to
5042 * Fixed bug in output cache flushing (missing parameter to
5036 __init__). Other small bugs fixed (found using pychecker).
5043 __init__). Other small bugs fixed (found using pychecker).
5037
5044
5038 * Version 0.1.4 opened for bugfixing.
5045 * Version 0.1.4 opened for bugfixing.
5039
5046
5040 2001-11-07 Fernando Perez <fperez@colorado.edu>
5047 2001-11-07 Fernando Perez <fperez@colorado.edu>
5041
5048
5042 * Version 0.1.3 released, mainly because of the raw_input bug.
5049 * Version 0.1.3 released, mainly because of the raw_input bug.
5043
5050
5044 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5051 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5045 and when testing for whether things were callable, a call could
5052 and when testing for whether things were callable, a call could
5046 actually be made to certain functions. They would get called again
5053 actually be made to certain functions. They would get called again
5047 once 'really' executed, with a resulting double call. A disaster
5054 once 'really' executed, with a resulting double call. A disaster
5048 in many cases (list.reverse() would never work!).
5055 in many cases (list.reverse() would never work!).
5049
5056
5050 * Removed prefilter() function, moved its code to raw_input (which
5057 * Removed prefilter() function, moved its code to raw_input (which
5051 after all was just a near-empty caller for prefilter). This saves
5058 after all was just a near-empty caller for prefilter). This saves
5052 a function call on every prompt, and simplifies the class a tiny bit.
5059 a function call on every prompt, and simplifies the class a tiny bit.
5053
5060
5054 * Fix _ip to __ip name in magic example file.
5061 * Fix _ip to __ip name in magic example file.
5055
5062
5056 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5063 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5057 work with non-gnu versions of tar.
5064 work with non-gnu versions of tar.
5058
5065
5059 2001-11-06 Fernando Perez <fperez@colorado.edu>
5066 2001-11-06 Fernando Perez <fperez@colorado.edu>
5060
5067
5061 * Version 0.1.2. Just to keep track of the recent changes.
5068 * Version 0.1.2. Just to keep track of the recent changes.
5062
5069
5063 * Fixed nasty bug in output prompt routine. It used to check 'if
5070 * Fixed nasty bug in output prompt routine. It used to check 'if
5064 arg != None...'. Problem is, this fails if arg implements a
5071 arg != None...'. Problem is, this fails if arg implements a
5065 special comparison (__cmp__) which disallows comparing to
5072 special comparison (__cmp__) which disallows comparing to
5066 None. Found it when trying to use the PhysicalQuantity module from
5073 None. Found it when trying to use the PhysicalQuantity module from
5067 ScientificPython.
5074 ScientificPython.
5068
5075
5069 2001-11-05 Fernando Perez <fperez@colorado.edu>
5076 2001-11-05 Fernando Perez <fperez@colorado.edu>
5070
5077
5071 * Also added dirs. Now the pushd/popd/dirs family functions
5078 * Also added dirs. Now the pushd/popd/dirs family functions
5072 basically like the shell, with the added convenience of going home
5079 basically like the shell, with the added convenience of going home
5073 when called with no args.
5080 when called with no args.
5074
5081
5075 * pushd/popd slightly modified to mimic shell behavior more
5082 * pushd/popd slightly modified to mimic shell behavior more
5076 closely.
5083 closely.
5077
5084
5078 * Added env,pushd,popd from ShellServices as magic functions. I
5085 * Added env,pushd,popd from ShellServices as magic functions. I
5079 think the cleanest will be to port all desired functions from
5086 think the cleanest will be to port all desired functions from
5080 ShellServices as magics and remove ShellServices altogether. This
5087 ShellServices as magics and remove ShellServices altogether. This
5081 will provide a single, clean way of adding functionality
5088 will provide a single, clean way of adding functionality
5082 (shell-type or otherwise) to IP.
5089 (shell-type or otherwise) to IP.
5083
5090
5084 2001-11-04 Fernando Perez <fperez@colorado.edu>
5091 2001-11-04 Fernando Perez <fperez@colorado.edu>
5085
5092
5086 * Added .ipython/ directory to sys.path. This way users can keep
5093 * Added .ipython/ directory to sys.path. This way users can keep
5087 customizations there and access them via import.
5094 customizations there and access them via import.
5088
5095
5089 2001-11-03 Fernando Perez <fperez@colorado.edu>
5096 2001-11-03 Fernando Perez <fperez@colorado.edu>
5090
5097
5091 * Opened version 0.1.1 for new changes.
5098 * Opened version 0.1.1 for new changes.
5092
5099
5093 * Changed version number to 0.1.0: first 'public' release, sent to
5100 * Changed version number to 0.1.0: first 'public' release, sent to
5094 Nathan and Janko.
5101 Nathan and Janko.
5095
5102
5096 * Lots of small fixes and tweaks.
5103 * Lots of small fixes and tweaks.
5097
5104
5098 * Minor changes to whos format. Now strings are shown, snipped if
5105 * Minor changes to whos format. Now strings are shown, snipped if
5099 too long.
5106 too long.
5100
5107
5101 * Changed ShellServices to work on __main__ so they show up in @who
5108 * Changed ShellServices to work on __main__ so they show up in @who
5102
5109
5103 * Help also works with ? at the end of a line:
5110 * Help also works with ? at the end of a line:
5104 ?sin and sin?
5111 ?sin and sin?
5105 both produce the same effect. This is nice, as often I use the
5112 both produce the same effect. This is nice, as often I use the
5106 tab-complete to find the name of a method, but I used to then have
5113 tab-complete to find the name of a method, but I used to then have
5107 to go to the beginning of the line to put a ? if I wanted more
5114 to go to the beginning of the line to put a ? if I wanted more
5108 info. Now I can just add the ? and hit return. Convenient.
5115 info. Now I can just add the ? and hit return. Convenient.
5109
5116
5110 2001-11-02 Fernando Perez <fperez@colorado.edu>
5117 2001-11-02 Fernando Perez <fperez@colorado.edu>
5111
5118
5112 * Python version check (>=2.1) added.
5119 * Python version check (>=2.1) added.
5113
5120
5114 * Added LazyPython documentation. At this point the docs are quite
5121 * Added LazyPython documentation. At this point the docs are quite
5115 a mess. A cleanup is in order.
5122 a mess. A cleanup is in order.
5116
5123
5117 * Auto-installer created. For some bizarre reason, the zipfiles
5124 * Auto-installer created. For some bizarre reason, the zipfiles
5118 module isn't working on my system. So I made a tar version
5125 module isn't working on my system. So I made a tar version
5119 (hopefully the command line options in various systems won't kill
5126 (hopefully the command line options in various systems won't kill
5120 me).
5127 me).
5121
5128
5122 * Fixes to Struct in genutils. Now all dictionary-like methods are
5129 * Fixes to Struct in genutils. Now all dictionary-like methods are
5123 protected (reasonably).
5130 protected (reasonably).
5124
5131
5125 * Added pager function to genutils and changed ? to print usage
5132 * Added pager function to genutils and changed ? to print usage
5126 note through it (it was too long).
5133 note through it (it was too long).
5127
5134
5128 * Added the LazyPython functionality. Works great! I changed the
5135 * Added the LazyPython functionality. Works great! I changed the
5129 auto-quote escape to ';', it's on home row and next to '. But
5136 auto-quote escape to ';', it's on home row and next to '. But
5130 both auto-quote and auto-paren (still /) escapes are command-line
5137 both auto-quote and auto-paren (still /) escapes are command-line
5131 parameters.
5138 parameters.
5132
5139
5133
5140
5134 2001-11-01 Fernando Perez <fperez@colorado.edu>
5141 2001-11-01 Fernando Perez <fperez@colorado.edu>
5135
5142
5136 * Version changed to 0.0.7. Fairly large change: configuration now
5143 * Version changed to 0.0.7. Fairly large change: configuration now
5137 is all stored in a directory, by default .ipython. There, all
5144 is all stored in a directory, by default .ipython. There, all
5138 config files have normal looking names (not .names)
5145 config files have normal looking names (not .names)
5139
5146
5140 * Version 0.0.6 Released first to Lucas and Archie as a test
5147 * Version 0.0.6 Released first to Lucas and Archie as a test
5141 run. Since it's the first 'semi-public' release, change version to
5148 run. Since it's the first 'semi-public' release, change version to
5142 > 0.0.6 for any changes now.
5149 > 0.0.6 for any changes now.
5143
5150
5144 * Stuff I had put in the ipplib.py changelog:
5151 * Stuff I had put in the ipplib.py changelog:
5145
5152
5146 Changes to InteractiveShell:
5153 Changes to InteractiveShell:
5147
5154
5148 - Made the usage message a parameter.
5155 - Made the usage message a parameter.
5149
5156
5150 - Require the name of the shell variable to be given. It's a bit
5157 - Require the name of the shell variable to be given. It's a bit
5151 of a hack, but allows the name 'shell' not to be hardwire in the
5158 of a hack, but allows the name 'shell' not to be hardwire in the
5152 magic (@) handler, which is problematic b/c it requires
5159 magic (@) handler, which is problematic b/c it requires
5153 polluting the global namespace with 'shell'. This in turn is
5160 polluting the global namespace with 'shell'. This in turn is
5154 fragile: if a user redefines a variable called shell, things
5161 fragile: if a user redefines a variable called shell, things
5155 break.
5162 break.
5156
5163
5157 - magic @: all functions available through @ need to be defined
5164 - magic @: all functions available through @ need to be defined
5158 as magic_<name>, even though they can be called simply as
5165 as magic_<name>, even though they can be called simply as
5159 @<name>. This allows the special command @magic to gather
5166 @<name>. This allows the special command @magic to gather
5160 information automatically about all existing magic functions,
5167 information automatically about all existing magic functions,
5161 even if they are run-time user extensions, by parsing the shell
5168 even if they are run-time user extensions, by parsing the shell
5162 instance __dict__ looking for special magic_ names.
5169 instance __dict__ looking for special magic_ names.
5163
5170
5164 - mainloop: added *two* local namespace parameters. This allows
5171 - mainloop: added *two* local namespace parameters. This allows
5165 the class to differentiate between parameters which were there
5172 the class to differentiate between parameters which were there
5166 before and after command line initialization was processed. This
5173 before and after command line initialization was processed. This
5167 way, later @who can show things loaded at startup by the
5174 way, later @who can show things loaded at startup by the
5168 user. This trick was necessary to make session saving/reloading
5175 user. This trick was necessary to make session saving/reloading
5169 really work: ideally after saving/exiting/reloading a session,
5176 really work: ideally after saving/exiting/reloading a session,
5170 *everythin* should look the same, including the output of @who. I
5177 *everythin* should look the same, including the output of @who. I
5171 was only able to make this work with this double namespace
5178 was only able to make this work with this double namespace
5172 trick.
5179 trick.
5173
5180
5174 - added a header to the logfile which allows (almost) full
5181 - added a header to the logfile which allows (almost) full
5175 session restoring.
5182 session restoring.
5176
5183
5177 - prepend lines beginning with @ or !, with a and log
5184 - prepend lines beginning with @ or !, with a and log
5178 them. Why? !lines: may be useful to know what you did @lines:
5185 them. Why? !lines: may be useful to know what you did @lines:
5179 they may affect session state. So when restoring a session, at
5186 they may affect session state. So when restoring a session, at
5180 least inform the user of their presence. I couldn't quite get
5187 least inform the user of their presence. I couldn't quite get
5181 them to properly re-execute, but at least the user is warned.
5188 them to properly re-execute, but at least the user is warned.
5182
5189
5183 * Started ChangeLog.
5190 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now