##// END OF EJS Templates
Add quotes in the editor hook so that editor commands with spaces in them...
fperez -
Show More
@@ -1,184 +1,184 b''
1 """hooks for IPython.
1 """hooks for IPython.
2
2
3 In Python, it is possible to overwrite any method of any object if you really
3 In Python, it is possible to overwrite any method of any object if you really
4 want to. But IPython exposes a few 'hooks', methods which are _designed_ to
4 want to. But IPython exposes a few 'hooks', methods which are _designed_ to
5 be overwritten by users for customization purposes. This module defines the
5 be overwritten by users for customization purposes. This module defines the
6 default versions of all such hooks, which get used by IPython if not
6 default versions of all such hooks, which get used by IPython if not
7 overridden by the user.
7 overridden by the user.
8
8
9 hooks are simple functions, but they should be declared with 'self' as their
9 hooks are simple functions, but they should be declared with 'self' as their
10 first argument, because when activated they are registered into IPython as
10 first argument, because when activated they are registered into IPython as
11 instance methods. The self argument will be the IPython running instance
11 instance methods. The self argument will be the IPython running instance
12 itself, so hooks have full access to the entire IPython object.
12 itself, so hooks have full access to the entire IPython object.
13
13
14 If you wish to define a new hook and activate it, you need to put the
14 If you wish to define a new hook and activate it, you need to put the
15 necessary code into a python file which can be either imported or execfile()'d
15 necessary code into a python file which can be either imported or execfile()'d
16 from within your ipythonrc configuration.
16 from within your ipythonrc configuration.
17
17
18 For example, suppose that you have a module called 'myiphooks' in your
18 For example, suppose that you have a module called 'myiphooks' in your
19 PYTHONPATH, which contains the following definition:
19 PYTHONPATH, which contains the following definition:
20
20
21 import os
21 import os
22 import IPython.ipapi
22 import IPython.ipapi
23 ip = IPython.ipapi.get()
23 ip = IPython.ipapi.get()
24
24
25 def calljed(self,filename, linenum):
25 def calljed(self,filename, linenum):
26 "My editor hook calls the jed editor directly."
26 "My editor hook calls the jed editor directly."
27 print "Calling my own editor, jed ..."
27 print "Calling my own editor, jed ..."
28 os.system('jed +%d %s' % (linenum,filename))
28 os.system('jed +%d %s' % (linenum,filename))
29
29
30 ip.set_hook('editor', calljed)
30 ip.set_hook('editor', calljed)
31
31
32 You can then enable the functionality by doing 'import myiphooks'
32 You can then enable the functionality by doing 'import myiphooks'
33 somewhere in your configuration files or ipython command line.
33 somewhere in your configuration files or ipython command line.
34
34
35 $Id: hooks.py 1107 2006-01-30 19:02:20Z vivainio $"""
35 $Id: hooks.py 1156 2006-02-12 02:30:36Z fperez $"""
36
36
37 #*****************************************************************************
37 #*****************************************************************************
38 # Copyright (C) 2005 Fernando Perez. <fperez@colorado.edu>
38 # Copyright (C) 2005 Fernando Perez. <fperez@colorado.edu>
39 #
39 #
40 # Distributed under the terms of the BSD License. The full license is in
40 # Distributed under the terms of the BSD License. The full license is in
41 # the file COPYING, distributed as part of this software.
41 # the file COPYING, distributed as part of this software.
42 #*****************************************************************************
42 #*****************************************************************************
43
43
44 from IPython import Release
44 from IPython import Release
45 from IPython import ipapi
45 from IPython import ipapi
46 __author__ = '%s <%s>' % Release.authors['Fernando']
46 __author__ = '%s <%s>' % Release.authors['Fernando']
47 __license__ = Release.license
47 __license__ = Release.license
48 __version__ = Release.version
48 __version__ = Release.version
49
49
50 import os,bisect
50 import os,bisect
51 from genutils import Term
51 from genutils import Term
52 from pprint import pformat
52 from pprint import pformat
53
53
54 # List here all the default hooks. For now it's just the editor functions
54 # List here all the default hooks. For now it's just the editor functions
55 # but over time we'll move here all the public API for user-accessible things.
55 # but over time we'll move here all the public API for user-accessible things.
56 __all__ = ['editor', 'fix_error_editor', 'result_display',
56 __all__ = ['editor', 'fix_error_editor', 'result_display',
57 'input_prefilter', 'shutdown_hook', 'late_startup_hook']
57 'input_prefilter', 'shutdown_hook', 'late_startup_hook']
58
58
59 def editor(self,filename, linenum=None):
59 def editor(self,filename, linenum=None):
60 """Open the default editor at the given filename and linenumber.
60 """Open the default editor at the given filename and linenumber.
61
61
62 This is IPython's default editor hook, you can use it as an example to
62 This is IPython's default editor hook, you can use it as an example to
63 write your own modified one. To set your own editor function as the
63 write your own modified one. To set your own editor function as the
64 new editor hook, call ip.set_hook('editor',yourfunc)."""
64 new editor hook, call ip.set_hook('editor',yourfunc)."""
65
65
66 # IPython configures a default editor at startup by reading $EDITOR from
66 # IPython configures a default editor at startup by reading $EDITOR from
67 # the environment, and falling back on vi (unix) or notepad (win32).
67 # the environment, and falling back on vi (unix) or notepad (win32).
68 editor = self.rc.editor
68 editor = self.rc.editor
69
69
70 # marker for at which line to open the file (for existing objects)
70 # marker for at which line to open the file (for existing objects)
71 if linenum is None or editor=='notepad':
71 if linenum is None or editor=='notepad':
72 linemark = ''
72 linemark = ''
73 else:
73 else:
74 linemark = '+%d' % linenum
74 linemark = '+%d' % linenum
75 # Call the actual editor
75 # Call the actual editor
76 os.system('%s %s %s' % (editor,linemark,filename))
76 os.system('"%s" %s %s' % (editor,linemark,filename))
77
77
78 import tempfile
78 import tempfile
79 def fix_error_editor(self,filename,linenum,column,msg):
79 def fix_error_editor(self,filename,linenum,column,msg):
80 """Open the editor at the given filename, linenumber, column and
80 """Open the editor at the given filename, linenumber, column and
81 show an error message. This is used for correcting syntax errors.
81 show an error message. This is used for correcting syntax errors.
82 The current implementation only has special support for the VIM editor,
82 The current implementation only has special support for the VIM editor,
83 and falls back on the 'editor' hook if VIM is not used.
83 and falls back on the 'editor' hook if VIM is not used.
84
84
85 Call ip.set_hook('fix_error_editor',youfunc) to use your own function,
85 Call ip.set_hook('fix_error_editor',youfunc) to use your own function,
86 """
86 """
87 def vim_quickfix_file():
87 def vim_quickfix_file():
88 t = tempfile.NamedTemporaryFile()
88 t = tempfile.NamedTemporaryFile()
89 t.write('%s:%d:%d:%s\n' % (filename,linenum,column,msg))
89 t.write('%s:%d:%d:%s\n' % (filename,linenum,column,msg))
90 t.flush()
90 t.flush()
91 return t
91 return t
92 if os.path.basename(self.rc.editor) != 'vim':
92 if os.path.basename(self.rc.editor) != 'vim':
93 self.hooks.editor(filename,linenum)
93 self.hooks.editor(filename,linenum)
94 return
94 return
95 t = vim_quickfix_file()
95 t = vim_quickfix_file()
96 try:
96 try:
97 os.system('vim --cmd "set errorformat=%f:%l:%c:%m" -q ' + t.name)
97 os.system('vim --cmd "set errorformat=%f:%l:%c:%m" -q ' + t.name)
98 finally:
98 finally:
99 t.close()
99 t.close()
100
100
101
101
102 class CommandChainDispatcher:
102 class CommandChainDispatcher:
103 """ Dispatch calls to a chain of commands until some func can handle it
103 """ Dispatch calls to a chain of commands until some func can handle it
104
104
105 Usage: instantiate, execute "add" to add commands (with optional
105 Usage: instantiate, execute "add" to add commands (with optional
106 priority), execute normally via f() calling mechanism.
106 priority), execute normally via f() calling mechanism.
107
107
108 """
108 """
109 def __init__(self,commands=None):
109 def __init__(self,commands=None):
110 if commands is None:
110 if commands is None:
111 self.chain = []
111 self.chain = []
112 else:
112 else:
113 self.chain = commands
113 self.chain = commands
114
114
115
115
116 def __call__(self,*args, **kw):
116 def __call__(self,*args, **kw):
117 """ Command chain is called just like normal func.
117 """ Command chain is called just like normal func.
118
118
119 This will call all funcs in chain with the same args as were given to this
119 This will call all funcs in chain with the same args as were given to this
120 function, and return the result of first func that didn't raise
120 function, and return the result of first func that didn't raise
121 TryNext """
121 TryNext """
122
122
123 for prio,cmd in self.chain:
123 for prio,cmd in self.chain:
124 #print "prio",prio,"cmd",cmd #dbg
124 #print "prio",prio,"cmd",cmd #dbg
125 try:
125 try:
126 ret = cmd(*args, **kw)
126 ret = cmd(*args, **kw)
127 return ret
127 return ret
128 except ipapi.TryNext:
128 except ipapi.TryNext:
129 pass
129 pass
130
130
131 def __str__(self):
131 def __str__(self):
132 return str(self.chain)
132 return str(self.chain)
133
133
134 def add(self, func, priority=0):
134 def add(self, func, priority=0):
135 """ Add a func to the cmd chain with given priority """
135 """ Add a func to the cmd chain with given priority """
136 bisect.insort(self.chain,(priority,func))
136 bisect.insort(self.chain,(priority,func))
137
137
138 def result_display(self,arg):
138 def result_display(self,arg):
139 """ Default display hook.
139 """ Default display hook.
140
140
141 Called for displaying the result to the user.
141 Called for displaying the result to the user.
142 """
142 """
143
143
144 if self.rc.pprint:
144 if self.rc.pprint:
145 out = pformat(arg)
145 out = pformat(arg)
146 if '\n' in out:
146 if '\n' in out:
147 # So that multi-line strings line up with the left column of
147 # So that multi-line strings line up with the left column of
148 # the screen, instead of having the output prompt mess up
148 # the screen, instead of having the output prompt mess up
149 # their first line.
149 # their first line.
150 Term.cout.write('\n')
150 Term.cout.write('\n')
151 print >>Term.cout, out
151 print >>Term.cout, out
152 else:
152 else:
153 print >>Term.cout, arg
153 print >>Term.cout, arg
154 # the default display hook doesn't manipulate the value to put in history
154 # the default display hook doesn't manipulate the value to put in history
155 return None
155 return None
156
156
157 def input_prefilter(self,line):
157 def input_prefilter(self,line):
158 """ Default input prefilter
158 """ Default input prefilter
159
159
160 This returns the line as unchanged, so that the interpreter
160 This returns the line as unchanged, so that the interpreter
161 knows that nothing was done and proceeds with "classic" prefiltering
161 knows that nothing was done and proceeds with "classic" prefiltering
162 (%magics, !shell commands etc.).
162 (%magics, !shell commands etc.).
163
163
164 Note that leading whitespace is not passed to this hook. Prefilter
164 Note that leading whitespace is not passed to this hook. Prefilter
165 can't alter indentation.
165 can't alter indentation.
166
166
167 """
167 """
168 #print "attempt to rewrite",line #dbg
168 #print "attempt to rewrite",line #dbg
169 return line
169 return line
170
170
171 def shutdown_hook(self):
171 def shutdown_hook(self):
172 """ default shutdown hook
172 """ default shutdown hook
173
173
174 Typically, shotdown hooks should raise TryNext so all shutdown ops are done
174 Typically, shotdown hooks should raise TryNext so all shutdown ops are done
175 """
175 """
176
176
177 #print "default shutdown hook ok" # dbg
177 #print "default shutdown hook ok" # dbg
178 return
178 return
179
179
180 def late_startup_hook(self):
180 def late_startup_hook(self):
181 """ Executed after ipython has been constructed and configured
181 """ Executed after ipython has been constructed and configured
182
182
183 """
183 """
184 #print "default startup hook ok" # dbg
184 #print "default startup hook ok" # dbg
@@ -1,5207 +1,5212 b''
1 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
2
2
3 * IPython/hooks.py (editor): quote the call to the editor command,
4 to allow commands with spaces in them. Problem noted by watching
5 Ian Oswald's video about textpad under win32 at
6 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
7
3 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
8 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
4 describing magics (we haven't used @ for a loong time).
9 describing magics (we haven't used @ for a loong time).
5
10
6 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
11 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
7 contributed by marienz to close
12 contributed by marienz to close
8 http://www.scipy.net/roundup/ipython/issue53.
13 http://www.scipy.net/roundup/ipython/issue53.
9
14
10 2006-02-10 Ville Vainio <vivainio@gmail.com>
15 2006-02-10 Ville Vainio <vivainio@gmail.com>
11
16
12 * genutils.py: getoutput now works in win32 too
17 * genutils.py: getoutput now works in win32 too
13
18
14 * completer.py: alias and magic completion only invoked
19 * completer.py: alias and magic completion only invoked
15 at the first "item" in the line, to avoid "cd %store"
20 at the first "item" in the line, to avoid "cd %store"
16 nonsense.
21 nonsense.
17
22
18 2006-02-09 Ville Vainio <vivainio@gmail.com>
23 2006-02-09 Ville Vainio <vivainio@gmail.com>
19
24
20 * test/*: Added a unit testing framework (finally).
25 * test/*: Added a unit testing framework (finally).
21 '%run runtests.py' to run test_*.
26 '%run runtests.py' to run test_*.
22
27
23 * ipapi.py: Exposed runlines and set_custom_exc
28 * ipapi.py: Exposed runlines and set_custom_exc
24
29
25 2006-02-07 Ville Vainio <vivainio@gmail.com>
30 2006-02-07 Ville Vainio <vivainio@gmail.com>
26
31
27 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
32 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
28 instead use "f(1 2)" as before.
33 instead use "f(1 2)" as before.
29
34
30 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
35 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
31
36
32 * IPython/demo.py (IPythonDemo): Add new classes to the demo
37 * IPython/demo.py (IPythonDemo): Add new classes to the demo
33 facilities, for demos processed by the IPython input filter
38 facilities, for demos processed by the IPython input filter
34 (IPythonDemo), and for running a script one-line-at-a-time as a
39 (IPythonDemo), and for running a script one-line-at-a-time as a
35 demo, both for pure Python (LineDemo) and for IPython-processed
40 demo, both for pure Python (LineDemo) and for IPython-processed
36 input (IPythonLineDemo). After a request by Dave Kohel, from the
41 input (IPythonLineDemo). After a request by Dave Kohel, from the
37 SAGE team.
42 SAGE team.
38 (Demo.edit): added and edit() method to the demo objects, to edit
43 (Demo.edit): added and edit() method to the demo objects, to edit
39 the in-memory copy of the last executed block.
44 the in-memory copy of the last executed block.
40
45
41 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
46 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
42 processing to %edit, %macro and %save. These commands can now be
47 processing to %edit, %macro and %save. These commands can now be
43 invoked on the unprocessed input as it was typed by the user
48 invoked on the unprocessed input as it was typed by the user
44 (without any prefilters applied). After requests by the SAGE team
49 (without any prefilters applied). After requests by the SAGE team
45 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
50 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
46
51
47 2006-02-01 Ville Vainio <vivainio@gmail.com>
52 2006-02-01 Ville Vainio <vivainio@gmail.com>
48
53
49 * setup.py, eggsetup.py: easy_install ipython==dev works
54 * setup.py, eggsetup.py: easy_install ipython==dev works
50 correctly now (on Linux)
55 correctly now (on Linux)
51
56
52 * ipy_user_conf,ipmaker: user config changes, removed spurious
57 * ipy_user_conf,ipmaker: user config changes, removed spurious
53 warnings
58 warnings
54
59
55 * iplib: if rc.banner is string, use it as is.
60 * iplib: if rc.banner is string, use it as is.
56
61
57 * Magic: %pycat accepts a string argument and pages it's contents.
62 * Magic: %pycat accepts a string argument and pages it's contents.
58
63
59
64
60 2006-01-30 Ville Vainio <vivainio@gmail.com>
65 2006-01-30 Ville Vainio <vivainio@gmail.com>
61
66
62 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
67 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
63 Now %store and bookmarks work through PickleShare, meaning that
68 Now %store and bookmarks work through PickleShare, meaning that
64 concurrent access is possible and all ipython sessions see the
69 concurrent access is possible and all ipython sessions see the
65 same database situation all the time, instead of snapshot of
70 same database situation all the time, instead of snapshot of
66 the situation when the session was started. Hence, %bookmark
71 the situation when the session was started. Hence, %bookmark
67 results are immediately accessible from othes sessions. The database
72 results are immediately accessible from othes sessions. The database
68 is also available for use by user extensions. See:
73 is also available for use by user extensions. See:
69 http://www.python.org/pypi/pickleshare
74 http://www.python.org/pypi/pickleshare
70
75
71 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
76 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
72
77
73 * aliases can now be %store'd
78 * aliases can now be %store'd
74
79
75 * path.py move to Extensions so that pickleshare does not need
80 * path.py move to Extensions so that pickleshare does not need
76 IPython-specific import. Extensions added to pythonpath right
81 IPython-specific import. Extensions added to pythonpath right
77 at __init__.
82 at __init__.
78
83
79 * iplib.py: ipalias deprecated/redundant; aliases are converted and
84 * iplib.py: ipalias deprecated/redundant; aliases are converted and
80 called with _ip.system and the pre-transformed command string.
85 called with _ip.system and the pre-transformed command string.
81
86
82 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
87 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
83
88
84 * IPython/iplib.py (interact): Fix that we were not catching
89 * IPython/iplib.py (interact): Fix that we were not catching
85 KeyboardInterrupt exceptions properly. I'm not quite sure why the
90 KeyboardInterrupt exceptions properly. I'm not quite sure why the
86 logic here had to change, but it's fixed now.
91 logic here had to change, but it's fixed now.
87
92
88 2006-01-29 Ville Vainio <vivainio@gmail.com>
93 2006-01-29 Ville Vainio <vivainio@gmail.com>
89
94
90 * iplib.py: Try to import pyreadline on Windows.
95 * iplib.py: Try to import pyreadline on Windows.
91
96
92 2006-01-27 Ville Vainio <vivainio@gmail.com>
97 2006-01-27 Ville Vainio <vivainio@gmail.com>
93
98
94 * iplib.py: Expose ipapi as _ip in builtin namespace.
99 * iplib.py: Expose ipapi as _ip in builtin namespace.
95 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
100 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
96 and ip_set_hook (-> _ip.set_hook) redundant. % and !
101 and ip_set_hook (-> _ip.set_hook) redundant. % and !
97 syntax now produce _ip.* variant of the commands.
102 syntax now produce _ip.* variant of the commands.
98
103
99 * "_ip.options().autoedit_syntax = 2" automatically throws
104 * "_ip.options().autoedit_syntax = 2" automatically throws
100 user to editor for syntax error correction without prompting.
105 user to editor for syntax error correction without prompting.
101
106
102 2006-01-27 Ville Vainio <vivainio@gmail.com>
107 2006-01-27 Ville Vainio <vivainio@gmail.com>
103
108
104 * ipmaker.py: Give "realistic" sys.argv for scripts (without
109 * ipmaker.py: Give "realistic" sys.argv for scripts (without
105 'ipython' at argv[0]) executed through command line.
110 'ipython' at argv[0]) executed through command line.
106 NOTE: this DEPRECATES calling ipython with multiple scripts
111 NOTE: this DEPRECATES calling ipython with multiple scripts
107 ("ipython a.py b.py c.py")
112 ("ipython a.py b.py c.py")
108
113
109 * iplib.py, hooks.py: Added configurable input prefilter,
114 * iplib.py, hooks.py: Added configurable input prefilter,
110 named 'input_prefilter'. See ext_rescapture.py for example
115 named 'input_prefilter'. See ext_rescapture.py for example
111 usage.
116 usage.
112
117
113 * ext_rescapture.py, Magic.py: Better system command output capture
118 * ext_rescapture.py, Magic.py: Better system command output capture
114 through 'var = !ls' (deprecates user-visible %sc). Same notation
119 through 'var = !ls' (deprecates user-visible %sc). Same notation
115 applies for magics, 'var = %alias' assigns alias list to var.
120 applies for magics, 'var = %alias' assigns alias list to var.
116
121
117 * ipapi.py: added meta() for accessing extension-usable data store.
122 * ipapi.py: added meta() for accessing extension-usable data store.
118
123
119 * iplib.py: added InteractiveShell.getapi(). New magics should be
124 * iplib.py: added InteractiveShell.getapi(). New magics should be
120 written doing self.getapi() instead of using the shell directly.
125 written doing self.getapi() instead of using the shell directly.
121
126
122 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
127 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
123 %store foo >> ~/myfoo.txt to store variables to files (in clean
128 %store foo >> ~/myfoo.txt to store variables to files (in clean
124 textual form, not a restorable pickle).
129 textual form, not a restorable pickle).
125
130
126 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
131 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
127
132
128 * usage.py, Magic.py: added %quickref
133 * usage.py, Magic.py: added %quickref
129
134
130 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
135 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
131
136
132 * GetoptErrors when invoking magics etc. with wrong args
137 * GetoptErrors when invoking magics etc. with wrong args
133 are now more helpful:
138 are now more helpful:
134 GetoptError: option -l not recognized (allowed: "qb" )
139 GetoptError: option -l not recognized (allowed: "qb" )
135
140
136 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
141 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
137
142
138 * IPython/demo.py (Demo.show): Flush stdout after each block, so
143 * IPython/demo.py (Demo.show): Flush stdout after each block, so
139 computationally intensive blocks don't appear to stall the demo.
144 computationally intensive blocks don't appear to stall the demo.
140
145
141 2006-01-24 Ville Vainio <vivainio@gmail.com>
146 2006-01-24 Ville Vainio <vivainio@gmail.com>
142
147
143 * iplib.py, hooks.py: 'result_display' hook can return a non-None
148 * iplib.py, hooks.py: 'result_display' hook can return a non-None
144 value to manipulate resulting history entry.
149 value to manipulate resulting history entry.
145
150
146 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
151 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
147 to instance methods of IPApi class, to make extending an embedded
152 to instance methods of IPApi class, to make extending an embedded
148 IPython feasible. See ext_rehashdir.py for example usage.
153 IPython feasible. See ext_rehashdir.py for example usage.
149
154
150 * Merged 1071-1076 from banches/0.7.1
155 * Merged 1071-1076 from banches/0.7.1
151
156
152
157
153 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
158 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
154
159
155 * tools/release (daystamp): Fix build tools to use the new
160 * tools/release (daystamp): Fix build tools to use the new
156 eggsetup.py script to build lightweight eggs.
161 eggsetup.py script to build lightweight eggs.
157
162
158 * Applied changesets 1062 and 1064 before 0.7.1 release.
163 * Applied changesets 1062 and 1064 before 0.7.1 release.
159
164
160 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
165 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
161 see the raw input history (without conversions like %ls ->
166 see the raw input history (without conversions like %ls ->
162 ipmagic("ls")). After a request from W. Stein, SAGE
167 ipmagic("ls")). After a request from W. Stein, SAGE
163 (http://modular.ucsd.edu/sage) developer. This information is
168 (http://modular.ucsd.edu/sage) developer. This information is
164 stored in the input_hist_raw attribute of the IPython instance, so
169 stored in the input_hist_raw attribute of the IPython instance, so
165 developers can access it if needed (it's an InputList instance).
170 developers can access it if needed (it's an InputList instance).
166
171
167 * Versionstring = 0.7.2.svn
172 * Versionstring = 0.7.2.svn
168
173
169 * eggsetup.py: A separate script for constructing eggs, creates
174 * eggsetup.py: A separate script for constructing eggs, creates
170 proper launch scripts even on Windows (an .exe file in
175 proper launch scripts even on Windows (an .exe file in
171 \python24\scripts).
176 \python24\scripts).
172
177
173 * ipapi.py: launch_new_instance, launch entry point needed for the
178 * ipapi.py: launch_new_instance, launch entry point needed for the
174 egg.
179 egg.
175
180
176 2006-01-23 Ville Vainio <vivainio@gmail.com>
181 2006-01-23 Ville Vainio <vivainio@gmail.com>
177
182
178 * Added %cpaste magic for pasting python code
183 * Added %cpaste magic for pasting python code
179
184
180 2006-01-22 Ville Vainio <vivainio@gmail.com>
185 2006-01-22 Ville Vainio <vivainio@gmail.com>
181
186
182 * Merge from branches/0.7.1 into trunk, revs 1052-1057
187 * Merge from branches/0.7.1 into trunk, revs 1052-1057
183
188
184 * Versionstring = 0.7.2.svn
189 * Versionstring = 0.7.2.svn
185
190
186 * eggsetup.py: A separate script for constructing eggs, creates
191 * eggsetup.py: A separate script for constructing eggs, creates
187 proper launch scripts even on Windows (an .exe file in
192 proper launch scripts even on Windows (an .exe file in
188 \python24\scripts).
193 \python24\scripts).
189
194
190 * ipapi.py: launch_new_instance, launch entry point needed for the
195 * ipapi.py: launch_new_instance, launch entry point needed for the
191 egg.
196 egg.
192
197
193 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
198 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
194
199
195 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
200 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
196 %pfile foo would print the file for foo even if it was a binary.
201 %pfile foo would print the file for foo even if it was a binary.
197 Now, extensions '.so' and '.dll' are skipped.
202 Now, extensions '.so' and '.dll' are skipped.
198
203
199 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
204 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
200 bug, where macros would fail in all threaded modes. I'm not 100%
205 bug, where macros would fail in all threaded modes. I'm not 100%
201 sure, so I'm going to put out an rc instead of making a release
206 sure, so I'm going to put out an rc instead of making a release
202 today, and wait for feedback for at least a few days.
207 today, and wait for feedback for at least a few days.
203
208
204 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
209 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
205 it...) the handling of pasting external code with autoindent on.
210 it...) the handling of pasting external code with autoindent on.
206 To get out of a multiline input, the rule will appear for most
211 To get out of a multiline input, the rule will appear for most
207 users unchanged: two blank lines or change the indent level
212 users unchanged: two blank lines or change the indent level
208 proposed by IPython. But there is a twist now: you can
213 proposed by IPython. But there is a twist now: you can
209 add/subtract only *one or two spaces*. If you add/subtract three
214 add/subtract only *one or two spaces*. If you add/subtract three
210 or more (unless you completely delete the line), IPython will
215 or more (unless you completely delete the line), IPython will
211 accept that line, and you'll need to enter a second one of pure
216 accept that line, and you'll need to enter a second one of pure
212 whitespace. I know it sounds complicated, but I can't find a
217 whitespace. I know it sounds complicated, but I can't find a
213 different solution that covers all the cases, with the right
218 different solution that covers all the cases, with the right
214 heuristics. Hopefully in actual use, nobody will really notice
219 heuristics. Hopefully in actual use, nobody will really notice
215 all these strange rules and things will 'just work'.
220 all these strange rules and things will 'just work'.
216
221
217 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
222 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
218
223
219 * IPython/iplib.py (interact): catch exceptions which can be
224 * IPython/iplib.py (interact): catch exceptions which can be
220 triggered asynchronously by signal handlers. Thanks to an
225 triggered asynchronously by signal handlers. Thanks to an
221 automatic crash report, submitted by Colin Kingsley
226 automatic crash report, submitted by Colin Kingsley
222 <tercel-AT-gentoo.org>.
227 <tercel-AT-gentoo.org>.
223
228
224 2006-01-20 Ville Vainio <vivainio@gmail.com>
229 2006-01-20 Ville Vainio <vivainio@gmail.com>
225
230
226 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
231 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
227 (%rehashdir, very useful, try it out) of how to extend ipython
232 (%rehashdir, very useful, try it out) of how to extend ipython
228 with new magics. Also added Extensions dir to pythonpath to make
233 with new magics. Also added Extensions dir to pythonpath to make
229 importing extensions easy.
234 importing extensions easy.
230
235
231 * %store now complains when trying to store interactively declared
236 * %store now complains when trying to store interactively declared
232 classes / instances of those classes.
237 classes / instances of those classes.
233
238
234 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
239 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
235 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
240 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
236 if they exist, and ipy_user_conf.py with some defaults is created for
241 if they exist, and ipy_user_conf.py with some defaults is created for
237 the user.
242 the user.
238
243
239 * Startup rehashing done by the config file, not InterpreterExec.
244 * Startup rehashing done by the config file, not InterpreterExec.
240 This means system commands are available even without selecting the
245 This means system commands are available even without selecting the
241 pysh profile. It's the sensible default after all.
246 pysh profile. It's the sensible default after all.
242
247
243 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
248 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
244
249
245 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
250 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
246 multiline code with autoindent on working. But I am really not
251 multiline code with autoindent on working. But I am really not
247 sure, so this needs more testing. Will commit a debug-enabled
252 sure, so this needs more testing. Will commit a debug-enabled
248 version for now, while I test it some more, so that Ville and
253 version for now, while I test it some more, so that Ville and
249 others may also catch any problems. Also made
254 others may also catch any problems. Also made
250 self.indent_current_str() a method, to ensure that there's no
255 self.indent_current_str() a method, to ensure that there's no
251 chance of the indent space count and the corresponding string
256 chance of the indent space count and the corresponding string
252 falling out of sync. All code needing the string should just call
257 falling out of sync. All code needing the string should just call
253 the method.
258 the method.
254
259
255 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
260 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
256
261
257 * IPython/Magic.py (magic_edit): fix check for when users don't
262 * IPython/Magic.py (magic_edit): fix check for when users don't
258 save their output files, the try/except was in the wrong section.
263 save their output files, the try/except was in the wrong section.
259
264
260 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
265 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
261
266
262 * IPython/Magic.py (magic_run): fix __file__ global missing from
267 * IPython/Magic.py (magic_run): fix __file__ global missing from
263 script's namespace when executed via %run. After a report by
268 script's namespace when executed via %run. After a report by
264 Vivian.
269 Vivian.
265
270
266 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
271 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
267 when using python 2.4. The parent constructor changed in 2.4, and
272 when using python 2.4. The parent constructor changed in 2.4, and
268 we need to track it directly (we can't call it, as it messes up
273 we need to track it directly (we can't call it, as it messes up
269 readline and tab-completion inside our pdb would stop working).
274 readline and tab-completion inside our pdb would stop working).
270 After a bug report by R. Bernstein <rocky-AT-panix.com>.
275 After a bug report by R. Bernstein <rocky-AT-panix.com>.
271
276
272 2006-01-16 Ville Vainio <vivainio@gmail.com>
277 2006-01-16 Ville Vainio <vivainio@gmail.com>
273
278
274 * Ipython/magic.py:Reverted back to old %edit functionality
279 * Ipython/magic.py:Reverted back to old %edit functionality
275 that returns file contents on exit.
280 that returns file contents on exit.
276
281
277 * IPython/path.py: Added Jason Orendorff's "path" module to
282 * IPython/path.py: Added Jason Orendorff's "path" module to
278 IPython tree, http://www.jorendorff.com/articles/python/path/.
283 IPython tree, http://www.jorendorff.com/articles/python/path/.
279 You can get path objects conveniently through %sc, and !!, e.g.:
284 You can get path objects conveniently through %sc, and !!, e.g.:
280 sc files=ls
285 sc files=ls
281 for p in files.paths: # or files.p
286 for p in files.paths: # or files.p
282 print p,p.mtime
287 print p,p.mtime
283
288
284 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
289 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
285 now work again without considering the exclusion regexp -
290 now work again without considering the exclusion regexp -
286 hence, things like ',foo my/path' turn to 'foo("my/path")'
291 hence, things like ',foo my/path' turn to 'foo("my/path")'
287 instead of syntax error.
292 instead of syntax error.
288
293
289
294
290 2006-01-14 Ville Vainio <vivainio@gmail.com>
295 2006-01-14 Ville Vainio <vivainio@gmail.com>
291
296
292 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
297 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
293 ipapi decorators for python 2.4 users, options() provides access to rc
298 ipapi decorators for python 2.4 users, options() provides access to rc
294 data.
299 data.
295
300
296 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
301 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
297 as path separators (even on Linux ;-). Space character after
302 as path separators (even on Linux ;-). Space character after
298 backslash (as yielded by tab completer) is still space;
303 backslash (as yielded by tab completer) is still space;
299 "%cd long\ name" works as expected.
304 "%cd long\ name" works as expected.
300
305
301 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
306 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
302 as "chain of command", with priority. API stays the same,
307 as "chain of command", with priority. API stays the same,
303 TryNext exception raised by a hook function signals that
308 TryNext exception raised by a hook function signals that
304 current hook failed and next hook should try handling it, as
309 current hook failed and next hook should try handling it, as
305 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
310 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
306 requested configurable display hook, which is now implemented.
311 requested configurable display hook, which is now implemented.
307
312
308 2006-01-13 Ville Vainio <vivainio@gmail.com>
313 2006-01-13 Ville Vainio <vivainio@gmail.com>
309
314
310 * IPython/platutils*.py: platform specific utility functions,
315 * IPython/platutils*.py: platform specific utility functions,
311 so far only set_term_title is implemented (change terminal
316 so far only set_term_title is implemented (change terminal
312 label in windowing systems). %cd now changes the title to
317 label in windowing systems). %cd now changes the title to
313 current dir.
318 current dir.
314
319
315 * IPython/Release.py: Added myself to "authors" list,
320 * IPython/Release.py: Added myself to "authors" list,
316 had to create new files.
321 had to create new files.
317
322
318 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
323 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
319 shell escape; not a known bug but had potential to be one in the
324 shell escape; not a known bug but had potential to be one in the
320 future.
325 future.
321
326
322 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
327 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
323 extension API for IPython! See the module for usage example. Fix
328 extension API for IPython! See the module for usage example. Fix
324 OInspect for docstring-less magic functions.
329 OInspect for docstring-less magic functions.
325
330
326
331
327 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
332 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
328
333
329 * IPython/iplib.py (raw_input): temporarily deactivate all
334 * IPython/iplib.py (raw_input): temporarily deactivate all
330 attempts at allowing pasting of code with autoindent on. It
335 attempts at allowing pasting of code with autoindent on. It
331 introduced bugs (reported by Prabhu) and I can't seem to find a
336 introduced bugs (reported by Prabhu) and I can't seem to find a
332 robust combination which works in all cases. Will have to revisit
337 robust combination which works in all cases. Will have to revisit
333 later.
338 later.
334
339
335 * IPython/genutils.py: remove isspace() function. We've dropped
340 * IPython/genutils.py: remove isspace() function. We've dropped
336 2.2 compatibility, so it's OK to use the string method.
341 2.2 compatibility, so it's OK to use the string method.
337
342
338 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
343 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
339
344
340 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
345 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
341 matching what NOT to autocall on, to include all python binary
346 matching what NOT to autocall on, to include all python binary
342 operators (including things like 'and', 'or', 'is' and 'in').
347 operators (including things like 'and', 'or', 'is' and 'in').
343 Prompted by a bug report on 'foo & bar', but I realized we had
348 Prompted by a bug report on 'foo & bar', but I realized we had
344 many more potential bug cases with other operators. The regexp is
349 many more potential bug cases with other operators. The regexp is
345 self.re_exclude_auto, it's fairly commented.
350 self.re_exclude_auto, it's fairly commented.
346
351
347 2006-01-12 Ville Vainio <vivainio@gmail.com>
352 2006-01-12 Ville Vainio <vivainio@gmail.com>
348
353
349 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
354 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
350 Prettified and hardened string/backslash quoting with ipsystem(),
355 Prettified and hardened string/backslash quoting with ipsystem(),
351 ipalias() and ipmagic(). Now even \ characters are passed to
356 ipalias() and ipmagic(). Now even \ characters are passed to
352 %magics, !shell escapes and aliases exactly as they are in the
357 %magics, !shell escapes and aliases exactly as they are in the
353 ipython command line. Should improve backslash experience,
358 ipython command line. Should improve backslash experience,
354 particularly in Windows (path delimiter for some commands that
359 particularly in Windows (path delimiter for some commands that
355 won't understand '/'), but Unix benefits as well (regexps). %cd
360 won't understand '/'), but Unix benefits as well (regexps). %cd
356 magic still doesn't support backslash path delimiters, though. Also
361 magic still doesn't support backslash path delimiters, though. Also
357 deleted all pretense of supporting multiline command strings in
362 deleted all pretense of supporting multiline command strings in
358 !system or %magic commands. Thanks to Jerry McRae for suggestions.
363 !system or %magic commands. Thanks to Jerry McRae for suggestions.
359
364
360 * doc/build_doc_instructions.txt added. Documentation on how to
365 * doc/build_doc_instructions.txt added. Documentation on how to
361 use doc/update_manual.py, added yesterday. Both files contributed
366 use doc/update_manual.py, added yesterday. Both files contributed
362 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
367 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
363 doc/*.sh for deprecation at a later date.
368 doc/*.sh for deprecation at a later date.
364
369
365 * /ipython.py Added ipython.py to root directory for
370 * /ipython.py Added ipython.py to root directory for
366 zero-installation (tar xzvf ipython.tgz; cd ipython; python
371 zero-installation (tar xzvf ipython.tgz; cd ipython; python
367 ipython.py) and development convenience (no need to kee doing
372 ipython.py) and development convenience (no need to kee doing
368 "setup.py install" between changes).
373 "setup.py install" between changes).
369
374
370 * Made ! and !! shell escapes work (again) in multiline expressions:
375 * Made ! and !! shell escapes work (again) in multiline expressions:
371 if 1:
376 if 1:
372 !ls
377 !ls
373 !!ls
378 !!ls
374
379
375 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
380 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
376
381
377 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
382 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
378 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
383 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
379 module in case-insensitive installation. Was causing crashes
384 module in case-insensitive installation. Was causing crashes
380 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
385 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
381
386
382 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
387 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
383 <marienz-AT-gentoo.org>, closes
388 <marienz-AT-gentoo.org>, closes
384 http://www.scipy.net/roundup/ipython/issue51.
389 http://www.scipy.net/roundup/ipython/issue51.
385
390
386 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
391 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
387
392
388 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
393 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
389 problem of excessive CPU usage under *nix and keyboard lag under
394 problem of excessive CPU usage under *nix and keyboard lag under
390 win32.
395 win32.
391
396
392 2006-01-10 *** Released version 0.7.0
397 2006-01-10 *** Released version 0.7.0
393
398
394 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
399 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
395
400
396 * IPython/Release.py (revision): tag version number to 0.7.0,
401 * IPython/Release.py (revision): tag version number to 0.7.0,
397 ready for release.
402 ready for release.
398
403
399 * IPython/Magic.py (magic_edit): Add print statement to %edit so
404 * IPython/Magic.py (magic_edit): Add print statement to %edit so
400 it informs the user of the name of the temp. file used. This can
405 it informs the user of the name of the temp. file used. This can
401 help if you decide later to reuse that same file, so you know
406 help if you decide later to reuse that same file, so you know
402 where to copy the info from.
407 where to copy the info from.
403
408
404 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
409 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
405
410
406 * setup_bdist_egg.py: little script to build an egg. Added
411 * setup_bdist_egg.py: little script to build an egg. Added
407 support in the release tools as well.
412 support in the release tools as well.
408
413
409 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
414 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
410
415
411 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
416 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
412 version selection (new -wxversion command line and ipythonrc
417 version selection (new -wxversion command line and ipythonrc
413 parameter). Patch contributed by Arnd Baecker
418 parameter). Patch contributed by Arnd Baecker
414 <arnd.baecker-AT-web.de>.
419 <arnd.baecker-AT-web.de>.
415
420
416 * IPython/iplib.py (embed_mainloop): fix tab-completion in
421 * IPython/iplib.py (embed_mainloop): fix tab-completion in
417 embedded instances, for variables defined at the interactive
422 embedded instances, for variables defined at the interactive
418 prompt of the embedded ipython. Reported by Arnd.
423 prompt of the embedded ipython. Reported by Arnd.
419
424
420 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
425 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
421 it can be used as a (stateful) toggle, or with a direct parameter.
426 it can be used as a (stateful) toggle, or with a direct parameter.
422
427
423 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
428 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
424 could be triggered in certain cases and cause the traceback
429 could be triggered in certain cases and cause the traceback
425 printer not to work.
430 printer not to work.
426
431
427 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
432 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
428
433
429 * IPython/iplib.py (_should_recompile): Small fix, closes
434 * IPython/iplib.py (_should_recompile): Small fix, closes
430 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
435 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
431
436
432 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
437 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
433
438
434 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
439 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
435 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
440 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
436 Moad for help with tracking it down.
441 Moad for help with tracking it down.
437
442
438 * IPython/iplib.py (handle_auto): fix autocall handling for
443 * IPython/iplib.py (handle_auto): fix autocall handling for
439 objects which support BOTH __getitem__ and __call__ (so that f [x]
444 objects which support BOTH __getitem__ and __call__ (so that f [x]
440 is left alone, instead of becoming f([x]) automatically).
445 is left alone, instead of becoming f([x]) automatically).
441
446
442 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
447 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
443 Ville's patch.
448 Ville's patch.
444
449
445 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
450 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
446
451
447 * IPython/iplib.py (handle_auto): changed autocall semantics to
452 * IPython/iplib.py (handle_auto): changed autocall semantics to
448 include 'smart' mode, where the autocall transformation is NOT
453 include 'smart' mode, where the autocall transformation is NOT
449 applied if there are no arguments on the line. This allows you to
454 applied if there are no arguments on the line. This allows you to
450 just type 'foo' if foo is a callable to see its internal form,
455 just type 'foo' if foo is a callable to see its internal form,
451 instead of having it called with no arguments (typically a
456 instead of having it called with no arguments (typically a
452 mistake). The old 'full' autocall still exists: for that, you
457 mistake). The old 'full' autocall still exists: for that, you
453 need to set the 'autocall' parameter to 2 in your ipythonrc file.
458 need to set the 'autocall' parameter to 2 in your ipythonrc file.
454
459
455 * IPython/completer.py (Completer.attr_matches): add
460 * IPython/completer.py (Completer.attr_matches): add
456 tab-completion support for Enthoughts' traits. After a report by
461 tab-completion support for Enthoughts' traits. After a report by
457 Arnd and a patch by Prabhu.
462 Arnd and a patch by Prabhu.
458
463
459 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
464 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
460
465
461 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
466 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
462 Schmolck's patch to fix inspect.getinnerframes().
467 Schmolck's patch to fix inspect.getinnerframes().
463
468
464 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
469 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
465 for embedded instances, regarding handling of namespaces and items
470 for embedded instances, regarding handling of namespaces and items
466 added to the __builtin__ one. Multiple embedded instances and
471 added to the __builtin__ one. Multiple embedded instances and
467 recursive embeddings should work better now (though I'm not sure
472 recursive embeddings should work better now (though I'm not sure
468 I've got all the corner cases fixed, that code is a bit of a brain
473 I've got all the corner cases fixed, that code is a bit of a brain
469 twister).
474 twister).
470
475
471 * IPython/Magic.py (magic_edit): added support to edit in-memory
476 * IPython/Magic.py (magic_edit): added support to edit in-memory
472 macros (automatically creates the necessary temp files). %edit
477 macros (automatically creates the necessary temp files). %edit
473 also doesn't return the file contents anymore, it's just noise.
478 also doesn't return the file contents anymore, it's just noise.
474
479
475 * IPython/completer.py (Completer.attr_matches): revert change to
480 * IPython/completer.py (Completer.attr_matches): revert change to
476 complete only on attributes listed in __all__. I realized it
481 complete only on attributes listed in __all__. I realized it
477 cripples the tab-completion system as a tool for exploring the
482 cripples the tab-completion system as a tool for exploring the
478 internals of unknown libraries (it renders any non-__all__
483 internals of unknown libraries (it renders any non-__all__
479 attribute off-limits). I got bit by this when trying to see
484 attribute off-limits). I got bit by this when trying to see
480 something inside the dis module.
485 something inside the dis module.
481
486
482 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
487 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
483
488
484 * IPython/iplib.py (InteractiveShell.__init__): add .meta
489 * IPython/iplib.py (InteractiveShell.__init__): add .meta
485 namespace for users and extension writers to hold data in. This
490 namespace for users and extension writers to hold data in. This
486 follows the discussion in
491 follows the discussion in
487 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
492 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
488
493
489 * IPython/completer.py (IPCompleter.complete): small patch to help
494 * IPython/completer.py (IPCompleter.complete): small patch to help
490 tab-completion under Emacs, after a suggestion by John Barnard
495 tab-completion under Emacs, after a suggestion by John Barnard
491 <barnarj-AT-ccf.org>.
496 <barnarj-AT-ccf.org>.
492
497
493 * IPython/Magic.py (Magic.extract_input_slices): added support for
498 * IPython/Magic.py (Magic.extract_input_slices): added support for
494 the slice notation in magics to use N-M to represent numbers N...M
499 the slice notation in magics to use N-M to represent numbers N...M
495 (closed endpoints). This is used by %macro and %save.
500 (closed endpoints). This is used by %macro and %save.
496
501
497 * IPython/completer.py (Completer.attr_matches): for modules which
502 * IPython/completer.py (Completer.attr_matches): for modules which
498 define __all__, complete only on those. After a patch by Jeffrey
503 define __all__, complete only on those. After a patch by Jeffrey
499 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
504 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
500 speed up this routine.
505 speed up this routine.
501
506
502 * IPython/Logger.py (Logger.log): fix a history handling bug. I
507 * IPython/Logger.py (Logger.log): fix a history handling bug. I
503 don't know if this is the end of it, but the behavior now is
508 don't know if this is the end of it, but the behavior now is
504 certainly much more correct. Note that coupled with macros,
509 certainly much more correct. Note that coupled with macros,
505 slightly surprising (at first) behavior may occur: a macro will in
510 slightly surprising (at first) behavior may occur: a macro will in
506 general expand to multiple lines of input, so upon exiting, the
511 general expand to multiple lines of input, so upon exiting, the
507 in/out counters will both be bumped by the corresponding amount
512 in/out counters will both be bumped by the corresponding amount
508 (as if the macro's contents had been typed interactively). Typing
513 (as if the macro's contents had been typed interactively). Typing
509 %hist will reveal the intermediate (silently processed) lines.
514 %hist will reveal the intermediate (silently processed) lines.
510
515
511 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
516 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
512 pickle to fail (%run was overwriting __main__ and not restoring
517 pickle to fail (%run was overwriting __main__ and not restoring
513 it, but pickle relies on __main__ to operate).
518 it, but pickle relies on __main__ to operate).
514
519
515 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
520 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
516 using properties, but forgot to make the main InteractiveShell
521 using properties, but forgot to make the main InteractiveShell
517 class a new-style class. Properties fail silently, and
522 class a new-style class. Properties fail silently, and
518 misteriously, with old-style class (getters work, but
523 misteriously, with old-style class (getters work, but
519 setters don't do anything).
524 setters don't do anything).
520
525
521 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
526 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
522
527
523 * IPython/Magic.py (magic_history): fix history reporting bug (I
528 * IPython/Magic.py (magic_history): fix history reporting bug (I
524 know some nasties are still there, I just can't seem to find a
529 know some nasties are still there, I just can't seem to find a
525 reproducible test case to track them down; the input history is
530 reproducible test case to track them down; the input history is
526 falling out of sync...)
531 falling out of sync...)
527
532
528 * IPython/iplib.py (handle_shell_escape): fix bug where both
533 * IPython/iplib.py (handle_shell_escape): fix bug where both
529 aliases and system accesses where broken for indented code (such
534 aliases and system accesses where broken for indented code (such
530 as loops).
535 as loops).
531
536
532 * IPython/genutils.py (shell): fix small but critical bug for
537 * IPython/genutils.py (shell): fix small but critical bug for
533 win32 system access.
538 win32 system access.
534
539
535 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
540 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
536
541
537 * IPython/iplib.py (showtraceback): remove use of the
542 * IPython/iplib.py (showtraceback): remove use of the
538 sys.last_{type/value/traceback} structures, which are non
543 sys.last_{type/value/traceback} structures, which are non
539 thread-safe.
544 thread-safe.
540 (_prefilter): change control flow to ensure that we NEVER
545 (_prefilter): change control flow to ensure that we NEVER
541 introspect objects when autocall is off. This will guarantee that
546 introspect objects when autocall is off. This will guarantee that
542 having an input line of the form 'x.y', where access to attribute
547 having an input line of the form 'x.y', where access to attribute
543 'y' has side effects, doesn't trigger the side effect TWICE. It
548 'y' has side effects, doesn't trigger the side effect TWICE. It
544 is important to note that, with autocall on, these side effects
549 is important to note that, with autocall on, these side effects
545 can still happen.
550 can still happen.
546 (ipsystem): new builtin, to complete the ip{magic/alias/system}
551 (ipsystem): new builtin, to complete the ip{magic/alias/system}
547 trio. IPython offers these three kinds of special calls which are
552 trio. IPython offers these three kinds of special calls which are
548 not python code, and it's a good thing to have their call method
553 not python code, and it's a good thing to have their call method
549 be accessible as pure python functions (not just special syntax at
554 be accessible as pure python functions (not just special syntax at
550 the command line). It gives us a better internal implementation
555 the command line). It gives us a better internal implementation
551 structure, as well as exposing these for user scripting more
556 structure, as well as exposing these for user scripting more
552 cleanly.
557 cleanly.
553
558
554 * IPython/macro.py (Macro.__init__): moved macros to a standalone
559 * IPython/macro.py (Macro.__init__): moved macros to a standalone
555 file. Now that they'll be more likely to be used with the
560 file. Now that they'll be more likely to be used with the
556 persistance system (%store), I want to make sure their module path
561 persistance system (%store), I want to make sure their module path
557 doesn't change in the future, so that we don't break things for
562 doesn't change in the future, so that we don't break things for
558 users' persisted data.
563 users' persisted data.
559
564
560 * IPython/iplib.py (autoindent_update): move indentation
565 * IPython/iplib.py (autoindent_update): move indentation
561 management into the _text_ processing loop, not the keyboard
566 management into the _text_ processing loop, not the keyboard
562 interactive one. This is necessary to correctly process non-typed
567 interactive one. This is necessary to correctly process non-typed
563 multiline input (such as macros).
568 multiline input (such as macros).
564
569
565 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
570 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
566 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
571 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
567 which was producing problems in the resulting manual.
572 which was producing problems in the resulting manual.
568 (magic_whos): improve reporting of instances (show their class,
573 (magic_whos): improve reporting of instances (show their class,
569 instead of simply printing 'instance' which isn't terribly
574 instead of simply printing 'instance' which isn't terribly
570 informative).
575 informative).
571
576
572 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
577 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
573 (minor mods) to support network shares under win32.
578 (minor mods) to support network shares under win32.
574
579
575 * IPython/winconsole.py (get_console_size): add new winconsole
580 * IPython/winconsole.py (get_console_size): add new winconsole
576 module and fixes to page_dumb() to improve its behavior under
581 module and fixes to page_dumb() to improve its behavior under
577 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
582 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
578
583
579 * IPython/Magic.py (Macro): simplified Macro class to just
584 * IPython/Magic.py (Macro): simplified Macro class to just
580 subclass list. We've had only 2.2 compatibility for a very long
585 subclass list. We've had only 2.2 compatibility for a very long
581 time, yet I was still avoiding subclassing the builtin types. No
586 time, yet I was still avoiding subclassing the builtin types. No
582 more (I'm also starting to use properties, though I won't shift to
587 more (I'm also starting to use properties, though I won't shift to
583 2.3-specific features quite yet).
588 2.3-specific features quite yet).
584 (magic_store): added Ville's patch for lightweight variable
589 (magic_store): added Ville's patch for lightweight variable
585 persistence, after a request on the user list by Matt Wilkie
590 persistence, after a request on the user list by Matt Wilkie
586 <maphew-AT-gmail.com>. The new %store magic's docstring has full
591 <maphew-AT-gmail.com>. The new %store magic's docstring has full
587 details.
592 details.
588
593
589 * IPython/iplib.py (InteractiveShell.post_config_initialization):
594 * IPython/iplib.py (InteractiveShell.post_config_initialization):
590 changed the default logfile name from 'ipython.log' to
595 changed the default logfile name from 'ipython.log' to
591 'ipython_log.py'. These logs are real python files, and now that
596 'ipython_log.py'. These logs are real python files, and now that
592 we have much better multiline support, people are more likely to
597 we have much better multiline support, people are more likely to
593 want to use them as such. Might as well name them correctly.
598 want to use them as such. Might as well name them correctly.
594
599
595 * IPython/Magic.py: substantial cleanup. While we can't stop
600 * IPython/Magic.py: substantial cleanup. While we can't stop
596 using magics as mixins, due to the existing customizations 'out
601 using magics as mixins, due to the existing customizations 'out
597 there' which rely on the mixin naming conventions, at least I
602 there' which rely on the mixin naming conventions, at least I
598 cleaned out all cross-class name usage. So once we are OK with
603 cleaned out all cross-class name usage. So once we are OK with
599 breaking compatibility, the two systems can be separated.
604 breaking compatibility, the two systems can be separated.
600
605
601 * IPython/Logger.py: major cleanup. This one is NOT a mixin
606 * IPython/Logger.py: major cleanup. This one is NOT a mixin
602 anymore, and the class is a fair bit less hideous as well. New
607 anymore, and the class is a fair bit less hideous as well. New
603 features were also introduced: timestamping of input, and logging
608 features were also introduced: timestamping of input, and logging
604 of output results. These are user-visible with the -t and -o
609 of output results. These are user-visible with the -t and -o
605 options to %logstart. Closes
610 options to %logstart. Closes
606 http://www.scipy.net/roundup/ipython/issue11 and a request by
611 http://www.scipy.net/roundup/ipython/issue11 and a request by
607 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
612 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
608
613
609 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
614 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
610
615
611 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
616 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
612 better hadnle backslashes in paths. See the thread 'More Windows
617 better hadnle backslashes in paths. See the thread 'More Windows
613 questions part 2 - \/ characters revisited' on the iypthon user
618 questions part 2 - \/ characters revisited' on the iypthon user
614 list:
619 list:
615 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
620 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
616
621
617 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
622 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
618
623
619 (InteractiveShell.__init__): change threaded shells to not use the
624 (InteractiveShell.__init__): change threaded shells to not use the
620 ipython crash handler. This was causing more problems than not,
625 ipython crash handler. This was causing more problems than not,
621 as exceptions in the main thread (GUI code, typically) would
626 as exceptions in the main thread (GUI code, typically) would
622 always show up as a 'crash', when they really weren't.
627 always show up as a 'crash', when they really weren't.
623
628
624 The colors and exception mode commands (%colors/%xmode) have been
629 The colors and exception mode commands (%colors/%xmode) have been
625 synchronized to also take this into account, so users can get
630 synchronized to also take this into account, so users can get
626 verbose exceptions for their threaded code as well. I also added
631 verbose exceptions for their threaded code as well. I also added
627 support for activating pdb inside this exception handler as well,
632 support for activating pdb inside this exception handler as well,
628 so now GUI authors can use IPython's enhanced pdb at runtime.
633 so now GUI authors can use IPython's enhanced pdb at runtime.
629
634
630 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
635 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
631 true by default, and add it to the shipped ipythonrc file. Since
636 true by default, and add it to the shipped ipythonrc file. Since
632 this asks the user before proceeding, I think it's OK to make it
637 this asks the user before proceeding, I think it's OK to make it
633 true by default.
638 true by default.
634
639
635 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
640 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
636 of the previous special-casing of input in the eval loop. I think
641 of the previous special-casing of input in the eval loop. I think
637 this is cleaner, as they really are commands and shouldn't have
642 this is cleaner, as they really are commands and shouldn't have
638 a special role in the middle of the core code.
643 a special role in the middle of the core code.
639
644
640 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
645 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
641
646
642 * IPython/iplib.py (edit_syntax_error): added support for
647 * IPython/iplib.py (edit_syntax_error): added support for
643 automatically reopening the editor if the file had a syntax error
648 automatically reopening the editor if the file had a syntax error
644 in it. Thanks to scottt who provided the patch at:
649 in it. Thanks to scottt who provided the patch at:
645 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
650 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
646 version committed).
651 version committed).
647
652
648 * IPython/iplib.py (handle_normal): add suport for multi-line
653 * IPython/iplib.py (handle_normal): add suport for multi-line
649 input with emtpy lines. This fixes
654 input with emtpy lines. This fixes
650 http://www.scipy.net/roundup/ipython/issue43 and a similar
655 http://www.scipy.net/roundup/ipython/issue43 and a similar
651 discussion on the user list.
656 discussion on the user list.
652
657
653 WARNING: a behavior change is necessarily introduced to support
658 WARNING: a behavior change is necessarily introduced to support
654 blank lines: now a single blank line with whitespace does NOT
659 blank lines: now a single blank line with whitespace does NOT
655 break the input loop, which means that when autoindent is on, by
660 break the input loop, which means that when autoindent is on, by
656 default hitting return on the next (indented) line does NOT exit.
661 default hitting return on the next (indented) line does NOT exit.
657
662
658 Instead, to exit a multiline input you can either have:
663 Instead, to exit a multiline input you can either have:
659
664
660 - TWO whitespace lines (just hit return again), or
665 - TWO whitespace lines (just hit return again), or
661 - a single whitespace line of a different length than provided
666 - a single whitespace line of a different length than provided
662 by the autoindent (add or remove a space).
667 by the autoindent (add or remove a space).
663
668
664 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
669 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
665 module to better organize all readline-related functionality.
670 module to better organize all readline-related functionality.
666 I've deleted FlexCompleter and put all completion clases here.
671 I've deleted FlexCompleter and put all completion clases here.
667
672
668 * IPython/iplib.py (raw_input): improve indentation management.
673 * IPython/iplib.py (raw_input): improve indentation management.
669 It is now possible to paste indented code with autoindent on, and
674 It is now possible to paste indented code with autoindent on, and
670 the code is interpreted correctly (though it still looks bad on
675 the code is interpreted correctly (though it still looks bad on
671 screen, due to the line-oriented nature of ipython).
676 screen, due to the line-oriented nature of ipython).
672 (MagicCompleter.complete): change behavior so that a TAB key on an
677 (MagicCompleter.complete): change behavior so that a TAB key on an
673 otherwise empty line actually inserts a tab, instead of completing
678 otherwise empty line actually inserts a tab, instead of completing
674 on the entire global namespace. This makes it easier to use the
679 on the entire global namespace. This makes it easier to use the
675 TAB key for indentation. After a request by Hans Meine
680 TAB key for indentation. After a request by Hans Meine
676 <hans_meine-AT-gmx.net>
681 <hans_meine-AT-gmx.net>
677 (_prefilter): add support so that typing plain 'exit' or 'quit'
682 (_prefilter): add support so that typing plain 'exit' or 'quit'
678 does a sensible thing. Originally I tried to deviate as little as
683 does a sensible thing. Originally I tried to deviate as little as
679 possible from the default python behavior, but even that one may
684 possible from the default python behavior, but even that one may
680 change in this direction (thread on python-dev to that effect).
685 change in this direction (thread on python-dev to that effect).
681 Regardless, ipython should do the right thing even if CPython's
686 Regardless, ipython should do the right thing even if CPython's
682 '>>>' prompt doesn't.
687 '>>>' prompt doesn't.
683 (InteractiveShell): removed subclassing code.InteractiveConsole
688 (InteractiveShell): removed subclassing code.InteractiveConsole
684 class. By now we'd overridden just about all of its methods: I've
689 class. By now we'd overridden just about all of its methods: I've
685 copied the remaining two over, and now ipython is a standalone
690 copied the remaining two over, and now ipython is a standalone
686 class. This will provide a clearer picture for the chainsaw
691 class. This will provide a clearer picture for the chainsaw
687 branch refactoring.
692 branch refactoring.
688
693
689 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
694 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
690
695
691 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
696 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
692 failures for objects which break when dir() is called on them.
697 failures for objects which break when dir() is called on them.
693
698
694 * IPython/FlexCompleter.py (Completer.__init__): Added support for
699 * IPython/FlexCompleter.py (Completer.__init__): Added support for
695 distinct local and global namespaces in the completer API. This
700 distinct local and global namespaces in the completer API. This
696 change allows us top properly handle completion with distinct
701 change allows us top properly handle completion with distinct
697 scopes, including in embedded instances (this had never really
702 scopes, including in embedded instances (this had never really
698 worked correctly).
703 worked correctly).
699
704
700 Note: this introduces a change in the constructor for
705 Note: this introduces a change in the constructor for
701 MagicCompleter, as a new global_namespace parameter is now the
706 MagicCompleter, as a new global_namespace parameter is now the
702 second argument (the others were bumped one position).
707 second argument (the others were bumped one position).
703
708
704 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
709 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
705
710
706 * IPython/iplib.py (embed_mainloop): fix tab-completion in
711 * IPython/iplib.py (embed_mainloop): fix tab-completion in
707 embedded instances (which can be done now thanks to Vivian's
712 embedded instances (which can be done now thanks to Vivian's
708 frame-handling fixes for pdb).
713 frame-handling fixes for pdb).
709 (InteractiveShell.__init__): Fix namespace handling problem in
714 (InteractiveShell.__init__): Fix namespace handling problem in
710 embedded instances. We were overwriting __main__ unconditionally,
715 embedded instances. We were overwriting __main__ unconditionally,
711 and this should only be done for 'full' (non-embedded) IPython;
716 and this should only be done for 'full' (non-embedded) IPython;
712 embedded instances must respect the caller's __main__. Thanks to
717 embedded instances must respect the caller's __main__. Thanks to
713 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
718 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
714
719
715 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
720 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
716
721
717 * setup.py: added download_url to setup(). This registers the
722 * setup.py: added download_url to setup(). This registers the
718 download address at PyPI, which is not only useful to humans
723 download address at PyPI, which is not only useful to humans
719 browsing the site, but is also picked up by setuptools (the Eggs
724 browsing the site, but is also picked up by setuptools (the Eggs
720 machinery). Thanks to Ville and R. Kern for the info/discussion
725 machinery). Thanks to Ville and R. Kern for the info/discussion
721 on this.
726 on this.
722
727
723 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
728 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
724
729
725 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
730 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
726 This brings a lot of nice functionality to the pdb mode, which now
731 This brings a lot of nice functionality to the pdb mode, which now
727 has tab-completion, syntax highlighting, and better stack handling
732 has tab-completion, syntax highlighting, and better stack handling
728 than before. Many thanks to Vivian De Smedt
733 than before. Many thanks to Vivian De Smedt
729 <vivian-AT-vdesmedt.com> for the original patches.
734 <vivian-AT-vdesmedt.com> for the original patches.
730
735
731 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
736 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
732
737
733 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
738 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
734 sequence to consistently accept the banner argument. The
739 sequence to consistently accept the banner argument. The
735 inconsistency was tripping SAGE, thanks to Gary Zablackis
740 inconsistency was tripping SAGE, thanks to Gary Zablackis
736 <gzabl-AT-yahoo.com> for the report.
741 <gzabl-AT-yahoo.com> for the report.
737
742
738 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
743 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
739
744
740 * IPython/iplib.py (InteractiveShell.post_config_initialization):
745 * IPython/iplib.py (InteractiveShell.post_config_initialization):
741 Fix bug where a naked 'alias' call in the ipythonrc file would
746 Fix bug where a naked 'alias' call in the ipythonrc file would
742 cause a crash. Bug reported by Jorgen Stenarson.
747 cause a crash. Bug reported by Jorgen Stenarson.
743
748
744 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
749 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
745
750
746 * IPython/ipmaker.py (make_IPython): cleanups which should improve
751 * IPython/ipmaker.py (make_IPython): cleanups which should improve
747 startup time.
752 startup time.
748
753
749 * IPython/iplib.py (runcode): my globals 'fix' for embedded
754 * IPython/iplib.py (runcode): my globals 'fix' for embedded
750 instances had introduced a bug with globals in normal code. Now
755 instances had introduced a bug with globals in normal code. Now
751 it's working in all cases.
756 it's working in all cases.
752
757
753 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
758 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
754 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
759 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
755 has been introduced to set the default case sensitivity of the
760 has been introduced to set the default case sensitivity of the
756 searches. Users can still select either mode at runtime on a
761 searches. Users can still select either mode at runtime on a
757 per-search basis.
762 per-search basis.
758
763
759 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
764 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
760
765
761 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
766 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
762 attributes in wildcard searches for subclasses. Modified version
767 attributes in wildcard searches for subclasses. Modified version
763 of a patch by Jorgen.
768 of a patch by Jorgen.
764
769
765 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
770 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
766
771
767 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
772 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
768 embedded instances. I added a user_global_ns attribute to the
773 embedded instances. I added a user_global_ns attribute to the
769 InteractiveShell class to handle this.
774 InteractiveShell class to handle this.
770
775
771 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
776 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
772
777
773 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
778 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
774 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
779 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
775 (reported under win32, but may happen also in other platforms).
780 (reported under win32, but may happen also in other platforms).
776 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
781 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
777
782
778 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
783 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
779
784
780 * IPython/Magic.py (magic_psearch): new support for wildcard
785 * IPython/Magic.py (magic_psearch): new support for wildcard
781 patterns. Now, typing ?a*b will list all names which begin with a
786 patterns. Now, typing ?a*b will list all names which begin with a
782 and end in b, for example. The %psearch magic has full
787 and end in b, for example. The %psearch magic has full
783 docstrings. Many thanks to JΓΆrgen Stenarson
788 docstrings. Many thanks to JΓΆrgen Stenarson
784 <jorgen.stenarson-AT-bostream.nu>, author of the patches
789 <jorgen.stenarson-AT-bostream.nu>, author of the patches
785 implementing this functionality.
790 implementing this functionality.
786
791
787 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
792 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
788
793
789 * Manual: fixed long-standing annoyance of double-dashes (as in
794 * Manual: fixed long-standing annoyance of double-dashes (as in
790 --prefix=~, for example) being stripped in the HTML version. This
795 --prefix=~, for example) being stripped in the HTML version. This
791 is a latex2html bug, but a workaround was provided. Many thanks
796 is a latex2html bug, but a workaround was provided. Many thanks
792 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
797 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
793 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
798 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
794 rolling. This seemingly small issue had tripped a number of users
799 rolling. This seemingly small issue had tripped a number of users
795 when first installing, so I'm glad to see it gone.
800 when first installing, so I'm glad to see it gone.
796
801
797 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
802 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
798
803
799 * IPython/Extensions/numeric_formats.py: fix missing import,
804 * IPython/Extensions/numeric_formats.py: fix missing import,
800 reported by Stephen Walton.
805 reported by Stephen Walton.
801
806
802 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
807 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
803
808
804 * IPython/demo.py: finish demo module, fully documented now.
809 * IPython/demo.py: finish demo module, fully documented now.
805
810
806 * IPython/genutils.py (file_read): simple little utility to read a
811 * IPython/genutils.py (file_read): simple little utility to read a
807 file and ensure it's closed afterwards.
812 file and ensure it's closed afterwards.
808
813
809 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
814 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
810
815
811 * IPython/demo.py (Demo.__init__): added support for individually
816 * IPython/demo.py (Demo.__init__): added support for individually
812 tagging blocks for automatic execution.
817 tagging blocks for automatic execution.
813
818
814 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
819 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
815 syntax-highlighted python sources, requested by John.
820 syntax-highlighted python sources, requested by John.
816
821
817 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
822 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
818
823
819 * IPython/demo.py (Demo.again): fix bug where again() blocks after
824 * IPython/demo.py (Demo.again): fix bug where again() blocks after
820 finishing.
825 finishing.
821
826
822 * IPython/genutils.py (shlex_split): moved from Magic to here,
827 * IPython/genutils.py (shlex_split): moved from Magic to here,
823 where all 2.2 compatibility stuff lives. I needed it for demo.py.
828 where all 2.2 compatibility stuff lives. I needed it for demo.py.
824
829
825 * IPython/demo.py (Demo.__init__): added support for silent
830 * IPython/demo.py (Demo.__init__): added support for silent
826 blocks, improved marks as regexps, docstrings written.
831 blocks, improved marks as regexps, docstrings written.
827 (Demo.__init__): better docstring, added support for sys.argv.
832 (Demo.__init__): better docstring, added support for sys.argv.
828
833
829 * IPython/genutils.py (marquee): little utility used by the demo
834 * IPython/genutils.py (marquee): little utility used by the demo
830 code, handy in general.
835 code, handy in general.
831
836
832 * IPython/demo.py (Demo.__init__): new class for interactive
837 * IPython/demo.py (Demo.__init__): new class for interactive
833 demos. Not documented yet, I just wrote it in a hurry for
838 demos. Not documented yet, I just wrote it in a hurry for
834 scipy'05. Will docstring later.
839 scipy'05. Will docstring later.
835
840
836 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
841 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
837
842
838 * IPython/Shell.py (sigint_handler): Drastic simplification which
843 * IPython/Shell.py (sigint_handler): Drastic simplification which
839 also seems to make Ctrl-C work correctly across threads! This is
844 also seems to make Ctrl-C work correctly across threads! This is
840 so simple, that I can't beleive I'd missed it before. Needs more
845 so simple, that I can't beleive I'd missed it before. Needs more
841 testing, though.
846 testing, though.
842 (KBINT): Never mind, revert changes. I'm sure I'd tried something
847 (KBINT): Never mind, revert changes. I'm sure I'd tried something
843 like this before...
848 like this before...
844
849
845 * IPython/genutils.py (get_home_dir): add protection against
850 * IPython/genutils.py (get_home_dir): add protection against
846 non-dirs in win32 registry.
851 non-dirs in win32 registry.
847
852
848 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
853 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
849 bug where dict was mutated while iterating (pysh crash).
854 bug where dict was mutated while iterating (pysh crash).
850
855
851 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
856 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
852
857
853 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
858 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
854 spurious newlines added by this routine. After a report by
859 spurious newlines added by this routine. After a report by
855 F. Mantegazza.
860 F. Mantegazza.
856
861
857 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
862 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
858
863
859 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
864 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
860 calls. These were a leftover from the GTK 1.x days, and can cause
865 calls. These were a leftover from the GTK 1.x days, and can cause
861 problems in certain cases (after a report by John Hunter).
866 problems in certain cases (after a report by John Hunter).
862
867
863 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
868 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
864 os.getcwd() fails at init time. Thanks to patch from David Remahl
869 os.getcwd() fails at init time. Thanks to patch from David Remahl
865 <chmod007-AT-mac.com>.
870 <chmod007-AT-mac.com>.
866 (InteractiveShell.__init__): prevent certain special magics from
871 (InteractiveShell.__init__): prevent certain special magics from
867 being shadowed by aliases. Closes
872 being shadowed by aliases. Closes
868 http://www.scipy.net/roundup/ipython/issue41.
873 http://www.scipy.net/roundup/ipython/issue41.
869
874
870 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
875 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
871
876
872 * IPython/iplib.py (InteractiveShell.complete): Added new
877 * IPython/iplib.py (InteractiveShell.complete): Added new
873 top-level completion method to expose the completion mechanism
878 top-level completion method to expose the completion mechanism
874 beyond readline-based environments.
879 beyond readline-based environments.
875
880
876 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
881 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
877
882
878 * tools/ipsvnc (svnversion): fix svnversion capture.
883 * tools/ipsvnc (svnversion): fix svnversion capture.
879
884
880 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
885 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
881 attribute to self, which was missing. Before, it was set by a
886 attribute to self, which was missing. Before, it was set by a
882 routine which in certain cases wasn't being called, so the
887 routine which in certain cases wasn't being called, so the
883 instance could end up missing the attribute. This caused a crash.
888 instance could end up missing the attribute. This caused a crash.
884 Closes http://www.scipy.net/roundup/ipython/issue40.
889 Closes http://www.scipy.net/roundup/ipython/issue40.
885
890
886 2005-08-16 Fernando Perez <fperez@colorado.edu>
891 2005-08-16 Fernando Perez <fperez@colorado.edu>
887
892
888 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
893 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
889 contains non-string attribute. Closes
894 contains non-string attribute. Closes
890 http://www.scipy.net/roundup/ipython/issue38.
895 http://www.scipy.net/roundup/ipython/issue38.
891
896
892 2005-08-14 Fernando Perez <fperez@colorado.edu>
897 2005-08-14 Fernando Perez <fperez@colorado.edu>
893
898
894 * tools/ipsvnc: Minor improvements, to add changeset info.
899 * tools/ipsvnc: Minor improvements, to add changeset info.
895
900
896 2005-08-12 Fernando Perez <fperez@colorado.edu>
901 2005-08-12 Fernando Perez <fperez@colorado.edu>
897
902
898 * IPython/iplib.py (runsource): remove self.code_to_run_src
903 * IPython/iplib.py (runsource): remove self.code_to_run_src
899 attribute. I realized this is nothing more than
904 attribute. I realized this is nothing more than
900 '\n'.join(self.buffer), and having the same data in two different
905 '\n'.join(self.buffer), and having the same data in two different
901 places is just asking for synchronization bugs. This may impact
906 places is just asking for synchronization bugs. This may impact
902 people who have custom exception handlers, so I need to warn
907 people who have custom exception handlers, so I need to warn
903 ipython-dev about it (F. Mantegazza may use them).
908 ipython-dev about it (F. Mantegazza may use them).
904
909
905 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
910 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
906
911
907 * IPython/genutils.py: fix 2.2 compatibility (generators)
912 * IPython/genutils.py: fix 2.2 compatibility (generators)
908
913
909 2005-07-18 Fernando Perez <fperez@colorado.edu>
914 2005-07-18 Fernando Perez <fperez@colorado.edu>
910
915
911 * IPython/genutils.py (get_home_dir): fix to help users with
916 * IPython/genutils.py (get_home_dir): fix to help users with
912 invalid $HOME under win32.
917 invalid $HOME under win32.
913
918
914 2005-07-17 Fernando Perez <fperez@colorado.edu>
919 2005-07-17 Fernando Perez <fperez@colorado.edu>
915
920
916 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
921 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
917 some old hacks and clean up a bit other routines; code should be
922 some old hacks and clean up a bit other routines; code should be
918 simpler and a bit faster.
923 simpler and a bit faster.
919
924
920 * IPython/iplib.py (interact): removed some last-resort attempts
925 * IPython/iplib.py (interact): removed some last-resort attempts
921 to survive broken stdout/stderr. That code was only making it
926 to survive broken stdout/stderr. That code was only making it
922 harder to abstract out the i/o (necessary for gui integration),
927 harder to abstract out the i/o (necessary for gui integration),
923 and the crashes it could prevent were extremely rare in practice
928 and the crashes it could prevent were extremely rare in practice
924 (besides being fully user-induced in a pretty violent manner).
929 (besides being fully user-induced in a pretty violent manner).
925
930
926 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
931 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
927 Nothing major yet, but the code is simpler to read; this should
932 Nothing major yet, but the code is simpler to read; this should
928 make it easier to do more serious modifications in the future.
933 make it easier to do more serious modifications in the future.
929
934
930 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
935 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
931 which broke in .15 (thanks to a report by Ville).
936 which broke in .15 (thanks to a report by Ville).
932
937
933 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
938 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
934 be quite correct, I know next to nothing about unicode). This
939 be quite correct, I know next to nothing about unicode). This
935 will allow unicode strings to be used in prompts, amongst other
940 will allow unicode strings to be used in prompts, amongst other
936 cases. It also will prevent ipython from crashing when unicode
941 cases. It also will prevent ipython from crashing when unicode
937 shows up unexpectedly in many places. If ascii encoding fails, we
942 shows up unexpectedly in many places. If ascii encoding fails, we
938 assume utf_8. Currently the encoding is not a user-visible
943 assume utf_8. Currently the encoding is not a user-visible
939 setting, though it could be made so if there is demand for it.
944 setting, though it could be made so if there is demand for it.
940
945
941 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
946 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
942
947
943 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
948 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
944
949
945 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
950 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
946
951
947 * IPython/genutils.py: Add 2.2 compatibility here, so all other
952 * IPython/genutils.py: Add 2.2 compatibility here, so all other
948 code can work transparently for 2.2/2.3.
953 code can work transparently for 2.2/2.3.
949
954
950 2005-07-16 Fernando Perez <fperez@colorado.edu>
955 2005-07-16 Fernando Perez <fperez@colorado.edu>
951
956
952 * IPython/ultraTB.py (ExceptionColors): Make a global variable
957 * IPython/ultraTB.py (ExceptionColors): Make a global variable
953 out of the color scheme table used for coloring exception
958 out of the color scheme table used for coloring exception
954 tracebacks. This allows user code to add new schemes at runtime.
959 tracebacks. This allows user code to add new schemes at runtime.
955 This is a minimally modified version of the patch at
960 This is a minimally modified version of the patch at
956 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
961 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
957 for the contribution.
962 for the contribution.
958
963
959 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
964 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
960 slightly modified version of the patch in
965 slightly modified version of the patch in
961 http://www.scipy.net/roundup/ipython/issue34, which also allows me
966 http://www.scipy.net/roundup/ipython/issue34, which also allows me
962 to remove the previous try/except solution (which was costlier).
967 to remove the previous try/except solution (which was costlier).
963 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
968 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
964
969
965 2005-06-08 Fernando Perez <fperez@colorado.edu>
970 2005-06-08 Fernando Perez <fperez@colorado.edu>
966
971
967 * IPython/iplib.py (write/write_err): Add methods to abstract all
972 * IPython/iplib.py (write/write_err): Add methods to abstract all
968 I/O a bit more.
973 I/O a bit more.
969
974
970 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
975 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
971 warning, reported by Aric Hagberg, fix by JD Hunter.
976 warning, reported by Aric Hagberg, fix by JD Hunter.
972
977
973 2005-06-02 *** Released version 0.6.15
978 2005-06-02 *** Released version 0.6.15
974
979
975 2005-06-01 Fernando Perez <fperez@colorado.edu>
980 2005-06-01 Fernando Perez <fperez@colorado.edu>
976
981
977 * IPython/iplib.py (MagicCompleter.file_matches): Fix
982 * IPython/iplib.py (MagicCompleter.file_matches): Fix
978 tab-completion of filenames within open-quoted strings. Note that
983 tab-completion of filenames within open-quoted strings. Note that
979 this requires that in ~/.ipython/ipythonrc, users change the
984 this requires that in ~/.ipython/ipythonrc, users change the
980 readline delimiters configuration to read:
985 readline delimiters configuration to read:
981
986
982 readline_remove_delims -/~
987 readline_remove_delims -/~
983
988
984
989
985 2005-05-31 *** Released version 0.6.14
990 2005-05-31 *** Released version 0.6.14
986
991
987 2005-05-29 Fernando Perez <fperez@colorado.edu>
992 2005-05-29 Fernando Perez <fperez@colorado.edu>
988
993
989 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
994 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
990 with files not on the filesystem. Reported by Eliyahu Sandler
995 with files not on the filesystem. Reported by Eliyahu Sandler
991 <eli@gondolin.net>
996 <eli@gondolin.net>
992
997
993 2005-05-22 Fernando Perez <fperez@colorado.edu>
998 2005-05-22 Fernando Perez <fperez@colorado.edu>
994
999
995 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1000 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
996 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1001 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
997
1002
998 2005-05-19 Fernando Perez <fperez@colorado.edu>
1003 2005-05-19 Fernando Perez <fperez@colorado.edu>
999
1004
1000 * IPython/iplib.py (safe_execfile): close a file which could be
1005 * IPython/iplib.py (safe_execfile): close a file which could be
1001 left open (causing problems in win32, which locks open files).
1006 left open (causing problems in win32, which locks open files).
1002 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1007 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1003
1008
1004 2005-05-18 Fernando Perez <fperez@colorado.edu>
1009 2005-05-18 Fernando Perez <fperez@colorado.edu>
1005
1010
1006 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1011 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1007 keyword arguments correctly to safe_execfile().
1012 keyword arguments correctly to safe_execfile().
1008
1013
1009 2005-05-13 Fernando Perez <fperez@colorado.edu>
1014 2005-05-13 Fernando Perez <fperez@colorado.edu>
1010
1015
1011 * ipython.1: Added info about Qt to manpage, and threads warning
1016 * ipython.1: Added info about Qt to manpage, and threads warning
1012 to usage page (invoked with --help).
1017 to usage page (invoked with --help).
1013
1018
1014 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1019 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1015 new matcher (it goes at the end of the priority list) to do
1020 new matcher (it goes at the end of the priority list) to do
1016 tab-completion on named function arguments. Submitted by George
1021 tab-completion on named function arguments. Submitted by George
1017 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1022 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1018 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1023 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1019 for more details.
1024 for more details.
1020
1025
1021 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1026 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1022 SystemExit exceptions in the script being run. Thanks to a report
1027 SystemExit exceptions in the script being run. Thanks to a report
1023 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1028 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1024 producing very annoying behavior when running unit tests.
1029 producing very annoying behavior when running unit tests.
1025
1030
1026 2005-05-12 Fernando Perez <fperez@colorado.edu>
1031 2005-05-12 Fernando Perez <fperez@colorado.edu>
1027
1032
1028 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1033 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1029 which I'd broken (again) due to a changed regexp. In the process,
1034 which I'd broken (again) due to a changed regexp. In the process,
1030 added ';' as an escape to auto-quote the whole line without
1035 added ';' as an escape to auto-quote the whole line without
1031 splitting its arguments. Thanks to a report by Jerry McRae
1036 splitting its arguments. Thanks to a report by Jerry McRae
1032 <qrs0xyc02-AT-sneakemail.com>.
1037 <qrs0xyc02-AT-sneakemail.com>.
1033
1038
1034 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1039 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1035 possible crashes caused by a TokenError. Reported by Ed Schofield
1040 possible crashes caused by a TokenError. Reported by Ed Schofield
1036 <schofield-AT-ftw.at>.
1041 <schofield-AT-ftw.at>.
1037
1042
1038 2005-05-06 Fernando Perez <fperez@colorado.edu>
1043 2005-05-06 Fernando Perez <fperez@colorado.edu>
1039
1044
1040 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1045 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1041
1046
1042 2005-04-29 Fernando Perez <fperez@colorado.edu>
1047 2005-04-29 Fernando Perez <fperez@colorado.edu>
1043
1048
1044 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1049 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1045 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1050 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1046 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1051 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1047 which provides support for Qt interactive usage (similar to the
1052 which provides support for Qt interactive usage (similar to the
1048 existing one for WX and GTK). This had been often requested.
1053 existing one for WX and GTK). This had been often requested.
1049
1054
1050 2005-04-14 *** Released version 0.6.13
1055 2005-04-14 *** Released version 0.6.13
1051
1056
1052 2005-04-08 Fernando Perez <fperez@colorado.edu>
1057 2005-04-08 Fernando Perez <fperez@colorado.edu>
1053
1058
1054 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1059 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1055 from _ofind, which gets called on almost every input line. Now,
1060 from _ofind, which gets called on almost every input line. Now,
1056 we only try to get docstrings if they are actually going to be
1061 we only try to get docstrings if they are actually going to be
1057 used (the overhead of fetching unnecessary docstrings can be
1062 used (the overhead of fetching unnecessary docstrings can be
1058 noticeable for certain objects, such as Pyro proxies).
1063 noticeable for certain objects, such as Pyro proxies).
1059
1064
1060 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1065 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1061 for completers. For some reason I had been passing them the state
1066 for completers. For some reason I had been passing them the state
1062 variable, which completers never actually need, and was in
1067 variable, which completers never actually need, and was in
1063 conflict with the rlcompleter API. Custom completers ONLY need to
1068 conflict with the rlcompleter API. Custom completers ONLY need to
1064 take the text parameter.
1069 take the text parameter.
1065
1070
1066 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1071 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1067 work correctly in pysh. I've also moved all the logic which used
1072 work correctly in pysh. I've also moved all the logic which used
1068 to be in pysh.py here, which will prevent problems with future
1073 to be in pysh.py here, which will prevent problems with future
1069 upgrades. However, this time I must warn users to update their
1074 upgrades. However, this time I must warn users to update their
1070 pysh profile to include the line
1075 pysh profile to include the line
1071
1076
1072 import_all IPython.Extensions.InterpreterExec
1077 import_all IPython.Extensions.InterpreterExec
1073
1078
1074 because otherwise things won't work for them. They MUST also
1079 because otherwise things won't work for them. They MUST also
1075 delete pysh.py and the line
1080 delete pysh.py and the line
1076
1081
1077 execfile pysh.py
1082 execfile pysh.py
1078
1083
1079 from their ipythonrc-pysh.
1084 from their ipythonrc-pysh.
1080
1085
1081 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1086 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1082 robust in the face of objects whose dir() returns non-strings
1087 robust in the face of objects whose dir() returns non-strings
1083 (which it shouldn't, but some broken libs like ITK do). Thanks to
1088 (which it shouldn't, but some broken libs like ITK do). Thanks to
1084 a patch by John Hunter (implemented differently, though). Also
1089 a patch by John Hunter (implemented differently, though). Also
1085 minor improvements by using .extend instead of + on lists.
1090 minor improvements by using .extend instead of + on lists.
1086
1091
1087 * pysh.py:
1092 * pysh.py:
1088
1093
1089 2005-04-06 Fernando Perez <fperez@colorado.edu>
1094 2005-04-06 Fernando Perez <fperez@colorado.edu>
1090
1095
1091 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1096 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1092 by default, so that all users benefit from it. Those who don't
1097 by default, so that all users benefit from it. Those who don't
1093 want it can still turn it off.
1098 want it can still turn it off.
1094
1099
1095 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1100 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1096 config file, I'd forgotten about this, so users were getting it
1101 config file, I'd forgotten about this, so users were getting it
1097 off by default.
1102 off by default.
1098
1103
1099 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1104 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1100 consistency. Now magics can be called in multiline statements,
1105 consistency. Now magics can be called in multiline statements,
1101 and python variables can be expanded in magic calls via $var.
1106 and python variables can be expanded in magic calls via $var.
1102 This makes the magic system behave just like aliases or !system
1107 This makes the magic system behave just like aliases or !system
1103 calls.
1108 calls.
1104
1109
1105 2005-03-28 Fernando Perez <fperez@colorado.edu>
1110 2005-03-28 Fernando Perez <fperez@colorado.edu>
1106
1111
1107 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1112 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1108 expensive string additions for building command. Add support for
1113 expensive string additions for building command. Add support for
1109 trailing ';' when autocall is used.
1114 trailing ';' when autocall is used.
1110
1115
1111 2005-03-26 Fernando Perez <fperez@colorado.edu>
1116 2005-03-26 Fernando Perez <fperez@colorado.edu>
1112
1117
1113 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1118 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1114 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1119 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1115 ipython.el robust against prompts with any number of spaces
1120 ipython.el robust against prompts with any number of spaces
1116 (including 0) after the ':' character.
1121 (including 0) after the ':' character.
1117
1122
1118 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1123 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1119 continuation prompt, which misled users to think the line was
1124 continuation prompt, which misled users to think the line was
1120 already indented. Closes debian Bug#300847, reported to me by
1125 already indented. Closes debian Bug#300847, reported to me by
1121 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1126 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1122
1127
1123 2005-03-23 Fernando Perez <fperez@colorado.edu>
1128 2005-03-23 Fernando Perez <fperez@colorado.edu>
1124
1129
1125 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1130 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1126 properly aligned if they have embedded newlines.
1131 properly aligned if they have embedded newlines.
1127
1132
1128 * IPython/iplib.py (runlines): Add a public method to expose
1133 * IPython/iplib.py (runlines): Add a public method to expose
1129 IPython's code execution machinery, so that users can run strings
1134 IPython's code execution machinery, so that users can run strings
1130 as if they had been typed at the prompt interactively.
1135 as if they had been typed at the prompt interactively.
1131 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1136 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1132 methods which can call the system shell, but with python variable
1137 methods which can call the system shell, but with python variable
1133 expansion. The three such methods are: __IPYTHON__.system,
1138 expansion. The three such methods are: __IPYTHON__.system,
1134 .getoutput and .getoutputerror. These need to be documented in a
1139 .getoutput and .getoutputerror. These need to be documented in a
1135 'public API' section (to be written) of the manual.
1140 'public API' section (to be written) of the manual.
1136
1141
1137 2005-03-20 Fernando Perez <fperez@colorado.edu>
1142 2005-03-20 Fernando Perez <fperez@colorado.edu>
1138
1143
1139 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1144 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1140 for custom exception handling. This is quite powerful, and it
1145 for custom exception handling. This is quite powerful, and it
1141 allows for user-installable exception handlers which can trap
1146 allows for user-installable exception handlers which can trap
1142 custom exceptions at runtime and treat them separately from
1147 custom exceptions at runtime and treat them separately from
1143 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1148 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1144 Mantegazza <mantegazza-AT-ill.fr>.
1149 Mantegazza <mantegazza-AT-ill.fr>.
1145 (InteractiveShell.set_custom_completer): public API function to
1150 (InteractiveShell.set_custom_completer): public API function to
1146 add new completers at runtime.
1151 add new completers at runtime.
1147
1152
1148 2005-03-19 Fernando Perez <fperez@colorado.edu>
1153 2005-03-19 Fernando Perez <fperez@colorado.edu>
1149
1154
1150 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1155 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1151 allow objects which provide their docstrings via non-standard
1156 allow objects which provide their docstrings via non-standard
1152 mechanisms (like Pyro proxies) to still be inspected by ipython's
1157 mechanisms (like Pyro proxies) to still be inspected by ipython's
1153 ? system.
1158 ? system.
1154
1159
1155 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1160 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1156 automatic capture system. I tried quite hard to make it work
1161 automatic capture system. I tried quite hard to make it work
1157 reliably, and simply failed. I tried many combinations with the
1162 reliably, and simply failed. I tried many combinations with the
1158 subprocess module, but eventually nothing worked in all needed
1163 subprocess module, but eventually nothing worked in all needed
1159 cases (not blocking stdin for the child, duplicating stdout
1164 cases (not blocking stdin for the child, duplicating stdout
1160 without blocking, etc). The new %sc/%sx still do capture to these
1165 without blocking, etc). The new %sc/%sx still do capture to these
1161 magical list/string objects which make shell use much more
1166 magical list/string objects which make shell use much more
1162 conveninent, so not all is lost.
1167 conveninent, so not all is lost.
1163
1168
1164 XXX - FIX MANUAL for the change above!
1169 XXX - FIX MANUAL for the change above!
1165
1170
1166 (runsource): I copied code.py's runsource() into ipython to modify
1171 (runsource): I copied code.py's runsource() into ipython to modify
1167 it a bit. Now the code object and source to be executed are
1172 it a bit. Now the code object and source to be executed are
1168 stored in ipython. This makes this info accessible to third-party
1173 stored in ipython. This makes this info accessible to third-party
1169 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1174 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1170 Mantegazza <mantegazza-AT-ill.fr>.
1175 Mantegazza <mantegazza-AT-ill.fr>.
1171
1176
1172 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1177 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1173 history-search via readline (like C-p/C-n). I'd wanted this for a
1178 history-search via readline (like C-p/C-n). I'd wanted this for a
1174 long time, but only recently found out how to do it. For users
1179 long time, but only recently found out how to do it. For users
1175 who already have their ipythonrc files made and want this, just
1180 who already have their ipythonrc files made and want this, just
1176 add:
1181 add:
1177
1182
1178 readline_parse_and_bind "\e[A": history-search-backward
1183 readline_parse_and_bind "\e[A": history-search-backward
1179 readline_parse_and_bind "\e[B": history-search-forward
1184 readline_parse_and_bind "\e[B": history-search-forward
1180
1185
1181 2005-03-18 Fernando Perez <fperez@colorado.edu>
1186 2005-03-18 Fernando Perez <fperez@colorado.edu>
1182
1187
1183 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1188 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1184 LSString and SList classes which allow transparent conversions
1189 LSString and SList classes which allow transparent conversions
1185 between list mode and whitespace-separated string.
1190 between list mode and whitespace-separated string.
1186 (magic_r): Fix recursion problem in %r.
1191 (magic_r): Fix recursion problem in %r.
1187
1192
1188 * IPython/genutils.py (LSString): New class to be used for
1193 * IPython/genutils.py (LSString): New class to be used for
1189 automatic storage of the results of all alias/system calls in _o
1194 automatic storage of the results of all alias/system calls in _o
1190 and _e (stdout/err). These provide a .l/.list attribute which
1195 and _e (stdout/err). These provide a .l/.list attribute which
1191 does automatic splitting on newlines. This means that for most
1196 does automatic splitting on newlines. This means that for most
1192 uses, you'll never need to do capturing of output with %sc/%sx
1197 uses, you'll never need to do capturing of output with %sc/%sx
1193 anymore, since ipython keeps this always done for you. Note that
1198 anymore, since ipython keeps this always done for you. Note that
1194 only the LAST results are stored, the _o/e variables are
1199 only the LAST results are stored, the _o/e variables are
1195 overwritten on each call. If you need to save their contents
1200 overwritten on each call. If you need to save their contents
1196 further, simply bind them to any other name.
1201 further, simply bind them to any other name.
1197
1202
1198 2005-03-17 Fernando Perez <fperez@colorado.edu>
1203 2005-03-17 Fernando Perez <fperez@colorado.edu>
1199
1204
1200 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1205 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1201 prompt namespace handling.
1206 prompt namespace handling.
1202
1207
1203 2005-03-16 Fernando Perez <fperez@colorado.edu>
1208 2005-03-16 Fernando Perez <fperez@colorado.edu>
1204
1209
1205 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1210 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1206 classic prompts to be '>>> ' (final space was missing, and it
1211 classic prompts to be '>>> ' (final space was missing, and it
1207 trips the emacs python mode).
1212 trips the emacs python mode).
1208 (BasePrompt.__str__): Added safe support for dynamic prompt
1213 (BasePrompt.__str__): Added safe support for dynamic prompt
1209 strings. Now you can set your prompt string to be '$x', and the
1214 strings. Now you can set your prompt string to be '$x', and the
1210 value of x will be printed from your interactive namespace. The
1215 value of x will be printed from your interactive namespace. The
1211 interpolation syntax includes the full Itpl support, so
1216 interpolation syntax includes the full Itpl support, so
1212 ${foo()+x+bar()} is a valid prompt string now, and the function
1217 ${foo()+x+bar()} is a valid prompt string now, and the function
1213 calls will be made at runtime.
1218 calls will be made at runtime.
1214
1219
1215 2005-03-15 Fernando Perez <fperez@colorado.edu>
1220 2005-03-15 Fernando Perez <fperez@colorado.edu>
1216
1221
1217 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1222 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1218 avoid name clashes in pylab. %hist still works, it just forwards
1223 avoid name clashes in pylab. %hist still works, it just forwards
1219 the call to %history.
1224 the call to %history.
1220
1225
1221 2005-03-02 *** Released version 0.6.12
1226 2005-03-02 *** Released version 0.6.12
1222
1227
1223 2005-03-02 Fernando Perez <fperez@colorado.edu>
1228 2005-03-02 Fernando Perez <fperez@colorado.edu>
1224
1229
1225 * IPython/iplib.py (handle_magic): log magic calls properly as
1230 * IPython/iplib.py (handle_magic): log magic calls properly as
1226 ipmagic() function calls.
1231 ipmagic() function calls.
1227
1232
1228 * IPython/Magic.py (magic_time): Improved %time to support
1233 * IPython/Magic.py (magic_time): Improved %time to support
1229 statements and provide wall-clock as well as CPU time.
1234 statements and provide wall-clock as well as CPU time.
1230
1235
1231 2005-02-27 Fernando Perez <fperez@colorado.edu>
1236 2005-02-27 Fernando Perez <fperez@colorado.edu>
1232
1237
1233 * IPython/hooks.py: New hooks module, to expose user-modifiable
1238 * IPython/hooks.py: New hooks module, to expose user-modifiable
1234 IPython functionality in a clean manner. For now only the editor
1239 IPython functionality in a clean manner. For now only the editor
1235 hook is actually written, and other thigns which I intend to turn
1240 hook is actually written, and other thigns which I intend to turn
1236 into proper hooks aren't yet there. The display and prefilter
1241 into proper hooks aren't yet there. The display and prefilter
1237 stuff, for example, should be hooks. But at least now the
1242 stuff, for example, should be hooks. But at least now the
1238 framework is in place, and the rest can be moved here with more
1243 framework is in place, and the rest can be moved here with more
1239 time later. IPython had had a .hooks variable for a long time for
1244 time later. IPython had had a .hooks variable for a long time for
1240 this purpose, but I'd never actually used it for anything.
1245 this purpose, but I'd never actually used it for anything.
1241
1246
1242 2005-02-26 Fernando Perez <fperez@colorado.edu>
1247 2005-02-26 Fernando Perez <fperez@colorado.edu>
1243
1248
1244 * IPython/ipmaker.py (make_IPython): make the default ipython
1249 * IPython/ipmaker.py (make_IPython): make the default ipython
1245 directory be called _ipython under win32, to follow more the
1250 directory be called _ipython under win32, to follow more the
1246 naming peculiarities of that platform (where buggy software like
1251 naming peculiarities of that platform (where buggy software like
1247 Visual Sourcesafe breaks with .named directories). Reported by
1252 Visual Sourcesafe breaks with .named directories). Reported by
1248 Ville Vainio.
1253 Ville Vainio.
1249
1254
1250 2005-02-23 Fernando Perez <fperez@colorado.edu>
1255 2005-02-23 Fernando Perez <fperez@colorado.edu>
1251
1256
1252 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1257 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1253 auto_aliases for win32 which were causing problems. Users can
1258 auto_aliases for win32 which were causing problems. Users can
1254 define the ones they personally like.
1259 define the ones they personally like.
1255
1260
1256 2005-02-21 Fernando Perez <fperez@colorado.edu>
1261 2005-02-21 Fernando Perez <fperez@colorado.edu>
1257
1262
1258 * IPython/Magic.py (magic_time): new magic to time execution of
1263 * IPython/Magic.py (magic_time): new magic to time execution of
1259 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1264 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1260
1265
1261 2005-02-19 Fernando Perez <fperez@colorado.edu>
1266 2005-02-19 Fernando Perez <fperez@colorado.edu>
1262
1267
1263 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1268 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1264 into keys (for prompts, for example).
1269 into keys (for prompts, for example).
1265
1270
1266 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1271 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1267 prompts in case users want them. This introduces a small behavior
1272 prompts in case users want them. This introduces a small behavior
1268 change: ipython does not automatically add a space to all prompts
1273 change: ipython does not automatically add a space to all prompts
1269 anymore. To get the old prompts with a space, users should add it
1274 anymore. To get the old prompts with a space, users should add it
1270 manually to their ipythonrc file, so for example prompt_in1 should
1275 manually to their ipythonrc file, so for example prompt_in1 should
1271 now read 'In [\#]: ' instead of 'In [\#]:'.
1276 now read 'In [\#]: ' instead of 'In [\#]:'.
1272 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1277 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1273 file) to control left-padding of secondary prompts.
1278 file) to control left-padding of secondary prompts.
1274
1279
1275 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1280 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1276 the profiler can't be imported. Fix for Debian, which removed
1281 the profiler can't be imported. Fix for Debian, which removed
1277 profile.py because of License issues. I applied a slightly
1282 profile.py because of License issues. I applied a slightly
1278 modified version of the original Debian patch at
1283 modified version of the original Debian patch at
1279 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1284 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1280
1285
1281 2005-02-17 Fernando Perez <fperez@colorado.edu>
1286 2005-02-17 Fernando Perez <fperez@colorado.edu>
1282
1287
1283 * IPython/genutils.py (native_line_ends): Fix bug which would
1288 * IPython/genutils.py (native_line_ends): Fix bug which would
1284 cause improper line-ends under win32 b/c I was not opening files
1289 cause improper line-ends under win32 b/c I was not opening files
1285 in binary mode. Bug report and fix thanks to Ville.
1290 in binary mode. Bug report and fix thanks to Ville.
1286
1291
1287 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1292 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1288 trying to catch spurious foo[1] autocalls. My fix actually broke
1293 trying to catch spurious foo[1] autocalls. My fix actually broke
1289 ',/' autoquote/call with explicit escape (bad regexp).
1294 ',/' autoquote/call with explicit escape (bad regexp).
1290
1295
1291 2005-02-15 *** Released version 0.6.11
1296 2005-02-15 *** Released version 0.6.11
1292
1297
1293 2005-02-14 Fernando Perez <fperez@colorado.edu>
1298 2005-02-14 Fernando Perez <fperez@colorado.edu>
1294
1299
1295 * IPython/background_jobs.py: New background job management
1300 * IPython/background_jobs.py: New background job management
1296 subsystem. This is implemented via a new set of classes, and
1301 subsystem. This is implemented via a new set of classes, and
1297 IPython now provides a builtin 'jobs' object for background job
1302 IPython now provides a builtin 'jobs' object for background job
1298 execution. A convenience %bg magic serves as a lightweight
1303 execution. A convenience %bg magic serves as a lightweight
1299 frontend for starting the more common type of calls. This was
1304 frontend for starting the more common type of calls. This was
1300 inspired by discussions with B. Granger and the BackgroundCommand
1305 inspired by discussions with B. Granger and the BackgroundCommand
1301 class described in the book Python Scripting for Computational
1306 class described in the book Python Scripting for Computational
1302 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1307 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1303 (although ultimately no code from this text was used, as IPython's
1308 (although ultimately no code from this text was used, as IPython's
1304 system is a separate implementation).
1309 system is a separate implementation).
1305
1310
1306 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1311 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1307 to control the completion of single/double underscore names
1312 to control the completion of single/double underscore names
1308 separately. As documented in the example ipytonrc file, the
1313 separately. As documented in the example ipytonrc file, the
1309 readline_omit__names variable can now be set to 2, to omit even
1314 readline_omit__names variable can now be set to 2, to omit even
1310 single underscore names. Thanks to a patch by Brian Wong
1315 single underscore names. Thanks to a patch by Brian Wong
1311 <BrianWong-AT-AirgoNetworks.Com>.
1316 <BrianWong-AT-AirgoNetworks.Com>.
1312 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1317 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1313 be autocalled as foo([1]) if foo were callable. A problem for
1318 be autocalled as foo([1]) if foo were callable. A problem for
1314 things which are both callable and implement __getitem__.
1319 things which are both callable and implement __getitem__.
1315 (init_readline): Fix autoindentation for win32. Thanks to a patch
1320 (init_readline): Fix autoindentation for win32. Thanks to a patch
1316 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1321 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1317
1322
1318 2005-02-12 Fernando Perez <fperez@colorado.edu>
1323 2005-02-12 Fernando Perez <fperez@colorado.edu>
1319
1324
1320 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1325 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1321 which I had written long ago to sort out user error messages which
1326 which I had written long ago to sort out user error messages which
1322 may occur during startup. This seemed like a good idea initially,
1327 may occur during startup. This seemed like a good idea initially,
1323 but it has proven a disaster in retrospect. I don't want to
1328 but it has proven a disaster in retrospect. I don't want to
1324 change much code for now, so my fix is to set the internal 'debug'
1329 change much code for now, so my fix is to set the internal 'debug'
1325 flag to true everywhere, whose only job was precisely to control
1330 flag to true everywhere, whose only job was precisely to control
1326 this subsystem. This closes issue 28 (as well as avoiding all
1331 this subsystem. This closes issue 28 (as well as avoiding all
1327 sorts of strange hangups which occur from time to time).
1332 sorts of strange hangups which occur from time to time).
1328
1333
1329 2005-02-07 Fernando Perez <fperez@colorado.edu>
1334 2005-02-07 Fernando Perez <fperez@colorado.edu>
1330
1335
1331 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1336 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1332 previous call produced a syntax error.
1337 previous call produced a syntax error.
1333
1338
1334 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1339 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1335 classes without constructor.
1340 classes without constructor.
1336
1341
1337 2005-02-06 Fernando Perez <fperez@colorado.edu>
1342 2005-02-06 Fernando Perez <fperez@colorado.edu>
1338
1343
1339 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1344 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1340 completions with the results of each matcher, so we return results
1345 completions with the results of each matcher, so we return results
1341 to the user from all namespaces. This breaks with ipython
1346 to the user from all namespaces. This breaks with ipython
1342 tradition, but I think it's a nicer behavior. Now you get all
1347 tradition, but I think it's a nicer behavior. Now you get all
1343 possible completions listed, from all possible namespaces (python,
1348 possible completions listed, from all possible namespaces (python,
1344 filesystem, magics...) After a request by John Hunter
1349 filesystem, magics...) After a request by John Hunter
1345 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1350 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1346
1351
1347 2005-02-05 Fernando Perez <fperez@colorado.edu>
1352 2005-02-05 Fernando Perez <fperez@colorado.edu>
1348
1353
1349 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1354 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1350 the call had quote characters in it (the quotes were stripped).
1355 the call had quote characters in it (the quotes were stripped).
1351
1356
1352 2005-01-31 Fernando Perez <fperez@colorado.edu>
1357 2005-01-31 Fernando Perez <fperez@colorado.edu>
1353
1358
1354 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1359 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1355 Itpl.itpl() to make the code more robust against psyco
1360 Itpl.itpl() to make the code more robust against psyco
1356 optimizations.
1361 optimizations.
1357
1362
1358 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1363 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1359 of causing an exception. Quicker, cleaner.
1364 of causing an exception. Quicker, cleaner.
1360
1365
1361 2005-01-28 Fernando Perez <fperez@colorado.edu>
1366 2005-01-28 Fernando Perez <fperez@colorado.edu>
1362
1367
1363 * scripts/ipython_win_post_install.py (install): hardcode
1368 * scripts/ipython_win_post_install.py (install): hardcode
1364 sys.prefix+'python.exe' as the executable path. It turns out that
1369 sys.prefix+'python.exe' as the executable path. It turns out that
1365 during the post-installation run, sys.executable resolves to the
1370 during the post-installation run, sys.executable resolves to the
1366 name of the binary installer! I should report this as a distutils
1371 name of the binary installer! I should report this as a distutils
1367 bug, I think. I updated the .10 release with this tiny fix, to
1372 bug, I think. I updated the .10 release with this tiny fix, to
1368 avoid annoying the lists further.
1373 avoid annoying the lists further.
1369
1374
1370 2005-01-27 *** Released version 0.6.10
1375 2005-01-27 *** Released version 0.6.10
1371
1376
1372 2005-01-27 Fernando Perez <fperez@colorado.edu>
1377 2005-01-27 Fernando Perez <fperez@colorado.edu>
1373
1378
1374 * IPython/numutils.py (norm): Added 'inf' as optional name for
1379 * IPython/numutils.py (norm): Added 'inf' as optional name for
1375 L-infinity norm, included references to mathworld.com for vector
1380 L-infinity norm, included references to mathworld.com for vector
1376 norm definitions.
1381 norm definitions.
1377 (amin/amax): added amin/amax for array min/max. Similar to what
1382 (amin/amax): added amin/amax for array min/max. Similar to what
1378 pylab ships with after the recent reorganization of names.
1383 pylab ships with after the recent reorganization of names.
1379 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1384 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1380
1385
1381 * ipython.el: committed Alex's recent fixes and improvements.
1386 * ipython.el: committed Alex's recent fixes and improvements.
1382 Tested with python-mode from CVS, and it looks excellent. Since
1387 Tested with python-mode from CVS, and it looks excellent. Since
1383 python-mode hasn't released anything in a while, I'm temporarily
1388 python-mode hasn't released anything in a while, I'm temporarily
1384 putting a copy of today's CVS (v 4.70) of python-mode in:
1389 putting a copy of today's CVS (v 4.70) of python-mode in:
1385 http://ipython.scipy.org/tmp/python-mode.el
1390 http://ipython.scipy.org/tmp/python-mode.el
1386
1391
1387 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1392 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1388 sys.executable for the executable name, instead of assuming it's
1393 sys.executable for the executable name, instead of assuming it's
1389 called 'python.exe' (the post-installer would have produced broken
1394 called 'python.exe' (the post-installer would have produced broken
1390 setups on systems with a differently named python binary).
1395 setups on systems with a differently named python binary).
1391
1396
1392 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1397 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1393 references to os.linesep, to make the code more
1398 references to os.linesep, to make the code more
1394 platform-independent. This is also part of the win32 coloring
1399 platform-independent. This is also part of the win32 coloring
1395 fixes.
1400 fixes.
1396
1401
1397 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1402 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1398 lines, which actually cause coloring bugs because the length of
1403 lines, which actually cause coloring bugs because the length of
1399 the line is very difficult to correctly compute with embedded
1404 the line is very difficult to correctly compute with embedded
1400 escapes. This was the source of all the coloring problems under
1405 escapes. This was the source of all the coloring problems under
1401 Win32. I think that _finally_, Win32 users have a properly
1406 Win32. I think that _finally_, Win32 users have a properly
1402 working ipython in all respects. This would never have happened
1407 working ipython in all respects. This would never have happened
1403 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1408 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1404
1409
1405 2005-01-26 *** Released version 0.6.9
1410 2005-01-26 *** Released version 0.6.9
1406
1411
1407 2005-01-25 Fernando Perez <fperez@colorado.edu>
1412 2005-01-25 Fernando Perez <fperez@colorado.edu>
1408
1413
1409 * setup.py: finally, we have a true Windows installer, thanks to
1414 * setup.py: finally, we have a true Windows installer, thanks to
1410 the excellent work of Viktor Ransmayr
1415 the excellent work of Viktor Ransmayr
1411 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1416 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1412 Windows users. The setup routine is quite a bit cleaner thanks to
1417 Windows users. The setup routine is quite a bit cleaner thanks to
1413 this, and the post-install script uses the proper functions to
1418 this, and the post-install script uses the proper functions to
1414 allow a clean de-installation using the standard Windows Control
1419 allow a clean de-installation using the standard Windows Control
1415 Panel.
1420 Panel.
1416
1421
1417 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1422 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1418 environment variable under all OSes (including win32) if
1423 environment variable under all OSes (including win32) if
1419 available. This will give consistency to win32 users who have set
1424 available. This will give consistency to win32 users who have set
1420 this variable for any reason. If os.environ['HOME'] fails, the
1425 this variable for any reason. If os.environ['HOME'] fails, the
1421 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1426 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1422
1427
1423 2005-01-24 Fernando Perez <fperez@colorado.edu>
1428 2005-01-24 Fernando Perez <fperez@colorado.edu>
1424
1429
1425 * IPython/numutils.py (empty_like): add empty_like(), similar to
1430 * IPython/numutils.py (empty_like): add empty_like(), similar to
1426 zeros_like() but taking advantage of the new empty() Numeric routine.
1431 zeros_like() but taking advantage of the new empty() Numeric routine.
1427
1432
1428 2005-01-23 *** Released version 0.6.8
1433 2005-01-23 *** Released version 0.6.8
1429
1434
1430 2005-01-22 Fernando Perez <fperez@colorado.edu>
1435 2005-01-22 Fernando Perez <fperez@colorado.edu>
1431
1436
1432 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1437 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1433 automatic show() calls. After discussing things with JDH, it
1438 automatic show() calls. After discussing things with JDH, it
1434 turns out there are too many corner cases where this can go wrong.
1439 turns out there are too many corner cases where this can go wrong.
1435 It's best not to try to be 'too smart', and simply have ipython
1440 It's best not to try to be 'too smart', and simply have ipython
1436 reproduce as much as possible the default behavior of a normal
1441 reproduce as much as possible the default behavior of a normal
1437 python shell.
1442 python shell.
1438
1443
1439 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1444 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1440 line-splitting regexp and _prefilter() to avoid calling getattr()
1445 line-splitting regexp and _prefilter() to avoid calling getattr()
1441 on assignments. This closes
1446 on assignments. This closes
1442 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1447 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1443 readline uses getattr(), so a simple <TAB> keypress is still
1448 readline uses getattr(), so a simple <TAB> keypress is still
1444 enough to trigger getattr() calls on an object.
1449 enough to trigger getattr() calls on an object.
1445
1450
1446 2005-01-21 Fernando Perez <fperez@colorado.edu>
1451 2005-01-21 Fernando Perez <fperez@colorado.edu>
1447
1452
1448 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1453 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1449 docstring under pylab so it doesn't mask the original.
1454 docstring under pylab so it doesn't mask the original.
1450
1455
1451 2005-01-21 *** Released version 0.6.7
1456 2005-01-21 *** Released version 0.6.7
1452
1457
1453 2005-01-21 Fernando Perez <fperez@colorado.edu>
1458 2005-01-21 Fernando Perez <fperez@colorado.edu>
1454
1459
1455 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1460 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1456 signal handling for win32 users in multithreaded mode.
1461 signal handling for win32 users in multithreaded mode.
1457
1462
1458 2005-01-17 Fernando Perez <fperez@colorado.edu>
1463 2005-01-17 Fernando Perez <fperez@colorado.edu>
1459
1464
1460 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1465 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1461 instances with no __init__. After a crash report by Norbert Nemec
1466 instances with no __init__. After a crash report by Norbert Nemec
1462 <Norbert-AT-nemec-online.de>.
1467 <Norbert-AT-nemec-online.de>.
1463
1468
1464 2005-01-14 Fernando Perez <fperez@colorado.edu>
1469 2005-01-14 Fernando Perez <fperez@colorado.edu>
1465
1470
1466 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1471 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1467 names for verbose exceptions, when multiple dotted names and the
1472 names for verbose exceptions, when multiple dotted names and the
1468 'parent' object were present on the same line.
1473 'parent' object were present on the same line.
1469
1474
1470 2005-01-11 Fernando Perez <fperez@colorado.edu>
1475 2005-01-11 Fernando Perez <fperez@colorado.edu>
1471
1476
1472 * IPython/genutils.py (flag_calls): new utility to trap and flag
1477 * IPython/genutils.py (flag_calls): new utility to trap and flag
1473 calls in functions. I need it to clean up matplotlib support.
1478 calls in functions. I need it to clean up matplotlib support.
1474 Also removed some deprecated code in genutils.
1479 Also removed some deprecated code in genutils.
1475
1480
1476 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1481 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1477 that matplotlib scripts called with %run, which don't call show()
1482 that matplotlib scripts called with %run, which don't call show()
1478 themselves, still have their plotting windows open.
1483 themselves, still have their plotting windows open.
1479
1484
1480 2005-01-05 Fernando Perez <fperez@colorado.edu>
1485 2005-01-05 Fernando Perez <fperez@colorado.edu>
1481
1486
1482 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1487 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1483 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1488 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1484
1489
1485 2004-12-19 Fernando Perez <fperez@colorado.edu>
1490 2004-12-19 Fernando Perez <fperez@colorado.edu>
1486
1491
1487 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1492 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1488 parent_runcode, which was an eyesore. The same result can be
1493 parent_runcode, which was an eyesore. The same result can be
1489 obtained with Python's regular superclass mechanisms.
1494 obtained with Python's regular superclass mechanisms.
1490
1495
1491 2004-12-17 Fernando Perez <fperez@colorado.edu>
1496 2004-12-17 Fernando Perez <fperez@colorado.edu>
1492
1497
1493 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1498 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1494 reported by Prabhu.
1499 reported by Prabhu.
1495 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1500 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1496 sys.stderr) instead of explicitly calling sys.stderr. This helps
1501 sys.stderr) instead of explicitly calling sys.stderr. This helps
1497 maintain our I/O abstractions clean, for future GUI embeddings.
1502 maintain our I/O abstractions clean, for future GUI embeddings.
1498
1503
1499 * IPython/genutils.py (info): added new utility for sys.stderr
1504 * IPython/genutils.py (info): added new utility for sys.stderr
1500 unified info message handling (thin wrapper around warn()).
1505 unified info message handling (thin wrapper around warn()).
1501
1506
1502 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1507 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1503 composite (dotted) names on verbose exceptions.
1508 composite (dotted) names on verbose exceptions.
1504 (VerboseTB.nullrepr): harden against another kind of errors which
1509 (VerboseTB.nullrepr): harden against another kind of errors which
1505 Python's inspect module can trigger, and which were crashing
1510 Python's inspect module can trigger, and which were crashing
1506 IPython. Thanks to a report by Marco Lombardi
1511 IPython. Thanks to a report by Marco Lombardi
1507 <mlombard-AT-ma010192.hq.eso.org>.
1512 <mlombard-AT-ma010192.hq.eso.org>.
1508
1513
1509 2004-12-13 *** Released version 0.6.6
1514 2004-12-13 *** Released version 0.6.6
1510
1515
1511 2004-12-12 Fernando Perez <fperez@colorado.edu>
1516 2004-12-12 Fernando Perez <fperez@colorado.edu>
1512
1517
1513 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1518 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1514 generated by pygtk upon initialization if it was built without
1519 generated by pygtk upon initialization if it was built without
1515 threads (for matplotlib users). After a crash reported by
1520 threads (for matplotlib users). After a crash reported by
1516 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1521 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1517
1522
1518 * IPython/ipmaker.py (make_IPython): fix small bug in the
1523 * IPython/ipmaker.py (make_IPython): fix small bug in the
1519 import_some parameter for multiple imports.
1524 import_some parameter for multiple imports.
1520
1525
1521 * IPython/iplib.py (ipmagic): simplified the interface of
1526 * IPython/iplib.py (ipmagic): simplified the interface of
1522 ipmagic() to take a single string argument, just as it would be
1527 ipmagic() to take a single string argument, just as it would be
1523 typed at the IPython cmd line.
1528 typed at the IPython cmd line.
1524 (ipalias): Added new ipalias() with an interface identical to
1529 (ipalias): Added new ipalias() with an interface identical to
1525 ipmagic(). This completes exposing a pure python interface to the
1530 ipmagic(). This completes exposing a pure python interface to the
1526 alias and magic system, which can be used in loops or more complex
1531 alias and magic system, which can be used in loops or more complex
1527 code where IPython's automatic line mangling is not active.
1532 code where IPython's automatic line mangling is not active.
1528
1533
1529 * IPython/genutils.py (timing): changed interface of timing to
1534 * IPython/genutils.py (timing): changed interface of timing to
1530 simply run code once, which is the most common case. timings()
1535 simply run code once, which is the most common case. timings()
1531 remains unchanged, for the cases where you want multiple runs.
1536 remains unchanged, for the cases where you want multiple runs.
1532
1537
1533 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1538 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1534 bug where Python2.2 crashes with exec'ing code which does not end
1539 bug where Python2.2 crashes with exec'ing code which does not end
1535 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1540 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1536 before.
1541 before.
1537
1542
1538 2004-12-10 Fernando Perez <fperez@colorado.edu>
1543 2004-12-10 Fernando Perez <fperez@colorado.edu>
1539
1544
1540 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1545 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1541 -t to -T, to accomodate the new -t flag in %run (the %run and
1546 -t to -T, to accomodate the new -t flag in %run (the %run and
1542 %prun options are kind of intermixed, and it's not easy to change
1547 %prun options are kind of intermixed, and it's not easy to change
1543 this with the limitations of python's getopt).
1548 this with the limitations of python's getopt).
1544
1549
1545 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1550 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1546 the execution of scripts. It's not as fine-tuned as timeit.py,
1551 the execution of scripts. It's not as fine-tuned as timeit.py,
1547 but it works from inside ipython (and under 2.2, which lacks
1552 but it works from inside ipython (and under 2.2, which lacks
1548 timeit.py). Optionally a number of runs > 1 can be given for
1553 timeit.py). Optionally a number of runs > 1 can be given for
1549 timing very short-running code.
1554 timing very short-running code.
1550
1555
1551 * IPython/genutils.py (uniq_stable): new routine which returns a
1556 * IPython/genutils.py (uniq_stable): new routine which returns a
1552 list of unique elements in any iterable, but in stable order of
1557 list of unique elements in any iterable, but in stable order of
1553 appearance. I needed this for the ultraTB fixes, and it's a handy
1558 appearance. I needed this for the ultraTB fixes, and it's a handy
1554 utility.
1559 utility.
1555
1560
1556 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1561 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1557 dotted names in Verbose exceptions. This had been broken since
1562 dotted names in Verbose exceptions. This had been broken since
1558 the very start, now x.y will properly be printed in a Verbose
1563 the very start, now x.y will properly be printed in a Verbose
1559 traceback, instead of x being shown and y appearing always as an
1564 traceback, instead of x being shown and y appearing always as an
1560 'undefined global'. Getting this to work was a bit tricky,
1565 'undefined global'. Getting this to work was a bit tricky,
1561 because by default python tokenizers are stateless. Saved by
1566 because by default python tokenizers are stateless. Saved by
1562 python's ability to easily add a bit of state to an arbitrary
1567 python's ability to easily add a bit of state to an arbitrary
1563 function (without needing to build a full-blown callable object).
1568 function (without needing to build a full-blown callable object).
1564
1569
1565 Also big cleanup of this code, which had horrendous runtime
1570 Also big cleanup of this code, which had horrendous runtime
1566 lookups of zillions of attributes for colorization. Moved all
1571 lookups of zillions of attributes for colorization. Moved all
1567 this code into a few templates, which make it cleaner and quicker.
1572 this code into a few templates, which make it cleaner and quicker.
1568
1573
1569 Printout quality was also improved for Verbose exceptions: one
1574 Printout quality was also improved for Verbose exceptions: one
1570 variable per line, and memory addresses are printed (this can be
1575 variable per line, and memory addresses are printed (this can be
1571 quite handy in nasty debugging situations, which is what Verbose
1576 quite handy in nasty debugging situations, which is what Verbose
1572 is for).
1577 is for).
1573
1578
1574 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1579 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1575 the command line as scripts to be loaded by embedded instances.
1580 the command line as scripts to be loaded by embedded instances.
1576 Doing so has the potential for an infinite recursion if there are
1581 Doing so has the potential for an infinite recursion if there are
1577 exceptions thrown in the process. This fixes a strange crash
1582 exceptions thrown in the process. This fixes a strange crash
1578 reported by Philippe MULLER <muller-AT-irit.fr>.
1583 reported by Philippe MULLER <muller-AT-irit.fr>.
1579
1584
1580 2004-12-09 Fernando Perez <fperez@colorado.edu>
1585 2004-12-09 Fernando Perez <fperez@colorado.edu>
1581
1586
1582 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1587 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1583 to reflect new names in matplotlib, which now expose the
1588 to reflect new names in matplotlib, which now expose the
1584 matlab-compatible interface via a pylab module instead of the
1589 matlab-compatible interface via a pylab module instead of the
1585 'matlab' name. The new code is backwards compatible, so users of
1590 'matlab' name. The new code is backwards compatible, so users of
1586 all matplotlib versions are OK. Patch by J. Hunter.
1591 all matplotlib versions are OK. Patch by J. Hunter.
1587
1592
1588 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1593 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1589 of __init__ docstrings for instances (class docstrings are already
1594 of __init__ docstrings for instances (class docstrings are already
1590 automatically printed). Instances with customized docstrings
1595 automatically printed). Instances with customized docstrings
1591 (indep. of the class) are also recognized and all 3 separate
1596 (indep. of the class) are also recognized and all 3 separate
1592 docstrings are printed (instance, class, constructor). After some
1597 docstrings are printed (instance, class, constructor). After some
1593 comments/suggestions by J. Hunter.
1598 comments/suggestions by J. Hunter.
1594
1599
1595 2004-12-05 Fernando Perez <fperez@colorado.edu>
1600 2004-12-05 Fernando Perez <fperez@colorado.edu>
1596
1601
1597 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1602 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1598 warnings when tab-completion fails and triggers an exception.
1603 warnings when tab-completion fails and triggers an exception.
1599
1604
1600 2004-12-03 Fernando Perez <fperez@colorado.edu>
1605 2004-12-03 Fernando Perez <fperez@colorado.edu>
1601
1606
1602 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1607 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1603 be triggered when using 'run -p'. An incorrect option flag was
1608 be triggered when using 'run -p'. An incorrect option flag was
1604 being set ('d' instead of 'D').
1609 being set ('d' instead of 'D').
1605 (manpage): fix missing escaped \- sign.
1610 (manpage): fix missing escaped \- sign.
1606
1611
1607 2004-11-30 *** Released version 0.6.5
1612 2004-11-30 *** Released version 0.6.5
1608
1613
1609 2004-11-30 Fernando Perez <fperez@colorado.edu>
1614 2004-11-30 Fernando Perez <fperez@colorado.edu>
1610
1615
1611 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1616 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1612 setting with -d option.
1617 setting with -d option.
1613
1618
1614 * setup.py (docfiles): Fix problem where the doc glob I was using
1619 * setup.py (docfiles): Fix problem where the doc glob I was using
1615 was COMPLETELY BROKEN. It was giving the right files by pure
1620 was COMPLETELY BROKEN. It was giving the right files by pure
1616 accident, but failed once I tried to include ipython.el. Note:
1621 accident, but failed once I tried to include ipython.el. Note:
1617 glob() does NOT allow you to do exclusion on multiple endings!
1622 glob() does NOT allow you to do exclusion on multiple endings!
1618
1623
1619 2004-11-29 Fernando Perez <fperez@colorado.edu>
1624 2004-11-29 Fernando Perez <fperez@colorado.edu>
1620
1625
1621 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
1626 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
1622 the manpage as the source. Better formatting & consistency.
1627 the manpage as the source. Better formatting & consistency.
1623
1628
1624 * IPython/Magic.py (magic_run): Added new -d option, to run
1629 * IPython/Magic.py (magic_run): Added new -d option, to run
1625 scripts under the control of the python pdb debugger. Note that
1630 scripts under the control of the python pdb debugger. Note that
1626 this required changing the %prun option -d to -D, to avoid a clash
1631 this required changing the %prun option -d to -D, to avoid a clash
1627 (since %run must pass options to %prun, and getopt is too dumb to
1632 (since %run must pass options to %prun, and getopt is too dumb to
1628 handle options with string values with embedded spaces). Thanks
1633 handle options with string values with embedded spaces). Thanks
1629 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
1634 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
1630 (magic_who_ls): added type matching to %who and %whos, so that one
1635 (magic_who_ls): added type matching to %who and %whos, so that one
1631 can filter their output to only include variables of certain
1636 can filter their output to only include variables of certain
1632 types. Another suggestion by Matthew.
1637 types. Another suggestion by Matthew.
1633 (magic_whos): Added memory summaries in kb and Mb for arrays.
1638 (magic_whos): Added memory summaries in kb and Mb for arrays.
1634 (magic_who): Improve formatting (break lines every 9 vars).
1639 (magic_who): Improve formatting (break lines every 9 vars).
1635
1640
1636 2004-11-28 Fernando Perez <fperez@colorado.edu>
1641 2004-11-28 Fernando Perez <fperez@colorado.edu>
1637
1642
1638 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
1643 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
1639 cache when empty lines were present.
1644 cache when empty lines were present.
1640
1645
1641 2004-11-24 Fernando Perez <fperez@colorado.edu>
1646 2004-11-24 Fernando Perez <fperez@colorado.edu>
1642
1647
1643 * IPython/usage.py (__doc__): document the re-activated threading
1648 * IPython/usage.py (__doc__): document the re-activated threading
1644 options for WX and GTK.
1649 options for WX and GTK.
1645
1650
1646 2004-11-23 Fernando Perez <fperez@colorado.edu>
1651 2004-11-23 Fernando Perez <fperez@colorado.edu>
1647
1652
1648 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1653 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1649 the -wthread and -gthread options, along with a new -tk one to try
1654 the -wthread and -gthread options, along with a new -tk one to try
1650 and coordinate Tk threading with wx/gtk. The tk support is very
1655 and coordinate Tk threading with wx/gtk. The tk support is very
1651 platform dependent, since it seems to require Tcl and Tk to be
1656 platform dependent, since it seems to require Tcl and Tk to be
1652 built with threads (Fedora1/2 appears NOT to have it, but in
1657 built with threads (Fedora1/2 appears NOT to have it, but in
1653 Prabhu's Debian boxes it works OK). But even with some Tk
1658 Prabhu's Debian boxes it works OK). But even with some Tk
1654 limitations, this is a great improvement.
1659 limitations, this is a great improvement.
1655
1660
1656 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1661 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1657 info in user prompts. Patch by Prabhu.
1662 info in user prompts. Patch by Prabhu.
1658
1663
1659 2004-11-18 Fernando Perez <fperez@colorado.edu>
1664 2004-11-18 Fernando Perez <fperez@colorado.edu>
1660
1665
1661 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1666 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1662 EOFErrors and bail, to avoid infinite loops if a non-terminating
1667 EOFErrors and bail, to avoid infinite loops if a non-terminating
1663 file is fed into ipython. Patch submitted in issue 19 by user,
1668 file is fed into ipython. Patch submitted in issue 19 by user,
1664 many thanks.
1669 many thanks.
1665
1670
1666 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1671 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1667 autoquote/parens in continuation prompts, which can cause lots of
1672 autoquote/parens in continuation prompts, which can cause lots of
1668 problems. Closes roundup issue 20.
1673 problems. Closes roundup issue 20.
1669
1674
1670 2004-11-17 Fernando Perez <fperez@colorado.edu>
1675 2004-11-17 Fernando Perez <fperez@colorado.edu>
1671
1676
1672 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1677 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1673 reported as debian bug #280505. I'm not sure my local changelog
1678 reported as debian bug #280505. I'm not sure my local changelog
1674 entry has the proper debian format (Jack?).
1679 entry has the proper debian format (Jack?).
1675
1680
1676 2004-11-08 *** Released version 0.6.4
1681 2004-11-08 *** Released version 0.6.4
1677
1682
1678 2004-11-08 Fernando Perez <fperez@colorado.edu>
1683 2004-11-08 Fernando Perez <fperez@colorado.edu>
1679
1684
1680 * IPython/iplib.py (init_readline): Fix exit message for Windows
1685 * IPython/iplib.py (init_readline): Fix exit message for Windows
1681 when readline is active. Thanks to a report by Eric Jones
1686 when readline is active. Thanks to a report by Eric Jones
1682 <eric-AT-enthought.com>.
1687 <eric-AT-enthought.com>.
1683
1688
1684 2004-11-07 Fernando Perez <fperez@colorado.edu>
1689 2004-11-07 Fernando Perez <fperez@colorado.edu>
1685
1690
1686 * IPython/genutils.py (page): Add a trap for OSError exceptions,
1691 * IPython/genutils.py (page): Add a trap for OSError exceptions,
1687 sometimes seen by win2k/cygwin users.
1692 sometimes seen by win2k/cygwin users.
1688
1693
1689 2004-11-06 Fernando Perez <fperez@colorado.edu>
1694 2004-11-06 Fernando Perez <fperez@colorado.edu>
1690
1695
1691 * IPython/iplib.py (interact): Change the handling of %Exit from
1696 * IPython/iplib.py (interact): Change the handling of %Exit from
1692 trying to propagate a SystemExit to an internal ipython flag.
1697 trying to propagate a SystemExit to an internal ipython flag.
1693 This is less elegant than using Python's exception mechanism, but
1698 This is less elegant than using Python's exception mechanism, but
1694 I can't get that to work reliably with threads, so under -pylab
1699 I can't get that to work reliably with threads, so under -pylab
1695 %Exit was hanging IPython. Cross-thread exception handling is
1700 %Exit was hanging IPython. Cross-thread exception handling is
1696 really a bitch. Thaks to a bug report by Stephen Walton
1701 really a bitch. Thaks to a bug report by Stephen Walton
1697 <stephen.walton-AT-csun.edu>.
1702 <stephen.walton-AT-csun.edu>.
1698
1703
1699 2004-11-04 Fernando Perez <fperez@colorado.edu>
1704 2004-11-04 Fernando Perez <fperez@colorado.edu>
1700
1705
1701 * IPython/iplib.py (raw_input_original): store a pointer to the
1706 * IPython/iplib.py (raw_input_original): store a pointer to the
1702 true raw_input to harden against code which can modify it
1707 true raw_input to harden against code which can modify it
1703 (wx.py.PyShell does this and would otherwise crash ipython).
1708 (wx.py.PyShell does this and would otherwise crash ipython).
1704 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
1709 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
1705
1710
1706 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
1711 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
1707 Ctrl-C problem, which does not mess up the input line.
1712 Ctrl-C problem, which does not mess up the input line.
1708
1713
1709 2004-11-03 Fernando Perez <fperez@colorado.edu>
1714 2004-11-03 Fernando Perez <fperez@colorado.edu>
1710
1715
1711 * IPython/Release.py: Changed licensing to BSD, in all files.
1716 * IPython/Release.py: Changed licensing to BSD, in all files.
1712 (name): lowercase name for tarball/RPM release.
1717 (name): lowercase name for tarball/RPM release.
1713
1718
1714 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
1719 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
1715 use throughout ipython.
1720 use throughout ipython.
1716
1721
1717 * IPython/Magic.py (Magic._ofind): Switch to using the new
1722 * IPython/Magic.py (Magic._ofind): Switch to using the new
1718 OInspect.getdoc() function.
1723 OInspect.getdoc() function.
1719
1724
1720 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
1725 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
1721 of the line currently being canceled via Ctrl-C. It's extremely
1726 of the line currently being canceled via Ctrl-C. It's extremely
1722 ugly, but I don't know how to do it better (the problem is one of
1727 ugly, but I don't know how to do it better (the problem is one of
1723 handling cross-thread exceptions).
1728 handling cross-thread exceptions).
1724
1729
1725 2004-10-28 Fernando Perez <fperez@colorado.edu>
1730 2004-10-28 Fernando Perez <fperez@colorado.edu>
1726
1731
1727 * IPython/Shell.py (signal_handler): add signal handlers to trap
1732 * IPython/Shell.py (signal_handler): add signal handlers to trap
1728 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
1733 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
1729 report by Francesc Alted.
1734 report by Francesc Alted.
1730
1735
1731 2004-10-21 Fernando Perez <fperez@colorado.edu>
1736 2004-10-21 Fernando Perez <fperez@colorado.edu>
1732
1737
1733 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
1738 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
1734 to % for pysh syntax extensions.
1739 to % for pysh syntax extensions.
1735
1740
1736 2004-10-09 Fernando Perez <fperez@colorado.edu>
1741 2004-10-09 Fernando Perez <fperez@colorado.edu>
1737
1742
1738 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
1743 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
1739 arrays to print a more useful summary, without calling str(arr).
1744 arrays to print a more useful summary, without calling str(arr).
1740 This avoids the problem of extremely lengthy computations which
1745 This avoids the problem of extremely lengthy computations which
1741 occur if arr is large, and appear to the user as a system lockup
1746 occur if arr is large, and appear to the user as a system lockup
1742 with 100% cpu activity. After a suggestion by Kristian Sandberg
1747 with 100% cpu activity. After a suggestion by Kristian Sandberg
1743 <Kristian.Sandberg@colorado.edu>.
1748 <Kristian.Sandberg@colorado.edu>.
1744 (Magic.__init__): fix bug in global magic escapes not being
1749 (Magic.__init__): fix bug in global magic escapes not being
1745 correctly set.
1750 correctly set.
1746
1751
1747 2004-10-08 Fernando Perez <fperez@colorado.edu>
1752 2004-10-08 Fernando Perez <fperez@colorado.edu>
1748
1753
1749 * IPython/Magic.py (__license__): change to absolute imports of
1754 * IPython/Magic.py (__license__): change to absolute imports of
1750 ipython's own internal packages, to start adapting to the absolute
1755 ipython's own internal packages, to start adapting to the absolute
1751 import requirement of PEP-328.
1756 import requirement of PEP-328.
1752
1757
1753 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
1758 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
1754 files, and standardize author/license marks through the Release
1759 files, and standardize author/license marks through the Release
1755 module instead of having per/file stuff (except for files with
1760 module instead of having per/file stuff (except for files with
1756 particular licenses, like the MIT/PSF-licensed codes).
1761 particular licenses, like the MIT/PSF-licensed codes).
1757
1762
1758 * IPython/Debugger.py: remove dead code for python 2.1
1763 * IPython/Debugger.py: remove dead code for python 2.1
1759
1764
1760 2004-10-04 Fernando Perez <fperez@colorado.edu>
1765 2004-10-04 Fernando Perez <fperez@colorado.edu>
1761
1766
1762 * IPython/iplib.py (ipmagic): New function for accessing magics
1767 * IPython/iplib.py (ipmagic): New function for accessing magics
1763 via a normal python function call.
1768 via a normal python function call.
1764
1769
1765 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
1770 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
1766 from '@' to '%', to accomodate the new @decorator syntax of python
1771 from '@' to '%', to accomodate the new @decorator syntax of python
1767 2.4.
1772 2.4.
1768
1773
1769 2004-09-29 Fernando Perez <fperez@colorado.edu>
1774 2004-09-29 Fernando Perez <fperez@colorado.edu>
1770
1775
1771 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
1776 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
1772 matplotlib.use to prevent running scripts which try to switch
1777 matplotlib.use to prevent running scripts which try to switch
1773 interactive backends from within ipython. This will just crash
1778 interactive backends from within ipython. This will just crash
1774 the python interpreter, so we can't allow it (but a detailed error
1779 the python interpreter, so we can't allow it (but a detailed error
1775 is given to the user).
1780 is given to the user).
1776
1781
1777 2004-09-28 Fernando Perez <fperez@colorado.edu>
1782 2004-09-28 Fernando Perez <fperez@colorado.edu>
1778
1783
1779 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
1784 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
1780 matplotlib-related fixes so that using @run with non-matplotlib
1785 matplotlib-related fixes so that using @run with non-matplotlib
1781 scripts doesn't pop up spurious plot windows. This requires
1786 scripts doesn't pop up spurious plot windows. This requires
1782 matplotlib >= 0.63, where I had to make some changes as well.
1787 matplotlib >= 0.63, where I had to make some changes as well.
1783
1788
1784 * IPython/ipmaker.py (make_IPython): update version requirement to
1789 * IPython/ipmaker.py (make_IPython): update version requirement to
1785 python 2.2.
1790 python 2.2.
1786
1791
1787 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
1792 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
1788 banner arg for embedded customization.
1793 banner arg for embedded customization.
1789
1794
1790 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
1795 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
1791 explicit uses of __IP as the IPython's instance name. Now things
1796 explicit uses of __IP as the IPython's instance name. Now things
1792 are properly handled via the shell.name value. The actual code
1797 are properly handled via the shell.name value. The actual code
1793 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
1798 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
1794 is much better than before. I'll clean things completely when the
1799 is much better than before. I'll clean things completely when the
1795 magic stuff gets a real overhaul.
1800 magic stuff gets a real overhaul.
1796
1801
1797 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
1802 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
1798 minor changes to debian dir.
1803 minor changes to debian dir.
1799
1804
1800 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
1805 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
1801 pointer to the shell itself in the interactive namespace even when
1806 pointer to the shell itself in the interactive namespace even when
1802 a user-supplied dict is provided. This is needed for embedding
1807 a user-supplied dict is provided. This is needed for embedding
1803 purposes (found by tests with Michel Sanner).
1808 purposes (found by tests with Michel Sanner).
1804
1809
1805 2004-09-27 Fernando Perez <fperez@colorado.edu>
1810 2004-09-27 Fernando Perez <fperez@colorado.edu>
1806
1811
1807 * IPython/UserConfig/ipythonrc: remove []{} from
1812 * IPython/UserConfig/ipythonrc: remove []{} from
1808 readline_remove_delims, so that things like [modname.<TAB> do
1813 readline_remove_delims, so that things like [modname.<TAB> do
1809 proper completion. This disables [].TAB, but that's a less common
1814 proper completion. This disables [].TAB, but that's a less common
1810 case than module names in list comprehensions, for example.
1815 case than module names in list comprehensions, for example.
1811 Thanks to a report by Andrea Riciputi.
1816 Thanks to a report by Andrea Riciputi.
1812
1817
1813 2004-09-09 Fernando Perez <fperez@colorado.edu>
1818 2004-09-09 Fernando Perez <fperez@colorado.edu>
1814
1819
1815 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
1820 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
1816 blocking problems in win32 and osx. Fix by John.
1821 blocking problems in win32 and osx. Fix by John.
1817
1822
1818 2004-09-08 Fernando Perez <fperez@colorado.edu>
1823 2004-09-08 Fernando Perez <fperez@colorado.edu>
1819
1824
1820 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
1825 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
1821 for Win32 and OSX. Fix by John Hunter.
1826 for Win32 and OSX. Fix by John Hunter.
1822
1827
1823 2004-08-30 *** Released version 0.6.3
1828 2004-08-30 *** Released version 0.6.3
1824
1829
1825 2004-08-30 Fernando Perez <fperez@colorado.edu>
1830 2004-08-30 Fernando Perez <fperez@colorado.edu>
1826
1831
1827 * setup.py (isfile): Add manpages to list of dependent files to be
1832 * setup.py (isfile): Add manpages to list of dependent files to be
1828 updated.
1833 updated.
1829
1834
1830 2004-08-27 Fernando Perez <fperez@colorado.edu>
1835 2004-08-27 Fernando Perez <fperez@colorado.edu>
1831
1836
1832 * IPython/Shell.py (start): I've disabled -wthread and -gthread
1837 * IPython/Shell.py (start): I've disabled -wthread and -gthread
1833 for now. They don't really work with standalone WX/GTK code
1838 for now. They don't really work with standalone WX/GTK code
1834 (though matplotlib IS working fine with both of those backends).
1839 (though matplotlib IS working fine with both of those backends).
1835 This will neeed much more testing. I disabled most things with
1840 This will neeed much more testing. I disabled most things with
1836 comments, so turning it back on later should be pretty easy.
1841 comments, so turning it back on later should be pretty easy.
1837
1842
1838 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
1843 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
1839 autocalling of expressions like r'foo', by modifying the line
1844 autocalling of expressions like r'foo', by modifying the line
1840 split regexp. Closes
1845 split regexp. Closes
1841 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
1846 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
1842 Riley <ipythonbugs-AT-sabi.net>.
1847 Riley <ipythonbugs-AT-sabi.net>.
1843 (InteractiveShell.mainloop): honor --nobanner with banner
1848 (InteractiveShell.mainloop): honor --nobanner with banner
1844 extensions.
1849 extensions.
1845
1850
1846 * IPython/Shell.py: Significant refactoring of all classes, so
1851 * IPython/Shell.py: Significant refactoring of all classes, so
1847 that we can really support ALL matplotlib backends and threading
1852 that we can really support ALL matplotlib backends and threading
1848 models (John spotted a bug with Tk which required this). Now we
1853 models (John spotted a bug with Tk which required this). Now we
1849 should support single-threaded, WX-threads and GTK-threads, both
1854 should support single-threaded, WX-threads and GTK-threads, both
1850 for generic code and for matplotlib.
1855 for generic code and for matplotlib.
1851
1856
1852 * IPython/ipmaker.py (__call__): Changed -mpthread option to
1857 * IPython/ipmaker.py (__call__): Changed -mpthread option to
1853 -pylab, to simplify things for users. Will also remove the pylab
1858 -pylab, to simplify things for users. Will also remove the pylab
1854 profile, since now all of matplotlib configuration is directly
1859 profile, since now all of matplotlib configuration is directly
1855 handled here. This also reduces startup time.
1860 handled here. This also reduces startup time.
1856
1861
1857 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
1862 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
1858 shell wasn't being correctly called. Also in IPShellWX.
1863 shell wasn't being correctly called. Also in IPShellWX.
1859
1864
1860 * IPython/iplib.py (InteractiveShell.__init__): Added option to
1865 * IPython/iplib.py (InteractiveShell.__init__): Added option to
1861 fine-tune banner.
1866 fine-tune banner.
1862
1867
1863 * IPython/numutils.py (spike): Deprecate these spike functions,
1868 * IPython/numutils.py (spike): Deprecate these spike functions,
1864 delete (long deprecated) gnuplot_exec handler.
1869 delete (long deprecated) gnuplot_exec handler.
1865
1870
1866 2004-08-26 Fernando Perez <fperez@colorado.edu>
1871 2004-08-26 Fernando Perez <fperez@colorado.edu>
1867
1872
1868 * ipython.1: Update for threading options, plus some others which
1873 * ipython.1: Update for threading options, plus some others which
1869 were missing.
1874 were missing.
1870
1875
1871 * IPython/ipmaker.py (__call__): Added -wthread option for
1876 * IPython/ipmaker.py (__call__): Added -wthread option for
1872 wxpython thread handling. Make sure threading options are only
1877 wxpython thread handling. Make sure threading options are only
1873 valid at the command line.
1878 valid at the command line.
1874
1879
1875 * scripts/ipython: moved shell selection into a factory function
1880 * scripts/ipython: moved shell selection into a factory function
1876 in Shell.py, to keep the starter script to a minimum.
1881 in Shell.py, to keep the starter script to a minimum.
1877
1882
1878 2004-08-25 Fernando Perez <fperez@colorado.edu>
1883 2004-08-25 Fernando Perez <fperez@colorado.edu>
1879
1884
1880 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
1885 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
1881 John. Along with some recent changes he made to matplotlib, the
1886 John. Along with some recent changes he made to matplotlib, the
1882 next versions of both systems should work very well together.
1887 next versions of both systems should work very well together.
1883
1888
1884 2004-08-24 Fernando Perez <fperez@colorado.edu>
1889 2004-08-24 Fernando Perez <fperez@colorado.edu>
1885
1890
1886 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
1891 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
1887 tried to switch the profiling to using hotshot, but I'm getting
1892 tried to switch the profiling to using hotshot, but I'm getting
1888 strange errors from prof.runctx() there. I may be misreading the
1893 strange errors from prof.runctx() there. I may be misreading the
1889 docs, but it looks weird. For now the profiling code will
1894 docs, but it looks weird. For now the profiling code will
1890 continue to use the standard profiler.
1895 continue to use the standard profiler.
1891
1896
1892 2004-08-23 Fernando Perez <fperez@colorado.edu>
1897 2004-08-23 Fernando Perez <fperez@colorado.edu>
1893
1898
1894 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
1899 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
1895 threaded shell, by John Hunter. It's not quite ready yet, but
1900 threaded shell, by John Hunter. It's not quite ready yet, but
1896 close.
1901 close.
1897
1902
1898 2004-08-22 Fernando Perez <fperez@colorado.edu>
1903 2004-08-22 Fernando Perez <fperez@colorado.edu>
1899
1904
1900 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
1905 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
1901 in Magic and ultraTB.
1906 in Magic and ultraTB.
1902
1907
1903 * ipython.1: document threading options in manpage.
1908 * ipython.1: document threading options in manpage.
1904
1909
1905 * scripts/ipython: Changed name of -thread option to -gthread,
1910 * scripts/ipython: Changed name of -thread option to -gthread,
1906 since this is GTK specific. I want to leave the door open for a
1911 since this is GTK specific. I want to leave the door open for a
1907 -wthread option for WX, which will most likely be necessary. This
1912 -wthread option for WX, which will most likely be necessary. This
1908 change affects usage and ipmaker as well.
1913 change affects usage and ipmaker as well.
1909
1914
1910 * IPython/Shell.py (matplotlib_shell): Add a factory function to
1915 * IPython/Shell.py (matplotlib_shell): Add a factory function to
1911 handle the matplotlib shell issues. Code by John Hunter
1916 handle the matplotlib shell issues. Code by John Hunter
1912 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1917 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1913 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
1918 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
1914 broken (and disabled for end users) for now, but it puts the
1919 broken (and disabled for end users) for now, but it puts the
1915 infrastructure in place.
1920 infrastructure in place.
1916
1921
1917 2004-08-21 Fernando Perez <fperez@colorado.edu>
1922 2004-08-21 Fernando Perez <fperez@colorado.edu>
1918
1923
1919 * ipythonrc-pylab: Add matplotlib support.
1924 * ipythonrc-pylab: Add matplotlib support.
1920
1925
1921 * matplotlib_config.py: new files for matplotlib support, part of
1926 * matplotlib_config.py: new files for matplotlib support, part of
1922 the pylab profile.
1927 the pylab profile.
1923
1928
1924 * IPython/usage.py (__doc__): documented the threading options.
1929 * IPython/usage.py (__doc__): documented the threading options.
1925
1930
1926 2004-08-20 Fernando Perez <fperez@colorado.edu>
1931 2004-08-20 Fernando Perez <fperez@colorado.edu>
1927
1932
1928 * ipython: Modified the main calling routine to handle the -thread
1933 * ipython: Modified the main calling routine to handle the -thread
1929 and -mpthread options. This needs to be done as a top-level hack,
1934 and -mpthread options. This needs to be done as a top-level hack,
1930 because it determines which class to instantiate for IPython
1935 because it determines which class to instantiate for IPython
1931 itself.
1936 itself.
1932
1937
1933 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
1938 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
1934 classes to support multithreaded GTK operation without blocking,
1939 classes to support multithreaded GTK operation without blocking,
1935 and matplotlib with all backends. This is a lot of still very
1940 and matplotlib with all backends. This is a lot of still very
1936 experimental code, and threads are tricky. So it may still have a
1941 experimental code, and threads are tricky. So it may still have a
1937 few rough edges... This code owes a lot to
1942 few rough edges... This code owes a lot to
1938 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
1943 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
1939 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
1944 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
1940 to John Hunter for all the matplotlib work.
1945 to John Hunter for all the matplotlib work.
1941
1946
1942 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
1947 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
1943 options for gtk thread and matplotlib support.
1948 options for gtk thread and matplotlib support.
1944
1949
1945 2004-08-16 Fernando Perez <fperez@colorado.edu>
1950 2004-08-16 Fernando Perez <fperez@colorado.edu>
1946
1951
1947 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
1952 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
1948 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
1953 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
1949 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
1954 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
1950
1955
1951 2004-08-11 Fernando Perez <fperez@colorado.edu>
1956 2004-08-11 Fernando Perez <fperez@colorado.edu>
1952
1957
1953 * setup.py (isfile): Fix build so documentation gets updated for
1958 * setup.py (isfile): Fix build so documentation gets updated for
1954 rpms (it was only done for .tgz builds).
1959 rpms (it was only done for .tgz builds).
1955
1960
1956 2004-08-10 Fernando Perez <fperez@colorado.edu>
1961 2004-08-10 Fernando Perez <fperez@colorado.edu>
1957
1962
1958 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
1963 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
1959
1964
1960 * iplib.py : Silence syntax error exceptions in tab-completion.
1965 * iplib.py : Silence syntax error exceptions in tab-completion.
1961
1966
1962 2004-08-05 Fernando Perez <fperez@colorado.edu>
1967 2004-08-05 Fernando Perez <fperez@colorado.edu>
1963
1968
1964 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
1969 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
1965 'color off' mark for continuation prompts. This was causing long
1970 'color off' mark for continuation prompts. This was causing long
1966 continuation lines to mis-wrap.
1971 continuation lines to mis-wrap.
1967
1972
1968 2004-08-01 Fernando Perez <fperez@colorado.edu>
1973 2004-08-01 Fernando Perez <fperez@colorado.edu>
1969
1974
1970 * IPython/ipmaker.py (make_IPython): Allow the shell class used
1975 * IPython/ipmaker.py (make_IPython): Allow the shell class used
1971 for building ipython to be a parameter. All this is necessary
1976 for building ipython to be a parameter. All this is necessary
1972 right now to have a multithreaded version, but this insane
1977 right now to have a multithreaded version, but this insane
1973 non-design will be cleaned up soon. For now, it's a hack that
1978 non-design will be cleaned up soon. For now, it's a hack that
1974 works.
1979 works.
1975
1980
1976 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
1981 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
1977 args in various places. No bugs so far, but it's a dangerous
1982 args in various places. No bugs so far, but it's a dangerous
1978 practice.
1983 practice.
1979
1984
1980 2004-07-31 Fernando Perez <fperez@colorado.edu>
1985 2004-07-31 Fernando Perez <fperez@colorado.edu>
1981
1986
1982 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
1987 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
1983 fix completion of files with dots in their names under most
1988 fix completion of files with dots in their names under most
1984 profiles (pysh was OK because the completion order is different).
1989 profiles (pysh was OK because the completion order is different).
1985
1990
1986 2004-07-27 Fernando Perez <fperez@colorado.edu>
1991 2004-07-27 Fernando Perez <fperez@colorado.edu>
1987
1992
1988 * IPython/iplib.py (InteractiveShell.__init__): build dict of
1993 * IPython/iplib.py (InteractiveShell.__init__): build dict of
1989 keywords manually, b/c the one in keyword.py was removed in python
1994 keywords manually, b/c the one in keyword.py was removed in python
1990 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
1995 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
1991 This is NOT a bug under python 2.3 and earlier.
1996 This is NOT a bug under python 2.3 and earlier.
1992
1997
1993 2004-07-26 Fernando Perez <fperez@colorado.edu>
1998 2004-07-26 Fernando Perez <fperez@colorado.edu>
1994
1999
1995 * IPython/ultraTB.py (VerboseTB.text): Add another
2000 * IPython/ultraTB.py (VerboseTB.text): Add another
1996 linecache.checkcache() call to try to prevent inspect.py from
2001 linecache.checkcache() call to try to prevent inspect.py from
1997 crashing under python 2.3. I think this fixes
2002 crashing under python 2.3. I think this fixes
1998 http://www.scipy.net/roundup/ipython/issue17.
2003 http://www.scipy.net/roundup/ipython/issue17.
1999
2004
2000 2004-07-26 *** Released version 0.6.2
2005 2004-07-26 *** Released version 0.6.2
2001
2006
2002 2004-07-26 Fernando Perez <fperez@colorado.edu>
2007 2004-07-26 Fernando Perez <fperez@colorado.edu>
2003
2008
2004 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2009 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2005 fail for any number.
2010 fail for any number.
2006 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2011 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2007 empty bookmarks.
2012 empty bookmarks.
2008
2013
2009 2004-07-26 *** Released version 0.6.1
2014 2004-07-26 *** Released version 0.6.1
2010
2015
2011 2004-07-26 Fernando Perez <fperez@colorado.edu>
2016 2004-07-26 Fernando Perez <fperez@colorado.edu>
2012
2017
2013 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2018 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2014
2019
2015 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2020 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2016 escaping '()[]{}' in filenames.
2021 escaping '()[]{}' in filenames.
2017
2022
2018 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2023 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2019 Python 2.2 users who lack a proper shlex.split.
2024 Python 2.2 users who lack a proper shlex.split.
2020
2025
2021 2004-07-19 Fernando Perez <fperez@colorado.edu>
2026 2004-07-19 Fernando Perez <fperez@colorado.edu>
2022
2027
2023 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2028 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2024 for reading readline's init file. I follow the normal chain:
2029 for reading readline's init file. I follow the normal chain:
2025 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2030 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2026 report by Mike Heeter. This closes
2031 report by Mike Heeter. This closes
2027 http://www.scipy.net/roundup/ipython/issue16.
2032 http://www.scipy.net/roundup/ipython/issue16.
2028
2033
2029 2004-07-18 Fernando Perez <fperez@colorado.edu>
2034 2004-07-18 Fernando Perez <fperez@colorado.edu>
2030
2035
2031 * IPython/iplib.py (__init__): Add better handling of '\' under
2036 * IPython/iplib.py (__init__): Add better handling of '\' under
2032 Win32 for filenames. After a patch by Ville.
2037 Win32 for filenames. After a patch by Ville.
2033
2038
2034 2004-07-17 Fernando Perez <fperez@colorado.edu>
2039 2004-07-17 Fernando Perez <fperez@colorado.edu>
2035
2040
2036 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2041 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2037 autocalling would be triggered for 'foo is bar' if foo is
2042 autocalling would be triggered for 'foo is bar' if foo is
2038 callable. I also cleaned up the autocall detection code to use a
2043 callable. I also cleaned up the autocall detection code to use a
2039 regexp, which is faster. Bug reported by Alexander Schmolck.
2044 regexp, which is faster. Bug reported by Alexander Schmolck.
2040
2045
2041 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2046 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2042 '?' in them would confuse the help system. Reported by Alex
2047 '?' in them would confuse the help system. Reported by Alex
2043 Schmolck.
2048 Schmolck.
2044
2049
2045 2004-07-16 Fernando Perez <fperez@colorado.edu>
2050 2004-07-16 Fernando Perez <fperez@colorado.edu>
2046
2051
2047 * IPython/GnuplotInteractive.py (__all__): added plot2.
2052 * IPython/GnuplotInteractive.py (__all__): added plot2.
2048
2053
2049 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2054 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2050 plotting dictionaries, lists or tuples of 1d arrays.
2055 plotting dictionaries, lists or tuples of 1d arrays.
2051
2056
2052 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2057 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2053 optimizations.
2058 optimizations.
2054
2059
2055 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2060 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2056 the information which was there from Janko's original IPP code:
2061 the information which was there from Janko's original IPP code:
2057
2062
2058 03.05.99 20:53 porto.ifm.uni-kiel.de
2063 03.05.99 20:53 porto.ifm.uni-kiel.de
2059 --Started changelog.
2064 --Started changelog.
2060 --make clear do what it say it does
2065 --make clear do what it say it does
2061 --added pretty output of lines from inputcache
2066 --added pretty output of lines from inputcache
2062 --Made Logger a mixin class, simplifies handling of switches
2067 --Made Logger a mixin class, simplifies handling of switches
2063 --Added own completer class. .string<TAB> expands to last history
2068 --Added own completer class. .string<TAB> expands to last history
2064 line which starts with string. The new expansion is also present
2069 line which starts with string. The new expansion is also present
2065 with Ctrl-r from the readline library. But this shows, who this
2070 with Ctrl-r from the readline library. But this shows, who this
2066 can be done for other cases.
2071 can be done for other cases.
2067 --Added convention that all shell functions should accept a
2072 --Added convention that all shell functions should accept a
2068 parameter_string This opens the door for different behaviour for
2073 parameter_string This opens the door for different behaviour for
2069 each function. @cd is a good example of this.
2074 each function. @cd is a good example of this.
2070
2075
2071 04.05.99 12:12 porto.ifm.uni-kiel.de
2076 04.05.99 12:12 porto.ifm.uni-kiel.de
2072 --added logfile rotation
2077 --added logfile rotation
2073 --added new mainloop method which freezes first the namespace
2078 --added new mainloop method which freezes first the namespace
2074
2079
2075 07.05.99 21:24 porto.ifm.uni-kiel.de
2080 07.05.99 21:24 porto.ifm.uni-kiel.de
2076 --added the docreader classes. Now there is a help system.
2081 --added the docreader classes. Now there is a help system.
2077 -This is only a first try. Currently it's not easy to put new
2082 -This is only a first try. Currently it's not easy to put new
2078 stuff in the indices. But this is the way to go. Info would be
2083 stuff in the indices. But this is the way to go. Info would be
2079 better, but HTML is every where and not everybody has an info
2084 better, but HTML is every where and not everybody has an info
2080 system installed and it's not so easy to change html-docs to info.
2085 system installed and it's not so easy to change html-docs to info.
2081 --added global logfile option
2086 --added global logfile option
2082 --there is now a hook for object inspection method pinfo needs to
2087 --there is now a hook for object inspection method pinfo needs to
2083 be provided for this. Can be reached by two '??'.
2088 be provided for this. Can be reached by two '??'.
2084
2089
2085 08.05.99 20:51 porto.ifm.uni-kiel.de
2090 08.05.99 20:51 porto.ifm.uni-kiel.de
2086 --added a README
2091 --added a README
2087 --bug in rc file. Something has changed so functions in the rc
2092 --bug in rc file. Something has changed so functions in the rc
2088 file need to reference the shell and not self. Not clear if it's a
2093 file need to reference the shell and not self. Not clear if it's a
2089 bug or feature.
2094 bug or feature.
2090 --changed rc file for new behavior
2095 --changed rc file for new behavior
2091
2096
2092 2004-07-15 Fernando Perez <fperez@colorado.edu>
2097 2004-07-15 Fernando Perez <fperez@colorado.edu>
2093
2098
2094 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2099 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2095 cache was falling out of sync in bizarre manners when multi-line
2100 cache was falling out of sync in bizarre manners when multi-line
2096 input was present. Minor optimizations and cleanup.
2101 input was present. Minor optimizations and cleanup.
2097
2102
2098 (Logger): Remove old Changelog info for cleanup. This is the
2103 (Logger): Remove old Changelog info for cleanup. This is the
2099 information which was there from Janko's original code:
2104 information which was there from Janko's original code:
2100
2105
2101 Changes to Logger: - made the default log filename a parameter
2106 Changes to Logger: - made the default log filename a parameter
2102
2107
2103 - put a check for lines beginning with !@? in log(). Needed
2108 - put a check for lines beginning with !@? in log(). Needed
2104 (even if the handlers properly log their lines) for mid-session
2109 (even if the handlers properly log their lines) for mid-session
2105 logging activation to work properly. Without this, lines logged
2110 logging activation to work properly. Without this, lines logged
2106 in mid session, which get read from the cache, would end up
2111 in mid session, which get read from the cache, would end up
2107 'bare' (with !@? in the open) in the log. Now they are caught
2112 'bare' (with !@? in the open) in the log. Now they are caught
2108 and prepended with a #.
2113 and prepended with a #.
2109
2114
2110 * IPython/iplib.py (InteractiveShell.init_readline): added check
2115 * IPython/iplib.py (InteractiveShell.init_readline): added check
2111 in case MagicCompleter fails to be defined, so we don't crash.
2116 in case MagicCompleter fails to be defined, so we don't crash.
2112
2117
2113 2004-07-13 Fernando Perez <fperez@colorado.edu>
2118 2004-07-13 Fernando Perez <fperez@colorado.edu>
2114
2119
2115 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2120 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2116 of EPS if the requested filename ends in '.eps'.
2121 of EPS if the requested filename ends in '.eps'.
2117
2122
2118 2004-07-04 Fernando Perez <fperez@colorado.edu>
2123 2004-07-04 Fernando Perez <fperez@colorado.edu>
2119
2124
2120 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2125 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2121 escaping of quotes when calling the shell.
2126 escaping of quotes when calling the shell.
2122
2127
2123 2004-07-02 Fernando Perez <fperez@colorado.edu>
2128 2004-07-02 Fernando Perez <fperez@colorado.edu>
2124
2129
2125 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2130 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2126 gettext not working because we were clobbering '_'. Fixes
2131 gettext not working because we were clobbering '_'. Fixes
2127 http://www.scipy.net/roundup/ipython/issue6.
2132 http://www.scipy.net/roundup/ipython/issue6.
2128
2133
2129 2004-07-01 Fernando Perez <fperez@colorado.edu>
2134 2004-07-01 Fernando Perez <fperez@colorado.edu>
2130
2135
2131 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2136 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2132 into @cd. Patch by Ville.
2137 into @cd. Patch by Ville.
2133
2138
2134 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2139 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2135 new function to store things after ipmaker runs. Patch by Ville.
2140 new function to store things after ipmaker runs. Patch by Ville.
2136 Eventually this will go away once ipmaker is removed and the class
2141 Eventually this will go away once ipmaker is removed and the class
2137 gets cleaned up, but for now it's ok. Key functionality here is
2142 gets cleaned up, but for now it's ok. Key functionality here is
2138 the addition of the persistent storage mechanism, a dict for
2143 the addition of the persistent storage mechanism, a dict for
2139 keeping data across sessions (for now just bookmarks, but more can
2144 keeping data across sessions (for now just bookmarks, but more can
2140 be implemented later).
2145 be implemented later).
2141
2146
2142 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2147 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2143 persistent across sections. Patch by Ville, I modified it
2148 persistent across sections. Patch by Ville, I modified it
2144 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2149 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2145 added a '-l' option to list all bookmarks.
2150 added a '-l' option to list all bookmarks.
2146
2151
2147 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2152 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2148 center for cleanup. Registered with atexit.register(). I moved
2153 center for cleanup. Registered with atexit.register(). I moved
2149 here the old exit_cleanup(). After a patch by Ville.
2154 here the old exit_cleanup(). After a patch by Ville.
2150
2155
2151 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2156 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2152 characters in the hacked shlex_split for python 2.2.
2157 characters in the hacked shlex_split for python 2.2.
2153
2158
2154 * IPython/iplib.py (file_matches): more fixes to filenames with
2159 * IPython/iplib.py (file_matches): more fixes to filenames with
2155 whitespace in them. It's not perfect, but limitations in python's
2160 whitespace in them. It's not perfect, but limitations in python's
2156 readline make it impossible to go further.
2161 readline make it impossible to go further.
2157
2162
2158 2004-06-29 Fernando Perez <fperez@colorado.edu>
2163 2004-06-29 Fernando Perez <fperez@colorado.edu>
2159
2164
2160 * IPython/iplib.py (file_matches): escape whitespace correctly in
2165 * IPython/iplib.py (file_matches): escape whitespace correctly in
2161 filename completions. Bug reported by Ville.
2166 filename completions. Bug reported by Ville.
2162
2167
2163 2004-06-28 Fernando Perez <fperez@colorado.edu>
2168 2004-06-28 Fernando Perez <fperez@colorado.edu>
2164
2169
2165 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2170 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2166 the history file will be called 'history-PROFNAME' (or just
2171 the history file will be called 'history-PROFNAME' (or just
2167 'history' if no profile is loaded). I was getting annoyed at
2172 'history' if no profile is loaded). I was getting annoyed at
2168 getting my Numerical work history clobbered by pysh sessions.
2173 getting my Numerical work history clobbered by pysh sessions.
2169
2174
2170 * IPython/iplib.py (InteractiveShell.__init__): Internal
2175 * IPython/iplib.py (InteractiveShell.__init__): Internal
2171 getoutputerror() function so that we can honor the system_verbose
2176 getoutputerror() function so that we can honor the system_verbose
2172 flag for _all_ system calls. I also added escaping of #
2177 flag for _all_ system calls. I also added escaping of #
2173 characters here to avoid confusing Itpl.
2178 characters here to avoid confusing Itpl.
2174
2179
2175 * IPython/Magic.py (shlex_split): removed call to shell in
2180 * IPython/Magic.py (shlex_split): removed call to shell in
2176 parse_options and replaced it with shlex.split(). The annoying
2181 parse_options and replaced it with shlex.split(). The annoying
2177 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2182 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2178 to backport it from 2.3, with several frail hacks (the shlex
2183 to backport it from 2.3, with several frail hacks (the shlex
2179 module is rather limited in 2.2). Thanks to a suggestion by Ville
2184 module is rather limited in 2.2). Thanks to a suggestion by Ville
2180 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2185 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2181 problem.
2186 problem.
2182
2187
2183 (Magic.magic_system_verbose): new toggle to print the actual
2188 (Magic.magic_system_verbose): new toggle to print the actual
2184 system calls made by ipython. Mainly for debugging purposes.
2189 system calls made by ipython. Mainly for debugging purposes.
2185
2190
2186 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2191 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2187 doesn't support persistence. Reported (and fix suggested) by
2192 doesn't support persistence. Reported (and fix suggested) by
2188 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2193 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2189
2194
2190 2004-06-26 Fernando Perez <fperez@colorado.edu>
2195 2004-06-26 Fernando Perez <fperez@colorado.edu>
2191
2196
2192 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2197 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2193 continue prompts.
2198 continue prompts.
2194
2199
2195 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2200 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2196 function (basically a big docstring) and a few more things here to
2201 function (basically a big docstring) and a few more things here to
2197 speedup startup. pysh.py is now very lightweight. We want because
2202 speedup startup. pysh.py is now very lightweight. We want because
2198 it gets execfile'd, while InterpreterExec gets imported, so
2203 it gets execfile'd, while InterpreterExec gets imported, so
2199 byte-compilation saves time.
2204 byte-compilation saves time.
2200
2205
2201 2004-06-25 Fernando Perez <fperez@colorado.edu>
2206 2004-06-25 Fernando Perez <fperez@colorado.edu>
2202
2207
2203 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2208 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2204 -NUM', which was recently broken.
2209 -NUM', which was recently broken.
2205
2210
2206 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2211 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2207 in multi-line input (but not !!, which doesn't make sense there).
2212 in multi-line input (but not !!, which doesn't make sense there).
2208
2213
2209 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2214 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2210 It's just too useful, and people can turn it off in the less
2215 It's just too useful, and people can turn it off in the less
2211 common cases where it's a problem.
2216 common cases where it's a problem.
2212
2217
2213 2004-06-24 Fernando Perez <fperez@colorado.edu>
2218 2004-06-24 Fernando Perez <fperez@colorado.edu>
2214
2219
2215 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2220 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2216 special syntaxes (like alias calling) is now allied in multi-line
2221 special syntaxes (like alias calling) is now allied in multi-line
2217 input. This is still _very_ experimental, but it's necessary for
2222 input. This is still _very_ experimental, but it's necessary for
2218 efficient shell usage combining python looping syntax with system
2223 efficient shell usage combining python looping syntax with system
2219 calls. For now it's restricted to aliases, I don't think it
2224 calls. For now it's restricted to aliases, I don't think it
2220 really even makes sense to have this for magics.
2225 really even makes sense to have this for magics.
2221
2226
2222 2004-06-23 Fernando Perez <fperez@colorado.edu>
2227 2004-06-23 Fernando Perez <fperez@colorado.edu>
2223
2228
2224 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2229 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2225 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2230 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2226
2231
2227 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2232 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2228 extensions under Windows (after code sent by Gary Bishop). The
2233 extensions under Windows (after code sent by Gary Bishop). The
2229 extensions considered 'executable' are stored in IPython's rc
2234 extensions considered 'executable' are stored in IPython's rc
2230 structure as win_exec_ext.
2235 structure as win_exec_ext.
2231
2236
2232 * IPython/genutils.py (shell): new function, like system() but
2237 * IPython/genutils.py (shell): new function, like system() but
2233 without return value. Very useful for interactive shell work.
2238 without return value. Very useful for interactive shell work.
2234
2239
2235 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2240 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2236 delete aliases.
2241 delete aliases.
2237
2242
2238 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2243 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2239 sure that the alias table doesn't contain python keywords.
2244 sure that the alias table doesn't contain python keywords.
2240
2245
2241 2004-06-21 Fernando Perez <fperez@colorado.edu>
2246 2004-06-21 Fernando Perez <fperez@colorado.edu>
2242
2247
2243 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2248 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2244 non-existent items are found in $PATH. Reported by Thorsten.
2249 non-existent items are found in $PATH. Reported by Thorsten.
2245
2250
2246 2004-06-20 Fernando Perez <fperez@colorado.edu>
2251 2004-06-20 Fernando Perez <fperez@colorado.edu>
2247
2252
2248 * IPython/iplib.py (complete): modified the completer so that the
2253 * IPython/iplib.py (complete): modified the completer so that the
2249 order of priorities can be easily changed at runtime.
2254 order of priorities can be easily changed at runtime.
2250
2255
2251 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2256 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2252 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2257 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2253
2258
2254 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2259 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2255 expand Python variables prepended with $ in all system calls. The
2260 expand Python variables prepended with $ in all system calls. The
2256 same was done to InteractiveShell.handle_shell_escape. Now all
2261 same was done to InteractiveShell.handle_shell_escape. Now all
2257 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2262 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2258 expansion of python variables and expressions according to the
2263 expansion of python variables and expressions according to the
2259 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2264 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2260
2265
2261 Though PEP-215 has been rejected, a similar (but simpler) one
2266 Though PEP-215 has been rejected, a similar (but simpler) one
2262 seems like it will go into Python 2.4, PEP-292 -
2267 seems like it will go into Python 2.4, PEP-292 -
2263 http://www.python.org/peps/pep-0292.html.
2268 http://www.python.org/peps/pep-0292.html.
2264
2269
2265 I'll keep the full syntax of PEP-215, since IPython has since the
2270 I'll keep the full syntax of PEP-215, since IPython has since the
2266 start used Ka-Ping Yee's reference implementation discussed there
2271 start used Ka-Ping Yee's reference implementation discussed there
2267 (Itpl), and I actually like the powerful semantics it offers.
2272 (Itpl), and I actually like the powerful semantics it offers.
2268
2273
2269 In order to access normal shell variables, the $ has to be escaped
2274 In order to access normal shell variables, the $ has to be escaped
2270 via an extra $. For example:
2275 via an extra $. For example:
2271
2276
2272 In [7]: PATH='a python variable'
2277 In [7]: PATH='a python variable'
2273
2278
2274 In [8]: !echo $PATH
2279 In [8]: !echo $PATH
2275 a python variable
2280 a python variable
2276
2281
2277 In [9]: !echo $$PATH
2282 In [9]: !echo $$PATH
2278 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2283 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2279
2284
2280 (Magic.parse_options): escape $ so the shell doesn't evaluate
2285 (Magic.parse_options): escape $ so the shell doesn't evaluate
2281 things prematurely.
2286 things prematurely.
2282
2287
2283 * IPython/iplib.py (InteractiveShell.call_alias): added the
2288 * IPython/iplib.py (InteractiveShell.call_alias): added the
2284 ability for aliases to expand python variables via $.
2289 ability for aliases to expand python variables via $.
2285
2290
2286 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2291 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2287 system, now there's a @rehash/@rehashx pair of magics. These work
2292 system, now there's a @rehash/@rehashx pair of magics. These work
2288 like the csh rehash command, and can be invoked at any time. They
2293 like the csh rehash command, and can be invoked at any time. They
2289 build a table of aliases to everything in the user's $PATH
2294 build a table of aliases to everything in the user's $PATH
2290 (@rehash uses everything, @rehashx is slower but only adds
2295 (@rehash uses everything, @rehashx is slower but only adds
2291 executable files). With this, the pysh.py-based shell profile can
2296 executable files). With this, the pysh.py-based shell profile can
2292 now simply call rehash upon startup, and full access to all
2297 now simply call rehash upon startup, and full access to all
2293 programs in the user's path is obtained.
2298 programs in the user's path is obtained.
2294
2299
2295 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2300 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2296 functionality is now fully in place. I removed the old dynamic
2301 functionality is now fully in place. I removed the old dynamic
2297 code generation based approach, in favor of a much lighter one
2302 code generation based approach, in favor of a much lighter one
2298 based on a simple dict. The advantage is that this allows me to
2303 based on a simple dict. The advantage is that this allows me to
2299 now have thousands of aliases with negligible cost (unthinkable
2304 now have thousands of aliases with negligible cost (unthinkable
2300 with the old system).
2305 with the old system).
2301
2306
2302 2004-06-19 Fernando Perez <fperez@colorado.edu>
2307 2004-06-19 Fernando Perez <fperez@colorado.edu>
2303
2308
2304 * IPython/iplib.py (__init__): extended MagicCompleter class to
2309 * IPython/iplib.py (__init__): extended MagicCompleter class to
2305 also complete (last in priority) on user aliases.
2310 also complete (last in priority) on user aliases.
2306
2311
2307 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2312 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2308 call to eval.
2313 call to eval.
2309 (ItplNS.__init__): Added a new class which functions like Itpl,
2314 (ItplNS.__init__): Added a new class which functions like Itpl,
2310 but allows configuring the namespace for the evaluation to occur
2315 but allows configuring the namespace for the evaluation to occur
2311 in.
2316 in.
2312
2317
2313 2004-06-18 Fernando Perez <fperez@colorado.edu>
2318 2004-06-18 Fernando Perez <fperez@colorado.edu>
2314
2319
2315 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2320 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2316 better message when 'exit' or 'quit' are typed (a common newbie
2321 better message when 'exit' or 'quit' are typed (a common newbie
2317 confusion).
2322 confusion).
2318
2323
2319 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2324 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2320 check for Windows users.
2325 check for Windows users.
2321
2326
2322 * IPython/iplib.py (InteractiveShell.user_setup): removed
2327 * IPython/iplib.py (InteractiveShell.user_setup): removed
2323 disabling of colors for Windows. I'll test at runtime and issue a
2328 disabling of colors for Windows. I'll test at runtime and issue a
2324 warning if Gary's readline isn't found, as to nudge users to
2329 warning if Gary's readline isn't found, as to nudge users to
2325 download it.
2330 download it.
2326
2331
2327 2004-06-16 Fernando Perez <fperez@colorado.edu>
2332 2004-06-16 Fernando Perez <fperez@colorado.edu>
2328
2333
2329 * IPython/genutils.py (Stream.__init__): changed to print errors
2334 * IPython/genutils.py (Stream.__init__): changed to print errors
2330 to sys.stderr. I had a circular dependency here. Now it's
2335 to sys.stderr. I had a circular dependency here. Now it's
2331 possible to run ipython as IDLE's shell (consider this pre-alpha,
2336 possible to run ipython as IDLE's shell (consider this pre-alpha,
2332 since true stdout things end up in the starting terminal instead
2337 since true stdout things end up in the starting terminal instead
2333 of IDLE's out).
2338 of IDLE's out).
2334
2339
2335 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2340 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2336 users who haven't # updated their prompt_in2 definitions. Remove
2341 users who haven't # updated their prompt_in2 definitions. Remove
2337 eventually.
2342 eventually.
2338 (multiple_replace): added credit to original ASPN recipe.
2343 (multiple_replace): added credit to original ASPN recipe.
2339
2344
2340 2004-06-15 Fernando Perez <fperez@colorado.edu>
2345 2004-06-15 Fernando Perez <fperez@colorado.edu>
2341
2346
2342 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2347 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2343 list of auto-defined aliases.
2348 list of auto-defined aliases.
2344
2349
2345 2004-06-13 Fernando Perez <fperez@colorado.edu>
2350 2004-06-13 Fernando Perez <fperez@colorado.edu>
2346
2351
2347 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2352 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2348 install was really requested (so setup.py can be used for other
2353 install was really requested (so setup.py can be used for other
2349 things under Windows).
2354 things under Windows).
2350
2355
2351 2004-06-10 Fernando Perez <fperez@colorado.edu>
2356 2004-06-10 Fernando Perez <fperez@colorado.edu>
2352
2357
2353 * IPython/Logger.py (Logger.create_log): Manually remove any old
2358 * IPython/Logger.py (Logger.create_log): Manually remove any old
2354 backup, since os.remove may fail under Windows. Fixes bug
2359 backup, since os.remove may fail under Windows. Fixes bug
2355 reported by Thorsten.
2360 reported by Thorsten.
2356
2361
2357 2004-06-09 Fernando Perez <fperez@colorado.edu>
2362 2004-06-09 Fernando Perez <fperez@colorado.edu>
2358
2363
2359 * examples/example-embed.py: fixed all references to %n (replaced
2364 * examples/example-embed.py: fixed all references to %n (replaced
2360 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2365 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2361 for all examples and the manual as well.
2366 for all examples and the manual as well.
2362
2367
2363 2004-06-08 Fernando Perez <fperez@colorado.edu>
2368 2004-06-08 Fernando Perez <fperez@colorado.edu>
2364
2369
2365 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2370 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2366 alignment and color management. All 3 prompt subsystems now
2371 alignment and color management. All 3 prompt subsystems now
2367 inherit from BasePrompt.
2372 inherit from BasePrompt.
2368
2373
2369 * tools/release: updates for windows installer build and tag rpms
2374 * tools/release: updates for windows installer build and tag rpms
2370 with python version (since paths are fixed).
2375 with python version (since paths are fixed).
2371
2376
2372 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2377 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2373 which will become eventually obsolete. Also fixed the default
2378 which will become eventually obsolete. Also fixed the default
2374 prompt_in2 to use \D, so at least new users start with the correct
2379 prompt_in2 to use \D, so at least new users start with the correct
2375 defaults.
2380 defaults.
2376 WARNING: Users with existing ipythonrc files will need to apply
2381 WARNING: Users with existing ipythonrc files will need to apply
2377 this fix manually!
2382 this fix manually!
2378
2383
2379 * setup.py: make windows installer (.exe). This is finally the
2384 * setup.py: make windows installer (.exe). This is finally the
2380 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2385 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2381 which I hadn't included because it required Python 2.3 (or recent
2386 which I hadn't included because it required Python 2.3 (or recent
2382 distutils).
2387 distutils).
2383
2388
2384 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2389 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2385 usage of new '\D' escape.
2390 usage of new '\D' escape.
2386
2391
2387 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2392 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2388 lacks os.getuid())
2393 lacks os.getuid())
2389 (CachedOutput.set_colors): Added the ability to turn coloring
2394 (CachedOutput.set_colors): Added the ability to turn coloring
2390 on/off with @colors even for manually defined prompt colors. It
2395 on/off with @colors even for manually defined prompt colors. It
2391 uses a nasty global, but it works safely and via the generic color
2396 uses a nasty global, but it works safely and via the generic color
2392 handling mechanism.
2397 handling mechanism.
2393 (Prompt2.__init__): Introduced new escape '\D' for continuation
2398 (Prompt2.__init__): Introduced new escape '\D' for continuation
2394 prompts. It represents the counter ('\#') as dots.
2399 prompts. It represents the counter ('\#') as dots.
2395 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2400 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2396 need to update their ipythonrc files and replace '%n' with '\D' in
2401 need to update their ipythonrc files and replace '%n' with '\D' in
2397 their prompt_in2 settings everywhere. Sorry, but there's
2402 their prompt_in2 settings everywhere. Sorry, but there's
2398 otherwise no clean way to get all prompts to properly align. The
2403 otherwise no clean way to get all prompts to properly align. The
2399 ipythonrc shipped with IPython has been updated.
2404 ipythonrc shipped with IPython has been updated.
2400
2405
2401 2004-06-07 Fernando Perez <fperez@colorado.edu>
2406 2004-06-07 Fernando Perez <fperez@colorado.edu>
2402
2407
2403 * setup.py (isfile): Pass local_icons option to latex2html, so the
2408 * setup.py (isfile): Pass local_icons option to latex2html, so the
2404 resulting HTML file is self-contained. Thanks to
2409 resulting HTML file is self-contained. Thanks to
2405 dryice-AT-liu.com.cn for the tip.
2410 dryice-AT-liu.com.cn for the tip.
2406
2411
2407 * pysh.py: I created a new profile 'shell', which implements a
2412 * pysh.py: I created a new profile 'shell', which implements a
2408 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2413 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2409 system shell, nor will it become one anytime soon. It's mainly
2414 system shell, nor will it become one anytime soon. It's mainly
2410 meant to illustrate the use of the new flexible bash-like prompts.
2415 meant to illustrate the use of the new flexible bash-like prompts.
2411 I guess it could be used by hardy souls for true shell management,
2416 I guess it could be used by hardy souls for true shell management,
2412 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2417 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2413 profile. This uses the InterpreterExec extension provided by
2418 profile. This uses the InterpreterExec extension provided by
2414 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2419 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2415
2420
2416 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2421 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2417 auto-align itself with the length of the previous input prompt
2422 auto-align itself with the length of the previous input prompt
2418 (taking into account the invisible color escapes).
2423 (taking into account the invisible color escapes).
2419 (CachedOutput.__init__): Large restructuring of this class. Now
2424 (CachedOutput.__init__): Large restructuring of this class. Now
2420 all three prompts (primary1, primary2, output) are proper objects,
2425 all three prompts (primary1, primary2, output) are proper objects,
2421 managed by the 'parent' CachedOutput class. The code is still a
2426 managed by the 'parent' CachedOutput class. The code is still a
2422 bit hackish (all prompts share state via a pointer to the cache),
2427 bit hackish (all prompts share state via a pointer to the cache),
2423 but it's overall far cleaner than before.
2428 but it's overall far cleaner than before.
2424
2429
2425 * IPython/genutils.py (getoutputerror): modified to add verbose,
2430 * IPython/genutils.py (getoutputerror): modified to add verbose,
2426 debug and header options. This makes the interface of all getout*
2431 debug and header options. This makes the interface of all getout*
2427 functions uniform.
2432 functions uniform.
2428 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2433 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2429
2434
2430 * IPython/Magic.py (Magic.default_option): added a function to
2435 * IPython/Magic.py (Magic.default_option): added a function to
2431 allow registering default options for any magic command. This
2436 allow registering default options for any magic command. This
2432 makes it easy to have profiles which customize the magics globally
2437 makes it easy to have profiles which customize the magics globally
2433 for a certain use. The values set through this function are
2438 for a certain use. The values set through this function are
2434 picked up by the parse_options() method, which all magics should
2439 picked up by the parse_options() method, which all magics should
2435 use to parse their options.
2440 use to parse their options.
2436
2441
2437 * IPython/genutils.py (warn): modified the warnings framework to
2442 * IPython/genutils.py (warn): modified the warnings framework to
2438 use the Term I/O class. I'm trying to slowly unify all of
2443 use the Term I/O class. I'm trying to slowly unify all of
2439 IPython's I/O operations to pass through Term.
2444 IPython's I/O operations to pass through Term.
2440
2445
2441 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2446 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2442 the secondary prompt to correctly match the length of the primary
2447 the secondary prompt to correctly match the length of the primary
2443 one for any prompt. Now multi-line code will properly line up
2448 one for any prompt. Now multi-line code will properly line up
2444 even for path dependent prompts, such as the new ones available
2449 even for path dependent prompts, such as the new ones available
2445 via the prompt_specials.
2450 via the prompt_specials.
2446
2451
2447 2004-06-06 Fernando Perez <fperez@colorado.edu>
2452 2004-06-06 Fernando Perez <fperez@colorado.edu>
2448
2453
2449 * IPython/Prompts.py (prompt_specials): Added the ability to have
2454 * IPython/Prompts.py (prompt_specials): Added the ability to have
2450 bash-like special sequences in the prompts, which get
2455 bash-like special sequences in the prompts, which get
2451 automatically expanded. Things like hostname, current working
2456 automatically expanded. Things like hostname, current working
2452 directory and username are implemented already, but it's easy to
2457 directory and username are implemented already, but it's easy to
2453 add more in the future. Thanks to a patch by W.J. van der Laan
2458 add more in the future. Thanks to a patch by W.J. van der Laan
2454 <gnufnork-AT-hetdigitalegat.nl>
2459 <gnufnork-AT-hetdigitalegat.nl>
2455 (prompt_specials): Added color support for prompt strings, so
2460 (prompt_specials): Added color support for prompt strings, so
2456 users can define arbitrary color setups for their prompts.
2461 users can define arbitrary color setups for their prompts.
2457
2462
2458 2004-06-05 Fernando Perez <fperez@colorado.edu>
2463 2004-06-05 Fernando Perez <fperez@colorado.edu>
2459
2464
2460 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2465 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2461 code to load Gary Bishop's readline and configure it
2466 code to load Gary Bishop's readline and configure it
2462 automatically. Thanks to Gary for help on this.
2467 automatically. Thanks to Gary for help on this.
2463
2468
2464 2004-06-01 Fernando Perez <fperez@colorado.edu>
2469 2004-06-01 Fernando Perez <fperez@colorado.edu>
2465
2470
2466 * IPython/Logger.py (Logger.create_log): fix bug for logging
2471 * IPython/Logger.py (Logger.create_log): fix bug for logging
2467 with no filename (previous fix was incomplete).
2472 with no filename (previous fix was incomplete).
2468
2473
2469 2004-05-25 Fernando Perez <fperez@colorado.edu>
2474 2004-05-25 Fernando Perez <fperez@colorado.edu>
2470
2475
2471 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2476 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2472 parens would get passed to the shell.
2477 parens would get passed to the shell.
2473
2478
2474 2004-05-20 Fernando Perez <fperez@colorado.edu>
2479 2004-05-20 Fernando Perez <fperez@colorado.edu>
2475
2480
2476 * IPython/Magic.py (Magic.magic_prun): changed default profile
2481 * IPython/Magic.py (Magic.magic_prun): changed default profile
2477 sort order to 'time' (the more common profiling need).
2482 sort order to 'time' (the more common profiling need).
2478
2483
2479 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2484 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2480 so that source code shown is guaranteed in sync with the file on
2485 so that source code shown is guaranteed in sync with the file on
2481 disk (also changed in psource). Similar fix to the one for
2486 disk (also changed in psource). Similar fix to the one for
2482 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2487 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2483 <yann.ledu-AT-noos.fr>.
2488 <yann.ledu-AT-noos.fr>.
2484
2489
2485 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2490 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2486 with a single option would not be correctly parsed. Closes
2491 with a single option would not be correctly parsed. Closes
2487 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2492 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2488 introduced in 0.6.0 (on 2004-05-06).
2493 introduced in 0.6.0 (on 2004-05-06).
2489
2494
2490 2004-05-13 *** Released version 0.6.0
2495 2004-05-13 *** Released version 0.6.0
2491
2496
2492 2004-05-13 Fernando Perez <fperez@colorado.edu>
2497 2004-05-13 Fernando Perez <fperez@colorado.edu>
2493
2498
2494 * debian/: Added debian/ directory to CVS, so that debian support
2499 * debian/: Added debian/ directory to CVS, so that debian support
2495 is publicly accessible. The debian package is maintained by Jack
2500 is publicly accessible. The debian package is maintained by Jack
2496 Moffit <jack-AT-xiph.org>.
2501 Moffit <jack-AT-xiph.org>.
2497
2502
2498 * Documentation: included the notes about an ipython-based system
2503 * Documentation: included the notes about an ipython-based system
2499 shell (the hypothetical 'pysh') into the new_design.pdf document,
2504 shell (the hypothetical 'pysh') into the new_design.pdf document,
2500 so that these ideas get distributed to users along with the
2505 so that these ideas get distributed to users along with the
2501 official documentation.
2506 official documentation.
2502
2507
2503 2004-05-10 Fernando Perez <fperez@colorado.edu>
2508 2004-05-10 Fernando Perez <fperez@colorado.edu>
2504
2509
2505 * IPython/Logger.py (Logger.create_log): fix recently introduced
2510 * IPython/Logger.py (Logger.create_log): fix recently introduced
2506 bug (misindented line) where logstart would fail when not given an
2511 bug (misindented line) where logstart would fail when not given an
2507 explicit filename.
2512 explicit filename.
2508
2513
2509 2004-05-09 Fernando Perez <fperez@colorado.edu>
2514 2004-05-09 Fernando Perez <fperez@colorado.edu>
2510
2515
2511 * IPython/Magic.py (Magic.parse_options): skip system call when
2516 * IPython/Magic.py (Magic.parse_options): skip system call when
2512 there are no options to look for. Faster, cleaner for the common
2517 there are no options to look for. Faster, cleaner for the common
2513 case.
2518 case.
2514
2519
2515 * Documentation: many updates to the manual: describing Windows
2520 * Documentation: many updates to the manual: describing Windows
2516 support better, Gnuplot updates, credits, misc small stuff. Also
2521 support better, Gnuplot updates, credits, misc small stuff. Also
2517 updated the new_design doc a bit.
2522 updated the new_design doc a bit.
2518
2523
2519 2004-05-06 *** Released version 0.6.0.rc1
2524 2004-05-06 *** Released version 0.6.0.rc1
2520
2525
2521 2004-05-06 Fernando Perez <fperez@colorado.edu>
2526 2004-05-06 Fernando Perez <fperez@colorado.edu>
2522
2527
2523 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2528 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2524 operations to use the vastly more efficient list/''.join() method.
2529 operations to use the vastly more efficient list/''.join() method.
2525 (FormattedTB.text): Fix
2530 (FormattedTB.text): Fix
2526 http://www.scipy.net/roundup/ipython/issue12 - exception source
2531 http://www.scipy.net/roundup/ipython/issue12 - exception source
2527 extract not updated after reload. Thanks to Mike Salib
2532 extract not updated after reload. Thanks to Mike Salib
2528 <msalib-AT-mit.edu> for pinning the source of the problem.
2533 <msalib-AT-mit.edu> for pinning the source of the problem.
2529 Fortunately, the solution works inside ipython and doesn't require
2534 Fortunately, the solution works inside ipython and doesn't require
2530 any changes to python proper.
2535 any changes to python proper.
2531
2536
2532 * IPython/Magic.py (Magic.parse_options): Improved to process the
2537 * IPython/Magic.py (Magic.parse_options): Improved to process the
2533 argument list as a true shell would (by actually using the
2538 argument list as a true shell would (by actually using the
2534 underlying system shell). This way, all @magics automatically get
2539 underlying system shell). This way, all @magics automatically get
2535 shell expansion for variables. Thanks to a comment by Alex
2540 shell expansion for variables. Thanks to a comment by Alex
2536 Schmolck.
2541 Schmolck.
2537
2542
2538 2004-04-04 Fernando Perez <fperez@colorado.edu>
2543 2004-04-04 Fernando Perez <fperez@colorado.edu>
2539
2544
2540 * IPython/iplib.py (InteractiveShell.interact): Added a special
2545 * IPython/iplib.py (InteractiveShell.interact): Added a special
2541 trap for a debugger quit exception, which is basically impossible
2546 trap for a debugger quit exception, which is basically impossible
2542 to handle by normal mechanisms, given what pdb does to the stack.
2547 to handle by normal mechanisms, given what pdb does to the stack.
2543 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2548 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2544
2549
2545 2004-04-03 Fernando Perez <fperez@colorado.edu>
2550 2004-04-03 Fernando Perez <fperez@colorado.edu>
2546
2551
2547 * IPython/genutils.py (Term): Standardized the names of the Term
2552 * IPython/genutils.py (Term): Standardized the names of the Term
2548 class streams to cin/cout/cerr, following C++ naming conventions
2553 class streams to cin/cout/cerr, following C++ naming conventions
2549 (I can't use in/out/err because 'in' is not a valid attribute
2554 (I can't use in/out/err because 'in' is not a valid attribute
2550 name).
2555 name).
2551
2556
2552 * IPython/iplib.py (InteractiveShell.interact): don't increment
2557 * IPython/iplib.py (InteractiveShell.interact): don't increment
2553 the prompt if there's no user input. By Daniel 'Dang' Griffith
2558 the prompt if there's no user input. By Daniel 'Dang' Griffith
2554 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2559 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2555 Francois Pinard.
2560 Francois Pinard.
2556
2561
2557 2004-04-02 Fernando Perez <fperez@colorado.edu>
2562 2004-04-02 Fernando Perez <fperez@colorado.edu>
2558
2563
2559 * IPython/genutils.py (Stream.__init__): Modified to survive at
2564 * IPython/genutils.py (Stream.__init__): Modified to survive at
2560 least importing in contexts where stdin/out/err aren't true file
2565 least importing in contexts where stdin/out/err aren't true file
2561 objects, such as PyCrust (they lack fileno() and mode). However,
2566 objects, such as PyCrust (they lack fileno() and mode). However,
2562 the recovery facilities which rely on these things existing will
2567 the recovery facilities which rely on these things existing will
2563 not work.
2568 not work.
2564
2569
2565 2004-04-01 Fernando Perez <fperez@colorado.edu>
2570 2004-04-01 Fernando Perez <fperez@colorado.edu>
2566
2571
2567 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2572 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2568 use the new getoutputerror() function, so it properly
2573 use the new getoutputerror() function, so it properly
2569 distinguishes stdout/err.
2574 distinguishes stdout/err.
2570
2575
2571 * IPython/genutils.py (getoutputerror): added a function to
2576 * IPython/genutils.py (getoutputerror): added a function to
2572 capture separately the standard output and error of a command.
2577 capture separately the standard output and error of a command.
2573 After a comment from dang on the mailing lists. This code is
2578 After a comment from dang on the mailing lists. This code is
2574 basically a modified version of commands.getstatusoutput(), from
2579 basically a modified version of commands.getstatusoutput(), from
2575 the standard library.
2580 the standard library.
2576
2581
2577 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2582 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2578 '!!' as a special syntax (shorthand) to access @sx.
2583 '!!' as a special syntax (shorthand) to access @sx.
2579
2584
2580 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2585 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2581 command and return its output as a list split on '\n'.
2586 command and return its output as a list split on '\n'.
2582
2587
2583 2004-03-31 Fernando Perez <fperez@colorado.edu>
2588 2004-03-31 Fernando Perez <fperez@colorado.edu>
2584
2589
2585 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2590 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2586 method to dictionaries used as FakeModule instances if they lack
2591 method to dictionaries used as FakeModule instances if they lack
2587 it. At least pydoc in python2.3 breaks for runtime-defined
2592 it. At least pydoc in python2.3 breaks for runtime-defined
2588 functions without this hack. At some point I need to _really_
2593 functions without this hack. At some point I need to _really_
2589 understand what FakeModule is doing, because it's a gross hack.
2594 understand what FakeModule is doing, because it's a gross hack.
2590 But it solves Arnd's problem for now...
2595 But it solves Arnd's problem for now...
2591
2596
2592 2004-02-27 Fernando Perez <fperez@colorado.edu>
2597 2004-02-27 Fernando Perez <fperez@colorado.edu>
2593
2598
2594 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2599 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2595 mode would behave erratically. Also increased the number of
2600 mode would behave erratically. Also increased the number of
2596 possible logs in rotate mod to 999. Thanks to Rod Holland
2601 possible logs in rotate mod to 999. Thanks to Rod Holland
2597 <rhh@StructureLABS.com> for the report and fixes.
2602 <rhh@StructureLABS.com> for the report and fixes.
2598
2603
2599 2004-02-26 Fernando Perez <fperez@colorado.edu>
2604 2004-02-26 Fernando Perez <fperez@colorado.edu>
2600
2605
2601 * IPython/genutils.py (page): Check that the curses module really
2606 * IPython/genutils.py (page): Check that the curses module really
2602 has the initscr attribute before trying to use it. For some
2607 has the initscr attribute before trying to use it. For some
2603 reason, the Solaris curses module is missing this. I think this
2608 reason, the Solaris curses module is missing this. I think this
2604 should be considered a Solaris python bug, but I'm not sure.
2609 should be considered a Solaris python bug, but I'm not sure.
2605
2610
2606 2004-01-17 Fernando Perez <fperez@colorado.edu>
2611 2004-01-17 Fernando Perez <fperez@colorado.edu>
2607
2612
2608 * IPython/genutils.py (Stream.__init__): Changes to try to make
2613 * IPython/genutils.py (Stream.__init__): Changes to try to make
2609 ipython robust against stdin/out/err being closed by the user.
2614 ipython robust against stdin/out/err being closed by the user.
2610 This is 'user error' (and blocks a normal python session, at least
2615 This is 'user error' (and blocks a normal python session, at least
2611 the stdout case). However, Ipython should be able to survive such
2616 the stdout case). However, Ipython should be able to survive such
2612 instances of abuse as gracefully as possible. To simplify the
2617 instances of abuse as gracefully as possible. To simplify the
2613 coding and maintain compatibility with Gary Bishop's Term
2618 coding and maintain compatibility with Gary Bishop's Term
2614 contributions, I've made use of classmethods for this. I think
2619 contributions, I've made use of classmethods for this. I think
2615 this introduces a dependency on python 2.2.
2620 this introduces a dependency on python 2.2.
2616
2621
2617 2004-01-13 Fernando Perez <fperez@colorado.edu>
2622 2004-01-13 Fernando Perez <fperez@colorado.edu>
2618
2623
2619 * IPython/numutils.py (exp_safe): simplified the code a bit and
2624 * IPython/numutils.py (exp_safe): simplified the code a bit and
2620 removed the need for importing the kinds module altogether.
2625 removed the need for importing the kinds module altogether.
2621
2626
2622 2004-01-06 Fernando Perez <fperez@colorado.edu>
2627 2004-01-06 Fernando Perez <fperez@colorado.edu>
2623
2628
2624 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
2629 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
2625 a magic function instead, after some community feedback. No
2630 a magic function instead, after some community feedback. No
2626 special syntax will exist for it, but its name is deliberately
2631 special syntax will exist for it, but its name is deliberately
2627 very short.
2632 very short.
2628
2633
2629 2003-12-20 Fernando Perez <fperez@colorado.edu>
2634 2003-12-20 Fernando Perez <fperez@colorado.edu>
2630
2635
2631 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
2636 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
2632 new functionality, to automagically assign the result of a shell
2637 new functionality, to automagically assign the result of a shell
2633 command to a variable. I'll solicit some community feedback on
2638 command to a variable. I'll solicit some community feedback on
2634 this before making it permanent.
2639 this before making it permanent.
2635
2640
2636 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
2641 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
2637 requested about callables for which inspect couldn't obtain a
2642 requested about callables for which inspect couldn't obtain a
2638 proper argspec. Thanks to a crash report sent by Etienne
2643 proper argspec. Thanks to a crash report sent by Etienne
2639 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2644 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2640
2645
2641 2003-12-09 Fernando Perez <fperez@colorado.edu>
2646 2003-12-09 Fernando Perez <fperez@colorado.edu>
2642
2647
2643 * IPython/genutils.py (page): patch for the pager to work across
2648 * IPython/genutils.py (page): patch for the pager to work across
2644 various versions of Windows. By Gary Bishop.
2649 various versions of Windows. By Gary Bishop.
2645
2650
2646 2003-12-04 Fernando Perez <fperez@colorado.edu>
2651 2003-12-04 Fernando Perez <fperez@colorado.edu>
2647
2652
2648 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2653 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2649 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2654 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2650 While I tested this and it looks ok, there may still be corner
2655 While I tested this and it looks ok, there may still be corner
2651 cases I've missed.
2656 cases I've missed.
2652
2657
2653 2003-12-01 Fernando Perez <fperez@colorado.edu>
2658 2003-12-01 Fernando Perez <fperez@colorado.edu>
2654
2659
2655 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2660 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2656 where a line like 'p,q=1,2' would fail because the automagic
2661 where a line like 'p,q=1,2' would fail because the automagic
2657 system would be triggered for @p.
2662 system would be triggered for @p.
2658
2663
2659 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2664 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2660 cleanups, code unmodified.
2665 cleanups, code unmodified.
2661
2666
2662 * IPython/genutils.py (Term): added a class for IPython to handle
2667 * IPython/genutils.py (Term): added a class for IPython to handle
2663 output. In most cases it will just be a proxy for stdout/err, but
2668 output. In most cases it will just be a proxy for stdout/err, but
2664 having this allows modifications to be made for some platforms,
2669 having this allows modifications to be made for some platforms,
2665 such as handling color escapes under Windows. All of this code
2670 such as handling color escapes under Windows. All of this code
2666 was contributed by Gary Bishop, with minor modifications by me.
2671 was contributed by Gary Bishop, with minor modifications by me.
2667 The actual changes affect many files.
2672 The actual changes affect many files.
2668
2673
2669 2003-11-30 Fernando Perez <fperez@colorado.edu>
2674 2003-11-30 Fernando Perez <fperez@colorado.edu>
2670
2675
2671 * IPython/iplib.py (file_matches): new completion code, courtesy
2676 * IPython/iplib.py (file_matches): new completion code, courtesy
2672 of Jeff Collins. This enables filename completion again under
2677 of Jeff Collins. This enables filename completion again under
2673 python 2.3, which disabled it at the C level.
2678 python 2.3, which disabled it at the C level.
2674
2679
2675 2003-11-11 Fernando Perez <fperez@colorado.edu>
2680 2003-11-11 Fernando Perez <fperez@colorado.edu>
2676
2681
2677 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2682 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2678 for Numeric.array(map(...)), but often convenient.
2683 for Numeric.array(map(...)), but often convenient.
2679
2684
2680 2003-11-05 Fernando Perez <fperez@colorado.edu>
2685 2003-11-05 Fernando Perez <fperez@colorado.edu>
2681
2686
2682 * IPython/numutils.py (frange): Changed a call from int() to
2687 * IPython/numutils.py (frange): Changed a call from int() to
2683 int(round()) to prevent a problem reported with arange() in the
2688 int(round()) to prevent a problem reported with arange() in the
2684 numpy list.
2689 numpy list.
2685
2690
2686 2003-10-06 Fernando Perez <fperez@colorado.edu>
2691 2003-10-06 Fernando Perez <fperez@colorado.edu>
2687
2692
2688 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
2693 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
2689 prevent crashes if sys lacks an argv attribute (it happens with
2694 prevent crashes if sys lacks an argv attribute (it happens with
2690 embedded interpreters which build a bare-bones sys module).
2695 embedded interpreters which build a bare-bones sys module).
2691 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
2696 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
2692
2697
2693 2003-09-24 Fernando Perez <fperez@colorado.edu>
2698 2003-09-24 Fernando Perez <fperez@colorado.edu>
2694
2699
2695 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
2700 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
2696 to protect against poorly written user objects where __getattr__
2701 to protect against poorly written user objects where __getattr__
2697 raises exceptions other than AttributeError. Thanks to a bug
2702 raises exceptions other than AttributeError. Thanks to a bug
2698 report by Oliver Sander <osander-AT-gmx.de>.
2703 report by Oliver Sander <osander-AT-gmx.de>.
2699
2704
2700 * IPython/FakeModule.py (FakeModule.__repr__): this method was
2705 * IPython/FakeModule.py (FakeModule.__repr__): this method was
2701 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
2706 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
2702
2707
2703 2003-09-09 Fernando Perez <fperez@colorado.edu>
2708 2003-09-09 Fernando Perez <fperez@colorado.edu>
2704
2709
2705 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2710 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2706 unpacking a list whith a callable as first element would
2711 unpacking a list whith a callable as first element would
2707 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
2712 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
2708 Collins.
2713 Collins.
2709
2714
2710 2003-08-25 *** Released version 0.5.0
2715 2003-08-25 *** Released version 0.5.0
2711
2716
2712 2003-08-22 Fernando Perez <fperez@colorado.edu>
2717 2003-08-22 Fernando Perez <fperez@colorado.edu>
2713
2718
2714 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
2719 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
2715 improperly defined user exceptions. Thanks to feedback from Mark
2720 improperly defined user exceptions. Thanks to feedback from Mark
2716 Russell <mrussell-AT-verio.net>.
2721 Russell <mrussell-AT-verio.net>.
2717
2722
2718 2003-08-20 Fernando Perez <fperez@colorado.edu>
2723 2003-08-20 Fernando Perez <fperez@colorado.edu>
2719
2724
2720 * IPython/OInspect.py (Inspector.pinfo): changed String Form
2725 * IPython/OInspect.py (Inspector.pinfo): changed String Form
2721 printing so that it would print multi-line string forms starting
2726 printing so that it would print multi-line string forms starting
2722 with a new line. This way the formatting is better respected for
2727 with a new line. This way the formatting is better respected for
2723 objects which work hard to make nice string forms.
2728 objects which work hard to make nice string forms.
2724
2729
2725 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
2730 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
2726 autocall would overtake data access for objects with both
2731 autocall would overtake data access for objects with both
2727 __getitem__ and __call__.
2732 __getitem__ and __call__.
2728
2733
2729 2003-08-19 *** Released version 0.5.0-rc1
2734 2003-08-19 *** Released version 0.5.0-rc1
2730
2735
2731 2003-08-19 Fernando Perez <fperez@colorado.edu>
2736 2003-08-19 Fernando Perez <fperez@colorado.edu>
2732
2737
2733 * IPython/deep_reload.py (load_tail): single tiny change here
2738 * IPython/deep_reload.py (load_tail): single tiny change here
2734 seems to fix the long-standing bug of dreload() failing to work
2739 seems to fix the long-standing bug of dreload() failing to work
2735 for dotted names. But this module is pretty tricky, so I may have
2740 for dotted names. But this module is pretty tricky, so I may have
2736 missed some subtlety. Needs more testing!.
2741 missed some subtlety. Needs more testing!.
2737
2742
2738 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
2743 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
2739 exceptions which have badly implemented __str__ methods.
2744 exceptions which have badly implemented __str__ methods.
2740 (VerboseTB.text): harden against inspect.getinnerframes crashing,
2745 (VerboseTB.text): harden against inspect.getinnerframes crashing,
2741 which I've been getting reports about from Python 2.3 users. I
2746 which I've been getting reports about from Python 2.3 users. I
2742 wish I had a simple test case to reproduce the problem, so I could
2747 wish I had a simple test case to reproduce the problem, so I could
2743 either write a cleaner workaround or file a bug report if
2748 either write a cleaner workaround or file a bug report if
2744 necessary.
2749 necessary.
2745
2750
2746 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
2751 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
2747 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
2752 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
2748 a bug report by Tjabo Kloppenburg.
2753 a bug report by Tjabo Kloppenburg.
2749
2754
2750 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
2755 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
2751 crashes. Wrapped the pdb call in a blanket try/except, since pdb
2756 crashes. Wrapped the pdb call in a blanket try/except, since pdb
2752 seems rather unstable. Thanks to a bug report by Tjabo
2757 seems rather unstable. Thanks to a bug report by Tjabo
2753 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
2758 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
2754
2759
2755 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
2760 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
2756 this out soon because of the critical fixes in the inner loop for
2761 this out soon because of the critical fixes in the inner loop for
2757 generators.
2762 generators.
2758
2763
2759 * IPython/Magic.py (Magic.getargspec): removed. This (and
2764 * IPython/Magic.py (Magic.getargspec): removed. This (and
2760 _get_def) have been obsoleted by OInspect for a long time, I
2765 _get_def) have been obsoleted by OInspect for a long time, I
2761 hadn't noticed that they were dead code.
2766 hadn't noticed that they were dead code.
2762 (Magic._ofind): restored _ofind functionality for a few literals
2767 (Magic._ofind): restored _ofind functionality for a few literals
2763 (those in ["''",'""','[]','{}','()']). But it won't work anymore
2768 (those in ["''",'""','[]','{}','()']). But it won't work anymore
2764 for things like "hello".capitalize?, since that would require a
2769 for things like "hello".capitalize?, since that would require a
2765 potentially dangerous eval() again.
2770 potentially dangerous eval() again.
2766
2771
2767 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
2772 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
2768 logic a bit more to clean up the escapes handling and minimize the
2773 logic a bit more to clean up the escapes handling and minimize the
2769 use of _ofind to only necessary cases. The interactive 'feel' of
2774 use of _ofind to only necessary cases. The interactive 'feel' of
2770 IPython should have improved quite a bit with the changes in
2775 IPython should have improved quite a bit with the changes in
2771 _prefilter and _ofind (besides being far safer than before).
2776 _prefilter and _ofind (besides being far safer than before).
2772
2777
2773 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
2778 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
2774 obscure, never reported). Edit would fail to find the object to
2779 obscure, never reported). Edit would fail to find the object to
2775 edit under some circumstances.
2780 edit under some circumstances.
2776 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
2781 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
2777 which were causing double-calling of generators. Those eval calls
2782 which were causing double-calling of generators. Those eval calls
2778 were _very_ dangerous, since code with side effects could be
2783 were _very_ dangerous, since code with side effects could be
2779 triggered. As they say, 'eval is evil'... These were the
2784 triggered. As they say, 'eval is evil'... These were the
2780 nastiest evals in IPython. Besides, _ofind is now far simpler,
2785 nastiest evals in IPython. Besides, _ofind is now far simpler,
2781 and it should also be quite a bit faster. Its use of inspect is
2786 and it should also be quite a bit faster. Its use of inspect is
2782 also safer, so perhaps some of the inspect-related crashes I've
2787 also safer, so perhaps some of the inspect-related crashes I've
2783 seen lately with Python 2.3 might be taken care of. That will
2788 seen lately with Python 2.3 might be taken care of. That will
2784 need more testing.
2789 need more testing.
2785
2790
2786 2003-08-17 Fernando Perez <fperez@colorado.edu>
2791 2003-08-17 Fernando Perez <fperez@colorado.edu>
2787
2792
2788 * IPython/iplib.py (InteractiveShell._prefilter): significant
2793 * IPython/iplib.py (InteractiveShell._prefilter): significant
2789 simplifications to the logic for handling user escapes. Faster
2794 simplifications to the logic for handling user escapes. Faster
2790 and simpler code.
2795 and simpler code.
2791
2796
2792 2003-08-14 Fernando Perez <fperez@colorado.edu>
2797 2003-08-14 Fernando Perez <fperez@colorado.edu>
2793
2798
2794 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
2799 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
2795 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
2800 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
2796 but it should be quite a bit faster. And the recursive version
2801 but it should be quite a bit faster. And the recursive version
2797 generated O(log N) intermediate storage for all rank>1 arrays,
2802 generated O(log N) intermediate storage for all rank>1 arrays,
2798 even if they were contiguous.
2803 even if they were contiguous.
2799 (l1norm): Added this function.
2804 (l1norm): Added this function.
2800 (norm): Added this function for arbitrary norms (including
2805 (norm): Added this function for arbitrary norms (including
2801 l-infinity). l1 and l2 are still special cases for convenience
2806 l-infinity). l1 and l2 are still special cases for convenience
2802 and speed.
2807 and speed.
2803
2808
2804 2003-08-03 Fernando Perez <fperez@colorado.edu>
2809 2003-08-03 Fernando Perez <fperez@colorado.edu>
2805
2810
2806 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
2811 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
2807 exceptions, which now raise PendingDeprecationWarnings in Python
2812 exceptions, which now raise PendingDeprecationWarnings in Python
2808 2.3. There were some in Magic and some in Gnuplot2.
2813 2.3. There were some in Magic and some in Gnuplot2.
2809
2814
2810 2003-06-30 Fernando Perez <fperez@colorado.edu>
2815 2003-06-30 Fernando Perez <fperez@colorado.edu>
2811
2816
2812 * IPython/genutils.py (page): modified to call curses only for
2817 * IPython/genutils.py (page): modified to call curses only for
2813 terminals where TERM=='xterm'. After problems under many other
2818 terminals where TERM=='xterm'. After problems under many other
2814 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
2819 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
2815
2820
2816 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
2821 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
2817 would be triggered when readline was absent. This was just an old
2822 would be triggered when readline was absent. This was just an old
2818 debugging statement I'd forgotten to take out.
2823 debugging statement I'd forgotten to take out.
2819
2824
2820 2003-06-20 Fernando Perez <fperez@colorado.edu>
2825 2003-06-20 Fernando Perez <fperez@colorado.edu>
2821
2826
2822 * IPython/genutils.py (clock): modified to return only user time
2827 * IPython/genutils.py (clock): modified to return only user time
2823 (not counting system time), after a discussion on scipy. While
2828 (not counting system time), after a discussion on scipy. While
2824 system time may be a useful quantity occasionally, it may much
2829 system time may be a useful quantity occasionally, it may much
2825 more easily be skewed by occasional swapping or other similar
2830 more easily be skewed by occasional swapping or other similar
2826 activity.
2831 activity.
2827
2832
2828 2003-06-05 Fernando Perez <fperez@colorado.edu>
2833 2003-06-05 Fernando Perez <fperez@colorado.edu>
2829
2834
2830 * IPython/numutils.py (identity): new function, for building
2835 * IPython/numutils.py (identity): new function, for building
2831 arbitrary rank Kronecker deltas (mostly backwards compatible with
2836 arbitrary rank Kronecker deltas (mostly backwards compatible with
2832 Numeric.identity)
2837 Numeric.identity)
2833
2838
2834 2003-06-03 Fernando Perez <fperez@colorado.edu>
2839 2003-06-03 Fernando Perez <fperez@colorado.edu>
2835
2840
2836 * IPython/iplib.py (InteractiveShell.handle_magic): protect
2841 * IPython/iplib.py (InteractiveShell.handle_magic): protect
2837 arguments passed to magics with spaces, to allow trailing '\' to
2842 arguments passed to magics with spaces, to allow trailing '\' to
2838 work normally (mainly for Windows users).
2843 work normally (mainly for Windows users).
2839
2844
2840 2003-05-29 Fernando Perez <fperez@colorado.edu>
2845 2003-05-29 Fernando Perez <fperez@colorado.edu>
2841
2846
2842 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
2847 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
2843 instead of pydoc.help. This fixes a bizarre behavior where
2848 instead of pydoc.help. This fixes a bizarre behavior where
2844 printing '%s' % locals() would trigger the help system. Now
2849 printing '%s' % locals() would trigger the help system. Now
2845 ipython behaves like normal python does.
2850 ipython behaves like normal python does.
2846
2851
2847 Note that if one does 'from pydoc import help', the bizarre
2852 Note that if one does 'from pydoc import help', the bizarre
2848 behavior returns, but this will also happen in normal python, so
2853 behavior returns, but this will also happen in normal python, so
2849 it's not an ipython bug anymore (it has to do with how pydoc.help
2854 it's not an ipython bug anymore (it has to do with how pydoc.help
2850 is implemented).
2855 is implemented).
2851
2856
2852 2003-05-22 Fernando Perez <fperez@colorado.edu>
2857 2003-05-22 Fernando Perez <fperez@colorado.edu>
2853
2858
2854 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
2859 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
2855 return [] instead of None when nothing matches, also match to end
2860 return [] instead of None when nothing matches, also match to end
2856 of line. Patch by Gary Bishop.
2861 of line. Patch by Gary Bishop.
2857
2862
2858 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
2863 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
2859 protection as before, for files passed on the command line. This
2864 protection as before, for files passed on the command line. This
2860 prevents the CrashHandler from kicking in if user files call into
2865 prevents the CrashHandler from kicking in if user files call into
2861 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
2866 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
2862 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
2867 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
2863
2868
2864 2003-05-20 *** Released version 0.4.0
2869 2003-05-20 *** Released version 0.4.0
2865
2870
2866 2003-05-20 Fernando Perez <fperez@colorado.edu>
2871 2003-05-20 Fernando Perez <fperez@colorado.edu>
2867
2872
2868 * setup.py: added support for manpages. It's a bit hackish b/c of
2873 * setup.py: added support for manpages. It's a bit hackish b/c of
2869 a bug in the way the bdist_rpm distutils target handles gzipped
2874 a bug in the way the bdist_rpm distutils target handles gzipped
2870 manpages, but it works. After a patch by Jack.
2875 manpages, but it works. After a patch by Jack.
2871
2876
2872 2003-05-19 Fernando Perez <fperez@colorado.edu>
2877 2003-05-19 Fernando Perez <fperez@colorado.edu>
2873
2878
2874 * IPython/numutils.py: added a mockup of the kinds module, since
2879 * IPython/numutils.py: added a mockup of the kinds module, since
2875 it was recently removed from Numeric. This way, numutils will
2880 it was recently removed from Numeric. This way, numutils will
2876 work for all users even if they are missing kinds.
2881 work for all users even if they are missing kinds.
2877
2882
2878 * IPython/Magic.py (Magic._ofind): Harden against an inspect
2883 * IPython/Magic.py (Magic._ofind): Harden against an inspect
2879 failure, which can occur with SWIG-wrapped extensions. After a
2884 failure, which can occur with SWIG-wrapped extensions. After a
2880 crash report from Prabhu.
2885 crash report from Prabhu.
2881
2886
2882 2003-05-16 Fernando Perez <fperez@colorado.edu>
2887 2003-05-16 Fernando Perez <fperez@colorado.edu>
2883
2888
2884 * IPython/iplib.py (InteractiveShell.excepthook): New method to
2889 * IPython/iplib.py (InteractiveShell.excepthook): New method to
2885 protect ipython from user code which may call directly
2890 protect ipython from user code which may call directly
2886 sys.excepthook (this looks like an ipython crash to the user, even
2891 sys.excepthook (this looks like an ipython crash to the user, even
2887 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2892 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2888 This is especially important to help users of WxWindows, but may
2893 This is especially important to help users of WxWindows, but may
2889 also be useful in other cases.
2894 also be useful in other cases.
2890
2895
2891 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
2896 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
2892 an optional tb_offset to be specified, and to preserve exception
2897 an optional tb_offset to be specified, and to preserve exception
2893 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2898 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2894
2899
2895 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
2900 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
2896
2901
2897 2003-05-15 Fernando Perez <fperez@colorado.edu>
2902 2003-05-15 Fernando Perez <fperez@colorado.edu>
2898
2903
2899 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
2904 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
2900 installing for a new user under Windows.
2905 installing for a new user under Windows.
2901
2906
2902 2003-05-12 Fernando Perez <fperez@colorado.edu>
2907 2003-05-12 Fernando Perez <fperez@colorado.edu>
2903
2908
2904 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
2909 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
2905 handler for Emacs comint-based lines. Currently it doesn't do
2910 handler for Emacs comint-based lines. Currently it doesn't do
2906 much (but importantly, it doesn't update the history cache). In
2911 much (but importantly, it doesn't update the history cache). In
2907 the future it may be expanded if Alex needs more functionality
2912 the future it may be expanded if Alex needs more functionality
2908 there.
2913 there.
2909
2914
2910 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
2915 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
2911 info to crash reports.
2916 info to crash reports.
2912
2917
2913 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
2918 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
2914 just like Python's -c. Also fixed crash with invalid -color
2919 just like Python's -c. Also fixed crash with invalid -color
2915 option value at startup. Thanks to Will French
2920 option value at startup. Thanks to Will French
2916 <wfrench-AT-bestweb.net> for the bug report.
2921 <wfrench-AT-bestweb.net> for the bug report.
2917
2922
2918 2003-05-09 Fernando Perez <fperez@colorado.edu>
2923 2003-05-09 Fernando Perez <fperez@colorado.edu>
2919
2924
2920 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
2925 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
2921 to EvalDict (it's a mapping, after all) and simplified its code
2926 to EvalDict (it's a mapping, after all) and simplified its code
2922 quite a bit, after a nice discussion on c.l.py where Gustavo
2927 quite a bit, after a nice discussion on c.l.py where Gustavo
2923 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
2928 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
2924
2929
2925 2003-04-30 Fernando Perez <fperez@colorado.edu>
2930 2003-04-30 Fernando Perez <fperez@colorado.edu>
2926
2931
2927 * IPython/genutils.py (timings_out): modified it to reduce its
2932 * IPython/genutils.py (timings_out): modified it to reduce its
2928 overhead in the common reps==1 case.
2933 overhead in the common reps==1 case.
2929
2934
2930 2003-04-29 Fernando Perez <fperez@colorado.edu>
2935 2003-04-29 Fernando Perez <fperez@colorado.edu>
2931
2936
2932 * IPython/genutils.py (timings_out): Modified to use the resource
2937 * IPython/genutils.py (timings_out): Modified to use the resource
2933 module, which avoids the wraparound problems of time.clock().
2938 module, which avoids the wraparound problems of time.clock().
2934
2939
2935 2003-04-17 *** Released version 0.2.15pre4
2940 2003-04-17 *** Released version 0.2.15pre4
2936
2941
2937 2003-04-17 Fernando Perez <fperez@colorado.edu>
2942 2003-04-17 Fernando Perez <fperez@colorado.edu>
2938
2943
2939 * setup.py (scriptfiles): Split windows-specific stuff over to a
2944 * setup.py (scriptfiles): Split windows-specific stuff over to a
2940 separate file, in an attempt to have a Windows GUI installer.
2945 separate file, in an attempt to have a Windows GUI installer.
2941 That didn't work, but part of the groundwork is done.
2946 That didn't work, but part of the groundwork is done.
2942
2947
2943 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
2948 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
2944 indent/unindent with 4 spaces. Particularly useful in combination
2949 indent/unindent with 4 spaces. Particularly useful in combination
2945 with the new auto-indent option.
2950 with the new auto-indent option.
2946
2951
2947 2003-04-16 Fernando Perez <fperez@colorado.edu>
2952 2003-04-16 Fernando Perez <fperez@colorado.edu>
2948
2953
2949 * IPython/Magic.py: various replacements of self.rc for
2954 * IPython/Magic.py: various replacements of self.rc for
2950 self.shell.rc. A lot more remains to be done to fully disentangle
2955 self.shell.rc. A lot more remains to be done to fully disentangle
2951 this class from the main Shell class.
2956 this class from the main Shell class.
2952
2957
2953 * IPython/GnuplotRuntime.py: added checks for mouse support so
2958 * IPython/GnuplotRuntime.py: added checks for mouse support so
2954 that we don't try to enable it if the current gnuplot doesn't
2959 that we don't try to enable it if the current gnuplot doesn't
2955 really support it. Also added checks so that we don't try to
2960 really support it. Also added checks so that we don't try to
2956 enable persist under Windows (where Gnuplot doesn't recognize the
2961 enable persist under Windows (where Gnuplot doesn't recognize the
2957 option).
2962 option).
2958
2963
2959 * IPython/iplib.py (InteractiveShell.interact): Added optional
2964 * IPython/iplib.py (InteractiveShell.interact): Added optional
2960 auto-indenting code, after a patch by King C. Shu
2965 auto-indenting code, after a patch by King C. Shu
2961 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
2966 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
2962 get along well with pasting indented code. If I ever figure out
2967 get along well with pasting indented code. If I ever figure out
2963 how to make that part go well, it will become on by default.
2968 how to make that part go well, it will become on by default.
2964
2969
2965 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
2970 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
2966 crash ipython if there was an unmatched '%' in the user's prompt
2971 crash ipython if there was an unmatched '%' in the user's prompt
2967 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
2972 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
2968
2973
2969 * IPython/iplib.py (InteractiveShell.interact): removed the
2974 * IPython/iplib.py (InteractiveShell.interact): removed the
2970 ability to ask the user whether he wants to crash or not at the
2975 ability to ask the user whether he wants to crash or not at the
2971 'last line' exception handler. Calling functions at that point
2976 'last line' exception handler. Calling functions at that point
2972 changes the stack, and the error reports would have incorrect
2977 changes the stack, and the error reports would have incorrect
2973 tracebacks.
2978 tracebacks.
2974
2979
2975 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
2980 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
2976 pass through a peger a pretty-printed form of any object. After a
2981 pass through a peger a pretty-printed form of any object. After a
2977 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
2982 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
2978
2983
2979 2003-04-14 Fernando Perez <fperez@colorado.edu>
2984 2003-04-14 Fernando Perez <fperez@colorado.edu>
2980
2985
2981 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
2986 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
2982 all files in ~ would be modified at first install (instead of
2987 all files in ~ would be modified at first install (instead of
2983 ~/.ipython). This could be potentially disastrous, as the
2988 ~/.ipython). This could be potentially disastrous, as the
2984 modification (make line-endings native) could damage binary files.
2989 modification (make line-endings native) could damage binary files.
2985
2990
2986 2003-04-10 Fernando Perez <fperez@colorado.edu>
2991 2003-04-10 Fernando Perez <fperez@colorado.edu>
2987
2992
2988 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
2993 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
2989 handle only lines which are invalid python. This now means that
2994 handle only lines which are invalid python. This now means that
2990 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
2995 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
2991 for the bug report.
2996 for the bug report.
2992
2997
2993 2003-04-01 Fernando Perez <fperez@colorado.edu>
2998 2003-04-01 Fernando Perez <fperez@colorado.edu>
2994
2999
2995 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3000 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
2996 where failing to set sys.last_traceback would crash pdb.pm().
3001 where failing to set sys.last_traceback would crash pdb.pm().
2997 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3002 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
2998 report.
3003 report.
2999
3004
3000 2003-03-25 Fernando Perez <fperez@colorado.edu>
3005 2003-03-25 Fernando Perez <fperez@colorado.edu>
3001
3006
3002 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3007 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3003 before printing it (it had a lot of spurious blank lines at the
3008 before printing it (it had a lot of spurious blank lines at the
3004 end).
3009 end).
3005
3010
3006 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3011 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3007 output would be sent 21 times! Obviously people don't use this
3012 output would be sent 21 times! Obviously people don't use this
3008 too often, or I would have heard about it.
3013 too often, or I would have heard about it.
3009
3014
3010 2003-03-24 Fernando Perez <fperez@colorado.edu>
3015 2003-03-24 Fernando Perez <fperez@colorado.edu>
3011
3016
3012 * setup.py (scriptfiles): renamed the data_files parameter from
3017 * setup.py (scriptfiles): renamed the data_files parameter from
3013 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3018 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3014 for the patch.
3019 for the patch.
3015
3020
3016 2003-03-20 Fernando Perez <fperez@colorado.edu>
3021 2003-03-20 Fernando Perez <fperez@colorado.edu>
3017
3022
3018 * IPython/genutils.py (error): added error() and fatal()
3023 * IPython/genutils.py (error): added error() and fatal()
3019 functions.
3024 functions.
3020
3025
3021 2003-03-18 *** Released version 0.2.15pre3
3026 2003-03-18 *** Released version 0.2.15pre3
3022
3027
3023 2003-03-18 Fernando Perez <fperez@colorado.edu>
3028 2003-03-18 Fernando Perez <fperez@colorado.edu>
3024
3029
3025 * setupext/install_data_ext.py
3030 * setupext/install_data_ext.py
3026 (install_data_ext.initialize_options): Class contributed by Jack
3031 (install_data_ext.initialize_options): Class contributed by Jack
3027 Moffit for fixing the old distutils hack. He is sending this to
3032 Moffit for fixing the old distutils hack. He is sending this to
3028 the distutils folks so in the future we may not need it as a
3033 the distutils folks so in the future we may not need it as a
3029 private fix.
3034 private fix.
3030
3035
3031 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3036 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3032 changes for Debian packaging. See his patch for full details.
3037 changes for Debian packaging. See his patch for full details.
3033 The old distutils hack of making the ipythonrc* files carry a
3038 The old distutils hack of making the ipythonrc* files carry a
3034 bogus .py extension is gone, at last. Examples were moved to a
3039 bogus .py extension is gone, at last. Examples were moved to a
3035 separate subdir under doc/, and the separate executable scripts
3040 separate subdir under doc/, and the separate executable scripts
3036 now live in their own directory. Overall a great cleanup. The
3041 now live in their own directory. Overall a great cleanup. The
3037 manual was updated to use the new files, and setup.py has been
3042 manual was updated to use the new files, and setup.py has been
3038 fixed for this setup.
3043 fixed for this setup.
3039
3044
3040 * IPython/PyColorize.py (Parser.usage): made non-executable and
3045 * IPython/PyColorize.py (Parser.usage): made non-executable and
3041 created a pycolor wrapper around it to be included as a script.
3046 created a pycolor wrapper around it to be included as a script.
3042
3047
3043 2003-03-12 *** Released version 0.2.15pre2
3048 2003-03-12 *** Released version 0.2.15pre2
3044
3049
3045 2003-03-12 Fernando Perez <fperez@colorado.edu>
3050 2003-03-12 Fernando Perez <fperez@colorado.edu>
3046
3051
3047 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3052 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3048 long-standing problem with garbage characters in some terminals.
3053 long-standing problem with garbage characters in some terminals.
3049 The issue was really that the \001 and \002 escapes must _only_ be
3054 The issue was really that the \001 and \002 escapes must _only_ be
3050 passed to input prompts (which call readline), but _never_ to
3055 passed to input prompts (which call readline), but _never_ to
3051 normal text to be printed on screen. I changed ColorANSI to have
3056 normal text to be printed on screen. I changed ColorANSI to have
3052 two classes: TermColors and InputTermColors, each with the
3057 two classes: TermColors and InputTermColors, each with the
3053 appropriate escapes for input prompts or normal text. The code in
3058 appropriate escapes for input prompts or normal text. The code in
3054 Prompts.py got slightly more complicated, but this very old and
3059 Prompts.py got slightly more complicated, but this very old and
3055 annoying bug is finally fixed.
3060 annoying bug is finally fixed.
3056
3061
3057 All the credit for nailing down the real origin of this problem
3062 All the credit for nailing down the real origin of this problem
3058 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3063 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3059 *Many* thanks to him for spending quite a bit of effort on this.
3064 *Many* thanks to him for spending quite a bit of effort on this.
3060
3065
3061 2003-03-05 *** Released version 0.2.15pre1
3066 2003-03-05 *** Released version 0.2.15pre1
3062
3067
3063 2003-03-03 Fernando Perez <fperez@colorado.edu>
3068 2003-03-03 Fernando Perez <fperez@colorado.edu>
3064
3069
3065 * IPython/FakeModule.py: Moved the former _FakeModule to a
3070 * IPython/FakeModule.py: Moved the former _FakeModule to a
3066 separate file, because it's also needed by Magic (to fix a similar
3071 separate file, because it's also needed by Magic (to fix a similar
3067 pickle-related issue in @run).
3072 pickle-related issue in @run).
3068
3073
3069 2003-03-02 Fernando Perez <fperez@colorado.edu>
3074 2003-03-02 Fernando Perez <fperez@colorado.edu>
3070
3075
3071 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3076 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3072 the autocall option at runtime.
3077 the autocall option at runtime.
3073 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3078 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3074 across Magic.py to start separating Magic from InteractiveShell.
3079 across Magic.py to start separating Magic from InteractiveShell.
3075 (Magic._ofind): Fixed to return proper namespace for dotted
3080 (Magic._ofind): Fixed to return proper namespace for dotted
3076 names. Before, a dotted name would always return 'not currently
3081 names. Before, a dotted name would always return 'not currently
3077 defined', because it would find the 'parent'. s.x would be found,
3082 defined', because it would find the 'parent'. s.x would be found,
3078 but since 'x' isn't defined by itself, it would get confused.
3083 but since 'x' isn't defined by itself, it would get confused.
3079 (Magic.magic_run): Fixed pickling problems reported by Ralf
3084 (Magic.magic_run): Fixed pickling problems reported by Ralf
3080 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3085 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3081 that I'd used when Mike Heeter reported similar issues at the
3086 that I'd used when Mike Heeter reported similar issues at the
3082 top-level, but now for @run. It boils down to injecting the
3087 top-level, but now for @run. It boils down to injecting the
3083 namespace where code is being executed with something that looks
3088 namespace where code is being executed with something that looks
3084 enough like a module to fool pickle.dump(). Since a pickle stores
3089 enough like a module to fool pickle.dump(). Since a pickle stores
3085 a named reference to the importing module, we need this for
3090 a named reference to the importing module, we need this for
3086 pickles to save something sensible.
3091 pickles to save something sensible.
3087
3092
3088 * IPython/ipmaker.py (make_IPython): added an autocall option.
3093 * IPython/ipmaker.py (make_IPython): added an autocall option.
3089
3094
3090 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3095 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3091 the auto-eval code. Now autocalling is an option, and the code is
3096 the auto-eval code. Now autocalling is an option, and the code is
3092 also vastly safer. There is no more eval() involved at all.
3097 also vastly safer. There is no more eval() involved at all.
3093
3098
3094 2003-03-01 Fernando Perez <fperez@colorado.edu>
3099 2003-03-01 Fernando Perez <fperez@colorado.edu>
3095
3100
3096 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3101 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3097 dict with named keys instead of a tuple.
3102 dict with named keys instead of a tuple.
3098
3103
3099 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3104 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3100
3105
3101 * setup.py (make_shortcut): Fixed message about directories
3106 * setup.py (make_shortcut): Fixed message about directories
3102 created during Windows installation (the directories were ok, just
3107 created during Windows installation (the directories were ok, just
3103 the printed message was misleading). Thanks to Chris Liechti
3108 the printed message was misleading). Thanks to Chris Liechti
3104 <cliechti-AT-gmx.net> for the heads up.
3109 <cliechti-AT-gmx.net> for the heads up.
3105
3110
3106 2003-02-21 Fernando Perez <fperez@colorado.edu>
3111 2003-02-21 Fernando Perez <fperez@colorado.edu>
3107
3112
3108 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3113 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3109 of ValueError exception when checking for auto-execution. This
3114 of ValueError exception when checking for auto-execution. This
3110 one is raised by things like Numeric arrays arr.flat when the
3115 one is raised by things like Numeric arrays arr.flat when the
3111 array is non-contiguous.
3116 array is non-contiguous.
3112
3117
3113 2003-01-31 Fernando Perez <fperez@colorado.edu>
3118 2003-01-31 Fernando Perez <fperez@colorado.edu>
3114
3119
3115 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3120 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3116 not return any value at all (even though the command would get
3121 not return any value at all (even though the command would get
3117 executed).
3122 executed).
3118 (xsys): Flush stdout right after printing the command to ensure
3123 (xsys): Flush stdout right after printing the command to ensure
3119 proper ordering of commands and command output in the total
3124 proper ordering of commands and command output in the total
3120 output.
3125 output.
3121 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3126 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3122 system/getoutput as defaults. The old ones are kept for
3127 system/getoutput as defaults. The old ones are kept for
3123 compatibility reasons, so no code which uses this library needs
3128 compatibility reasons, so no code which uses this library needs
3124 changing.
3129 changing.
3125
3130
3126 2003-01-27 *** Released version 0.2.14
3131 2003-01-27 *** Released version 0.2.14
3127
3132
3128 2003-01-25 Fernando Perez <fperez@colorado.edu>
3133 2003-01-25 Fernando Perez <fperez@colorado.edu>
3129
3134
3130 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3135 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3131 functions defined in previous edit sessions could not be re-edited
3136 functions defined in previous edit sessions could not be re-edited
3132 (because the temp files were immediately removed). Now temp files
3137 (because the temp files were immediately removed). Now temp files
3133 are removed only at IPython's exit.
3138 are removed only at IPython's exit.
3134 (Magic.magic_run): Improved @run to perform shell-like expansions
3139 (Magic.magic_run): Improved @run to perform shell-like expansions
3135 on its arguments (~users and $VARS). With this, @run becomes more
3140 on its arguments (~users and $VARS). With this, @run becomes more
3136 like a normal command-line.
3141 like a normal command-line.
3137
3142
3138 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3143 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3139 bugs related to embedding and cleaned up that code. A fairly
3144 bugs related to embedding and cleaned up that code. A fairly
3140 important one was the impossibility to access the global namespace
3145 important one was the impossibility to access the global namespace
3141 through the embedded IPython (only local variables were visible).
3146 through the embedded IPython (only local variables were visible).
3142
3147
3143 2003-01-14 Fernando Perez <fperez@colorado.edu>
3148 2003-01-14 Fernando Perez <fperez@colorado.edu>
3144
3149
3145 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3150 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3146 auto-calling to be a bit more conservative. Now it doesn't get
3151 auto-calling to be a bit more conservative. Now it doesn't get
3147 triggered if any of '!=()<>' are in the rest of the input line, to
3152 triggered if any of '!=()<>' are in the rest of the input line, to
3148 allow comparing callables. Thanks to Alex for the heads up.
3153 allow comparing callables. Thanks to Alex for the heads up.
3149
3154
3150 2003-01-07 Fernando Perez <fperez@colorado.edu>
3155 2003-01-07 Fernando Perez <fperez@colorado.edu>
3151
3156
3152 * IPython/genutils.py (page): fixed estimation of the number of
3157 * IPython/genutils.py (page): fixed estimation of the number of
3153 lines in a string to be paged to simply count newlines. This
3158 lines in a string to be paged to simply count newlines. This
3154 prevents over-guessing due to embedded escape sequences. A better
3159 prevents over-guessing due to embedded escape sequences. A better
3155 long-term solution would involve stripping out the control chars
3160 long-term solution would involve stripping out the control chars
3156 for the count, but it's potentially so expensive I just don't
3161 for the count, but it's potentially so expensive I just don't
3157 think it's worth doing.
3162 think it's worth doing.
3158
3163
3159 2002-12-19 *** Released version 0.2.14pre50
3164 2002-12-19 *** Released version 0.2.14pre50
3160
3165
3161 2002-12-19 Fernando Perez <fperez@colorado.edu>
3166 2002-12-19 Fernando Perez <fperez@colorado.edu>
3162
3167
3163 * tools/release (version): Changed release scripts to inform
3168 * tools/release (version): Changed release scripts to inform
3164 Andrea and build a NEWS file with a list of recent changes.
3169 Andrea and build a NEWS file with a list of recent changes.
3165
3170
3166 * IPython/ColorANSI.py (__all__): changed terminal detection
3171 * IPython/ColorANSI.py (__all__): changed terminal detection
3167 code. Seems to work better for xterms without breaking
3172 code. Seems to work better for xterms without breaking
3168 konsole. Will need more testing to determine if WinXP and Mac OSX
3173 konsole. Will need more testing to determine if WinXP and Mac OSX
3169 also work ok.
3174 also work ok.
3170
3175
3171 2002-12-18 *** Released version 0.2.14pre49
3176 2002-12-18 *** Released version 0.2.14pre49
3172
3177
3173 2002-12-18 Fernando Perez <fperez@colorado.edu>
3178 2002-12-18 Fernando Perez <fperez@colorado.edu>
3174
3179
3175 * Docs: added new info about Mac OSX, from Andrea.
3180 * Docs: added new info about Mac OSX, from Andrea.
3176
3181
3177 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3182 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3178 allow direct plotting of python strings whose format is the same
3183 allow direct plotting of python strings whose format is the same
3179 of gnuplot data files.
3184 of gnuplot data files.
3180
3185
3181 2002-12-16 Fernando Perez <fperez@colorado.edu>
3186 2002-12-16 Fernando Perez <fperez@colorado.edu>
3182
3187
3183 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3188 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3184 value of exit question to be acknowledged.
3189 value of exit question to be acknowledged.
3185
3190
3186 2002-12-03 Fernando Perez <fperez@colorado.edu>
3191 2002-12-03 Fernando Perez <fperez@colorado.edu>
3187
3192
3188 * IPython/ipmaker.py: removed generators, which had been added
3193 * IPython/ipmaker.py: removed generators, which had been added
3189 by mistake in an earlier debugging run. This was causing trouble
3194 by mistake in an earlier debugging run. This was causing trouble
3190 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3195 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3191 for pointing this out.
3196 for pointing this out.
3192
3197
3193 2002-11-17 Fernando Perez <fperez@colorado.edu>
3198 2002-11-17 Fernando Perez <fperez@colorado.edu>
3194
3199
3195 * Manual: updated the Gnuplot section.
3200 * Manual: updated the Gnuplot section.
3196
3201
3197 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3202 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3198 a much better split of what goes in Runtime and what goes in
3203 a much better split of what goes in Runtime and what goes in
3199 Interactive.
3204 Interactive.
3200
3205
3201 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3206 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3202 being imported from iplib.
3207 being imported from iplib.
3203
3208
3204 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3209 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3205 for command-passing. Now the global Gnuplot instance is called
3210 for command-passing. Now the global Gnuplot instance is called
3206 'gp' instead of 'g', which was really a far too fragile and
3211 'gp' instead of 'g', which was really a far too fragile and
3207 common name.
3212 common name.
3208
3213
3209 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3214 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3210 bounding boxes generated by Gnuplot for square plots.
3215 bounding boxes generated by Gnuplot for square plots.
3211
3216
3212 * IPython/genutils.py (popkey): new function added. I should
3217 * IPython/genutils.py (popkey): new function added. I should
3213 suggest this on c.l.py as a dict method, it seems useful.
3218 suggest this on c.l.py as a dict method, it seems useful.
3214
3219
3215 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3220 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3216 to transparently handle PostScript generation. MUCH better than
3221 to transparently handle PostScript generation. MUCH better than
3217 the previous plot_eps/replot_eps (which I removed now). The code
3222 the previous plot_eps/replot_eps (which I removed now). The code
3218 is also fairly clean and well documented now (including
3223 is also fairly clean and well documented now (including
3219 docstrings).
3224 docstrings).
3220
3225
3221 2002-11-13 Fernando Perez <fperez@colorado.edu>
3226 2002-11-13 Fernando Perez <fperez@colorado.edu>
3222
3227
3223 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3228 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3224 (inconsistent with options).
3229 (inconsistent with options).
3225
3230
3226 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3231 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3227 manually disabled, I don't know why. Fixed it.
3232 manually disabled, I don't know why. Fixed it.
3228 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3233 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3229 eps output.
3234 eps output.
3230
3235
3231 2002-11-12 Fernando Perez <fperez@colorado.edu>
3236 2002-11-12 Fernando Perez <fperez@colorado.edu>
3232
3237
3233 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3238 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3234 don't propagate up to caller. Fixes crash reported by François
3239 don't propagate up to caller. Fixes crash reported by François
3235 Pinard.
3240 Pinard.
3236
3241
3237 2002-11-09 Fernando Perez <fperez@colorado.edu>
3242 2002-11-09 Fernando Perez <fperez@colorado.edu>
3238
3243
3239 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3244 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3240 history file for new users.
3245 history file for new users.
3241 (make_IPython): fixed bug where initial install would leave the
3246 (make_IPython): fixed bug where initial install would leave the
3242 user running in the .ipython dir.
3247 user running in the .ipython dir.
3243 (make_IPython): fixed bug where config dir .ipython would be
3248 (make_IPython): fixed bug where config dir .ipython would be
3244 created regardless of the given -ipythondir option. Thanks to Cory
3249 created regardless of the given -ipythondir option. Thanks to Cory
3245 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3250 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3246
3251
3247 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3252 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3248 type confirmations. Will need to use it in all of IPython's code
3253 type confirmations. Will need to use it in all of IPython's code
3249 consistently.
3254 consistently.
3250
3255
3251 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3256 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3252 context to print 31 lines instead of the default 5. This will make
3257 context to print 31 lines instead of the default 5. This will make
3253 the crash reports extremely detailed in case the problem is in
3258 the crash reports extremely detailed in case the problem is in
3254 libraries I don't have access to.
3259 libraries I don't have access to.
3255
3260
3256 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3261 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3257 line of defense' code to still crash, but giving users fair
3262 line of defense' code to still crash, but giving users fair
3258 warning. I don't want internal errors to go unreported: if there's
3263 warning. I don't want internal errors to go unreported: if there's
3259 an internal problem, IPython should crash and generate a full
3264 an internal problem, IPython should crash and generate a full
3260 report.
3265 report.
3261
3266
3262 2002-11-08 Fernando Perez <fperez@colorado.edu>
3267 2002-11-08 Fernando Perez <fperez@colorado.edu>
3263
3268
3264 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3269 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3265 otherwise uncaught exceptions which can appear if people set
3270 otherwise uncaught exceptions which can appear if people set
3266 sys.stdout to something badly broken. Thanks to a crash report
3271 sys.stdout to something badly broken. Thanks to a crash report
3267 from henni-AT-mail.brainbot.com.
3272 from henni-AT-mail.brainbot.com.
3268
3273
3269 2002-11-04 Fernando Perez <fperez@colorado.edu>
3274 2002-11-04 Fernando Perez <fperez@colorado.edu>
3270
3275
3271 * IPython/iplib.py (InteractiveShell.interact): added
3276 * IPython/iplib.py (InteractiveShell.interact): added
3272 __IPYTHON__active to the builtins. It's a flag which goes on when
3277 __IPYTHON__active to the builtins. It's a flag which goes on when
3273 the interaction starts and goes off again when it stops. This
3278 the interaction starts and goes off again when it stops. This
3274 allows embedding code to detect being inside IPython. Before this
3279 allows embedding code to detect being inside IPython. Before this
3275 was done via __IPYTHON__, but that only shows that an IPython
3280 was done via __IPYTHON__, but that only shows that an IPython
3276 instance has been created.
3281 instance has been created.
3277
3282
3278 * IPython/Magic.py (Magic.magic_env): I realized that in a
3283 * IPython/Magic.py (Magic.magic_env): I realized that in a
3279 UserDict, instance.data holds the data as a normal dict. So I
3284 UserDict, instance.data holds the data as a normal dict. So I
3280 modified @env to return os.environ.data instead of rebuilding a
3285 modified @env to return os.environ.data instead of rebuilding a
3281 dict by hand.
3286 dict by hand.
3282
3287
3283 2002-11-02 Fernando Perez <fperez@colorado.edu>
3288 2002-11-02 Fernando Perez <fperez@colorado.edu>
3284
3289
3285 * IPython/genutils.py (warn): changed so that level 1 prints no
3290 * IPython/genutils.py (warn): changed so that level 1 prints no
3286 header. Level 2 is now the default (with 'WARNING' header, as
3291 header. Level 2 is now the default (with 'WARNING' header, as
3287 before). I think I tracked all places where changes were needed in
3292 before). I think I tracked all places where changes were needed in
3288 IPython, but outside code using the old level numbering may have
3293 IPython, but outside code using the old level numbering may have
3289 broken.
3294 broken.
3290
3295
3291 * IPython/iplib.py (InteractiveShell.runcode): added this to
3296 * IPython/iplib.py (InteractiveShell.runcode): added this to
3292 handle the tracebacks in SystemExit traps correctly. The previous
3297 handle the tracebacks in SystemExit traps correctly. The previous
3293 code (through interact) was printing more of the stack than
3298 code (through interact) was printing more of the stack than
3294 necessary, showing IPython internal code to the user.
3299 necessary, showing IPython internal code to the user.
3295
3300
3296 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3301 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3297 default. Now that the default at the confirmation prompt is yes,
3302 default. Now that the default at the confirmation prompt is yes,
3298 it's not so intrusive. François' argument that ipython sessions
3303 it's not so intrusive. François' argument that ipython sessions
3299 tend to be complex enough not to lose them from an accidental C-d,
3304 tend to be complex enough not to lose them from an accidental C-d,
3300 is a valid one.
3305 is a valid one.
3301
3306
3302 * IPython/iplib.py (InteractiveShell.interact): added a
3307 * IPython/iplib.py (InteractiveShell.interact): added a
3303 showtraceback() call to the SystemExit trap, and modified the exit
3308 showtraceback() call to the SystemExit trap, and modified the exit
3304 confirmation to have yes as the default.
3309 confirmation to have yes as the default.
3305
3310
3306 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3311 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3307 this file. It's been gone from the code for a long time, this was
3312 this file. It's been gone from the code for a long time, this was
3308 simply leftover junk.
3313 simply leftover junk.
3309
3314
3310 2002-11-01 Fernando Perez <fperez@colorado.edu>
3315 2002-11-01 Fernando Perez <fperez@colorado.edu>
3311
3316
3312 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3317 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3313 added. If set, IPython now traps EOF and asks for
3318 added. If set, IPython now traps EOF and asks for
3314 confirmation. After a request by François Pinard.
3319 confirmation. After a request by François Pinard.
3315
3320
3316 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3321 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3317 of @abort, and with a new (better) mechanism for handling the
3322 of @abort, and with a new (better) mechanism for handling the
3318 exceptions.
3323 exceptions.
3319
3324
3320 2002-10-27 Fernando Perez <fperez@colorado.edu>
3325 2002-10-27 Fernando Perez <fperez@colorado.edu>
3321
3326
3322 * IPython/usage.py (__doc__): updated the --help information and
3327 * IPython/usage.py (__doc__): updated the --help information and
3323 the ipythonrc file to indicate that -log generates
3328 the ipythonrc file to indicate that -log generates
3324 ./ipython.log. Also fixed the corresponding info in @logstart.
3329 ./ipython.log. Also fixed the corresponding info in @logstart.
3325 This and several other fixes in the manuals thanks to reports by
3330 This and several other fixes in the manuals thanks to reports by
3326 François Pinard <pinard-AT-iro.umontreal.ca>.
3331 François Pinard <pinard-AT-iro.umontreal.ca>.
3327
3332
3328 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3333 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3329 refer to @logstart (instead of @log, which doesn't exist).
3334 refer to @logstart (instead of @log, which doesn't exist).
3330
3335
3331 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3336 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3332 AttributeError crash. Thanks to Christopher Armstrong
3337 AttributeError crash. Thanks to Christopher Armstrong
3333 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3338 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3334 introduced recently (in 0.2.14pre37) with the fix to the eval
3339 introduced recently (in 0.2.14pre37) with the fix to the eval
3335 problem mentioned below.
3340 problem mentioned below.
3336
3341
3337 2002-10-17 Fernando Perez <fperez@colorado.edu>
3342 2002-10-17 Fernando Perez <fperez@colorado.edu>
3338
3343
3339 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3344 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3340 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3345 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3341
3346
3342 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3347 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3343 this function to fix a problem reported by Alex Schmolck. He saw
3348 this function to fix a problem reported by Alex Schmolck. He saw
3344 it with list comprehensions and generators, which were getting
3349 it with list comprehensions and generators, which were getting
3345 called twice. The real problem was an 'eval' call in testing for
3350 called twice. The real problem was an 'eval' call in testing for
3346 automagic which was evaluating the input line silently.
3351 automagic which was evaluating the input line silently.
3347
3352
3348 This is a potentially very nasty bug, if the input has side
3353 This is a potentially very nasty bug, if the input has side
3349 effects which must not be repeated. The code is much cleaner now,
3354 effects which must not be repeated. The code is much cleaner now,
3350 without any blanket 'except' left and with a regexp test for
3355 without any blanket 'except' left and with a regexp test for
3351 actual function names.
3356 actual function names.
3352
3357
3353 But an eval remains, which I'm not fully comfortable with. I just
3358 But an eval remains, which I'm not fully comfortable with. I just
3354 don't know how to find out if an expression could be a callable in
3359 don't know how to find out if an expression could be a callable in
3355 the user's namespace without doing an eval on the string. However
3360 the user's namespace without doing an eval on the string. However
3356 that string is now much more strictly checked so that no code
3361 that string is now much more strictly checked so that no code
3357 slips by, so the eval should only happen for things that can
3362 slips by, so the eval should only happen for things that can
3358 really be only function/method names.
3363 really be only function/method names.
3359
3364
3360 2002-10-15 Fernando Perez <fperez@colorado.edu>
3365 2002-10-15 Fernando Perez <fperez@colorado.edu>
3361
3366
3362 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3367 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3363 OSX information to main manual, removed README_Mac_OSX file from
3368 OSX information to main manual, removed README_Mac_OSX file from
3364 distribution. Also updated credits for recent additions.
3369 distribution. Also updated credits for recent additions.
3365
3370
3366 2002-10-10 Fernando Perez <fperez@colorado.edu>
3371 2002-10-10 Fernando Perez <fperez@colorado.edu>
3367
3372
3368 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3373 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3369 terminal-related issues. Many thanks to Andrea Riciputi
3374 terminal-related issues. Many thanks to Andrea Riciputi
3370 <andrea.riciputi-AT-libero.it> for writing it.
3375 <andrea.riciputi-AT-libero.it> for writing it.
3371
3376
3372 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3377 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3373 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3378 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3374
3379
3375 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3380 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3376 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3381 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3377 <syver-en-AT-online.no> who both submitted patches for this problem.
3382 <syver-en-AT-online.no> who both submitted patches for this problem.
3378
3383
3379 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3384 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3380 global embedding to make sure that things don't overwrite user
3385 global embedding to make sure that things don't overwrite user
3381 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3386 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3382
3387
3383 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3388 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3384 compatibility. Thanks to Hayden Callow
3389 compatibility. Thanks to Hayden Callow
3385 <h.callow-AT-elec.canterbury.ac.nz>
3390 <h.callow-AT-elec.canterbury.ac.nz>
3386
3391
3387 2002-10-04 Fernando Perez <fperez@colorado.edu>
3392 2002-10-04 Fernando Perez <fperez@colorado.edu>
3388
3393
3389 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3394 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3390 Gnuplot.File objects.
3395 Gnuplot.File objects.
3391
3396
3392 2002-07-23 Fernando Perez <fperez@colorado.edu>
3397 2002-07-23 Fernando Perez <fperez@colorado.edu>
3393
3398
3394 * IPython/genutils.py (timing): Added timings() and timing() for
3399 * IPython/genutils.py (timing): Added timings() and timing() for
3395 quick access to the most commonly needed data, the execution
3400 quick access to the most commonly needed data, the execution
3396 times. Old timing() renamed to timings_out().
3401 times. Old timing() renamed to timings_out().
3397
3402
3398 2002-07-18 Fernando Perez <fperez@colorado.edu>
3403 2002-07-18 Fernando Perez <fperez@colorado.edu>
3399
3404
3400 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3405 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3401 bug with nested instances disrupting the parent's tab completion.
3406 bug with nested instances disrupting the parent's tab completion.
3402
3407
3403 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3408 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3404 all_completions code to begin the emacs integration.
3409 all_completions code to begin the emacs integration.
3405
3410
3406 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3411 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3407 argument to allow titling individual arrays when plotting.
3412 argument to allow titling individual arrays when plotting.
3408
3413
3409 2002-07-15 Fernando Perez <fperez@colorado.edu>
3414 2002-07-15 Fernando Perez <fperez@colorado.edu>
3410
3415
3411 * setup.py (make_shortcut): changed to retrieve the value of
3416 * setup.py (make_shortcut): changed to retrieve the value of
3412 'Program Files' directory from the registry (this value changes in
3417 'Program Files' directory from the registry (this value changes in
3413 non-english versions of Windows). Thanks to Thomas Fanslau
3418 non-english versions of Windows). Thanks to Thomas Fanslau
3414 <tfanslau-AT-gmx.de> for the report.
3419 <tfanslau-AT-gmx.de> for the report.
3415
3420
3416 2002-07-10 Fernando Perez <fperez@colorado.edu>
3421 2002-07-10 Fernando Perez <fperez@colorado.edu>
3417
3422
3418 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3423 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3419 a bug in pdb, which crashes if a line with only whitespace is
3424 a bug in pdb, which crashes if a line with only whitespace is
3420 entered. Bug report submitted to sourceforge.
3425 entered. Bug report submitted to sourceforge.
3421
3426
3422 2002-07-09 Fernando Perez <fperez@colorado.edu>
3427 2002-07-09 Fernando Perez <fperez@colorado.edu>
3423
3428
3424 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3429 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3425 reporting exceptions (it's a bug in inspect.py, I just set a
3430 reporting exceptions (it's a bug in inspect.py, I just set a
3426 workaround).
3431 workaround).
3427
3432
3428 2002-07-08 Fernando Perez <fperez@colorado.edu>
3433 2002-07-08 Fernando Perez <fperez@colorado.edu>
3429
3434
3430 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3435 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3431 __IPYTHON__ in __builtins__ to show up in user_ns.
3436 __IPYTHON__ in __builtins__ to show up in user_ns.
3432
3437
3433 2002-07-03 Fernando Perez <fperez@colorado.edu>
3438 2002-07-03 Fernando Perez <fperez@colorado.edu>
3434
3439
3435 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3440 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3436 name from @gp_set_instance to @gp_set_default.
3441 name from @gp_set_instance to @gp_set_default.
3437
3442
3438 * IPython/ipmaker.py (make_IPython): default editor value set to
3443 * IPython/ipmaker.py (make_IPython): default editor value set to
3439 '0' (a string), to match the rc file. Otherwise will crash when
3444 '0' (a string), to match the rc file. Otherwise will crash when
3440 .strip() is called on it.
3445 .strip() is called on it.
3441
3446
3442
3447
3443 2002-06-28 Fernando Perez <fperez@colorado.edu>
3448 2002-06-28 Fernando Perez <fperez@colorado.edu>
3444
3449
3445 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3450 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3446 of files in current directory when a file is executed via
3451 of files in current directory when a file is executed via
3447 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3452 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3448
3453
3449 * setup.py (manfiles): fix for rpm builds, submitted by RA
3454 * setup.py (manfiles): fix for rpm builds, submitted by RA
3450 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3455 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3451
3456
3452 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3457 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3453 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3458 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3454 string!). A. Schmolck caught this one.
3459 string!). A. Schmolck caught this one.
3455
3460
3456 2002-06-27 Fernando Perez <fperez@colorado.edu>
3461 2002-06-27 Fernando Perez <fperez@colorado.edu>
3457
3462
3458 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3463 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3459 defined files at the cmd line. __name__ wasn't being set to
3464 defined files at the cmd line. __name__ wasn't being set to
3460 __main__.
3465 __main__.
3461
3466
3462 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3467 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3463 regular lists and tuples besides Numeric arrays.
3468 regular lists and tuples besides Numeric arrays.
3464
3469
3465 * IPython/Prompts.py (CachedOutput.__call__): Added output
3470 * IPython/Prompts.py (CachedOutput.__call__): Added output
3466 supression for input ending with ';'. Similar to Mathematica and
3471 supression for input ending with ';'. Similar to Mathematica and
3467 Matlab. The _* vars and Out[] list are still updated, just like
3472 Matlab. The _* vars and Out[] list are still updated, just like
3468 Mathematica behaves.
3473 Mathematica behaves.
3469
3474
3470 2002-06-25 Fernando Perez <fperez@colorado.edu>
3475 2002-06-25 Fernando Perez <fperez@colorado.edu>
3471
3476
3472 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3477 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3473 .ini extensions for profiels under Windows.
3478 .ini extensions for profiels under Windows.
3474
3479
3475 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3480 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3476 string form. Fix contributed by Alexander Schmolck
3481 string form. Fix contributed by Alexander Schmolck
3477 <a.schmolck-AT-gmx.net>
3482 <a.schmolck-AT-gmx.net>
3478
3483
3479 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3484 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3480 pre-configured Gnuplot instance.
3485 pre-configured Gnuplot instance.
3481
3486
3482 2002-06-21 Fernando Perez <fperez@colorado.edu>
3487 2002-06-21 Fernando Perez <fperez@colorado.edu>
3483
3488
3484 * IPython/numutils.py (exp_safe): new function, works around the
3489 * IPython/numutils.py (exp_safe): new function, works around the
3485 underflow problems in Numeric.
3490 underflow problems in Numeric.
3486 (log2): New fn. Safe log in base 2: returns exact integer answer
3491 (log2): New fn. Safe log in base 2: returns exact integer answer
3487 for exact integer powers of 2.
3492 for exact integer powers of 2.
3488
3493
3489 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3494 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3490 properly.
3495 properly.
3491
3496
3492 2002-06-20 Fernando Perez <fperez@colorado.edu>
3497 2002-06-20 Fernando Perez <fperez@colorado.edu>
3493
3498
3494 * IPython/genutils.py (timing): new function like
3499 * IPython/genutils.py (timing): new function like
3495 Mathematica's. Similar to time_test, but returns more info.
3500 Mathematica's. Similar to time_test, but returns more info.
3496
3501
3497 2002-06-18 Fernando Perez <fperez@colorado.edu>
3502 2002-06-18 Fernando Perez <fperez@colorado.edu>
3498
3503
3499 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3504 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3500 according to Mike Heeter's suggestions.
3505 according to Mike Heeter's suggestions.
3501
3506
3502 2002-06-16 Fernando Perez <fperez@colorado.edu>
3507 2002-06-16 Fernando Perez <fperez@colorado.edu>
3503
3508
3504 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3509 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3505 system. GnuplotMagic is gone as a user-directory option. New files
3510 system. GnuplotMagic is gone as a user-directory option. New files
3506 make it easier to use all the gnuplot stuff both from external
3511 make it easier to use all the gnuplot stuff both from external
3507 programs as well as from IPython. Had to rewrite part of
3512 programs as well as from IPython. Had to rewrite part of
3508 hardcopy() b/c of a strange bug: often the ps files simply don't
3513 hardcopy() b/c of a strange bug: often the ps files simply don't
3509 get created, and require a repeat of the command (often several
3514 get created, and require a repeat of the command (often several
3510 times).
3515 times).
3511
3516
3512 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3517 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3513 resolve output channel at call time, so that if sys.stderr has
3518 resolve output channel at call time, so that if sys.stderr has
3514 been redirected by user this gets honored.
3519 been redirected by user this gets honored.
3515
3520
3516 2002-06-13 Fernando Perez <fperez@colorado.edu>
3521 2002-06-13 Fernando Perez <fperez@colorado.edu>
3517
3522
3518 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3523 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3519 IPShell. Kept a copy with the old names to avoid breaking people's
3524 IPShell. Kept a copy with the old names to avoid breaking people's
3520 embedded code.
3525 embedded code.
3521
3526
3522 * IPython/ipython: simplified it to the bare minimum after
3527 * IPython/ipython: simplified it to the bare minimum after
3523 Holger's suggestions. Added info about how to use it in
3528 Holger's suggestions. Added info about how to use it in
3524 PYTHONSTARTUP.
3529 PYTHONSTARTUP.
3525
3530
3526 * IPython/Shell.py (IPythonShell): changed the options passing
3531 * IPython/Shell.py (IPythonShell): changed the options passing
3527 from a string with funky %s replacements to a straight list. Maybe
3532 from a string with funky %s replacements to a straight list. Maybe
3528 a bit more typing, but it follows sys.argv conventions, so there's
3533 a bit more typing, but it follows sys.argv conventions, so there's
3529 less special-casing to remember.
3534 less special-casing to remember.
3530
3535
3531 2002-06-12 Fernando Perez <fperez@colorado.edu>
3536 2002-06-12 Fernando Perez <fperez@colorado.edu>
3532
3537
3533 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3538 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3534 command. Thanks to a suggestion by Mike Heeter.
3539 command. Thanks to a suggestion by Mike Heeter.
3535 (Magic.magic_pfile): added behavior to look at filenames if given
3540 (Magic.magic_pfile): added behavior to look at filenames if given
3536 arg is not a defined object.
3541 arg is not a defined object.
3537 (Magic.magic_save): New @save function to save code snippets. Also
3542 (Magic.magic_save): New @save function to save code snippets. Also
3538 a Mike Heeter idea.
3543 a Mike Heeter idea.
3539
3544
3540 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3545 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3541 plot() and replot(). Much more convenient now, especially for
3546 plot() and replot(). Much more convenient now, especially for
3542 interactive use.
3547 interactive use.
3543
3548
3544 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3549 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3545 filenames.
3550 filenames.
3546
3551
3547 2002-06-02 Fernando Perez <fperez@colorado.edu>
3552 2002-06-02 Fernando Perez <fperez@colorado.edu>
3548
3553
3549 * IPython/Struct.py (Struct.__init__): modified to admit
3554 * IPython/Struct.py (Struct.__init__): modified to admit
3550 initialization via another struct.
3555 initialization via another struct.
3551
3556
3552 * IPython/genutils.py (SystemExec.__init__): New stateful
3557 * IPython/genutils.py (SystemExec.__init__): New stateful
3553 interface to xsys and bq. Useful for writing system scripts.
3558 interface to xsys and bq. Useful for writing system scripts.
3554
3559
3555 2002-05-30 Fernando Perez <fperez@colorado.edu>
3560 2002-05-30 Fernando Perez <fperez@colorado.edu>
3556
3561
3557 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3562 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3558 documents. This will make the user download smaller (it's getting
3563 documents. This will make the user download smaller (it's getting
3559 too big).
3564 too big).
3560
3565
3561 2002-05-29 Fernando Perez <fperez@colorado.edu>
3566 2002-05-29 Fernando Perez <fperez@colorado.edu>
3562
3567
3563 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3568 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3564 fix problems with shelve and pickle. Seems to work, but I don't
3569 fix problems with shelve and pickle. Seems to work, but I don't
3565 know if corner cases break it. Thanks to Mike Heeter
3570 know if corner cases break it. Thanks to Mike Heeter
3566 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3571 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3567
3572
3568 2002-05-24 Fernando Perez <fperez@colorado.edu>
3573 2002-05-24 Fernando Perez <fperez@colorado.edu>
3569
3574
3570 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3575 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3571 macros having broken.
3576 macros having broken.
3572
3577
3573 2002-05-21 Fernando Perez <fperez@colorado.edu>
3578 2002-05-21 Fernando Perez <fperez@colorado.edu>
3574
3579
3575 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3580 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3576 introduced logging bug: all history before logging started was
3581 introduced logging bug: all history before logging started was
3577 being written one character per line! This came from the redesign
3582 being written one character per line! This came from the redesign
3578 of the input history as a special list which slices to strings,
3583 of the input history as a special list which slices to strings,
3579 not to lists.
3584 not to lists.
3580
3585
3581 2002-05-20 Fernando Perez <fperez@colorado.edu>
3586 2002-05-20 Fernando Perez <fperez@colorado.edu>
3582
3587
3583 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3588 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3584 be an attribute of all classes in this module. The design of these
3589 be an attribute of all classes in this module. The design of these
3585 classes needs some serious overhauling.
3590 classes needs some serious overhauling.
3586
3591
3587 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3592 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3588 which was ignoring '_' in option names.
3593 which was ignoring '_' in option names.
3589
3594
3590 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3595 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3591 'Verbose_novars' to 'Context' and made it the new default. It's a
3596 'Verbose_novars' to 'Context' and made it the new default. It's a
3592 bit more readable and also safer than verbose.
3597 bit more readable and also safer than verbose.
3593
3598
3594 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3599 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3595 triple-quoted strings.
3600 triple-quoted strings.
3596
3601
3597 * IPython/OInspect.py (__all__): new module exposing the object
3602 * IPython/OInspect.py (__all__): new module exposing the object
3598 introspection facilities. Now the corresponding magics are dummy
3603 introspection facilities. Now the corresponding magics are dummy
3599 wrappers around this. Having this module will make it much easier
3604 wrappers around this. Having this module will make it much easier
3600 to put these functions into our modified pdb.
3605 to put these functions into our modified pdb.
3601 This new object inspector system uses the new colorizing module,
3606 This new object inspector system uses the new colorizing module,
3602 so source code and other things are nicely syntax highlighted.
3607 so source code and other things are nicely syntax highlighted.
3603
3608
3604 2002-05-18 Fernando Perez <fperez@colorado.edu>
3609 2002-05-18 Fernando Perez <fperez@colorado.edu>
3605
3610
3606 * IPython/ColorANSI.py: Split the coloring tools into a separate
3611 * IPython/ColorANSI.py: Split the coloring tools into a separate
3607 module so I can use them in other code easier (they were part of
3612 module so I can use them in other code easier (they were part of
3608 ultraTB).
3613 ultraTB).
3609
3614
3610 2002-05-17 Fernando Perez <fperez@colorado.edu>
3615 2002-05-17 Fernando Perez <fperez@colorado.edu>
3611
3616
3612 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3617 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3613 fixed it to set the global 'g' also to the called instance, as
3618 fixed it to set the global 'g' also to the called instance, as
3614 long as 'g' was still a gnuplot instance (so it doesn't overwrite
3619 long as 'g' was still a gnuplot instance (so it doesn't overwrite
3615 user's 'g' variables).
3620 user's 'g' variables).
3616
3621
3617 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
3622 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
3618 global variables (aliases to _ih,_oh) so that users which expect
3623 global variables (aliases to _ih,_oh) so that users which expect
3619 In[5] or Out[7] to work aren't unpleasantly surprised.
3624 In[5] or Out[7] to work aren't unpleasantly surprised.
3620 (InputList.__getslice__): new class to allow executing slices of
3625 (InputList.__getslice__): new class to allow executing slices of
3621 input history directly. Very simple class, complements the use of
3626 input history directly. Very simple class, complements the use of
3622 macros.
3627 macros.
3623
3628
3624 2002-05-16 Fernando Perez <fperez@colorado.edu>
3629 2002-05-16 Fernando Perez <fperez@colorado.edu>
3625
3630
3626 * setup.py (docdirbase): make doc directory be just doc/IPython
3631 * setup.py (docdirbase): make doc directory be just doc/IPython
3627 without version numbers, it will reduce clutter for users.
3632 without version numbers, it will reduce clutter for users.
3628
3633
3629 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
3634 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
3630 execfile call to prevent possible memory leak. See for details:
3635 execfile call to prevent possible memory leak. See for details:
3631 http://mail.python.org/pipermail/python-list/2002-February/088476.html
3636 http://mail.python.org/pipermail/python-list/2002-February/088476.html
3632
3637
3633 2002-05-15 Fernando Perez <fperez@colorado.edu>
3638 2002-05-15 Fernando Perez <fperez@colorado.edu>
3634
3639
3635 * IPython/Magic.py (Magic.magic_psource): made the object
3640 * IPython/Magic.py (Magic.magic_psource): made the object
3636 introspection names be more standard: pdoc, pdef, pfile and
3641 introspection names be more standard: pdoc, pdef, pfile and
3637 psource. They all print/page their output, and it makes
3642 psource. They all print/page their output, and it makes
3638 remembering them easier. Kept old names for compatibility as
3643 remembering them easier. Kept old names for compatibility as
3639 aliases.
3644 aliases.
3640
3645
3641 2002-05-14 Fernando Perez <fperez@colorado.edu>
3646 2002-05-14 Fernando Perez <fperez@colorado.edu>
3642
3647
3643 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3648 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3644 what the mouse problem was. The trick is to use gnuplot with temp
3649 what the mouse problem was. The trick is to use gnuplot with temp
3645 files and NOT with pipes (for data communication), because having
3650 files and NOT with pipes (for data communication), because having
3646 both pipes and the mouse on is bad news.
3651 both pipes and the mouse on is bad news.
3647
3652
3648 2002-05-13 Fernando Perez <fperez@colorado.edu>
3653 2002-05-13 Fernando Perez <fperez@colorado.edu>
3649
3654
3650 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3655 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3651 bug. Information would be reported about builtins even when
3656 bug. Information would be reported about builtins even when
3652 user-defined functions overrode them.
3657 user-defined functions overrode them.
3653
3658
3654 2002-05-11 Fernando Perez <fperez@colorado.edu>
3659 2002-05-11 Fernando Perez <fperez@colorado.edu>
3655
3660
3656 * IPython/__init__.py (__all__): removed FlexCompleter from
3661 * IPython/__init__.py (__all__): removed FlexCompleter from
3657 __all__ so that things don't fail in platforms without readline.
3662 __all__ so that things don't fail in platforms without readline.
3658
3663
3659 2002-05-10 Fernando Perez <fperez@colorado.edu>
3664 2002-05-10 Fernando Perez <fperez@colorado.edu>
3660
3665
3661 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3666 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3662 it requires Numeric, effectively making Numeric a dependency for
3667 it requires Numeric, effectively making Numeric a dependency for
3663 IPython.
3668 IPython.
3664
3669
3665 * Released 0.2.13
3670 * Released 0.2.13
3666
3671
3667 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3672 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3668 profiler interface. Now all the major options from the profiler
3673 profiler interface. Now all the major options from the profiler
3669 module are directly supported in IPython, both for single
3674 module are directly supported in IPython, both for single
3670 expressions (@prun) and for full programs (@run -p).
3675 expressions (@prun) and for full programs (@run -p).
3671
3676
3672 2002-05-09 Fernando Perez <fperez@colorado.edu>
3677 2002-05-09 Fernando Perez <fperez@colorado.edu>
3673
3678
3674 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3679 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3675 magic properly formatted for screen.
3680 magic properly formatted for screen.
3676
3681
3677 * setup.py (make_shortcut): Changed things to put pdf version in
3682 * setup.py (make_shortcut): Changed things to put pdf version in
3678 doc/ instead of doc/manual (had to change lyxport a bit).
3683 doc/ instead of doc/manual (had to change lyxport a bit).
3679
3684
3680 * IPython/Magic.py (Profile.string_stats): made profile runs go
3685 * IPython/Magic.py (Profile.string_stats): made profile runs go
3681 through pager (they are long and a pager allows searching, saving,
3686 through pager (they are long and a pager allows searching, saving,
3682 etc.)
3687 etc.)
3683
3688
3684 2002-05-08 Fernando Perez <fperez@colorado.edu>
3689 2002-05-08 Fernando Perez <fperez@colorado.edu>
3685
3690
3686 * Released 0.2.12
3691 * Released 0.2.12
3687
3692
3688 2002-05-06 Fernando Perez <fperez@colorado.edu>
3693 2002-05-06 Fernando Perez <fperez@colorado.edu>
3689
3694
3690 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
3695 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
3691 introduced); 'hist n1 n2' was broken.
3696 introduced); 'hist n1 n2' was broken.
3692 (Magic.magic_pdb): added optional on/off arguments to @pdb
3697 (Magic.magic_pdb): added optional on/off arguments to @pdb
3693 (Magic.magic_run): added option -i to @run, which executes code in
3698 (Magic.magic_run): added option -i to @run, which executes code in
3694 the IPython namespace instead of a clean one. Also added @irun as
3699 the IPython namespace instead of a clean one. Also added @irun as
3695 an alias to @run -i.
3700 an alias to @run -i.
3696
3701
3697 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3702 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3698 fixed (it didn't really do anything, the namespaces were wrong).
3703 fixed (it didn't really do anything, the namespaces were wrong).
3699
3704
3700 * IPython/Debugger.py (__init__): Added workaround for python 2.1
3705 * IPython/Debugger.py (__init__): Added workaround for python 2.1
3701
3706
3702 * IPython/__init__.py (__all__): Fixed package namespace, now
3707 * IPython/__init__.py (__all__): Fixed package namespace, now
3703 'import IPython' does give access to IPython.<all> as
3708 'import IPython' does give access to IPython.<all> as
3704 expected. Also renamed __release__ to Release.
3709 expected. Also renamed __release__ to Release.
3705
3710
3706 * IPython/Debugger.py (__license__): created new Pdb class which
3711 * IPython/Debugger.py (__license__): created new Pdb class which
3707 functions like a drop-in for the normal pdb.Pdb but does NOT
3712 functions like a drop-in for the normal pdb.Pdb but does NOT
3708 import readline by default. This way it doesn't muck up IPython's
3713 import readline by default. This way it doesn't muck up IPython's
3709 readline handling, and now tab-completion finally works in the
3714 readline handling, and now tab-completion finally works in the
3710 debugger -- sort of. It completes things globally visible, but the
3715 debugger -- sort of. It completes things globally visible, but the
3711 completer doesn't track the stack as pdb walks it. That's a bit
3716 completer doesn't track the stack as pdb walks it. That's a bit
3712 tricky, and I'll have to implement it later.
3717 tricky, and I'll have to implement it later.
3713
3718
3714 2002-05-05 Fernando Perez <fperez@colorado.edu>
3719 2002-05-05 Fernando Perez <fperez@colorado.edu>
3715
3720
3716 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
3721 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
3717 magic docstrings when printed via ? (explicit \'s were being
3722 magic docstrings when printed via ? (explicit \'s were being
3718 printed).
3723 printed).
3719
3724
3720 * IPython/ipmaker.py (make_IPython): fixed namespace
3725 * IPython/ipmaker.py (make_IPython): fixed namespace
3721 identification bug. Now variables loaded via logs or command-line
3726 identification bug. Now variables loaded via logs or command-line
3722 files are recognized in the interactive namespace by @who.
3727 files are recognized in the interactive namespace by @who.
3723
3728
3724 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
3729 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
3725 log replay system stemming from the string form of Structs.
3730 log replay system stemming from the string form of Structs.
3726
3731
3727 * IPython/Magic.py (Macro.__init__): improved macros to properly
3732 * IPython/Magic.py (Macro.__init__): improved macros to properly
3728 handle magic commands in them.
3733 handle magic commands in them.
3729 (Magic.magic_logstart): usernames are now expanded so 'logstart
3734 (Magic.magic_logstart): usernames are now expanded so 'logstart
3730 ~/mylog' now works.
3735 ~/mylog' now works.
3731
3736
3732 * IPython/iplib.py (complete): fixed bug where paths starting with
3737 * IPython/iplib.py (complete): fixed bug where paths starting with
3733 '/' would be completed as magic names.
3738 '/' would be completed as magic names.
3734
3739
3735 2002-05-04 Fernando Perez <fperez@colorado.edu>
3740 2002-05-04 Fernando Perez <fperez@colorado.edu>
3736
3741
3737 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
3742 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
3738 allow running full programs under the profiler's control.
3743 allow running full programs under the profiler's control.
3739
3744
3740 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
3745 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
3741 mode to report exceptions verbosely but without formatting
3746 mode to report exceptions verbosely but without formatting
3742 variables. This addresses the issue of ipython 'freezing' (it's
3747 variables. This addresses the issue of ipython 'freezing' (it's
3743 not frozen, but caught in an expensive formatting loop) when huge
3748 not frozen, but caught in an expensive formatting loop) when huge
3744 variables are in the context of an exception.
3749 variables are in the context of an exception.
3745 (VerboseTB.text): Added '--->' markers at line where exception was
3750 (VerboseTB.text): Added '--->' markers at line where exception was
3746 triggered. Much clearer to read, especially in NoColor modes.
3751 triggered. Much clearer to read, especially in NoColor modes.
3747
3752
3748 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
3753 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
3749 implemented in reverse when changing to the new parse_options().
3754 implemented in reverse when changing to the new parse_options().
3750
3755
3751 2002-05-03 Fernando Perez <fperez@colorado.edu>
3756 2002-05-03 Fernando Perez <fperez@colorado.edu>
3752
3757
3753 * IPython/Magic.py (Magic.parse_options): new function so that
3758 * IPython/Magic.py (Magic.parse_options): new function so that
3754 magics can parse options easier.
3759 magics can parse options easier.
3755 (Magic.magic_prun): new function similar to profile.run(),
3760 (Magic.magic_prun): new function similar to profile.run(),
3756 suggested by Chris Hart.
3761 suggested by Chris Hart.
3757 (Magic.magic_cd): fixed behavior so that it only changes if
3762 (Magic.magic_cd): fixed behavior so that it only changes if
3758 directory actually is in history.
3763 directory actually is in history.
3759
3764
3760 * IPython/usage.py (__doc__): added information about potential
3765 * IPython/usage.py (__doc__): added information about potential
3761 slowness of Verbose exception mode when there are huge data
3766 slowness of Verbose exception mode when there are huge data
3762 structures to be formatted (thanks to Archie Paulson).
3767 structures to be formatted (thanks to Archie Paulson).
3763
3768
3764 * IPython/ipmaker.py (make_IPython): Changed default logging
3769 * IPython/ipmaker.py (make_IPython): Changed default logging
3765 (when simply called with -log) to use curr_dir/ipython.log in
3770 (when simply called with -log) to use curr_dir/ipython.log in
3766 rotate mode. Fixed crash which was occuring with -log before
3771 rotate mode. Fixed crash which was occuring with -log before
3767 (thanks to Jim Boyle).
3772 (thanks to Jim Boyle).
3768
3773
3769 2002-05-01 Fernando Perez <fperez@colorado.edu>
3774 2002-05-01 Fernando Perez <fperez@colorado.edu>
3770
3775
3771 * Released 0.2.11 for these fixes (mainly the ultraTB one which
3776 * Released 0.2.11 for these fixes (mainly the ultraTB one which
3772 was nasty -- though somewhat of a corner case).
3777 was nasty -- though somewhat of a corner case).
3773
3778
3774 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
3779 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
3775 text (was a bug).
3780 text (was a bug).
3776
3781
3777 2002-04-30 Fernando Perez <fperez@colorado.edu>
3782 2002-04-30 Fernando Perez <fperez@colorado.edu>
3778
3783
3779 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
3784 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
3780 a print after ^D or ^C from the user so that the In[] prompt
3785 a print after ^D or ^C from the user so that the In[] prompt
3781 doesn't over-run the gnuplot one.
3786 doesn't over-run the gnuplot one.
3782
3787
3783 2002-04-29 Fernando Perez <fperez@colorado.edu>
3788 2002-04-29 Fernando Perez <fperez@colorado.edu>
3784
3789
3785 * Released 0.2.10
3790 * Released 0.2.10
3786
3791
3787 * IPython/__release__.py (version): get date dynamically.
3792 * IPython/__release__.py (version): get date dynamically.
3788
3793
3789 * Misc. documentation updates thanks to Arnd's comments. Also ran
3794 * Misc. documentation updates thanks to Arnd's comments. Also ran
3790 a full spellcheck on the manual (hadn't been done in a while).
3795 a full spellcheck on the manual (hadn't been done in a while).
3791
3796
3792 2002-04-27 Fernando Perez <fperez@colorado.edu>
3797 2002-04-27 Fernando Perez <fperez@colorado.edu>
3793
3798
3794 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
3799 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
3795 starting a log in mid-session would reset the input history list.
3800 starting a log in mid-session would reset the input history list.
3796
3801
3797 2002-04-26 Fernando Perez <fperez@colorado.edu>
3802 2002-04-26 Fernando Perez <fperez@colorado.edu>
3798
3803
3799 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
3804 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
3800 all files were being included in an update. Now anything in
3805 all files were being included in an update. Now anything in
3801 UserConfig that matches [A-Za-z]*.py will go (this excludes
3806 UserConfig that matches [A-Za-z]*.py will go (this excludes
3802 __init__.py)
3807 __init__.py)
3803
3808
3804 2002-04-25 Fernando Perez <fperez@colorado.edu>
3809 2002-04-25 Fernando Perez <fperez@colorado.edu>
3805
3810
3806 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
3811 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
3807 to __builtins__ so that any form of embedded or imported code can
3812 to __builtins__ so that any form of embedded or imported code can
3808 test for being inside IPython.
3813 test for being inside IPython.
3809
3814
3810 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
3815 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
3811 changed to GnuplotMagic because it's now an importable module,
3816 changed to GnuplotMagic because it's now an importable module,
3812 this makes the name follow that of the standard Gnuplot module.
3817 this makes the name follow that of the standard Gnuplot module.
3813 GnuplotMagic can now be loaded at any time in mid-session.
3818 GnuplotMagic can now be loaded at any time in mid-session.
3814
3819
3815 2002-04-24 Fernando Perez <fperez@colorado.edu>
3820 2002-04-24 Fernando Perez <fperez@colorado.edu>
3816
3821
3817 * IPython/numutils.py: removed SIUnits. It doesn't properly set
3822 * IPython/numutils.py: removed SIUnits. It doesn't properly set
3818 the globals (IPython has its own namespace) and the
3823 the globals (IPython has its own namespace) and the
3819 PhysicalQuantity stuff is much better anyway.
3824 PhysicalQuantity stuff is much better anyway.
3820
3825
3821 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
3826 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
3822 embedding example to standard user directory for
3827 embedding example to standard user directory for
3823 distribution. Also put it in the manual.
3828 distribution. Also put it in the manual.
3824
3829
3825 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
3830 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
3826 instance as first argument (so it doesn't rely on some obscure
3831 instance as first argument (so it doesn't rely on some obscure
3827 hidden global).
3832 hidden global).
3828
3833
3829 * IPython/UserConfig/ipythonrc.py: put () back in accepted
3834 * IPython/UserConfig/ipythonrc.py: put () back in accepted
3830 delimiters. While it prevents ().TAB from working, it allows
3835 delimiters. While it prevents ().TAB from working, it allows
3831 completions in open (... expressions. This is by far a more common
3836 completions in open (... expressions. This is by far a more common
3832 case.
3837 case.
3833
3838
3834 2002-04-23 Fernando Perez <fperez@colorado.edu>
3839 2002-04-23 Fernando Perez <fperez@colorado.edu>
3835
3840
3836 * IPython/Extensions/InterpreterPasteInput.py: new
3841 * IPython/Extensions/InterpreterPasteInput.py: new
3837 syntax-processing module for pasting lines with >>> or ... at the
3842 syntax-processing module for pasting lines with >>> or ... at the
3838 start.
3843 start.
3839
3844
3840 * IPython/Extensions/PhysicalQ_Interactive.py
3845 * IPython/Extensions/PhysicalQ_Interactive.py
3841 (PhysicalQuantityInteractive.__int__): fixed to work with either
3846 (PhysicalQuantityInteractive.__int__): fixed to work with either
3842 Numeric or math.
3847 Numeric or math.
3843
3848
3844 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
3849 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
3845 provided profiles. Now we have:
3850 provided profiles. Now we have:
3846 -math -> math module as * and cmath with its own namespace.
3851 -math -> math module as * and cmath with its own namespace.
3847 -numeric -> Numeric as *, plus gnuplot & grace
3852 -numeric -> Numeric as *, plus gnuplot & grace
3848 -physics -> same as before
3853 -physics -> same as before
3849
3854
3850 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
3855 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
3851 user-defined magics wouldn't be found by @magic if they were
3856 user-defined magics wouldn't be found by @magic if they were
3852 defined as class methods. Also cleaned up the namespace search
3857 defined as class methods. Also cleaned up the namespace search
3853 logic and the string building (to use %s instead of many repeated
3858 logic and the string building (to use %s instead of many repeated
3854 string adds).
3859 string adds).
3855
3860
3856 * IPython/UserConfig/example-magic.py (magic_foo): updated example
3861 * IPython/UserConfig/example-magic.py (magic_foo): updated example
3857 of user-defined magics to operate with class methods (cleaner, in
3862 of user-defined magics to operate with class methods (cleaner, in
3858 line with the gnuplot code).
3863 line with the gnuplot code).
3859
3864
3860 2002-04-22 Fernando Perez <fperez@colorado.edu>
3865 2002-04-22 Fernando Perez <fperez@colorado.edu>
3861
3866
3862 * setup.py: updated dependency list so that manual is updated when
3867 * setup.py: updated dependency list so that manual is updated when
3863 all included files change.
3868 all included files change.
3864
3869
3865 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
3870 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
3866 the delimiter removal option (the fix is ugly right now).
3871 the delimiter removal option (the fix is ugly right now).
3867
3872
3868 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
3873 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
3869 all of the math profile (quicker loading, no conflict between
3874 all of the math profile (quicker loading, no conflict between
3870 g-9.8 and g-gnuplot).
3875 g-9.8 and g-gnuplot).
3871
3876
3872 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
3877 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
3873 name of post-mortem files to IPython_crash_report.txt.
3878 name of post-mortem files to IPython_crash_report.txt.
3874
3879
3875 * Cleanup/update of the docs. Added all the new readline info and
3880 * Cleanup/update of the docs. Added all the new readline info and
3876 formatted all lists as 'real lists'.
3881 formatted all lists as 'real lists'.
3877
3882
3878 * IPython/ipmaker.py (make_IPython): removed now-obsolete
3883 * IPython/ipmaker.py (make_IPython): removed now-obsolete
3879 tab-completion options, since the full readline parse_and_bind is
3884 tab-completion options, since the full readline parse_and_bind is
3880 now accessible.
3885 now accessible.
3881
3886
3882 * IPython/iplib.py (InteractiveShell.init_readline): Changed
3887 * IPython/iplib.py (InteractiveShell.init_readline): Changed
3883 handling of readline options. Now users can specify any string to
3888 handling of readline options. Now users can specify any string to
3884 be passed to parse_and_bind(), as well as the delimiters to be
3889 be passed to parse_and_bind(), as well as the delimiters to be
3885 removed.
3890 removed.
3886 (InteractiveShell.__init__): Added __name__ to the global
3891 (InteractiveShell.__init__): Added __name__ to the global
3887 namespace so that things like Itpl which rely on its existence
3892 namespace so that things like Itpl which rely on its existence
3888 don't crash.
3893 don't crash.
3889 (InteractiveShell._prefilter): Defined the default with a _ so
3894 (InteractiveShell._prefilter): Defined the default with a _ so
3890 that prefilter() is easier to override, while the default one
3895 that prefilter() is easier to override, while the default one
3891 remains available.
3896 remains available.
3892
3897
3893 2002-04-18 Fernando Perez <fperez@colorado.edu>
3898 2002-04-18 Fernando Perez <fperez@colorado.edu>
3894
3899
3895 * Added information about pdb in the docs.
3900 * Added information about pdb in the docs.
3896
3901
3897 2002-04-17 Fernando Perez <fperez@colorado.edu>
3902 2002-04-17 Fernando Perez <fperez@colorado.edu>
3898
3903
3899 * IPython/ipmaker.py (make_IPython): added rc_override option to
3904 * IPython/ipmaker.py (make_IPython): added rc_override option to
3900 allow passing config options at creation time which may override
3905 allow passing config options at creation time which may override
3901 anything set in the config files or command line. This is
3906 anything set in the config files or command line. This is
3902 particularly useful for configuring embedded instances.
3907 particularly useful for configuring embedded instances.
3903
3908
3904 2002-04-15 Fernando Perez <fperez@colorado.edu>
3909 2002-04-15 Fernando Perez <fperez@colorado.edu>
3905
3910
3906 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
3911 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
3907 crash embedded instances because of the input cache falling out of
3912 crash embedded instances because of the input cache falling out of
3908 sync with the output counter.
3913 sync with the output counter.
3909
3914
3910 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
3915 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
3911 mode which calls pdb after an uncaught exception in IPython itself.
3916 mode which calls pdb after an uncaught exception in IPython itself.
3912
3917
3913 2002-04-14 Fernando Perez <fperez@colorado.edu>
3918 2002-04-14 Fernando Perez <fperez@colorado.edu>
3914
3919
3915 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
3920 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
3916 readline, fix it back after each call.
3921 readline, fix it back after each call.
3917
3922
3918 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
3923 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
3919 method to force all access via __call__(), which guarantees that
3924 method to force all access via __call__(), which guarantees that
3920 traceback references are properly deleted.
3925 traceback references are properly deleted.
3921
3926
3922 * IPython/Prompts.py (CachedOutput._display): minor fixes to
3927 * IPython/Prompts.py (CachedOutput._display): minor fixes to
3923 improve printing when pprint is in use.
3928 improve printing when pprint is in use.
3924
3929
3925 2002-04-13 Fernando Perez <fperez@colorado.edu>
3930 2002-04-13 Fernando Perez <fperez@colorado.edu>
3926
3931
3927 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
3932 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
3928 exceptions aren't caught anymore. If the user triggers one, he
3933 exceptions aren't caught anymore. If the user triggers one, he
3929 should know why he's doing it and it should go all the way up,
3934 should know why he's doing it and it should go all the way up,
3930 just like any other exception. So now @abort will fully kill the
3935 just like any other exception. So now @abort will fully kill the
3931 embedded interpreter and the embedding code (unless that happens
3936 embedded interpreter and the embedding code (unless that happens
3932 to catch SystemExit).
3937 to catch SystemExit).
3933
3938
3934 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
3939 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
3935 and a debugger() method to invoke the interactive pdb debugger
3940 and a debugger() method to invoke the interactive pdb debugger
3936 after printing exception information. Also added the corresponding
3941 after printing exception information. Also added the corresponding
3937 -pdb option and @pdb magic to control this feature, and updated
3942 -pdb option and @pdb magic to control this feature, and updated
3938 the docs. After a suggestion from Christopher Hart
3943 the docs. After a suggestion from Christopher Hart
3939 (hart-AT-caltech.edu).
3944 (hart-AT-caltech.edu).
3940
3945
3941 2002-04-12 Fernando Perez <fperez@colorado.edu>
3946 2002-04-12 Fernando Perez <fperez@colorado.edu>
3942
3947
3943 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
3948 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
3944 the exception handlers defined by the user (not the CrashHandler)
3949 the exception handlers defined by the user (not the CrashHandler)
3945 so that user exceptions don't trigger an ipython bug report.
3950 so that user exceptions don't trigger an ipython bug report.
3946
3951
3947 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
3952 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
3948 configurable (it should have always been so).
3953 configurable (it should have always been so).
3949
3954
3950 2002-03-26 Fernando Perez <fperez@colorado.edu>
3955 2002-03-26 Fernando Perez <fperez@colorado.edu>
3951
3956
3952 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
3957 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
3953 and there to fix embedding namespace issues. This should all be
3958 and there to fix embedding namespace issues. This should all be
3954 done in a more elegant way.
3959 done in a more elegant way.
3955
3960
3956 2002-03-25 Fernando Perez <fperez@colorado.edu>
3961 2002-03-25 Fernando Perez <fperez@colorado.edu>
3957
3962
3958 * IPython/genutils.py (get_home_dir): Try to make it work under
3963 * IPython/genutils.py (get_home_dir): Try to make it work under
3959 win9x also.
3964 win9x also.
3960
3965
3961 2002-03-20 Fernando Perez <fperez@colorado.edu>
3966 2002-03-20 Fernando Perez <fperez@colorado.edu>
3962
3967
3963 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
3968 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
3964 sys.displayhook untouched upon __init__.
3969 sys.displayhook untouched upon __init__.
3965
3970
3966 2002-03-19 Fernando Perez <fperez@colorado.edu>
3971 2002-03-19 Fernando Perez <fperez@colorado.edu>
3967
3972
3968 * Released 0.2.9 (for embedding bug, basically).
3973 * Released 0.2.9 (for embedding bug, basically).
3969
3974
3970 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
3975 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
3971 exceptions so that enclosing shell's state can be restored.
3976 exceptions so that enclosing shell's state can be restored.
3972
3977
3973 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
3978 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
3974 naming conventions in the .ipython/ dir.
3979 naming conventions in the .ipython/ dir.
3975
3980
3976 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
3981 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
3977 from delimiters list so filenames with - in them get expanded.
3982 from delimiters list so filenames with - in them get expanded.
3978
3983
3979 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
3984 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
3980 sys.displayhook not being properly restored after an embedded call.
3985 sys.displayhook not being properly restored after an embedded call.
3981
3986
3982 2002-03-18 Fernando Perez <fperez@colorado.edu>
3987 2002-03-18 Fernando Perez <fperez@colorado.edu>
3983
3988
3984 * Released 0.2.8
3989 * Released 0.2.8
3985
3990
3986 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
3991 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
3987 some files weren't being included in a -upgrade.
3992 some files weren't being included in a -upgrade.
3988 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
3993 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
3989 on' so that the first tab completes.
3994 on' so that the first tab completes.
3990 (InteractiveShell.handle_magic): fixed bug with spaces around
3995 (InteractiveShell.handle_magic): fixed bug with spaces around
3991 quotes breaking many magic commands.
3996 quotes breaking many magic commands.
3992
3997
3993 * setup.py: added note about ignoring the syntax error messages at
3998 * setup.py: added note about ignoring the syntax error messages at
3994 installation.
3999 installation.
3995
4000
3996 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4001 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
3997 streamlining the gnuplot interface, now there's only one magic @gp.
4002 streamlining the gnuplot interface, now there's only one magic @gp.
3998
4003
3999 2002-03-17 Fernando Perez <fperez@colorado.edu>
4004 2002-03-17 Fernando Perez <fperez@colorado.edu>
4000
4005
4001 * IPython/UserConfig/magic_gnuplot.py: new name for the
4006 * IPython/UserConfig/magic_gnuplot.py: new name for the
4002 example-magic_pm.py file. Much enhanced system, now with a shell
4007 example-magic_pm.py file. Much enhanced system, now with a shell
4003 for communicating directly with gnuplot, one command at a time.
4008 for communicating directly with gnuplot, one command at a time.
4004
4009
4005 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4010 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4006 setting __name__=='__main__'.
4011 setting __name__=='__main__'.
4007
4012
4008 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4013 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4009 mini-shell for accessing gnuplot from inside ipython. Should
4014 mini-shell for accessing gnuplot from inside ipython. Should
4010 extend it later for grace access too. Inspired by Arnd's
4015 extend it later for grace access too. Inspired by Arnd's
4011 suggestion.
4016 suggestion.
4012
4017
4013 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4018 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4014 calling magic functions with () in their arguments. Thanks to Arnd
4019 calling magic functions with () in their arguments. Thanks to Arnd
4015 Baecker for pointing this to me.
4020 Baecker for pointing this to me.
4016
4021
4017 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4022 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4018 infinitely for integer or complex arrays (only worked with floats).
4023 infinitely for integer or complex arrays (only worked with floats).
4019
4024
4020 2002-03-16 Fernando Perez <fperez@colorado.edu>
4025 2002-03-16 Fernando Perez <fperez@colorado.edu>
4021
4026
4022 * setup.py: Merged setup and setup_windows into a single script
4027 * setup.py: Merged setup and setup_windows into a single script
4023 which properly handles things for windows users.
4028 which properly handles things for windows users.
4024
4029
4025 2002-03-15 Fernando Perez <fperez@colorado.edu>
4030 2002-03-15 Fernando Perez <fperez@colorado.edu>
4026
4031
4027 * Big change to the manual: now the magics are all automatically
4032 * Big change to the manual: now the magics are all automatically
4028 documented. This information is generated from their docstrings
4033 documented. This information is generated from their docstrings
4029 and put in a latex file included by the manual lyx file. This way
4034 and put in a latex file included by the manual lyx file. This way
4030 we get always up to date information for the magics. The manual
4035 we get always up to date information for the magics. The manual
4031 now also has proper version information, also auto-synced.
4036 now also has proper version information, also auto-synced.
4032
4037
4033 For this to work, an undocumented --magic_docstrings option was added.
4038 For this to work, an undocumented --magic_docstrings option was added.
4034
4039
4035 2002-03-13 Fernando Perez <fperez@colorado.edu>
4040 2002-03-13 Fernando Perez <fperez@colorado.edu>
4036
4041
4037 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4042 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4038 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4043 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4039
4044
4040 2002-03-12 Fernando Perez <fperez@colorado.edu>
4045 2002-03-12 Fernando Perez <fperez@colorado.edu>
4041
4046
4042 * IPython/ultraTB.py (TermColors): changed color escapes again to
4047 * IPython/ultraTB.py (TermColors): changed color escapes again to
4043 fix the (old, reintroduced) line-wrapping bug. Basically, if
4048 fix the (old, reintroduced) line-wrapping bug. Basically, if
4044 \001..\002 aren't given in the color escapes, lines get wrapped
4049 \001..\002 aren't given in the color escapes, lines get wrapped
4045 weirdly. But giving those screws up old xterms and emacs terms. So
4050 weirdly. But giving those screws up old xterms and emacs terms. So
4046 I added some logic for emacs terms to be ok, but I can't identify old
4051 I added some logic for emacs terms to be ok, but I can't identify old
4047 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4052 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4048
4053
4049 2002-03-10 Fernando Perez <fperez@colorado.edu>
4054 2002-03-10 Fernando Perez <fperez@colorado.edu>
4050
4055
4051 * IPython/usage.py (__doc__): Various documentation cleanups and
4056 * IPython/usage.py (__doc__): Various documentation cleanups and
4052 updates, both in usage docstrings and in the manual.
4057 updates, both in usage docstrings and in the manual.
4053
4058
4054 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4059 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4055 handling of caching. Set minimum acceptabe value for having a
4060 handling of caching. Set minimum acceptabe value for having a
4056 cache at 20 values.
4061 cache at 20 values.
4057
4062
4058 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4063 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4059 install_first_time function to a method, renamed it and added an
4064 install_first_time function to a method, renamed it and added an
4060 'upgrade' mode. Now people can update their config directory with
4065 'upgrade' mode. Now people can update their config directory with
4061 a simple command line switch (-upgrade, also new).
4066 a simple command line switch (-upgrade, also new).
4062
4067
4063 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4068 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4064 @file (convenient for automagic users under Python >= 2.2).
4069 @file (convenient for automagic users under Python >= 2.2).
4065 Removed @files (it seemed more like a plural than an abbrev. of
4070 Removed @files (it seemed more like a plural than an abbrev. of
4066 'file show').
4071 'file show').
4067
4072
4068 * IPython/iplib.py (install_first_time): Fixed crash if there were
4073 * IPython/iplib.py (install_first_time): Fixed crash if there were
4069 backup files ('~') in .ipython/ install directory.
4074 backup files ('~') in .ipython/ install directory.
4070
4075
4071 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4076 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4072 system. Things look fine, but these changes are fairly
4077 system. Things look fine, but these changes are fairly
4073 intrusive. Test them for a few days.
4078 intrusive. Test them for a few days.
4074
4079
4075 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4080 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4076 the prompts system. Now all in/out prompt strings are user
4081 the prompts system. Now all in/out prompt strings are user
4077 controllable. This is particularly useful for embedding, as one
4082 controllable. This is particularly useful for embedding, as one
4078 can tag embedded instances with particular prompts.
4083 can tag embedded instances with particular prompts.
4079
4084
4080 Also removed global use of sys.ps1/2, which now allows nested
4085 Also removed global use of sys.ps1/2, which now allows nested
4081 embeddings without any problems. Added command-line options for
4086 embeddings without any problems. Added command-line options for
4082 the prompt strings.
4087 the prompt strings.
4083
4088
4084 2002-03-08 Fernando Perez <fperez@colorado.edu>
4089 2002-03-08 Fernando Perez <fperez@colorado.edu>
4085
4090
4086 * IPython/UserConfig/example-embed-short.py (ipshell): added
4091 * IPython/UserConfig/example-embed-short.py (ipshell): added
4087 example file with the bare minimum code for embedding.
4092 example file with the bare minimum code for embedding.
4088
4093
4089 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4094 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4090 functionality for the embeddable shell to be activated/deactivated
4095 functionality for the embeddable shell to be activated/deactivated
4091 either globally or at each call.
4096 either globally or at each call.
4092
4097
4093 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4098 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4094 rewriting the prompt with '--->' for auto-inputs with proper
4099 rewriting the prompt with '--->' for auto-inputs with proper
4095 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4100 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4096 this is handled by the prompts class itself, as it should.
4101 this is handled by the prompts class itself, as it should.
4097
4102
4098 2002-03-05 Fernando Perez <fperez@colorado.edu>
4103 2002-03-05 Fernando Perez <fperez@colorado.edu>
4099
4104
4100 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4105 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4101 @logstart to avoid name clashes with the math log function.
4106 @logstart to avoid name clashes with the math log function.
4102
4107
4103 * Big updates to X/Emacs section of the manual.
4108 * Big updates to X/Emacs section of the manual.
4104
4109
4105 * Removed ipython_emacs. Milan explained to me how to pass
4110 * Removed ipython_emacs. Milan explained to me how to pass
4106 arguments to ipython through Emacs. Some day I'm going to end up
4111 arguments to ipython through Emacs. Some day I'm going to end up
4107 learning some lisp...
4112 learning some lisp...
4108
4113
4109 2002-03-04 Fernando Perez <fperez@colorado.edu>
4114 2002-03-04 Fernando Perez <fperez@colorado.edu>
4110
4115
4111 * IPython/ipython_emacs: Created script to be used as the
4116 * IPython/ipython_emacs: Created script to be used as the
4112 py-python-command Emacs variable so we can pass IPython
4117 py-python-command Emacs variable so we can pass IPython
4113 parameters. I can't figure out how to tell Emacs directly to pass
4118 parameters. I can't figure out how to tell Emacs directly to pass
4114 parameters to IPython, so a dummy shell script will do it.
4119 parameters to IPython, so a dummy shell script will do it.
4115
4120
4116 Other enhancements made for things to work better under Emacs'
4121 Other enhancements made for things to work better under Emacs'
4117 various types of terminals. Many thanks to Milan Zamazal
4122 various types of terminals. Many thanks to Milan Zamazal
4118 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4123 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4119
4124
4120 2002-03-01 Fernando Perez <fperez@colorado.edu>
4125 2002-03-01 Fernando Perez <fperez@colorado.edu>
4121
4126
4122 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4127 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4123 that loading of readline is now optional. This gives better
4128 that loading of readline is now optional. This gives better
4124 control to emacs users.
4129 control to emacs users.
4125
4130
4126 * IPython/ultraTB.py (__date__): Modified color escape sequences
4131 * IPython/ultraTB.py (__date__): Modified color escape sequences
4127 and now things work fine under xterm and in Emacs' term buffers
4132 and now things work fine under xterm and in Emacs' term buffers
4128 (though not shell ones). Well, in emacs you get colors, but all
4133 (though not shell ones). Well, in emacs you get colors, but all
4129 seem to be 'light' colors (no difference between dark and light
4134 seem to be 'light' colors (no difference between dark and light
4130 ones). But the garbage chars are gone, and also in xterms. It
4135 ones). But the garbage chars are gone, and also in xterms. It
4131 seems that now I'm using 'cleaner' ansi sequences.
4136 seems that now I'm using 'cleaner' ansi sequences.
4132
4137
4133 2002-02-21 Fernando Perez <fperez@colorado.edu>
4138 2002-02-21 Fernando Perez <fperez@colorado.edu>
4134
4139
4135 * Released 0.2.7 (mainly to publish the scoping fix).
4140 * Released 0.2.7 (mainly to publish the scoping fix).
4136
4141
4137 * IPython/Logger.py (Logger.logstate): added. A corresponding
4142 * IPython/Logger.py (Logger.logstate): added. A corresponding
4138 @logstate magic was created.
4143 @logstate magic was created.
4139
4144
4140 * IPython/Magic.py: fixed nested scoping problem under Python
4145 * IPython/Magic.py: fixed nested scoping problem under Python
4141 2.1.x (automagic wasn't working).
4146 2.1.x (automagic wasn't working).
4142
4147
4143 2002-02-20 Fernando Perez <fperez@colorado.edu>
4148 2002-02-20 Fernando Perez <fperez@colorado.edu>
4144
4149
4145 * Released 0.2.6.
4150 * Released 0.2.6.
4146
4151
4147 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4152 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4148 option so that logs can come out without any headers at all.
4153 option so that logs can come out without any headers at all.
4149
4154
4150 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4155 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4151 SciPy.
4156 SciPy.
4152
4157
4153 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4158 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4154 that embedded IPython calls don't require vars() to be explicitly
4159 that embedded IPython calls don't require vars() to be explicitly
4155 passed. Now they are extracted from the caller's frame (code
4160 passed. Now they are extracted from the caller's frame (code
4156 snatched from Eric Jones' weave). Added better documentation to
4161 snatched from Eric Jones' weave). Added better documentation to
4157 the section on embedding and the example file.
4162 the section on embedding and the example file.
4158
4163
4159 * IPython/genutils.py (page): Changed so that under emacs, it just
4164 * IPython/genutils.py (page): Changed so that under emacs, it just
4160 prints the string. You can then page up and down in the emacs
4165 prints the string. You can then page up and down in the emacs
4161 buffer itself. This is how the builtin help() works.
4166 buffer itself. This is how the builtin help() works.
4162
4167
4163 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4168 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4164 macro scoping: macros need to be executed in the user's namespace
4169 macro scoping: macros need to be executed in the user's namespace
4165 to work as if they had been typed by the user.
4170 to work as if they had been typed by the user.
4166
4171
4167 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4172 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4168 execute automatically (no need to type 'exec...'). They then
4173 execute automatically (no need to type 'exec...'). They then
4169 behave like 'true macros'. The printing system was also modified
4174 behave like 'true macros'. The printing system was also modified
4170 for this to work.
4175 for this to work.
4171
4176
4172 2002-02-19 Fernando Perez <fperez@colorado.edu>
4177 2002-02-19 Fernando Perez <fperez@colorado.edu>
4173
4178
4174 * IPython/genutils.py (page_file): new function for paging files
4179 * IPython/genutils.py (page_file): new function for paging files
4175 in an OS-independent way. Also necessary for file viewing to work
4180 in an OS-independent way. Also necessary for file viewing to work
4176 well inside Emacs buffers.
4181 well inside Emacs buffers.
4177 (page): Added checks for being in an emacs buffer.
4182 (page): Added checks for being in an emacs buffer.
4178 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4183 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4179 same bug in iplib.
4184 same bug in iplib.
4180
4185
4181 2002-02-18 Fernando Perez <fperez@colorado.edu>
4186 2002-02-18 Fernando Perez <fperez@colorado.edu>
4182
4187
4183 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4188 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4184 of readline so that IPython can work inside an Emacs buffer.
4189 of readline so that IPython can work inside an Emacs buffer.
4185
4190
4186 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4191 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4187 method signatures (they weren't really bugs, but it looks cleaner
4192 method signatures (they weren't really bugs, but it looks cleaner
4188 and keeps PyChecker happy).
4193 and keeps PyChecker happy).
4189
4194
4190 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4195 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4191 for implementing various user-defined hooks. Currently only
4196 for implementing various user-defined hooks. Currently only
4192 display is done.
4197 display is done.
4193
4198
4194 * IPython/Prompts.py (CachedOutput._display): changed display
4199 * IPython/Prompts.py (CachedOutput._display): changed display
4195 functions so that they can be dynamically changed by users easily.
4200 functions so that they can be dynamically changed by users easily.
4196
4201
4197 * IPython/Extensions/numeric_formats.py (num_display): added an
4202 * IPython/Extensions/numeric_formats.py (num_display): added an
4198 extension for printing NumPy arrays in flexible manners. It
4203 extension for printing NumPy arrays in flexible manners. It
4199 doesn't do anything yet, but all the structure is in
4204 doesn't do anything yet, but all the structure is in
4200 place. Ultimately the plan is to implement output format control
4205 place. Ultimately the plan is to implement output format control
4201 like in Octave.
4206 like in Octave.
4202
4207
4203 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4208 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4204 methods are found at run-time by all the automatic machinery.
4209 methods are found at run-time by all the automatic machinery.
4205
4210
4206 2002-02-17 Fernando Perez <fperez@colorado.edu>
4211 2002-02-17 Fernando Perez <fperez@colorado.edu>
4207
4212
4208 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4213 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4209 whole file a little.
4214 whole file a little.
4210
4215
4211 * ToDo: closed this document. Now there's a new_design.lyx
4216 * ToDo: closed this document. Now there's a new_design.lyx
4212 document for all new ideas. Added making a pdf of it for the
4217 document for all new ideas. Added making a pdf of it for the
4213 end-user distro.
4218 end-user distro.
4214
4219
4215 * IPython/Logger.py (Logger.switch_log): Created this to replace
4220 * IPython/Logger.py (Logger.switch_log): Created this to replace
4216 logon() and logoff(). It also fixes a nasty crash reported by
4221 logon() and logoff(). It also fixes a nasty crash reported by
4217 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4222 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4218
4223
4219 * IPython/iplib.py (complete): got auto-completion to work with
4224 * IPython/iplib.py (complete): got auto-completion to work with
4220 automagic (I had wanted this for a long time).
4225 automagic (I had wanted this for a long time).
4221
4226
4222 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4227 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4223 to @file, since file() is now a builtin and clashes with automagic
4228 to @file, since file() is now a builtin and clashes with automagic
4224 for @file.
4229 for @file.
4225
4230
4226 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4231 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4227 of this was previously in iplib, which had grown to more than 2000
4232 of this was previously in iplib, which had grown to more than 2000
4228 lines, way too long. No new functionality, but it makes managing
4233 lines, way too long. No new functionality, but it makes managing
4229 the code a bit easier.
4234 the code a bit easier.
4230
4235
4231 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4236 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4232 information to crash reports.
4237 information to crash reports.
4233
4238
4234 2002-02-12 Fernando Perez <fperez@colorado.edu>
4239 2002-02-12 Fernando Perez <fperez@colorado.edu>
4235
4240
4236 * Released 0.2.5.
4241 * Released 0.2.5.
4237
4242
4238 2002-02-11 Fernando Perez <fperez@colorado.edu>
4243 2002-02-11 Fernando Perez <fperez@colorado.edu>
4239
4244
4240 * Wrote a relatively complete Windows installer. It puts
4245 * Wrote a relatively complete Windows installer. It puts
4241 everything in place, creates Start Menu entries and fixes the
4246 everything in place, creates Start Menu entries and fixes the
4242 color issues. Nothing fancy, but it works.
4247 color issues. Nothing fancy, but it works.
4243
4248
4244 2002-02-10 Fernando Perez <fperez@colorado.edu>
4249 2002-02-10 Fernando Perez <fperez@colorado.edu>
4245
4250
4246 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4251 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4247 os.path.expanduser() call so that we can type @run ~/myfile.py and
4252 os.path.expanduser() call so that we can type @run ~/myfile.py and
4248 have thigs work as expected.
4253 have thigs work as expected.
4249
4254
4250 * IPython/genutils.py (page): fixed exception handling so things
4255 * IPython/genutils.py (page): fixed exception handling so things
4251 work both in Unix and Windows correctly. Quitting a pager triggers
4256 work both in Unix and Windows correctly. Quitting a pager triggers
4252 an IOError/broken pipe in Unix, and in windows not finding a pager
4257 an IOError/broken pipe in Unix, and in windows not finding a pager
4253 is also an IOError, so I had to actually look at the return value
4258 is also an IOError, so I had to actually look at the return value
4254 of the exception, not just the exception itself. Should be ok now.
4259 of the exception, not just the exception itself. Should be ok now.
4255
4260
4256 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4261 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4257 modified to allow case-insensitive color scheme changes.
4262 modified to allow case-insensitive color scheme changes.
4258
4263
4259 2002-02-09 Fernando Perez <fperez@colorado.edu>
4264 2002-02-09 Fernando Perez <fperez@colorado.edu>
4260
4265
4261 * IPython/genutils.py (native_line_ends): new function to leave
4266 * IPython/genutils.py (native_line_ends): new function to leave
4262 user config files with os-native line-endings.
4267 user config files with os-native line-endings.
4263
4268
4264 * README and manual updates.
4269 * README and manual updates.
4265
4270
4266 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4271 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4267 instead of StringType to catch Unicode strings.
4272 instead of StringType to catch Unicode strings.
4268
4273
4269 * IPython/genutils.py (filefind): fixed bug for paths with
4274 * IPython/genutils.py (filefind): fixed bug for paths with
4270 embedded spaces (very common in Windows).
4275 embedded spaces (very common in Windows).
4271
4276
4272 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4277 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4273 files under Windows, so that they get automatically associated
4278 files under Windows, so that they get automatically associated
4274 with a text editor. Windows makes it a pain to handle
4279 with a text editor. Windows makes it a pain to handle
4275 extension-less files.
4280 extension-less files.
4276
4281
4277 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4282 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4278 warning about readline only occur for Posix. In Windows there's no
4283 warning about readline only occur for Posix. In Windows there's no
4279 way to get readline, so why bother with the warning.
4284 way to get readline, so why bother with the warning.
4280
4285
4281 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4286 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4282 for __str__ instead of dir(self), since dir() changed in 2.2.
4287 for __str__ instead of dir(self), since dir() changed in 2.2.
4283
4288
4284 * Ported to Windows! Tested on XP, I suspect it should work fine
4289 * Ported to Windows! Tested on XP, I suspect it should work fine
4285 on NT/2000, but I don't think it will work on 98 et al. That
4290 on NT/2000, but I don't think it will work on 98 et al. That
4286 series of Windows is such a piece of junk anyway that I won't try
4291 series of Windows is such a piece of junk anyway that I won't try
4287 porting it there. The XP port was straightforward, showed a few
4292 porting it there. The XP port was straightforward, showed a few
4288 bugs here and there (fixed all), in particular some string
4293 bugs here and there (fixed all), in particular some string
4289 handling stuff which required considering Unicode strings (which
4294 handling stuff which required considering Unicode strings (which
4290 Windows uses). This is good, but hasn't been too tested :) No
4295 Windows uses). This is good, but hasn't been too tested :) No
4291 fancy installer yet, I'll put a note in the manual so people at
4296 fancy installer yet, I'll put a note in the manual so people at
4292 least make manually a shortcut.
4297 least make manually a shortcut.
4293
4298
4294 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4299 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4295 into a single one, "colors". This now controls both prompt and
4300 into a single one, "colors". This now controls both prompt and
4296 exception color schemes, and can be changed both at startup
4301 exception color schemes, and can be changed both at startup
4297 (either via command-line switches or via ipythonrc files) and at
4302 (either via command-line switches or via ipythonrc files) and at
4298 runtime, with @colors.
4303 runtime, with @colors.
4299 (Magic.magic_run): renamed @prun to @run and removed the old
4304 (Magic.magic_run): renamed @prun to @run and removed the old
4300 @run. The two were too similar to warrant keeping both.
4305 @run. The two were too similar to warrant keeping both.
4301
4306
4302 2002-02-03 Fernando Perez <fperez@colorado.edu>
4307 2002-02-03 Fernando Perez <fperez@colorado.edu>
4303
4308
4304 * IPython/iplib.py (install_first_time): Added comment on how to
4309 * IPython/iplib.py (install_first_time): Added comment on how to
4305 configure the color options for first-time users. Put a <return>
4310 configure the color options for first-time users. Put a <return>
4306 request at the end so that small-terminal users get a chance to
4311 request at the end so that small-terminal users get a chance to
4307 read the startup info.
4312 read the startup info.
4308
4313
4309 2002-01-23 Fernando Perez <fperez@colorado.edu>
4314 2002-01-23 Fernando Perez <fperez@colorado.edu>
4310
4315
4311 * IPython/iplib.py (CachedOutput.update): Changed output memory
4316 * IPython/iplib.py (CachedOutput.update): Changed output memory
4312 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4317 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4313 input history we still use _i. Did this b/c these variable are
4318 input history we still use _i. Did this b/c these variable are
4314 very commonly used in interactive work, so the less we need to
4319 very commonly used in interactive work, so the less we need to
4315 type the better off we are.
4320 type the better off we are.
4316 (Magic.magic_prun): updated @prun to better handle the namespaces
4321 (Magic.magic_prun): updated @prun to better handle the namespaces
4317 the file will run in, including a fix for __name__ not being set
4322 the file will run in, including a fix for __name__ not being set
4318 before.
4323 before.
4319
4324
4320 2002-01-20 Fernando Perez <fperez@colorado.edu>
4325 2002-01-20 Fernando Perez <fperez@colorado.edu>
4321
4326
4322 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4327 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4323 extra garbage for Python 2.2. Need to look more carefully into
4328 extra garbage for Python 2.2. Need to look more carefully into
4324 this later.
4329 this later.
4325
4330
4326 2002-01-19 Fernando Perez <fperez@colorado.edu>
4331 2002-01-19 Fernando Perez <fperez@colorado.edu>
4327
4332
4328 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4333 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4329 display SyntaxError exceptions properly formatted when they occur
4334 display SyntaxError exceptions properly formatted when they occur
4330 (they can be triggered by imported code).
4335 (they can be triggered by imported code).
4331
4336
4332 2002-01-18 Fernando Perez <fperez@colorado.edu>
4337 2002-01-18 Fernando Perez <fperez@colorado.edu>
4333
4338
4334 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4339 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4335 SyntaxError exceptions are reported nicely formatted, instead of
4340 SyntaxError exceptions are reported nicely formatted, instead of
4336 spitting out only offset information as before.
4341 spitting out only offset information as before.
4337 (Magic.magic_prun): Added the @prun function for executing
4342 (Magic.magic_prun): Added the @prun function for executing
4338 programs with command line args inside IPython.
4343 programs with command line args inside IPython.
4339
4344
4340 2002-01-16 Fernando Perez <fperez@colorado.edu>
4345 2002-01-16 Fernando Perez <fperez@colorado.edu>
4341
4346
4342 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4347 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4343 to *not* include the last item given in a range. This brings their
4348 to *not* include the last item given in a range. This brings their
4344 behavior in line with Python's slicing:
4349 behavior in line with Python's slicing:
4345 a[n1:n2] -> a[n1]...a[n2-1]
4350 a[n1:n2] -> a[n1]...a[n2-1]
4346 It may be a bit less convenient, but I prefer to stick to Python's
4351 It may be a bit less convenient, but I prefer to stick to Python's
4347 conventions *everywhere*, so users never have to wonder.
4352 conventions *everywhere*, so users never have to wonder.
4348 (Magic.magic_macro): Added @macro function to ease the creation of
4353 (Magic.magic_macro): Added @macro function to ease the creation of
4349 macros.
4354 macros.
4350
4355
4351 2002-01-05 Fernando Perez <fperez@colorado.edu>
4356 2002-01-05 Fernando Perez <fperez@colorado.edu>
4352
4357
4353 * Released 0.2.4.
4358 * Released 0.2.4.
4354
4359
4355 * IPython/iplib.py (Magic.magic_pdef):
4360 * IPython/iplib.py (Magic.magic_pdef):
4356 (InteractiveShell.safe_execfile): report magic lines and error
4361 (InteractiveShell.safe_execfile): report magic lines and error
4357 lines without line numbers so one can easily copy/paste them for
4362 lines without line numbers so one can easily copy/paste them for
4358 re-execution.
4363 re-execution.
4359
4364
4360 * Updated manual with recent changes.
4365 * Updated manual with recent changes.
4361
4366
4362 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4367 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4363 docstring printing when class? is called. Very handy for knowing
4368 docstring printing when class? is called. Very handy for knowing
4364 how to create class instances (as long as __init__ is well
4369 how to create class instances (as long as __init__ is well
4365 documented, of course :)
4370 documented, of course :)
4366 (Magic.magic_doc): print both class and constructor docstrings.
4371 (Magic.magic_doc): print both class and constructor docstrings.
4367 (Magic.magic_pdef): give constructor info if passed a class and
4372 (Magic.magic_pdef): give constructor info if passed a class and
4368 __call__ info for callable object instances.
4373 __call__ info for callable object instances.
4369
4374
4370 2002-01-04 Fernando Perez <fperez@colorado.edu>
4375 2002-01-04 Fernando Perez <fperez@colorado.edu>
4371
4376
4372 * Made deep_reload() off by default. It doesn't always work
4377 * Made deep_reload() off by default. It doesn't always work
4373 exactly as intended, so it's probably safer to have it off. It's
4378 exactly as intended, so it's probably safer to have it off. It's
4374 still available as dreload() anyway, so nothing is lost.
4379 still available as dreload() anyway, so nothing is lost.
4375
4380
4376 2002-01-02 Fernando Perez <fperez@colorado.edu>
4381 2002-01-02 Fernando Perez <fperez@colorado.edu>
4377
4382
4378 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4383 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4379 so I wanted an updated release).
4384 so I wanted an updated release).
4380
4385
4381 2001-12-27 Fernando Perez <fperez@colorado.edu>
4386 2001-12-27 Fernando Perez <fperez@colorado.edu>
4382
4387
4383 * IPython/iplib.py (InteractiveShell.interact): Added the original
4388 * IPython/iplib.py (InteractiveShell.interact): Added the original
4384 code from 'code.py' for this module in order to change the
4389 code from 'code.py' for this module in order to change the
4385 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4390 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4386 the history cache would break when the user hit Ctrl-C, and
4391 the history cache would break when the user hit Ctrl-C, and
4387 interact() offers no way to add any hooks to it.
4392 interact() offers no way to add any hooks to it.
4388
4393
4389 2001-12-23 Fernando Perez <fperez@colorado.edu>
4394 2001-12-23 Fernando Perez <fperez@colorado.edu>
4390
4395
4391 * setup.py: added check for 'MANIFEST' before trying to remove
4396 * setup.py: added check for 'MANIFEST' before trying to remove
4392 it. Thanks to Sean Reifschneider.
4397 it. Thanks to Sean Reifschneider.
4393
4398
4394 2001-12-22 Fernando Perez <fperez@colorado.edu>
4399 2001-12-22 Fernando Perez <fperez@colorado.edu>
4395
4400
4396 * Released 0.2.2.
4401 * Released 0.2.2.
4397
4402
4398 * Finished (reasonably) writing the manual. Later will add the
4403 * Finished (reasonably) writing the manual. Later will add the
4399 python-standard navigation stylesheets, but for the time being
4404 python-standard navigation stylesheets, but for the time being
4400 it's fairly complete. Distribution will include html and pdf
4405 it's fairly complete. Distribution will include html and pdf
4401 versions.
4406 versions.
4402
4407
4403 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4408 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4404 (MayaVi author).
4409 (MayaVi author).
4405
4410
4406 2001-12-21 Fernando Perez <fperez@colorado.edu>
4411 2001-12-21 Fernando Perez <fperez@colorado.edu>
4407
4412
4408 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4413 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4409 good public release, I think (with the manual and the distutils
4414 good public release, I think (with the manual and the distutils
4410 installer). The manual can use some work, but that can go
4415 installer). The manual can use some work, but that can go
4411 slowly. Otherwise I think it's quite nice for end users. Next
4416 slowly. Otherwise I think it's quite nice for end users. Next
4412 summer, rewrite the guts of it...
4417 summer, rewrite the guts of it...
4413
4418
4414 * Changed format of ipythonrc files to use whitespace as the
4419 * Changed format of ipythonrc files to use whitespace as the
4415 separator instead of an explicit '='. Cleaner.
4420 separator instead of an explicit '='. Cleaner.
4416
4421
4417 2001-12-20 Fernando Perez <fperez@colorado.edu>
4422 2001-12-20 Fernando Perez <fperez@colorado.edu>
4418
4423
4419 * Started a manual in LyX. For now it's just a quick merge of the
4424 * Started a manual in LyX. For now it's just a quick merge of the
4420 various internal docstrings and READMEs. Later it may grow into a
4425 various internal docstrings and READMEs. Later it may grow into a
4421 nice, full-blown manual.
4426 nice, full-blown manual.
4422
4427
4423 * Set up a distutils based installer. Installation should now be
4428 * Set up a distutils based installer. Installation should now be
4424 trivially simple for end-users.
4429 trivially simple for end-users.
4425
4430
4426 2001-12-11 Fernando Perez <fperez@colorado.edu>
4431 2001-12-11 Fernando Perez <fperez@colorado.edu>
4427
4432
4428 * Released 0.2.0. First public release, announced it at
4433 * Released 0.2.0. First public release, announced it at
4429 comp.lang.python. From now on, just bugfixes...
4434 comp.lang.python. From now on, just bugfixes...
4430
4435
4431 * Went through all the files, set copyright/license notices and
4436 * Went through all the files, set copyright/license notices and
4432 cleaned up things. Ready for release.
4437 cleaned up things. Ready for release.
4433
4438
4434 2001-12-10 Fernando Perez <fperez@colorado.edu>
4439 2001-12-10 Fernando Perez <fperez@colorado.edu>
4435
4440
4436 * Changed the first-time installer not to use tarfiles. It's more
4441 * Changed the first-time installer not to use tarfiles. It's more
4437 robust now and less unix-dependent. Also makes it easier for
4442 robust now and less unix-dependent. Also makes it easier for
4438 people to later upgrade versions.
4443 people to later upgrade versions.
4439
4444
4440 * Changed @exit to @abort to reflect the fact that it's pretty
4445 * Changed @exit to @abort to reflect the fact that it's pretty
4441 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4446 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4442 becomes significant only when IPyhton is embedded: in that case,
4447 becomes significant only when IPyhton is embedded: in that case,
4443 C-D closes IPython only, but @abort kills the enclosing program
4448 C-D closes IPython only, but @abort kills the enclosing program
4444 too (unless it had called IPython inside a try catching
4449 too (unless it had called IPython inside a try catching
4445 SystemExit).
4450 SystemExit).
4446
4451
4447 * Created Shell module which exposes the actuall IPython Shell
4452 * Created Shell module which exposes the actuall IPython Shell
4448 classes, currently the normal and the embeddable one. This at
4453 classes, currently the normal and the embeddable one. This at
4449 least offers a stable interface we won't need to change when
4454 least offers a stable interface we won't need to change when
4450 (later) the internals are rewritten. That rewrite will be confined
4455 (later) the internals are rewritten. That rewrite will be confined
4451 to iplib and ipmaker, but the Shell interface should remain as is.
4456 to iplib and ipmaker, but the Shell interface should remain as is.
4452
4457
4453 * Added embed module which offers an embeddable IPShell object,
4458 * Added embed module which offers an embeddable IPShell object,
4454 useful to fire up IPython *inside* a running program. Great for
4459 useful to fire up IPython *inside* a running program. Great for
4455 debugging or dynamical data analysis.
4460 debugging or dynamical data analysis.
4456
4461
4457 2001-12-08 Fernando Perez <fperez@colorado.edu>
4462 2001-12-08 Fernando Perez <fperez@colorado.edu>
4458
4463
4459 * Fixed small bug preventing seeing info from methods of defined
4464 * Fixed small bug preventing seeing info from methods of defined
4460 objects (incorrect namespace in _ofind()).
4465 objects (incorrect namespace in _ofind()).
4461
4466
4462 * Documentation cleanup. Moved the main usage docstrings to a
4467 * Documentation cleanup. Moved the main usage docstrings to a
4463 separate file, usage.py (cleaner to maintain, and hopefully in the
4468 separate file, usage.py (cleaner to maintain, and hopefully in the
4464 future some perlpod-like way of producing interactive, man and
4469 future some perlpod-like way of producing interactive, man and
4465 html docs out of it will be found).
4470 html docs out of it will be found).
4466
4471
4467 * Added @profile to see your profile at any time.
4472 * Added @profile to see your profile at any time.
4468
4473
4469 * Added @p as an alias for 'print'. It's especially convenient if
4474 * Added @p as an alias for 'print'. It's especially convenient if
4470 using automagic ('p x' prints x).
4475 using automagic ('p x' prints x).
4471
4476
4472 * Small cleanups and fixes after a pychecker run.
4477 * Small cleanups and fixes after a pychecker run.
4473
4478
4474 * Changed the @cd command to handle @cd - and @cd -<n> for
4479 * Changed the @cd command to handle @cd - and @cd -<n> for
4475 visiting any directory in _dh.
4480 visiting any directory in _dh.
4476
4481
4477 * Introduced _dh, a history of visited directories. @dhist prints
4482 * Introduced _dh, a history of visited directories. @dhist prints
4478 it out with numbers.
4483 it out with numbers.
4479
4484
4480 2001-12-07 Fernando Perez <fperez@colorado.edu>
4485 2001-12-07 Fernando Perez <fperez@colorado.edu>
4481
4486
4482 * Released 0.1.22
4487 * Released 0.1.22
4483
4488
4484 * Made initialization a bit more robust against invalid color
4489 * Made initialization a bit more robust against invalid color
4485 options in user input (exit, not traceback-crash).
4490 options in user input (exit, not traceback-crash).
4486
4491
4487 * Changed the bug crash reporter to write the report only in the
4492 * Changed the bug crash reporter to write the report only in the
4488 user's .ipython directory. That way IPython won't litter people's
4493 user's .ipython directory. That way IPython won't litter people's
4489 hard disks with crash files all over the place. Also print on
4494 hard disks with crash files all over the place. Also print on
4490 screen the necessary mail command.
4495 screen the necessary mail command.
4491
4496
4492 * With the new ultraTB, implemented LightBG color scheme for light
4497 * With the new ultraTB, implemented LightBG color scheme for light
4493 background terminals. A lot of people like white backgrounds, so I
4498 background terminals. A lot of people like white backgrounds, so I
4494 guess we should at least give them something readable.
4499 guess we should at least give them something readable.
4495
4500
4496 2001-12-06 Fernando Perez <fperez@colorado.edu>
4501 2001-12-06 Fernando Perez <fperez@colorado.edu>
4497
4502
4498 * Modified the structure of ultraTB. Now there's a proper class
4503 * Modified the structure of ultraTB. Now there's a proper class
4499 for tables of color schemes which allow adding schemes easily and
4504 for tables of color schemes which allow adding schemes easily and
4500 switching the active scheme without creating a new instance every
4505 switching the active scheme without creating a new instance every
4501 time (which was ridiculous). The syntax for creating new schemes
4506 time (which was ridiculous). The syntax for creating new schemes
4502 is also cleaner. I think ultraTB is finally done, with a clean
4507 is also cleaner. I think ultraTB is finally done, with a clean
4503 class structure. Names are also much cleaner (now there's proper
4508 class structure. Names are also much cleaner (now there's proper
4504 color tables, no need for every variable to also have 'color' in
4509 color tables, no need for every variable to also have 'color' in
4505 its name).
4510 its name).
4506
4511
4507 * Broke down genutils into separate files. Now genutils only
4512 * Broke down genutils into separate files. Now genutils only
4508 contains utility functions, and classes have been moved to their
4513 contains utility functions, and classes have been moved to their
4509 own files (they had enough independent functionality to warrant
4514 own files (they had enough independent functionality to warrant
4510 it): ConfigLoader, OutputTrap, Struct.
4515 it): ConfigLoader, OutputTrap, Struct.
4511
4516
4512 2001-12-05 Fernando Perez <fperez@colorado.edu>
4517 2001-12-05 Fernando Perez <fperez@colorado.edu>
4513
4518
4514 * IPython turns 21! Released version 0.1.21, as a candidate for
4519 * IPython turns 21! Released version 0.1.21, as a candidate for
4515 public consumption. If all goes well, release in a few days.
4520 public consumption. If all goes well, release in a few days.
4516
4521
4517 * Fixed path bug (files in Extensions/ directory wouldn't be found
4522 * Fixed path bug (files in Extensions/ directory wouldn't be found
4518 unless IPython/ was explicitly in sys.path).
4523 unless IPython/ was explicitly in sys.path).
4519
4524
4520 * Extended the FlexCompleter class as MagicCompleter to allow
4525 * Extended the FlexCompleter class as MagicCompleter to allow
4521 completion of @-starting lines.
4526 completion of @-starting lines.
4522
4527
4523 * Created __release__.py file as a central repository for release
4528 * Created __release__.py file as a central repository for release
4524 info that other files can read from.
4529 info that other files can read from.
4525
4530
4526 * Fixed small bug in logging: when logging was turned on in
4531 * Fixed small bug in logging: when logging was turned on in
4527 mid-session, old lines with special meanings (!@?) were being
4532 mid-session, old lines with special meanings (!@?) were being
4528 logged without the prepended comment, which is necessary since
4533 logged without the prepended comment, which is necessary since
4529 they are not truly valid python syntax. This should make session
4534 they are not truly valid python syntax. This should make session
4530 restores produce less errors.
4535 restores produce less errors.
4531
4536
4532 * The namespace cleanup forced me to make a FlexCompleter class
4537 * The namespace cleanup forced me to make a FlexCompleter class
4533 which is nothing but a ripoff of rlcompleter, but with selectable
4538 which is nothing but a ripoff of rlcompleter, but with selectable
4534 namespace (rlcompleter only works in __main__.__dict__). I'll try
4539 namespace (rlcompleter only works in __main__.__dict__). I'll try
4535 to submit a note to the authors to see if this change can be
4540 to submit a note to the authors to see if this change can be
4536 incorporated in future rlcompleter releases (Dec.6: done)
4541 incorporated in future rlcompleter releases (Dec.6: done)
4537
4542
4538 * More fixes to namespace handling. It was a mess! Now all
4543 * More fixes to namespace handling. It was a mess! Now all
4539 explicit references to __main__.__dict__ are gone (except when
4544 explicit references to __main__.__dict__ are gone (except when
4540 really needed) and everything is handled through the namespace
4545 really needed) and everything is handled through the namespace
4541 dicts in the IPython instance. We seem to be getting somewhere
4546 dicts in the IPython instance. We seem to be getting somewhere
4542 with this, finally...
4547 with this, finally...
4543
4548
4544 * Small documentation updates.
4549 * Small documentation updates.
4545
4550
4546 * Created the Extensions directory under IPython (with an
4551 * Created the Extensions directory under IPython (with an
4547 __init__.py). Put the PhysicalQ stuff there. This directory should
4552 __init__.py). Put the PhysicalQ stuff there. This directory should
4548 be used for all special-purpose extensions.
4553 be used for all special-purpose extensions.
4549
4554
4550 * File renaming:
4555 * File renaming:
4551 ipythonlib --> ipmaker
4556 ipythonlib --> ipmaker
4552 ipplib --> iplib
4557 ipplib --> iplib
4553 This makes a bit more sense in terms of what these files actually do.
4558 This makes a bit more sense in terms of what these files actually do.
4554
4559
4555 * Moved all the classes and functions in ipythonlib to ipplib, so
4560 * Moved all the classes and functions in ipythonlib to ipplib, so
4556 now ipythonlib only has make_IPython(). This will ease up its
4561 now ipythonlib only has make_IPython(). This will ease up its
4557 splitting in smaller functional chunks later.
4562 splitting in smaller functional chunks later.
4558
4563
4559 * Cleaned up (done, I think) output of @whos. Better column
4564 * Cleaned up (done, I think) output of @whos. Better column
4560 formatting, and now shows str(var) for as much as it can, which is
4565 formatting, and now shows str(var) for as much as it can, which is
4561 typically what one gets with a 'print var'.
4566 typically what one gets with a 'print var'.
4562
4567
4563 2001-12-04 Fernando Perez <fperez@colorado.edu>
4568 2001-12-04 Fernando Perez <fperez@colorado.edu>
4564
4569
4565 * Fixed namespace problems. Now builtin/IPyhton/user names get
4570 * Fixed namespace problems. Now builtin/IPyhton/user names get
4566 properly reported in their namespace. Internal namespace handling
4571 properly reported in their namespace. Internal namespace handling
4567 is finally getting decent (not perfect yet, but much better than
4572 is finally getting decent (not perfect yet, but much better than
4568 the ad-hoc mess we had).
4573 the ad-hoc mess we had).
4569
4574
4570 * Removed -exit option. If people just want to run a python
4575 * Removed -exit option. If people just want to run a python
4571 script, that's what the normal interpreter is for. Less
4576 script, that's what the normal interpreter is for. Less
4572 unnecessary options, less chances for bugs.
4577 unnecessary options, less chances for bugs.
4573
4578
4574 * Added a crash handler which generates a complete post-mortem if
4579 * Added a crash handler which generates a complete post-mortem if
4575 IPython crashes. This will help a lot in tracking bugs down the
4580 IPython crashes. This will help a lot in tracking bugs down the
4576 road.
4581 road.
4577
4582
4578 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4583 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4579 which were boud to functions being reassigned would bypass the
4584 which were boud to functions being reassigned would bypass the
4580 logger, breaking the sync of _il with the prompt counter. This
4585 logger, breaking the sync of _il with the prompt counter. This
4581 would then crash IPython later when a new line was logged.
4586 would then crash IPython later when a new line was logged.
4582
4587
4583 2001-12-02 Fernando Perez <fperez@colorado.edu>
4588 2001-12-02 Fernando Perez <fperez@colorado.edu>
4584
4589
4585 * Made IPython a package. This means people don't have to clutter
4590 * Made IPython a package. This means people don't have to clutter
4586 their sys.path with yet another directory. Changed the INSTALL
4591 their sys.path with yet another directory. Changed the INSTALL
4587 file accordingly.
4592 file accordingly.
4588
4593
4589 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4594 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4590 sorts its output (so @who shows it sorted) and @whos formats the
4595 sorts its output (so @who shows it sorted) and @whos formats the
4591 table according to the width of the first column. Nicer, easier to
4596 table according to the width of the first column. Nicer, easier to
4592 read. Todo: write a generic table_format() which takes a list of
4597 read. Todo: write a generic table_format() which takes a list of
4593 lists and prints it nicely formatted, with optional row/column
4598 lists and prints it nicely formatted, with optional row/column
4594 separators and proper padding and justification.
4599 separators and proper padding and justification.
4595
4600
4596 * Released 0.1.20
4601 * Released 0.1.20
4597
4602
4598 * Fixed bug in @log which would reverse the inputcache list (a
4603 * Fixed bug in @log which would reverse the inputcache list (a
4599 copy operation was missing).
4604 copy operation was missing).
4600
4605
4601 * Code cleanup. @config was changed to use page(). Better, since
4606 * Code cleanup. @config was changed to use page(). Better, since
4602 its output is always quite long.
4607 its output is always quite long.
4603
4608
4604 * Itpl is back as a dependency. I was having too many problems
4609 * Itpl is back as a dependency. I was having too many problems
4605 getting the parametric aliases to work reliably, and it's just
4610 getting the parametric aliases to work reliably, and it's just
4606 easier to code weird string operations with it than playing %()s
4611 easier to code weird string operations with it than playing %()s
4607 games. It's only ~6k, so I don't think it's too big a deal.
4612 games. It's only ~6k, so I don't think it's too big a deal.
4608
4613
4609 * Found (and fixed) a very nasty bug with history. !lines weren't
4614 * Found (and fixed) a very nasty bug with history. !lines weren't
4610 getting cached, and the out of sync caches would crash
4615 getting cached, and the out of sync caches would crash
4611 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4616 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4612 division of labor a bit better. Bug fixed, cleaner structure.
4617 division of labor a bit better. Bug fixed, cleaner structure.
4613
4618
4614 2001-12-01 Fernando Perez <fperez@colorado.edu>
4619 2001-12-01 Fernando Perez <fperez@colorado.edu>
4615
4620
4616 * Released 0.1.19
4621 * Released 0.1.19
4617
4622
4618 * Added option -n to @hist to prevent line number printing. Much
4623 * Added option -n to @hist to prevent line number printing. Much
4619 easier to copy/paste code this way.
4624 easier to copy/paste code this way.
4620
4625
4621 * Created global _il to hold the input list. Allows easy
4626 * Created global _il to hold the input list. Allows easy
4622 re-execution of blocks of code by slicing it (inspired by Janko's
4627 re-execution of blocks of code by slicing it (inspired by Janko's
4623 comment on 'macros').
4628 comment on 'macros').
4624
4629
4625 * Small fixes and doc updates.
4630 * Small fixes and doc updates.
4626
4631
4627 * Rewrote @history function (was @h). Renamed it to @hist, @h is
4632 * Rewrote @history function (was @h). Renamed it to @hist, @h is
4628 much too fragile with automagic. Handles properly multi-line
4633 much too fragile with automagic. Handles properly multi-line
4629 statements and takes parameters.
4634 statements and takes parameters.
4630
4635
4631 2001-11-30 Fernando Perez <fperez@colorado.edu>
4636 2001-11-30 Fernando Perez <fperez@colorado.edu>
4632
4637
4633 * Version 0.1.18 released.
4638 * Version 0.1.18 released.
4634
4639
4635 * Fixed nasty namespace bug in initial module imports.
4640 * Fixed nasty namespace bug in initial module imports.
4636
4641
4637 * Added copyright/license notes to all code files (except
4642 * Added copyright/license notes to all code files (except
4638 DPyGetOpt). For the time being, LGPL. That could change.
4643 DPyGetOpt). For the time being, LGPL. That could change.
4639
4644
4640 * Rewrote a much nicer README, updated INSTALL, cleaned up
4645 * Rewrote a much nicer README, updated INSTALL, cleaned up
4641 ipythonrc-* samples.
4646 ipythonrc-* samples.
4642
4647
4643 * Overall code/documentation cleanup. Basically ready for
4648 * Overall code/documentation cleanup. Basically ready for
4644 release. Only remaining thing: licence decision (LGPL?).
4649 release. Only remaining thing: licence decision (LGPL?).
4645
4650
4646 * Converted load_config to a class, ConfigLoader. Now recursion
4651 * Converted load_config to a class, ConfigLoader. Now recursion
4647 control is better organized. Doesn't include the same file twice.
4652 control is better organized. Doesn't include the same file twice.
4648
4653
4649 2001-11-29 Fernando Perez <fperez@colorado.edu>
4654 2001-11-29 Fernando Perez <fperez@colorado.edu>
4650
4655
4651 * Got input history working. Changed output history variables from
4656 * Got input history working. Changed output history variables from
4652 _p to _o so that _i is for input and _o for output. Just cleaner
4657 _p to _o so that _i is for input and _o for output. Just cleaner
4653 convention.
4658 convention.
4654
4659
4655 * Implemented parametric aliases. This pretty much allows the
4660 * Implemented parametric aliases. This pretty much allows the
4656 alias system to offer full-blown shell convenience, I think.
4661 alias system to offer full-blown shell convenience, I think.
4657
4662
4658 * Version 0.1.17 released, 0.1.18 opened.
4663 * Version 0.1.17 released, 0.1.18 opened.
4659
4664
4660 * dot_ipython/ipythonrc (alias): added documentation.
4665 * dot_ipython/ipythonrc (alias): added documentation.
4661 (xcolor): Fixed small bug (xcolors -> xcolor)
4666 (xcolor): Fixed small bug (xcolors -> xcolor)
4662
4667
4663 * Changed the alias system. Now alias is a magic command to define
4668 * Changed the alias system. Now alias is a magic command to define
4664 aliases just like the shell. Rationale: the builtin magics should
4669 aliases just like the shell. Rationale: the builtin magics should
4665 be there for things deeply connected to IPython's
4670 be there for things deeply connected to IPython's
4666 architecture. And this is a much lighter system for what I think
4671 architecture. And this is a much lighter system for what I think
4667 is the really important feature: allowing users to define quickly
4672 is the really important feature: allowing users to define quickly
4668 magics that will do shell things for them, so they can customize
4673 magics that will do shell things for them, so they can customize
4669 IPython easily to match their work habits. If someone is really
4674 IPython easily to match their work habits. If someone is really
4670 desperate to have another name for a builtin alias, they can
4675 desperate to have another name for a builtin alias, they can
4671 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4676 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4672 works.
4677 works.
4673
4678
4674 2001-11-28 Fernando Perez <fperez@colorado.edu>
4679 2001-11-28 Fernando Perez <fperez@colorado.edu>
4675
4680
4676 * Changed @file so that it opens the source file at the proper
4681 * Changed @file so that it opens the source file at the proper
4677 line. Since it uses less, if your EDITOR environment is
4682 line. Since it uses less, if your EDITOR environment is
4678 configured, typing v will immediately open your editor of choice
4683 configured, typing v will immediately open your editor of choice
4679 right at the line where the object is defined. Not as quick as
4684 right at the line where the object is defined. Not as quick as
4680 having a direct @edit command, but for all intents and purposes it
4685 having a direct @edit command, but for all intents and purposes it
4681 works. And I don't have to worry about writing @edit to deal with
4686 works. And I don't have to worry about writing @edit to deal with
4682 all the editors, less does that.
4687 all the editors, less does that.
4683
4688
4684 * Version 0.1.16 released, 0.1.17 opened.
4689 * Version 0.1.16 released, 0.1.17 opened.
4685
4690
4686 * Fixed some nasty bugs in the page/page_dumb combo that could
4691 * Fixed some nasty bugs in the page/page_dumb combo that could
4687 crash IPython.
4692 crash IPython.
4688
4693
4689 2001-11-27 Fernando Perez <fperez@colorado.edu>
4694 2001-11-27 Fernando Perez <fperez@colorado.edu>
4690
4695
4691 * Version 0.1.15 released, 0.1.16 opened.
4696 * Version 0.1.15 released, 0.1.16 opened.
4692
4697
4693 * Finally got ? and ?? to work for undefined things: now it's
4698 * Finally got ? and ?? to work for undefined things: now it's
4694 possible to type {}.get? and get information about the get method
4699 possible to type {}.get? and get information about the get method
4695 of dicts, or os.path? even if only os is defined (so technically
4700 of dicts, or os.path? even if only os is defined (so technically
4696 os.path isn't). Works at any level. For example, after import os,
4701 os.path isn't). Works at any level. For example, after import os,
4697 os?, os.path?, os.path.abspath? all work. This is great, took some
4702 os?, os.path?, os.path.abspath? all work. This is great, took some
4698 work in _ofind.
4703 work in _ofind.
4699
4704
4700 * Fixed more bugs with logging. The sanest way to do it was to add
4705 * Fixed more bugs with logging. The sanest way to do it was to add
4701 to @log a 'mode' parameter. Killed two in one shot (this mode
4706 to @log a 'mode' parameter. Killed two in one shot (this mode
4702 option was a request of Janko's). I think it's finally clean
4707 option was a request of Janko's). I think it's finally clean
4703 (famous last words).
4708 (famous last words).
4704
4709
4705 * Added a page_dumb() pager which does a decent job of paging on
4710 * Added a page_dumb() pager which does a decent job of paging on
4706 screen, if better things (like less) aren't available. One less
4711 screen, if better things (like less) aren't available. One less
4707 unix dependency (someday maybe somebody will port this to
4712 unix dependency (someday maybe somebody will port this to
4708 windows).
4713 windows).
4709
4714
4710 * Fixed problem in magic_log: would lock of logging out if log
4715 * Fixed problem in magic_log: would lock of logging out if log
4711 creation failed (because it would still think it had succeeded).
4716 creation failed (because it would still think it had succeeded).
4712
4717
4713 * Improved the page() function using curses to auto-detect screen
4718 * Improved the page() function using curses to auto-detect screen
4714 size. Now it can make a much better decision on whether to print
4719 size. Now it can make a much better decision on whether to print
4715 or page a string. Option screen_length was modified: a value 0
4720 or page a string. Option screen_length was modified: a value 0
4716 means auto-detect, and that's the default now.
4721 means auto-detect, and that's the default now.
4717
4722
4718 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
4723 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
4719 go out. I'll test it for a few days, then talk to Janko about
4724 go out. I'll test it for a few days, then talk to Janko about
4720 licences and announce it.
4725 licences and announce it.
4721
4726
4722 * Fixed the length of the auto-generated ---> prompt which appears
4727 * Fixed the length of the auto-generated ---> prompt which appears
4723 for auto-parens and auto-quotes. Getting this right isn't trivial,
4728 for auto-parens and auto-quotes. Getting this right isn't trivial,
4724 with all the color escapes, different prompt types and optional
4729 with all the color escapes, different prompt types and optional
4725 separators. But it seems to be working in all the combinations.
4730 separators. But it seems to be working in all the combinations.
4726
4731
4727 2001-11-26 Fernando Perez <fperez@colorado.edu>
4732 2001-11-26 Fernando Perez <fperez@colorado.edu>
4728
4733
4729 * Wrote a regexp filter to get option types from the option names
4734 * Wrote a regexp filter to get option types from the option names
4730 string. This eliminates the need to manually keep two duplicate
4735 string. This eliminates the need to manually keep two duplicate
4731 lists.
4736 lists.
4732
4737
4733 * Removed the unneeded check_option_names. Now options are handled
4738 * Removed the unneeded check_option_names. Now options are handled
4734 in a much saner manner and it's easy to visually check that things
4739 in a much saner manner and it's easy to visually check that things
4735 are ok.
4740 are ok.
4736
4741
4737 * Updated version numbers on all files I modified to carry a
4742 * Updated version numbers on all files I modified to carry a
4738 notice so Janko and Nathan have clear version markers.
4743 notice so Janko and Nathan have clear version markers.
4739
4744
4740 * Updated docstring for ultraTB with my changes. I should send
4745 * Updated docstring for ultraTB with my changes. I should send
4741 this to Nathan.
4746 this to Nathan.
4742
4747
4743 * Lots of small fixes. Ran everything through pychecker again.
4748 * Lots of small fixes. Ran everything through pychecker again.
4744
4749
4745 * Made loading of deep_reload an cmd line option. If it's not too
4750 * Made loading of deep_reload an cmd line option. If it's not too
4746 kosher, now people can just disable it. With -nodeep_reload it's
4751 kosher, now people can just disable it. With -nodeep_reload it's
4747 still available as dreload(), it just won't overwrite reload().
4752 still available as dreload(), it just won't overwrite reload().
4748
4753
4749 * Moved many options to the no| form (-opt and -noopt
4754 * Moved many options to the no| form (-opt and -noopt
4750 accepted). Cleaner.
4755 accepted). Cleaner.
4751
4756
4752 * Changed magic_log so that if called with no parameters, it uses
4757 * Changed magic_log so that if called with no parameters, it uses
4753 'rotate' mode. That way auto-generated logs aren't automatically
4758 'rotate' mode. That way auto-generated logs aren't automatically
4754 over-written. For normal logs, now a backup is made if it exists
4759 over-written. For normal logs, now a backup is made if it exists
4755 (only 1 level of backups). A new 'backup' mode was added to the
4760 (only 1 level of backups). A new 'backup' mode was added to the
4756 Logger class to support this. This was a request by Janko.
4761 Logger class to support this. This was a request by Janko.
4757
4762
4758 * Added @logoff/@logon to stop/restart an active log.
4763 * Added @logoff/@logon to stop/restart an active log.
4759
4764
4760 * Fixed a lot of bugs in log saving/replay. It was pretty
4765 * Fixed a lot of bugs in log saving/replay. It was pretty
4761 broken. Now special lines (!@,/) appear properly in the command
4766 broken. Now special lines (!@,/) appear properly in the command
4762 history after a log replay.
4767 history after a log replay.
4763
4768
4764 * Tried and failed to implement full session saving via pickle. My
4769 * Tried and failed to implement full session saving via pickle. My
4765 idea was to pickle __main__.__dict__, but modules can't be
4770 idea was to pickle __main__.__dict__, but modules can't be
4766 pickled. This would be a better alternative to replaying logs, but
4771 pickled. This would be a better alternative to replaying logs, but
4767 seems quite tricky to get to work. Changed -session to be called
4772 seems quite tricky to get to work. Changed -session to be called
4768 -logplay, which more accurately reflects what it does. And if we
4773 -logplay, which more accurately reflects what it does. And if we
4769 ever get real session saving working, -session is now available.
4774 ever get real session saving working, -session is now available.
4770
4775
4771 * Implemented color schemes for prompts also. As for tracebacks,
4776 * Implemented color schemes for prompts also. As for tracebacks,
4772 currently only NoColor and Linux are supported. But now the
4777 currently only NoColor and Linux are supported. But now the
4773 infrastructure is in place, based on a generic ColorScheme
4778 infrastructure is in place, based on a generic ColorScheme
4774 class. So writing and activating new schemes both for the prompts
4779 class. So writing and activating new schemes both for the prompts
4775 and the tracebacks should be straightforward.
4780 and the tracebacks should be straightforward.
4776
4781
4777 * Version 0.1.13 released, 0.1.14 opened.
4782 * Version 0.1.13 released, 0.1.14 opened.
4778
4783
4779 * Changed handling of options for output cache. Now counter is
4784 * Changed handling of options for output cache. Now counter is
4780 hardwired starting at 1 and one specifies the maximum number of
4785 hardwired starting at 1 and one specifies the maximum number of
4781 entries *in the outcache* (not the max prompt counter). This is
4786 entries *in the outcache* (not the max prompt counter). This is
4782 much better, since many statements won't increase the cache
4787 much better, since many statements won't increase the cache
4783 count. It also eliminated some confusing options, now there's only
4788 count. It also eliminated some confusing options, now there's only
4784 one: cache_size.
4789 one: cache_size.
4785
4790
4786 * Added 'alias' magic function and magic_alias option in the
4791 * Added 'alias' magic function and magic_alias option in the
4787 ipythonrc file. Now the user can easily define whatever names he
4792 ipythonrc file. Now the user can easily define whatever names he
4788 wants for the magic functions without having to play weird
4793 wants for the magic functions without having to play weird
4789 namespace games. This gives IPython a real shell-like feel.
4794 namespace games. This gives IPython a real shell-like feel.
4790
4795
4791 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
4796 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
4792 @ or not).
4797 @ or not).
4793
4798
4794 This was one of the last remaining 'visible' bugs (that I know
4799 This was one of the last remaining 'visible' bugs (that I know
4795 of). I think if I can clean up the session loading so it works
4800 of). I think if I can clean up the session loading so it works
4796 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
4801 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
4797 about licensing).
4802 about licensing).
4798
4803
4799 2001-11-25 Fernando Perez <fperez@colorado.edu>
4804 2001-11-25 Fernando Perez <fperez@colorado.edu>
4800
4805
4801 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
4806 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
4802 there's a cleaner distinction between what ? and ?? show.
4807 there's a cleaner distinction between what ? and ?? show.
4803
4808
4804 * Added screen_length option. Now the user can define his own
4809 * Added screen_length option. Now the user can define his own
4805 screen size for page() operations.
4810 screen size for page() operations.
4806
4811
4807 * Implemented magic shell-like functions with automatic code
4812 * Implemented magic shell-like functions with automatic code
4808 generation. Now adding another function is just a matter of adding
4813 generation. Now adding another function is just a matter of adding
4809 an entry to a dict, and the function is dynamically generated at
4814 an entry to a dict, and the function is dynamically generated at
4810 run-time. Python has some really cool features!
4815 run-time. Python has some really cool features!
4811
4816
4812 * Renamed many options to cleanup conventions a little. Now all
4817 * Renamed many options to cleanup conventions a little. Now all
4813 are lowercase, and only underscores where needed. Also in the code
4818 are lowercase, and only underscores where needed. Also in the code
4814 option name tables are clearer.
4819 option name tables are clearer.
4815
4820
4816 * Changed prompts a little. Now input is 'In [n]:' instead of
4821 * Changed prompts a little. Now input is 'In [n]:' instead of
4817 'In[n]:='. This allows it the numbers to be aligned with the
4822 'In[n]:='. This allows it the numbers to be aligned with the
4818 Out[n] numbers, and removes usage of ':=' which doesn't exist in
4823 Out[n] numbers, and removes usage of ':=' which doesn't exist in
4819 Python (it was a Mathematica thing). The '...' continuation prompt
4824 Python (it was a Mathematica thing). The '...' continuation prompt
4820 was also changed a little to align better.
4825 was also changed a little to align better.
4821
4826
4822 * Fixed bug when flushing output cache. Not all _p<n> variables
4827 * Fixed bug when flushing output cache. Not all _p<n> variables
4823 exist, so their deletion needs to be wrapped in a try:
4828 exist, so their deletion needs to be wrapped in a try:
4824
4829
4825 * Figured out how to properly use inspect.formatargspec() (it
4830 * Figured out how to properly use inspect.formatargspec() (it
4826 requires the args preceded by *). So I removed all the code from
4831 requires the args preceded by *). So I removed all the code from
4827 _get_pdef in Magic, which was just replicating that.
4832 _get_pdef in Magic, which was just replicating that.
4828
4833
4829 * Added test to prefilter to allow redefining magic function names
4834 * Added test to prefilter to allow redefining magic function names
4830 as variables. This is ok, since the @ form is always available,
4835 as variables. This is ok, since the @ form is always available,
4831 but whe should allow the user to define a variable called 'ls' if
4836 but whe should allow the user to define a variable called 'ls' if
4832 he needs it.
4837 he needs it.
4833
4838
4834 * Moved the ToDo information from README into a separate ToDo.
4839 * Moved the ToDo information from README into a separate ToDo.
4835
4840
4836 * General code cleanup and small bugfixes. I think it's close to a
4841 * General code cleanup and small bugfixes. I think it's close to a
4837 state where it can be released, obviously with a big 'beta'
4842 state where it can be released, obviously with a big 'beta'
4838 warning on it.
4843 warning on it.
4839
4844
4840 * Got the magic function split to work. Now all magics are defined
4845 * Got the magic function split to work. Now all magics are defined
4841 in a separate class. It just organizes things a bit, and now
4846 in a separate class. It just organizes things a bit, and now
4842 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
4847 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
4843 was too long).
4848 was too long).
4844
4849
4845 * Changed @clear to @reset to avoid potential confusions with
4850 * Changed @clear to @reset to avoid potential confusions with
4846 the shell command clear. Also renamed @cl to @clear, which does
4851 the shell command clear. Also renamed @cl to @clear, which does
4847 exactly what people expect it to from their shell experience.
4852 exactly what people expect it to from their shell experience.
4848
4853
4849 Added a check to the @reset command (since it's so
4854 Added a check to the @reset command (since it's so
4850 destructive, it's probably a good idea to ask for confirmation).
4855 destructive, it's probably a good idea to ask for confirmation).
4851 But now reset only works for full namespace resetting. Since the
4856 But now reset only works for full namespace resetting. Since the
4852 del keyword is already there for deleting a few specific
4857 del keyword is already there for deleting a few specific
4853 variables, I don't see the point of having a redundant magic
4858 variables, I don't see the point of having a redundant magic
4854 function for the same task.
4859 function for the same task.
4855
4860
4856 2001-11-24 Fernando Perez <fperez@colorado.edu>
4861 2001-11-24 Fernando Perez <fperez@colorado.edu>
4857
4862
4858 * Updated the builtin docs (esp. the ? ones).
4863 * Updated the builtin docs (esp. the ? ones).
4859
4864
4860 * Ran all the code through pychecker. Not terribly impressed with
4865 * Ran all the code through pychecker. Not terribly impressed with
4861 it: lots of spurious warnings and didn't really find anything of
4866 it: lots of spurious warnings and didn't really find anything of
4862 substance (just a few modules being imported and not used).
4867 substance (just a few modules being imported and not used).
4863
4868
4864 * Implemented the new ultraTB functionality into IPython. New
4869 * Implemented the new ultraTB functionality into IPython. New
4865 option: xcolors. This chooses color scheme. xmode now only selects
4870 option: xcolors. This chooses color scheme. xmode now only selects
4866 between Plain and Verbose. Better orthogonality.
4871 between Plain and Verbose. Better orthogonality.
4867
4872
4868 * Large rewrite of ultraTB. Much cleaner now, with a separation of
4873 * Large rewrite of ultraTB. Much cleaner now, with a separation of
4869 mode and color scheme for the exception handlers. Now it's
4874 mode and color scheme for the exception handlers. Now it's
4870 possible to have the verbose traceback with no coloring.
4875 possible to have the verbose traceback with no coloring.
4871
4876
4872 2001-11-23 Fernando Perez <fperez@colorado.edu>
4877 2001-11-23 Fernando Perez <fperez@colorado.edu>
4873
4878
4874 * Version 0.1.12 released, 0.1.13 opened.
4879 * Version 0.1.12 released, 0.1.13 opened.
4875
4880
4876 * Removed option to set auto-quote and auto-paren escapes by
4881 * Removed option to set auto-quote and auto-paren escapes by
4877 user. The chances of breaking valid syntax are just too high. If
4882 user. The chances of breaking valid syntax are just too high. If
4878 someone *really* wants, they can always dig into the code.
4883 someone *really* wants, they can always dig into the code.
4879
4884
4880 * Made prompt separators configurable.
4885 * Made prompt separators configurable.
4881
4886
4882 2001-11-22 Fernando Perez <fperez@colorado.edu>
4887 2001-11-22 Fernando Perez <fperez@colorado.edu>
4883
4888
4884 * Small bugfixes in many places.
4889 * Small bugfixes in many places.
4885
4890
4886 * Removed the MyCompleter class from ipplib. It seemed redundant
4891 * Removed the MyCompleter class from ipplib. It seemed redundant
4887 with the C-p,C-n history search functionality. Less code to
4892 with the C-p,C-n history search functionality. Less code to
4888 maintain.
4893 maintain.
4889
4894
4890 * Moved all the original ipython.py code into ipythonlib.py. Right
4895 * Moved all the original ipython.py code into ipythonlib.py. Right
4891 now it's just one big dump into a function called make_IPython, so
4896 now it's just one big dump into a function called make_IPython, so
4892 no real modularity has been gained. But at least it makes the
4897 no real modularity has been gained. But at least it makes the
4893 wrapper script tiny, and since ipythonlib is a module, it gets
4898 wrapper script tiny, and since ipythonlib is a module, it gets
4894 compiled and startup is much faster.
4899 compiled and startup is much faster.
4895
4900
4896 This is a reasobably 'deep' change, so we should test it for a
4901 This is a reasobably 'deep' change, so we should test it for a
4897 while without messing too much more with the code.
4902 while without messing too much more with the code.
4898
4903
4899 2001-11-21 Fernando Perez <fperez@colorado.edu>
4904 2001-11-21 Fernando Perez <fperez@colorado.edu>
4900
4905
4901 * Version 0.1.11 released, 0.1.12 opened for further work.
4906 * Version 0.1.11 released, 0.1.12 opened for further work.
4902
4907
4903 * Removed dependency on Itpl. It was only needed in one place. It
4908 * Removed dependency on Itpl. It was only needed in one place. It
4904 would be nice if this became part of python, though. It makes life
4909 would be nice if this became part of python, though. It makes life
4905 *a lot* easier in some cases.
4910 *a lot* easier in some cases.
4906
4911
4907 * Simplified the prefilter code a bit. Now all handlers are
4912 * Simplified the prefilter code a bit. Now all handlers are
4908 expected to explicitly return a value (at least a blank string).
4913 expected to explicitly return a value (at least a blank string).
4909
4914
4910 * Heavy edits in ipplib. Removed the help system altogether. Now
4915 * Heavy edits in ipplib. Removed the help system altogether. Now
4911 obj?/?? is used for inspecting objects, a magic @doc prints
4916 obj?/?? is used for inspecting objects, a magic @doc prints
4912 docstrings, and full-blown Python help is accessed via the 'help'
4917 docstrings, and full-blown Python help is accessed via the 'help'
4913 keyword. This cleans up a lot of code (less to maintain) and does
4918 keyword. This cleans up a lot of code (less to maintain) and does
4914 the job. Since 'help' is now a standard Python component, might as
4919 the job. Since 'help' is now a standard Python component, might as
4915 well use it and remove duplicate functionality.
4920 well use it and remove duplicate functionality.
4916
4921
4917 Also removed the option to use ipplib as a standalone program. By
4922 Also removed the option to use ipplib as a standalone program. By
4918 now it's too dependent on other parts of IPython to function alone.
4923 now it's too dependent on other parts of IPython to function alone.
4919
4924
4920 * Fixed bug in genutils.pager. It would crash if the pager was
4925 * Fixed bug in genutils.pager. It would crash if the pager was
4921 exited immediately after opening (broken pipe).
4926 exited immediately after opening (broken pipe).
4922
4927
4923 * Trimmed down the VerboseTB reporting a little. The header is
4928 * Trimmed down the VerboseTB reporting a little. The header is
4924 much shorter now and the repeated exception arguments at the end
4929 much shorter now and the repeated exception arguments at the end
4925 have been removed. For interactive use the old header seemed a bit
4930 have been removed. For interactive use the old header seemed a bit
4926 excessive.
4931 excessive.
4927
4932
4928 * Fixed small bug in output of @whos for variables with multi-word
4933 * Fixed small bug in output of @whos for variables with multi-word
4929 types (only first word was displayed).
4934 types (only first word was displayed).
4930
4935
4931 2001-11-17 Fernando Perez <fperez@colorado.edu>
4936 2001-11-17 Fernando Perez <fperez@colorado.edu>
4932
4937
4933 * Version 0.1.10 released, 0.1.11 opened for further work.
4938 * Version 0.1.10 released, 0.1.11 opened for further work.
4934
4939
4935 * Modified dirs and friends. dirs now *returns* the stack (not
4940 * Modified dirs and friends. dirs now *returns* the stack (not
4936 prints), so one can manipulate it as a variable. Convenient to
4941 prints), so one can manipulate it as a variable. Convenient to
4937 travel along many directories.
4942 travel along many directories.
4938
4943
4939 * Fixed bug in magic_pdef: would only work with functions with
4944 * Fixed bug in magic_pdef: would only work with functions with
4940 arguments with default values.
4945 arguments with default values.
4941
4946
4942 2001-11-14 Fernando Perez <fperez@colorado.edu>
4947 2001-11-14 Fernando Perez <fperez@colorado.edu>
4943
4948
4944 * Added the PhysicsInput stuff to dot_ipython so it ships as an
4949 * Added the PhysicsInput stuff to dot_ipython so it ships as an
4945 example with IPython. Various other minor fixes and cleanups.
4950 example with IPython. Various other minor fixes and cleanups.
4946
4951
4947 * Version 0.1.9 released, 0.1.10 opened for further work.
4952 * Version 0.1.9 released, 0.1.10 opened for further work.
4948
4953
4949 * Added sys.path to the list of directories searched in the
4954 * Added sys.path to the list of directories searched in the
4950 execfile= option. It used to be the current directory and the
4955 execfile= option. It used to be the current directory and the
4951 user's IPYTHONDIR only.
4956 user's IPYTHONDIR only.
4952
4957
4953 2001-11-13 Fernando Perez <fperez@colorado.edu>
4958 2001-11-13 Fernando Perez <fperez@colorado.edu>
4954
4959
4955 * Reinstated the raw_input/prefilter separation that Janko had
4960 * Reinstated the raw_input/prefilter separation that Janko had
4956 initially. This gives a more convenient setup for extending the
4961 initially. This gives a more convenient setup for extending the
4957 pre-processor from the outside: raw_input always gets a string,
4962 pre-processor from the outside: raw_input always gets a string,
4958 and prefilter has to process it. We can then redefine prefilter
4963 and prefilter has to process it. We can then redefine prefilter
4959 from the outside and implement extensions for special
4964 from the outside and implement extensions for special
4960 purposes.
4965 purposes.
4961
4966
4962 Today I got one for inputting PhysicalQuantity objects
4967 Today I got one for inputting PhysicalQuantity objects
4963 (from Scientific) without needing any function calls at
4968 (from Scientific) without needing any function calls at
4964 all. Extremely convenient, and it's all done as a user-level
4969 all. Extremely convenient, and it's all done as a user-level
4965 extension (no IPython code was touched). Now instead of:
4970 extension (no IPython code was touched). Now instead of:
4966 a = PhysicalQuantity(4.2,'m/s**2')
4971 a = PhysicalQuantity(4.2,'m/s**2')
4967 one can simply say
4972 one can simply say
4968 a = 4.2 m/s**2
4973 a = 4.2 m/s**2
4969 or even
4974 or even
4970 a = 4.2 m/s^2
4975 a = 4.2 m/s^2
4971
4976
4972 I use this, but it's also a proof of concept: IPython really is
4977 I use this, but it's also a proof of concept: IPython really is
4973 fully user-extensible, even at the level of the parsing of the
4978 fully user-extensible, even at the level of the parsing of the
4974 command line. It's not trivial, but it's perfectly doable.
4979 command line. It's not trivial, but it's perfectly doable.
4975
4980
4976 * Added 'add_flip' method to inclusion conflict resolver. Fixes
4981 * Added 'add_flip' method to inclusion conflict resolver. Fixes
4977 the problem of modules being loaded in the inverse order in which
4982 the problem of modules being loaded in the inverse order in which
4978 they were defined in
4983 they were defined in
4979
4984
4980 * Version 0.1.8 released, 0.1.9 opened for further work.
4985 * Version 0.1.8 released, 0.1.9 opened for further work.
4981
4986
4982 * Added magics pdef, source and file. They respectively show the
4987 * Added magics pdef, source and file. They respectively show the
4983 definition line ('prototype' in C), source code and full python
4988 definition line ('prototype' in C), source code and full python
4984 file for any callable object. The object inspector oinfo uses
4989 file for any callable object. The object inspector oinfo uses
4985 these to show the same information.
4990 these to show the same information.
4986
4991
4987 * Version 0.1.7 released, 0.1.8 opened for further work.
4992 * Version 0.1.7 released, 0.1.8 opened for further work.
4988
4993
4989 * Separated all the magic functions into a class called Magic. The
4994 * Separated all the magic functions into a class called Magic. The
4990 InteractiveShell class was becoming too big for Xemacs to handle
4995 InteractiveShell class was becoming too big for Xemacs to handle
4991 (de-indenting a line would lock it up for 10 seconds while it
4996 (de-indenting a line would lock it up for 10 seconds while it
4992 backtracked on the whole class!)
4997 backtracked on the whole class!)
4993
4998
4994 FIXME: didn't work. It can be done, but right now namespaces are
4999 FIXME: didn't work. It can be done, but right now namespaces are
4995 all messed up. Do it later (reverted it for now, so at least
5000 all messed up. Do it later (reverted it for now, so at least
4996 everything works as before).
5001 everything works as before).
4997
5002
4998 * Got the object introspection system (magic_oinfo) working! I
5003 * Got the object introspection system (magic_oinfo) working! I
4999 think this is pretty much ready for release to Janko, so he can
5004 think this is pretty much ready for release to Janko, so he can
5000 test it for a while and then announce it. Pretty much 100% of what
5005 test it for a while and then announce it. Pretty much 100% of what
5001 I wanted for the 'phase 1' release is ready. Happy, tired.
5006 I wanted for the 'phase 1' release is ready. Happy, tired.
5002
5007
5003 2001-11-12 Fernando Perez <fperez@colorado.edu>
5008 2001-11-12 Fernando Perez <fperez@colorado.edu>
5004
5009
5005 * Version 0.1.6 released, 0.1.7 opened for further work.
5010 * Version 0.1.6 released, 0.1.7 opened for further work.
5006
5011
5007 * Fixed bug in printing: it used to test for truth before
5012 * Fixed bug in printing: it used to test for truth before
5008 printing, so 0 wouldn't print. Now checks for None.
5013 printing, so 0 wouldn't print. Now checks for None.
5009
5014
5010 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5015 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5011 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5016 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5012 reaches by hand into the outputcache. Think of a better way to do
5017 reaches by hand into the outputcache. Think of a better way to do
5013 this later.
5018 this later.
5014
5019
5015 * Various small fixes thanks to Nathan's comments.
5020 * Various small fixes thanks to Nathan's comments.
5016
5021
5017 * Changed magic_pprint to magic_Pprint. This way it doesn't
5022 * Changed magic_pprint to magic_Pprint. This way it doesn't
5018 collide with pprint() and the name is consistent with the command
5023 collide with pprint() and the name is consistent with the command
5019 line option.
5024 line option.
5020
5025
5021 * Changed prompt counter behavior to be fully like
5026 * Changed prompt counter behavior to be fully like
5022 Mathematica's. That is, even input that doesn't return a result
5027 Mathematica's. That is, even input that doesn't return a result
5023 raises the prompt counter. The old behavior was kind of confusing
5028 raises the prompt counter. The old behavior was kind of confusing
5024 (getting the same prompt number several times if the operation
5029 (getting the same prompt number several times if the operation
5025 didn't return a result).
5030 didn't return a result).
5026
5031
5027 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5032 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5028
5033
5029 * Fixed -Classic mode (wasn't working anymore).
5034 * Fixed -Classic mode (wasn't working anymore).
5030
5035
5031 * Added colored prompts using Nathan's new code. Colors are
5036 * Added colored prompts using Nathan's new code. Colors are
5032 currently hardwired, they can be user-configurable. For
5037 currently hardwired, they can be user-configurable. For
5033 developers, they can be chosen in file ipythonlib.py, at the
5038 developers, they can be chosen in file ipythonlib.py, at the
5034 beginning of the CachedOutput class def.
5039 beginning of the CachedOutput class def.
5035
5040
5036 2001-11-11 Fernando Perez <fperez@colorado.edu>
5041 2001-11-11 Fernando Perez <fperez@colorado.edu>
5037
5042
5038 * Version 0.1.5 released, 0.1.6 opened for further work.
5043 * Version 0.1.5 released, 0.1.6 opened for further work.
5039
5044
5040 * Changed magic_env to *return* the environment as a dict (not to
5045 * Changed magic_env to *return* the environment as a dict (not to
5041 print it). This way it prints, but it can also be processed.
5046 print it). This way it prints, but it can also be processed.
5042
5047
5043 * Added Verbose exception reporting to interactive
5048 * Added Verbose exception reporting to interactive
5044 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5049 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5045 traceback. Had to make some changes to the ultraTB file. This is
5050 traceback. Had to make some changes to the ultraTB file. This is
5046 probably the last 'big' thing in my mental todo list. This ties
5051 probably the last 'big' thing in my mental todo list. This ties
5047 in with the next entry:
5052 in with the next entry:
5048
5053
5049 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5054 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5050 has to specify is Plain, Color or Verbose for all exception
5055 has to specify is Plain, Color or Verbose for all exception
5051 handling.
5056 handling.
5052
5057
5053 * Removed ShellServices option. All this can really be done via
5058 * Removed ShellServices option. All this can really be done via
5054 the magic system. It's easier to extend, cleaner and has automatic
5059 the magic system. It's easier to extend, cleaner and has automatic
5055 namespace protection and documentation.
5060 namespace protection and documentation.
5056
5061
5057 2001-11-09 Fernando Perez <fperez@colorado.edu>
5062 2001-11-09 Fernando Perez <fperez@colorado.edu>
5058
5063
5059 * Fixed bug in output cache flushing (missing parameter to
5064 * Fixed bug in output cache flushing (missing parameter to
5060 __init__). Other small bugs fixed (found using pychecker).
5065 __init__). Other small bugs fixed (found using pychecker).
5061
5066
5062 * Version 0.1.4 opened for bugfixing.
5067 * Version 0.1.4 opened for bugfixing.
5063
5068
5064 2001-11-07 Fernando Perez <fperez@colorado.edu>
5069 2001-11-07 Fernando Perez <fperez@colorado.edu>
5065
5070
5066 * Version 0.1.3 released, mainly because of the raw_input bug.
5071 * Version 0.1.3 released, mainly because of the raw_input bug.
5067
5072
5068 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5073 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5069 and when testing for whether things were callable, a call could
5074 and when testing for whether things were callable, a call could
5070 actually be made to certain functions. They would get called again
5075 actually be made to certain functions. They would get called again
5071 once 'really' executed, with a resulting double call. A disaster
5076 once 'really' executed, with a resulting double call. A disaster
5072 in many cases (list.reverse() would never work!).
5077 in many cases (list.reverse() would never work!).
5073
5078
5074 * Removed prefilter() function, moved its code to raw_input (which
5079 * Removed prefilter() function, moved its code to raw_input (which
5075 after all was just a near-empty caller for prefilter). This saves
5080 after all was just a near-empty caller for prefilter). This saves
5076 a function call on every prompt, and simplifies the class a tiny bit.
5081 a function call on every prompt, and simplifies the class a tiny bit.
5077
5082
5078 * Fix _ip to __ip name in magic example file.
5083 * Fix _ip to __ip name in magic example file.
5079
5084
5080 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5085 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5081 work with non-gnu versions of tar.
5086 work with non-gnu versions of tar.
5082
5087
5083 2001-11-06 Fernando Perez <fperez@colorado.edu>
5088 2001-11-06 Fernando Perez <fperez@colorado.edu>
5084
5089
5085 * Version 0.1.2. Just to keep track of the recent changes.
5090 * Version 0.1.2. Just to keep track of the recent changes.
5086
5091
5087 * Fixed nasty bug in output prompt routine. It used to check 'if
5092 * Fixed nasty bug in output prompt routine. It used to check 'if
5088 arg != None...'. Problem is, this fails if arg implements a
5093 arg != None...'. Problem is, this fails if arg implements a
5089 special comparison (__cmp__) which disallows comparing to
5094 special comparison (__cmp__) which disallows comparing to
5090 None. Found it when trying to use the PhysicalQuantity module from
5095 None. Found it when trying to use the PhysicalQuantity module from
5091 ScientificPython.
5096 ScientificPython.
5092
5097
5093 2001-11-05 Fernando Perez <fperez@colorado.edu>
5098 2001-11-05 Fernando Perez <fperez@colorado.edu>
5094
5099
5095 * Also added dirs. Now the pushd/popd/dirs family functions
5100 * Also added dirs. Now the pushd/popd/dirs family functions
5096 basically like the shell, with the added convenience of going home
5101 basically like the shell, with the added convenience of going home
5097 when called with no args.
5102 when called with no args.
5098
5103
5099 * pushd/popd slightly modified to mimic shell behavior more
5104 * pushd/popd slightly modified to mimic shell behavior more
5100 closely.
5105 closely.
5101
5106
5102 * Added env,pushd,popd from ShellServices as magic functions. I
5107 * Added env,pushd,popd from ShellServices as magic functions. I
5103 think the cleanest will be to port all desired functions from
5108 think the cleanest will be to port all desired functions from
5104 ShellServices as magics and remove ShellServices altogether. This
5109 ShellServices as magics and remove ShellServices altogether. This
5105 will provide a single, clean way of adding functionality
5110 will provide a single, clean way of adding functionality
5106 (shell-type or otherwise) to IP.
5111 (shell-type or otherwise) to IP.
5107
5112
5108 2001-11-04 Fernando Perez <fperez@colorado.edu>
5113 2001-11-04 Fernando Perez <fperez@colorado.edu>
5109
5114
5110 * Added .ipython/ directory to sys.path. This way users can keep
5115 * Added .ipython/ directory to sys.path. This way users can keep
5111 customizations there and access them via import.
5116 customizations there and access them via import.
5112
5117
5113 2001-11-03 Fernando Perez <fperez@colorado.edu>
5118 2001-11-03 Fernando Perez <fperez@colorado.edu>
5114
5119
5115 * Opened version 0.1.1 for new changes.
5120 * Opened version 0.1.1 for new changes.
5116
5121
5117 * Changed version number to 0.1.0: first 'public' release, sent to
5122 * Changed version number to 0.1.0: first 'public' release, sent to
5118 Nathan and Janko.
5123 Nathan and Janko.
5119
5124
5120 * Lots of small fixes and tweaks.
5125 * Lots of small fixes and tweaks.
5121
5126
5122 * Minor changes to whos format. Now strings are shown, snipped if
5127 * Minor changes to whos format. Now strings are shown, snipped if
5123 too long.
5128 too long.
5124
5129
5125 * Changed ShellServices to work on __main__ so they show up in @who
5130 * Changed ShellServices to work on __main__ so they show up in @who
5126
5131
5127 * Help also works with ? at the end of a line:
5132 * Help also works with ? at the end of a line:
5128 ?sin and sin?
5133 ?sin and sin?
5129 both produce the same effect. This is nice, as often I use the
5134 both produce the same effect. This is nice, as often I use the
5130 tab-complete to find the name of a method, but I used to then have
5135 tab-complete to find the name of a method, but I used to then have
5131 to go to the beginning of the line to put a ? if I wanted more
5136 to go to the beginning of the line to put a ? if I wanted more
5132 info. Now I can just add the ? and hit return. Convenient.
5137 info. Now I can just add the ? and hit return. Convenient.
5133
5138
5134 2001-11-02 Fernando Perez <fperez@colorado.edu>
5139 2001-11-02 Fernando Perez <fperez@colorado.edu>
5135
5140
5136 * Python version check (>=2.1) added.
5141 * Python version check (>=2.1) added.
5137
5142
5138 * Added LazyPython documentation. At this point the docs are quite
5143 * Added LazyPython documentation. At this point the docs are quite
5139 a mess. A cleanup is in order.
5144 a mess. A cleanup is in order.
5140
5145
5141 * Auto-installer created. For some bizarre reason, the zipfiles
5146 * Auto-installer created. For some bizarre reason, the zipfiles
5142 module isn't working on my system. So I made a tar version
5147 module isn't working on my system. So I made a tar version
5143 (hopefully the command line options in various systems won't kill
5148 (hopefully the command line options in various systems won't kill
5144 me).
5149 me).
5145
5150
5146 * Fixes to Struct in genutils. Now all dictionary-like methods are
5151 * Fixes to Struct in genutils. Now all dictionary-like methods are
5147 protected (reasonably).
5152 protected (reasonably).
5148
5153
5149 * Added pager function to genutils and changed ? to print usage
5154 * Added pager function to genutils and changed ? to print usage
5150 note through it (it was too long).
5155 note through it (it was too long).
5151
5156
5152 * Added the LazyPython functionality. Works great! I changed the
5157 * Added the LazyPython functionality. Works great! I changed the
5153 auto-quote escape to ';', it's on home row and next to '. But
5158 auto-quote escape to ';', it's on home row and next to '. But
5154 both auto-quote and auto-paren (still /) escapes are command-line
5159 both auto-quote and auto-paren (still /) escapes are command-line
5155 parameters.
5160 parameters.
5156
5161
5157
5162
5158 2001-11-01 Fernando Perez <fperez@colorado.edu>
5163 2001-11-01 Fernando Perez <fperez@colorado.edu>
5159
5164
5160 * Version changed to 0.0.7. Fairly large change: configuration now
5165 * Version changed to 0.0.7. Fairly large change: configuration now
5161 is all stored in a directory, by default .ipython. There, all
5166 is all stored in a directory, by default .ipython. There, all
5162 config files have normal looking names (not .names)
5167 config files have normal looking names (not .names)
5163
5168
5164 * Version 0.0.6 Released first to Lucas and Archie as a test
5169 * Version 0.0.6 Released first to Lucas and Archie as a test
5165 run. Since it's the first 'semi-public' release, change version to
5170 run. Since it's the first 'semi-public' release, change version to
5166 > 0.0.6 for any changes now.
5171 > 0.0.6 for any changes now.
5167
5172
5168 * Stuff I had put in the ipplib.py changelog:
5173 * Stuff I had put in the ipplib.py changelog:
5169
5174
5170 Changes to InteractiveShell:
5175 Changes to InteractiveShell:
5171
5176
5172 - Made the usage message a parameter.
5177 - Made the usage message a parameter.
5173
5178
5174 - Require the name of the shell variable to be given. It's a bit
5179 - Require the name of the shell variable to be given. It's a bit
5175 of a hack, but allows the name 'shell' not to be hardwire in the
5180 of a hack, but allows the name 'shell' not to be hardwire in the
5176 magic (@) handler, which is problematic b/c it requires
5181 magic (@) handler, which is problematic b/c it requires
5177 polluting the global namespace with 'shell'. This in turn is
5182 polluting the global namespace with 'shell'. This in turn is
5178 fragile: if a user redefines a variable called shell, things
5183 fragile: if a user redefines a variable called shell, things
5179 break.
5184 break.
5180
5185
5181 - magic @: all functions available through @ need to be defined
5186 - magic @: all functions available through @ need to be defined
5182 as magic_<name>, even though they can be called simply as
5187 as magic_<name>, even though they can be called simply as
5183 @<name>. This allows the special command @magic to gather
5188 @<name>. This allows the special command @magic to gather
5184 information automatically about all existing magic functions,
5189 information automatically about all existing magic functions,
5185 even if they are run-time user extensions, by parsing the shell
5190 even if they are run-time user extensions, by parsing the shell
5186 instance __dict__ looking for special magic_ names.
5191 instance __dict__ looking for special magic_ names.
5187
5192
5188 - mainloop: added *two* local namespace parameters. This allows
5193 - mainloop: added *two* local namespace parameters. This allows
5189 the class to differentiate between parameters which were there
5194 the class to differentiate between parameters which were there
5190 before and after command line initialization was processed. This
5195 before and after command line initialization was processed. This
5191 way, later @who can show things loaded at startup by the
5196 way, later @who can show things loaded at startup by the
5192 user. This trick was necessary to make session saving/reloading
5197 user. This trick was necessary to make session saving/reloading
5193 really work: ideally after saving/exiting/reloading a session,
5198 really work: ideally after saving/exiting/reloading a session,
5194 *everythin* should look the same, including the output of @who. I
5199 *everythin* should look the same, including the output of @who. I
5195 was only able to make this work with this double namespace
5200 was only able to make this work with this double namespace
5196 trick.
5201 trick.
5197
5202
5198 - added a header to the logfile which allows (almost) full
5203 - added a header to the logfile which allows (almost) full
5199 session restoring.
5204 session restoring.
5200
5205
5201 - prepend lines beginning with @ or !, with a and log
5206 - prepend lines beginning with @ or !, with a and log
5202 them. Why? !lines: may be useful to know what you did @lines:
5207 them. Why? !lines: may be useful to know what you did @lines:
5203 they may affect session state. So when restoring a session, at
5208 they may affect session state. So when restoring a session, at
5204 least inform the user of their presence. I couldn't quite get
5209 least inform the user of their presence. I couldn't quite get
5205 them to properly re-execute, but at least the user is warned.
5210 them to properly re-execute, but at least the user is warned.
5206
5211
5207 * Started ChangeLog.
5212 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now