##// END OF EJS Templates
%env completer
vivainio -
Show More
@@ -1,89 +1,90 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2 """ %env magic command for storing environment variables persistently
2 """ %env magic command for storing environment variables persistently
3 """
3 """
4
4
5 import IPython.ipapi
5 import IPython.ipapi
6 ip = IPython.ipapi.get()
6 ip = IPython.ipapi.get()
7
7
8 import os,sys
8 import os,sys
9
9
10 def restore_env(self):
10 def restore_env(self):
11 ip = self.getapi()
11 ip = self.getapi()
12 env = ip.db.get('stored_env', {'set' : {}, 'add' : [], 'pre' : []})
12 env = ip.db.get('stored_env', {'set' : {}, 'add' : [], 'pre' : []})
13 for k,v in env['set'].items():
13 for k,v in env['set'].items():
14 os.environ[k] = v
14 os.environ[k] = v
15 for k,v in env['add']:
15 for k,v in env['add']:
16 os.environ[k] = os.environ.get(k,"") + v
16 os.environ[k] = os.environ.get(k,"") + v
17 for k,v in env['pre']:
17 for k,v in env['pre']:
18 os.environ[k] = v + os.environ.get(k,"")
18 os.environ[k] = v + os.environ.get(k,"")
19
19
20
20
21 ip.set_hook('late_startup_hook', restore_env)
21 ip.set_hook('late_startup_hook', restore_env)
22
22
23 def persist_env(self, parameter_s=''):
23 def persist_env(self, parameter_s=''):
24 """ Store environment variables persistently
24 """ Store environment variables persistently
25
25
26 IPython remembers the values across sessions, which is handy to avoid
26 IPython remembers the values across sessions, which is handy to avoid
27 editing startup files.
27 editing startup files.
28
28
29 %env - Show all environment variables
29 %env - Show all environment variables
30 %env VISUAL=jed - set VISUAL to jed
30 %env VISUAL=jed - set VISUAL to jed
31 %env PATH+=;/foo - append ;foo to PATH
31 %env PATH+=;/foo - append ;foo to PATH
32 %env PATH+=;/bar - also append ;bar to PATH
32 %env PATH+=;/bar - also append ;bar to PATH
33 %env PATH-=/wbin; - prepend /wbin; to PATH
33 %env PATH-=/wbin; - prepend /wbin; to PATH
34 %env -d VISUAL - forget VISUAL persistent val
34 %env -d VISUAL - forget VISUAL persistent val
35 %env -p - print all persistent env modifications
35 %env -p - print all persistent env modifications
36 """
36 """
37
37
38
39
40 if not parameter_s.strip():
38 if not parameter_s.strip():
41 return os.environ.data
39 return os.environ.data
42
40
43 ip = self.getapi()
41 ip = self.getapi()
44 db = ip.db
42 db = ip.db
45 env = ip.db.get('stored_env', {'set' : {}, 'add' : [], 'pre' : []})
43 env = ip.db.get('stored_env', {'set' : {}, 'add' : [], 'pre' : []})
46
44
47 if parameter_s.startswith('-p'):
45 if parameter_s.startswith('-p'):
48 return env
46 return env
49
47
50 elif parameter_s.startswith('-d'):
48 elif parameter_s.startswith('-d'):
51 parts = (parameter_s.split()[1], '<del>')
49 parts = (parameter_s.split()[1], '<del>')
52
50
53 else:
51 else:
54 parts = parameter_s.strip().split('=')
52 parts = parameter_s.strip().split('=')
55
53
56 if len(parts) == 2:
54 if len(parts) == 2:
57 k,v = [p.strip() for p in parts]
55 k,v = [p.strip() for p in parts]
58
56
59 if v == '<del>':
57 if v == '<del>':
60 if k in env['set']:
58 if k in env['set']:
61 del env['set'][k]
59 del env['set'][k]
62 env['add'] = [el for el in env['add'] if el[0] != k]
60 env['add'] = [el for el in env['add'] if el[0] != k]
63 env['pre'] = [el for el in env['pre'] if el[0] != k]
61 env['pre'] = [el for el in env['pre'] if el[0] != k]
64
62
65 print "Forgot '%s' (for next session)" % k
63 print "Forgot '%s' (for next session)" % k
66
64
67 elif k.endswith('+'):
65 elif k.endswith('+'):
68 k = k[:-1]
66 k = k[:-1]
69 env['add'].append((k,v))
67 env['add'].append((k,v))
70 os.environ[k] += v
68 os.environ[k] += v
71 print k,"after append =",os.environ[k]
69 print k,"after append =",os.environ[k]
72 elif k.endswith('-'):
70 elif k.endswith('-'):
73 k = k[:-1]
71 k = k[:-1]
74 env['pre'].append((k,v))
72 env['pre'].append((k,v))
75 os.environ[k] = v + os.environ.get(k,"")
73 os.environ[k] = v + os.environ.get(k,"")
76 print k,"after prepend =",os.environ[k]
74 print k,"after prepend =",os.environ[k]
77
75
78
76
79 else:
77 else:
80 env['set'][k] = v
78 env['set'][k] = v
81 print "Setting",k,"to",v
79 print "Setting",k,"to",v
82 os.environ[k] = v
80 os.environ[k] = v
83
81
84 db['stored_env'] = env
82 db['stored_env'] = env
85
83
86
84 def env_completer(self,event):
87
85 """ Custom completer that lists all env vars """
86 return os.environ.keys()
88
87
89 ip.expose_magic('env', persist_env)
88 ip.expose_magic('env', persist_env)
89 ip.set_hook('complete_command',env_completer, str_key = '%env')
90
@@ -1,7041 +1,7043 b''
1 2007-08-22 Ville Vainio <vivainio@gmail.com>
1 2007-08-22 Ville Vainio <vivainio@gmail.com>
2
2
3 * iplib.py: no extra empty (last) line in raw hist w/ multiline
3 * iplib.py: no extra empty (last) line in raw hist w/ multiline
4 statements
4 statements
5
5
6 * logger.py: Fix bug where blank lines in history were not
6 * logger.py: Fix bug where blank lines in history were not
7 added until AFTER adding the current line; translated and raw
7 added until AFTER adding the current line; translated and raw
8 history should finally be in sync with prompt now.
8 history should finally be in sync with prompt now.
9
9
10 * ipy_completers.py: quick_completer now makes it easy to create
10 * ipy_completers.py: quick_completer now makes it easy to create
11 trivial custom completers
11 trivial custom completers
12
12
13 * clearcmd.py: shadow history compression & erasing
13 * clearcmd.py: shadow history compression & erasing
14
14
15 * envpersist.py, history.py: %env (sh profile only), %hist completers
16
15 2007-08-21 Ville Vainio <vivainio@gmail.com>
17 2007-08-21 Ville Vainio <vivainio@gmail.com>
16
18
17 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
19 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
18 (for backwards compatibility)
20 (for backwards compatibility)
19
21
20 * history.py: switch back to %hist -t from %hist -r as default.
22 * history.py: switch back to %hist -t from %hist -r as default.
21 At least until raw history is fixed for good.
23 At least until raw history is fixed for good.
22
24
23 2007-08-20 Ville Vainio <vivainio@gmail.com>
25 2007-08-20 Ville Vainio <vivainio@gmail.com>
24
26
25 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
27 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
26 locate alias redeclarations etc. Also, avoid handling
28 locate alias redeclarations etc. Also, avoid handling
27 _ip.IP.alias_table directly, prefer using _ip.defalias.
29 _ip.IP.alias_table directly, prefer using _ip.defalias.
28
30
29
31
30 2007-08-15 Ville Vainio <vivainio@gmail.com>
32 2007-08-15 Ville Vainio <vivainio@gmail.com>
31
33
32 * prefilter.py: ! is now always served first
34 * prefilter.py: ! is now always served first
33
35
34 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
36 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
35
37
36 * IPython/iplib.py (safe_execfile): fix the SystemExit
38 * IPython/iplib.py (safe_execfile): fix the SystemExit
37 auto-suppression code to work in Python2.4 (the internal structure
39 auto-suppression code to work in Python2.4 (the internal structure
38 of that exception changed and I'd only tested the code with 2.5).
40 of that exception changed and I'd only tested the code with 2.5).
39 Bug reported by a SciPy attendee.
41 Bug reported by a SciPy attendee.
40
42
41 2007-08-13 Ville Vainio <vivainio@gmail.com>
43 2007-08-13 Ville Vainio <vivainio@gmail.com>
42
44
43 * prefilter.py: reverted !c:/bin/foo fix, made % in
45 * prefilter.py: reverted !c:/bin/foo fix, made % in
44 multiline specials work again
46 multiline specials work again
45
47
46 2007-08-13 Ville Vainio <vivainio@gmail.com>
48 2007-08-13 Ville Vainio <vivainio@gmail.com>
47
49
48 * prefilter.py: Take more care to special-case !, so that
50 * prefilter.py: Take more care to special-case !, so that
49 !c:/bin/foo.exe works.
51 !c:/bin/foo.exe works.
50
52
51 * setup.py: if we are building eggs, strip all docs and
53 * setup.py: if we are building eggs, strip all docs and
52 examples (it doesn't make sense to bytecompile examples,
54 examples (it doesn't make sense to bytecompile examples,
53 and docs would be in an awkward place anyway).
55 and docs would be in an awkward place anyway).
54
56
55 * Ryan Krauss' patch fixes start menu shortcuts when IPython
57 * Ryan Krauss' patch fixes start menu shortcuts when IPython
56 is installed into a directory that has spaces in the name.
58 is installed into a directory that has spaces in the name.
57
59
58 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
60 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
59
61
60 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
62 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
61 doctest profile and %doctest_mode, so they actually generate the
63 doctest profile and %doctest_mode, so they actually generate the
62 blank lines needed by doctest to separate individual tests.
64 blank lines needed by doctest to separate individual tests.
63
65
64 * IPython/iplib.py (safe_execfile): modify so that running code
66 * IPython/iplib.py (safe_execfile): modify so that running code
65 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
67 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
66 doesn't get a printed traceback. Any other value in sys.exit(),
68 doesn't get a printed traceback. Any other value in sys.exit(),
67 including the empty call, still generates a traceback. This
69 including the empty call, still generates a traceback. This
68 enables use of %run without having to pass '-e' for codes that
70 enables use of %run without having to pass '-e' for codes that
69 correctly set the exit status flag.
71 correctly set the exit status flag.
70
72
71 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
73 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
72
74
73 * IPython/iplib.py (InteractiveShell.post_config_initialization):
75 * IPython/iplib.py (InteractiveShell.post_config_initialization):
74 fix problems with doctests failing when run inside IPython due to
76 fix problems with doctests failing when run inside IPython due to
75 IPython's modifications of sys.displayhook.
77 IPython's modifications of sys.displayhook.
76
78
77 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
79 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
78
80
79 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
81 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
80 a string with names.
82 a string with names.
81
83
82 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
84 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
83
85
84 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
86 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
85 magic to toggle on/off the doctest pasting support without having
87 magic to toggle on/off the doctest pasting support without having
86 to leave a session to switch to a separate profile.
88 to leave a session to switch to a separate profile.
87
89
88 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
90 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
89
91
90 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
92 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
91 introduce a blank line between inputs, to conform to doctest
93 introduce a blank line between inputs, to conform to doctest
92 requirements.
94 requirements.
93
95
94 * IPython/OInspect.py (Inspector.pinfo): fix another part where
96 * IPython/OInspect.py (Inspector.pinfo): fix another part where
95 auto-generated docstrings for new-style classes were showing up.
97 auto-generated docstrings for new-style classes were showing up.
96
98
97 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
99 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
98
100
99 * api_changes: Add new file to track backward-incompatible
101 * api_changes: Add new file to track backward-incompatible
100 user-visible changes.
102 user-visible changes.
101
103
102 2007-08-06 Ville Vainio <vivainio@gmail.com>
104 2007-08-06 Ville Vainio <vivainio@gmail.com>
103
105
104 * ipmaker.py: fix bug where user_config_ns didn't exist at all
106 * ipmaker.py: fix bug where user_config_ns didn't exist at all
105 before all the config files were handled.
107 before all the config files were handled.
106
108
107 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
109 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
108
110
109 * IPython/irunner.py (RunnerFactory): Add new factory class for
111 * IPython/irunner.py (RunnerFactory): Add new factory class for
110 creating reusable runners based on filenames.
112 creating reusable runners based on filenames.
111
113
112 * IPython/Extensions/ipy_profile_doctest.py: New profile for
114 * IPython/Extensions/ipy_profile_doctest.py: New profile for
113 doctest support. It sets prompts/exceptions as similar to
115 doctest support. It sets prompts/exceptions as similar to
114 standard Python as possible, so that ipython sessions in this
116 standard Python as possible, so that ipython sessions in this
115 profile can be easily pasted as doctests with minimal
117 profile can be easily pasted as doctests with minimal
116 modifications. It also enables pasting of doctests from external
118 modifications. It also enables pasting of doctests from external
117 sources (even if they have leading whitespace), so that you can
119 sources (even if they have leading whitespace), so that you can
118 rerun doctests from existing sources.
120 rerun doctests from existing sources.
119
121
120 * IPython/iplib.py (_prefilter): fix a buglet where after entering
122 * IPython/iplib.py (_prefilter): fix a buglet where after entering
121 some whitespace, the prompt would become a continuation prompt
123 some whitespace, the prompt would become a continuation prompt
122 with no way of exiting it other than Ctrl-C. This fix brings us
124 with no way of exiting it other than Ctrl-C. This fix brings us
123 into conformity with how the default python prompt works.
125 into conformity with how the default python prompt works.
124
126
125 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
127 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
126 Add support for pasting not only lines that start with '>>>', but
128 Add support for pasting not only lines that start with '>>>', but
127 also with ' >>>'. That is, arbitrary whitespace can now precede
129 also with ' >>>'. That is, arbitrary whitespace can now precede
128 the prompts. This makes the system useful for pasting doctests
130 the prompts. This makes the system useful for pasting doctests
129 from docstrings back into a normal session.
131 from docstrings back into a normal session.
130
132
131 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
133 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
132
134
133 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
135 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
134 r1357, which had killed multiple invocations of an embedded
136 r1357, which had killed multiple invocations of an embedded
135 ipython (this means that example-embed has been broken for over 1
137 ipython (this means that example-embed has been broken for over 1
136 year!!!). Rather than possibly breaking the batch stuff for which
138 year!!!). Rather than possibly breaking the batch stuff for which
137 the code in iplib.py/interact was introduced, I worked around the
139 the code in iplib.py/interact was introduced, I worked around the
138 problem in the embedding class in Shell.py. We really need a
140 problem in the embedding class in Shell.py. We really need a
139 bloody test suite for this code, I'm sick of finding stuff that
141 bloody test suite for this code, I'm sick of finding stuff that
140 used to work breaking left and right every time I use an old
142 used to work breaking left and right every time I use an old
141 feature I hadn't touched in a few months.
143 feature I hadn't touched in a few months.
142 (kill_embedded): Add a new magic that only shows up in embedded
144 (kill_embedded): Add a new magic that only shows up in embedded
143 mode, to allow users to permanently deactivate an embedded instance.
145 mode, to allow users to permanently deactivate an embedded instance.
144
146
145 2007-08-01 Ville Vainio <vivainio@gmail.com>
147 2007-08-01 Ville Vainio <vivainio@gmail.com>
146
148
147 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
149 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
148 history gets out of sync on runlines (e.g. when running macros).
150 history gets out of sync on runlines (e.g. when running macros).
149
151
150 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
152 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
151
153
152 * IPython/Magic.py (magic_colors): fix win32-related error message
154 * IPython/Magic.py (magic_colors): fix win32-related error message
153 that could appear under *nix when readline was missing. Patch by
155 that could appear under *nix when readline was missing. Patch by
154 Scott Jackson, closes #175.
156 Scott Jackson, closes #175.
155
157
156 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
158 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
157
159
158 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
160 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
159 completer that it traits-aware, so that traits objects don't show
161 completer that it traits-aware, so that traits objects don't show
160 all of their internal attributes all the time.
162 all of their internal attributes all the time.
161
163
162 * IPython/genutils.py (dir2): moved this code from inside
164 * IPython/genutils.py (dir2): moved this code from inside
163 completer.py to expose it publicly, so I could use it in the
165 completer.py to expose it publicly, so I could use it in the
164 wildcards bugfix.
166 wildcards bugfix.
165
167
166 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
168 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
167 Stefan with Traits.
169 Stefan with Traits.
168
170
169 * IPython/completer.py (Completer.attr_matches): change internal
171 * IPython/completer.py (Completer.attr_matches): change internal
170 var name from 'object' to 'obj', since 'object' is now a builtin
172 var name from 'object' to 'obj', since 'object' is now a builtin
171 and this can lead to weird bugs if reusing this code elsewhere.
173 and this can lead to weird bugs if reusing this code elsewhere.
172
174
173 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
175 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
174
176
175 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
177 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
176 'foo?' and update the code to prevent printing of default
178 'foo?' and update the code to prevent printing of default
177 docstrings that started appearing after I added support for
179 docstrings that started appearing after I added support for
178 new-style classes. The approach I'm using isn't ideal (I just
180 new-style classes. The approach I'm using isn't ideal (I just
179 special-case those strings) but I'm not sure how to more robustly
181 special-case those strings) but I'm not sure how to more robustly
180 differentiate between truly user-written strings and Python's
182 differentiate between truly user-written strings and Python's
181 automatic ones.
183 automatic ones.
182
184
183 2007-07-09 Ville Vainio <vivainio@gmail.com>
185 2007-07-09 Ville Vainio <vivainio@gmail.com>
184
186
185 * completer.py: Applied Matthew Neeley's patch:
187 * completer.py: Applied Matthew Neeley's patch:
186 Dynamic attributes from trait_names and _getAttributeNames are added
188 Dynamic attributes from trait_names and _getAttributeNames are added
187 to the list of tab completions, but when this happens, the attribute
189 to the list of tab completions, but when this happens, the attribute
188 list is turned into a set, so the attributes are unordered when
190 list is turned into a set, so the attributes are unordered when
189 printed, which makes it hard to find the right completion. This patch
191 printed, which makes it hard to find the right completion. This patch
190 turns this set back into a list and sort it.
192 turns this set back into a list and sort it.
191
193
192 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
194 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
193
195
194 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
196 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
195 classes in various inspector functions.
197 classes in various inspector functions.
196
198
197 2007-06-28 Ville Vainio <vivainio@gmail.com>
199 2007-06-28 Ville Vainio <vivainio@gmail.com>
198
200
199 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
201 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
200 Implement "shadow" namespace, and callable aliases that reside there.
202 Implement "shadow" namespace, and callable aliases that reside there.
201 Use them by:
203 Use them by:
202
204
203 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
205 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
204
206
205 foo hello world
207 foo hello world
206 (gets translated to:)
208 (gets translated to:)
207 _sh.foo(r"""hello world""")
209 _sh.foo(r"""hello world""")
208
210
209 In practice, this kind of alias can take the role of a magic function
211 In practice, this kind of alias can take the role of a magic function
210
212
211 * New generic inspect_object, called on obj? and obj??
213 * New generic inspect_object, called on obj? and obj??
212
214
213 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
215 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
214
216
215 * IPython/ultraTB.py (findsource): fix a problem with
217 * IPython/ultraTB.py (findsource): fix a problem with
216 inspect.getfile that can cause crashes during traceback construction.
218 inspect.getfile that can cause crashes during traceback construction.
217
219
218 2007-06-14 Ville Vainio <vivainio@gmail.com>
220 2007-06-14 Ville Vainio <vivainio@gmail.com>
219
221
220 * iplib.py (handle_auto): Try to use ascii for printing "--->"
222 * iplib.py (handle_auto): Try to use ascii for printing "--->"
221 autocall rewrite indication, becausesometimes unicode fails to print
223 autocall rewrite indication, becausesometimes unicode fails to print
222 properly (and you get ' - - - '). Use plain uncoloured ---> for
224 properly (and you get ' - - - '). Use plain uncoloured ---> for
223 unicode.
225 unicode.
224
226
225 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
227 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
226
228
227 . pickleshare 'hash' commands (hget, hset, hcompress,
229 . pickleshare 'hash' commands (hget, hset, hcompress,
228 hdict) for efficient shadow history storage.
230 hdict) for efficient shadow history storage.
229
231
230 2007-06-13 Ville Vainio <vivainio@gmail.com>
232 2007-06-13 Ville Vainio <vivainio@gmail.com>
231
233
232 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
234 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
233 Added kw arg 'interactive', tell whether vars should be visible
235 Added kw arg 'interactive', tell whether vars should be visible
234 with %whos.
236 with %whos.
235
237
236 2007-06-11 Ville Vainio <vivainio@gmail.com>
238 2007-06-11 Ville Vainio <vivainio@gmail.com>
237
239
238 * pspersistence.py, Magic.py, iplib.py: directory history now saved
240 * pspersistence.py, Magic.py, iplib.py: directory history now saved
239 to db
241 to db
240
242
241 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
243 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
242 Also, it exits IPython immediately after evaluating the command (just like
244 Also, it exits IPython immediately after evaluating the command (just like
243 std python)
245 std python)
244
246
245 2007-06-05 Walter Doerwald <walter@livinglogic.de>
247 2007-06-05 Walter Doerwald <walter@livinglogic.de>
246
248
247 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
249 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
248 Python string and captures the output. (Idea and original patch by
250 Python string and captures the output. (Idea and original patch by
249 StοΏ½fan van der Walt)
251 StοΏ½fan van der Walt)
250
252
251 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
253 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
252
254
253 * IPython/ultraTB.py (VerboseTB.text): update printing of
255 * IPython/ultraTB.py (VerboseTB.text): update printing of
254 exception types for Python 2.5 (now all exceptions in the stdlib
256 exception types for Python 2.5 (now all exceptions in the stdlib
255 are new-style classes).
257 are new-style classes).
256
258
257 2007-05-31 Walter Doerwald <walter@livinglogic.de>
259 2007-05-31 Walter Doerwald <walter@livinglogic.de>
258
260
259 * IPython/Extensions/igrid.py: Add new commands refresh and
261 * IPython/Extensions/igrid.py: Add new commands refresh and
260 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
262 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
261 the iterator once (refresh) or after every x seconds (refresh_timer).
263 the iterator once (refresh) or after every x seconds (refresh_timer).
262 Add a working implementation of "searchexpression", where the text
264 Add a working implementation of "searchexpression", where the text
263 entered is not the text to search for, but an expression that must
265 entered is not the text to search for, but an expression that must
264 be true. Added display of shortcuts to the menu. Added commands "pickinput"
266 be true. Added display of shortcuts to the menu. Added commands "pickinput"
265 and "pickinputattr" that put the object or attribute under the cursor
267 and "pickinputattr" that put the object or attribute under the cursor
266 in the input line. Split the statusbar to be able to display the currently
268 in the input line. Split the statusbar to be able to display the currently
267 active refresh interval. (Patch by Nik Tautenhahn)
269 active refresh interval. (Patch by Nik Tautenhahn)
268
270
269 2007-05-29 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
271 2007-05-29 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
270
272
271 * fixing set_term_title to use ctypes as default
273 * fixing set_term_title to use ctypes as default
272
274
273 * fixing set_term_title fallback to work when curent dir
275 * fixing set_term_title fallback to work when curent dir
274 is on a windows network share
276 is on a windows network share
275
277
276 2007-05-28 Ville Vainio <vivainio@gmail.com>
278 2007-05-28 Ville Vainio <vivainio@gmail.com>
277
279
278 * %cpaste: strip + with > from left (diffs).
280 * %cpaste: strip + with > from left (diffs).
279
281
280 * iplib.py: Fix crash when readline not installed
282 * iplib.py: Fix crash when readline not installed
281
283
282 2007-05-26 Ville Vainio <vivainio@gmail.com>
284 2007-05-26 Ville Vainio <vivainio@gmail.com>
283
285
284 * generics.py: intruduce easy to extend result_display generic
286 * generics.py: intruduce easy to extend result_display generic
285 function (using simplegeneric.py).
287 function (using simplegeneric.py).
286
288
287 * Fixed the append functionality of %set.
289 * Fixed the append functionality of %set.
288
290
289 2007-05-25 Ville Vainio <vivainio@gmail.com>
291 2007-05-25 Ville Vainio <vivainio@gmail.com>
290
292
291 * New magic: %rep (fetch / run old commands from history)
293 * New magic: %rep (fetch / run old commands from history)
292
294
293 * New extension: mglob (%mglob magic), for powerful glob / find /filter
295 * New extension: mglob (%mglob magic), for powerful glob / find /filter
294 like functionality
296 like functionality
295
297
296 % maghistory.py: %hist -g PATTERM greps the history for pattern
298 % maghistory.py: %hist -g PATTERM greps the history for pattern
297
299
298 2007-05-24 Walter Doerwald <walter@livinglogic.de>
300 2007-05-24 Walter Doerwald <walter@livinglogic.de>
299
301
300 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
302 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
301 browse the IPython input history
303 browse the IPython input history
302
304
303 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
305 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
304 (mapped to "i") can be used to put the object under the curser in the input
306 (mapped to "i") can be used to put the object under the curser in the input
305 line. pickinputattr (mapped to "I") does the same for the attribute under
307 line. pickinputattr (mapped to "I") does the same for the attribute under
306 the cursor.
308 the cursor.
307
309
308 2007-05-24 Ville Vainio <vivainio@gmail.com>
310 2007-05-24 Ville Vainio <vivainio@gmail.com>
309
311
310 * Grand magic cleansing (changeset [2380]):
312 * Grand magic cleansing (changeset [2380]):
311
313
312 * Introduce ipy_legacy.py where the following magics were
314 * Introduce ipy_legacy.py where the following magics were
313 moved:
315 moved:
314
316
315 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
317 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
316
318
317 If you need them, either use default profile or "import ipy_legacy"
319 If you need them, either use default profile or "import ipy_legacy"
318 in your ipy_user_conf.py
320 in your ipy_user_conf.py
319
321
320 * Move sh and scipy profile to Extensions from UserConfig. this implies
322 * Move sh and scipy profile to Extensions from UserConfig. this implies
321 you should not edit them, but you don't need to run %upgrade when
323 you should not edit them, but you don't need to run %upgrade when
322 upgrading IPython anymore.
324 upgrading IPython anymore.
323
325
324 * %hist/%history now operates in "raw" mode by default. To get the old
326 * %hist/%history now operates in "raw" mode by default. To get the old
325 behaviour, run '%hist -n' (native mode).
327 behaviour, run '%hist -n' (native mode).
326
328
327 * split ipy_stock_completers.py to ipy_stock_completers.py and
329 * split ipy_stock_completers.py to ipy_stock_completers.py and
328 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
330 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
329 installed as default.
331 installed as default.
330
332
331 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
333 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
332 handling.
334 handling.
333
335
334 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
336 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
335 input if readline is available.
337 input if readline is available.
336
338
337 2007-05-23 Ville Vainio <vivainio@gmail.com>
339 2007-05-23 Ville Vainio <vivainio@gmail.com>
338
340
339 * macro.py: %store uses __getstate__ properly
341 * macro.py: %store uses __getstate__ properly
340
342
341 * exesetup.py: added new setup script for creating
343 * exesetup.py: added new setup script for creating
342 standalone IPython executables with py2exe (i.e.
344 standalone IPython executables with py2exe (i.e.
343 no python installation required).
345 no python installation required).
344
346
345 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
347 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
346 its place.
348 its place.
347
349
348 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
350 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
349
351
350 2007-05-21 Ville Vainio <vivainio@gmail.com>
352 2007-05-21 Ville Vainio <vivainio@gmail.com>
351
353
352 * platutil_win32.py (set_term_title): handle
354 * platutil_win32.py (set_term_title): handle
353 failure of 'title' system call properly.
355 failure of 'title' system call properly.
354
356
355 2007-05-17 Walter Doerwald <walter@livinglogic.de>
357 2007-05-17 Walter Doerwald <walter@livinglogic.de>
356
358
357 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
359 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
358 (Bug detected by Paul Mueller).
360 (Bug detected by Paul Mueller).
359
361
360 2007-05-16 Ville Vainio <vivainio@gmail.com>
362 2007-05-16 Ville Vainio <vivainio@gmail.com>
361
363
362 * ipy_profile_sci.py, ipython_win_post_install.py: Create
364 * ipy_profile_sci.py, ipython_win_post_install.py: Create
363 new "sci" profile, effectively a modern version of the old
365 new "sci" profile, effectively a modern version of the old
364 "scipy" profile (which is now slated for deprecation).
366 "scipy" profile (which is now slated for deprecation).
365
367
366 2007-05-15 Ville Vainio <vivainio@gmail.com>
368 2007-05-15 Ville Vainio <vivainio@gmail.com>
367
369
368 * pycolorize.py, pycolor.1: Paul Mueller's patches that
370 * pycolorize.py, pycolor.1: Paul Mueller's patches that
369 make pycolorize read input from stdin when run without arguments.
371 make pycolorize read input from stdin when run without arguments.
370
372
371 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
373 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
372
374
373 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
375 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
374 it in sh profile (instead of ipy_system_conf.py).
376 it in sh profile (instead of ipy_system_conf.py).
375
377
376 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
378 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
377 aliases are now lower case on windows (MyCommand.exe => mycommand).
379 aliases are now lower case on windows (MyCommand.exe => mycommand).
378
380
379 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
381 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
380 Macros are now callable objects that inherit from ipapi.IPyAutocall,
382 Macros are now callable objects that inherit from ipapi.IPyAutocall,
381 i.e. get autocalled regardless of system autocall setting.
383 i.e. get autocalled regardless of system autocall setting.
382
384
383 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
385 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
384
386
385 * IPython/rlineimpl.py: check for clear_history in readline and
387 * IPython/rlineimpl.py: check for clear_history in readline and
386 make it a dummy no-op if not available. This function isn't
388 make it a dummy no-op if not available. This function isn't
387 guaranteed to be in the API and appeared in Python 2.4, so we need
389 guaranteed to be in the API and appeared in Python 2.4, so we need
388 to check it ourselves. Also, clean up this file quite a bit.
390 to check it ourselves. Also, clean up this file quite a bit.
389
391
390 * ipython.1: update man page and full manual with information
392 * ipython.1: update man page and full manual with information
391 about threads (remove outdated warning). Closes #151.
393 about threads (remove outdated warning). Closes #151.
392
394
393 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
395 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
394
396
395 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
397 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
396 in trunk (note that this made it into the 0.8.1 release already,
398 in trunk (note that this made it into the 0.8.1 release already,
397 but the changelogs didn't get coordinated). Many thanks to Gael
399 but the changelogs didn't get coordinated). Many thanks to Gael
398 Varoquaux <gael.varoquaux-AT-normalesup.org>
400 Varoquaux <gael.varoquaux-AT-normalesup.org>
399
401
400 2007-05-09 *** Released version 0.8.1
402 2007-05-09 *** Released version 0.8.1
401
403
402 2007-05-10 Walter Doerwald <walter@livinglogic.de>
404 2007-05-10 Walter Doerwald <walter@livinglogic.de>
403
405
404 * IPython/Extensions/igrid.py: Incorporate html help into
406 * IPython/Extensions/igrid.py: Incorporate html help into
405 the module, so we don't have to search for the file.
407 the module, so we don't have to search for the file.
406
408
407 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
409 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
408
410
409 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
411 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
410
412
411 2007-04-30 Ville Vainio <vivainio@gmail.com>
413 2007-04-30 Ville Vainio <vivainio@gmail.com>
412
414
413 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
415 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
414 user has illegal (non-ascii) home directory name
416 user has illegal (non-ascii) home directory name
415
417
416 2007-04-27 Ville Vainio <vivainio@gmail.com>
418 2007-04-27 Ville Vainio <vivainio@gmail.com>
417
419
418 * platutils_win32.py: implement set_term_title for windows
420 * platutils_win32.py: implement set_term_title for windows
419
421
420 * Update version number
422 * Update version number
421
423
422 * ipy_profile_sh.py: more informative prompt (2 dir levels)
424 * ipy_profile_sh.py: more informative prompt (2 dir levels)
423
425
424 2007-04-26 Walter Doerwald <walter@livinglogic.de>
426 2007-04-26 Walter Doerwald <walter@livinglogic.de>
425
427
426 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
428 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
427 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
429 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
428 bug discovered by Ville).
430 bug discovered by Ville).
429
431
430 2007-04-26 Ville Vainio <vivainio@gmail.com>
432 2007-04-26 Ville Vainio <vivainio@gmail.com>
431
433
432 * Extensions/ipy_completers.py: Olivier's module completer now
434 * Extensions/ipy_completers.py: Olivier's module completer now
433 saves the list of root modules if it takes > 4 secs on the first run.
435 saves the list of root modules if it takes > 4 secs on the first run.
434
436
435 * Magic.py (%rehashx): %rehashx now clears the completer cache
437 * Magic.py (%rehashx): %rehashx now clears the completer cache
436
438
437
439
438 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
440 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
439
441
440 * ipython.el: fix incorrect color scheme, reported by Stefan.
442 * ipython.el: fix incorrect color scheme, reported by Stefan.
441 Closes #149.
443 Closes #149.
442
444
443 * IPython/PyColorize.py (Parser.format2): fix state-handling
445 * IPython/PyColorize.py (Parser.format2): fix state-handling
444 logic. I still don't like how that code handles state, but at
446 logic. I still don't like how that code handles state, but at
445 least now it should be correct, if inelegant. Closes #146.
447 least now it should be correct, if inelegant. Closes #146.
446
448
447 2007-04-25 Ville Vainio <vivainio@gmail.com>
449 2007-04-25 Ville Vainio <vivainio@gmail.com>
448
450
449 * Extensions/ipy_which.py: added extension for %which magic, works
451 * Extensions/ipy_which.py: added extension for %which magic, works
450 a lot like unix 'which' but also finds and expands aliases, and
452 a lot like unix 'which' but also finds and expands aliases, and
451 allows wildcards.
453 allows wildcards.
452
454
453 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
455 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
454 as opposed to returning nothing.
456 as opposed to returning nothing.
455
457
456 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
458 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
457 ipy_stock_completers on default profile, do import on sh profile.
459 ipy_stock_completers on default profile, do import on sh profile.
458
460
459 2007-04-22 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
461 2007-04-22 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
460
462
461 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
463 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
462 like ipython.py foo.py which raised a IndexError.
464 like ipython.py foo.py which raised a IndexError.
463
465
464 2007-04-21 Ville Vainio <vivainio@gmail.com>
466 2007-04-21 Ville Vainio <vivainio@gmail.com>
465
467
466 * Extensions/ipy_extutil.py: added extension to manage other ipython
468 * Extensions/ipy_extutil.py: added extension to manage other ipython
467 extensions. Now only supports 'ls' == list extensions.
469 extensions. Now only supports 'ls' == list extensions.
468
470
469 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
471 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
470
472
471 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
473 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
472 would prevent use of the exception system outside of a running
474 would prevent use of the exception system outside of a running
473 IPython instance.
475 IPython instance.
474
476
475 2007-04-20 Ville Vainio <vivainio@gmail.com>
477 2007-04-20 Ville Vainio <vivainio@gmail.com>
476
478
477 * Extensions/ipy_render.py: added extension for easy
479 * Extensions/ipy_render.py: added extension for easy
478 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
480 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
479 'Iptl' template notation,
481 'Iptl' template notation,
480
482
481 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
483 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
482 safer & faster 'import' completer.
484 safer & faster 'import' completer.
483
485
484 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
486 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
485 and _ip.defalias(name, command).
487 and _ip.defalias(name, command).
486
488
487 * Extensions/ipy_exportdb.py: New extension for exporting all the
489 * Extensions/ipy_exportdb.py: New extension for exporting all the
488 %store'd data in a portable format (normal ipapi calls like
490 %store'd data in a portable format (normal ipapi calls like
489 defmacro() etc.)
491 defmacro() etc.)
490
492
491 2007-04-19 Ville Vainio <vivainio@gmail.com>
493 2007-04-19 Ville Vainio <vivainio@gmail.com>
492
494
493 * upgrade_dir.py: skip junk files like *.pyc
495 * upgrade_dir.py: skip junk files like *.pyc
494
496
495 * Release.py: version number to 0.8.1
497 * Release.py: version number to 0.8.1
496
498
497 2007-04-18 Ville Vainio <vivainio@gmail.com>
499 2007-04-18 Ville Vainio <vivainio@gmail.com>
498
500
499 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
501 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
500 and later on win32.
502 and later on win32.
501
503
502 2007-04-16 Ville Vainio <vivainio@gmail.com>
504 2007-04-16 Ville Vainio <vivainio@gmail.com>
503
505
504 * iplib.py (showtraceback): Do not crash when running w/o readline.
506 * iplib.py (showtraceback): Do not crash when running w/o readline.
505
507
506 2007-04-12 Walter Doerwald <walter@livinglogic.de>
508 2007-04-12 Walter Doerwald <walter@livinglogic.de>
507
509
508 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
510 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
509 sorted (case sensitive with files and dirs mixed).
511 sorted (case sensitive with files and dirs mixed).
510
512
511 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
513 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
512
514
513 * IPython/Release.py (version): Open trunk for 0.8.1 development.
515 * IPython/Release.py (version): Open trunk for 0.8.1 development.
514
516
515 2007-04-10 *** Released version 0.8.0
517 2007-04-10 *** Released version 0.8.0
516
518
517 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
519 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
518
520
519 * Tag 0.8.0 for release.
521 * Tag 0.8.0 for release.
520
522
521 * IPython/iplib.py (reloadhist): add API function to cleanly
523 * IPython/iplib.py (reloadhist): add API function to cleanly
522 reload the readline history, which was growing inappropriately on
524 reload the readline history, which was growing inappropriately on
523 every %run call.
525 every %run call.
524
526
525 * win32_manual_post_install.py (run): apply last part of Nicolas
527 * win32_manual_post_install.py (run): apply last part of Nicolas
526 Pernetty's patch (I'd accidentally applied it in a different
528 Pernetty's patch (I'd accidentally applied it in a different
527 directory and this particular file didn't get patched).
529 directory and this particular file didn't get patched).
528
530
529 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
531 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
530
532
531 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
533 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
532 find the main thread id and use the proper API call. Thanks to
534 find the main thread id and use the proper API call. Thanks to
533 Stefan for the fix.
535 Stefan for the fix.
534
536
535 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
537 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
536 unit tests to reflect fixed ticket #52, and add more tests sent by
538 unit tests to reflect fixed ticket #52, and add more tests sent by
537 him.
539 him.
538
540
539 * IPython/iplib.py (raw_input): restore the readline completer
541 * IPython/iplib.py (raw_input): restore the readline completer
540 state on every input, in case third-party code messed it up.
542 state on every input, in case third-party code messed it up.
541 (_prefilter): revert recent addition of early-escape checks which
543 (_prefilter): revert recent addition of early-escape checks which
542 prevent many valid alias calls from working.
544 prevent many valid alias calls from working.
543
545
544 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
546 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
545 flag for sigint handler so we don't run a full signal() call on
547 flag for sigint handler so we don't run a full signal() call on
546 each runcode access.
548 each runcode access.
547
549
548 * IPython/Magic.py (magic_whos): small improvement to diagnostic
550 * IPython/Magic.py (magic_whos): small improvement to diagnostic
549 message.
551 message.
550
552
551 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
553 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
552
554
553 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
555 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
554 asynchronous exceptions working, i.e., Ctrl-C can actually
556 asynchronous exceptions working, i.e., Ctrl-C can actually
555 interrupt long-running code in the multithreaded shells.
557 interrupt long-running code in the multithreaded shells.
556
558
557 This is using Tomer Filiba's great ctypes-based trick:
559 This is using Tomer Filiba's great ctypes-based trick:
558 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
560 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
559 this in the past, but hadn't been able to make it work before. So
561 this in the past, but hadn't been able to make it work before. So
560 far it looks like it's actually running, but this needs more
562 far it looks like it's actually running, but this needs more
561 testing. If it really works, I'll be *very* happy, and we'll owe
563 testing. If it really works, I'll be *very* happy, and we'll owe
562 a huge thank you to Tomer. My current implementation is ugly,
564 a huge thank you to Tomer. My current implementation is ugly,
563 hackish and uses nasty globals, but I don't want to try and clean
565 hackish and uses nasty globals, but I don't want to try and clean
564 anything up until we know if it actually works.
566 anything up until we know if it actually works.
565
567
566 NOTE: this feature needs ctypes to work. ctypes is included in
568 NOTE: this feature needs ctypes to work. ctypes is included in
567 Python2.5, but 2.4 users will need to manually install it. This
569 Python2.5, but 2.4 users will need to manually install it. This
568 feature makes multi-threaded shells so much more usable that it's
570 feature makes multi-threaded shells so much more usable that it's
569 a minor price to pay (ctypes is very easy to install, already a
571 a minor price to pay (ctypes is very easy to install, already a
570 requirement for win32 and available in major linux distros).
572 requirement for win32 and available in major linux distros).
571
573
572 2007-04-04 Ville Vainio <vivainio@gmail.com>
574 2007-04-04 Ville Vainio <vivainio@gmail.com>
573
575
574 * Extensions/ipy_completers.py, ipy_stock_completers.py:
576 * Extensions/ipy_completers.py, ipy_stock_completers.py:
575 Moved implementations of 'bundled' completers to ipy_completers.py,
577 Moved implementations of 'bundled' completers to ipy_completers.py,
576 they are only enabled in ipy_stock_completers.py.
578 they are only enabled in ipy_stock_completers.py.
577
579
578 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
580 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
579
581
580 * IPython/PyColorize.py (Parser.format2): Fix identation of
582 * IPython/PyColorize.py (Parser.format2): Fix identation of
581 colorzied output and return early if color scheme is NoColor, to
583 colorzied output and return early if color scheme is NoColor, to
582 avoid unnecessary and expensive tokenization. Closes #131.
584 avoid unnecessary and expensive tokenization. Closes #131.
583
585
584 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
586 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
585
587
586 * IPython/Debugger.py: disable the use of pydb version 1.17. It
588 * IPython/Debugger.py: disable the use of pydb version 1.17. It
587 has a critical bug (a missing import that makes post-mortem not
589 has a critical bug (a missing import that makes post-mortem not
588 work at all). Unfortunately as of this time, this is the version
590 work at all). Unfortunately as of this time, this is the version
589 shipped with Ubuntu Edgy, so quite a few people have this one. I
591 shipped with Ubuntu Edgy, so quite a few people have this one. I
590 hope Edgy will update to a more recent package.
592 hope Edgy will update to a more recent package.
591
593
592 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
594 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
593
595
594 * IPython/iplib.py (_prefilter): close #52, second part of a patch
596 * IPython/iplib.py (_prefilter): close #52, second part of a patch
595 set by Stefan (only the first part had been applied before).
597 set by Stefan (only the first part had been applied before).
596
598
597 * IPython/Extensions/ipy_stock_completers.py (module_completer):
599 * IPython/Extensions/ipy_stock_completers.py (module_completer):
598 remove usage of the dangerous pkgutil.walk_packages(). See
600 remove usage of the dangerous pkgutil.walk_packages(). See
599 details in comments left in the code.
601 details in comments left in the code.
600
602
601 * IPython/Magic.py (magic_whos): add support for numpy arrays
603 * IPython/Magic.py (magic_whos): add support for numpy arrays
602 similar to what we had for Numeric.
604 similar to what we had for Numeric.
603
605
604 * IPython/completer.py (IPCompleter.complete): extend the
606 * IPython/completer.py (IPCompleter.complete): extend the
605 complete() call API to support completions by other mechanisms
607 complete() call API to support completions by other mechanisms
606 than readline. Closes #109.
608 than readline. Closes #109.
607
609
608 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
610 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
609 protect against a bug in Python's execfile(). Closes #123.
611 protect against a bug in Python's execfile(). Closes #123.
610
612
611 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
613 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
612
614
613 * IPython/iplib.py (split_user_input): ensure that when splitting
615 * IPython/iplib.py (split_user_input): ensure that when splitting
614 user input, the part that can be treated as a python name is pure
616 user input, the part that can be treated as a python name is pure
615 ascii (Python identifiers MUST be pure ascii). Part of the
617 ascii (Python identifiers MUST be pure ascii). Part of the
616 ongoing Unicode support work.
618 ongoing Unicode support work.
617
619
618 * IPython/Prompts.py (prompt_specials_color): Add \N for the
620 * IPython/Prompts.py (prompt_specials_color): Add \N for the
619 actual prompt number, without any coloring. This allows users to
621 actual prompt number, without any coloring. This allows users to
620 produce numbered prompts with their own colors. Added after a
622 produce numbered prompts with their own colors. Added after a
621 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
623 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
622
624
623 2007-03-31 Walter Doerwald <walter@livinglogic.de>
625 2007-03-31 Walter Doerwald <walter@livinglogic.de>
624
626
625 * IPython/Extensions/igrid.py: Map the return key
627 * IPython/Extensions/igrid.py: Map the return key
626 to enter() and shift-return to enterattr().
628 to enter() and shift-return to enterattr().
627
629
628 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
630 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
629
631
630 * IPython/Magic.py (magic_psearch): add unicode support by
632 * IPython/Magic.py (magic_psearch): add unicode support by
631 encoding to ascii the input, since this routine also only deals
633 encoding to ascii the input, since this routine also only deals
632 with valid Python names. Fixes a bug reported by Stefan.
634 with valid Python names. Fixes a bug reported by Stefan.
633
635
634 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
636 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
635
637
636 * IPython/Magic.py (_inspect): convert unicode input into ascii
638 * IPython/Magic.py (_inspect): convert unicode input into ascii
637 before trying to evaluate it as a Python identifier. This fixes a
639 before trying to evaluate it as a Python identifier. This fixes a
638 problem that the new unicode support had introduced when analyzing
640 problem that the new unicode support had introduced when analyzing
639 long definition lines for functions.
641 long definition lines for functions.
640
642
641 2007-03-24 Walter Doerwald <walter@livinglogic.de>
643 2007-03-24 Walter Doerwald <walter@livinglogic.de>
642
644
643 * IPython/Extensions/igrid.py: Fix picking. Using
645 * IPython/Extensions/igrid.py: Fix picking. Using
644 igrid with wxPython 2.6 and -wthread should work now.
646 igrid with wxPython 2.6 and -wthread should work now.
645 igrid.display() simply tries to create a frame without
647 igrid.display() simply tries to create a frame without
646 an application. Only if this fails an application is created.
648 an application. Only if this fails an application is created.
647
649
648 2007-03-23 Walter Doerwald <walter@livinglogic.de>
650 2007-03-23 Walter Doerwald <walter@livinglogic.de>
649
651
650 * IPython/Extensions/path.py: Updated to version 2.2.
652 * IPython/Extensions/path.py: Updated to version 2.2.
651
653
652 2007-03-23 Ville Vainio <vivainio@gmail.com>
654 2007-03-23 Ville Vainio <vivainio@gmail.com>
653
655
654 * iplib.py: recursive alias expansion now works better, so that
656 * iplib.py: recursive alias expansion now works better, so that
655 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
657 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
656 doesn't trip up the process, if 'd' has been aliased to 'ls'.
658 doesn't trip up the process, if 'd' has been aliased to 'ls'.
657
659
658 * Extensions/ipy_gnuglobal.py added, provides %global magic
660 * Extensions/ipy_gnuglobal.py added, provides %global magic
659 for users of http://www.gnu.org/software/global
661 for users of http://www.gnu.org/software/global
660
662
661 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
663 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
662 Closes #52. Patch by Stefan van der Walt.
664 Closes #52. Patch by Stefan van der Walt.
663
665
664 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
666 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
665
667
666 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
668 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
667 respect the __file__ attribute when using %run. Thanks to a bug
669 respect the __file__ attribute when using %run. Thanks to a bug
668 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
670 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
669
671
670 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
672 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
671
673
672 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
674 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
673 input. Patch sent by Stefan.
675 input. Patch sent by Stefan.
674
676
675 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
677 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
676 * IPython/Extensions/ipy_stock_completer.py
678 * IPython/Extensions/ipy_stock_completer.py
677 shlex_split, fix bug in shlex_split. len function
679 shlex_split, fix bug in shlex_split. len function
678 call was missing an if statement. Caused shlex_split to
680 call was missing an if statement. Caused shlex_split to
679 sometimes return "" as last element.
681 sometimes return "" as last element.
680
682
681 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
683 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
682
684
683 * IPython/completer.py
685 * IPython/completer.py
684 (IPCompleter.file_matches.single_dir_expand): fix a problem
686 (IPCompleter.file_matches.single_dir_expand): fix a problem
685 reported by Stefan, where directories containign a single subdir
687 reported by Stefan, where directories containign a single subdir
686 would be completed too early.
688 would be completed too early.
687
689
688 * IPython/Shell.py (_load_pylab): Make the execution of 'from
690 * IPython/Shell.py (_load_pylab): Make the execution of 'from
689 pylab import *' when -pylab is given be optional. A new flag,
691 pylab import *' when -pylab is given be optional. A new flag,
690 pylab_import_all controls this behavior, the default is True for
692 pylab_import_all controls this behavior, the default is True for
691 backwards compatibility.
693 backwards compatibility.
692
694
693 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
695 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
694 modified) R. Bernstein's patch for fully syntax highlighted
696 modified) R. Bernstein's patch for fully syntax highlighted
695 tracebacks. The functionality is also available under ultraTB for
697 tracebacks. The functionality is also available under ultraTB for
696 non-ipython users (someone using ultraTB but outside an ipython
698 non-ipython users (someone using ultraTB but outside an ipython
697 session). They can select the color scheme by setting the
699 session). They can select the color scheme by setting the
698 module-level global DEFAULT_SCHEME. The highlight functionality
700 module-level global DEFAULT_SCHEME. The highlight functionality
699 also works when debugging.
701 also works when debugging.
700
702
701 * IPython/genutils.py (IOStream.close): small patch by
703 * IPython/genutils.py (IOStream.close): small patch by
702 R. Bernstein for improved pydb support.
704 R. Bernstein for improved pydb support.
703
705
704 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
706 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
705 DaveS <davls@telus.net> to improve support of debugging under
707 DaveS <davls@telus.net> to improve support of debugging under
706 NTEmacs, including improved pydb behavior.
708 NTEmacs, including improved pydb behavior.
707
709
708 * IPython/Magic.py (magic_prun): Fix saving of profile info for
710 * IPython/Magic.py (magic_prun): Fix saving of profile info for
709 Python 2.5, where the stats object API changed a little. Thanks
711 Python 2.5, where the stats object API changed a little. Thanks
710 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
712 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
711
713
712 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
714 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
713 Pernetty's patch to improve support for (X)Emacs under Win32.
715 Pernetty's patch to improve support for (X)Emacs under Win32.
714
716
715 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
717 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
716
718
717 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
719 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
718 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
720 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
719 a report by Nik Tautenhahn.
721 a report by Nik Tautenhahn.
720
722
721 2007-03-16 Walter Doerwald <walter@livinglogic.de>
723 2007-03-16 Walter Doerwald <walter@livinglogic.de>
722
724
723 * setup.py: Add the igrid help files to the list of data files
725 * setup.py: Add the igrid help files to the list of data files
724 to be installed alongside igrid.
726 to be installed alongside igrid.
725 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
727 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
726 Show the input object of the igrid browser as the window tile.
728 Show the input object of the igrid browser as the window tile.
727 Show the object the cursor is on in the statusbar.
729 Show the object the cursor is on in the statusbar.
728
730
729 2007-03-15 Ville Vainio <vivainio@gmail.com>
731 2007-03-15 Ville Vainio <vivainio@gmail.com>
730
732
731 * Extensions/ipy_stock_completers.py: Fixed exception
733 * Extensions/ipy_stock_completers.py: Fixed exception
732 on mismatching quotes in %run completer. Patch by
734 on mismatching quotes in %run completer. Patch by
733 JοΏ½rgen Stenarson. Closes #127.
735 JοΏ½rgen Stenarson. Closes #127.
734
736
735 2007-03-14 Ville Vainio <vivainio@gmail.com>
737 2007-03-14 Ville Vainio <vivainio@gmail.com>
736
738
737 * Extensions/ext_rehashdir.py: Do not do auto_alias
739 * Extensions/ext_rehashdir.py: Do not do auto_alias
738 in %rehashdir, it clobbers %store'd aliases.
740 in %rehashdir, it clobbers %store'd aliases.
739
741
740 * UserConfig/ipy_profile_sh.py: envpersist.py extension
742 * UserConfig/ipy_profile_sh.py: envpersist.py extension
741 (beefed up %env) imported for sh profile.
743 (beefed up %env) imported for sh profile.
742
744
743 2007-03-10 Walter Doerwald <walter@livinglogic.de>
745 2007-03-10 Walter Doerwald <walter@livinglogic.de>
744
746
745 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
747 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
746 as the default browser.
748 as the default browser.
747 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
749 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
748 As igrid displays all attributes it ever encounters, fetch() (which has
750 As igrid displays all attributes it ever encounters, fetch() (which has
749 been renamed to _fetch()) doesn't have to recalculate the display attributes
751 been renamed to _fetch()) doesn't have to recalculate the display attributes
750 every time a new item is fetched. This should speed up scrolling.
752 every time a new item is fetched. This should speed up scrolling.
751
753
752 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
754 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
753
755
754 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
756 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
755 Schmolck's recently reported tab-completion bug (my previous one
757 Schmolck's recently reported tab-completion bug (my previous one
756 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
758 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
757
759
758 2007-03-09 Walter Doerwald <walter@livinglogic.de>
760 2007-03-09 Walter Doerwald <walter@livinglogic.de>
759
761
760 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
762 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
761 Close help window if exiting igrid.
763 Close help window if exiting igrid.
762
764
763 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
765 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
764
766
765 * IPython/Extensions/ipy_defaults.py: Check if readline is available
767 * IPython/Extensions/ipy_defaults.py: Check if readline is available
766 before calling functions from readline.
768 before calling functions from readline.
767
769
768 2007-03-02 Walter Doerwald <walter@livinglogic.de>
770 2007-03-02 Walter Doerwald <walter@livinglogic.de>
769
771
770 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
772 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
771 igrid is a wxPython-based display object for ipipe. If your system has
773 igrid is a wxPython-based display object for ipipe. If your system has
772 wx installed igrid will be the default display. Without wx ipipe falls
774 wx installed igrid will be the default display. Without wx ipipe falls
773 back to ibrowse (which needs curses). If no curses is installed ipipe
775 back to ibrowse (which needs curses). If no curses is installed ipipe
774 falls back to idump.
776 falls back to idump.
775
777
776 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
778 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
777
779
778 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
780 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
779 my changes from yesterday, they introduced bugs. Will reactivate
781 my changes from yesterday, they introduced bugs. Will reactivate
780 once I get a correct solution, which will be much easier thanks to
782 once I get a correct solution, which will be much easier thanks to
781 Dan Milstein's new prefilter test suite.
783 Dan Milstein's new prefilter test suite.
782
784
783 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
785 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
784
786
785 * IPython/iplib.py (split_user_input): fix input splitting so we
787 * IPython/iplib.py (split_user_input): fix input splitting so we
786 don't attempt attribute accesses on things that can't possibly be
788 don't attempt attribute accesses on things that can't possibly be
787 valid Python attributes. After a bug report by Alex Schmolck.
789 valid Python attributes. After a bug report by Alex Schmolck.
788 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
790 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
789 %magic with explicit % prefix.
791 %magic with explicit % prefix.
790
792
791 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
793 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
792
794
793 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
795 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
794 avoid a DeprecationWarning from GTK.
796 avoid a DeprecationWarning from GTK.
795
797
796 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
798 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
797
799
798 * IPython/genutils.py (clock): I modified clock() to return total
800 * IPython/genutils.py (clock): I modified clock() to return total
799 time, user+system. This is a more commonly needed metric. I also
801 time, user+system. This is a more commonly needed metric. I also
800 introduced the new clocku/clocks to get only user/system time if
802 introduced the new clocku/clocks to get only user/system time if
801 one wants those instead.
803 one wants those instead.
802
804
803 ***WARNING: API CHANGE*** clock() used to return only user time,
805 ***WARNING: API CHANGE*** clock() used to return only user time,
804 so if you want exactly the same results as before, use clocku
806 so if you want exactly the same results as before, use clocku
805 instead.
807 instead.
806
808
807 2007-02-22 Ville Vainio <vivainio@gmail.com>
809 2007-02-22 Ville Vainio <vivainio@gmail.com>
808
810
809 * IPython/Extensions/ipy_p4.py: Extension for improved
811 * IPython/Extensions/ipy_p4.py: Extension for improved
810 p4 (perforce version control system) experience.
812 p4 (perforce version control system) experience.
811 Adds %p4 magic with p4 command completion and
813 Adds %p4 magic with p4 command completion and
812 automatic -G argument (marshall output as python dict)
814 automatic -G argument (marshall output as python dict)
813
815
814 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
816 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
815
817
816 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
818 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
817 stop marks.
819 stop marks.
818 (ClearingMixin): a simple mixin to easily make a Demo class clear
820 (ClearingMixin): a simple mixin to easily make a Demo class clear
819 the screen in between blocks and have empty marquees. The
821 the screen in between blocks and have empty marquees. The
820 ClearDemo and ClearIPDemo classes that use it are included.
822 ClearDemo and ClearIPDemo classes that use it are included.
821
823
822 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
824 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
823
825
824 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
826 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
825 protect against exceptions at Python shutdown time. Patch
827 protect against exceptions at Python shutdown time. Patch
826 sumbmitted to upstream.
828 sumbmitted to upstream.
827
829
828 2007-02-14 Walter Doerwald <walter@livinglogic.de>
830 2007-02-14 Walter Doerwald <walter@livinglogic.de>
829
831
830 * IPython/Extensions/ibrowse.py: If entering the first object level
832 * IPython/Extensions/ibrowse.py: If entering the first object level
831 (i.e. the object for which the browser has been started) fails,
833 (i.e. the object for which the browser has been started) fails,
832 now the error is raised directly (aborting the browser) instead of
834 now the error is raised directly (aborting the browser) instead of
833 running into an empty levels list later.
835 running into an empty levels list later.
834
836
835 2007-02-03 Walter Doerwald <walter@livinglogic.de>
837 2007-02-03 Walter Doerwald <walter@livinglogic.de>
836
838
837 * IPython/Extensions/ipipe.py: Add an xrepr implementation
839 * IPython/Extensions/ipipe.py: Add an xrepr implementation
838 for the noitem object.
840 for the noitem object.
839
841
840 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
842 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
841
843
842 * IPython/completer.py (Completer.attr_matches): Fix small
844 * IPython/completer.py (Completer.attr_matches): Fix small
843 tab-completion bug with Enthought Traits objects with units.
845 tab-completion bug with Enthought Traits objects with units.
844 Thanks to a bug report by Tom Denniston
846 Thanks to a bug report by Tom Denniston
845 <tom.denniston-AT-alum.dartmouth.org>.
847 <tom.denniston-AT-alum.dartmouth.org>.
846
848
847 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
849 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
848
850
849 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
851 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
850 bug where only .ipy or .py would be completed. Once the first
852 bug where only .ipy or .py would be completed. Once the first
851 argument to %run has been given, all completions are valid because
853 argument to %run has been given, all completions are valid because
852 they are the arguments to the script, which may well be non-python
854 they are the arguments to the script, which may well be non-python
853 filenames.
855 filenames.
854
856
855 * IPython/irunner.py (InteractiveRunner.run_source): major updates
857 * IPython/irunner.py (InteractiveRunner.run_source): major updates
856 to irunner to allow it to correctly support real doctesting of
858 to irunner to allow it to correctly support real doctesting of
857 out-of-process ipython code.
859 out-of-process ipython code.
858
860
859 * IPython/Magic.py (magic_cd): Make the setting of the terminal
861 * IPython/Magic.py (magic_cd): Make the setting of the terminal
860 title an option (-noterm_title) because it completely breaks
862 title an option (-noterm_title) because it completely breaks
861 doctesting.
863 doctesting.
862
864
863 * IPython/demo.py: fix IPythonDemo class that was not actually working.
865 * IPython/demo.py: fix IPythonDemo class that was not actually working.
864
866
865 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
867 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
866
868
867 * IPython/irunner.py (main): fix small bug where extensions were
869 * IPython/irunner.py (main): fix small bug where extensions were
868 not being correctly recognized.
870 not being correctly recognized.
869
871
870 2007-01-23 Walter Doerwald <walter@livinglogic.de>
872 2007-01-23 Walter Doerwald <walter@livinglogic.de>
871
873
872 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
874 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
873 a string containing a single line yields the string itself as the
875 a string containing a single line yields the string itself as the
874 only item.
876 only item.
875
877
876 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
878 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
877 object if it's the same as the one on the last level (This avoids
879 object if it's the same as the one on the last level (This avoids
878 infinite recursion for one line strings).
880 infinite recursion for one line strings).
879
881
880 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
882 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
881
883
882 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
884 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
883 all output streams before printing tracebacks. This ensures that
885 all output streams before printing tracebacks. This ensures that
884 user output doesn't end up interleaved with traceback output.
886 user output doesn't end up interleaved with traceback output.
885
887
886 2007-01-10 Ville Vainio <vivainio@gmail.com>
888 2007-01-10 Ville Vainio <vivainio@gmail.com>
887
889
888 * Extensions/envpersist.py: Turbocharged %env that remembers
890 * Extensions/envpersist.py: Turbocharged %env that remembers
889 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
891 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
890 "%env VISUAL=jed".
892 "%env VISUAL=jed".
891
893
892 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
894 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
893
895
894 * IPython/iplib.py (showtraceback): ensure that we correctly call
896 * IPython/iplib.py (showtraceback): ensure that we correctly call
895 custom handlers in all cases (some with pdb were slipping through,
897 custom handlers in all cases (some with pdb were slipping through,
896 but I'm not exactly sure why).
898 but I'm not exactly sure why).
897
899
898 * IPython/Debugger.py (Tracer.__init__): added new class to
900 * IPython/Debugger.py (Tracer.__init__): added new class to
899 support set_trace-like usage of IPython's enhanced debugger.
901 support set_trace-like usage of IPython's enhanced debugger.
900
902
901 2006-12-24 Ville Vainio <vivainio@gmail.com>
903 2006-12-24 Ville Vainio <vivainio@gmail.com>
902
904
903 * ipmaker.py: more informative message when ipy_user_conf
905 * ipmaker.py: more informative message when ipy_user_conf
904 import fails (suggest running %upgrade).
906 import fails (suggest running %upgrade).
905
907
906 * tools/run_ipy_in_profiler.py: Utility to see where
908 * tools/run_ipy_in_profiler.py: Utility to see where
907 the time during IPython startup is spent.
909 the time during IPython startup is spent.
908
910
909 2006-12-20 Ville Vainio <vivainio@gmail.com>
911 2006-12-20 Ville Vainio <vivainio@gmail.com>
910
912
911 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
913 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
912
914
913 * ipapi.py: Add new ipapi method, expand_alias.
915 * ipapi.py: Add new ipapi method, expand_alias.
914
916
915 * Release.py: Bump up version to 0.7.4.svn
917 * Release.py: Bump up version to 0.7.4.svn
916
918
917 2006-12-17 Ville Vainio <vivainio@gmail.com>
919 2006-12-17 Ville Vainio <vivainio@gmail.com>
918
920
919 * Extensions/jobctrl.py: Fixed &cmd arg arg...
921 * Extensions/jobctrl.py: Fixed &cmd arg arg...
920 to work properly on posix too
922 to work properly on posix too
921
923
922 * Release.py: Update revnum (version is still just 0.7.3).
924 * Release.py: Update revnum (version is still just 0.7.3).
923
925
924 2006-12-15 Ville Vainio <vivainio@gmail.com>
926 2006-12-15 Ville Vainio <vivainio@gmail.com>
925
927
926 * scripts/ipython_win_post_install: create ipython.py in
928 * scripts/ipython_win_post_install: create ipython.py in
927 prefix + "/scripts".
929 prefix + "/scripts".
928
930
929 * Release.py: Update version to 0.7.3.
931 * Release.py: Update version to 0.7.3.
930
932
931 2006-12-14 Ville Vainio <vivainio@gmail.com>
933 2006-12-14 Ville Vainio <vivainio@gmail.com>
932
934
933 * scripts/ipython_win_post_install: Overwrite old shortcuts
935 * scripts/ipython_win_post_install: Overwrite old shortcuts
934 if they already exist
936 if they already exist
935
937
936 * Release.py: release 0.7.3rc2
938 * Release.py: release 0.7.3rc2
937
939
938 2006-12-13 Ville Vainio <vivainio@gmail.com>
940 2006-12-13 Ville Vainio <vivainio@gmail.com>
939
941
940 * Branch and update Release.py for 0.7.3rc1
942 * Branch and update Release.py for 0.7.3rc1
941
943
942 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
944 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
943
945
944 * IPython/Shell.py (IPShellWX): update for current WX naming
946 * IPython/Shell.py (IPShellWX): update for current WX naming
945 conventions, to avoid a deprecation warning with current WX
947 conventions, to avoid a deprecation warning with current WX
946 versions. Thanks to a report by Danny Shevitz.
948 versions. Thanks to a report by Danny Shevitz.
947
949
948 2006-12-12 Ville Vainio <vivainio@gmail.com>
950 2006-12-12 Ville Vainio <vivainio@gmail.com>
949
951
950 * ipmaker.py: apply david cournapeau's patch to make
952 * ipmaker.py: apply david cournapeau's patch to make
951 import_some work properly even when ipythonrc does
953 import_some work properly even when ipythonrc does
952 import_some on empty list (it was an old bug!).
954 import_some on empty list (it was an old bug!).
953
955
954 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
956 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
955 Add deprecation note to ipythonrc and a url to wiki
957 Add deprecation note to ipythonrc and a url to wiki
956 in ipy_user_conf.py
958 in ipy_user_conf.py
957
959
958
960
959 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
961 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
960 as if it was typed on IPython command prompt, i.e.
962 as if it was typed on IPython command prompt, i.e.
961 as IPython script.
963 as IPython script.
962
964
963 * example-magic.py, magic_grepl.py: remove outdated examples
965 * example-magic.py, magic_grepl.py: remove outdated examples
964
966
965 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
967 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
966
968
967 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
969 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
968 is called before any exception has occurred.
970 is called before any exception has occurred.
969
971
970 2006-12-08 Ville Vainio <vivainio@gmail.com>
972 2006-12-08 Ville Vainio <vivainio@gmail.com>
971
973
972 * Extensions/ipy_stock_completers.py: fix cd completer
974 * Extensions/ipy_stock_completers.py: fix cd completer
973 to translate /'s to \'s again.
975 to translate /'s to \'s again.
974
976
975 * completer.py: prevent traceback on file completions w/
977 * completer.py: prevent traceback on file completions w/
976 backslash.
978 backslash.
977
979
978 * Release.py: Update release number to 0.7.3b3 for release
980 * Release.py: Update release number to 0.7.3b3 for release
979
981
980 2006-12-07 Ville Vainio <vivainio@gmail.com>
982 2006-12-07 Ville Vainio <vivainio@gmail.com>
981
983
982 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
984 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
983 while executing external code. Provides more shell-like behaviour
985 while executing external code. Provides more shell-like behaviour
984 and overall better response to ctrl + C / ctrl + break.
986 and overall better response to ctrl + C / ctrl + break.
985
987
986 * tools/make_tarball.py: new script to create tarball straight from svn
988 * tools/make_tarball.py: new script to create tarball straight from svn
987 (setup.py sdist doesn't work on win32).
989 (setup.py sdist doesn't work on win32).
988
990
989 * Extensions/ipy_stock_completers.py: fix cd completer to give up
991 * Extensions/ipy_stock_completers.py: fix cd completer to give up
990 on dirnames with spaces and use the default completer instead.
992 on dirnames with spaces and use the default completer instead.
991
993
992 * Revision.py: Change version to 0.7.3b2 for release.
994 * Revision.py: Change version to 0.7.3b2 for release.
993
995
994 2006-12-05 Ville Vainio <vivainio@gmail.com>
996 2006-12-05 Ville Vainio <vivainio@gmail.com>
995
997
996 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
998 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
997 pydb patch 4 (rm debug printing, py 2.5 checking)
999 pydb patch 4 (rm debug printing, py 2.5 checking)
998
1000
999 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1001 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1000 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1002 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1001 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1003 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1002 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1004 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1003 object the cursor was on before the refresh. The command "markrange" is
1005 object the cursor was on before the refresh. The command "markrange" is
1004 mapped to "%" now.
1006 mapped to "%" now.
1005 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1007 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1006
1008
1007 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1009 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1008
1010
1009 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1011 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1010 interactive debugger on the last traceback, without having to call
1012 interactive debugger on the last traceback, without having to call
1011 %pdb and rerun your code. Made minor changes in various modules,
1013 %pdb and rerun your code. Made minor changes in various modules,
1012 should automatically recognize pydb if available.
1014 should automatically recognize pydb if available.
1013
1015
1014 2006-11-28 Ville Vainio <vivainio@gmail.com>
1016 2006-11-28 Ville Vainio <vivainio@gmail.com>
1015
1017
1016 * completer.py: If the text start with !, show file completions
1018 * completer.py: If the text start with !, show file completions
1017 properly. This helps when trying to complete command name
1019 properly. This helps when trying to complete command name
1018 for shell escapes.
1020 for shell escapes.
1019
1021
1020 2006-11-27 Ville Vainio <vivainio@gmail.com>
1022 2006-11-27 Ville Vainio <vivainio@gmail.com>
1021
1023
1022 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1024 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1023 der Walt. Clean up svn and hg completers by using a common
1025 der Walt. Clean up svn and hg completers by using a common
1024 vcs_completer.
1026 vcs_completer.
1025
1027
1026 2006-11-26 Ville Vainio <vivainio@gmail.com>
1028 2006-11-26 Ville Vainio <vivainio@gmail.com>
1027
1029
1028 * Remove ipconfig and %config; you should use _ip.options structure
1030 * Remove ipconfig and %config; you should use _ip.options structure
1029 directly instead!
1031 directly instead!
1030
1032
1031 * genutils.py: add wrap_deprecated function for deprecating callables
1033 * genutils.py: add wrap_deprecated function for deprecating callables
1032
1034
1033 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1035 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1034 _ip.system instead. ipalias is redundant.
1036 _ip.system instead. ipalias is redundant.
1035
1037
1036 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1038 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1037 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1039 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1038 explicit.
1040 explicit.
1039
1041
1040 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1042 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1041 completer. Try it by entering 'hg ' and pressing tab.
1043 completer. Try it by entering 'hg ' and pressing tab.
1042
1044
1043 * macro.py: Give Macro a useful __repr__ method
1045 * macro.py: Give Macro a useful __repr__ method
1044
1046
1045 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1047 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1046
1048
1047 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1049 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1048 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1050 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1049 we don't get a duplicate ipipe module, where registration of the xrepr
1051 we don't get a duplicate ipipe module, where registration of the xrepr
1050 implementation for Text is useless.
1052 implementation for Text is useless.
1051
1053
1052 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1054 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1053
1055
1054 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1056 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1055
1057
1056 2006-11-24 Ville Vainio <vivainio@gmail.com>
1058 2006-11-24 Ville Vainio <vivainio@gmail.com>
1057
1059
1058 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1060 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1059 try to use "cProfile" instead of the slower pure python
1061 try to use "cProfile" instead of the slower pure python
1060 "profile"
1062 "profile"
1061
1063
1062 2006-11-23 Ville Vainio <vivainio@gmail.com>
1064 2006-11-23 Ville Vainio <vivainio@gmail.com>
1063
1065
1064 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1066 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1065 Qt+IPython+Designer link in documentation.
1067 Qt+IPython+Designer link in documentation.
1066
1068
1067 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1069 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1068 correct Pdb object to %pydb.
1070 correct Pdb object to %pydb.
1069
1071
1070
1072
1071 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1073 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1072 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1074 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1073 generic xrepr(), otherwise the list implementation would kick in.
1075 generic xrepr(), otherwise the list implementation would kick in.
1074
1076
1075 2006-11-21 Ville Vainio <vivainio@gmail.com>
1077 2006-11-21 Ville Vainio <vivainio@gmail.com>
1076
1078
1077 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1079 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1078 with one from UserConfig.
1080 with one from UserConfig.
1079
1081
1080 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1082 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1081 it was missing which broke the sh profile.
1083 it was missing which broke the sh profile.
1082
1084
1083 * completer.py: file completer now uses explicit '/' instead
1085 * completer.py: file completer now uses explicit '/' instead
1084 of os.path.join, expansion of 'foo' was broken on win32
1086 of os.path.join, expansion of 'foo' was broken on win32
1085 if there was one directory with name 'foobar'.
1087 if there was one directory with name 'foobar'.
1086
1088
1087 * A bunch of patches from Kirill Smelkov:
1089 * A bunch of patches from Kirill Smelkov:
1088
1090
1089 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1091 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1090
1092
1091 * [patch 7/9] Implement %page -r (page in raw mode) -
1093 * [patch 7/9] Implement %page -r (page in raw mode) -
1092
1094
1093 * [patch 5/9] ScientificPython webpage has moved
1095 * [patch 5/9] ScientificPython webpage has moved
1094
1096
1095 * [patch 4/9] The manual mentions %ds, should be %dhist
1097 * [patch 4/9] The manual mentions %ds, should be %dhist
1096
1098
1097 * [patch 3/9] Kill old bits from %prun doc.
1099 * [patch 3/9] Kill old bits from %prun doc.
1098
1100
1099 * [patch 1/9] Fix typos here and there.
1101 * [patch 1/9] Fix typos here and there.
1100
1102
1101 2006-11-08 Ville Vainio <vivainio@gmail.com>
1103 2006-11-08 Ville Vainio <vivainio@gmail.com>
1102
1104
1103 * completer.py (attr_matches): catch all exceptions raised
1105 * completer.py (attr_matches): catch all exceptions raised
1104 by eval of expr with dots.
1106 by eval of expr with dots.
1105
1107
1106 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1108 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1107
1109
1108 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1110 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1109 input if it starts with whitespace. This allows you to paste
1111 input if it starts with whitespace. This allows you to paste
1110 indented input from any editor without manually having to type in
1112 indented input from any editor without manually having to type in
1111 the 'if 1:', which is convenient when working interactively.
1113 the 'if 1:', which is convenient when working interactively.
1112 Slightly modifed version of a patch by Bo Peng
1114 Slightly modifed version of a patch by Bo Peng
1113 <bpeng-AT-rice.edu>.
1115 <bpeng-AT-rice.edu>.
1114
1116
1115 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1117 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1116
1118
1117 * IPython/irunner.py (main): modified irunner so it automatically
1119 * IPython/irunner.py (main): modified irunner so it automatically
1118 recognizes the right runner to use based on the extension (.py for
1120 recognizes the right runner to use based on the extension (.py for
1119 python, .ipy for ipython and .sage for sage).
1121 python, .ipy for ipython and .sage for sage).
1120
1122
1121 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1123 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1122 visible in ipapi as ip.config(), to programatically control the
1124 visible in ipapi as ip.config(), to programatically control the
1123 internal rc object. There's an accompanying %config magic for
1125 internal rc object. There's an accompanying %config magic for
1124 interactive use, which has been enhanced to match the
1126 interactive use, which has been enhanced to match the
1125 funtionality in ipconfig.
1127 funtionality in ipconfig.
1126
1128
1127 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1129 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1128 so it's not just a toggle, it now takes an argument. Add support
1130 so it's not just a toggle, it now takes an argument. Add support
1129 for a customizable header when making system calls, as the new
1131 for a customizable header when making system calls, as the new
1130 system_header variable in the ipythonrc file.
1132 system_header variable in the ipythonrc file.
1131
1133
1132 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1134 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1133
1135
1134 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1136 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1135 generic functions (using Philip J. Eby's simplegeneric package).
1137 generic functions (using Philip J. Eby's simplegeneric package).
1136 This makes it possible to customize the display of third-party classes
1138 This makes it possible to customize the display of third-party classes
1137 without having to monkeypatch them. xiter() no longer supports a mode
1139 without having to monkeypatch them. xiter() no longer supports a mode
1138 argument and the XMode class has been removed. The same functionality can
1140 argument and the XMode class has been removed. The same functionality can
1139 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1141 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1140 One consequence of the switch to generic functions is that xrepr() and
1142 One consequence of the switch to generic functions is that xrepr() and
1141 xattrs() implementation must define the default value for the mode
1143 xattrs() implementation must define the default value for the mode
1142 argument themselves and xattrs() implementations must return real
1144 argument themselves and xattrs() implementations must return real
1143 descriptors.
1145 descriptors.
1144
1146
1145 * IPython/external: This new subpackage will contain all third-party
1147 * IPython/external: This new subpackage will contain all third-party
1146 packages that are bundled with IPython. (The first one is simplegeneric).
1148 packages that are bundled with IPython. (The first one is simplegeneric).
1147
1149
1148 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1150 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1149 directory which as been dropped in r1703.
1151 directory which as been dropped in r1703.
1150
1152
1151 * IPython/Extensions/ipipe.py (iless): Fixed.
1153 * IPython/Extensions/ipipe.py (iless): Fixed.
1152
1154
1153 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1155 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1154
1156
1155 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1157 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1156
1158
1157 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1159 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1158 handling in variable expansion so that shells and magics recognize
1160 handling in variable expansion so that shells and magics recognize
1159 function local scopes correctly. Bug reported by Brian.
1161 function local scopes correctly. Bug reported by Brian.
1160
1162
1161 * scripts/ipython: remove the very first entry in sys.path which
1163 * scripts/ipython: remove the very first entry in sys.path which
1162 Python auto-inserts for scripts, so that sys.path under IPython is
1164 Python auto-inserts for scripts, so that sys.path under IPython is
1163 as similar as possible to that under plain Python.
1165 as similar as possible to that under plain Python.
1164
1166
1165 * IPython/completer.py (IPCompleter.file_matches): Fix
1167 * IPython/completer.py (IPCompleter.file_matches): Fix
1166 tab-completion so that quotes are not closed unless the completion
1168 tab-completion so that quotes are not closed unless the completion
1167 is unambiguous. After a request by Stefan. Minor cleanups in
1169 is unambiguous. After a request by Stefan. Minor cleanups in
1168 ipy_stock_completers.
1170 ipy_stock_completers.
1169
1171
1170 2006-11-02 Ville Vainio <vivainio@gmail.com>
1172 2006-11-02 Ville Vainio <vivainio@gmail.com>
1171
1173
1172 * ipy_stock_completers.py: Add %run and %cd completers.
1174 * ipy_stock_completers.py: Add %run and %cd completers.
1173
1175
1174 * completer.py: Try running custom completer for both
1176 * completer.py: Try running custom completer for both
1175 "foo" and "%foo" if the command is just "foo". Ignore case
1177 "foo" and "%foo" if the command is just "foo". Ignore case
1176 when filtering possible completions.
1178 when filtering possible completions.
1177
1179
1178 * UserConfig/ipy_user_conf.py: install stock completers as default
1180 * UserConfig/ipy_user_conf.py: install stock completers as default
1179
1181
1180 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1182 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1181 simplified readline history save / restore through a wrapper
1183 simplified readline history save / restore through a wrapper
1182 function
1184 function
1183
1185
1184
1186
1185 2006-10-31 Ville Vainio <vivainio@gmail.com>
1187 2006-10-31 Ville Vainio <vivainio@gmail.com>
1186
1188
1187 * strdispatch.py, completer.py, ipy_stock_completers.py:
1189 * strdispatch.py, completer.py, ipy_stock_completers.py:
1188 Allow str_key ("command") in completer hooks. Implement
1190 Allow str_key ("command") in completer hooks. Implement
1189 trivial completer for 'import' (stdlib modules only). Rename
1191 trivial completer for 'import' (stdlib modules only). Rename
1190 ipy_linux_package_managers.py to ipy_stock_completers.py.
1192 ipy_linux_package_managers.py to ipy_stock_completers.py.
1191 SVN completer.
1193 SVN completer.
1192
1194
1193 * Extensions/ledit.py: %magic line editor for easily and
1195 * Extensions/ledit.py: %magic line editor for easily and
1194 incrementally manipulating lists of strings. The magic command
1196 incrementally manipulating lists of strings. The magic command
1195 name is %led.
1197 name is %led.
1196
1198
1197 2006-10-30 Ville Vainio <vivainio@gmail.com>
1199 2006-10-30 Ville Vainio <vivainio@gmail.com>
1198
1200
1199 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1201 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1200 Bernsteins's patches for pydb integration.
1202 Bernsteins's patches for pydb integration.
1201 http://bashdb.sourceforge.net/pydb/
1203 http://bashdb.sourceforge.net/pydb/
1202
1204
1203 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1205 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1204 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1206 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1205 custom completer hook to allow the users to implement their own
1207 custom completer hook to allow the users to implement their own
1206 completers. See ipy_linux_package_managers.py for example. The
1208 completers. See ipy_linux_package_managers.py for example. The
1207 hook name is 'complete_command'.
1209 hook name is 'complete_command'.
1208
1210
1209 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1211 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1210
1212
1211 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1213 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1212 Numeric leftovers.
1214 Numeric leftovers.
1213
1215
1214 * ipython.el (py-execute-region): apply Stefan's patch to fix
1216 * ipython.el (py-execute-region): apply Stefan's patch to fix
1215 garbled results if the python shell hasn't been previously started.
1217 garbled results if the python shell hasn't been previously started.
1216
1218
1217 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1219 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1218 pretty generic function and useful for other things.
1220 pretty generic function and useful for other things.
1219
1221
1220 * IPython/OInspect.py (getsource): Add customizable source
1222 * IPython/OInspect.py (getsource): Add customizable source
1221 extractor. After a request/patch form W. Stein (SAGE).
1223 extractor. After a request/patch form W. Stein (SAGE).
1222
1224
1223 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1225 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1224 window size to a more reasonable value from what pexpect does,
1226 window size to a more reasonable value from what pexpect does,
1225 since their choice causes wrapping bugs with long input lines.
1227 since their choice causes wrapping bugs with long input lines.
1226
1228
1227 2006-10-28 Ville Vainio <vivainio@gmail.com>
1229 2006-10-28 Ville Vainio <vivainio@gmail.com>
1228
1230
1229 * Magic.py (%run): Save and restore the readline history from
1231 * Magic.py (%run): Save and restore the readline history from
1230 file around %run commands to prevent side effects from
1232 file around %run commands to prevent side effects from
1231 %runned programs that might use readline (e.g. pydb).
1233 %runned programs that might use readline (e.g. pydb).
1232
1234
1233 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1235 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1234 invoking the pydb enhanced debugger.
1236 invoking the pydb enhanced debugger.
1235
1237
1236 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1238 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1237
1239
1238 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1240 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1239 call the base class method and propagate the return value to
1241 call the base class method and propagate the return value to
1240 ifile. This is now done by path itself.
1242 ifile. This is now done by path itself.
1241
1243
1242 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1244 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1243
1245
1244 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1246 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1245 api: set_crash_handler(), to expose the ability to change the
1247 api: set_crash_handler(), to expose the ability to change the
1246 internal crash handler.
1248 internal crash handler.
1247
1249
1248 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1250 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1249 the various parameters of the crash handler so that apps using
1251 the various parameters of the crash handler so that apps using
1250 IPython as their engine can customize crash handling. Ipmlemented
1252 IPython as their engine can customize crash handling. Ipmlemented
1251 at the request of SAGE.
1253 at the request of SAGE.
1252
1254
1253 2006-10-14 Ville Vainio <vivainio@gmail.com>
1255 2006-10-14 Ville Vainio <vivainio@gmail.com>
1254
1256
1255 * Magic.py, ipython.el: applied first "safe" part of Rocky
1257 * Magic.py, ipython.el: applied first "safe" part of Rocky
1256 Bernstein's patch set for pydb integration.
1258 Bernstein's patch set for pydb integration.
1257
1259
1258 * Magic.py (%unalias, %alias): %store'd aliases can now be
1260 * Magic.py (%unalias, %alias): %store'd aliases can now be
1259 removed with '%unalias'. %alias w/o args now shows most
1261 removed with '%unalias'. %alias w/o args now shows most
1260 interesting (stored / manually defined) aliases last
1262 interesting (stored / manually defined) aliases last
1261 where they catch the eye w/o scrolling.
1263 where they catch the eye w/o scrolling.
1262
1264
1263 * Magic.py (%rehashx), ext_rehashdir.py: files with
1265 * Magic.py (%rehashx), ext_rehashdir.py: files with
1264 'py' extension are always considered executable, even
1266 'py' extension are always considered executable, even
1265 when not in PATHEXT environment variable.
1267 when not in PATHEXT environment variable.
1266
1268
1267 2006-10-12 Ville Vainio <vivainio@gmail.com>
1269 2006-10-12 Ville Vainio <vivainio@gmail.com>
1268
1270
1269 * jobctrl.py: Add new "jobctrl" extension for spawning background
1271 * jobctrl.py: Add new "jobctrl" extension for spawning background
1270 processes with "&find /". 'import jobctrl' to try it out. Requires
1272 processes with "&find /". 'import jobctrl' to try it out. Requires
1271 'subprocess' module, standard in python 2.4+.
1273 'subprocess' module, standard in python 2.4+.
1272
1274
1273 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1275 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1274 so if foo -> bar and bar -> baz, then foo -> baz.
1276 so if foo -> bar and bar -> baz, then foo -> baz.
1275
1277
1276 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1278 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1277
1279
1278 * IPython/Magic.py (Magic.parse_options): add a new posix option
1280 * IPython/Magic.py (Magic.parse_options): add a new posix option
1279 to allow parsing of input args in magics that doesn't strip quotes
1281 to allow parsing of input args in magics that doesn't strip quotes
1280 (if posix=False). This also closes %timeit bug reported by
1282 (if posix=False). This also closes %timeit bug reported by
1281 Stefan.
1283 Stefan.
1282
1284
1283 2006-10-03 Ville Vainio <vivainio@gmail.com>
1285 2006-10-03 Ville Vainio <vivainio@gmail.com>
1284
1286
1285 * iplib.py (raw_input, interact): Return ValueError catching for
1287 * iplib.py (raw_input, interact): Return ValueError catching for
1286 raw_input. Fixes infinite loop for sys.stdin.close() or
1288 raw_input. Fixes infinite loop for sys.stdin.close() or
1287 sys.stdout.close().
1289 sys.stdout.close().
1288
1290
1289 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1291 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1290
1292
1291 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1293 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1292 to help in handling doctests. irunner is now pretty useful for
1294 to help in handling doctests. irunner is now pretty useful for
1293 running standalone scripts and simulate a full interactive session
1295 running standalone scripts and simulate a full interactive session
1294 in a format that can be then pasted as a doctest.
1296 in a format that can be then pasted as a doctest.
1295
1297
1296 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1298 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1297 on top of the default (useless) ones. This also fixes the nasty
1299 on top of the default (useless) ones. This also fixes the nasty
1298 way in which 2.5's Quitter() exits (reverted [1785]).
1300 way in which 2.5's Quitter() exits (reverted [1785]).
1299
1301
1300 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1302 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1301 2.5.
1303 2.5.
1302
1304
1303 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1305 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1304 color scheme is updated as well when color scheme is changed
1306 color scheme is updated as well when color scheme is changed
1305 interactively.
1307 interactively.
1306
1308
1307 2006-09-27 Ville Vainio <vivainio@gmail.com>
1309 2006-09-27 Ville Vainio <vivainio@gmail.com>
1308
1310
1309 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1311 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1310 infinite loop and just exit. It's a hack, but will do for a while.
1312 infinite loop and just exit. It's a hack, but will do for a while.
1311
1313
1312 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1314 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1313
1315
1314 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1316 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1315 the constructor, this makes it possible to get a list of only directories
1317 the constructor, this makes it possible to get a list of only directories
1316 or only files.
1318 or only files.
1317
1319
1318 2006-08-12 Ville Vainio <vivainio@gmail.com>
1320 2006-08-12 Ville Vainio <vivainio@gmail.com>
1319
1321
1320 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1322 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1321 they broke unittest
1323 they broke unittest
1322
1324
1323 2006-08-11 Ville Vainio <vivainio@gmail.com>
1325 2006-08-11 Ville Vainio <vivainio@gmail.com>
1324
1326
1325 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1327 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1326 by resolving issue properly, i.e. by inheriting FakeModule
1328 by resolving issue properly, i.e. by inheriting FakeModule
1327 from types.ModuleType. Pickling ipython interactive data
1329 from types.ModuleType. Pickling ipython interactive data
1328 should still work as usual (testing appreciated).
1330 should still work as usual (testing appreciated).
1329
1331
1330 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1332 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1331
1333
1332 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1334 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1333 running under python 2.3 with code from 2.4 to fix a bug with
1335 running under python 2.3 with code from 2.4 to fix a bug with
1334 help(). Reported by the Debian maintainers, Norbert Tretkowski
1336 help(). Reported by the Debian maintainers, Norbert Tretkowski
1335 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1337 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1336 <afayolle-AT-debian.org>.
1338 <afayolle-AT-debian.org>.
1337
1339
1338 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1340 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1339
1341
1340 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1342 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1341 (which was displaying "quit" twice).
1343 (which was displaying "quit" twice).
1342
1344
1343 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1345 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1344
1346
1345 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1347 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1346 the mode argument).
1348 the mode argument).
1347
1349
1348 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1350 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1349
1351
1350 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1352 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1351 not running under IPython.
1353 not running under IPython.
1352
1354
1353 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1355 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1354 and make it iterable (iterating over the attribute itself). Add two new
1356 and make it iterable (iterating over the attribute itself). Add two new
1355 magic strings for __xattrs__(): If the string starts with "-", the attribute
1357 magic strings for __xattrs__(): If the string starts with "-", the attribute
1356 will not be displayed in ibrowse's detail view (but it can still be
1358 will not be displayed in ibrowse's detail view (but it can still be
1357 iterated over). This makes it possible to add attributes that are large
1359 iterated over). This makes it possible to add attributes that are large
1358 lists or generator methods to the detail view. Replace magic attribute names
1360 lists or generator methods to the detail view. Replace magic attribute names
1359 and _attrname() and _getattr() with "descriptors": For each type of magic
1361 and _attrname() and _getattr() with "descriptors": For each type of magic
1360 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1362 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1361 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1363 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1362 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1364 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1363 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1365 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1364 are still supported.
1366 are still supported.
1365
1367
1366 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1368 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1367 fails in ibrowse.fetch(), the exception object is added as the last item
1369 fails in ibrowse.fetch(), the exception object is added as the last item
1368 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1370 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1369 a generator throws an exception midway through execution.
1371 a generator throws an exception midway through execution.
1370
1372
1371 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1373 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1372 encoding into methods.
1374 encoding into methods.
1373
1375
1374 2006-07-26 Ville Vainio <vivainio@gmail.com>
1376 2006-07-26 Ville Vainio <vivainio@gmail.com>
1375
1377
1376 * iplib.py: history now stores multiline input as single
1378 * iplib.py: history now stores multiline input as single
1377 history entries. Patch by Jorgen Cederlof.
1379 history entries. Patch by Jorgen Cederlof.
1378
1380
1379 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1381 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1380
1382
1381 * IPython/Extensions/ibrowse.py: Make cursor visible over
1383 * IPython/Extensions/ibrowse.py: Make cursor visible over
1382 non existing attributes.
1384 non existing attributes.
1383
1385
1384 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1386 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1385
1387
1386 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1388 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1387 error output of the running command doesn't mess up the screen.
1389 error output of the running command doesn't mess up the screen.
1388
1390
1389 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1391 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1390
1392
1391 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1393 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1392 argument. This sorts the items themselves.
1394 argument. This sorts the items themselves.
1393
1395
1394 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1396 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1395
1397
1396 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1398 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1397 Compile expression strings into code objects. This should speed
1399 Compile expression strings into code objects. This should speed
1398 up ifilter and friends somewhat.
1400 up ifilter and friends somewhat.
1399
1401
1400 2006-07-08 Ville Vainio <vivainio@gmail.com>
1402 2006-07-08 Ville Vainio <vivainio@gmail.com>
1401
1403
1402 * Magic.py: %cpaste now strips > from the beginning of lines
1404 * Magic.py: %cpaste now strips > from the beginning of lines
1403 to ease pasting quoted code from emails. Contributed by
1405 to ease pasting quoted code from emails. Contributed by
1404 Stefan van der Walt.
1406 Stefan van der Walt.
1405
1407
1406 2006-06-29 Ville Vainio <vivainio@gmail.com>
1408 2006-06-29 Ville Vainio <vivainio@gmail.com>
1407
1409
1408 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1410 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1409 mode, patch contributed by Darren Dale. NEEDS TESTING!
1411 mode, patch contributed by Darren Dale. NEEDS TESTING!
1410
1412
1411 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1413 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1412
1414
1413 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1415 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1414 a blue background. Fix fetching new display rows when the browser
1416 a blue background. Fix fetching new display rows when the browser
1415 scrolls more than a screenful (e.g. by using the goto command).
1417 scrolls more than a screenful (e.g. by using the goto command).
1416
1418
1417 2006-06-27 Ville Vainio <vivainio@gmail.com>
1419 2006-06-27 Ville Vainio <vivainio@gmail.com>
1418
1420
1419 * Magic.py (_inspect, _ofind) Apply David Huard's
1421 * Magic.py (_inspect, _ofind) Apply David Huard's
1420 patch for displaying the correct docstring for 'property'
1422 patch for displaying the correct docstring for 'property'
1421 attributes.
1423 attributes.
1422
1424
1423 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1425 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1424
1426
1425 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1427 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1426 commands into the methods implementing them.
1428 commands into the methods implementing them.
1427
1429
1428 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1430 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1429
1431
1430 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1432 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1431 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1433 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1432 autoindent support was authored by Jin Liu.
1434 autoindent support was authored by Jin Liu.
1433
1435
1434 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1436 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1435
1437
1436 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1438 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1437 for keymaps with a custom class that simplifies handling.
1439 for keymaps with a custom class that simplifies handling.
1438
1440
1439 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1441 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1440
1442
1441 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1443 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1442 resizing. This requires Python 2.5 to work.
1444 resizing. This requires Python 2.5 to work.
1443
1445
1444 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1446 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1445
1447
1446 * IPython/Extensions/ibrowse.py: Add two new commands to
1448 * IPython/Extensions/ibrowse.py: Add two new commands to
1447 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1449 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1448 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1450 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1449 attributes again. Remapped the help command to "?". Display
1451 attributes again. Remapped the help command to "?". Display
1450 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1452 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1451 as keys for the "home" and "end" commands. Add three new commands
1453 as keys for the "home" and "end" commands. Add three new commands
1452 to the input mode for "find" and friends: "delend" (CTRL-K)
1454 to the input mode for "find" and friends: "delend" (CTRL-K)
1453 deletes to the end of line. "incsearchup" searches upwards in the
1455 deletes to the end of line. "incsearchup" searches upwards in the
1454 command history for an input that starts with the text before the cursor.
1456 command history for an input that starts with the text before the cursor.
1455 "incsearchdown" does the same downwards. Removed a bogus mapping of
1457 "incsearchdown" does the same downwards. Removed a bogus mapping of
1456 the x key to "delete".
1458 the x key to "delete".
1457
1459
1458 2006-06-15 Ville Vainio <vivainio@gmail.com>
1460 2006-06-15 Ville Vainio <vivainio@gmail.com>
1459
1461
1460 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1462 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1461 used to create prompts dynamically, instead of the "old" way of
1463 used to create prompts dynamically, instead of the "old" way of
1462 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1464 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1463 way still works (it's invoked by the default hook), of course.
1465 way still works (it's invoked by the default hook), of course.
1464
1466
1465 * Prompts.py: added generate_output_prompt hook for altering output
1467 * Prompts.py: added generate_output_prompt hook for altering output
1466 prompt
1468 prompt
1467
1469
1468 * Release.py: Changed version string to 0.7.3.svn.
1470 * Release.py: Changed version string to 0.7.3.svn.
1469
1471
1470 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1472 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1471
1473
1472 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1474 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1473 the call to fetch() always tries to fetch enough data for at least one
1475 the call to fetch() always tries to fetch enough data for at least one
1474 full screen. This makes it possible to simply call moveto(0,0,True) in
1476 full screen. This makes it possible to simply call moveto(0,0,True) in
1475 the constructor. Fix typos and removed the obsolete goto attribute.
1477 the constructor. Fix typos and removed the obsolete goto attribute.
1476
1478
1477 2006-06-12 Ville Vainio <vivainio@gmail.com>
1479 2006-06-12 Ville Vainio <vivainio@gmail.com>
1478
1480
1479 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1481 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1480 allowing $variable interpolation within multiline statements,
1482 allowing $variable interpolation within multiline statements,
1481 though so far only with "sh" profile for a testing period.
1483 though so far only with "sh" profile for a testing period.
1482 The patch also enables splitting long commands with \ but it
1484 The patch also enables splitting long commands with \ but it
1483 doesn't work properly yet.
1485 doesn't work properly yet.
1484
1486
1485 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1487 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1486
1488
1487 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1489 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1488 input history and the position of the cursor in the input history for
1490 input history and the position of the cursor in the input history for
1489 the find, findbackwards and goto command.
1491 the find, findbackwards and goto command.
1490
1492
1491 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1493 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1492
1494
1493 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1495 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1494 implements the basic functionality of browser commands that require
1496 implements the basic functionality of browser commands that require
1495 input. Reimplement the goto, find and findbackwards commands as
1497 input. Reimplement the goto, find and findbackwards commands as
1496 subclasses of _CommandInput. Add an input history and keymaps to those
1498 subclasses of _CommandInput. Add an input history and keymaps to those
1497 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1499 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1498 execute commands.
1500 execute commands.
1499
1501
1500 2006-06-07 Ville Vainio <vivainio@gmail.com>
1502 2006-06-07 Ville Vainio <vivainio@gmail.com>
1501
1503
1502 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1504 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1503 running the batch files instead of leaving the session open.
1505 running the batch files instead of leaving the session open.
1504
1506
1505 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1507 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1506
1508
1507 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1509 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1508 the original fix was incomplete. Patch submitted by W. Maier.
1510 the original fix was incomplete. Patch submitted by W. Maier.
1509
1511
1510 2006-06-07 Ville Vainio <vivainio@gmail.com>
1512 2006-06-07 Ville Vainio <vivainio@gmail.com>
1511
1513
1512 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1514 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1513 Confirmation prompts can be supressed by 'quiet' option.
1515 Confirmation prompts can be supressed by 'quiet' option.
1514 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1516 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1515
1517
1516 2006-06-06 *** Released version 0.7.2
1518 2006-06-06 *** Released version 0.7.2
1517
1519
1518 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1520 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1519
1521
1520 * IPython/Release.py (version): Made 0.7.2 final for release.
1522 * IPython/Release.py (version): Made 0.7.2 final for release.
1521 Repo tagged and release cut.
1523 Repo tagged and release cut.
1522
1524
1523 2006-06-05 Ville Vainio <vivainio@gmail.com>
1525 2006-06-05 Ville Vainio <vivainio@gmail.com>
1524
1526
1525 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1527 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1526 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1528 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1527
1529
1528 * upgrade_dir.py: try import 'path' module a bit harder
1530 * upgrade_dir.py: try import 'path' module a bit harder
1529 (for %upgrade)
1531 (for %upgrade)
1530
1532
1531 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1533 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1532
1534
1533 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1535 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1534 instead of looping 20 times.
1536 instead of looping 20 times.
1535
1537
1536 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1538 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1537 correctly at initialization time. Bug reported by Krishna Mohan
1539 correctly at initialization time. Bug reported by Krishna Mohan
1538 Gundu <gkmohan-AT-gmail.com> on the user list.
1540 Gundu <gkmohan-AT-gmail.com> on the user list.
1539
1541
1540 * IPython/Release.py (version): Mark 0.7.2 version to start
1542 * IPython/Release.py (version): Mark 0.7.2 version to start
1541 testing for release on 06/06.
1543 testing for release on 06/06.
1542
1544
1543 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1545 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1544
1546
1545 * scripts/irunner: thin script interface so users don't have to
1547 * scripts/irunner: thin script interface so users don't have to
1546 find the module and call it as an executable, since modules rarely
1548 find the module and call it as an executable, since modules rarely
1547 live in people's PATH.
1549 live in people's PATH.
1548
1550
1549 * IPython/irunner.py (InteractiveRunner.__init__): added
1551 * IPython/irunner.py (InteractiveRunner.__init__): added
1550 delaybeforesend attribute to control delays with newer versions of
1552 delaybeforesend attribute to control delays with newer versions of
1551 pexpect. Thanks to detailed help from pexpect's author, Noah
1553 pexpect. Thanks to detailed help from pexpect's author, Noah
1552 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1554 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1553 correctly (it works in NoColor mode).
1555 correctly (it works in NoColor mode).
1554
1556
1555 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1557 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1556 SAGE list, from improper log() calls.
1558 SAGE list, from improper log() calls.
1557
1559
1558 2006-05-31 Ville Vainio <vivainio@gmail.com>
1560 2006-05-31 Ville Vainio <vivainio@gmail.com>
1559
1561
1560 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1562 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1561 with args in parens to work correctly with dirs that have spaces.
1563 with args in parens to work correctly with dirs that have spaces.
1562
1564
1563 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1565 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1564
1566
1565 * IPython/Logger.py (Logger.logstart): add option to log raw input
1567 * IPython/Logger.py (Logger.logstart): add option to log raw input
1566 instead of the processed one. A -r flag was added to the
1568 instead of the processed one. A -r flag was added to the
1567 %logstart magic used for controlling logging.
1569 %logstart magic used for controlling logging.
1568
1570
1569 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1571 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1570
1572
1571 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1573 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1572 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1574 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1573 recognize the option. After a bug report by Will Maier. This
1575 recognize the option. After a bug report by Will Maier. This
1574 closes #64 (will do it after confirmation from W. Maier).
1576 closes #64 (will do it after confirmation from W. Maier).
1575
1577
1576 * IPython/irunner.py: New module to run scripts as if manually
1578 * IPython/irunner.py: New module to run scripts as if manually
1577 typed into an interactive environment, based on pexpect. After a
1579 typed into an interactive environment, based on pexpect. After a
1578 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1580 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1579 ipython-user list. Simple unittests in the tests/ directory.
1581 ipython-user list. Simple unittests in the tests/ directory.
1580
1582
1581 * tools/release: add Will Maier, OpenBSD port maintainer, to
1583 * tools/release: add Will Maier, OpenBSD port maintainer, to
1582 recepients list. We are now officially part of the OpenBSD ports:
1584 recepients list. We are now officially part of the OpenBSD ports:
1583 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1585 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1584 work.
1586 work.
1585
1587
1586 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1588 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1587
1589
1588 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1590 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1589 so that it doesn't break tkinter apps.
1591 so that it doesn't break tkinter apps.
1590
1592
1591 * IPython/iplib.py (_prefilter): fix bug where aliases would
1593 * IPython/iplib.py (_prefilter): fix bug where aliases would
1592 shadow variables when autocall was fully off. Reported by SAGE
1594 shadow variables when autocall was fully off. Reported by SAGE
1593 author William Stein.
1595 author William Stein.
1594
1596
1595 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1597 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1596 at what detail level strings are computed when foo? is requested.
1598 at what detail level strings are computed when foo? is requested.
1597 This allows users to ask for example that the string form of an
1599 This allows users to ask for example that the string form of an
1598 object is only computed when foo?? is called, or even never, by
1600 object is only computed when foo?? is called, or even never, by
1599 setting the object_info_string_level >= 2 in the configuration
1601 setting the object_info_string_level >= 2 in the configuration
1600 file. This new option has been added and documented. After a
1602 file. This new option has been added and documented. After a
1601 request by SAGE to be able to control the printing of very large
1603 request by SAGE to be able to control the printing of very large
1602 objects more easily.
1604 objects more easily.
1603
1605
1604 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1606 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1605
1607
1606 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1608 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1607 from sys.argv, to be 100% consistent with how Python itself works
1609 from sys.argv, to be 100% consistent with how Python itself works
1608 (as seen for example with python -i file.py). After a bug report
1610 (as seen for example with python -i file.py). After a bug report
1609 by Jeffrey Collins.
1611 by Jeffrey Collins.
1610
1612
1611 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1613 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1612 nasty bug which was preventing custom namespaces with -pylab,
1614 nasty bug which was preventing custom namespaces with -pylab,
1613 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1615 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1614 compatibility (long gone from mpl).
1616 compatibility (long gone from mpl).
1615
1617
1616 * IPython/ipapi.py (make_session): name change: create->make. We
1618 * IPython/ipapi.py (make_session): name change: create->make. We
1617 use make in other places (ipmaker,...), it's shorter and easier to
1619 use make in other places (ipmaker,...), it's shorter and easier to
1618 type and say, etc. I'm trying to clean things before 0.7.2 so
1620 type and say, etc. I'm trying to clean things before 0.7.2 so
1619 that I can keep things stable wrt to ipapi in the chainsaw branch.
1621 that I can keep things stable wrt to ipapi in the chainsaw branch.
1620
1622
1621 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1623 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1622 python-mode recognizes our debugger mode. Add support for
1624 python-mode recognizes our debugger mode. Add support for
1623 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1625 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1624 <m.liu.jin-AT-gmail.com> originally written by
1626 <m.liu.jin-AT-gmail.com> originally written by
1625 doxgen-AT-newsmth.net (with minor modifications for xemacs
1627 doxgen-AT-newsmth.net (with minor modifications for xemacs
1626 compatibility)
1628 compatibility)
1627
1629
1628 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1630 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1629 tracebacks when walking the stack so that the stack tracking system
1631 tracebacks when walking the stack so that the stack tracking system
1630 in emacs' python-mode can identify the frames correctly.
1632 in emacs' python-mode can identify the frames correctly.
1631
1633
1632 * IPython/ipmaker.py (make_IPython): make the internal (and
1634 * IPython/ipmaker.py (make_IPython): make the internal (and
1633 default config) autoedit_syntax value false by default. Too many
1635 default config) autoedit_syntax value false by default. Too many
1634 users have complained to me (both on and off-list) about problems
1636 users have complained to me (both on and off-list) about problems
1635 with this option being on by default, so I'm making it default to
1637 with this option being on by default, so I'm making it default to
1636 off. It can still be enabled by anyone via the usual mechanisms.
1638 off. It can still be enabled by anyone via the usual mechanisms.
1637
1639
1638 * IPython/completer.py (Completer.attr_matches): add support for
1640 * IPython/completer.py (Completer.attr_matches): add support for
1639 PyCrust-style _getAttributeNames magic method. Patch contributed
1641 PyCrust-style _getAttributeNames magic method. Patch contributed
1640 by <mscott-AT-goldenspud.com>. Closes #50.
1642 by <mscott-AT-goldenspud.com>. Closes #50.
1641
1643
1642 * IPython/iplib.py (InteractiveShell.__init__): remove the
1644 * IPython/iplib.py (InteractiveShell.__init__): remove the
1643 deletion of exit/quit from __builtin__, which can break
1645 deletion of exit/quit from __builtin__, which can break
1644 third-party tools like the Zope debugging console. The
1646 third-party tools like the Zope debugging console. The
1645 %exit/%quit magics remain. In general, it's probably a good idea
1647 %exit/%quit magics remain. In general, it's probably a good idea
1646 not to delete anything from __builtin__, since we never know what
1648 not to delete anything from __builtin__, since we never know what
1647 that will break. In any case, python now (for 2.5) will support
1649 that will break. In any case, python now (for 2.5) will support
1648 'real' exit/quit, so this issue is moot. Closes #55.
1650 'real' exit/quit, so this issue is moot. Closes #55.
1649
1651
1650 * IPython/genutils.py (with_obj): rename the 'with' function to
1652 * IPython/genutils.py (with_obj): rename the 'with' function to
1651 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1653 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1652 becomes a language keyword. Closes #53.
1654 becomes a language keyword. Closes #53.
1653
1655
1654 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1656 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1655 __file__ attribute to this so it fools more things into thinking
1657 __file__ attribute to this so it fools more things into thinking
1656 it is a real module. Closes #59.
1658 it is a real module. Closes #59.
1657
1659
1658 * IPython/Magic.py (magic_edit): add -n option to open the editor
1660 * IPython/Magic.py (magic_edit): add -n option to open the editor
1659 at a specific line number. After a patch by Stefan van der Walt.
1661 at a specific line number. After a patch by Stefan van der Walt.
1660
1662
1661 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1663 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1662
1664
1663 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1665 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1664 reason the file could not be opened. After automatic crash
1666 reason the file could not be opened. After automatic crash
1665 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1667 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1666 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1668 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1667 (_should_recompile): Don't fire editor if using %bg, since there
1669 (_should_recompile): Don't fire editor if using %bg, since there
1668 is no file in the first place. From the same report as above.
1670 is no file in the first place. From the same report as above.
1669 (raw_input): protect against faulty third-party prefilters. After
1671 (raw_input): protect against faulty third-party prefilters. After
1670 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1672 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1671 while running under SAGE.
1673 while running under SAGE.
1672
1674
1673 2006-05-23 Ville Vainio <vivainio@gmail.com>
1675 2006-05-23 Ville Vainio <vivainio@gmail.com>
1674
1676
1675 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1677 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1676 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1678 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1677 now returns None (again), unless dummy is specifically allowed by
1679 now returns None (again), unless dummy is specifically allowed by
1678 ipapi.get(allow_dummy=True).
1680 ipapi.get(allow_dummy=True).
1679
1681
1680 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1682 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1681
1683
1682 * IPython: remove all 2.2-compatibility objects and hacks from
1684 * IPython: remove all 2.2-compatibility objects and hacks from
1683 everywhere, since we only support 2.3 at this point. Docs
1685 everywhere, since we only support 2.3 at this point. Docs
1684 updated.
1686 updated.
1685
1687
1686 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1688 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1687 Anything requiring extra validation can be turned into a Python
1689 Anything requiring extra validation can be turned into a Python
1688 property in the future. I used a property for the db one b/c
1690 property in the future. I used a property for the db one b/c
1689 there was a nasty circularity problem with the initialization
1691 there was a nasty circularity problem with the initialization
1690 order, which right now I don't have time to clean up.
1692 order, which right now I don't have time to clean up.
1691
1693
1692 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1694 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1693 another locking bug reported by Jorgen. I'm not 100% sure though,
1695 another locking bug reported by Jorgen. I'm not 100% sure though,
1694 so more testing is needed...
1696 so more testing is needed...
1695
1697
1696 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1698 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1697
1699
1698 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1700 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1699 local variables from any routine in user code (typically executed
1701 local variables from any routine in user code (typically executed
1700 with %run) directly into the interactive namespace. Very useful
1702 with %run) directly into the interactive namespace. Very useful
1701 when doing complex debugging.
1703 when doing complex debugging.
1702 (IPythonNotRunning): Changed the default None object to a dummy
1704 (IPythonNotRunning): Changed the default None object to a dummy
1703 whose attributes can be queried as well as called without
1705 whose attributes can be queried as well as called without
1704 exploding, to ease writing code which works transparently both in
1706 exploding, to ease writing code which works transparently both in
1705 and out of ipython and uses some of this API.
1707 and out of ipython and uses some of this API.
1706
1708
1707 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1709 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1708
1710
1709 * IPython/hooks.py (result_display): Fix the fact that our display
1711 * IPython/hooks.py (result_display): Fix the fact that our display
1710 hook was using str() instead of repr(), as the default python
1712 hook was using str() instead of repr(), as the default python
1711 console does. This had gone unnoticed b/c it only happened if
1713 console does. This had gone unnoticed b/c it only happened if
1712 %Pprint was off, but the inconsistency was there.
1714 %Pprint was off, but the inconsistency was there.
1713
1715
1714 2006-05-15 Ville Vainio <vivainio@gmail.com>
1716 2006-05-15 Ville Vainio <vivainio@gmail.com>
1715
1717
1716 * Oinspect.py: Only show docstring for nonexisting/binary files
1718 * Oinspect.py: Only show docstring for nonexisting/binary files
1717 when doing object??, closing ticket #62
1719 when doing object??, closing ticket #62
1718
1720
1719 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1721 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1720
1722
1721 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1723 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1722 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1724 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1723 was being released in a routine which hadn't checked if it had
1725 was being released in a routine which hadn't checked if it had
1724 been the one to acquire it.
1726 been the one to acquire it.
1725
1727
1726 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1728 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1727
1729
1728 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1730 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1729
1731
1730 2006-04-11 Ville Vainio <vivainio@gmail.com>
1732 2006-04-11 Ville Vainio <vivainio@gmail.com>
1731
1733
1732 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1734 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1733 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1735 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1734 prefilters, allowing stuff like magics and aliases in the file.
1736 prefilters, allowing stuff like magics and aliases in the file.
1735
1737
1736 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1738 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1737 added. Supported now are "%clear in" and "%clear out" (clear input and
1739 added. Supported now are "%clear in" and "%clear out" (clear input and
1738 output history, respectively). Also fixed CachedOutput.flush to
1740 output history, respectively). Also fixed CachedOutput.flush to
1739 properly flush the output cache.
1741 properly flush the output cache.
1740
1742
1741 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1743 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1742 half-success (and fail explicitly).
1744 half-success (and fail explicitly).
1743
1745
1744 2006-03-28 Ville Vainio <vivainio@gmail.com>
1746 2006-03-28 Ville Vainio <vivainio@gmail.com>
1745
1747
1746 * iplib.py: Fix quoting of aliases so that only argless ones
1748 * iplib.py: Fix quoting of aliases so that only argless ones
1747 are quoted
1749 are quoted
1748
1750
1749 2006-03-28 Ville Vainio <vivainio@gmail.com>
1751 2006-03-28 Ville Vainio <vivainio@gmail.com>
1750
1752
1751 * iplib.py: Quote aliases with spaces in the name.
1753 * iplib.py: Quote aliases with spaces in the name.
1752 "c:\program files\blah\bin" is now legal alias target.
1754 "c:\program files\blah\bin" is now legal alias target.
1753
1755
1754 * ext_rehashdir.py: Space no longer allowed as arg
1756 * ext_rehashdir.py: Space no longer allowed as arg
1755 separator, since space is legal in path names.
1757 separator, since space is legal in path names.
1756
1758
1757 2006-03-16 Ville Vainio <vivainio@gmail.com>
1759 2006-03-16 Ville Vainio <vivainio@gmail.com>
1758
1760
1759 * upgrade_dir.py: Take path.py from Extensions, correcting
1761 * upgrade_dir.py: Take path.py from Extensions, correcting
1760 %upgrade magic
1762 %upgrade magic
1761
1763
1762 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1764 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1763
1765
1764 * hooks.py: Only enclose editor binary in quotes if legal and
1766 * hooks.py: Only enclose editor binary in quotes if legal and
1765 necessary (space in the name, and is an existing file). Fixes a bug
1767 necessary (space in the name, and is an existing file). Fixes a bug
1766 reported by Zachary Pincus.
1768 reported by Zachary Pincus.
1767
1769
1768 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1770 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1769
1771
1770 * Manual: thanks to a tip on proper color handling for Emacs, by
1772 * Manual: thanks to a tip on proper color handling for Emacs, by
1771 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1773 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1772
1774
1773 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1775 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1774 by applying the provided patch. Thanks to Liu Jin
1776 by applying the provided patch. Thanks to Liu Jin
1775 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1777 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1776 XEmacs/Linux, I'm trusting the submitter that it actually helps
1778 XEmacs/Linux, I'm trusting the submitter that it actually helps
1777 under win32/GNU Emacs. Will revisit if any problems are reported.
1779 under win32/GNU Emacs. Will revisit if any problems are reported.
1778
1780
1779 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1781 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1780
1782
1781 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1783 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1782 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1784 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1783
1785
1784 2006-03-12 Ville Vainio <vivainio@gmail.com>
1786 2006-03-12 Ville Vainio <vivainio@gmail.com>
1785
1787
1786 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1788 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1787 Torsten Marek.
1789 Torsten Marek.
1788
1790
1789 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1791 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1790
1792
1791 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1793 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1792 line ranges works again.
1794 line ranges works again.
1793
1795
1794 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1796 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1795
1797
1796 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1798 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1797 and friends, after a discussion with Zach Pincus on ipython-user.
1799 and friends, after a discussion with Zach Pincus on ipython-user.
1798 I'm not 100% sure, but after thinking about it quite a bit, it may
1800 I'm not 100% sure, but after thinking about it quite a bit, it may
1799 be OK. Testing with the multithreaded shells didn't reveal any
1801 be OK. Testing with the multithreaded shells didn't reveal any
1800 problems, but let's keep an eye out.
1802 problems, but let's keep an eye out.
1801
1803
1802 In the process, I fixed a few things which were calling
1804 In the process, I fixed a few things which were calling
1803 self.InteractiveTB() directly (like safe_execfile), which is a
1805 self.InteractiveTB() directly (like safe_execfile), which is a
1804 mistake: ALL exception reporting should be done by calling
1806 mistake: ALL exception reporting should be done by calling
1805 self.showtraceback(), which handles state and tab-completion and
1807 self.showtraceback(), which handles state and tab-completion and
1806 more.
1808 more.
1807
1809
1808 2006-03-01 Ville Vainio <vivainio@gmail.com>
1810 2006-03-01 Ville Vainio <vivainio@gmail.com>
1809
1811
1810 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1812 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1811 To use, do "from ipipe import *".
1813 To use, do "from ipipe import *".
1812
1814
1813 2006-02-24 Ville Vainio <vivainio@gmail.com>
1815 2006-02-24 Ville Vainio <vivainio@gmail.com>
1814
1816
1815 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1817 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1816 "cleanly" and safely than the older upgrade mechanism.
1818 "cleanly" and safely than the older upgrade mechanism.
1817
1819
1818 2006-02-21 Ville Vainio <vivainio@gmail.com>
1820 2006-02-21 Ville Vainio <vivainio@gmail.com>
1819
1821
1820 * Magic.py: %save works again.
1822 * Magic.py: %save works again.
1821
1823
1822 2006-02-15 Ville Vainio <vivainio@gmail.com>
1824 2006-02-15 Ville Vainio <vivainio@gmail.com>
1823
1825
1824 * Magic.py: %Pprint works again
1826 * Magic.py: %Pprint works again
1825
1827
1826 * Extensions/ipy_sane_defaults.py: Provide everything provided
1828 * Extensions/ipy_sane_defaults.py: Provide everything provided
1827 in default ipythonrc, to make it possible to have a completely empty
1829 in default ipythonrc, to make it possible to have a completely empty
1828 ipythonrc (and thus completely rc-file free configuration)
1830 ipythonrc (and thus completely rc-file free configuration)
1829
1831
1830 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1832 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1831
1833
1832 * IPython/hooks.py (editor): quote the call to the editor command,
1834 * IPython/hooks.py (editor): quote the call to the editor command,
1833 to allow commands with spaces in them. Problem noted by watching
1835 to allow commands with spaces in them. Problem noted by watching
1834 Ian Oswald's video about textpad under win32 at
1836 Ian Oswald's video about textpad under win32 at
1835 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1837 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1836
1838
1837 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1839 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1838 describing magics (we haven't used @ for a loong time).
1840 describing magics (we haven't used @ for a loong time).
1839
1841
1840 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1842 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1841 contributed by marienz to close
1843 contributed by marienz to close
1842 http://www.scipy.net/roundup/ipython/issue53.
1844 http://www.scipy.net/roundup/ipython/issue53.
1843
1845
1844 2006-02-10 Ville Vainio <vivainio@gmail.com>
1846 2006-02-10 Ville Vainio <vivainio@gmail.com>
1845
1847
1846 * genutils.py: getoutput now works in win32 too
1848 * genutils.py: getoutput now works in win32 too
1847
1849
1848 * completer.py: alias and magic completion only invoked
1850 * completer.py: alias and magic completion only invoked
1849 at the first "item" in the line, to avoid "cd %store"
1851 at the first "item" in the line, to avoid "cd %store"
1850 nonsense.
1852 nonsense.
1851
1853
1852 2006-02-09 Ville Vainio <vivainio@gmail.com>
1854 2006-02-09 Ville Vainio <vivainio@gmail.com>
1853
1855
1854 * test/*: Added a unit testing framework (finally).
1856 * test/*: Added a unit testing framework (finally).
1855 '%run runtests.py' to run test_*.
1857 '%run runtests.py' to run test_*.
1856
1858
1857 * ipapi.py: Exposed runlines and set_custom_exc
1859 * ipapi.py: Exposed runlines and set_custom_exc
1858
1860
1859 2006-02-07 Ville Vainio <vivainio@gmail.com>
1861 2006-02-07 Ville Vainio <vivainio@gmail.com>
1860
1862
1861 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1863 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1862 instead use "f(1 2)" as before.
1864 instead use "f(1 2)" as before.
1863
1865
1864 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1866 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1865
1867
1866 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1868 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1867 facilities, for demos processed by the IPython input filter
1869 facilities, for demos processed by the IPython input filter
1868 (IPythonDemo), and for running a script one-line-at-a-time as a
1870 (IPythonDemo), and for running a script one-line-at-a-time as a
1869 demo, both for pure Python (LineDemo) and for IPython-processed
1871 demo, both for pure Python (LineDemo) and for IPython-processed
1870 input (IPythonLineDemo). After a request by Dave Kohel, from the
1872 input (IPythonLineDemo). After a request by Dave Kohel, from the
1871 SAGE team.
1873 SAGE team.
1872 (Demo.edit): added an edit() method to the demo objects, to edit
1874 (Demo.edit): added an edit() method to the demo objects, to edit
1873 the in-memory copy of the last executed block.
1875 the in-memory copy of the last executed block.
1874
1876
1875 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1877 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1876 processing to %edit, %macro and %save. These commands can now be
1878 processing to %edit, %macro and %save. These commands can now be
1877 invoked on the unprocessed input as it was typed by the user
1879 invoked on the unprocessed input as it was typed by the user
1878 (without any prefilters applied). After requests by the SAGE team
1880 (without any prefilters applied). After requests by the SAGE team
1879 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1881 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1880
1882
1881 2006-02-01 Ville Vainio <vivainio@gmail.com>
1883 2006-02-01 Ville Vainio <vivainio@gmail.com>
1882
1884
1883 * setup.py, eggsetup.py: easy_install ipython==dev works
1885 * setup.py, eggsetup.py: easy_install ipython==dev works
1884 correctly now (on Linux)
1886 correctly now (on Linux)
1885
1887
1886 * ipy_user_conf,ipmaker: user config changes, removed spurious
1888 * ipy_user_conf,ipmaker: user config changes, removed spurious
1887 warnings
1889 warnings
1888
1890
1889 * iplib: if rc.banner is string, use it as is.
1891 * iplib: if rc.banner is string, use it as is.
1890
1892
1891 * Magic: %pycat accepts a string argument and pages it's contents.
1893 * Magic: %pycat accepts a string argument and pages it's contents.
1892
1894
1893
1895
1894 2006-01-30 Ville Vainio <vivainio@gmail.com>
1896 2006-01-30 Ville Vainio <vivainio@gmail.com>
1895
1897
1896 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1898 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1897 Now %store and bookmarks work through PickleShare, meaning that
1899 Now %store and bookmarks work through PickleShare, meaning that
1898 concurrent access is possible and all ipython sessions see the
1900 concurrent access is possible and all ipython sessions see the
1899 same database situation all the time, instead of snapshot of
1901 same database situation all the time, instead of snapshot of
1900 the situation when the session was started. Hence, %bookmark
1902 the situation when the session was started. Hence, %bookmark
1901 results are immediately accessible from othes sessions. The database
1903 results are immediately accessible from othes sessions. The database
1902 is also available for use by user extensions. See:
1904 is also available for use by user extensions. See:
1903 http://www.python.org/pypi/pickleshare
1905 http://www.python.org/pypi/pickleshare
1904
1906
1905 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1907 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1906
1908
1907 * aliases can now be %store'd
1909 * aliases can now be %store'd
1908
1910
1909 * path.py moved to Extensions so that pickleshare does not need
1911 * path.py moved to Extensions so that pickleshare does not need
1910 IPython-specific import. Extensions added to pythonpath right
1912 IPython-specific import. Extensions added to pythonpath right
1911 at __init__.
1913 at __init__.
1912
1914
1913 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1915 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1914 called with _ip.system and the pre-transformed command string.
1916 called with _ip.system and the pre-transformed command string.
1915
1917
1916 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1918 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1917
1919
1918 * IPython/iplib.py (interact): Fix that we were not catching
1920 * IPython/iplib.py (interact): Fix that we were not catching
1919 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1921 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1920 logic here had to change, but it's fixed now.
1922 logic here had to change, but it's fixed now.
1921
1923
1922 2006-01-29 Ville Vainio <vivainio@gmail.com>
1924 2006-01-29 Ville Vainio <vivainio@gmail.com>
1923
1925
1924 * iplib.py: Try to import pyreadline on Windows.
1926 * iplib.py: Try to import pyreadline on Windows.
1925
1927
1926 2006-01-27 Ville Vainio <vivainio@gmail.com>
1928 2006-01-27 Ville Vainio <vivainio@gmail.com>
1927
1929
1928 * iplib.py: Expose ipapi as _ip in builtin namespace.
1930 * iplib.py: Expose ipapi as _ip in builtin namespace.
1929 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1931 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1930 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1932 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1931 syntax now produce _ip.* variant of the commands.
1933 syntax now produce _ip.* variant of the commands.
1932
1934
1933 * "_ip.options().autoedit_syntax = 2" automatically throws
1935 * "_ip.options().autoedit_syntax = 2" automatically throws
1934 user to editor for syntax error correction without prompting.
1936 user to editor for syntax error correction without prompting.
1935
1937
1936 2006-01-27 Ville Vainio <vivainio@gmail.com>
1938 2006-01-27 Ville Vainio <vivainio@gmail.com>
1937
1939
1938 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1940 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1939 'ipython' at argv[0]) executed through command line.
1941 'ipython' at argv[0]) executed through command line.
1940 NOTE: this DEPRECATES calling ipython with multiple scripts
1942 NOTE: this DEPRECATES calling ipython with multiple scripts
1941 ("ipython a.py b.py c.py")
1943 ("ipython a.py b.py c.py")
1942
1944
1943 * iplib.py, hooks.py: Added configurable input prefilter,
1945 * iplib.py, hooks.py: Added configurable input prefilter,
1944 named 'input_prefilter'. See ext_rescapture.py for example
1946 named 'input_prefilter'. See ext_rescapture.py for example
1945 usage.
1947 usage.
1946
1948
1947 * ext_rescapture.py, Magic.py: Better system command output capture
1949 * ext_rescapture.py, Magic.py: Better system command output capture
1948 through 'var = !ls' (deprecates user-visible %sc). Same notation
1950 through 'var = !ls' (deprecates user-visible %sc). Same notation
1949 applies for magics, 'var = %alias' assigns alias list to var.
1951 applies for magics, 'var = %alias' assigns alias list to var.
1950
1952
1951 * ipapi.py: added meta() for accessing extension-usable data store.
1953 * ipapi.py: added meta() for accessing extension-usable data store.
1952
1954
1953 * iplib.py: added InteractiveShell.getapi(). New magics should be
1955 * iplib.py: added InteractiveShell.getapi(). New magics should be
1954 written doing self.getapi() instead of using the shell directly.
1956 written doing self.getapi() instead of using the shell directly.
1955
1957
1956 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1958 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1957 %store foo >> ~/myfoo.txt to store variables to files (in clean
1959 %store foo >> ~/myfoo.txt to store variables to files (in clean
1958 textual form, not a restorable pickle).
1960 textual form, not a restorable pickle).
1959
1961
1960 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1962 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1961
1963
1962 * usage.py, Magic.py: added %quickref
1964 * usage.py, Magic.py: added %quickref
1963
1965
1964 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1966 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1965
1967
1966 * GetoptErrors when invoking magics etc. with wrong args
1968 * GetoptErrors when invoking magics etc. with wrong args
1967 are now more helpful:
1969 are now more helpful:
1968 GetoptError: option -l not recognized (allowed: "qb" )
1970 GetoptError: option -l not recognized (allowed: "qb" )
1969
1971
1970 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1972 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1971
1973
1972 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1974 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1973 computationally intensive blocks don't appear to stall the demo.
1975 computationally intensive blocks don't appear to stall the demo.
1974
1976
1975 2006-01-24 Ville Vainio <vivainio@gmail.com>
1977 2006-01-24 Ville Vainio <vivainio@gmail.com>
1976
1978
1977 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1979 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1978 value to manipulate resulting history entry.
1980 value to manipulate resulting history entry.
1979
1981
1980 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1982 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1981 to instance methods of IPApi class, to make extending an embedded
1983 to instance methods of IPApi class, to make extending an embedded
1982 IPython feasible. See ext_rehashdir.py for example usage.
1984 IPython feasible. See ext_rehashdir.py for example usage.
1983
1985
1984 * Merged 1071-1076 from branches/0.7.1
1986 * Merged 1071-1076 from branches/0.7.1
1985
1987
1986
1988
1987 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1989 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1988
1990
1989 * tools/release (daystamp): Fix build tools to use the new
1991 * tools/release (daystamp): Fix build tools to use the new
1990 eggsetup.py script to build lightweight eggs.
1992 eggsetup.py script to build lightweight eggs.
1991
1993
1992 * Applied changesets 1062 and 1064 before 0.7.1 release.
1994 * Applied changesets 1062 and 1064 before 0.7.1 release.
1993
1995
1994 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1996 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1995 see the raw input history (without conversions like %ls ->
1997 see the raw input history (without conversions like %ls ->
1996 ipmagic("ls")). After a request from W. Stein, SAGE
1998 ipmagic("ls")). After a request from W. Stein, SAGE
1997 (http://modular.ucsd.edu/sage) developer. This information is
1999 (http://modular.ucsd.edu/sage) developer. This information is
1998 stored in the input_hist_raw attribute of the IPython instance, so
2000 stored in the input_hist_raw attribute of the IPython instance, so
1999 developers can access it if needed (it's an InputList instance).
2001 developers can access it if needed (it's an InputList instance).
2000
2002
2001 * Versionstring = 0.7.2.svn
2003 * Versionstring = 0.7.2.svn
2002
2004
2003 * eggsetup.py: A separate script for constructing eggs, creates
2005 * eggsetup.py: A separate script for constructing eggs, creates
2004 proper launch scripts even on Windows (an .exe file in
2006 proper launch scripts even on Windows (an .exe file in
2005 \python24\scripts).
2007 \python24\scripts).
2006
2008
2007 * ipapi.py: launch_new_instance, launch entry point needed for the
2009 * ipapi.py: launch_new_instance, launch entry point needed for the
2008 egg.
2010 egg.
2009
2011
2010 2006-01-23 Ville Vainio <vivainio@gmail.com>
2012 2006-01-23 Ville Vainio <vivainio@gmail.com>
2011
2013
2012 * Added %cpaste magic for pasting python code
2014 * Added %cpaste magic for pasting python code
2013
2015
2014 2006-01-22 Ville Vainio <vivainio@gmail.com>
2016 2006-01-22 Ville Vainio <vivainio@gmail.com>
2015
2017
2016 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2018 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2017
2019
2018 * Versionstring = 0.7.2.svn
2020 * Versionstring = 0.7.2.svn
2019
2021
2020 * eggsetup.py: A separate script for constructing eggs, creates
2022 * eggsetup.py: A separate script for constructing eggs, creates
2021 proper launch scripts even on Windows (an .exe file in
2023 proper launch scripts even on Windows (an .exe file in
2022 \python24\scripts).
2024 \python24\scripts).
2023
2025
2024 * ipapi.py: launch_new_instance, launch entry point needed for the
2026 * ipapi.py: launch_new_instance, launch entry point needed for the
2025 egg.
2027 egg.
2026
2028
2027 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2029 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2028
2030
2029 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2031 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2030 %pfile foo would print the file for foo even if it was a binary.
2032 %pfile foo would print the file for foo even if it was a binary.
2031 Now, extensions '.so' and '.dll' are skipped.
2033 Now, extensions '.so' and '.dll' are skipped.
2032
2034
2033 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2035 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2034 bug, where macros would fail in all threaded modes. I'm not 100%
2036 bug, where macros would fail in all threaded modes. I'm not 100%
2035 sure, so I'm going to put out an rc instead of making a release
2037 sure, so I'm going to put out an rc instead of making a release
2036 today, and wait for feedback for at least a few days.
2038 today, and wait for feedback for at least a few days.
2037
2039
2038 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2040 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2039 it...) the handling of pasting external code with autoindent on.
2041 it...) the handling of pasting external code with autoindent on.
2040 To get out of a multiline input, the rule will appear for most
2042 To get out of a multiline input, the rule will appear for most
2041 users unchanged: two blank lines or change the indent level
2043 users unchanged: two blank lines or change the indent level
2042 proposed by IPython. But there is a twist now: you can
2044 proposed by IPython. But there is a twist now: you can
2043 add/subtract only *one or two spaces*. If you add/subtract three
2045 add/subtract only *one or two spaces*. If you add/subtract three
2044 or more (unless you completely delete the line), IPython will
2046 or more (unless you completely delete the line), IPython will
2045 accept that line, and you'll need to enter a second one of pure
2047 accept that line, and you'll need to enter a second one of pure
2046 whitespace. I know it sounds complicated, but I can't find a
2048 whitespace. I know it sounds complicated, but I can't find a
2047 different solution that covers all the cases, with the right
2049 different solution that covers all the cases, with the right
2048 heuristics. Hopefully in actual use, nobody will really notice
2050 heuristics. Hopefully in actual use, nobody will really notice
2049 all these strange rules and things will 'just work'.
2051 all these strange rules and things will 'just work'.
2050
2052
2051 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2053 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2052
2054
2053 * IPython/iplib.py (interact): catch exceptions which can be
2055 * IPython/iplib.py (interact): catch exceptions which can be
2054 triggered asynchronously by signal handlers. Thanks to an
2056 triggered asynchronously by signal handlers. Thanks to an
2055 automatic crash report, submitted by Colin Kingsley
2057 automatic crash report, submitted by Colin Kingsley
2056 <tercel-AT-gentoo.org>.
2058 <tercel-AT-gentoo.org>.
2057
2059
2058 2006-01-20 Ville Vainio <vivainio@gmail.com>
2060 2006-01-20 Ville Vainio <vivainio@gmail.com>
2059
2061
2060 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2062 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2061 (%rehashdir, very useful, try it out) of how to extend ipython
2063 (%rehashdir, very useful, try it out) of how to extend ipython
2062 with new magics. Also added Extensions dir to pythonpath to make
2064 with new magics. Also added Extensions dir to pythonpath to make
2063 importing extensions easy.
2065 importing extensions easy.
2064
2066
2065 * %store now complains when trying to store interactively declared
2067 * %store now complains when trying to store interactively declared
2066 classes / instances of those classes.
2068 classes / instances of those classes.
2067
2069
2068 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2070 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2069 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2071 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2070 if they exist, and ipy_user_conf.py with some defaults is created for
2072 if they exist, and ipy_user_conf.py with some defaults is created for
2071 the user.
2073 the user.
2072
2074
2073 * Startup rehashing done by the config file, not InterpreterExec.
2075 * Startup rehashing done by the config file, not InterpreterExec.
2074 This means system commands are available even without selecting the
2076 This means system commands are available even without selecting the
2075 pysh profile. It's the sensible default after all.
2077 pysh profile. It's the sensible default after all.
2076
2078
2077 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2079 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2078
2080
2079 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2081 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2080 multiline code with autoindent on working. But I am really not
2082 multiline code with autoindent on working. But I am really not
2081 sure, so this needs more testing. Will commit a debug-enabled
2083 sure, so this needs more testing. Will commit a debug-enabled
2082 version for now, while I test it some more, so that Ville and
2084 version for now, while I test it some more, so that Ville and
2083 others may also catch any problems. Also made
2085 others may also catch any problems. Also made
2084 self.indent_current_str() a method, to ensure that there's no
2086 self.indent_current_str() a method, to ensure that there's no
2085 chance of the indent space count and the corresponding string
2087 chance of the indent space count and the corresponding string
2086 falling out of sync. All code needing the string should just call
2088 falling out of sync. All code needing the string should just call
2087 the method.
2089 the method.
2088
2090
2089 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2091 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2090
2092
2091 * IPython/Magic.py (magic_edit): fix check for when users don't
2093 * IPython/Magic.py (magic_edit): fix check for when users don't
2092 save their output files, the try/except was in the wrong section.
2094 save their output files, the try/except was in the wrong section.
2093
2095
2094 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2096 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2095
2097
2096 * IPython/Magic.py (magic_run): fix __file__ global missing from
2098 * IPython/Magic.py (magic_run): fix __file__ global missing from
2097 script's namespace when executed via %run. After a report by
2099 script's namespace when executed via %run. After a report by
2098 Vivian.
2100 Vivian.
2099
2101
2100 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2102 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2101 when using python 2.4. The parent constructor changed in 2.4, and
2103 when using python 2.4. The parent constructor changed in 2.4, and
2102 we need to track it directly (we can't call it, as it messes up
2104 we need to track it directly (we can't call it, as it messes up
2103 readline and tab-completion inside our pdb would stop working).
2105 readline and tab-completion inside our pdb would stop working).
2104 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2106 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2105
2107
2106 2006-01-16 Ville Vainio <vivainio@gmail.com>
2108 2006-01-16 Ville Vainio <vivainio@gmail.com>
2107
2109
2108 * Ipython/magic.py: Reverted back to old %edit functionality
2110 * Ipython/magic.py: Reverted back to old %edit functionality
2109 that returns file contents on exit.
2111 that returns file contents on exit.
2110
2112
2111 * IPython/path.py: Added Jason Orendorff's "path" module to
2113 * IPython/path.py: Added Jason Orendorff's "path" module to
2112 IPython tree, http://www.jorendorff.com/articles/python/path/.
2114 IPython tree, http://www.jorendorff.com/articles/python/path/.
2113 You can get path objects conveniently through %sc, and !!, e.g.:
2115 You can get path objects conveniently through %sc, and !!, e.g.:
2114 sc files=ls
2116 sc files=ls
2115 for p in files.paths: # or files.p
2117 for p in files.paths: # or files.p
2116 print p,p.mtime
2118 print p,p.mtime
2117
2119
2118 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2120 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2119 now work again without considering the exclusion regexp -
2121 now work again without considering the exclusion regexp -
2120 hence, things like ',foo my/path' turn to 'foo("my/path")'
2122 hence, things like ',foo my/path' turn to 'foo("my/path")'
2121 instead of syntax error.
2123 instead of syntax error.
2122
2124
2123
2125
2124 2006-01-14 Ville Vainio <vivainio@gmail.com>
2126 2006-01-14 Ville Vainio <vivainio@gmail.com>
2125
2127
2126 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2128 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2127 ipapi decorators for python 2.4 users, options() provides access to rc
2129 ipapi decorators for python 2.4 users, options() provides access to rc
2128 data.
2130 data.
2129
2131
2130 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2132 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2131 as path separators (even on Linux ;-). Space character after
2133 as path separators (even on Linux ;-). Space character after
2132 backslash (as yielded by tab completer) is still space;
2134 backslash (as yielded by tab completer) is still space;
2133 "%cd long\ name" works as expected.
2135 "%cd long\ name" works as expected.
2134
2136
2135 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2137 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2136 as "chain of command", with priority. API stays the same,
2138 as "chain of command", with priority. API stays the same,
2137 TryNext exception raised by a hook function signals that
2139 TryNext exception raised by a hook function signals that
2138 current hook failed and next hook should try handling it, as
2140 current hook failed and next hook should try handling it, as
2139 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2141 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2140 requested configurable display hook, which is now implemented.
2142 requested configurable display hook, which is now implemented.
2141
2143
2142 2006-01-13 Ville Vainio <vivainio@gmail.com>
2144 2006-01-13 Ville Vainio <vivainio@gmail.com>
2143
2145
2144 * IPython/platutils*.py: platform specific utility functions,
2146 * IPython/platutils*.py: platform specific utility functions,
2145 so far only set_term_title is implemented (change terminal
2147 so far only set_term_title is implemented (change terminal
2146 label in windowing systems). %cd now changes the title to
2148 label in windowing systems). %cd now changes the title to
2147 current dir.
2149 current dir.
2148
2150
2149 * IPython/Release.py: Added myself to "authors" list,
2151 * IPython/Release.py: Added myself to "authors" list,
2150 had to create new files.
2152 had to create new files.
2151
2153
2152 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2154 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2153 shell escape; not a known bug but had potential to be one in the
2155 shell escape; not a known bug but had potential to be one in the
2154 future.
2156 future.
2155
2157
2156 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2158 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2157 extension API for IPython! See the module for usage example. Fix
2159 extension API for IPython! See the module for usage example. Fix
2158 OInspect for docstring-less magic functions.
2160 OInspect for docstring-less magic functions.
2159
2161
2160
2162
2161 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2163 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2162
2164
2163 * IPython/iplib.py (raw_input): temporarily deactivate all
2165 * IPython/iplib.py (raw_input): temporarily deactivate all
2164 attempts at allowing pasting of code with autoindent on. It
2166 attempts at allowing pasting of code with autoindent on. It
2165 introduced bugs (reported by Prabhu) and I can't seem to find a
2167 introduced bugs (reported by Prabhu) and I can't seem to find a
2166 robust combination which works in all cases. Will have to revisit
2168 robust combination which works in all cases. Will have to revisit
2167 later.
2169 later.
2168
2170
2169 * IPython/genutils.py: remove isspace() function. We've dropped
2171 * IPython/genutils.py: remove isspace() function. We've dropped
2170 2.2 compatibility, so it's OK to use the string method.
2172 2.2 compatibility, so it's OK to use the string method.
2171
2173
2172 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2174 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2173
2175
2174 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2176 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2175 matching what NOT to autocall on, to include all python binary
2177 matching what NOT to autocall on, to include all python binary
2176 operators (including things like 'and', 'or', 'is' and 'in').
2178 operators (including things like 'and', 'or', 'is' and 'in').
2177 Prompted by a bug report on 'foo & bar', but I realized we had
2179 Prompted by a bug report on 'foo & bar', but I realized we had
2178 many more potential bug cases with other operators. The regexp is
2180 many more potential bug cases with other operators. The regexp is
2179 self.re_exclude_auto, it's fairly commented.
2181 self.re_exclude_auto, it's fairly commented.
2180
2182
2181 2006-01-12 Ville Vainio <vivainio@gmail.com>
2183 2006-01-12 Ville Vainio <vivainio@gmail.com>
2182
2184
2183 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2185 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2184 Prettified and hardened string/backslash quoting with ipsystem(),
2186 Prettified and hardened string/backslash quoting with ipsystem(),
2185 ipalias() and ipmagic(). Now even \ characters are passed to
2187 ipalias() and ipmagic(). Now even \ characters are passed to
2186 %magics, !shell escapes and aliases exactly as they are in the
2188 %magics, !shell escapes and aliases exactly as they are in the
2187 ipython command line. Should improve backslash experience,
2189 ipython command line. Should improve backslash experience,
2188 particularly in Windows (path delimiter for some commands that
2190 particularly in Windows (path delimiter for some commands that
2189 won't understand '/'), but Unix benefits as well (regexps). %cd
2191 won't understand '/'), but Unix benefits as well (regexps). %cd
2190 magic still doesn't support backslash path delimiters, though. Also
2192 magic still doesn't support backslash path delimiters, though. Also
2191 deleted all pretense of supporting multiline command strings in
2193 deleted all pretense of supporting multiline command strings in
2192 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2194 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2193
2195
2194 * doc/build_doc_instructions.txt added. Documentation on how to
2196 * doc/build_doc_instructions.txt added. Documentation on how to
2195 use doc/update_manual.py, added yesterday. Both files contributed
2197 use doc/update_manual.py, added yesterday. Both files contributed
2196 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2198 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2197 doc/*.sh for deprecation at a later date.
2199 doc/*.sh for deprecation at a later date.
2198
2200
2199 * /ipython.py Added ipython.py to root directory for
2201 * /ipython.py Added ipython.py to root directory for
2200 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2202 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2201 ipython.py) and development convenience (no need to keep doing
2203 ipython.py) and development convenience (no need to keep doing
2202 "setup.py install" between changes).
2204 "setup.py install" between changes).
2203
2205
2204 * Made ! and !! shell escapes work (again) in multiline expressions:
2206 * Made ! and !! shell escapes work (again) in multiline expressions:
2205 if 1:
2207 if 1:
2206 !ls
2208 !ls
2207 !!ls
2209 !!ls
2208
2210
2209 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2211 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2210
2212
2211 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2213 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2212 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2214 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2213 module in case-insensitive installation. Was causing crashes
2215 module in case-insensitive installation. Was causing crashes
2214 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2216 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2215
2217
2216 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2218 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2217 <marienz-AT-gentoo.org>, closes
2219 <marienz-AT-gentoo.org>, closes
2218 http://www.scipy.net/roundup/ipython/issue51.
2220 http://www.scipy.net/roundup/ipython/issue51.
2219
2221
2220 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2222 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2221
2223
2222 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2224 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2223 problem of excessive CPU usage under *nix and keyboard lag under
2225 problem of excessive CPU usage under *nix and keyboard lag under
2224 win32.
2226 win32.
2225
2227
2226 2006-01-10 *** Released version 0.7.0
2228 2006-01-10 *** Released version 0.7.0
2227
2229
2228 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2230 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2229
2231
2230 * IPython/Release.py (revision): tag version number to 0.7.0,
2232 * IPython/Release.py (revision): tag version number to 0.7.0,
2231 ready for release.
2233 ready for release.
2232
2234
2233 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2235 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2234 it informs the user of the name of the temp. file used. This can
2236 it informs the user of the name of the temp. file used. This can
2235 help if you decide later to reuse that same file, so you know
2237 help if you decide later to reuse that same file, so you know
2236 where to copy the info from.
2238 where to copy the info from.
2237
2239
2238 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2240 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2239
2241
2240 * setup_bdist_egg.py: little script to build an egg. Added
2242 * setup_bdist_egg.py: little script to build an egg. Added
2241 support in the release tools as well.
2243 support in the release tools as well.
2242
2244
2243 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2245 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2244
2246
2245 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2247 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2246 version selection (new -wxversion command line and ipythonrc
2248 version selection (new -wxversion command line and ipythonrc
2247 parameter). Patch contributed by Arnd Baecker
2249 parameter). Patch contributed by Arnd Baecker
2248 <arnd.baecker-AT-web.de>.
2250 <arnd.baecker-AT-web.de>.
2249
2251
2250 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2252 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2251 embedded instances, for variables defined at the interactive
2253 embedded instances, for variables defined at the interactive
2252 prompt of the embedded ipython. Reported by Arnd.
2254 prompt of the embedded ipython. Reported by Arnd.
2253
2255
2254 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2256 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2255 it can be used as a (stateful) toggle, or with a direct parameter.
2257 it can be used as a (stateful) toggle, or with a direct parameter.
2256
2258
2257 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2259 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2258 could be triggered in certain cases and cause the traceback
2260 could be triggered in certain cases and cause the traceback
2259 printer not to work.
2261 printer not to work.
2260
2262
2261 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2263 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2262
2264
2263 * IPython/iplib.py (_should_recompile): Small fix, closes
2265 * IPython/iplib.py (_should_recompile): Small fix, closes
2264 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2266 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2265
2267
2266 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2268 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2267
2269
2268 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2270 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2269 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2271 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2270 Moad for help with tracking it down.
2272 Moad for help with tracking it down.
2271
2273
2272 * IPython/iplib.py (handle_auto): fix autocall handling for
2274 * IPython/iplib.py (handle_auto): fix autocall handling for
2273 objects which support BOTH __getitem__ and __call__ (so that f [x]
2275 objects which support BOTH __getitem__ and __call__ (so that f [x]
2274 is left alone, instead of becoming f([x]) automatically).
2276 is left alone, instead of becoming f([x]) automatically).
2275
2277
2276 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2278 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2277 Ville's patch.
2279 Ville's patch.
2278
2280
2279 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2281 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2280
2282
2281 * IPython/iplib.py (handle_auto): changed autocall semantics to
2283 * IPython/iplib.py (handle_auto): changed autocall semantics to
2282 include 'smart' mode, where the autocall transformation is NOT
2284 include 'smart' mode, where the autocall transformation is NOT
2283 applied if there are no arguments on the line. This allows you to
2285 applied if there are no arguments on the line. This allows you to
2284 just type 'foo' if foo is a callable to see its internal form,
2286 just type 'foo' if foo is a callable to see its internal form,
2285 instead of having it called with no arguments (typically a
2287 instead of having it called with no arguments (typically a
2286 mistake). The old 'full' autocall still exists: for that, you
2288 mistake). The old 'full' autocall still exists: for that, you
2287 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2289 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2288
2290
2289 * IPython/completer.py (Completer.attr_matches): add
2291 * IPython/completer.py (Completer.attr_matches): add
2290 tab-completion support for Enthoughts' traits. After a report by
2292 tab-completion support for Enthoughts' traits. After a report by
2291 Arnd and a patch by Prabhu.
2293 Arnd and a patch by Prabhu.
2292
2294
2293 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2295 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2294
2296
2295 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2297 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2296 Schmolck's patch to fix inspect.getinnerframes().
2298 Schmolck's patch to fix inspect.getinnerframes().
2297
2299
2298 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2300 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2299 for embedded instances, regarding handling of namespaces and items
2301 for embedded instances, regarding handling of namespaces and items
2300 added to the __builtin__ one. Multiple embedded instances and
2302 added to the __builtin__ one. Multiple embedded instances and
2301 recursive embeddings should work better now (though I'm not sure
2303 recursive embeddings should work better now (though I'm not sure
2302 I've got all the corner cases fixed, that code is a bit of a brain
2304 I've got all the corner cases fixed, that code is a bit of a brain
2303 twister).
2305 twister).
2304
2306
2305 * IPython/Magic.py (magic_edit): added support to edit in-memory
2307 * IPython/Magic.py (magic_edit): added support to edit in-memory
2306 macros (automatically creates the necessary temp files). %edit
2308 macros (automatically creates the necessary temp files). %edit
2307 also doesn't return the file contents anymore, it's just noise.
2309 also doesn't return the file contents anymore, it's just noise.
2308
2310
2309 * IPython/completer.py (Completer.attr_matches): revert change to
2311 * IPython/completer.py (Completer.attr_matches): revert change to
2310 complete only on attributes listed in __all__. I realized it
2312 complete only on attributes listed in __all__. I realized it
2311 cripples the tab-completion system as a tool for exploring the
2313 cripples the tab-completion system as a tool for exploring the
2312 internals of unknown libraries (it renders any non-__all__
2314 internals of unknown libraries (it renders any non-__all__
2313 attribute off-limits). I got bit by this when trying to see
2315 attribute off-limits). I got bit by this when trying to see
2314 something inside the dis module.
2316 something inside the dis module.
2315
2317
2316 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2318 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2317
2319
2318 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2320 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2319 namespace for users and extension writers to hold data in. This
2321 namespace for users and extension writers to hold data in. This
2320 follows the discussion in
2322 follows the discussion in
2321 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2323 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2322
2324
2323 * IPython/completer.py (IPCompleter.complete): small patch to help
2325 * IPython/completer.py (IPCompleter.complete): small patch to help
2324 tab-completion under Emacs, after a suggestion by John Barnard
2326 tab-completion under Emacs, after a suggestion by John Barnard
2325 <barnarj-AT-ccf.org>.
2327 <barnarj-AT-ccf.org>.
2326
2328
2327 * IPython/Magic.py (Magic.extract_input_slices): added support for
2329 * IPython/Magic.py (Magic.extract_input_slices): added support for
2328 the slice notation in magics to use N-M to represent numbers N...M
2330 the slice notation in magics to use N-M to represent numbers N...M
2329 (closed endpoints). This is used by %macro and %save.
2331 (closed endpoints). This is used by %macro and %save.
2330
2332
2331 * IPython/completer.py (Completer.attr_matches): for modules which
2333 * IPython/completer.py (Completer.attr_matches): for modules which
2332 define __all__, complete only on those. After a patch by Jeffrey
2334 define __all__, complete only on those. After a patch by Jeffrey
2333 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2335 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2334 speed up this routine.
2336 speed up this routine.
2335
2337
2336 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2338 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2337 don't know if this is the end of it, but the behavior now is
2339 don't know if this is the end of it, but the behavior now is
2338 certainly much more correct. Note that coupled with macros,
2340 certainly much more correct. Note that coupled with macros,
2339 slightly surprising (at first) behavior may occur: a macro will in
2341 slightly surprising (at first) behavior may occur: a macro will in
2340 general expand to multiple lines of input, so upon exiting, the
2342 general expand to multiple lines of input, so upon exiting, the
2341 in/out counters will both be bumped by the corresponding amount
2343 in/out counters will both be bumped by the corresponding amount
2342 (as if the macro's contents had been typed interactively). Typing
2344 (as if the macro's contents had been typed interactively). Typing
2343 %hist will reveal the intermediate (silently processed) lines.
2345 %hist will reveal the intermediate (silently processed) lines.
2344
2346
2345 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2347 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2346 pickle to fail (%run was overwriting __main__ and not restoring
2348 pickle to fail (%run was overwriting __main__ and not restoring
2347 it, but pickle relies on __main__ to operate).
2349 it, but pickle relies on __main__ to operate).
2348
2350
2349 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2351 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2350 using properties, but forgot to make the main InteractiveShell
2352 using properties, but forgot to make the main InteractiveShell
2351 class a new-style class. Properties fail silently, and
2353 class a new-style class. Properties fail silently, and
2352 mysteriously, with old-style class (getters work, but
2354 mysteriously, with old-style class (getters work, but
2353 setters don't do anything).
2355 setters don't do anything).
2354
2356
2355 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2357 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2356
2358
2357 * IPython/Magic.py (magic_history): fix history reporting bug (I
2359 * IPython/Magic.py (magic_history): fix history reporting bug (I
2358 know some nasties are still there, I just can't seem to find a
2360 know some nasties are still there, I just can't seem to find a
2359 reproducible test case to track them down; the input history is
2361 reproducible test case to track them down; the input history is
2360 falling out of sync...)
2362 falling out of sync...)
2361
2363
2362 * IPython/iplib.py (handle_shell_escape): fix bug where both
2364 * IPython/iplib.py (handle_shell_escape): fix bug where both
2363 aliases and system accesses where broken for indented code (such
2365 aliases and system accesses where broken for indented code (such
2364 as loops).
2366 as loops).
2365
2367
2366 * IPython/genutils.py (shell): fix small but critical bug for
2368 * IPython/genutils.py (shell): fix small but critical bug for
2367 win32 system access.
2369 win32 system access.
2368
2370
2369 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2371 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2370
2372
2371 * IPython/iplib.py (showtraceback): remove use of the
2373 * IPython/iplib.py (showtraceback): remove use of the
2372 sys.last_{type/value/traceback} structures, which are non
2374 sys.last_{type/value/traceback} structures, which are non
2373 thread-safe.
2375 thread-safe.
2374 (_prefilter): change control flow to ensure that we NEVER
2376 (_prefilter): change control flow to ensure that we NEVER
2375 introspect objects when autocall is off. This will guarantee that
2377 introspect objects when autocall is off. This will guarantee that
2376 having an input line of the form 'x.y', where access to attribute
2378 having an input line of the form 'x.y', where access to attribute
2377 'y' has side effects, doesn't trigger the side effect TWICE. It
2379 'y' has side effects, doesn't trigger the side effect TWICE. It
2378 is important to note that, with autocall on, these side effects
2380 is important to note that, with autocall on, these side effects
2379 can still happen.
2381 can still happen.
2380 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2382 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2381 trio. IPython offers these three kinds of special calls which are
2383 trio. IPython offers these three kinds of special calls which are
2382 not python code, and it's a good thing to have their call method
2384 not python code, and it's a good thing to have their call method
2383 be accessible as pure python functions (not just special syntax at
2385 be accessible as pure python functions (not just special syntax at
2384 the command line). It gives us a better internal implementation
2386 the command line). It gives us a better internal implementation
2385 structure, as well as exposing these for user scripting more
2387 structure, as well as exposing these for user scripting more
2386 cleanly.
2388 cleanly.
2387
2389
2388 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2390 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2389 file. Now that they'll be more likely to be used with the
2391 file. Now that they'll be more likely to be used with the
2390 persistance system (%store), I want to make sure their module path
2392 persistance system (%store), I want to make sure their module path
2391 doesn't change in the future, so that we don't break things for
2393 doesn't change in the future, so that we don't break things for
2392 users' persisted data.
2394 users' persisted data.
2393
2395
2394 * IPython/iplib.py (autoindent_update): move indentation
2396 * IPython/iplib.py (autoindent_update): move indentation
2395 management into the _text_ processing loop, not the keyboard
2397 management into the _text_ processing loop, not the keyboard
2396 interactive one. This is necessary to correctly process non-typed
2398 interactive one. This is necessary to correctly process non-typed
2397 multiline input (such as macros).
2399 multiline input (such as macros).
2398
2400
2399 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2401 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2400 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2402 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2401 which was producing problems in the resulting manual.
2403 which was producing problems in the resulting manual.
2402 (magic_whos): improve reporting of instances (show their class,
2404 (magic_whos): improve reporting of instances (show their class,
2403 instead of simply printing 'instance' which isn't terribly
2405 instead of simply printing 'instance' which isn't terribly
2404 informative).
2406 informative).
2405
2407
2406 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2408 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2407 (minor mods) to support network shares under win32.
2409 (minor mods) to support network shares under win32.
2408
2410
2409 * IPython/winconsole.py (get_console_size): add new winconsole
2411 * IPython/winconsole.py (get_console_size): add new winconsole
2410 module and fixes to page_dumb() to improve its behavior under
2412 module and fixes to page_dumb() to improve its behavior under
2411 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2413 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2412
2414
2413 * IPython/Magic.py (Macro): simplified Macro class to just
2415 * IPython/Magic.py (Macro): simplified Macro class to just
2414 subclass list. We've had only 2.2 compatibility for a very long
2416 subclass list. We've had only 2.2 compatibility for a very long
2415 time, yet I was still avoiding subclassing the builtin types. No
2417 time, yet I was still avoiding subclassing the builtin types. No
2416 more (I'm also starting to use properties, though I won't shift to
2418 more (I'm also starting to use properties, though I won't shift to
2417 2.3-specific features quite yet).
2419 2.3-specific features quite yet).
2418 (magic_store): added Ville's patch for lightweight variable
2420 (magic_store): added Ville's patch for lightweight variable
2419 persistence, after a request on the user list by Matt Wilkie
2421 persistence, after a request on the user list by Matt Wilkie
2420 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2422 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2421 details.
2423 details.
2422
2424
2423 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2425 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2424 changed the default logfile name from 'ipython.log' to
2426 changed the default logfile name from 'ipython.log' to
2425 'ipython_log.py'. These logs are real python files, and now that
2427 'ipython_log.py'. These logs are real python files, and now that
2426 we have much better multiline support, people are more likely to
2428 we have much better multiline support, people are more likely to
2427 want to use them as such. Might as well name them correctly.
2429 want to use them as such. Might as well name them correctly.
2428
2430
2429 * IPython/Magic.py: substantial cleanup. While we can't stop
2431 * IPython/Magic.py: substantial cleanup. While we can't stop
2430 using magics as mixins, due to the existing customizations 'out
2432 using magics as mixins, due to the existing customizations 'out
2431 there' which rely on the mixin naming conventions, at least I
2433 there' which rely on the mixin naming conventions, at least I
2432 cleaned out all cross-class name usage. So once we are OK with
2434 cleaned out all cross-class name usage. So once we are OK with
2433 breaking compatibility, the two systems can be separated.
2435 breaking compatibility, the two systems can be separated.
2434
2436
2435 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2437 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2436 anymore, and the class is a fair bit less hideous as well. New
2438 anymore, and the class is a fair bit less hideous as well. New
2437 features were also introduced: timestamping of input, and logging
2439 features were also introduced: timestamping of input, and logging
2438 of output results. These are user-visible with the -t and -o
2440 of output results. These are user-visible with the -t and -o
2439 options to %logstart. Closes
2441 options to %logstart. Closes
2440 http://www.scipy.net/roundup/ipython/issue11 and a request by
2442 http://www.scipy.net/roundup/ipython/issue11 and a request by
2441 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2443 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2442
2444
2443 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2445 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2444
2446
2445 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2447 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2446 better handle backslashes in paths. See the thread 'More Windows
2448 better handle backslashes in paths. See the thread 'More Windows
2447 questions part 2 - \/ characters revisited' on the iypthon user
2449 questions part 2 - \/ characters revisited' on the iypthon user
2448 list:
2450 list:
2449 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2451 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2450
2452
2451 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2453 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2452
2454
2453 (InteractiveShell.__init__): change threaded shells to not use the
2455 (InteractiveShell.__init__): change threaded shells to not use the
2454 ipython crash handler. This was causing more problems than not,
2456 ipython crash handler. This was causing more problems than not,
2455 as exceptions in the main thread (GUI code, typically) would
2457 as exceptions in the main thread (GUI code, typically) would
2456 always show up as a 'crash', when they really weren't.
2458 always show up as a 'crash', when they really weren't.
2457
2459
2458 The colors and exception mode commands (%colors/%xmode) have been
2460 The colors and exception mode commands (%colors/%xmode) have been
2459 synchronized to also take this into account, so users can get
2461 synchronized to also take this into account, so users can get
2460 verbose exceptions for their threaded code as well. I also added
2462 verbose exceptions for their threaded code as well. I also added
2461 support for activating pdb inside this exception handler as well,
2463 support for activating pdb inside this exception handler as well,
2462 so now GUI authors can use IPython's enhanced pdb at runtime.
2464 so now GUI authors can use IPython's enhanced pdb at runtime.
2463
2465
2464 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2466 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2465 true by default, and add it to the shipped ipythonrc file. Since
2467 true by default, and add it to the shipped ipythonrc file. Since
2466 this asks the user before proceeding, I think it's OK to make it
2468 this asks the user before proceeding, I think it's OK to make it
2467 true by default.
2469 true by default.
2468
2470
2469 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2471 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2470 of the previous special-casing of input in the eval loop. I think
2472 of the previous special-casing of input in the eval loop. I think
2471 this is cleaner, as they really are commands and shouldn't have
2473 this is cleaner, as they really are commands and shouldn't have
2472 a special role in the middle of the core code.
2474 a special role in the middle of the core code.
2473
2475
2474 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2476 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2475
2477
2476 * IPython/iplib.py (edit_syntax_error): added support for
2478 * IPython/iplib.py (edit_syntax_error): added support for
2477 automatically reopening the editor if the file had a syntax error
2479 automatically reopening the editor if the file had a syntax error
2478 in it. Thanks to scottt who provided the patch at:
2480 in it. Thanks to scottt who provided the patch at:
2479 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2481 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2480 version committed).
2482 version committed).
2481
2483
2482 * IPython/iplib.py (handle_normal): add suport for multi-line
2484 * IPython/iplib.py (handle_normal): add suport for multi-line
2483 input with emtpy lines. This fixes
2485 input with emtpy lines. This fixes
2484 http://www.scipy.net/roundup/ipython/issue43 and a similar
2486 http://www.scipy.net/roundup/ipython/issue43 and a similar
2485 discussion on the user list.
2487 discussion on the user list.
2486
2488
2487 WARNING: a behavior change is necessarily introduced to support
2489 WARNING: a behavior change is necessarily introduced to support
2488 blank lines: now a single blank line with whitespace does NOT
2490 blank lines: now a single blank line with whitespace does NOT
2489 break the input loop, which means that when autoindent is on, by
2491 break the input loop, which means that when autoindent is on, by
2490 default hitting return on the next (indented) line does NOT exit.
2492 default hitting return on the next (indented) line does NOT exit.
2491
2493
2492 Instead, to exit a multiline input you can either have:
2494 Instead, to exit a multiline input you can either have:
2493
2495
2494 - TWO whitespace lines (just hit return again), or
2496 - TWO whitespace lines (just hit return again), or
2495 - a single whitespace line of a different length than provided
2497 - a single whitespace line of a different length than provided
2496 by the autoindent (add or remove a space).
2498 by the autoindent (add or remove a space).
2497
2499
2498 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2500 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2499 module to better organize all readline-related functionality.
2501 module to better organize all readline-related functionality.
2500 I've deleted FlexCompleter and put all completion clases here.
2502 I've deleted FlexCompleter and put all completion clases here.
2501
2503
2502 * IPython/iplib.py (raw_input): improve indentation management.
2504 * IPython/iplib.py (raw_input): improve indentation management.
2503 It is now possible to paste indented code with autoindent on, and
2505 It is now possible to paste indented code with autoindent on, and
2504 the code is interpreted correctly (though it still looks bad on
2506 the code is interpreted correctly (though it still looks bad on
2505 screen, due to the line-oriented nature of ipython).
2507 screen, due to the line-oriented nature of ipython).
2506 (MagicCompleter.complete): change behavior so that a TAB key on an
2508 (MagicCompleter.complete): change behavior so that a TAB key on an
2507 otherwise empty line actually inserts a tab, instead of completing
2509 otherwise empty line actually inserts a tab, instead of completing
2508 on the entire global namespace. This makes it easier to use the
2510 on the entire global namespace. This makes it easier to use the
2509 TAB key for indentation. After a request by Hans Meine
2511 TAB key for indentation. After a request by Hans Meine
2510 <hans_meine-AT-gmx.net>
2512 <hans_meine-AT-gmx.net>
2511 (_prefilter): add support so that typing plain 'exit' or 'quit'
2513 (_prefilter): add support so that typing plain 'exit' or 'quit'
2512 does a sensible thing. Originally I tried to deviate as little as
2514 does a sensible thing. Originally I tried to deviate as little as
2513 possible from the default python behavior, but even that one may
2515 possible from the default python behavior, but even that one may
2514 change in this direction (thread on python-dev to that effect).
2516 change in this direction (thread on python-dev to that effect).
2515 Regardless, ipython should do the right thing even if CPython's
2517 Regardless, ipython should do the right thing even if CPython's
2516 '>>>' prompt doesn't.
2518 '>>>' prompt doesn't.
2517 (InteractiveShell): removed subclassing code.InteractiveConsole
2519 (InteractiveShell): removed subclassing code.InteractiveConsole
2518 class. By now we'd overridden just about all of its methods: I've
2520 class. By now we'd overridden just about all of its methods: I've
2519 copied the remaining two over, and now ipython is a standalone
2521 copied the remaining two over, and now ipython is a standalone
2520 class. This will provide a clearer picture for the chainsaw
2522 class. This will provide a clearer picture for the chainsaw
2521 branch refactoring.
2523 branch refactoring.
2522
2524
2523 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2525 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2524
2526
2525 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2527 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2526 failures for objects which break when dir() is called on them.
2528 failures for objects which break when dir() is called on them.
2527
2529
2528 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2530 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2529 distinct local and global namespaces in the completer API. This
2531 distinct local and global namespaces in the completer API. This
2530 change allows us to properly handle completion with distinct
2532 change allows us to properly handle completion with distinct
2531 scopes, including in embedded instances (this had never really
2533 scopes, including in embedded instances (this had never really
2532 worked correctly).
2534 worked correctly).
2533
2535
2534 Note: this introduces a change in the constructor for
2536 Note: this introduces a change in the constructor for
2535 MagicCompleter, as a new global_namespace parameter is now the
2537 MagicCompleter, as a new global_namespace parameter is now the
2536 second argument (the others were bumped one position).
2538 second argument (the others were bumped one position).
2537
2539
2538 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2540 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2539
2541
2540 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2542 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2541 embedded instances (which can be done now thanks to Vivian's
2543 embedded instances (which can be done now thanks to Vivian's
2542 frame-handling fixes for pdb).
2544 frame-handling fixes for pdb).
2543 (InteractiveShell.__init__): Fix namespace handling problem in
2545 (InteractiveShell.__init__): Fix namespace handling problem in
2544 embedded instances. We were overwriting __main__ unconditionally,
2546 embedded instances. We were overwriting __main__ unconditionally,
2545 and this should only be done for 'full' (non-embedded) IPython;
2547 and this should only be done for 'full' (non-embedded) IPython;
2546 embedded instances must respect the caller's __main__. Thanks to
2548 embedded instances must respect the caller's __main__. Thanks to
2547 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2549 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2548
2550
2549 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2551 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2550
2552
2551 * setup.py: added download_url to setup(). This registers the
2553 * setup.py: added download_url to setup(). This registers the
2552 download address at PyPI, which is not only useful to humans
2554 download address at PyPI, which is not only useful to humans
2553 browsing the site, but is also picked up by setuptools (the Eggs
2555 browsing the site, but is also picked up by setuptools (the Eggs
2554 machinery). Thanks to Ville and R. Kern for the info/discussion
2556 machinery). Thanks to Ville and R. Kern for the info/discussion
2555 on this.
2557 on this.
2556
2558
2557 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2559 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2558
2560
2559 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2561 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2560 This brings a lot of nice functionality to the pdb mode, which now
2562 This brings a lot of nice functionality to the pdb mode, which now
2561 has tab-completion, syntax highlighting, and better stack handling
2563 has tab-completion, syntax highlighting, and better stack handling
2562 than before. Many thanks to Vivian De Smedt
2564 than before. Many thanks to Vivian De Smedt
2563 <vivian-AT-vdesmedt.com> for the original patches.
2565 <vivian-AT-vdesmedt.com> for the original patches.
2564
2566
2565 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2567 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2566
2568
2567 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2569 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2568 sequence to consistently accept the banner argument. The
2570 sequence to consistently accept the banner argument. The
2569 inconsistency was tripping SAGE, thanks to Gary Zablackis
2571 inconsistency was tripping SAGE, thanks to Gary Zablackis
2570 <gzabl-AT-yahoo.com> for the report.
2572 <gzabl-AT-yahoo.com> for the report.
2571
2573
2572 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2574 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2573
2575
2574 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2576 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2575 Fix bug where a naked 'alias' call in the ipythonrc file would
2577 Fix bug where a naked 'alias' call in the ipythonrc file would
2576 cause a crash. Bug reported by Jorgen Stenarson.
2578 cause a crash. Bug reported by Jorgen Stenarson.
2577
2579
2578 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2580 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2579
2581
2580 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2582 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2581 startup time.
2583 startup time.
2582
2584
2583 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2585 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2584 instances had introduced a bug with globals in normal code. Now
2586 instances had introduced a bug with globals in normal code. Now
2585 it's working in all cases.
2587 it's working in all cases.
2586
2588
2587 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2589 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2588 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2590 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2589 has been introduced to set the default case sensitivity of the
2591 has been introduced to set the default case sensitivity of the
2590 searches. Users can still select either mode at runtime on a
2592 searches. Users can still select either mode at runtime on a
2591 per-search basis.
2593 per-search basis.
2592
2594
2593 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2595 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2594
2596
2595 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2597 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2596 attributes in wildcard searches for subclasses. Modified version
2598 attributes in wildcard searches for subclasses. Modified version
2597 of a patch by Jorgen.
2599 of a patch by Jorgen.
2598
2600
2599 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2601 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2600
2602
2601 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2603 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2602 embedded instances. I added a user_global_ns attribute to the
2604 embedded instances. I added a user_global_ns attribute to the
2603 InteractiveShell class to handle this.
2605 InteractiveShell class to handle this.
2604
2606
2605 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2607 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2606
2608
2607 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2609 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2608 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2610 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2609 (reported under win32, but may happen also in other platforms).
2611 (reported under win32, but may happen also in other platforms).
2610 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2612 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2611
2613
2612 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2614 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2613
2615
2614 * IPython/Magic.py (magic_psearch): new support for wildcard
2616 * IPython/Magic.py (magic_psearch): new support for wildcard
2615 patterns. Now, typing ?a*b will list all names which begin with a
2617 patterns. Now, typing ?a*b will list all names which begin with a
2616 and end in b, for example. The %psearch magic has full
2618 and end in b, for example. The %psearch magic has full
2617 docstrings. Many thanks to JΓΆrgen Stenarson
2619 docstrings. Many thanks to JΓΆrgen Stenarson
2618 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2620 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2619 implementing this functionality.
2621 implementing this functionality.
2620
2622
2621 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2623 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2622
2624
2623 * Manual: fixed long-standing annoyance of double-dashes (as in
2625 * Manual: fixed long-standing annoyance of double-dashes (as in
2624 --prefix=~, for example) being stripped in the HTML version. This
2626 --prefix=~, for example) being stripped in the HTML version. This
2625 is a latex2html bug, but a workaround was provided. Many thanks
2627 is a latex2html bug, but a workaround was provided. Many thanks
2626 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2628 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2627 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2629 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2628 rolling. This seemingly small issue had tripped a number of users
2630 rolling. This seemingly small issue had tripped a number of users
2629 when first installing, so I'm glad to see it gone.
2631 when first installing, so I'm glad to see it gone.
2630
2632
2631 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2633 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2632
2634
2633 * IPython/Extensions/numeric_formats.py: fix missing import,
2635 * IPython/Extensions/numeric_formats.py: fix missing import,
2634 reported by Stephen Walton.
2636 reported by Stephen Walton.
2635
2637
2636 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2638 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2637
2639
2638 * IPython/demo.py: finish demo module, fully documented now.
2640 * IPython/demo.py: finish demo module, fully documented now.
2639
2641
2640 * IPython/genutils.py (file_read): simple little utility to read a
2642 * IPython/genutils.py (file_read): simple little utility to read a
2641 file and ensure it's closed afterwards.
2643 file and ensure it's closed afterwards.
2642
2644
2643 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2645 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2644
2646
2645 * IPython/demo.py (Demo.__init__): added support for individually
2647 * IPython/demo.py (Demo.__init__): added support for individually
2646 tagging blocks for automatic execution.
2648 tagging blocks for automatic execution.
2647
2649
2648 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2650 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2649 syntax-highlighted python sources, requested by John.
2651 syntax-highlighted python sources, requested by John.
2650
2652
2651 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2653 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2652
2654
2653 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2655 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2654 finishing.
2656 finishing.
2655
2657
2656 * IPython/genutils.py (shlex_split): moved from Magic to here,
2658 * IPython/genutils.py (shlex_split): moved from Magic to here,
2657 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2659 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2658
2660
2659 * IPython/demo.py (Demo.__init__): added support for silent
2661 * IPython/demo.py (Demo.__init__): added support for silent
2660 blocks, improved marks as regexps, docstrings written.
2662 blocks, improved marks as regexps, docstrings written.
2661 (Demo.__init__): better docstring, added support for sys.argv.
2663 (Demo.__init__): better docstring, added support for sys.argv.
2662
2664
2663 * IPython/genutils.py (marquee): little utility used by the demo
2665 * IPython/genutils.py (marquee): little utility used by the demo
2664 code, handy in general.
2666 code, handy in general.
2665
2667
2666 * IPython/demo.py (Demo.__init__): new class for interactive
2668 * IPython/demo.py (Demo.__init__): new class for interactive
2667 demos. Not documented yet, I just wrote it in a hurry for
2669 demos. Not documented yet, I just wrote it in a hurry for
2668 scipy'05. Will docstring later.
2670 scipy'05. Will docstring later.
2669
2671
2670 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2672 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2671
2673
2672 * IPython/Shell.py (sigint_handler): Drastic simplification which
2674 * IPython/Shell.py (sigint_handler): Drastic simplification which
2673 also seems to make Ctrl-C work correctly across threads! This is
2675 also seems to make Ctrl-C work correctly across threads! This is
2674 so simple, that I can't beleive I'd missed it before. Needs more
2676 so simple, that I can't beleive I'd missed it before. Needs more
2675 testing, though.
2677 testing, though.
2676 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2678 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2677 like this before...
2679 like this before...
2678
2680
2679 * IPython/genutils.py (get_home_dir): add protection against
2681 * IPython/genutils.py (get_home_dir): add protection against
2680 non-dirs in win32 registry.
2682 non-dirs in win32 registry.
2681
2683
2682 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2684 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2683 bug where dict was mutated while iterating (pysh crash).
2685 bug where dict was mutated while iterating (pysh crash).
2684
2686
2685 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2687 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2686
2688
2687 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2689 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2688 spurious newlines added by this routine. After a report by
2690 spurious newlines added by this routine. After a report by
2689 F. Mantegazza.
2691 F. Mantegazza.
2690
2692
2691 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2693 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2692
2694
2693 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2695 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2694 calls. These were a leftover from the GTK 1.x days, and can cause
2696 calls. These were a leftover from the GTK 1.x days, and can cause
2695 problems in certain cases (after a report by John Hunter).
2697 problems in certain cases (after a report by John Hunter).
2696
2698
2697 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2699 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2698 os.getcwd() fails at init time. Thanks to patch from David Remahl
2700 os.getcwd() fails at init time. Thanks to patch from David Remahl
2699 <chmod007-AT-mac.com>.
2701 <chmod007-AT-mac.com>.
2700 (InteractiveShell.__init__): prevent certain special magics from
2702 (InteractiveShell.__init__): prevent certain special magics from
2701 being shadowed by aliases. Closes
2703 being shadowed by aliases. Closes
2702 http://www.scipy.net/roundup/ipython/issue41.
2704 http://www.scipy.net/roundup/ipython/issue41.
2703
2705
2704 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2706 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2705
2707
2706 * IPython/iplib.py (InteractiveShell.complete): Added new
2708 * IPython/iplib.py (InteractiveShell.complete): Added new
2707 top-level completion method to expose the completion mechanism
2709 top-level completion method to expose the completion mechanism
2708 beyond readline-based environments.
2710 beyond readline-based environments.
2709
2711
2710 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2712 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2711
2713
2712 * tools/ipsvnc (svnversion): fix svnversion capture.
2714 * tools/ipsvnc (svnversion): fix svnversion capture.
2713
2715
2714 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2716 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2715 attribute to self, which was missing. Before, it was set by a
2717 attribute to self, which was missing. Before, it was set by a
2716 routine which in certain cases wasn't being called, so the
2718 routine which in certain cases wasn't being called, so the
2717 instance could end up missing the attribute. This caused a crash.
2719 instance could end up missing the attribute. This caused a crash.
2718 Closes http://www.scipy.net/roundup/ipython/issue40.
2720 Closes http://www.scipy.net/roundup/ipython/issue40.
2719
2721
2720 2005-08-16 Fernando Perez <fperez@colorado.edu>
2722 2005-08-16 Fernando Perez <fperez@colorado.edu>
2721
2723
2722 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2724 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2723 contains non-string attribute. Closes
2725 contains non-string attribute. Closes
2724 http://www.scipy.net/roundup/ipython/issue38.
2726 http://www.scipy.net/roundup/ipython/issue38.
2725
2727
2726 2005-08-14 Fernando Perez <fperez@colorado.edu>
2728 2005-08-14 Fernando Perez <fperez@colorado.edu>
2727
2729
2728 * tools/ipsvnc: Minor improvements, to add changeset info.
2730 * tools/ipsvnc: Minor improvements, to add changeset info.
2729
2731
2730 2005-08-12 Fernando Perez <fperez@colorado.edu>
2732 2005-08-12 Fernando Perez <fperez@colorado.edu>
2731
2733
2732 * IPython/iplib.py (runsource): remove self.code_to_run_src
2734 * IPython/iplib.py (runsource): remove self.code_to_run_src
2733 attribute. I realized this is nothing more than
2735 attribute. I realized this is nothing more than
2734 '\n'.join(self.buffer), and having the same data in two different
2736 '\n'.join(self.buffer), and having the same data in two different
2735 places is just asking for synchronization bugs. This may impact
2737 places is just asking for synchronization bugs. This may impact
2736 people who have custom exception handlers, so I need to warn
2738 people who have custom exception handlers, so I need to warn
2737 ipython-dev about it (F. Mantegazza may use them).
2739 ipython-dev about it (F. Mantegazza may use them).
2738
2740
2739 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2741 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2740
2742
2741 * IPython/genutils.py: fix 2.2 compatibility (generators)
2743 * IPython/genutils.py: fix 2.2 compatibility (generators)
2742
2744
2743 2005-07-18 Fernando Perez <fperez@colorado.edu>
2745 2005-07-18 Fernando Perez <fperez@colorado.edu>
2744
2746
2745 * IPython/genutils.py (get_home_dir): fix to help users with
2747 * IPython/genutils.py (get_home_dir): fix to help users with
2746 invalid $HOME under win32.
2748 invalid $HOME under win32.
2747
2749
2748 2005-07-17 Fernando Perez <fperez@colorado.edu>
2750 2005-07-17 Fernando Perez <fperez@colorado.edu>
2749
2751
2750 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2752 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2751 some old hacks and clean up a bit other routines; code should be
2753 some old hacks and clean up a bit other routines; code should be
2752 simpler and a bit faster.
2754 simpler and a bit faster.
2753
2755
2754 * IPython/iplib.py (interact): removed some last-resort attempts
2756 * IPython/iplib.py (interact): removed some last-resort attempts
2755 to survive broken stdout/stderr. That code was only making it
2757 to survive broken stdout/stderr. That code was only making it
2756 harder to abstract out the i/o (necessary for gui integration),
2758 harder to abstract out the i/o (necessary for gui integration),
2757 and the crashes it could prevent were extremely rare in practice
2759 and the crashes it could prevent were extremely rare in practice
2758 (besides being fully user-induced in a pretty violent manner).
2760 (besides being fully user-induced in a pretty violent manner).
2759
2761
2760 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2762 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2761 Nothing major yet, but the code is simpler to read; this should
2763 Nothing major yet, but the code is simpler to read; this should
2762 make it easier to do more serious modifications in the future.
2764 make it easier to do more serious modifications in the future.
2763
2765
2764 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2766 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2765 which broke in .15 (thanks to a report by Ville).
2767 which broke in .15 (thanks to a report by Ville).
2766
2768
2767 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2769 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2768 be quite correct, I know next to nothing about unicode). This
2770 be quite correct, I know next to nothing about unicode). This
2769 will allow unicode strings to be used in prompts, amongst other
2771 will allow unicode strings to be used in prompts, amongst other
2770 cases. It also will prevent ipython from crashing when unicode
2772 cases. It also will prevent ipython from crashing when unicode
2771 shows up unexpectedly in many places. If ascii encoding fails, we
2773 shows up unexpectedly in many places. If ascii encoding fails, we
2772 assume utf_8. Currently the encoding is not a user-visible
2774 assume utf_8. Currently the encoding is not a user-visible
2773 setting, though it could be made so if there is demand for it.
2775 setting, though it could be made so if there is demand for it.
2774
2776
2775 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2777 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2776
2778
2777 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2779 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2778
2780
2779 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2781 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2780
2782
2781 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2783 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2782 code can work transparently for 2.2/2.3.
2784 code can work transparently for 2.2/2.3.
2783
2785
2784 2005-07-16 Fernando Perez <fperez@colorado.edu>
2786 2005-07-16 Fernando Perez <fperez@colorado.edu>
2785
2787
2786 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2788 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2787 out of the color scheme table used for coloring exception
2789 out of the color scheme table used for coloring exception
2788 tracebacks. This allows user code to add new schemes at runtime.
2790 tracebacks. This allows user code to add new schemes at runtime.
2789 This is a minimally modified version of the patch at
2791 This is a minimally modified version of the patch at
2790 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2792 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2791 for the contribution.
2793 for the contribution.
2792
2794
2793 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2795 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2794 slightly modified version of the patch in
2796 slightly modified version of the patch in
2795 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2797 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2796 to remove the previous try/except solution (which was costlier).
2798 to remove the previous try/except solution (which was costlier).
2797 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2799 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2798
2800
2799 2005-06-08 Fernando Perez <fperez@colorado.edu>
2801 2005-06-08 Fernando Perez <fperez@colorado.edu>
2800
2802
2801 * IPython/iplib.py (write/write_err): Add methods to abstract all
2803 * IPython/iplib.py (write/write_err): Add methods to abstract all
2802 I/O a bit more.
2804 I/O a bit more.
2803
2805
2804 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2806 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2805 warning, reported by Aric Hagberg, fix by JD Hunter.
2807 warning, reported by Aric Hagberg, fix by JD Hunter.
2806
2808
2807 2005-06-02 *** Released version 0.6.15
2809 2005-06-02 *** Released version 0.6.15
2808
2810
2809 2005-06-01 Fernando Perez <fperez@colorado.edu>
2811 2005-06-01 Fernando Perez <fperez@colorado.edu>
2810
2812
2811 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2813 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2812 tab-completion of filenames within open-quoted strings. Note that
2814 tab-completion of filenames within open-quoted strings. Note that
2813 this requires that in ~/.ipython/ipythonrc, users change the
2815 this requires that in ~/.ipython/ipythonrc, users change the
2814 readline delimiters configuration to read:
2816 readline delimiters configuration to read:
2815
2817
2816 readline_remove_delims -/~
2818 readline_remove_delims -/~
2817
2819
2818
2820
2819 2005-05-31 *** Released version 0.6.14
2821 2005-05-31 *** Released version 0.6.14
2820
2822
2821 2005-05-29 Fernando Perez <fperez@colorado.edu>
2823 2005-05-29 Fernando Perez <fperez@colorado.edu>
2822
2824
2823 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2825 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2824 with files not on the filesystem. Reported by Eliyahu Sandler
2826 with files not on the filesystem. Reported by Eliyahu Sandler
2825 <eli@gondolin.net>
2827 <eli@gondolin.net>
2826
2828
2827 2005-05-22 Fernando Perez <fperez@colorado.edu>
2829 2005-05-22 Fernando Perez <fperez@colorado.edu>
2828
2830
2829 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2831 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2830 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2832 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2831
2833
2832 2005-05-19 Fernando Perez <fperez@colorado.edu>
2834 2005-05-19 Fernando Perez <fperez@colorado.edu>
2833
2835
2834 * IPython/iplib.py (safe_execfile): close a file which could be
2836 * IPython/iplib.py (safe_execfile): close a file which could be
2835 left open (causing problems in win32, which locks open files).
2837 left open (causing problems in win32, which locks open files).
2836 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2838 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2837
2839
2838 2005-05-18 Fernando Perez <fperez@colorado.edu>
2840 2005-05-18 Fernando Perez <fperez@colorado.edu>
2839
2841
2840 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2842 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2841 keyword arguments correctly to safe_execfile().
2843 keyword arguments correctly to safe_execfile().
2842
2844
2843 2005-05-13 Fernando Perez <fperez@colorado.edu>
2845 2005-05-13 Fernando Perez <fperez@colorado.edu>
2844
2846
2845 * ipython.1: Added info about Qt to manpage, and threads warning
2847 * ipython.1: Added info about Qt to manpage, and threads warning
2846 to usage page (invoked with --help).
2848 to usage page (invoked with --help).
2847
2849
2848 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2850 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2849 new matcher (it goes at the end of the priority list) to do
2851 new matcher (it goes at the end of the priority list) to do
2850 tab-completion on named function arguments. Submitted by George
2852 tab-completion on named function arguments. Submitted by George
2851 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2853 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2852 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2854 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2853 for more details.
2855 for more details.
2854
2856
2855 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2857 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2856 SystemExit exceptions in the script being run. Thanks to a report
2858 SystemExit exceptions in the script being run. Thanks to a report
2857 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2859 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2858 producing very annoying behavior when running unit tests.
2860 producing very annoying behavior when running unit tests.
2859
2861
2860 2005-05-12 Fernando Perez <fperez@colorado.edu>
2862 2005-05-12 Fernando Perez <fperez@colorado.edu>
2861
2863
2862 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2864 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2863 which I'd broken (again) due to a changed regexp. In the process,
2865 which I'd broken (again) due to a changed regexp. In the process,
2864 added ';' as an escape to auto-quote the whole line without
2866 added ';' as an escape to auto-quote the whole line without
2865 splitting its arguments. Thanks to a report by Jerry McRae
2867 splitting its arguments. Thanks to a report by Jerry McRae
2866 <qrs0xyc02-AT-sneakemail.com>.
2868 <qrs0xyc02-AT-sneakemail.com>.
2867
2869
2868 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2870 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2869 possible crashes caused by a TokenError. Reported by Ed Schofield
2871 possible crashes caused by a TokenError. Reported by Ed Schofield
2870 <schofield-AT-ftw.at>.
2872 <schofield-AT-ftw.at>.
2871
2873
2872 2005-05-06 Fernando Perez <fperez@colorado.edu>
2874 2005-05-06 Fernando Perez <fperez@colorado.edu>
2873
2875
2874 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2876 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2875
2877
2876 2005-04-29 Fernando Perez <fperez@colorado.edu>
2878 2005-04-29 Fernando Perez <fperez@colorado.edu>
2877
2879
2878 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2880 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2879 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2881 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2880 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2882 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2881 which provides support for Qt interactive usage (similar to the
2883 which provides support for Qt interactive usage (similar to the
2882 existing one for WX and GTK). This had been often requested.
2884 existing one for WX and GTK). This had been often requested.
2883
2885
2884 2005-04-14 *** Released version 0.6.13
2886 2005-04-14 *** Released version 0.6.13
2885
2887
2886 2005-04-08 Fernando Perez <fperez@colorado.edu>
2888 2005-04-08 Fernando Perez <fperez@colorado.edu>
2887
2889
2888 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2890 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2889 from _ofind, which gets called on almost every input line. Now,
2891 from _ofind, which gets called on almost every input line. Now,
2890 we only try to get docstrings if they are actually going to be
2892 we only try to get docstrings if they are actually going to be
2891 used (the overhead of fetching unnecessary docstrings can be
2893 used (the overhead of fetching unnecessary docstrings can be
2892 noticeable for certain objects, such as Pyro proxies).
2894 noticeable for certain objects, such as Pyro proxies).
2893
2895
2894 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2896 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2895 for completers. For some reason I had been passing them the state
2897 for completers. For some reason I had been passing them the state
2896 variable, which completers never actually need, and was in
2898 variable, which completers never actually need, and was in
2897 conflict with the rlcompleter API. Custom completers ONLY need to
2899 conflict with the rlcompleter API. Custom completers ONLY need to
2898 take the text parameter.
2900 take the text parameter.
2899
2901
2900 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2902 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2901 work correctly in pysh. I've also moved all the logic which used
2903 work correctly in pysh. I've also moved all the logic which used
2902 to be in pysh.py here, which will prevent problems with future
2904 to be in pysh.py here, which will prevent problems with future
2903 upgrades. However, this time I must warn users to update their
2905 upgrades. However, this time I must warn users to update their
2904 pysh profile to include the line
2906 pysh profile to include the line
2905
2907
2906 import_all IPython.Extensions.InterpreterExec
2908 import_all IPython.Extensions.InterpreterExec
2907
2909
2908 because otherwise things won't work for them. They MUST also
2910 because otherwise things won't work for them. They MUST also
2909 delete pysh.py and the line
2911 delete pysh.py and the line
2910
2912
2911 execfile pysh.py
2913 execfile pysh.py
2912
2914
2913 from their ipythonrc-pysh.
2915 from their ipythonrc-pysh.
2914
2916
2915 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2917 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2916 robust in the face of objects whose dir() returns non-strings
2918 robust in the face of objects whose dir() returns non-strings
2917 (which it shouldn't, but some broken libs like ITK do). Thanks to
2919 (which it shouldn't, but some broken libs like ITK do). Thanks to
2918 a patch by John Hunter (implemented differently, though). Also
2920 a patch by John Hunter (implemented differently, though). Also
2919 minor improvements by using .extend instead of + on lists.
2921 minor improvements by using .extend instead of + on lists.
2920
2922
2921 * pysh.py:
2923 * pysh.py:
2922
2924
2923 2005-04-06 Fernando Perez <fperez@colorado.edu>
2925 2005-04-06 Fernando Perez <fperez@colorado.edu>
2924
2926
2925 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2927 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2926 by default, so that all users benefit from it. Those who don't
2928 by default, so that all users benefit from it. Those who don't
2927 want it can still turn it off.
2929 want it can still turn it off.
2928
2930
2929 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2931 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2930 config file, I'd forgotten about this, so users were getting it
2932 config file, I'd forgotten about this, so users were getting it
2931 off by default.
2933 off by default.
2932
2934
2933 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2935 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2934 consistency. Now magics can be called in multiline statements,
2936 consistency. Now magics can be called in multiline statements,
2935 and python variables can be expanded in magic calls via $var.
2937 and python variables can be expanded in magic calls via $var.
2936 This makes the magic system behave just like aliases or !system
2938 This makes the magic system behave just like aliases or !system
2937 calls.
2939 calls.
2938
2940
2939 2005-03-28 Fernando Perez <fperez@colorado.edu>
2941 2005-03-28 Fernando Perez <fperez@colorado.edu>
2940
2942
2941 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2943 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2942 expensive string additions for building command. Add support for
2944 expensive string additions for building command. Add support for
2943 trailing ';' when autocall is used.
2945 trailing ';' when autocall is used.
2944
2946
2945 2005-03-26 Fernando Perez <fperez@colorado.edu>
2947 2005-03-26 Fernando Perez <fperez@colorado.edu>
2946
2948
2947 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2949 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2948 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2950 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2949 ipython.el robust against prompts with any number of spaces
2951 ipython.el robust against prompts with any number of spaces
2950 (including 0) after the ':' character.
2952 (including 0) after the ':' character.
2951
2953
2952 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2954 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2953 continuation prompt, which misled users to think the line was
2955 continuation prompt, which misled users to think the line was
2954 already indented. Closes debian Bug#300847, reported to me by
2956 already indented. Closes debian Bug#300847, reported to me by
2955 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2957 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2956
2958
2957 2005-03-23 Fernando Perez <fperez@colorado.edu>
2959 2005-03-23 Fernando Perez <fperez@colorado.edu>
2958
2960
2959 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2961 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2960 properly aligned if they have embedded newlines.
2962 properly aligned if they have embedded newlines.
2961
2963
2962 * IPython/iplib.py (runlines): Add a public method to expose
2964 * IPython/iplib.py (runlines): Add a public method to expose
2963 IPython's code execution machinery, so that users can run strings
2965 IPython's code execution machinery, so that users can run strings
2964 as if they had been typed at the prompt interactively.
2966 as if they had been typed at the prompt interactively.
2965 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2967 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2966 methods which can call the system shell, but with python variable
2968 methods which can call the system shell, but with python variable
2967 expansion. The three such methods are: __IPYTHON__.system,
2969 expansion. The three such methods are: __IPYTHON__.system,
2968 .getoutput and .getoutputerror. These need to be documented in a
2970 .getoutput and .getoutputerror. These need to be documented in a
2969 'public API' section (to be written) of the manual.
2971 'public API' section (to be written) of the manual.
2970
2972
2971 2005-03-20 Fernando Perez <fperez@colorado.edu>
2973 2005-03-20 Fernando Perez <fperez@colorado.edu>
2972
2974
2973 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2975 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2974 for custom exception handling. This is quite powerful, and it
2976 for custom exception handling. This is quite powerful, and it
2975 allows for user-installable exception handlers which can trap
2977 allows for user-installable exception handlers which can trap
2976 custom exceptions at runtime and treat them separately from
2978 custom exceptions at runtime and treat them separately from
2977 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2979 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2978 Mantegazza <mantegazza-AT-ill.fr>.
2980 Mantegazza <mantegazza-AT-ill.fr>.
2979 (InteractiveShell.set_custom_completer): public API function to
2981 (InteractiveShell.set_custom_completer): public API function to
2980 add new completers at runtime.
2982 add new completers at runtime.
2981
2983
2982 2005-03-19 Fernando Perez <fperez@colorado.edu>
2984 2005-03-19 Fernando Perez <fperez@colorado.edu>
2983
2985
2984 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2986 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2985 allow objects which provide their docstrings via non-standard
2987 allow objects which provide their docstrings via non-standard
2986 mechanisms (like Pyro proxies) to still be inspected by ipython's
2988 mechanisms (like Pyro proxies) to still be inspected by ipython's
2987 ? system.
2989 ? system.
2988
2990
2989 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2991 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2990 automatic capture system. I tried quite hard to make it work
2992 automatic capture system. I tried quite hard to make it work
2991 reliably, and simply failed. I tried many combinations with the
2993 reliably, and simply failed. I tried many combinations with the
2992 subprocess module, but eventually nothing worked in all needed
2994 subprocess module, but eventually nothing worked in all needed
2993 cases (not blocking stdin for the child, duplicating stdout
2995 cases (not blocking stdin for the child, duplicating stdout
2994 without blocking, etc). The new %sc/%sx still do capture to these
2996 without blocking, etc). The new %sc/%sx still do capture to these
2995 magical list/string objects which make shell use much more
2997 magical list/string objects which make shell use much more
2996 conveninent, so not all is lost.
2998 conveninent, so not all is lost.
2997
2999
2998 XXX - FIX MANUAL for the change above!
3000 XXX - FIX MANUAL for the change above!
2999
3001
3000 (runsource): I copied code.py's runsource() into ipython to modify
3002 (runsource): I copied code.py's runsource() into ipython to modify
3001 it a bit. Now the code object and source to be executed are
3003 it a bit. Now the code object and source to be executed are
3002 stored in ipython. This makes this info accessible to third-party
3004 stored in ipython. This makes this info accessible to third-party
3003 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
3005 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
3004 Mantegazza <mantegazza-AT-ill.fr>.
3006 Mantegazza <mantegazza-AT-ill.fr>.
3005
3007
3006 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3008 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3007 history-search via readline (like C-p/C-n). I'd wanted this for a
3009 history-search via readline (like C-p/C-n). I'd wanted this for a
3008 long time, but only recently found out how to do it. For users
3010 long time, but only recently found out how to do it. For users
3009 who already have their ipythonrc files made and want this, just
3011 who already have their ipythonrc files made and want this, just
3010 add:
3012 add:
3011
3013
3012 readline_parse_and_bind "\e[A": history-search-backward
3014 readline_parse_and_bind "\e[A": history-search-backward
3013 readline_parse_and_bind "\e[B": history-search-forward
3015 readline_parse_and_bind "\e[B": history-search-forward
3014
3016
3015 2005-03-18 Fernando Perez <fperez@colorado.edu>
3017 2005-03-18 Fernando Perez <fperez@colorado.edu>
3016
3018
3017 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3019 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3018 LSString and SList classes which allow transparent conversions
3020 LSString and SList classes which allow transparent conversions
3019 between list mode and whitespace-separated string.
3021 between list mode and whitespace-separated string.
3020 (magic_r): Fix recursion problem in %r.
3022 (magic_r): Fix recursion problem in %r.
3021
3023
3022 * IPython/genutils.py (LSString): New class to be used for
3024 * IPython/genutils.py (LSString): New class to be used for
3023 automatic storage of the results of all alias/system calls in _o
3025 automatic storage of the results of all alias/system calls in _o
3024 and _e (stdout/err). These provide a .l/.list attribute which
3026 and _e (stdout/err). These provide a .l/.list attribute which
3025 does automatic splitting on newlines. This means that for most
3027 does automatic splitting on newlines. This means that for most
3026 uses, you'll never need to do capturing of output with %sc/%sx
3028 uses, you'll never need to do capturing of output with %sc/%sx
3027 anymore, since ipython keeps this always done for you. Note that
3029 anymore, since ipython keeps this always done for you. Note that
3028 only the LAST results are stored, the _o/e variables are
3030 only the LAST results are stored, the _o/e variables are
3029 overwritten on each call. If you need to save their contents
3031 overwritten on each call. If you need to save their contents
3030 further, simply bind them to any other name.
3032 further, simply bind them to any other name.
3031
3033
3032 2005-03-17 Fernando Perez <fperez@colorado.edu>
3034 2005-03-17 Fernando Perez <fperez@colorado.edu>
3033
3035
3034 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3036 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3035 prompt namespace handling.
3037 prompt namespace handling.
3036
3038
3037 2005-03-16 Fernando Perez <fperez@colorado.edu>
3039 2005-03-16 Fernando Perez <fperez@colorado.edu>
3038
3040
3039 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3041 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3040 classic prompts to be '>>> ' (final space was missing, and it
3042 classic prompts to be '>>> ' (final space was missing, and it
3041 trips the emacs python mode).
3043 trips the emacs python mode).
3042 (BasePrompt.__str__): Added safe support for dynamic prompt
3044 (BasePrompt.__str__): Added safe support for dynamic prompt
3043 strings. Now you can set your prompt string to be '$x', and the
3045 strings. Now you can set your prompt string to be '$x', and the
3044 value of x will be printed from your interactive namespace. The
3046 value of x will be printed from your interactive namespace. The
3045 interpolation syntax includes the full Itpl support, so
3047 interpolation syntax includes the full Itpl support, so
3046 ${foo()+x+bar()} is a valid prompt string now, and the function
3048 ${foo()+x+bar()} is a valid prompt string now, and the function
3047 calls will be made at runtime.
3049 calls will be made at runtime.
3048
3050
3049 2005-03-15 Fernando Perez <fperez@colorado.edu>
3051 2005-03-15 Fernando Perez <fperez@colorado.edu>
3050
3052
3051 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3053 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3052 avoid name clashes in pylab. %hist still works, it just forwards
3054 avoid name clashes in pylab. %hist still works, it just forwards
3053 the call to %history.
3055 the call to %history.
3054
3056
3055 2005-03-02 *** Released version 0.6.12
3057 2005-03-02 *** Released version 0.6.12
3056
3058
3057 2005-03-02 Fernando Perez <fperez@colorado.edu>
3059 2005-03-02 Fernando Perez <fperez@colorado.edu>
3058
3060
3059 * IPython/iplib.py (handle_magic): log magic calls properly as
3061 * IPython/iplib.py (handle_magic): log magic calls properly as
3060 ipmagic() function calls.
3062 ipmagic() function calls.
3061
3063
3062 * IPython/Magic.py (magic_time): Improved %time to support
3064 * IPython/Magic.py (magic_time): Improved %time to support
3063 statements and provide wall-clock as well as CPU time.
3065 statements and provide wall-clock as well as CPU time.
3064
3066
3065 2005-02-27 Fernando Perez <fperez@colorado.edu>
3067 2005-02-27 Fernando Perez <fperez@colorado.edu>
3066
3068
3067 * IPython/hooks.py: New hooks module, to expose user-modifiable
3069 * IPython/hooks.py: New hooks module, to expose user-modifiable
3068 IPython functionality in a clean manner. For now only the editor
3070 IPython functionality in a clean manner. For now only the editor
3069 hook is actually written, and other thigns which I intend to turn
3071 hook is actually written, and other thigns which I intend to turn
3070 into proper hooks aren't yet there. The display and prefilter
3072 into proper hooks aren't yet there. The display and prefilter
3071 stuff, for example, should be hooks. But at least now the
3073 stuff, for example, should be hooks. But at least now the
3072 framework is in place, and the rest can be moved here with more
3074 framework is in place, and the rest can be moved here with more
3073 time later. IPython had had a .hooks variable for a long time for
3075 time later. IPython had had a .hooks variable for a long time for
3074 this purpose, but I'd never actually used it for anything.
3076 this purpose, but I'd never actually used it for anything.
3075
3077
3076 2005-02-26 Fernando Perez <fperez@colorado.edu>
3078 2005-02-26 Fernando Perez <fperez@colorado.edu>
3077
3079
3078 * IPython/ipmaker.py (make_IPython): make the default ipython
3080 * IPython/ipmaker.py (make_IPython): make the default ipython
3079 directory be called _ipython under win32, to follow more the
3081 directory be called _ipython under win32, to follow more the
3080 naming peculiarities of that platform (where buggy software like
3082 naming peculiarities of that platform (where buggy software like
3081 Visual Sourcesafe breaks with .named directories). Reported by
3083 Visual Sourcesafe breaks with .named directories). Reported by
3082 Ville Vainio.
3084 Ville Vainio.
3083
3085
3084 2005-02-23 Fernando Perez <fperez@colorado.edu>
3086 2005-02-23 Fernando Perez <fperez@colorado.edu>
3085
3087
3086 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3088 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3087 auto_aliases for win32 which were causing problems. Users can
3089 auto_aliases for win32 which were causing problems. Users can
3088 define the ones they personally like.
3090 define the ones they personally like.
3089
3091
3090 2005-02-21 Fernando Perez <fperez@colorado.edu>
3092 2005-02-21 Fernando Perez <fperez@colorado.edu>
3091
3093
3092 * IPython/Magic.py (magic_time): new magic to time execution of
3094 * IPython/Magic.py (magic_time): new magic to time execution of
3093 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3095 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3094
3096
3095 2005-02-19 Fernando Perez <fperez@colorado.edu>
3097 2005-02-19 Fernando Perez <fperez@colorado.edu>
3096
3098
3097 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3099 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3098 into keys (for prompts, for example).
3100 into keys (for prompts, for example).
3099
3101
3100 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3102 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3101 prompts in case users want them. This introduces a small behavior
3103 prompts in case users want them. This introduces a small behavior
3102 change: ipython does not automatically add a space to all prompts
3104 change: ipython does not automatically add a space to all prompts
3103 anymore. To get the old prompts with a space, users should add it
3105 anymore. To get the old prompts with a space, users should add it
3104 manually to their ipythonrc file, so for example prompt_in1 should
3106 manually to their ipythonrc file, so for example prompt_in1 should
3105 now read 'In [\#]: ' instead of 'In [\#]:'.
3107 now read 'In [\#]: ' instead of 'In [\#]:'.
3106 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3108 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3107 file) to control left-padding of secondary prompts.
3109 file) to control left-padding of secondary prompts.
3108
3110
3109 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3111 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3110 the profiler can't be imported. Fix for Debian, which removed
3112 the profiler can't be imported. Fix for Debian, which removed
3111 profile.py because of License issues. I applied a slightly
3113 profile.py because of License issues. I applied a slightly
3112 modified version of the original Debian patch at
3114 modified version of the original Debian patch at
3113 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3115 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3114
3116
3115 2005-02-17 Fernando Perez <fperez@colorado.edu>
3117 2005-02-17 Fernando Perez <fperez@colorado.edu>
3116
3118
3117 * IPython/genutils.py (native_line_ends): Fix bug which would
3119 * IPython/genutils.py (native_line_ends): Fix bug which would
3118 cause improper line-ends under win32 b/c I was not opening files
3120 cause improper line-ends under win32 b/c I was not opening files
3119 in binary mode. Bug report and fix thanks to Ville.
3121 in binary mode. Bug report and fix thanks to Ville.
3120
3122
3121 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3123 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3122 trying to catch spurious foo[1] autocalls. My fix actually broke
3124 trying to catch spurious foo[1] autocalls. My fix actually broke
3123 ',/' autoquote/call with explicit escape (bad regexp).
3125 ',/' autoquote/call with explicit escape (bad regexp).
3124
3126
3125 2005-02-15 *** Released version 0.6.11
3127 2005-02-15 *** Released version 0.6.11
3126
3128
3127 2005-02-14 Fernando Perez <fperez@colorado.edu>
3129 2005-02-14 Fernando Perez <fperez@colorado.edu>
3128
3130
3129 * IPython/background_jobs.py: New background job management
3131 * IPython/background_jobs.py: New background job management
3130 subsystem. This is implemented via a new set of classes, and
3132 subsystem. This is implemented via a new set of classes, and
3131 IPython now provides a builtin 'jobs' object for background job
3133 IPython now provides a builtin 'jobs' object for background job
3132 execution. A convenience %bg magic serves as a lightweight
3134 execution. A convenience %bg magic serves as a lightweight
3133 frontend for starting the more common type of calls. This was
3135 frontend for starting the more common type of calls. This was
3134 inspired by discussions with B. Granger and the BackgroundCommand
3136 inspired by discussions with B. Granger and the BackgroundCommand
3135 class described in the book Python Scripting for Computational
3137 class described in the book Python Scripting for Computational
3136 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3138 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3137 (although ultimately no code from this text was used, as IPython's
3139 (although ultimately no code from this text was used, as IPython's
3138 system is a separate implementation).
3140 system is a separate implementation).
3139
3141
3140 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3142 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3141 to control the completion of single/double underscore names
3143 to control the completion of single/double underscore names
3142 separately. As documented in the example ipytonrc file, the
3144 separately. As documented in the example ipytonrc file, the
3143 readline_omit__names variable can now be set to 2, to omit even
3145 readline_omit__names variable can now be set to 2, to omit even
3144 single underscore names. Thanks to a patch by Brian Wong
3146 single underscore names. Thanks to a patch by Brian Wong
3145 <BrianWong-AT-AirgoNetworks.Com>.
3147 <BrianWong-AT-AirgoNetworks.Com>.
3146 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3148 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3147 be autocalled as foo([1]) if foo were callable. A problem for
3149 be autocalled as foo([1]) if foo were callable. A problem for
3148 things which are both callable and implement __getitem__.
3150 things which are both callable and implement __getitem__.
3149 (init_readline): Fix autoindentation for win32. Thanks to a patch
3151 (init_readline): Fix autoindentation for win32. Thanks to a patch
3150 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3152 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3151
3153
3152 2005-02-12 Fernando Perez <fperez@colorado.edu>
3154 2005-02-12 Fernando Perez <fperez@colorado.edu>
3153
3155
3154 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3156 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3155 which I had written long ago to sort out user error messages which
3157 which I had written long ago to sort out user error messages which
3156 may occur during startup. This seemed like a good idea initially,
3158 may occur during startup. This seemed like a good idea initially,
3157 but it has proven a disaster in retrospect. I don't want to
3159 but it has proven a disaster in retrospect. I don't want to
3158 change much code for now, so my fix is to set the internal 'debug'
3160 change much code for now, so my fix is to set the internal 'debug'
3159 flag to true everywhere, whose only job was precisely to control
3161 flag to true everywhere, whose only job was precisely to control
3160 this subsystem. This closes issue 28 (as well as avoiding all
3162 this subsystem. This closes issue 28 (as well as avoiding all
3161 sorts of strange hangups which occur from time to time).
3163 sorts of strange hangups which occur from time to time).
3162
3164
3163 2005-02-07 Fernando Perez <fperez@colorado.edu>
3165 2005-02-07 Fernando Perez <fperez@colorado.edu>
3164
3166
3165 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3167 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3166 previous call produced a syntax error.
3168 previous call produced a syntax error.
3167
3169
3168 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3170 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3169 classes without constructor.
3171 classes without constructor.
3170
3172
3171 2005-02-06 Fernando Perez <fperez@colorado.edu>
3173 2005-02-06 Fernando Perez <fperez@colorado.edu>
3172
3174
3173 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3175 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3174 completions with the results of each matcher, so we return results
3176 completions with the results of each matcher, so we return results
3175 to the user from all namespaces. This breaks with ipython
3177 to the user from all namespaces. This breaks with ipython
3176 tradition, but I think it's a nicer behavior. Now you get all
3178 tradition, but I think it's a nicer behavior. Now you get all
3177 possible completions listed, from all possible namespaces (python,
3179 possible completions listed, from all possible namespaces (python,
3178 filesystem, magics...) After a request by John Hunter
3180 filesystem, magics...) After a request by John Hunter
3179 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3181 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3180
3182
3181 2005-02-05 Fernando Perez <fperez@colorado.edu>
3183 2005-02-05 Fernando Perez <fperez@colorado.edu>
3182
3184
3183 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3185 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3184 the call had quote characters in it (the quotes were stripped).
3186 the call had quote characters in it (the quotes were stripped).
3185
3187
3186 2005-01-31 Fernando Perez <fperez@colorado.edu>
3188 2005-01-31 Fernando Perez <fperez@colorado.edu>
3187
3189
3188 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3190 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3189 Itpl.itpl() to make the code more robust against psyco
3191 Itpl.itpl() to make the code more robust against psyco
3190 optimizations.
3192 optimizations.
3191
3193
3192 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3194 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3193 of causing an exception. Quicker, cleaner.
3195 of causing an exception. Quicker, cleaner.
3194
3196
3195 2005-01-28 Fernando Perez <fperez@colorado.edu>
3197 2005-01-28 Fernando Perez <fperez@colorado.edu>
3196
3198
3197 * scripts/ipython_win_post_install.py (install): hardcode
3199 * scripts/ipython_win_post_install.py (install): hardcode
3198 sys.prefix+'python.exe' as the executable path. It turns out that
3200 sys.prefix+'python.exe' as the executable path. It turns out that
3199 during the post-installation run, sys.executable resolves to the
3201 during the post-installation run, sys.executable resolves to the
3200 name of the binary installer! I should report this as a distutils
3202 name of the binary installer! I should report this as a distutils
3201 bug, I think. I updated the .10 release with this tiny fix, to
3203 bug, I think. I updated the .10 release with this tiny fix, to
3202 avoid annoying the lists further.
3204 avoid annoying the lists further.
3203
3205
3204 2005-01-27 *** Released version 0.6.10
3206 2005-01-27 *** Released version 0.6.10
3205
3207
3206 2005-01-27 Fernando Perez <fperez@colorado.edu>
3208 2005-01-27 Fernando Perez <fperez@colorado.edu>
3207
3209
3208 * IPython/numutils.py (norm): Added 'inf' as optional name for
3210 * IPython/numutils.py (norm): Added 'inf' as optional name for
3209 L-infinity norm, included references to mathworld.com for vector
3211 L-infinity norm, included references to mathworld.com for vector
3210 norm definitions.
3212 norm definitions.
3211 (amin/amax): added amin/amax for array min/max. Similar to what
3213 (amin/amax): added amin/amax for array min/max. Similar to what
3212 pylab ships with after the recent reorganization of names.
3214 pylab ships with after the recent reorganization of names.
3213 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3215 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3214
3216
3215 * ipython.el: committed Alex's recent fixes and improvements.
3217 * ipython.el: committed Alex's recent fixes and improvements.
3216 Tested with python-mode from CVS, and it looks excellent. Since
3218 Tested with python-mode from CVS, and it looks excellent. Since
3217 python-mode hasn't released anything in a while, I'm temporarily
3219 python-mode hasn't released anything in a while, I'm temporarily
3218 putting a copy of today's CVS (v 4.70) of python-mode in:
3220 putting a copy of today's CVS (v 4.70) of python-mode in:
3219 http://ipython.scipy.org/tmp/python-mode.el
3221 http://ipython.scipy.org/tmp/python-mode.el
3220
3222
3221 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3223 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3222 sys.executable for the executable name, instead of assuming it's
3224 sys.executable for the executable name, instead of assuming it's
3223 called 'python.exe' (the post-installer would have produced broken
3225 called 'python.exe' (the post-installer would have produced broken
3224 setups on systems with a differently named python binary).
3226 setups on systems with a differently named python binary).
3225
3227
3226 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3228 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3227 references to os.linesep, to make the code more
3229 references to os.linesep, to make the code more
3228 platform-independent. This is also part of the win32 coloring
3230 platform-independent. This is also part of the win32 coloring
3229 fixes.
3231 fixes.
3230
3232
3231 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3233 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3232 lines, which actually cause coloring bugs because the length of
3234 lines, which actually cause coloring bugs because the length of
3233 the line is very difficult to correctly compute with embedded
3235 the line is very difficult to correctly compute with embedded
3234 escapes. This was the source of all the coloring problems under
3236 escapes. This was the source of all the coloring problems under
3235 Win32. I think that _finally_, Win32 users have a properly
3237 Win32. I think that _finally_, Win32 users have a properly
3236 working ipython in all respects. This would never have happened
3238 working ipython in all respects. This would never have happened
3237 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3239 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3238
3240
3239 2005-01-26 *** Released version 0.6.9
3241 2005-01-26 *** Released version 0.6.9
3240
3242
3241 2005-01-25 Fernando Perez <fperez@colorado.edu>
3243 2005-01-25 Fernando Perez <fperez@colorado.edu>
3242
3244
3243 * setup.py: finally, we have a true Windows installer, thanks to
3245 * setup.py: finally, we have a true Windows installer, thanks to
3244 the excellent work of Viktor Ransmayr
3246 the excellent work of Viktor Ransmayr
3245 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3247 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3246 Windows users. The setup routine is quite a bit cleaner thanks to
3248 Windows users. The setup routine is quite a bit cleaner thanks to
3247 this, and the post-install script uses the proper functions to
3249 this, and the post-install script uses the proper functions to
3248 allow a clean de-installation using the standard Windows Control
3250 allow a clean de-installation using the standard Windows Control
3249 Panel.
3251 Panel.
3250
3252
3251 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3253 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3252 environment variable under all OSes (including win32) if
3254 environment variable under all OSes (including win32) if
3253 available. This will give consistency to win32 users who have set
3255 available. This will give consistency to win32 users who have set
3254 this variable for any reason. If os.environ['HOME'] fails, the
3256 this variable for any reason. If os.environ['HOME'] fails, the
3255 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3257 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3256
3258
3257 2005-01-24 Fernando Perez <fperez@colorado.edu>
3259 2005-01-24 Fernando Perez <fperez@colorado.edu>
3258
3260
3259 * IPython/numutils.py (empty_like): add empty_like(), similar to
3261 * IPython/numutils.py (empty_like): add empty_like(), similar to
3260 zeros_like() but taking advantage of the new empty() Numeric routine.
3262 zeros_like() but taking advantage of the new empty() Numeric routine.
3261
3263
3262 2005-01-23 *** Released version 0.6.8
3264 2005-01-23 *** Released version 0.6.8
3263
3265
3264 2005-01-22 Fernando Perez <fperez@colorado.edu>
3266 2005-01-22 Fernando Perez <fperez@colorado.edu>
3265
3267
3266 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3268 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3267 automatic show() calls. After discussing things with JDH, it
3269 automatic show() calls. After discussing things with JDH, it
3268 turns out there are too many corner cases where this can go wrong.
3270 turns out there are too many corner cases where this can go wrong.
3269 It's best not to try to be 'too smart', and simply have ipython
3271 It's best not to try to be 'too smart', and simply have ipython
3270 reproduce as much as possible the default behavior of a normal
3272 reproduce as much as possible the default behavior of a normal
3271 python shell.
3273 python shell.
3272
3274
3273 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3275 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3274 line-splitting regexp and _prefilter() to avoid calling getattr()
3276 line-splitting regexp and _prefilter() to avoid calling getattr()
3275 on assignments. This closes
3277 on assignments. This closes
3276 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3278 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3277 readline uses getattr(), so a simple <TAB> keypress is still
3279 readline uses getattr(), so a simple <TAB> keypress is still
3278 enough to trigger getattr() calls on an object.
3280 enough to trigger getattr() calls on an object.
3279
3281
3280 2005-01-21 Fernando Perez <fperez@colorado.edu>
3282 2005-01-21 Fernando Perez <fperez@colorado.edu>
3281
3283
3282 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3284 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3283 docstring under pylab so it doesn't mask the original.
3285 docstring under pylab so it doesn't mask the original.
3284
3286
3285 2005-01-21 *** Released version 0.6.7
3287 2005-01-21 *** Released version 0.6.7
3286
3288
3287 2005-01-21 Fernando Perez <fperez@colorado.edu>
3289 2005-01-21 Fernando Perez <fperez@colorado.edu>
3288
3290
3289 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3291 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3290 signal handling for win32 users in multithreaded mode.
3292 signal handling for win32 users in multithreaded mode.
3291
3293
3292 2005-01-17 Fernando Perez <fperez@colorado.edu>
3294 2005-01-17 Fernando Perez <fperez@colorado.edu>
3293
3295
3294 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3296 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3295 instances with no __init__. After a crash report by Norbert Nemec
3297 instances with no __init__. After a crash report by Norbert Nemec
3296 <Norbert-AT-nemec-online.de>.
3298 <Norbert-AT-nemec-online.de>.
3297
3299
3298 2005-01-14 Fernando Perez <fperez@colorado.edu>
3300 2005-01-14 Fernando Perez <fperez@colorado.edu>
3299
3301
3300 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3302 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3301 names for verbose exceptions, when multiple dotted names and the
3303 names for verbose exceptions, when multiple dotted names and the
3302 'parent' object were present on the same line.
3304 'parent' object were present on the same line.
3303
3305
3304 2005-01-11 Fernando Perez <fperez@colorado.edu>
3306 2005-01-11 Fernando Perez <fperez@colorado.edu>
3305
3307
3306 * IPython/genutils.py (flag_calls): new utility to trap and flag
3308 * IPython/genutils.py (flag_calls): new utility to trap and flag
3307 calls in functions. I need it to clean up matplotlib support.
3309 calls in functions. I need it to clean up matplotlib support.
3308 Also removed some deprecated code in genutils.
3310 Also removed some deprecated code in genutils.
3309
3311
3310 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3312 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3311 that matplotlib scripts called with %run, which don't call show()
3313 that matplotlib scripts called with %run, which don't call show()
3312 themselves, still have their plotting windows open.
3314 themselves, still have their plotting windows open.
3313
3315
3314 2005-01-05 Fernando Perez <fperez@colorado.edu>
3316 2005-01-05 Fernando Perez <fperez@colorado.edu>
3315
3317
3316 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3318 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3317 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3319 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3318
3320
3319 2004-12-19 Fernando Perez <fperez@colorado.edu>
3321 2004-12-19 Fernando Perez <fperez@colorado.edu>
3320
3322
3321 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3323 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3322 parent_runcode, which was an eyesore. The same result can be
3324 parent_runcode, which was an eyesore. The same result can be
3323 obtained with Python's regular superclass mechanisms.
3325 obtained with Python's regular superclass mechanisms.
3324
3326
3325 2004-12-17 Fernando Perez <fperez@colorado.edu>
3327 2004-12-17 Fernando Perez <fperez@colorado.edu>
3326
3328
3327 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3329 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3328 reported by Prabhu.
3330 reported by Prabhu.
3329 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3331 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3330 sys.stderr) instead of explicitly calling sys.stderr. This helps
3332 sys.stderr) instead of explicitly calling sys.stderr. This helps
3331 maintain our I/O abstractions clean, for future GUI embeddings.
3333 maintain our I/O abstractions clean, for future GUI embeddings.
3332
3334
3333 * IPython/genutils.py (info): added new utility for sys.stderr
3335 * IPython/genutils.py (info): added new utility for sys.stderr
3334 unified info message handling (thin wrapper around warn()).
3336 unified info message handling (thin wrapper around warn()).
3335
3337
3336 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3338 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3337 composite (dotted) names on verbose exceptions.
3339 composite (dotted) names on verbose exceptions.
3338 (VerboseTB.nullrepr): harden against another kind of errors which
3340 (VerboseTB.nullrepr): harden against another kind of errors which
3339 Python's inspect module can trigger, and which were crashing
3341 Python's inspect module can trigger, and which were crashing
3340 IPython. Thanks to a report by Marco Lombardi
3342 IPython. Thanks to a report by Marco Lombardi
3341 <mlombard-AT-ma010192.hq.eso.org>.
3343 <mlombard-AT-ma010192.hq.eso.org>.
3342
3344
3343 2004-12-13 *** Released version 0.6.6
3345 2004-12-13 *** Released version 0.6.6
3344
3346
3345 2004-12-12 Fernando Perez <fperez@colorado.edu>
3347 2004-12-12 Fernando Perez <fperez@colorado.edu>
3346
3348
3347 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3349 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3348 generated by pygtk upon initialization if it was built without
3350 generated by pygtk upon initialization if it was built without
3349 threads (for matplotlib users). After a crash reported by
3351 threads (for matplotlib users). After a crash reported by
3350 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3352 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3351
3353
3352 * IPython/ipmaker.py (make_IPython): fix small bug in the
3354 * IPython/ipmaker.py (make_IPython): fix small bug in the
3353 import_some parameter for multiple imports.
3355 import_some parameter for multiple imports.
3354
3356
3355 * IPython/iplib.py (ipmagic): simplified the interface of
3357 * IPython/iplib.py (ipmagic): simplified the interface of
3356 ipmagic() to take a single string argument, just as it would be
3358 ipmagic() to take a single string argument, just as it would be
3357 typed at the IPython cmd line.
3359 typed at the IPython cmd line.
3358 (ipalias): Added new ipalias() with an interface identical to
3360 (ipalias): Added new ipalias() with an interface identical to
3359 ipmagic(). This completes exposing a pure python interface to the
3361 ipmagic(). This completes exposing a pure python interface to the
3360 alias and magic system, which can be used in loops or more complex
3362 alias and magic system, which can be used in loops or more complex
3361 code where IPython's automatic line mangling is not active.
3363 code where IPython's automatic line mangling is not active.
3362
3364
3363 * IPython/genutils.py (timing): changed interface of timing to
3365 * IPython/genutils.py (timing): changed interface of timing to
3364 simply run code once, which is the most common case. timings()
3366 simply run code once, which is the most common case. timings()
3365 remains unchanged, for the cases where you want multiple runs.
3367 remains unchanged, for the cases where you want multiple runs.
3366
3368
3367 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3369 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3368 bug where Python2.2 crashes with exec'ing code which does not end
3370 bug where Python2.2 crashes with exec'ing code which does not end
3369 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3371 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3370 before.
3372 before.
3371
3373
3372 2004-12-10 Fernando Perez <fperez@colorado.edu>
3374 2004-12-10 Fernando Perez <fperez@colorado.edu>
3373
3375
3374 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3376 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3375 -t to -T, to accomodate the new -t flag in %run (the %run and
3377 -t to -T, to accomodate the new -t flag in %run (the %run and
3376 %prun options are kind of intermixed, and it's not easy to change
3378 %prun options are kind of intermixed, and it's not easy to change
3377 this with the limitations of python's getopt).
3379 this with the limitations of python's getopt).
3378
3380
3379 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3381 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3380 the execution of scripts. It's not as fine-tuned as timeit.py,
3382 the execution of scripts. It's not as fine-tuned as timeit.py,
3381 but it works from inside ipython (and under 2.2, which lacks
3383 but it works from inside ipython (and under 2.2, which lacks
3382 timeit.py). Optionally a number of runs > 1 can be given for
3384 timeit.py). Optionally a number of runs > 1 can be given for
3383 timing very short-running code.
3385 timing very short-running code.
3384
3386
3385 * IPython/genutils.py (uniq_stable): new routine which returns a
3387 * IPython/genutils.py (uniq_stable): new routine which returns a
3386 list of unique elements in any iterable, but in stable order of
3388 list of unique elements in any iterable, but in stable order of
3387 appearance. I needed this for the ultraTB fixes, and it's a handy
3389 appearance. I needed this for the ultraTB fixes, and it's a handy
3388 utility.
3390 utility.
3389
3391
3390 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3392 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3391 dotted names in Verbose exceptions. This had been broken since
3393 dotted names in Verbose exceptions. This had been broken since
3392 the very start, now x.y will properly be printed in a Verbose
3394 the very start, now x.y will properly be printed in a Verbose
3393 traceback, instead of x being shown and y appearing always as an
3395 traceback, instead of x being shown and y appearing always as an
3394 'undefined global'. Getting this to work was a bit tricky,
3396 'undefined global'. Getting this to work was a bit tricky,
3395 because by default python tokenizers are stateless. Saved by
3397 because by default python tokenizers are stateless. Saved by
3396 python's ability to easily add a bit of state to an arbitrary
3398 python's ability to easily add a bit of state to an arbitrary
3397 function (without needing to build a full-blown callable object).
3399 function (without needing to build a full-blown callable object).
3398
3400
3399 Also big cleanup of this code, which had horrendous runtime
3401 Also big cleanup of this code, which had horrendous runtime
3400 lookups of zillions of attributes for colorization. Moved all
3402 lookups of zillions of attributes for colorization. Moved all
3401 this code into a few templates, which make it cleaner and quicker.
3403 this code into a few templates, which make it cleaner and quicker.
3402
3404
3403 Printout quality was also improved for Verbose exceptions: one
3405 Printout quality was also improved for Verbose exceptions: one
3404 variable per line, and memory addresses are printed (this can be
3406 variable per line, and memory addresses are printed (this can be
3405 quite handy in nasty debugging situations, which is what Verbose
3407 quite handy in nasty debugging situations, which is what Verbose
3406 is for).
3408 is for).
3407
3409
3408 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3410 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3409 the command line as scripts to be loaded by embedded instances.
3411 the command line as scripts to be loaded by embedded instances.
3410 Doing so has the potential for an infinite recursion if there are
3412 Doing so has the potential for an infinite recursion if there are
3411 exceptions thrown in the process. This fixes a strange crash
3413 exceptions thrown in the process. This fixes a strange crash
3412 reported by Philippe MULLER <muller-AT-irit.fr>.
3414 reported by Philippe MULLER <muller-AT-irit.fr>.
3413
3415
3414 2004-12-09 Fernando Perez <fperez@colorado.edu>
3416 2004-12-09 Fernando Perez <fperez@colorado.edu>
3415
3417
3416 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3418 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3417 to reflect new names in matplotlib, which now expose the
3419 to reflect new names in matplotlib, which now expose the
3418 matlab-compatible interface via a pylab module instead of the
3420 matlab-compatible interface via a pylab module instead of the
3419 'matlab' name. The new code is backwards compatible, so users of
3421 'matlab' name. The new code is backwards compatible, so users of
3420 all matplotlib versions are OK. Patch by J. Hunter.
3422 all matplotlib versions are OK. Patch by J. Hunter.
3421
3423
3422 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3424 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3423 of __init__ docstrings for instances (class docstrings are already
3425 of __init__ docstrings for instances (class docstrings are already
3424 automatically printed). Instances with customized docstrings
3426 automatically printed). Instances with customized docstrings
3425 (indep. of the class) are also recognized and all 3 separate
3427 (indep. of the class) are also recognized and all 3 separate
3426 docstrings are printed (instance, class, constructor). After some
3428 docstrings are printed (instance, class, constructor). After some
3427 comments/suggestions by J. Hunter.
3429 comments/suggestions by J. Hunter.
3428
3430
3429 2004-12-05 Fernando Perez <fperez@colorado.edu>
3431 2004-12-05 Fernando Perez <fperez@colorado.edu>
3430
3432
3431 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3433 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3432 warnings when tab-completion fails and triggers an exception.
3434 warnings when tab-completion fails and triggers an exception.
3433
3435
3434 2004-12-03 Fernando Perez <fperez@colorado.edu>
3436 2004-12-03 Fernando Perez <fperez@colorado.edu>
3435
3437
3436 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3438 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3437 be triggered when using 'run -p'. An incorrect option flag was
3439 be triggered when using 'run -p'. An incorrect option flag was
3438 being set ('d' instead of 'D').
3440 being set ('d' instead of 'D').
3439 (manpage): fix missing escaped \- sign.
3441 (manpage): fix missing escaped \- sign.
3440
3442
3441 2004-11-30 *** Released version 0.6.5
3443 2004-11-30 *** Released version 0.6.5
3442
3444
3443 2004-11-30 Fernando Perez <fperez@colorado.edu>
3445 2004-11-30 Fernando Perez <fperez@colorado.edu>
3444
3446
3445 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3447 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3446 setting with -d option.
3448 setting with -d option.
3447
3449
3448 * setup.py (docfiles): Fix problem where the doc glob I was using
3450 * setup.py (docfiles): Fix problem where the doc glob I was using
3449 was COMPLETELY BROKEN. It was giving the right files by pure
3451 was COMPLETELY BROKEN. It was giving the right files by pure
3450 accident, but failed once I tried to include ipython.el. Note:
3452 accident, but failed once I tried to include ipython.el. Note:
3451 glob() does NOT allow you to do exclusion on multiple endings!
3453 glob() does NOT allow you to do exclusion on multiple endings!
3452
3454
3453 2004-11-29 Fernando Perez <fperez@colorado.edu>
3455 2004-11-29 Fernando Perez <fperez@colorado.edu>
3454
3456
3455 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3457 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3456 the manpage as the source. Better formatting & consistency.
3458 the manpage as the source. Better formatting & consistency.
3457
3459
3458 * IPython/Magic.py (magic_run): Added new -d option, to run
3460 * IPython/Magic.py (magic_run): Added new -d option, to run
3459 scripts under the control of the python pdb debugger. Note that
3461 scripts under the control of the python pdb debugger. Note that
3460 this required changing the %prun option -d to -D, to avoid a clash
3462 this required changing the %prun option -d to -D, to avoid a clash
3461 (since %run must pass options to %prun, and getopt is too dumb to
3463 (since %run must pass options to %prun, and getopt is too dumb to
3462 handle options with string values with embedded spaces). Thanks
3464 handle options with string values with embedded spaces). Thanks
3463 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3465 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3464 (magic_who_ls): added type matching to %who and %whos, so that one
3466 (magic_who_ls): added type matching to %who and %whos, so that one
3465 can filter their output to only include variables of certain
3467 can filter their output to only include variables of certain
3466 types. Another suggestion by Matthew.
3468 types. Another suggestion by Matthew.
3467 (magic_whos): Added memory summaries in kb and Mb for arrays.
3469 (magic_whos): Added memory summaries in kb and Mb for arrays.
3468 (magic_who): Improve formatting (break lines every 9 vars).
3470 (magic_who): Improve formatting (break lines every 9 vars).
3469
3471
3470 2004-11-28 Fernando Perez <fperez@colorado.edu>
3472 2004-11-28 Fernando Perez <fperez@colorado.edu>
3471
3473
3472 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3474 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3473 cache when empty lines were present.
3475 cache when empty lines were present.
3474
3476
3475 2004-11-24 Fernando Perez <fperez@colorado.edu>
3477 2004-11-24 Fernando Perez <fperez@colorado.edu>
3476
3478
3477 * IPython/usage.py (__doc__): document the re-activated threading
3479 * IPython/usage.py (__doc__): document the re-activated threading
3478 options for WX and GTK.
3480 options for WX and GTK.
3479
3481
3480 2004-11-23 Fernando Perez <fperez@colorado.edu>
3482 2004-11-23 Fernando Perez <fperez@colorado.edu>
3481
3483
3482 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3484 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3483 the -wthread and -gthread options, along with a new -tk one to try
3485 the -wthread and -gthread options, along with a new -tk one to try
3484 and coordinate Tk threading with wx/gtk. The tk support is very
3486 and coordinate Tk threading with wx/gtk. The tk support is very
3485 platform dependent, since it seems to require Tcl and Tk to be
3487 platform dependent, since it seems to require Tcl and Tk to be
3486 built with threads (Fedora1/2 appears NOT to have it, but in
3488 built with threads (Fedora1/2 appears NOT to have it, but in
3487 Prabhu's Debian boxes it works OK). But even with some Tk
3489 Prabhu's Debian boxes it works OK). But even with some Tk
3488 limitations, this is a great improvement.
3490 limitations, this is a great improvement.
3489
3491
3490 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3492 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3491 info in user prompts. Patch by Prabhu.
3493 info in user prompts. Patch by Prabhu.
3492
3494
3493 2004-11-18 Fernando Perez <fperez@colorado.edu>
3495 2004-11-18 Fernando Perez <fperez@colorado.edu>
3494
3496
3495 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3497 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3496 EOFErrors and bail, to avoid infinite loops if a non-terminating
3498 EOFErrors and bail, to avoid infinite loops if a non-terminating
3497 file is fed into ipython. Patch submitted in issue 19 by user,
3499 file is fed into ipython. Patch submitted in issue 19 by user,
3498 many thanks.
3500 many thanks.
3499
3501
3500 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3502 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3501 autoquote/parens in continuation prompts, which can cause lots of
3503 autoquote/parens in continuation prompts, which can cause lots of
3502 problems. Closes roundup issue 20.
3504 problems. Closes roundup issue 20.
3503
3505
3504 2004-11-17 Fernando Perez <fperez@colorado.edu>
3506 2004-11-17 Fernando Perez <fperez@colorado.edu>
3505
3507
3506 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3508 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3507 reported as debian bug #280505. I'm not sure my local changelog
3509 reported as debian bug #280505. I'm not sure my local changelog
3508 entry has the proper debian format (Jack?).
3510 entry has the proper debian format (Jack?).
3509
3511
3510 2004-11-08 *** Released version 0.6.4
3512 2004-11-08 *** Released version 0.6.4
3511
3513
3512 2004-11-08 Fernando Perez <fperez@colorado.edu>
3514 2004-11-08 Fernando Perez <fperez@colorado.edu>
3513
3515
3514 * IPython/iplib.py (init_readline): Fix exit message for Windows
3516 * IPython/iplib.py (init_readline): Fix exit message for Windows
3515 when readline is active. Thanks to a report by Eric Jones
3517 when readline is active. Thanks to a report by Eric Jones
3516 <eric-AT-enthought.com>.
3518 <eric-AT-enthought.com>.
3517
3519
3518 2004-11-07 Fernando Perez <fperez@colorado.edu>
3520 2004-11-07 Fernando Perez <fperez@colorado.edu>
3519
3521
3520 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3522 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3521 sometimes seen by win2k/cygwin users.
3523 sometimes seen by win2k/cygwin users.
3522
3524
3523 2004-11-06 Fernando Perez <fperez@colorado.edu>
3525 2004-11-06 Fernando Perez <fperez@colorado.edu>
3524
3526
3525 * IPython/iplib.py (interact): Change the handling of %Exit from
3527 * IPython/iplib.py (interact): Change the handling of %Exit from
3526 trying to propagate a SystemExit to an internal ipython flag.
3528 trying to propagate a SystemExit to an internal ipython flag.
3527 This is less elegant than using Python's exception mechanism, but
3529 This is less elegant than using Python's exception mechanism, but
3528 I can't get that to work reliably with threads, so under -pylab
3530 I can't get that to work reliably with threads, so under -pylab
3529 %Exit was hanging IPython. Cross-thread exception handling is
3531 %Exit was hanging IPython. Cross-thread exception handling is
3530 really a bitch. Thaks to a bug report by Stephen Walton
3532 really a bitch. Thaks to a bug report by Stephen Walton
3531 <stephen.walton-AT-csun.edu>.
3533 <stephen.walton-AT-csun.edu>.
3532
3534
3533 2004-11-04 Fernando Perez <fperez@colorado.edu>
3535 2004-11-04 Fernando Perez <fperez@colorado.edu>
3534
3536
3535 * IPython/iplib.py (raw_input_original): store a pointer to the
3537 * IPython/iplib.py (raw_input_original): store a pointer to the
3536 true raw_input to harden against code which can modify it
3538 true raw_input to harden against code which can modify it
3537 (wx.py.PyShell does this and would otherwise crash ipython).
3539 (wx.py.PyShell does this and would otherwise crash ipython).
3538 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3540 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3539
3541
3540 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3542 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3541 Ctrl-C problem, which does not mess up the input line.
3543 Ctrl-C problem, which does not mess up the input line.
3542
3544
3543 2004-11-03 Fernando Perez <fperez@colorado.edu>
3545 2004-11-03 Fernando Perez <fperez@colorado.edu>
3544
3546
3545 * IPython/Release.py: Changed licensing to BSD, in all files.
3547 * IPython/Release.py: Changed licensing to BSD, in all files.
3546 (name): lowercase name for tarball/RPM release.
3548 (name): lowercase name for tarball/RPM release.
3547
3549
3548 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3550 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3549 use throughout ipython.
3551 use throughout ipython.
3550
3552
3551 * IPython/Magic.py (Magic._ofind): Switch to using the new
3553 * IPython/Magic.py (Magic._ofind): Switch to using the new
3552 OInspect.getdoc() function.
3554 OInspect.getdoc() function.
3553
3555
3554 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3556 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3555 of the line currently being canceled via Ctrl-C. It's extremely
3557 of the line currently being canceled via Ctrl-C. It's extremely
3556 ugly, but I don't know how to do it better (the problem is one of
3558 ugly, but I don't know how to do it better (the problem is one of
3557 handling cross-thread exceptions).
3559 handling cross-thread exceptions).
3558
3560
3559 2004-10-28 Fernando Perez <fperez@colorado.edu>
3561 2004-10-28 Fernando Perez <fperez@colorado.edu>
3560
3562
3561 * IPython/Shell.py (signal_handler): add signal handlers to trap
3563 * IPython/Shell.py (signal_handler): add signal handlers to trap
3562 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3564 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3563 report by Francesc Alted.
3565 report by Francesc Alted.
3564
3566
3565 2004-10-21 Fernando Perez <fperez@colorado.edu>
3567 2004-10-21 Fernando Perez <fperez@colorado.edu>
3566
3568
3567 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3569 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3568 to % for pysh syntax extensions.
3570 to % for pysh syntax extensions.
3569
3571
3570 2004-10-09 Fernando Perez <fperez@colorado.edu>
3572 2004-10-09 Fernando Perez <fperez@colorado.edu>
3571
3573
3572 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3574 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3573 arrays to print a more useful summary, without calling str(arr).
3575 arrays to print a more useful summary, without calling str(arr).
3574 This avoids the problem of extremely lengthy computations which
3576 This avoids the problem of extremely lengthy computations which
3575 occur if arr is large, and appear to the user as a system lockup
3577 occur if arr is large, and appear to the user as a system lockup
3576 with 100% cpu activity. After a suggestion by Kristian Sandberg
3578 with 100% cpu activity. After a suggestion by Kristian Sandberg
3577 <Kristian.Sandberg@colorado.edu>.
3579 <Kristian.Sandberg@colorado.edu>.
3578 (Magic.__init__): fix bug in global magic escapes not being
3580 (Magic.__init__): fix bug in global magic escapes not being
3579 correctly set.
3581 correctly set.
3580
3582
3581 2004-10-08 Fernando Perez <fperez@colorado.edu>
3583 2004-10-08 Fernando Perez <fperez@colorado.edu>
3582
3584
3583 * IPython/Magic.py (__license__): change to absolute imports of
3585 * IPython/Magic.py (__license__): change to absolute imports of
3584 ipython's own internal packages, to start adapting to the absolute
3586 ipython's own internal packages, to start adapting to the absolute
3585 import requirement of PEP-328.
3587 import requirement of PEP-328.
3586
3588
3587 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3589 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3588 files, and standardize author/license marks through the Release
3590 files, and standardize author/license marks through the Release
3589 module instead of having per/file stuff (except for files with
3591 module instead of having per/file stuff (except for files with
3590 particular licenses, like the MIT/PSF-licensed codes).
3592 particular licenses, like the MIT/PSF-licensed codes).
3591
3593
3592 * IPython/Debugger.py: remove dead code for python 2.1
3594 * IPython/Debugger.py: remove dead code for python 2.1
3593
3595
3594 2004-10-04 Fernando Perez <fperez@colorado.edu>
3596 2004-10-04 Fernando Perez <fperez@colorado.edu>
3595
3597
3596 * IPython/iplib.py (ipmagic): New function for accessing magics
3598 * IPython/iplib.py (ipmagic): New function for accessing magics
3597 via a normal python function call.
3599 via a normal python function call.
3598
3600
3599 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3601 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3600 from '@' to '%', to accomodate the new @decorator syntax of python
3602 from '@' to '%', to accomodate the new @decorator syntax of python
3601 2.4.
3603 2.4.
3602
3604
3603 2004-09-29 Fernando Perez <fperez@colorado.edu>
3605 2004-09-29 Fernando Perez <fperez@colorado.edu>
3604
3606
3605 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3607 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3606 matplotlib.use to prevent running scripts which try to switch
3608 matplotlib.use to prevent running scripts which try to switch
3607 interactive backends from within ipython. This will just crash
3609 interactive backends from within ipython. This will just crash
3608 the python interpreter, so we can't allow it (but a detailed error
3610 the python interpreter, so we can't allow it (but a detailed error
3609 is given to the user).
3611 is given to the user).
3610
3612
3611 2004-09-28 Fernando Perez <fperez@colorado.edu>
3613 2004-09-28 Fernando Perez <fperez@colorado.edu>
3612
3614
3613 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3615 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3614 matplotlib-related fixes so that using @run with non-matplotlib
3616 matplotlib-related fixes so that using @run with non-matplotlib
3615 scripts doesn't pop up spurious plot windows. This requires
3617 scripts doesn't pop up spurious plot windows. This requires
3616 matplotlib >= 0.63, where I had to make some changes as well.
3618 matplotlib >= 0.63, where I had to make some changes as well.
3617
3619
3618 * IPython/ipmaker.py (make_IPython): update version requirement to
3620 * IPython/ipmaker.py (make_IPython): update version requirement to
3619 python 2.2.
3621 python 2.2.
3620
3622
3621 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3623 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3622 banner arg for embedded customization.
3624 banner arg for embedded customization.
3623
3625
3624 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3626 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3625 explicit uses of __IP as the IPython's instance name. Now things
3627 explicit uses of __IP as the IPython's instance name. Now things
3626 are properly handled via the shell.name value. The actual code
3628 are properly handled via the shell.name value. The actual code
3627 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3629 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3628 is much better than before. I'll clean things completely when the
3630 is much better than before. I'll clean things completely when the
3629 magic stuff gets a real overhaul.
3631 magic stuff gets a real overhaul.
3630
3632
3631 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3633 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3632 minor changes to debian dir.
3634 minor changes to debian dir.
3633
3635
3634 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3636 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3635 pointer to the shell itself in the interactive namespace even when
3637 pointer to the shell itself in the interactive namespace even when
3636 a user-supplied dict is provided. This is needed for embedding
3638 a user-supplied dict is provided. This is needed for embedding
3637 purposes (found by tests with Michel Sanner).
3639 purposes (found by tests with Michel Sanner).
3638
3640
3639 2004-09-27 Fernando Perez <fperez@colorado.edu>
3641 2004-09-27 Fernando Perez <fperez@colorado.edu>
3640
3642
3641 * IPython/UserConfig/ipythonrc: remove []{} from
3643 * IPython/UserConfig/ipythonrc: remove []{} from
3642 readline_remove_delims, so that things like [modname.<TAB> do
3644 readline_remove_delims, so that things like [modname.<TAB> do
3643 proper completion. This disables [].TAB, but that's a less common
3645 proper completion. This disables [].TAB, but that's a less common
3644 case than module names in list comprehensions, for example.
3646 case than module names in list comprehensions, for example.
3645 Thanks to a report by Andrea Riciputi.
3647 Thanks to a report by Andrea Riciputi.
3646
3648
3647 2004-09-09 Fernando Perez <fperez@colorado.edu>
3649 2004-09-09 Fernando Perez <fperez@colorado.edu>
3648
3650
3649 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3651 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3650 blocking problems in win32 and osx. Fix by John.
3652 blocking problems in win32 and osx. Fix by John.
3651
3653
3652 2004-09-08 Fernando Perez <fperez@colorado.edu>
3654 2004-09-08 Fernando Perez <fperez@colorado.edu>
3653
3655
3654 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3656 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3655 for Win32 and OSX. Fix by John Hunter.
3657 for Win32 and OSX. Fix by John Hunter.
3656
3658
3657 2004-08-30 *** Released version 0.6.3
3659 2004-08-30 *** Released version 0.6.3
3658
3660
3659 2004-08-30 Fernando Perez <fperez@colorado.edu>
3661 2004-08-30 Fernando Perez <fperez@colorado.edu>
3660
3662
3661 * setup.py (isfile): Add manpages to list of dependent files to be
3663 * setup.py (isfile): Add manpages to list of dependent files to be
3662 updated.
3664 updated.
3663
3665
3664 2004-08-27 Fernando Perez <fperez@colorado.edu>
3666 2004-08-27 Fernando Perez <fperez@colorado.edu>
3665
3667
3666 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3668 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3667 for now. They don't really work with standalone WX/GTK code
3669 for now. They don't really work with standalone WX/GTK code
3668 (though matplotlib IS working fine with both of those backends).
3670 (though matplotlib IS working fine with both of those backends).
3669 This will neeed much more testing. I disabled most things with
3671 This will neeed much more testing. I disabled most things with
3670 comments, so turning it back on later should be pretty easy.
3672 comments, so turning it back on later should be pretty easy.
3671
3673
3672 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3674 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3673 autocalling of expressions like r'foo', by modifying the line
3675 autocalling of expressions like r'foo', by modifying the line
3674 split regexp. Closes
3676 split regexp. Closes
3675 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3677 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3676 Riley <ipythonbugs-AT-sabi.net>.
3678 Riley <ipythonbugs-AT-sabi.net>.
3677 (InteractiveShell.mainloop): honor --nobanner with banner
3679 (InteractiveShell.mainloop): honor --nobanner with banner
3678 extensions.
3680 extensions.
3679
3681
3680 * IPython/Shell.py: Significant refactoring of all classes, so
3682 * IPython/Shell.py: Significant refactoring of all classes, so
3681 that we can really support ALL matplotlib backends and threading
3683 that we can really support ALL matplotlib backends and threading
3682 models (John spotted a bug with Tk which required this). Now we
3684 models (John spotted a bug with Tk which required this). Now we
3683 should support single-threaded, WX-threads and GTK-threads, both
3685 should support single-threaded, WX-threads and GTK-threads, both
3684 for generic code and for matplotlib.
3686 for generic code and for matplotlib.
3685
3687
3686 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3688 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3687 -pylab, to simplify things for users. Will also remove the pylab
3689 -pylab, to simplify things for users. Will also remove the pylab
3688 profile, since now all of matplotlib configuration is directly
3690 profile, since now all of matplotlib configuration is directly
3689 handled here. This also reduces startup time.
3691 handled here. This also reduces startup time.
3690
3692
3691 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3693 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3692 shell wasn't being correctly called. Also in IPShellWX.
3694 shell wasn't being correctly called. Also in IPShellWX.
3693
3695
3694 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3696 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3695 fine-tune banner.
3697 fine-tune banner.
3696
3698
3697 * IPython/numutils.py (spike): Deprecate these spike functions,
3699 * IPython/numutils.py (spike): Deprecate these spike functions,
3698 delete (long deprecated) gnuplot_exec handler.
3700 delete (long deprecated) gnuplot_exec handler.
3699
3701
3700 2004-08-26 Fernando Perez <fperez@colorado.edu>
3702 2004-08-26 Fernando Perez <fperez@colorado.edu>
3701
3703
3702 * ipython.1: Update for threading options, plus some others which
3704 * ipython.1: Update for threading options, plus some others which
3703 were missing.
3705 were missing.
3704
3706
3705 * IPython/ipmaker.py (__call__): Added -wthread option for
3707 * IPython/ipmaker.py (__call__): Added -wthread option for
3706 wxpython thread handling. Make sure threading options are only
3708 wxpython thread handling. Make sure threading options are only
3707 valid at the command line.
3709 valid at the command line.
3708
3710
3709 * scripts/ipython: moved shell selection into a factory function
3711 * scripts/ipython: moved shell selection into a factory function
3710 in Shell.py, to keep the starter script to a minimum.
3712 in Shell.py, to keep the starter script to a minimum.
3711
3713
3712 2004-08-25 Fernando Perez <fperez@colorado.edu>
3714 2004-08-25 Fernando Perez <fperez@colorado.edu>
3713
3715
3714 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3716 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3715 John. Along with some recent changes he made to matplotlib, the
3717 John. Along with some recent changes he made to matplotlib, the
3716 next versions of both systems should work very well together.
3718 next versions of both systems should work very well together.
3717
3719
3718 2004-08-24 Fernando Perez <fperez@colorado.edu>
3720 2004-08-24 Fernando Perez <fperez@colorado.edu>
3719
3721
3720 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3722 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3721 tried to switch the profiling to using hotshot, but I'm getting
3723 tried to switch the profiling to using hotshot, but I'm getting
3722 strange errors from prof.runctx() there. I may be misreading the
3724 strange errors from prof.runctx() there. I may be misreading the
3723 docs, but it looks weird. For now the profiling code will
3725 docs, but it looks weird. For now the profiling code will
3724 continue to use the standard profiler.
3726 continue to use the standard profiler.
3725
3727
3726 2004-08-23 Fernando Perez <fperez@colorado.edu>
3728 2004-08-23 Fernando Perez <fperez@colorado.edu>
3727
3729
3728 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3730 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3729 threaded shell, by John Hunter. It's not quite ready yet, but
3731 threaded shell, by John Hunter. It's not quite ready yet, but
3730 close.
3732 close.
3731
3733
3732 2004-08-22 Fernando Perez <fperez@colorado.edu>
3734 2004-08-22 Fernando Perez <fperez@colorado.edu>
3733
3735
3734 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3736 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3735 in Magic and ultraTB.
3737 in Magic and ultraTB.
3736
3738
3737 * ipython.1: document threading options in manpage.
3739 * ipython.1: document threading options in manpage.
3738
3740
3739 * scripts/ipython: Changed name of -thread option to -gthread,
3741 * scripts/ipython: Changed name of -thread option to -gthread,
3740 since this is GTK specific. I want to leave the door open for a
3742 since this is GTK specific. I want to leave the door open for a
3741 -wthread option for WX, which will most likely be necessary. This
3743 -wthread option for WX, which will most likely be necessary. This
3742 change affects usage and ipmaker as well.
3744 change affects usage and ipmaker as well.
3743
3745
3744 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3746 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3745 handle the matplotlib shell issues. Code by John Hunter
3747 handle the matplotlib shell issues. Code by John Hunter
3746 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3748 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3747 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3749 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3748 broken (and disabled for end users) for now, but it puts the
3750 broken (and disabled for end users) for now, but it puts the
3749 infrastructure in place.
3751 infrastructure in place.
3750
3752
3751 2004-08-21 Fernando Perez <fperez@colorado.edu>
3753 2004-08-21 Fernando Perez <fperez@colorado.edu>
3752
3754
3753 * ipythonrc-pylab: Add matplotlib support.
3755 * ipythonrc-pylab: Add matplotlib support.
3754
3756
3755 * matplotlib_config.py: new files for matplotlib support, part of
3757 * matplotlib_config.py: new files for matplotlib support, part of
3756 the pylab profile.
3758 the pylab profile.
3757
3759
3758 * IPython/usage.py (__doc__): documented the threading options.
3760 * IPython/usage.py (__doc__): documented the threading options.
3759
3761
3760 2004-08-20 Fernando Perez <fperez@colorado.edu>
3762 2004-08-20 Fernando Perez <fperez@colorado.edu>
3761
3763
3762 * ipython: Modified the main calling routine to handle the -thread
3764 * ipython: Modified the main calling routine to handle the -thread
3763 and -mpthread options. This needs to be done as a top-level hack,
3765 and -mpthread options. This needs to be done as a top-level hack,
3764 because it determines which class to instantiate for IPython
3766 because it determines which class to instantiate for IPython
3765 itself.
3767 itself.
3766
3768
3767 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3769 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3768 classes to support multithreaded GTK operation without blocking,
3770 classes to support multithreaded GTK operation without blocking,
3769 and matplotlib with all backends. This is a lot of still very
3771 and matplotlib with all backends. This is a lot of still very
3770 experimental code, and threads are tricky. So it may still have a
3772 experimental code, and threads are tricky. So it may still have a
3771 few rough edges... This code owes a lot to
3773 few rough edges... This code owes a lot to
3772 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3774 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3773 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3775 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3774 to John Hunter for all the matplotlib work.
3776 to John Hunter for all the matplotlib work.
3775
3777
3776 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3778 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3777 options for gtk thread and matplotlib support.
3779 options for gtk thread and matplotlib support.
3778
3780
3779 2004-08-16 Fernando Perez <fperez@colorado.edu>
3781 2004-08-16 Fernando Perez <fperez@colorado.edu>
3780
3782
3781 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3783 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3782 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3784 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3783 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3785 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3784
3786
3785 2004-08-11 Fernando Perez <fperez@colorado.edu>
3787 2004-08-11 Fernando Perez <fperez@colorado.edu>
3786
3788
3787 * setup.py (isfile): Fix build so documentation gets updated for
3789 * setup.py (isfile): Fix build so documentation gets updated for
3788 rpms (it was only done for .tgz builds).
3790 rpms (it was only done for .tgz builds).
3789
3791
3790 2004-08-10 Fernando Perez <fperez@colorado.edu>
3792 2004-08-10 Fernando Perez <fperez@colorado.edu>
3791
3793
3792 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3794 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3793
3795
3794 * iplib.py : Silence syntax error exceptions in tab-completion.
3796 * iplib.py : Silence syntax error exceptions in tab-completion.
3795
3797
3796 2004-08-05 Fernando Perez <fperez@colorado.edu>
3798 2004-08-05 Fernando Perez <fperez@colorado.edu>
3797
3799
3798 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3800 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3799 'color off' mark for continuation prompts. This was causing long
3801 'color off' mark for continuation prompts. This was causing long
3800 continuation lines to mis-wrap.
3802 continuation lines to mis-wrap.
3801
3803
3802 2004-08-01 Fernando Perez <fperez@colorado.edu>
3804 2004-08-01 Fernando Perez <fperez@colorado.edu>
3803
3805
3804 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3806 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3805 for building ipython to be a parameter. All this is necessary
3807 for building ipython to be a parameter. All this is necessary
3806 right now to have a multithreaded version, but this insane
3808 right now to have a multithreaded version, but this insane
3807 non-design will be cleaned up soon. For now, it's a hack that
3809 non-design will be cleaned up soon. For now, it's a hack that
3808 works.
3810 works.
3809
3811
3810 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3812 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3811 args in various places. No bugs so far, but it's a dangerous
3813 args in various places. No bugs so far, but it's a dangerous
3812 practice.
3814 practice.
3813
3815
3814 2004-07-31 Fernando Perez <fperez@colorado.edu>
3816 2004-07-31 Fernando Perez <fperez@colorado.edu>
3815
3817
3816 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3818 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3817 fix completion of files with dots in their names under most
3819 fix completion of files with dots in their names under most
3818 profiles (pysh was OK because the completion order is different).
3820 profiles (pysh was OK because the completion order is different).
3819
3821
3820 2004-07-27 Fernando Perez <fperez@colorado.edu>
3822 2004-07-27 Fernando Perez <fperez@colorado.edu>
3821
3823
3822 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3824 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3823 keywords manually, b/c the one in keyword.py was removed in python
3825 keywords manually, b/c the one in keyword.py was removed in python
3824 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3826 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3825 This is NOT a bug under python 2.3 and earlier.
3827 This is NOT a bug under python 2.3 and earlier.
3826
3828
3827 2004-07-26 Fernando Perez <fperez@colorado.edu>
3829 2004-07-26 Fernando Perez <fperez@colorado.edu>
3828
3830
3829 * IPython/ultraTB.py (VerboseTB.text): Add another
3831 * IPython/ultraTB.py (VerboseTB.text): Add another
3830 linecache.checkcache() call to try to prevent inspect.py from
3832 linecache.checkcache() call to try to prevent inspect.py from
3831 crashing under python 2.3. I think this fixes
3833 crashing under python 2.3. I think this fixes
3832 http://www.scipy.net/roundup/ipython/issue17.
3834 http://www.scipy.net/roundup/ipython/issue17.
3833
3835
3834 2004-07-26 *** Released version 0.6.2
3836 2004-07-26 *** Released version 0.6.2
3835
3837
3836 2004-07-26 Fernando Perez <fperez@colorado.edu>
3838 2004-07-26 Fernando Perez <fperez@colorado.edu>
3837
3839
3838 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3840 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3839 fail for any number.
3841 fail for any number.
3840 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3842 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3841 empty bookmarks.
3843 empty bookmarks.
3842
3844
3843 2004-07-26 *** Released version 0.6.1
3845 2004-07-26 *** Released version 0.6.1
3844
3846
3845 2004-07-26 Fernando Perez <fperez@colorado.edu>
3847 2004-07-26 Fernando Perez <fperez@colorado.edu>
3846
3848
3847 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3849 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3848
3850
3849 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3851 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3850 escaping '()[]{}' in filenames.
3852 escaping '()[]{}' in filenames.
3851
3853
3852 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3854 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3853 Python 2.2 users who lack a proper shlex.split.
3855 Python 2.2 users who lack a proper shlex.split.
3854
3856
3855 2004-07-19 Fernando Perez <fperez@colorado.edu>
3857 2004-07-19 Fernando Perez <fperez@colorado.edu>
3856
3858
3857 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3859 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3858 for reading readline's init file. I follow the normal chain:
3860 for reading readline's init file. I follow the normal chain:
3859 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3861 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3860 report by Mike Heeter. This closes
3862 report by Mike Heeter. This closes
3861 http://www.scipy.net/roundup/ipython/issue16.
3863 http://www.scipy.net/roundup/ipython/issue16.
3862
3864
3863 2004-07-18 Fernando Perez <fperez@colorado.edu>
3865 2004-07-18 Fernando Perez <fperez@colorado.edu>
3864
3866
3865 * IPython/iplib.py (__init__): Add better handling of '\' under
3867 * IPython/iplib.py (__init__): Add better handling of '\' under
3866 Win32 for filenames. After a patch by Ville.
3868 Win32 for filenames. After a patch by Ville.
3867
3869
3868 2004-07-17 Fernando Perez <fperez@colorado.edu>
3870 2004-07-17 Fernando Perez <fperez@colorado.edu>
3869
3871
3870 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3872 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3871 autocalling would be triggered for 'foo is bar' if foo is
3873 autocalling would be triggered for 'foo is bar' if foo is
3872 callable. I also cleaned up the autocall detection code to use a
3874 callable. I also cleaned up the autocall detection code to use a
3873 regexp, which is faster. Bug reported by Alexander Schmolck.
3875 regexp, which is faster. Bug reported by Alexander Schmolck.
3874
3876
3875 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3877 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3876 '?' in them would confuse the help system. Reported by Alex
3878 '?' in them would confuse the help system. Reported by Alex
3877 Schmolck.
3879 Schmolck.
3878
3880
3879 2004-07-16 Fernando Perez <fperez@colorado.edu>
3881 2004-07-16 Fernando Perez <fperez@colorado.edu>
3880
3882
3881 * IPython/GnuplotInteractive.py (__all__): added plot2.
3883 * IPython/GnuplotInteractive.py (__all__): added plot2.
3882
3884
3883 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3885 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3884 plotting dictionaries, lists or tuples of 1d arrays.
3886 plotting dictionaries, lists or tuples of 1d arrays.
3885
3887
3886 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3888 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3887 optimizations.
3889 optimizations.
3888
3890
3889 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3891 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3890 the information which was there from Janko's original IPP code:
3892 the information which was there from Janko's original IPP code:
3891
3893
3892 03.05.99 20:53 porto.ifm.uni-kiel.de
3894 03.05.99 20:53 porto.ifm.uni-kiel.de
3893 --Started changelog.
3895 --Started changelog.
3894 --make clear do what it say it does
3896 --make clear do what it say it does
3895 --added pretty output of lines from inputcache
3897 --added pretty output of lines from inputcache
3896 --Made Logger a mixin class, simplifies handling of switches
3898 --Made Logger a mixin class, simplifies handling of switches
3897 --Added own completer class. .string<TAB> expands to last history
3899 --Added own completer class. .string<TAB> expands to last history
3898 line which starts with string. The new expansion is also present
3900 line which starts with string. The new expansion is also present
3899 with Ctrl-r from the readline library. But this shows, who this
3901 with Ctrl-r from the readline library. But this shows, who this
3900 can be done for other cases.
3902 can be done for other cases.
3901 --Added convention that all shell functions should accept a
3903 --Added convention that all shell functions should accept a
3902 parameter_string This opens the door for different behaviour for
3904 parameter_string This opens the door for different behaviour for
3903 each function. @cd is a good example of this.
3905 each function. @cd is a good example of this.
3904
3906
3905 04.05.99 12:12 porto.ifm.uni-kiel.de
3907 04.05.99 12:12 porto.ifm.uni-kiel.de
3906 --added logfile rotation
3908 --added logfile rotation
3907 --added new mainloop method which freezes first the namespace
3909 --added new mainloop method which freezes first the namespace
3908
3910
3909 07.05.99 21:24 porto.ifm.uni-kiel.de
3911 07.05.99 21:24 porto.ifm.uni-kiel.de
3910 --added the docreader classes. Now there is a help system.
3912 --added the docreader classes. Now there is a help system.
3911 -This is only a first try. Currently it's not easy to put new
3913 -This is only a first try. Currently it's not easy to put new
3912 stuff in the indices. But this is the way to go. Info would be
3914 stuff in the indices. But this is the way to go. Info would be
3913 better, but HTML is every where and not everybody has an info
3915 better, but HTML is every where and not everybody has an info
3914 system installed and it's not so easy to change html-docs to info.
3916 system installed and it's not so easy to change html-docs to info.
3915 --added global logfile option
3917 --added global logfile option
3916 --there is now a hook for object inspection method pinfo needs to
3918 --there is now a hook for object inspection method pinfo needs to
3917 be provided for this. Can be reached by two '??'.
3919 be provided for this. Can be reached by two '??'.
3918
3920
3919 08.05.99 20:51 porto.ifm.uni-kiel.de
3921 08.05.99 20:51 porto.ifm.uni-kiel.de
3920 --added a README
3922 --added a README
3921 --bug in rc file. Something has changed so functions in the rc
3923 --bug in rc file. Something has changed so functions in the rc
3922 file need to reference the shell and not self. Not clear if it's a
3924 file need to reference the shell and not self. Not clear if it's a
3923 bug or feature.
3925 bug or feature.
3924 --changed rc file for new behavior
3926 --changed rc file for new behavior
3925
3927
3926 2004-07-15 Fernando Perez <fperez@colorado.edu>
3928 2004-07-15 Fernando Perez <fperez@colorado.edu>
3927
3929
3928 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3930 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3929 cache was falling out of sync in bizarre manners when multi-line
3931 cache was falling out of sync in bizarre manners when multi-line
3930 input was present. Minor optimizations and cleanup.
3932 input was present. Minor optimizations and cleanup.
3931
3933
3932 (Logger): Remove old Changelog info for cleanup. This is the
3934 (Logger): Remove old Changelog info for cleanup. This is the
3933 information which was there from Janko's original code:
3935 information which was there from Janko's original code:
3934
3936
3935 Changes to Logger: - made the default log filename a parameter
3937 Changes to Logger: - made the default log filename a parameter
3936
3938
3937 - put a check for lines beginning with !@? in log(). Needed
3939 - put a check for lines beginning with !@? in log(). Needed
3938 (even if the handlers properly log their lines) for mid-session
3940 (even if the handlers properly log their lines) for mid-session
3939 logging activation to work properly. Without this, lines logged
3941 logging activation to work properly. Without this, lines logged
3940 in mid session, which get read from the cache, would end up
3942 in mid session, which get read from the cache, would end up
3941 'bare' (with !@? in the open) in the log. Now they are caught
3943 'bare' (with !@? in the open) in the log. Now they are caught
3942 and prepended with a #.
3944 and prepended with a #.
3943
3945
3944 * IPython/iplib.py (InteractiveShell.init_readline): added check
3946 * IPython/iplib.py (InteractiveShell.init_readline): added check
3945 in case MagicCompleter fails to be defined, so we don't crash.
3947 in case MagicCompleter fails to be defined, so we don't crash.
3946
3948
3947 2004-07-13 Fernando Perez <fperez@colorado.edu>
3949 2004-07-13 Fernando Perez <fperez@colorado.edu>
3948
3950
3949 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3951 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3950 of EPS if the requested filename ends in '.eps'.
3952 of EPS if the requested filename ends in '.eps'.
3951
3953
3952 2004-07-04 Fernando Perez <fperez@colorado.edu>
3954 2004-07-04 Fernando Perez <fperez@colorado.edu>
3953
3955
3954 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3956 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3955 escaping of quotes when calling the shell.
3957 escaping of quotes when calling the shell.
3956
3958
3957 2004-07-02 Fernando Perez <fperez@colorado.edu>
3959 2004-07-02 Fernando Perez <fperez@colorado.edu>
3958
3960
3959 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3961 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3960 gettext not working because we were clobbering '_'. Fixes
3962 gettext not working because we were clobbering '_'. Fixes
3961 http://www.scipy.net/roundup/ipython/issue6.
3963 http://www.scipy.net/roundup/ipython/issue6.
3962
3964
3963 2004-07-01 Fernando Perez <fperez@colorado.edu>
3965 2004-07-01 Fernando Perez <fperez@colorado.edu>
3964
3966
3965 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3967 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3966 into @cd. Patch by Ville.
3968 into @cd. Patch by Ville.
3967
3969
3968 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3970 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3969 new function to store things after ipmaker runs. Patch by Ville.
3971 new function to store things after ipmaker runs. Patch by Ville.
3970 Eventually this will go away once ipmaker is removed and the class
3972 Eventually this will go away once ipmaker is removed and the class
3971 gets cleaned up, but for now it's ok. Key functionality here is
3973 gets cleaned up, but for now it's ok. Key functionality here is
3972 the addition of the persistent storage mechanism, a dict for
3974 the addition of the persistent storage mechanism, a dict for
3973 keeping data across sessions (for now just bookmarks, but more can
3975 keeping data across sessions (for now just bookmarks, but more can
3974 be implemented later).
3976 be implemented later).
3975
3977
3976 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3978 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3977 persistent across sections. Patch by Ville, I modified it
3979 persistent across sections. Patch by Ville, I modified it
3978 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3980 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3979 added a '-l' option to list all bookmarks.
3981 added a '-l' option to list all bookmarks.
3980
3982
3981 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3983 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3982 center for cleanup. Registered with atexit.register(). I moved
3984 center for cleanup. Registered with atexit.register(). I moved
3983 here the old exit_cleanup(). After a patch by Ville.
3985 here the old exit_cleanup(). After a patch by Ville.
3984
3986
3985 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3987 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3986 characters in the hacked shlex_split for python 2.2.
3988 characters in the hacked shlex_split for python 2.2.
3987
3989
3988 * IPython/iplib.py (file_matches): more fixes to filenames with
3990 * IPython/iplib.py (file_matches): more fixes to filenames with
3989 whitespace in them. It's not perfect, but limitations in python's
3991 whitespace in them. It's not perfect, but limitations in python's
3990 readline make it impossible to go further.
3992 readline make it impossible to go further.
3991
3993
3992 2004-06-29 Fernando Perez <fperez@colorado.edu>
3994 2004-06-29 Fernando Perez <fperez@colorado.edu>
3993
3995
3994 * IPython/iplib.py (file_matches): escape whitespace correctly in
3996 * IPython/iplib.py (file_matches): escape whitespace correctly in
3995 filename completions. Bug reported by Ville.
3997 filename completions. Bug reported by Ville.
3996
3998
3997 2004-06-28 Fernando Perez <fperez@colorado.edu>
3999 2004-06-28 Fernando Perez <fperez@colorado.edu>
3998
4000
3999 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4001 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4000 the history file will be called 'history-PROFNAME' (or just
4002 the history file will be called 'history-PROFNAME' (or just
4001 'history' if no profile is loaded). I was getting annoyed at
4003 'history' if no profile is loaded). I was getting annoyed at
4002 getting my Numerical work history clobbered by pysh sessions.
4004 getting my Numerical work history clobbered by pysh sessions.
4003
4005
4004 * IPython/iplib.py (InteractiveShell.__init__): Internal
4006 * IPython/iplib.py (InteractiveShell.__init__): Internal
4005 getoutputerror() function so that we can honor the system_verbose
4007 getoutputerror() function so that we can honor the system_verbose
4006 flag for _all_ system calls. I also added escaping of #
4008 flag for _all_ system calls. I also added escaping of #
4007 characters here to avoid confusing Itpl.
4009 characters here to avoid confusing Itpl.
4008
4010
4009 * IPython/Magic.py (shlex_split): removed call to shell in
4011 * IPython/Magic.py (shlex_split): removed call to shell in
4010 parse_options and replaced it with shlex.split(). The annoying
4012 parse_options and replaced it with shlex.split(). The annoying
4011 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4013 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4012 to backport it from 2.3, with several frail hacks (the shlex
4014 to backport it from 2.3, with several frail hacks (the shlex
4013 module is rather limited in 2.2). Thanks to a suggestion by Ville
4015 module is rather limited in 2.2). Thanks to a suggestion by Ville
4014 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4016 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4015 problem.
4017 problem.
4016
4018
4017 (Magic.magic_system_verbose): new toggle to print the actual
4019 (Magic.magic_system_verbose): new toggle to print the actual
4018 system calls made by ipython. Mainly for debugging purposes.
4020 system calls made by ipython. Mainly for debugging purposes.
4019
4021
4020 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4022 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4021 doesn't support persistence. Reported (and fix suggested) by
4023 doesn't support persistence. Reported (and fix suggested) by
4022 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4024 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4023
4025
4024 2004-06-26 Fernando Perez <fperez@colorado.edu>
4026 2004-06-26 Fernando Perez <fperez@colorado.edu>
4025
4027
4026 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4028 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4027 continue prompts.
4029 continue prompts.
4028
4030
4029 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4031 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4030 function (basically a big docstring) and a few more things here to
4032 function (basically a big docstring) and a few more things here to
4031 speedup startup. pysh.py is now very lightweight. We want because
4033 speedup startup. pysh.py is now very lightweight. We want because
4032 it gets execfile'd, while InterpreterExec gets imported, so
4034 it gets execfile'd, while InterpreterExec gets imported, so
4033 byte-compilation saves time.
4035 byte-compilation saves time.
4034
4036
4035 2004-06-25 Fernando Perez <fperez@colorado.edu>
4037 2004-06-25 Fernando Perez <fperez@colorado.edu>
4036
4038
4037 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4039 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4038 -NUM', which was recently broken.
4040 -NUM', which was recently broken.
4039
4041
4040 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4042 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4041 in multi-line input (but not !!, which doesn't make sense there).
4043 in multi-line input (but not !!, which doesn't make sense there).
4042
4044
4043 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4045 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4044 It's just too useful, and people can turn it off in the less
4046 It's just too useful, and people can turn it off in the less
4045 common cases where it's a problem.
4047 common cases where it's a problem.
4046
4048
4047 2004-06-24 Fernando Perez <fperez@colorado.edu>
4049 2004-06-24 Fernando Perez <fperez@colorado.edu>
4048
4050
4049 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4051 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4050 special syntaxes (like alias calling) is now allied in multi-line
4052 special syntaxes (like alias calling) is now allied in multi-line
4051 input. This is still _very_ experimental, but it's necessary for
4053 input. This is still _very_ experimental, but it's necessary for
4052 efficient shell usage combining python looping syntax with system
4054 efficient shell usage combining python looping syntax with system
4053 calls. For now it's restricted to aliases, I don't think it
4055 calls. For now it's restricted to aliases, I don't think it
4054 really even makes sense to have this for magics.
4056 really even makes sense to have this for magics.
4055
4057
4056 2004-06-23 Fernando Perez <fperez@colorado.edu>
4058 2004-06-23 Fernando Perez <fperez@colorado.edu>
4057
4059
4058 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4060 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4059 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4061 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4060
4062
4061 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4063 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4062 extensions under Windows (after code sent by Gary Bishop). The
4064 extensions under Windows (after code sent by Gary Bishop). The
4063 extensions considered 'executable' are stored in IPython's rc
4065 extensions considered 'executable' are stored in IPython's rc
4064 structure as win_exec_ext.
4066 structure as win_exec_ext.
4065
4067
4066 * IPython/genutils.py (shell): new function, like system() but
4068 * IPython/genutils.py (shell): new function, like system() but
4067 without return value. Very useful for interactive shell work.
4069 without return value. Very useful for interactive shell work.
4068
4070
4069 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4071 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4070 delete aliases.
4072 delete aliases.
4071
4073
4072 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4074 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4073 sure that the alias table doesn't contain python keywords.
4075 sure that the alias table doesn't contain python keywords.
4074
4076
4075 2004-06-21 Fernando Perez <fperez@colorado.edu>
4077 2004-06-21 Fernando Perez <fperez@colorado.edu>
4076
4078
4077 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4079 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4078 non-existent items are found in $PATH. Reported by Thorsten.
4080 non-existent items are found in $PATH. Reported by Thorsten.
4079
4081
4080 2004-06-20 Fernando Perez <fperez@colorado.edu>
4082 2004-06-20 Fernando Perez <fperez@colorado.edu>
4081
4083
4082 * IPython/iplib.py (complete): modified the completer so that the
4084 * IPython/iplib.py (complete): modified the completer so that the
4083 order of priorities can be easily changed at runtime.
4085 order of priorities can be easily changed at runtime.
4084
4086
4085 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4087 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4086 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4088 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4087
4089
4088 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4090 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4089 expand Python variables prepended with $ in all system calls. The
4091 expand Python variables prepended with $ in all system calls. The
4090 same was done to InteractiveShell.handle_shell_escape. Now all
4092 same was done to InteractiveShell.handle_shell_escape. Now all
4091 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4093 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4092 expansion of python variables and expressions according to the
4094 expansion of python variables and expressions according to the
4093 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4095 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4094
4096
4095 Though PEP-215 has been rejected, a similar (but simpler) one
4097 Though PEP-215 has been rejected, a similar (but simpler) one
4096 seems like it will go into Python 2.4, PEP-292 -
4098 seems like it will go into Python 2.4, PEP-292 -
4097 http://www.python.org/peps/pep-0292.html.
4099 http://www.python.org/peps/pep-0292.html.
4098
4100
4099 I'll keep the full syntax of PEP-215, since IPython has since the
4101 I'll keep the full syntax of PEP-215, since IPython has since the
4100 start used Ka-Ping Yee's reference implementation discussed there
4102 start used Ka-Ping Yee's reference implementation discussed there
4101 (Itpl), and I actually like the powerful semantics it offers.
4103 (Itpl), and I actually like the powerful semantics it offers.
4102
4104
4103 In order to access normal shell variables, the $ has to be escaped
4105 In order to access normal shell variables, the $ has to be escaped
4104 via an extra $. For example:
4106 via an extra $. For example:
4105
4107
4106 In [7]: PATH='a python variable'
4108 In [7]: PATH='a python variable'
4107
4109
4108 In [8]: !echo $PATH
4110 In [8]: !echo $PATH
4109 a python variable
4111 a python variable
4110
4112
4111 In [9]: !echo $$PATH
4113 In [9]: !echo $$PATH
4112 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4114 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4113
4115
4114 (Magic.parse_options): escape $ so the shell doesn't evaluate
4116 (Magic.parse_options): escape $ so the shell doesn't evaluate
4115 things prematurely.
4117 things prematurely.
4116
4118
4117 * IPython/iplib.py (InteractiveShell.call_alias): added the
4119 * IPython/iplib.py (InteractiveShell.call_alias): added the
4118 ability for aliases to expand python variables via $.
4120 ability for aliases to expand python variables via $.
4119
4121
4120 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4122 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4121 system, now there's a @rehash/@rehashx pair of magics. These work
4123 system, now there's a @rehash/@rehashx pair of magics. These work
4122 like the csh rehash command, and can be invoked at any time. They
4124 like the csh rehash command, and can be invoked at any time. They
4123 build a table of aliases to everything in the user's $PATH
4125 build a table of aliases to everything in the user's $PATH
4124 (@rehash uses everything, @rehashx is slower but only adds
4126 (@rehash uses everything, @rehashx is slower but only adds
4125 executable files). With this, the pysh.py-based shell profile can
4127 executable files). With this, the pysh.py-based shell profile can
4126 now simply call rehash upon startup, and full access to all
4128 now simply call rehash upon startup, and full access to all
4127 programs in the user's path is obtained.
4129 programs in the user's path is obtained.
4128
4130
4129 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4131 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4130 functionality is now fully in place. I removed the old dynamic
4132 functionality is now fully in place. I removed the old dynamic
4131 code generation based approach, in favor of a much lighter one
4133 code generation based approach, in favor of a much lighter one
4132 based on a simple dict. The advantage is that this allows me to
4134 based on a simple dict. The advantage is that this allows me to
4133 now have thousands of aliases with negligible cost (unthinkable
4135 now have thousands of aliases with negligible cost (unthinkable
4134 with the old system).
4136 with the old system).
4135
4137
4136 2004-06-19 Fernando Perez <fperez@colorado.edu>
4138 2004-06-19 Fernando Perez <fperez@colorado.edu>
4137
4139
4138 * IPython/iplib.py (__init__): extended MagicCompleter class to
4140 * IPython/iplib.py (__init__): extended MagicCompleter class to
4139 also complete (last in priority) on user aliases.
4141 also complete (last in priority) on user aliases.
4140
4142
4141 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4143 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4142 call to eval.
4144 call to eval.
4143 (ItplNS.__init__): Added a new class which functions like Itpl,
4145 (ItplNS.__init__): Added a new class which functions like Itpl,
4144 but allows configuring the namespace for the evaluation to occur
4146 but allows configuring the namespace for the evaluation to occur
4145 in.
4147 in.
4146
4148
4147 2004-06-18 Fernando Perez <fperez@colorado.edu>
4149 2004-06-18 Fernando Perez <fperez@colorado.edu>
4148
4150
4149 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4151 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4150 better message when 'exit' or 'quit' are typed (a common newbie
4152 better message when 'exit' or 'quit' are typed (a common newbie
4151 confusion).
4153 confusion).
4152
4154
4153 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4155 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4154 check for Windows users.
4156 check for Windows users.
4155
4157
4156 * IPython/iplib.py (InteractiveShell.user_setup): removed
4158 * IPython/iplib.py (InteractiveShell.user_setup): removed
4157 disabling of colors for Windows. I'll test at runtime and issue a
4159 disabling of colors for Windows. I'll test at runtime and issue a
4158 warning if Gary's readline isn't found, as to nudge users to
4160 warning if Gary's readline isn't found, as to nudge users to
4159 download it.
4161 download it.
4160
4162
4161 2004-06-16 Fernando Perez <fperez@colorado.edu>
4163 2004-06-16 Fernando Perez <fperez@colorado.edu>
4162
4164
4163 * IPython/genutils.py (Stream.__init__): changed to print errors
4165 * IPython/genutils.py (Stream.__init__): changed to print errors
4164 to sys.stderr. I had a circular dependency here. Now it's
4166 to sys.stderr. I had a circular dependency here. Now it's
4165 possible to run ipython as IDLE's shell (consider this pre-alpha,
4167 possible to run ipython as IDLE's shell (consider this pre-alpha,
4166 since true stdout things end up in the starting terminal instead
4168 since true stdout things end up in the starting terminal instead
4167 of IDLE's out).
4169 of IDLE's out).
4168
4170
4169 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4171 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4170 users who haven't # updated their prompt_in2 definitions. Remove
4172 users who haven't # updated their prompt_in2 definitions. Remove
4171 eventually.
4173 eventually.
4172 (multiple_replace): added credit to original ASPN recipe.
4174 (multiple_replace): added credit to original ASPN recipe.
4173
4175
4174 2004-06-15 Fernando Perez <fperez@colorado.edu>
4176 2004-06-15 Fernando Perez <fperez@colorado.edu>
4175
4177
4176 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4178 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4177 list of auto-defined aliases.
4179 list of auto-defined aliases.
4178
4180
4179 2004-06-13 Fernando Perez <fperez@colorado.edu>
4181 2004-06-13 Fernando Perez <fperez@colorado.edu>
4180
4182
4181 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4183 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4182 install was really requested (so setup.py can be used for other
4184 install was really requested (so setup.py can be used for other
4183 things under Windows).
4185 things under Windows).
4184
4186
4185 2004-06-10 Fernando Perez <fperez@colorado.edu>
4187 2004-06-10 Fernando Perez <fperez@colorado.edu>
4186
4188
4187 * IPython/Logger.py (Logger.create_log): Manually remove any old
4189 * IPython/Logger.py (Logger.create_log): Manually remove any old
4188 backup, since os.remove may fail under Windows. Fixes bug
4190 backup, since os.remove may fail under Windows. Fixes bug
4189 reported by Thorsten.
4191 reported by Thorsten.
4190
4192
4191 2004-06-09 Fernando Perez <fperez@colorado.edu>
4193 2004-06-09 Fernando Perez <fperez@colorado.edu>
4192
4194
4193 * examples/example-embed.py: fixed all references to %n (replaced
4195 * examples/example-embed.py: fixed all references to %n (replaced
4194 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4196 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4195 for all examples and the manual as well.
4197 for all examples and the manual as well.
4196
4198
4197 2004-06-08 Fernando Perez <fperez@colorado.edu>
4199 2004-06-08 Fernando Perez <fperez@colorado.edu>
4198
4200
4199 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4201 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4200 alignment and color management. All 3 prompt subsystems now
4202 alignment and color management. All 3 prompt subsystems now
4201 inherit from BasePrompt.
4203 inherit from BasePrompt.
4202
4204
4203 * tools/release: updates for windows installer build and tag rpms
4205 * tools/release: updates for windows installer build and tag rpms
4204 with python version (since paths are fixed).
4206 with python version (since paths are fixed).
4205
4207
4206 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4208 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4207 which will become eventually obsolete. Also fixed the default
4209 which will become eventually obsolete. Also fixed the default
4208 prompt_in2 to use \D, so at least new users start with the correct
4210 prompt_in2 to use \D, so at least new users start with the correct
4209 defaults.
4211 defaults.
4210 WARNING: Users with existing ipythonrc files will need to apply
4212 WARNING: Users with existing ipythonrc files will need to apply
4211 this fix manually!
4213 this fix manually!
4212
4214
4213 * setup.py: make windows installer (.exe). This is finally the
4215 * setup.py: make windows installer (.exe). This is finally the
4214 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4216 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4215 which I hadn't included because it required Python 2.3 (or recent
4217 which I hadn't included because it required Python 2.3 (or recent
4216 distutils).
4218 distutils).
4217
4219
4218 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4220 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4219 usage of new '\D' escape.
4221 usage of new '\D' escape.
4220
4222
4221 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4223 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4222 lacks os.getuid())
4224 lacks os.getuid())
4223 (CachedOutput.set_colors): Added the ability to turn coloring
4225 (CachedOutput.set_colors): Added the ability to turn coloring
4224 on/off with @colors even for manually defined prompt colors. It
4226 on/off with @colors even for manually defined prompt colors. It
4225 uses a nasty global, but it works safely and via the generic color
4227 uses a nasty global, but it works safely and via the generic color
4226 handling mechanism.
4228 handling mechanism.
4227 (Prompt2.__init__): Introduced new escape '\D' for continuation
4229 (Prompt2.__init__): Introduced new escape '\D' for continuation
4228 prompts. It represents the counter ('\#') as dots.
4230 prompts. It represents the counter ('\#') as dots.
4229 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4231 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4230 need to update their ipythonrc files and replace '%n' with '\D' in
4232 need to update their ipythonrc files and replace '%n' with '\D' in
4231 their prompt_in2 settings everywhere. Sorry, but there's
4233 their prompt_in2 settings everywhere. Sorry, but there's
4232 otherwise no clean way to get all prompts to properly align. The
4234 otherwise no clean way to get all prompts to properly align. The
4233 ipythonrc shipped with IPython has been updated.
4235 ipythonrc shipped with IPython has been updated.
4234
4236
4235 2004-06-07 Fernando Perez <fperez@colorado.edu>
4237 2004-06-07 Fernando Perez <fperez@colorado.edu>
4236
4238
4237 * setup.py (isfile): Pass local_icons option to latex2html, so the
4239 * setup.py (isfile): Pass local_icons option to latex2html, so the
4238 resulting HTML file is self-contained. Thanks to
4240 resulting HTML file is self-contained. Thanks to
4239 dryice-AT-liu.com.cn for the tip.
4241 dryice-AT-liu.com.cn for the tip.
4240
4242
4241 * pysh.py: I created a new profile 'shell', which implements a
4243 * pysh.py: I created a new profile 'shell', which implements a
4242 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4244 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4243 system shell, nor will it become one anytime soon. It's mainly
4245 system shell, nor will it become one anytime soon. It's mainly
4244 meant to illustrate the use of the new flexible bash-like prompts.
4246 meant to illustrate the use of the new flexible bash-like prompts.
4245 I guess it could be used by hardy souls for true shell management,
4247 I guess it could be used by hardy souls for true shell management,
4246 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4248 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4247 profile. This uses the InterpreterExec extension provided by
4249 profile. This uses the InterpreterExec extension provided by
4248 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4250 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4249
4251
4250 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4252 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4251 auto-align itself with the length of the previous input prompt
4253 auto-align itself with the length of the previous input prompt
4252 (taking into account the invisible color escapes).
4254 (taking into account the invisible color escapes).
4253 (CachedOutput.__init__): Large restructuring of this class. Now
4255 (CachedOutput.__init__): Large restructuring of this class. Now
4254 all three prompts (primary1, primary2, output) are proper objects,
4256 all three prompts (primary1, primary2, output) are proper objects,
4255 managed by the 'parent' CachedOutput class. The code is still a
4257 managed by the 'parent' CachedOutput class. The code is still a
4256 bit hackish (all prompts share state via a pointer to the cache),
4258 bit hackish (all prompts share state via a pointer to the cache),
4257 but it's overall far cleaner than before.
4259 but it's overall far cleaner than before.
4258
4260
4259 * IPython/genutils.py (getoutputerror): modified to add verbose,
4261 * IPython/genutils.py (getoutputerror): modified to add verbose,
4260 debug and header options. This makes the interface of all getout*
4262 debug and header options. This makes the interface of all getout*
4261 functions uniform.
4263 functions uniform.
4262 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4264 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4263
4265
4264 * IPython/Magic.py (Magic.default_option): added a function to
4266 * IPython/Magic.py (Magic.default_option): added a function to
4265 allow registering default options for any magic command. This
4267 allow registering default options for any magic command. This
4266 makes it easy to have profiles which customize the magics globally
4268 makes it easy to have profiles which customize the magics globally
4267 for a certain use. The values set through this function are
4269 for a certain use. The values set through this function are
4268 picked up by the parse_options() method, which all magics should
4270 picked up by the parse_options() method, which all magics should
4269 use to parse their options.
4271 use to parse their options.
4270
4272
4271 * IPython/genutils.py (warn): modified the warnings framework to
4273 * IPython/genutils.py (warn): modified the warnings framework to
4272 use the Term I/O class. I'm trying to slowly unify all of
4274 use the Term I/O class. I'm trying to slowly unify all of
4273 IPython's I/O operations to pass through Term.
4275 IPython's I/O operations to pass through Term.
4274
4276
4275 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4277 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4276 the secondary prompt to correctly match the length of the primary
4278 the secondary prompt to correctly match the length of the primary
4277 one for any prompt. Now multi-line code will properly line up
4279 one for any prompt. Now multi-line code will properly line up
4278 even for path dependent prompts, such as the new ones available
4280 even for path dependent prompts, such as the new ones available
4279 via the prompt_specials.
4281 via the prompt_specials.
4280
4282
4281 2004-06-06 Fernando Perez <fperez@colorado.edu>
4283 2004-06-06 Fernando Perez <fperez@colorado.edu>
4282
4284
4283 * IPython/Prompts.py (prompt_specials): Added the ability to have
4285 * IPython/Prompts.py (prompt_specials): Added the ability to have
4284 bash-like special sequences in the prompts, which get
4286 bash-like special sequences in the prompts, which get
4285 automatically expanded. Things like hostname, current working
4287 automatically expanded. Things like hostname, current working
4286 directory and username are implemented already, but it's easy to
4288 directory and username are implemented already, but it's easy to
4287 add more in the future. Thanks to a patch by W.J. van der Laan
4289 add more in the future. Thanks to a patch by W.J. van der Laan
4288 <gnufnork-AT-hetdigitalegat.nl>
4290 <gnufnork-AT-hetdigitalegat.nl>
4289 (prompt_specials): Added color support for prompt strings, so
4291 (prompt_specials): Added color support for prompt strings, so
4290 users can define arbitrary color setups for their prompts.
4292 users can define arbitrary color setups for their prompts.
4291
4293
4292 2004-06-05 Fernando Perez <fperez@colorado.edu>
4294 2004-06-05 Fernando Perez <fperez@colorado.edu>
4293
4295
4294 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4296 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4295 code to load Gary Bishop's readline and configure it
4297 code to load Gary Bishop's readline and configure it
4296 automatically. Thanks to Gary for help on this.
4298 automatically. Thanks to Gary for help on this.
4297
4299
4298 2004-06-01 Fernando Perez <fperez@colorado.edu>
4300 2004-06-01 Fernando Perez <fperez@colorado.edu>
4299
4301
4300 * IPython/Logger.py (Logger.create_log): fix bug for logging
4302 * IPython/Logger.py (Logger.create_log): fix bug for logging
4301 with no filename (previous fix was incomplete).
4303 with no filename (previous fix was incomplete).
4302
4304
4303 2004-05-25 Fernando Perez <fperez@colorado.edu>
4305 2004-05-25 Fernando Perez <fperez@colorado.edu>
4304
4306
4305 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4307 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4306 parens would get passed to the shell.
4308 parens would get passed to the shell.
4307
4309
4308 2004-05-20 Fernando Perez <fperez@colorado.edu>
4310 2004-05-20 Fernando Perez <fperez@colorado.edu>
4309
4311
4310 * IPython/Magic.py (Magic.magic_prun): changed default profile
4312 * IPython/Magic.py (Magic.magic_prun): changed default profile
4311 sort order to 'time' (the more common profiling need).
4313 sort order to 'time' (the more common profiling need).
4312
4314
4313 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4315 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4314 so that source code shown is guaranteed in sync with the file on
4316 so that source code shown is guaranteed in sync with the file on
4315 disk (also changed in psource). Similar fix to the one for
4317 disk (also changed in psource). Similar fix to the one for
4316 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4318 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4317 <yann.ledu-AT-noos.fr>.
4319 <yann.ledu-AT-noos.fr>.
4318
4320
4319 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4321 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4320 with a single option would not be correctly parsed. Closes
4322 with a single option would not be correctly parsed. Closes
4321 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4323 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4322 introduced in 0.6.0 (on 2004-05-06).
4324 introduced in 0.6.0 (on 2004-05-06).
4323
4325
4324 2004-05-13 *** Released version 0.6.0
4326 2004-05-13 *** Released version 0.6.0
4325
4327
4326 2004-05-13 Fernando Perez <fperez@colorado.edu>
4328 2004-05-13 Fernando Perez <fperez@colorado.edu>
4327
4329
4328 * debian/: Added debian/ directory to CVS, so that debian support
4330 * debian/: Added debian/ directory to CVS, so that debian support
4329 is publicly accessible. The debian package is maintained by Jack
4331 is publicly accessible. The debian package is maintained by Jack
4330 Moffit <jack-AT-xiph.org>.
4332 Moffit <jack-AT-xiph.org>.
4331
4333
4332 * Documentation: included the notes about an ipython-based system
4334 * Documentation: included the notes about an ipython-based system
4333 shell (the hypothetical 'pysh') into the new_design.pdf document,
4335 shell (the hypothetical 'pysh') into the new_design.pdf document,
4334 so that these ideas get distributed to users along with the
4336 so that these ideas get distributed to users along with the
4335 official documentation.
4337 official documentation.
4336
4338
4337 2004-05-10 Fernando Perez <fperez@colorado.edu>
4339 2004-05-10 Fernando Perez <fperez@colorado.edu>
4338
4340
4339 * IPython/Logger.py (Logger.create_log): fix recently introduced
4341 * IPython/Logger.py (Logger.create_log): fix recently introduced
4340 bug (misindented line) where logstart would fail when not given an
4342 bug (misindented line) where logstart would fail when not given an
4341 explicit filename.
4343 explicit filename.
4342
4344
4343 2004-05-09 Fernando Perez <fperez@colorado.edu>
4345 2004-05-09 Fernando Perez <fperez@colorado.edu>
4344
4346
4345 * IPython/Magic.py (Magic.parse_options): skip system call when
4347 * IPython/Magic.py (Magic.parse_options): skip system call when
4346 there are no options to look for. Faster, cleaner for the common
4348 there are no options to look for. Faster, cleaner for the common
4347 case.
4349 case.
4348
4350
4349 * Documentation: many updates to the manual: describing Windows
4351 * Documentation: many updates to the manual: describing Windows
4350 support better, Gnuplot updates, credits, misc small stuff. Also
4352 support better, Gnuplot updates, credits, misc small stuff. Also
4351 updated the new_design doc a bit.
4353 updated the new_design doc a bit.
4352
4354
4353 2004-05-06 *** Released version 0.6.0.rc1
4355 2004-05-06 *** Released version 0.6.0.rc1
4354
4356
4355 2004-05-06 Fernando Perez <fperez@colorado.edu>
4357 2004-05-06 Fernando Perez <fperez@colorado.edu>
4356
4358
4357 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4359 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4358 operations to use the vastly more efficient list/''.join() method.
4360 operations to use the vastly more efficient list/''.join() method.
4359 (FormattedTB.text): Fix
4361 (FormattedTB.text): Fix
4360 http://www.scipy.net/roundup/ipython/issue12 - exception source
4362 http://www.scipy.net/roundup/ipython/issue12 - exception source
4361 extract not updated after reload. Thanks to Mike Salib
4363 extract not updated after reload. Thanks to Mike Salib
4362 <msalib-AT-mit.edu> for pinning the source of the problem.
4364 <msalib-AT-mit.edu> for pinning the source of the problem.
4363 Fortunately, the solution works inside ipython and doesn't require
4365 Fortunately, the solution works inside ipython and doesn't require
4364 any changes to python proper.
4366 any changes to python proper.
4365
4367
4366 * IPython/Magic.py (Magic.parse_options): Improved to process the
4368 * IPython/Magic.py (Magic.parse_options): Improved to process the
4367 argument list as a true shell would (by actually using the
4369 argument list as a true shell would (by actually using the
4368 underlying system shell). This way, all @magics automatically get
4370 underlying system shell). This way, all @magics automatically get
4369 shell expansion for variables. Thanks to a comment by Alex
4371 shell expansion for variables. Thanks to a comment by Alex
4370 Schmolck.
4372 Schmolck.
4371
4373
4372 2004-04-04 Fernando Perez <fperez@colorado.edu>
4374 2004-04-04 Fernando Perez <fperez@colorado.edu>
4373
4375
4374 * IPython/iplib.py (InteractiveShell.interact): Added a special
4376 * IPython/iplib.py (InteractiveShell.interact): Added a special
4375 trap for a debugger quit exception, which is basically impossible
4377 trap for a debugger quit exception, which is basically impossible
4376 to handle by normal mechanisms, given what pdb does to the stack.
4378 to handle by normal mechanisms, given what pdb does to the stack.
4377 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4379 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4378
4380
4379 2004-04-03 Fernando Perez <fperez@colorado.edu>
4381 2004-04-03 Fernando Perez <fperez@colorado.edu>
4380
4382
4381 * IPython/genutils.py (Term): Standardized the names of the Term
4383 * IPython/genutils.py (Term): Standardized the names of the Term
4382 class streams to cin/cout/cerr, following C++ naming conventions
4384 class streams to cin/cout/cerr, following C++ naming conventions
4383 (I can't use in/out/err because 'in' is not a valid attribute
4385 (I can't use in/out/err because 'in' is not a valid attribute
4384 name).
4386 name).
4385
4387
4386 * IPython/iplib.py (InteractiveShell.interact): don't increment
4388 * IPython/iplib.py (InteractiveShell.interact): don't increment
4387 the prompt if there's no user input. By Daniel 'Dang' Griffith
4389 the prompt if there's no user input. By Daniel 'Dang' Griffith
4388 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4390 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4389 Francois Pinard.
4391 Francois Pinard.
4390
4392
4391 2004-04-02 Fernando Perez <fperez@colorado.edu>
4393 2004-04-02 Fernando Perez <fperez@colorado.edu>
4392
4394
4393 * IPython/genutils.py (Stream.__init__): Modified to survive at
4395 * IPython/genutils.py (Stream.__init__): Modified to survive at
4394 least importing in contexts where stdin/out/err aren't true file
4396 least importing in contexts where stdin/out/err aren't true file
4395 objects, such as PyCrust (they lack fileno() and mode). However,
4397 objects, such as PyCrust (they lack fileno() and mode). However,
4396 the recovery facilities which rely on these things existing will
4398 the recovery facilities which rely on these things existing will
4397 not work.
4399 not work.
4398
4400
4399 2004-04-01 Fernando Perez <fperez@colorado.edu>
4401 2004-04-01 Fernando Perez <fperez@colorado.edu>
4400
4402
4401 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4403 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4402 use the new getoutputerror() function, so it properly
4404 use the new getoutputerror() function, so it properly
4403 distinguishes stdout/err.
4405 distinguishes stdout/err.
4404
4406
4405 * IPython/genutils.py (getoutputerror): added a function to
4407 * IPython/genutils.py (getoutputerror): added a function to
4406 capture separately the standard output and error of a command.
4408 capture separately the standard output and error of a command.
4407 After a comment from dang on the mailing lists. This code is
4409 After a comment from dang on the mailing lists. This code is
4408 basically a modified version of commands.getstatusoutput(), from
4410 basically a modified version of commands.getstatusoutput(), from
4409 the standard library.
4411 the standard library.
4410
4412
4411 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4413 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4412 '!!' as a special syntax (shorthand) to access @sx.
4414 '!!' as a special syntax (shorthand) to access @sx.
4413
4415
4414 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4416 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4415 command and return its output as a list split on '\n'.
4417 command and return its output as a list split on '\n'.
4416
4418
4417 2004-03-31 Fernando Perez <fperez@colorado.edu>
4419 2004-03-31 Fernando Perez <fperez@colorado.edu>
4418
4420
4419 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4421 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4420 method to dictionaries used as FakeModule instances if they lack
4422 method to dictionaries used as FakeModule instances if they lack
4421 it. At least pydoc in python2.3 breaks for runtime-defined
4423 it. At least pydoc in python2.3 breaks for runtime-defined
4422 functions without this hack. At some point I need to _really_
4424 functions without this hack. At some point I need to _really_
4423 understand what FakeModule is doing, because it's a gross hack.
4425 understand what FakeModule is doing, because it's a gross hack.
4424 But it solves Arnd's problem for now...
4426 But it solves Arnd's problem for now...
4425
4427
4426 2004-02-27 Fernando Perez <fperez@colorado.edu>
4428 2004-02-27 Fernando Perez <fperez@colorado.edu>
4427
4429
4428 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4430 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4429 mode would behave erratically. Also increased the number of
4431 mode would behave erratically. Also increased the number of
4430 possible logs in rotate mod to 999. Thanks to Rod Holland
4432 possible logs in rotate mod to 999. Thanks to Rod Holland
4431 <rhh@StructureLABS.com> for the report and fixes.
4433 <rhh@StructureLABS.com> for the report and fixes.
4432
4434
4433 2004-02-26 Fernando Perez <fperez@colorado.edu>
4435 2004-02-26 Fernando Perez <fperez@colorado.edu>
4434
4436
4435 * IPython/genutils.py (page): Check that the curses module really
4437 * IPython/genutils.py (page): Check that the curses module really
4436 has the initscr attribute before trying to use it. For some
4438 has the initscr attribute before trying to use it. For some
4437 reason, the Solaris curses module is missing this. I think this
4439 reason, the Solaris curses module is missing this. I think this
4438 should be considered a Solaris python bug, but I'm not sure.
4440 should be considered a Solaris python bug, but I'm not sure.
4439
4441
4440 2004-01-17 Fernando Perez <fperez@colorado.edu>
4442 2004-01-17 Fernando Perez <fperez@colorado.edu>
4441
4443
4442 * IPython/genutils.py (Stream.__init__): Changes to try to make
4444 * IPython/genutils.py (Stream.__init__): Changes to try to make
4443 ipython robust against stdin/out/err being closed by the user.
4445 ipython robust against stdin/out/err being closed by the user.
4444 This is 'user error' (and blocks a normal python session, at least
4446 This is 'user error' (and blocks a normal python session, at least
4445 the stdout case). However, Ipython should be able to survive such
4447 the stdout case). However, Ipython should be able to survive such
4446 instances of abuse as gracefully as possible. To simplify the
4448 instances of abuse as gracefully as possible. To simplify the
4447 coding and maintain compatibility with Gary Bishop's Term
4449 coding and maintain compatibility with Gary Bishop's Term
4448 contributions, I've made use of classmethods for this. I think
4450 contributions, I've made use of classmethods for this. I think
4449 this introduces a dependency on python 2.2.
4451 this introduces a dependency on python 2.2.
4450
4452
4451 2004-01-13 Fernando Perez <fperez@colorado.edu>
4453 2004-01-13 Fernando Perez <fperez@colorado.edu>
4452
4454
4453 * IPython/numutils.py (exp_safe): simplified the code a bit and
4455 * IPython/numutils.py (exp_safe): simplified the code a bit and
4454 removed the need for importing the kinds module altogether.
4456 removed the need for importing the kinds module altogether.
4455
4457
4456 2004-01-06 Fernando Perez <fperez@colorado.edu>
4458 2004-01-06 Fernando Perez <fperez@colorado.edu>
4457
4459
4458 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4460 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4459 a magic function instead, after some community feedback. No
4461 a magic function instead, after some community feedback. No
4460 special syntax will exist for it, but its name is deliberately
4462 special syntax will exist for it, but its name is deliberately
4461 very short.
4463 very short.
4462
4464
4463 2003-12-20 Fernando Perez <fperez@colorado.edu>
4465 2003-12-20 Fernando Perez <fperez@colorado.edu>
4464
4466
4465 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4467 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4466 new functionality, to automagically assign the result of a shell
4468 new functionality, to automagically assign the result of a shell
4467 command to a variable. I'll solicit some community feedback on
4469 command to a variable. I'll solicit some community feedback on
4468 this before making it permanent.
4470 this before making it permanent.
4469
4471
4470 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4472 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4471 requested about callables for which inspect couldn't obtain a
4473 requested about callables for which inspect couldn't obtain a
4472 proper argspec. Thanks to a crash report sent by Etienne
4474 proper argspec. Thanks to a crash report sent by Etienne
4473 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4475 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4474
4476
4475 2003-12-09 Fernando Perez <fperez@colorado.edu>
4477 2003-12-09 Fernando Perez <fperez@colorado.edu>
4476
4478
4477 * IPython/genutils.py (page): patch for the pager to work across
4479 * IPython/genutils.py (page): patch for the pager to work across
4478 various versions of Windows. By Gary Bishop.
4480 various versions of Windows. By Gary Bishop.
4479
4481
4480 2003-12-04 Fernando Perez <fperez@colorado.edu>
4482 2003-12-04 Fernando Perez <fperez@colorado.edu>
4481
4483
4482 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4484 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4483 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4485 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4484 While I tested this and it looks ok, there may still be corner
4486 While I tested this and it looks ok, there may still be corner
4485 cases I've missed.
4487 cases I've missed.
4486
4488
4487 2003-12-01 Fernando Perez <fperez@colorado.edu>
4489 2003-12-01 Fernando Perez <fperez@colorado.edu>
4488
4490
4489 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4491 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4490 where a line like 'p,q=1,2' would fail because the automagic
4492 where a line like 'p,q=1,2' would fail because the automagic
4491 system would be triggered for @p.
4493 system would be triggered for @p.
4492
4494
4493 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4495 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4494 cleanups, code unmodified.
4496 cleanups, code unmodified.
4495
4497
4496 * IPython/genutils.py (Term): added a class for IPython to handle
4498 * IPython/genutils.py (Term): added a class for IPython to handle
4497 output. In most cases it will just be a proxy for stdout/err, but
4499 output. In most cases it will just be a proxy for stdout/err, but
4498 having this allows modifications to be made for some platforms,
4500 having this allows modifications to be made for some platforms,
4499 such as handling color escapes under Windows. All of this code
4501 such as handling color escapes under Windows. All of this code
4500 was contributed by Gary Bishop, with minor modifications by me.
4502 was contributed by Gary Bishop, with minor modifications by me.
4501 The actual changes affect many files.
4503 The actual changes affect many files.
4502
4504
4503 2003-11-30 Fernando Perez <fperez@colorado.edu>
4505 2003-11-30 Fernando Perez <fperez@colorado.edu>
4504
4506
4505 * IPython/iplib.py (file_matches): new completion code, courtesy
4507 * IPython/iplib.py (file_matches): new completion code, courtesy
4506 of Jeff Collins. This enables filename completion again under
4508 of Jeff Collins. This enables filename completion again under
4507 python 2.3, which disabled it at the C level.
4509 python 2.3, which disabled it at the C level.
4508
4510
4509 2003-11-11 Fernando Perez <fperez@colorado.edu>
4511 2003-11-11 Fernando Perez <fperez@colorado.edu>
4510
4512
4511 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4513 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4512 for Numeric.array(map(...)), but often convenient.
4514 for Numeric.array(map(...)), but often convenient.
4513
4515
4514 2003-11-05 Fernando Perez <fperez@colorado.edu>
4516 2003-11-05 Fernando Perez <fperez@colorado.edu>
4515
4517
4516 * IPython/numutils.py (frange): Changed a call from int() to
4518 * IPython/numutils.py (frange): Changed a call from int() to
4517 int(round()) to prevent a problem reported with arange() in the
4519 int(round()) to prevent a problem reported with arange() in the
4518 numpy list.
4520 numpy list.
4519
4521
4520 2003-10-06 Fernando Perez <fperez@colorado.edu>
4522 2003-10-06 Fernando Perez <fperez@colorado.edu>
4521
4523
4522 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4524 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4523 prevent crashes if sys lacks an argv attribute (it happens with
4525 prevent crashes if sys lacks an argv attribute (it happens with
4524 embedded interpreters which build a bare-bones sys module).
4526 embedded interpreters which build a bare-bones sys module).
4525 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4527 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4526
4528
4527 2003-09-24 Fernando Perez <fperez@colorado.edu>
4529 2003-09-24 Fernando Perez <fperez@colorado.edu>
4528
4530
4529 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4531 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4530 to protect against poorly written user objects where __getattr__
4532 to protect against poorly written user objects where __getattr__
4531 raises exceptions other than AttributeError. Thanks to a bug
4533 raises exceptions other than AttributeError. Thanks to a bug
4532 report by Oliver Sander <osander-AT-gmx.de>.
4534 report by Oliver Sander <osander-AT-gmx.de>.
4533
4535
4534 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4536 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4535 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4537 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4536
4538
4537 2003-09-09 Fernando Perez <fperez@colorado.edu>
4539 2003-09-09 Fernando Perez <fperez@colorado.edu>
4538
4540
4539 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4541 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4540 unpacking a list whith a callable as first element would
4542 unpacking a list whith a callable as first element would
4541 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4543 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4542 Collins.
4544 Collins.
4543
4545
4544 2003-08-25 *** Released version 0.5.0
4546 2003-08-25 *** Released version 0.5.0
4545
4547
4546 2003-08-22 Fernando Perez <fperez@colorado.edu>
4548 2003-08-22 Fernando Perez <fperez@colorado.edu>
4547
4549
4548 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4550 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4549 improperly defined user exceptions. Thanks to feedback from Mark
4551 improperly defined user exceptions. Thanks to feedback from Mark
4550 Russell <mrussell-AT-verio.net>.
4552 Russell <mrussell-AT-verio.net>.
4551
4553
4552 2003-08-20 Fernando Perez <fperez@colorado.edu>
4554 2003-08-20 Fernando Perez <fperez@colorado.edu>
4553
4555
4554 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4556 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4555 printing so that it would print multi-line string forms starting
4557 printing so that it would print multi-line string forms starting
4556 with a new line. This way the formatting is better respected for
4558 with a new line. This way the formatting is better respected for
4557 objects which work hard to make nice string forms.
4559 objects which work hard to make nice string forms.
4558
4560
4559 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4561 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4560 autocall would overtake data access for objects with both
4562 autocall would overtake data access for objects with both
4561 __getitem__ and __call__.
4563 __getitem__ and __call__.
4562
4564
4563 2003-08-19 *** Released version 0.5.0-rc1
4565 2003-08-19 *** Released version 0.5.0-rc1
4564
4566
4565 2003-08-19 Fernando Perez <fperez@colorado.edu>
4567 2003-08-19 Fernando Perez <fperez@colorado.edu>
4566
4568
4567 * IPython/deep_reload.py (load_tail): single tiny change here
4569 * IPython/deep_reload.py (load_tail): single tiny change here
4568 seems to fix the long-standing bug of dreload() failing to work
4570 seems to fix the long-standing bug of dreload() failing to work
4569 for dotted names. But this module is pretty tricky, so I may have
4571 for dotted names. But this module is pretty tricky, so I may have
4570 missed some subtlety. Needs more testing!.
4572 missed some subtlety. Needs more testing!.
4571
4573
4572 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4574 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4573 exceptions which have badly implemented __str__ methods.
4575 exceptions which have badly implemented __str__ methods.
4574 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4576 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4575 which I've been getting reports about from Python 2.3 users. I
4577 which I've been getting reports about from Python 2.3 users. I
4576 wish I had a simple test case to reproduce the problem, so I could
4578 wish I had a simple test case to reproduce the problem, so I could
4577 either write a cleaner workaround or file a bug report if
4579 either write a cleaner workaround or file a bug report if
4578 necessary.
4580 necessary.
4579
4581
4580 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4582 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4581 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4583 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4582 a bug report by Tjabo Kloppenburg.
4584 a bug report by Tjabo Kloppenburg.
4583
4585
4584 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4586 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4585 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4587 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4586 seems rather unstable. Thanks to a bug report by Tjabo
4588 seems rather unstable. Thanks to a bug report by Tjabo
4587 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4589 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4588
4590
4589 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4591 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4590 this out soon because of the critical fixes in the inner loop for
4592 this out soon because of the critical fixes in the inner loop for
4591 generators.
4593 generators.
4592
4594
4593 * IPython/Magic.py (Magic.getargspec): removed. This (and
4595 * IPython/Magic.py (Magic.getargspec): removed. This (and
4594 _get_def) have been obsoleted by OInspect for a long time, I
4596 _get_def) have been obsoleted by OInspect for a long time, I
4595 hadn't noticed that they were dead code.
4597 hadn't noticed that they were dead code.
4596 (Magic._ofind): restored _ofind functionality for a few literals
4598 (Magic._ofind): restored _ofind functionality for a few literals
4597 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4599 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4598 for things like "hello".capitalize?, since that would require a
4600 for things like "hello".capitalize?, since that would require a
4599 potentially dangerous eval() again.
4601 potentially dangerous eval() again.
4600
4602
4601 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4603 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4602 logic a bit more to clean up the escapes handling and minimize the
4604 logic a bit more to clean up the escapes handling and minimize the
4603 use of _ofind to only necessary cases. The interactive 'feel' of
4605 use of _ofind to only necessary cases. The interactive 'feel' of
4604 IPython should have improved quite a bit with the changes in
4606 IPython should have improved quite a bit with the changes in
4605 _prefilter and _ofind (besides being far safer than before).
4607 _prefilter and _ofind (besides being far safer than before).
4606
4608
4607 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4609 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4608 obscure, never reported). Edit would fail to find the object to
4610 obscure, never reported). Edit would fail to find the object to
4609 edit under some circumstances.
4611 edit under some circumstances.
4610 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4612 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4611 which were causing double-calling of generators. Those eval calls
4613 which were causing double-calling of generators. Those eval calls
4612 were _very_ dangerous, since code with side effects could be
4614 were _very_ dangerous, since code with side effects could be
4613 triggered. As they say, 'eval is evil'... These were the
4615 triggered. As they say, 'eval is evil'... These were the
4614 nastiest evals in IPython. Besides, _ofind is now far simpler,
4616 nastiest evals in IPython. Besides, _ofind is now far simpler,
4615 and it should also be quite a bit faster. Its use of inspect is
4617 and it should also be quite a bit faster. Its use of inspect is
4616 also safer, so perhaps some of the inspect-related crashes I've
4618 also safer, so perhaps some of the inspect-related crashes I've
4617 seen lately with Python 2.3 might be taken care of. That will
4619 seen lately with Python 2.3 might be taken care of. That will
4618 need more testing.
4620 need more testing.
4619
4621
4620 2003-08-17 Fernando Perez <fperez@colorado.edu>
4622 2003-08-17 Fernando Perez <fperez@colorado.edu>
4621
4623
4622 * IPython/iplib.py (InteractiveShell._prefilter): significant
4624 * IPython/iplib.py (InteractiveShell._prefilter): significant
4623 simplifications to the logic for handling user escapes. Faster
4625 simplifications to the logic for handling user escapes. Faster
4624 and simpler code.
4626 and simpler code.
4625
4627
4626 2003-08-14 Fernando Perez <fperez@colorado.edu>
4628 2003-08-14 Fernando Perez <fperez@colorado.edu>
4627
4629
4628 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4630 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4629 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4631 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4630 but it should be quite a bit faster. And the recursive version
4632 but it should be quite a bit faster. And the recursive version
4631 generated O(log N) intermediate storage for all rank>1 arrays,
4633 generated O(log N) intermediate storage for all rank>1 arrays,
4632 even if they were contiguous.
4634 even if they were contiguous.
4633 (l1norm): Added this function.
4635 (l1norm): Added this function.
4634 (norm): Added this function for arbitrary norms (including
4636 (norm): Added this function for arbitrary norms (including
4635 l-infinity). l1 and l2 are still special cases for convenience
4637 l-infinity). l1 and l2 are still special cases for convenience
4636 and speed.
4638 and speed.
4637
4639
4638 2003-08-03 Fernando Perez <fperez@colorado.edu>
4640 2003-08-03 Fernando Perez <fperez@colorado.edu>
4639
4641
4640 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4642 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4641 exceptions, which now raise PendingDeprecationWarnings in Python
4643 exceptions, which now raise PendingDeprecationWarnings in Python
4642 2.3. There were some in Magic and some in Gnuplot2.
4644 2.3. There were some in Magic and some in Gnuplot2.
4643
4645
4644 2003-06-30 Fernando Perez <fperez@colorado.edu>
4646 2003-06-30 Fernando Perez <fperez@colorado.edu>
4645
4647
4646 * IPython/genutils.py (page): modified to call curses only for
4648 * IPython/genutils.py (page): modified to call curses only for
4647 terminals where TERM=='xterm'. After problems under many other
4649 terminals where TERM=='xterm'. After problems under many other
4648 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4650 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4649
4651
4650 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4652 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4651 would be triggered when readline was absent. This was just an old
4653 would be triggered when readline was absent. This was just an old
4652 debugging statement I'd forgotten to take out.
4654 debugging statement I'd forgotten to take out.
4653
4655
4654 2003-06-20 Fernando Perez <fperez@colorado.edu>
4656 2003-06-20 Fernando Perez <fperez@colorado.edu>
4655
4657
4656 * IPython/genutils.py (clock): modified to return only user time
4658 * IPython/genutils.py (clock): modified to return only user time
4657 (not counting system time), after a discussion on scipy. While
4659 (not counting system time), after a discussion on scipy. While
4658 system time may be a useful quantity occasionally, it may much
4660 system time may be a useful quantity occasionally, it may much
4659 more easily be skewed by occasional swapping or other similar
4661 more easily be skewed by occasional swapping or other similar
4660 activity.
4662 activity.
4661
4663
4662 2003-06-05 Fernando Perez <fperez@colorado.edu>
4664 2003-06-05 Fernando Perez <fperez@colorado.edu>
4663
4665
4664 * IPython/numutils.py (identity): new function, for building
4666 * IPython/numutils.py (identity): new function, for building
4665 arbitrary rank Kronecker deltas (mostly backwards compatible with
4667 arbitrary rank Kronecker deltas (mostly backwards compatible with
4666 Numeric.identity)
4668 Numeric.identity)
4667
4669
4668 2003-06-03 Fernando Perez <fperez@colorado.edu>
4670 2003-06-03 Fernando Perez <fperez@colorado.edu>
4669
4671
4670 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4672 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4671 arguments passed to magics with spaces, to allow trailing '\' to
4673 arguments passed to magics with spaces, to allow trailing '\' to
4672 work normally (mainly for Windows users).
4674 work normally (mainly for Windows users).
4673
4675
4674 2003-05-29 Fernando Perez <fperez@colorado.edu>
4676 2003-05-29 Fernando Perez <fperez@colorado.edu>
4675
4677
4676 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4678 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4677 instead of pydoc.help. This fixes a bizarre behavior where
4679 instead of pydoc.help. This fixes a bizarre behavior where
4678 printing '%s' % locals() would trigger the help system. Now
4680 printing '%s' % locals() would trigger the help system. Now
4679 ipython behaves like normal python does.
4681 ipython behaves like normal python does.
4680
4682
4681 Note that if one does 'from pydoc import help', the bizarre
4683 Note that if one does 'from pydoc import help', the bizarre
4682 behavior returns, but this will also happen in normal python, so
4684 behavior returns, but this will also happen in normal python, so
4683 it's not an ipython bug anymore (it has to do with how pydoc.help
4685 it's not an ipython bug anymore (it has to do with how pydoc.help
4684 is implemented).
4686 is implemented).
4685
4687
4686 2003-05-22 Fernando Perez <fperez@colorado.edu>
4688 2003-05-22 Fernando Perez <fperez@colorado.edu>
4687
4689
4688 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4690 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4689 return [] instead of None when nothing matches, also match to end
4691 return [] instead of None when nothing matches, also match to end
4690 of line. Patch by Gary Bishop.
4692 of line. Patch by Gary Bishop.
4691
4693
4692 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4694 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4693 protection as before, for files passed on the command line. This
4695 protection as before, for files passed on the command line. This
4694 prevents the CrashHandler from kicking in if user files call into
4696 prevents the CrashHandler from kicking in if user files call into
4695 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4697 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4696 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4698 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4697
4699
4698 2003-05-20 *** Released version 0.4.0
4700 2003-05-20 *** Released version 0.4.0
4699
4701
4700 2003-05-20 Fernando Perez <fperez@colorado.edu>
4702 2003-05-20 Fernando Perez <fperez@colorado.edu>
4701
4703
4702 * setup.py: added support for manpages. It's a bit hackish b/c of
4704 * setup.py: added support for manpages. It's a bit hackish b/c of
4703 a bug in the way the bdist_rpm distutils target handles gzipped
4705 a bug in the way the bdist_rpm distutils target handles gzipped
4704 manpages, but it works. After a patch by Jack.
4706 manpages, but it works. After a patch by Jack.
4705
4707
4706 2003-05-19 Fernando Perez <fperez@colorado.edu>
4708 2003-05-19 Fernando Perez <fperez@colorado.edu>
4707
4709
4708 * IPython/numutils.py: added a mockup of the kinds module, since
4710 * IPython/numutils.py: added a mockup of the kinds module, since
4709 it was recently removed from Numeric. This way, numutils will
4711 it was recently removed from Numeric. This way, numutils will
4710 work for all users even if they are missing kinds.
4712 work for all users even if they are missing kinds.
4711
4713
4712 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4714 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4713 failure, which can occur with SWIG-wrapped extensions. After a
4715 failure, which can occur with SWIG-wrapped extensions. After a
4714 crash report from Prabhu.
4716 crash report from Prabhu.
4715
4717
4716 2003-05-16 Fernando Perez <fperez@colorado.edu>
4718 2003-05-16 Fernando Perez <fperez@colorado.edu>
4717
4719
4718 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4720 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4719 protect ipython from user code which may call directly
4721 protect ipython from user code which may call directly
4720 sys.excepthook (this looks like an ipython crash to the user, even
4722 sys.excepthook (this looks like an ipython crash to the user, even
4721 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4723 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4722 This is especially important to help users of WxWindows, but may
4724 This is especially important to help users of WxWindows, but may
4723 also be useful in other cases.
4725 also be useful in other cases.
4724
4726
4725 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4727 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4726 an optional tb_offset to be specified, and to preserve exception
4728 an optional tb_offset to be specified, and to preserve exception
4727 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4729 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4728
4730
4729 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4731 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4730
4732
4731 2003-05-15 Fernando Perez <fperez@colorado.edu>
4733 2003-05-15 Fernando Perez <fperez@colorado.edu>
4732
4734
4733 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4735 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4734 installing for a new user under Windows.
4736 installing for a new user under Windows.
4735
4737
4736 2003-05-12 Fernando Perez <fperez@colorado.edu>
4738 2003-05-12 Fernando Perez <fperez@colorado.edu>
4737
4739
4738 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4740 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4739 handler for Emacs comint-based lines. Currently it doesn't do
4741 handler for Emacs comint-based lines. Currently it doesn't do
4740 much (but importantly, it doesn't update the history cache). In
4742 much (but importantly, it doesn't update the history cache). In
4741 the future it may be expanded if Alex needs more functionality
4743 the future it may be expanded if Alex needs more functionality
4742 there.
4744 there.
4743
4745
4744 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4746 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4745 info to crash reports.
4747 info to crash reports.
4746
4748
4747 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4749 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4748 just like Python's -c. Also fixed crash with invalid -color
4750 just like Python's -c. Also fixed crash with invalid -color
4749 option value at startup. Thanks to Will French
4751 option value at startup. Thanks to Will French
4750 <wfrench-AT-bestweb.net> for the bug report.
4752 <wfrench-AT-bestweb.net> for the bug report.
4751
4753
4752 2003-05-09 Fernando Perez <fperez@colorado.edu>
4754 2003-05-09 Fernando Perez <fperez@colorado.edu>
4753
4755
4754 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4756 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4755 to EvalDict (it's a mapping, after all) and simplified its code
4757 to EvalDict (it's a mapping, after all) and simplified its code
4756 quite a bit, after a nice discussion on c.l.py where Gustavo
4758 quite a bit, after a nice discussion on c.l.py where Gustavo
4757 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4759 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4758
4760
4759 2003-04-30 Fernando Perez <fperez@colorado.edu>
4761 2003-04-30 Fernando Perez <fperez@colorado.edu>
4760
4762
4761 * IPython/genutils.py (timings_out): modified it to reduce its
4763 * IPython/genutils.py (timings_out): modified it to reduce its
4762 overhead in the common reps==1 case.
4764 overhead in the common reps==1 case.
4763
4765
4764 2003-04-29 Fernando Perez <fperez@colorado.edu>
4766 2003-04-29 Fernando Perez <fperez@colorado.edu>
4765
4767
4766 * IPython/genutils.py (timings_out): Modified to use the resource
4768 * IPython/genutils.py (timings_out): Modified to use the resource
4767 module, which avoids the wraparound problems of time.clock().
4769 module, which avoids the wraparound problems of time.clock().
4768
4770
4769 2003-04-17 *** Released version 0.2.15pre4
4771 2003-04-17 *** Released version 0.2.15pre4
4770
4772
4771 2003-04-17 Fernando Perez <fperez@colorado.edu>
4773 2003-04-17 Fernando Perez <fperez@colorado.edu>
4772
4774
4773 * setup.py (scriptfiles): Split windows-specific stuff over to a
4775 * setup.py (scriptfiles): Split windows-specific stuff over to a
4774 separate file, in an attempt to have a Windows GUI installer.
4776 separate file, in an attempt to have a Windows GUI installer.
4775 That didn't work, but part of the groundwork is done.
4777 That didn't work, but part of the groundwork is done.
4776
4778
4777 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4779 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4778 indent/unindent with 4 spaces. Particularly useful in combination
4780 indent/unindent with 4 spaces. Particularly useful in combination
4779 with the new auto-indent option.
4781 with the new auto-indent option.
4780
4782
4781 2003-04-16 Fernando Perez <fperez@colorado.edu>
4783 2003-04-16 Fernando Perez <fperez@colorado.edu>
4782
4784
4783 * IPython/Magic.py: various replacements of self.rc for
4785 * IPython/Magic.py: various replacements of self.rc for
4784 self.shell.rc. A lot more remains to be done to fully disentangle
4786 self.shell.rc. A lot more remains to be done to fully disentangle
4785 this class from the main Shell class.
4787 this class from the main Shell class.
4786
4788
4787 * IPython/GnuplotRuntime.py: added checks for mouse support so
4789 * IPython/GnuplotRuntime.py: added checks for mouse support so
4788 that we don't try to enable it if the current gnuplot doesn't
4790 that we don't try to enable it if the current gnuplot doesn't
4789 really support it. Also added checks so that we don't try to
4791 really support it. Also added checks so that we don't try to
4790 enable persist under Windows (where Gnuplot doesn't recognize the
4792 enable persist under Windows (where Gnuplot doesn't recognize the
4791 option).
4793 option).
4792
4794
4793 * IPython/iplib.py (InteractiveShell.interact): Added optional
4795 * IPython/iplib.py (InteractiveShell.interact): Added optional
4794 auto-indenting code, after a patch by King C. Shu
4796 auto-indenting code, after a patch by King C. Shu
4795 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4797 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4796 get along well with pasting indented code. If I ever figure out
4798 get along well with pasting indented code. If I ever figure out
4797 how to make that part go well, it will become on by default.
4799 how to make that part go well, it will become on by default.
4798
4800
4799 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4801 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4800 crash ipython if there was an unmatched '%' in the user's prompt
4802 crash ipython if there was an unmatched '%' in the user's prompt
4801 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4803 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4802
4804
4803 * IPython/iplib.py (InteractiveShell.interact): removed the
4805 * IPython/iplib.py (InteractiveShell.interact): removed the
4804 ability to ask the user whether he wants to crash or not at the
4806 ability to ask the user whether he wants to crash or not at the
4805 'last line' exception handler. Calling functions at that point
4807 'last line' exception handler. Calling functions at that point
4806 changes the stack, and the error reports would have incorrect
4808 changes the stack, and the error reports would have incorrect
4807 tracebacks.
4809 tracebacks.
4808
4810
4809 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4811 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4810 pass through a peger a pretty-printed form of any object. After a
4812 pass through a peger a pretty-printed form of any object. After a
4811 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4813 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4812
4814
4813 2003-04-14 Fernando Perez <fperez@colorado.edu>
4815 2003-04-14 Fernando Perez <fperez@colorado.edu>
4814
4816
4815 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4817 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4816 all files in ~ would be modified at first install (instead of
4818 all files in ~ would be modified at first install (instead of
4817 ~/.ipython). This could be potentially disastrous, as the
4819 ~/.ipython). This could be potentially disastrous, as the
4818 modification (make line-endings native) could damage binary files.
4820 modification (make line-endings native) could damage binary files.
4819
4821
4820 2003-04-10 Fernando Perez <fperez@colorado.edu>
4822 2003-04-10 Fernando Perez <fperez@colorado.edu>
4821
4823
4822 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4824 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4823 handle only lines which are invalid python. This now means that
4825 handle only lines which are invalid python. This now means that
4824 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4826 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4825 for the bug report.
4827 for the bug report.
4826
4828
4827 2003-04-01 Fernando Perez <fperez@colorado.edu>
4829 2003-04-01 Fernando Perez <fperez@colorado.edu>
4828
4830
4829 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4831 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4830 where failing to set sys.last_traceback would crash pdb.pm().
4832 where failing to set sys.last_traceback would crash pdb.pm().
4831 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4833 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4832 report.
4834 report.
4833
4835
4834 2003-03-25 Fernando Perez <fperez@colorado.edu>
4836 2003-03-25 Fernando Perez <fperez@colorado.edu>
4835
4837
4836 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4838 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4837 before printing it (it had a lot of spurious blank lines at the
4839 before printing it (it had a lot of spurious blank lines at the
4838 end).
4840 end).
4839
4841
4840 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4842 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4841 output would be sent 21 times! Obviously people don't use this
4843 output would be sent 21 times! Obviously people don't use this
4842 too often, or I would have heard about it.
4844 too often, or I would have heard about it.
4843
4845
4844 2003-03-24 Fernando Perez <fperez@colorado.edu>
4846 2003-03-24 Fernando Perez <fperez@colorado.edu>
4845
4847
4846 * setup.py (scriptfiles): renamed the data_files parameter from
4848 * setup.py (scriptfiles): renamed the data_files parameter from
4847 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4849 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4848 for the patch.
4850 for the patch.
4849
4851
4850 2003-03-20 Fernando Perez <fperez@colorado.edu>
4852 2003-03-20 Fernando Perez <fperez@colorado.edu>
4851
4853
4852 * IPython/genutils.py (error): added error() and fatal()
4854 * IPython/genutils.py (error): added error() and fatal()
4853 functions.
4855 functions.
4854
4856
4855 2003-03-18 *** Released version 0.2.15pre3
4857 2003-03-18 *** Released version 0.2.15pre3
4856
4858
4857 2003-03-18 Fernando Perez <fperez@colorado.edu>
4859 2003-03-18 Fernando Perez <fperez@colorado.edu>
4858
4860
4859 * setupext/install_data_ext.py
4861 * setupext/install_data_ext.py
4860 (install_data_ext.initialize_options): Class contributed by Jack
4862 (install_data_ext.initialize_options): Class contributed by Jack
4861 Moffit for fixing the old distutils hack. He is sending this to
4863 Moffit for fixing the old distutils hack. He is sending this to
4862 the distutils folks so in the future we may not need it as a
4864 the distutils folks so in the future we may not need it as a
4863 private fix.
4865 private fix.
4864
4866
4865 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4867 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4866 changes for Debian packaging. See his patch for full details.
4868 changes for Debian packaging. See his patch for full details.
4867 The old distutils hack of making the ipythonrc* files carry a
4869 The old distutils hack of making the ipythonrc* files carry a
4868 bogus .py extension is gone, at last. Examples were moved to a
4870 bogus .py extension is gone, at last. Examples were moved to a
4869 separate subdir under doc/, and the separate executable scripts
4871 separate subdir under doc/, and the separate executable scripts
4870 now live in their own directory. Overall a great cleanup. The
4872 now live in their own directory. Overall a great cleanup. The
4871 manual was updated to use the new files, and setup.py has been
4873 manual was updated to use the new files, and setup.py has been
4872 fixed for this setup.
4874 fixed for this setup.
4873
4875
4874 * IPython/PyColorize.py (Parser.usage): made non-executable and
4876 * IPython/PyColorize.py (Parser.usage): made non-executable and
4875 created a pycolor wrapper around it to be included as a script.
4877 created a pycolor wrapper around it to be included as a script.
4876
4878
4877 2003-03-12 *** Released version 0.2.15pre2
4879 2003-03-12 *** Released version 0.2.15pre2
4878
4880
4879 2003-03-12 Fernando Perez <fperez@colorado.edu>
4881 2003-03-12 Fernando Perez <fperez@colorado.edu>
4880
4882
4881 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4883 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4882 long-standing problem with garbage characters in some terminals.
4884 long-standing problem with garbage characters in some terminals.
4883 The issue was really that the \001 and \002 escapes must _only_ be
4885 The issue was really that the \001 and \002 escapes must _only_ be
4884 passed to input prompts (which call readline), but _never_ to
4886 passed to input prompts (which call readline), but _never_ to
4885 normal text to be printed on screen. I changed ColorANSI to have
4887 normal text to be printed on screen. I changed ColorANSI to have
4886 two classes: TermColors and InputTermColors, each with the
4888 two classes: TermColors and InputTermColors, each with the
4887 appropriate escapes for input prompts or normal text. The code in
4889 appropriate escapes for input prompts or normal text. The code in
4888 Prompts.py got slightly more complicated, but this very old and
4890 Prompts.py got slightly more complicated, but this very old and
4889 annoying bug is finally fixed.
4891 annoying bug is finally fixed.
4890
4892
4891 All the credit for nailing down the real origin of this problem
4893 All the credit for nailing down the real origin of this problem
4892 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4894 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4893 *Many* thanks to him for spending quite a bit of effort on this.
4895 *Many* thanks to him for spending quite a bit of effort on this.
4894
4896
4895 2003-03-05 *** Released version 0.2.15pre1
4897 2003-03-05 *** Released version 0.2.15pre1
4896
4898
4897 2003-03-03 Fernando Perez <fperez@colorado.edu>
4899 2003-03-03 Fernando Perez <fperez@colorado.edu>
4898
4900
4899 * IPython/FakeModule.py: Moved the former _FakeModule to a
4901 * IPython/FakeModule.py: Moved the former _FakeModule to a
4900 separate file, because it's also needed by Magic (to fix a similar
4902 separate file, because it's also needed by Magic (to fix a similar
4901 pickle-related issue in @run).
4903 pickle-related issue in @run).
4902
4904
4903 2003-03-02 Fernando Perez <fperez@colorado.edu>
4905 2003-03-02 Fernando Perez <fperez@colorado.edu>
4904
4906
4905 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4907 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4906 the autocall option at runtime.
4908 the autocall option at runtime.
4907 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4909 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4908 across Magic.py to start separating Magic from InteractiveShell.
4910 across Magic.py to start separating Magic from InteractiveShell.
4909 (Magic._ofind): Fixed to return proper namespace for dotted
4911 (Magic._ofind): Fixed to return proper namespace for dotted
4910 names. Before, a dotted name would always return 'not currently
4912 names. Before, a dotted name would always return 'not currently
4911 defined', because it would find the 'parent'. s.x would be found,
4913 defined', because it would find the 'parent'. s.x would be found,
4912 but since 'x' isn't defined by itself, it would get confused.
4914 but since 'x' isn't defined by itself, it would get confused.
4913 (Magic.magic_run): Fixed pickling problems reported by Ralf
4915 (Magic.magic_run): Fixed pickling problems reported by Ralf
4914 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4916 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4915 that I'd used when Mike Heeter reported similar issues at the
4917 that I'd used when Mike Heeter reported similar issues at the
4916 top-level, but now for @run. It boils down to injecting the
4918 top-level, but now for @run. It boils down to injecting the
4917 namespace where code is being executed with something that looks
4919 namespace where code is being executed with something that looks
4918 enough like a module to fool pickle.dump(). Since a pickle stores
4920 enough like a module to fool pickle.dump(). Since a pickle stores
4919 a named reference to the importing module, we need this for
4921 a named reference to the importing module, we need this for
4920 pickles to save something sensible.
4922 pickles to save something sensible.
4921
4923
4922 * IPython/ipmaker.py (make_IPython): added an autocall option.
4924 * IPython/ipmaker.py (make_IPython): added an autocall option.
4923
4925
4924 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4926 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4925 the auto-eval code. Now autocalling is an option, and the code is
4927 the auto-eval code. Now autocalling is an option, and the code is
4926 also vastly safer. There is no more eval() involved at all.
4928 also vastly safer. There is no more eval() involved at all.
4927
4929
4928 2003-03-01 Fernando Perez <fperez@colorado.edu>
4930 2003-03-01 Fernando Perez <fperez@colorado.edu>
4929
4931
4930 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4932 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4931 dict with named keys instead of a tuple.
4933 dict with named keys instead of a tuple.
4932
4934
4933 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4935 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4934
4936
4935 * setup.py (make_shortcut): Fixed message about directories
4937 * setup.py (make_shortcut): Fixed message about directories
4936 created during Windows installation (the directories were ok, just
4938 created during Windows installation (the directories were ok, just
4937 the printed message was misleading). Thanks to Chris Liechti
4939 the printed message was misleading). Thanks to Chris Liechti
4938 <cliechti-AT-gmx.net> for the heads up.
4940 <cliechti-AT-gmx.net> for the heads up.
4939
4941
4940 2003-02-21 Fernando Perez <fperez@colorado.edu>
4942 2003-02-21 Fernando Perez <fperez@colorado.edu>
4941
4943
4942 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4944 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4943 of ValueError exception when checking for auto-execution. This
4945 of ValueError exception when checking for auto-execution. This
4944 one is raised by things like Numeric arrays arr.flat when the
4946 one is raised by things like Numeric arrays arr.flat when the
4945 array is non-contiguous.
4947 array is non-contiguous.
4946
4948
4947 2003-01-31 Fernando Perez <fperez@colorado.edu>
4949 2003-01-31 Fernando Perez <fperez@colorado.edu>
4948
4950
4949 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4951 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4950 not return any value at all (even though the command would get
4952 not return any value at all (even though the command would get
4951 executed).
4953 executed).
4952 (xsys): Flush stdout right after printing the command to ensure
4954 (xsys): Flush stdout right after printing the command to ensure
4953 proper ordering of commands and command output in the total
4955 proper ordering of commands and command output in the total
4954 output.
4956 output.
4955 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4957 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4956 system/getoutput as defaults. The old ones are kept for
4958 system/getoutput as defaults. The old ones are kept for
4957 compatibility reasons, so no code which uses this library needs
4959 compatibility reasons, so no code which uses this library needs
4958 changing.
4960 changing.
4959
4961
4960 2003-01-27 *** Released version 0.2.14
4962 2003-01-27 *** Released version 0.2.14
4961
4963
4962 2003-01-25 Fernando Perez <fperez@colorado.edu>
4964 2003-01-25 Fernando Perez <fperez@colorado.edu>
4963
4965
4964 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4966 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4965 functions defined in previous edit sessions could not be re-edited
4967 functions defined in previous edit sessions could not be re-edited
4966 (because the temp files were immediately removed). Now temp files
4968 (because the temp files were immediately removed). Now temp files
4967 are removed only at IPython's exit.
4969 are removed only at IPython's exit.
4968 (Magic.magic_run): Improved @run to perform shell-like expansions
4970 (Magic.magic_run): Improved @run to perform shell-like expansions
4969 on its arguments (~users and $VARS). With this, @run becomes more
4971 on its arguments (~users and $VARS). With this, @run becomes more
4970 like a normal command-line.
4972 like a normal command-line.
4971
4973
4972 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4974 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4973 bugs related to embedding and cleaned up that code. A fairly
4975 bugs related to embedding and cleaned up that code. A fairly
4974 important one was the impossibility to access the global namespace
4976 important one was the impossibility to access the global namespace
4975 through the embedded IPython (only local variables were visible).
4977 through the embedded IPython (only local variables were visible).
4976
4978
4977 2003-01-14 Fernando Perez <fperez@colorado.edu>
4979 2003-01-14 Fernando Perez <fperez@colorado.edu>
4978
4980
4979 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4981 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4980 auto-calling to be a bit more conservative. Now it doesn't get
4982 auto-calling to be a bit more conservative. Now it doesn't get
4981 triggered if any of '!=()<>' are in the rest of the input line, to
4983 triggered if any of '!=()<>' are in the rest of the input line, to
4982 allow comparing callables. Thanks to Alex for the heads up.
4984 allow comparing callables. Thanks to Alex for the heads up.
4983
4985
4984 2003-01-07 Fernando Perez <fperez@colorado.edu>
4986 2003-01-07 Fernando Perez <fperez@colorado.edu>
4985
4987
4986 * IPython/genutils.py (page): fixed estimation of the number of
4988 * IPython/genutils.py (page): fixed estimation of the number of
4987 lines in a string to be paged to simply count newlines. This
4989 lines in a string to be paged to simply count newlines. This
4988 prevents over-guessing due to embedded escape sequences. A better
4990 prevents over-guessing due to embedded escape sequences. A better
4989 long-term solution would involve stripping out the control chars
4991 long-term solution would involve stripping out the control chars
4990 for the count, but it's potentially so expensive I just don't
4992 for the count, but it's potentially so expensive I just don't
4991 think it's worth doing.
4993 think it's worth doing.
4992
4994
4993 2002-12-19 *** Released version 0.2.14pre50
4995 2002-12-19 *** Released version 0.2.14pre50
4994
4996
4995 2002-12-19 Fernando Perez <fperez@colorado.edu>
4997 2002-12-19 Fernando Perez <fperez@colorado.edu>
4996
4998
4997 * tools/release (version): Changed release scripts to inform
4999 * tools/release (version): Changed release scripts to inform
4998 Andrea and build a NEWS file with a list of recent changes.
5000 Andrea and build a NEWS file with a list of recent changes.
4999
5001
5000 * IPython/ColorANSI.py (__all__): changed terminal detection
5002 * IPython/ColorANSI.py (__all__): changed terminal detection
5001 code. Seems to work better for xterms without breaking
5003 code. Seems to work better for xterms without breaking
5002 konsole. Will need more testing to determine if WinXP and Mac OSX
5004 konsole. Will need more testing to determine if WinXP and Mac OSX
5003 also work ok.
5005 also work ok.
5004
5006
5005 2002-12-18 *** Released version 0.2.14pre49
5007 2002-12-18 *** Released version 0.2.14pre49
5006
5008
5007 2002-12-18 Fernando Perez <fperez@colorado.edu>
5009 2002-12-18 Fernando Perez <fperez@colorado.edu>
5008
5010
5009 * Docs: added new info about Mac OSX, from Andrea.
5011 * Docs: added new info about Mac OSX, from Andrea.
5010
5012
5011 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5013 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5012 allow direct plotting of python strings whose format is the same
5014 allow direct plotting of python strings whose format is the same
5013 of gnuplot data files.
5015 of gnuplot data files.
5014
5016
5015 2002-12-16 Fernando Perez <fperez@colorado.edu>
5017 2002-12-16 Fernando Perez <fperez@colorado.edu>
5016
5018
5017 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5019 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5018 value of exit question to be acknowledged.
5020 value of exit question to be acknowledged.
5019
5021
5020 2002-12-03 Fernando Perez <fperez@colorado.edu>
5022 2002-12-03 Fernando Perez <fperez@colorado.edu>
5021
5023
5022 * IPython/ipmaker.py: removed generators, which had been added
5024 * IPython/ipmaker.py: removed generators, which had been added
5023 by mistake in an earlier debugging run. This was causing trouble
5025 by mistake in an earlier debugging run. This was causing trouble
5024 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5026 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5025 for pointing this out.
5027 for pointing this out.
5026
5028
5027 2002-11-17 Fernando Perez <fperez@colorado.edu>
5029 2002-11-17 Fernando Perez <fperez@colorado.edu>
5028
5030
5029 * Manual: updated the Gnuplot section.
5031 * Manual: updated the Gnuplot section.
5030
5032
5031 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5033 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5032 a much better split of what goes in Runtime and what goes in
5034 a much better split of what goes in Runtime and what goes in
5033 Interactive.
5035 Interactive.
5034
5036
5035 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5037 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5036 being imported from iplib.
5038 being imported from iplib.
5037
5039
5038 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5040 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5039 for command-passing. Now the global Gnuplot instance is called
5041 for command-passing. Now the global Gnuplot instance is called
5040 'gp' instead of 'g', which was really a far too fragile and
5042 'gp' instead of 'g', which was really a far too fragile and
5041 common name.
5043 common name.
5042
5044
5043 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5045 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5044 bounding boxes generated by Gnuplot for square plots.
5046 bounding boxes generated by Gnuplot for square plots.
5045
5047
5046 * IPython/genutils.py (popkey): new function added. I should
5048 * IPython/genutils.py (popkey): new function added. I should
5047 suggest this on c.l.py as a dict method, it seems useful.
5049 suggest this on c.l.py as a dict method, it seems useful.
5048
5050
5049 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5051 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5050 to transparently handle PostScript generation. MUCH better than
5052 to transparently handle PostScript generation. MUCH better than
5051 the previous plot_eps/replot_eps (which I removed now). The code
5053 the previous plot_eps/replot_eps (which I removed now). The code
5052 is also fairly clean and well documented now (including
5054 is also fairly clean and well documented now (including
5053 docstrings).
5055 docstrings).
5054
5056
5055 2002-11-13 Fernando Perez <fperez@colorado.edu>
5057 2002-11-13 Fernando Perez <fperez@colorado.edu>
5056
5058
5057 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5059 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5058 (inconsistent with options).
5060 (inconsistent with options).
5059
5061
5060 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5062 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5061 manually disabled, I don't know why. Fixed it.
5063 manually disabled, I don't know why. Fixed it.
5062 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5064 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5063 eps output.
5065 eps output.
5064
5066
5065 2002-11-12 Fernando Perez <fperez@colorado.edu>
5067 2002-11-12 Fernando Perez <fperez@colorado.edu>
5066
5068
5067 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5069 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5068 don't propagate up to caller. Fixes crash reported by François
5070 don't propagate up to caller. Fixes crash reported by François
5069 Pinard.
5071 Pinard.
5070
5072
5071 2002-11-09 Fernando Perez <fperez@colorado.edu>
5073 2002-11-09 Fernando Perez <fperez@colorado.edu>
5072
5074
5073 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5075 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5074 history file for new users.
5076 history file for new users.
5075 (make_IPython): fixed bug where initial install would leave the
5077 (make_IPython): fixed bug where initial install would leave the
5076 user running in the .ipython dir.
5078 user running in the .ipython dir.
5077 (make_IPython): fixed bug where config dir .ipython would be
5079 (make_IPython): fixed bug where config dir .ipython would be
5078 created regardless of the given -ipythondir option. Thanks to Cory
5080 created regardless of the given -ipythondir option. Thanks to Cory
5079 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5081 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5080
5082
5081 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5083 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5082 type confirmations. Will need to use it in all of IPython's code
5084 type confirmations. Will need to use it in all of IPython's code
5083 consistently.
5085 consistently.
5084
5086
5085 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5087 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5086 context to print 31 lines instead of the default 5. This will make
5088 context to print 31 lines instead of the default 5. This will make
5087 the crash reports extremely detailed in case the problem is in
5089 the crash reports extremely detailed in case the problem is in
5088 libraries I don't have access to.
5090 libraries I don't have access to.
5089
5091
5090 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5092 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5091 line of defense' code to still crash, but giving users fair
5093 line of defense' code to still crash, but giving users fair
5092 warning. I don't want internal errors to go unreported: if there's
5094 warning. I don't want internal errors to go unreported: if there's
5093 an internal problem, IPython should crash and generate a full
5095 an internal problem, IPython should crash and generate a full
5094 report.
5096 report.
5095
5097
5096 2002-11-08 Fernando Perez <fperez@colorado.edu>
5098 2002-11-08 Fernando Perez <fperez@colorado.edu>
5097
5099
5098 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5100 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5099 otherwise uncaught exceptions which can appear if people set
5101 otherwise uncaught exceptions which can appear if people set
5100 sys.stdout to something badly broken. Thanks to a crash report
5102 sys.stdout to something badly broken. Thanks to a crash report
5101 from henni-AT-mail.brainbot.com.
5103 from henni-AT-mail.brainbot.com.
5102
5104
5103 2002-11-04 Fernando Perez <fperez@colorado.edu>
5105 2002-11-04 Fernando Perez <fperez@colorado.edu>
5104
5106
5105 * IPython/iplib.py (InteractiveShell.interact): added
5107 * IPython/iplib.py (InteractiveShell.interact): added
5106 __IPYTHON__active to the builtins. It's a flag which goes on when
5108 __IPYTHON__active to the builtins. It's a flag which goes on when
5107 the interaction starts and goes off again when it stops. This
5109 the interaction starts and goes off again when it stops. This
5108 allows embedding code to detect being inside IPython. Before this
5110 allows embedding code to detect being inside IPython. Before this
5109 was done via __IPYTHON__, but that only shows that an IPython
5111 was done via __IPYTHON__, but that only shows that an IPython
5110 instance has been created.
5112 instance has been created.
5111
5113
5112 * IPython/Magic.py (Magic.magic_env): I realized that in a
5114 * IPython/Magic.py (Magic.magic_env): I realized that in a
5113 UserDict, instance.data holds the data as a normal dict. So I
5115 UserDict, instance.data holds the data as a normal dict. So I
5114 modified @env to return os.environ.data instead of rebuilding a
5116 modified @env to return os.environ.data instead of rebuilding a
5115 dict by hand.
5117 dict by hand.
5116
5118
5117 2002-11-02 Fernando Perez <fperez@colorado.edu>
5119 2002-11-02 Fernando Perez <fperez@colorado.edu>
5118
5120
5119 * IPython/genutils.py (warn): changed so that level 1 prints no
5121 * IPython/genutils.py (warn): changed so that level 1 prints no
5120 header. Level 2 is now the default (with 'WARNING' header, as
5122 header. Level 2 is now the default (with 'WARNING' header, as
5121 before). I think I tracked all places where changes were needed in
5123 before). I think I tracked all places where changes were needed in
5122 IPython, but outside code using the old level numbering may have
5124 IPython, but outside code using the old level numbering may have
5123 broken.
5125 broken.
5124
5126
5125 * IPython/iplib.py (InteractiveShell.runcode): added this to
5127 * IPython/iplib.py (InteractiveShell.runcode): added this to
5126 handle the tracebacks in SystemExit traps correctly. The previous
5128 handle the tracebacks in SystemExit traps correctly. The previous
5127 code (through interact) was printing more of the stack than
5129 code (through interact) was printing more of the stack than
5128 necessary, showing IPython internal code to the user.
5130 necessary, showing IPython internal code to the user.
5129
5131
5130 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5132 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5131 default. Now that the default at the confirmation prompt is yes,
5133 default. Now that the default at the confirmation prompt is yes,
5132 it's not so intrusive. François' argument that ipython sessions
5134 it's not so intrusive. François' argument that ipython sessions
5133 tend to be complex enough not to lose them from an accidental C-d,
5135 tend to be complex enough not to lose them from an accidental C-d,
5134 is a valid one.
5136 is a valid one.
5135
5137
5136 * IPython/iplib.py (InteractiveShell.interact): added a
5138 * IPython/iplib.py (InteractiveShell.interact): added a
5137 showtraceback() call to the SystemExit trap, and modified the exit
5139 showtraceback() call to the SystemExit trap, and modified the exit
5138 confirmation to have yes as the default.
5140 confirmation to have yes as the default.
5139
5141
5140 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5142 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5141 this file. It's been gone from the code for a long time, this was
5143 this file. It's been gone from the code for a long time, this was
5142 simply leftover junk.
5144 simply leftover junk.
5143
5145
5144 2002-11-01 Fernando Perez <fperez@colorado.edu>
5146 2002-11-01 Fernando Perez <fperez@colorado.edu>
5145
5147
5146 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5148 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5147 added. If set, IPython now traps EOF and asks for
5149 added. If set, IPython now traps EOF and asks for
5148 confirmation. After a request by François Pinard.
5150 confirmation. After a request by François Pinard.
5149
5151
5150 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5152 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5151 of @abort, and with a new (better) mechanism for handling the
5153 of @abort, and with a new (better) mechanism for handling the
5152 exceptions.
5154 exceptions.
5153
5155
5154 2002-10-27 Fernando Perez <fperez@colorado.edu>
5156 2002-10-27 Fernando Perez <fperez@colorado.edu>
5155
5157
5156 * IPython/usage.py (__doc__): updated the --help information and
5158 * IPython/usage.py (__doc__): updated the --help information and
5157 the ipythonrc file to indicate that -log generates
5159 the ipythonrc file to indicate that -log generates
5158 ./ipython.log. Also fixed the corresponding info in @logstart.
5160 ./ipython.log. Also fixed the corresponding info in @logstart.
5159 This and several other fixes in the manuals thanks to reports by
5161 This and several other fixes in the manuals thanks to reports by
5160 François Pinard <pinard-AT-iro.umontreal.ca>.
5162 François Pinard <pinard-AT-iro.umontreal.ca>.
5161
5163
5162 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5164 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5163 refer to @logstart (instead of @log, which doesn't exist).
5165 refer to @logstart (instead of @log, which doesn't exist).
5164
5166
5165 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5167 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5166 AttributeError crash. Thanks to Christopher Armstrong
5168 AttributeError crash. Thanks to Christopher Armstrong
5167 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5169 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5168 introduced recently (in 0.2.14pre37) with the fix to the eval
5170 introduced recently (in 0.2.14pre37) with the fix to the eval
5169 problem mentioned below.
5171 problem mentioned below.
5170
5172
5171 2002-10-17 Fernando Perez <fperez@colorado.edu>
5173 2002-10-17 Fernando Perez <fperez@colorado.edu>
5172
5174
5173 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5175 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5174 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5176 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5175
5177
5176 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5178 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5177 this function to fix a problem reported by Alex Schmolck. He saw
5179 this function to fix a problem reported by Alex Schmolck. He saw
5178 it with list comprehensions and generators, which were getting
5180 it with list comprehensions and generators, which were getting
5179 called twice. The real problem was an 'eval' call in testing for
5181 called twice. The real problem was an 'eval' call in testing for
5180 automagic which was evaluating the input line silently.
5182 automagic which was evaluating the input line silently.
5181
5183
5182 This is a potentially very nasty bug, if the input has side
5184 This is a potentially very nasty bug, if the input has side
5183 effects which must not be repeated. The code is much cleaner now,
5185 effects which must not be repeated. The code is much cleaner now,
5184 without any blanket 'except' left and with a regexp test for
5186 without any blanket 'except' left and with a regexp test for
5185 actual function names.
5187 actual function names.
5186
5188
5187 But an eval remains, which I'm not fully comfortable with. I just
5189 But an eval remains, which I'm not fully comfortable with. I just
5188 don't know how to find out if an expression could be a callable in
5190 don't know how to find out if an expression could be a callable in
5189 the user's namespace without doing an eval on the string. However
5191 the user's namespace without doing an eval on the string. However
5190 that string is now much more strictly checked so that no code
5192 that string is now much more strictly checked so that no code
5191 slips by, so the eval should only happen for things that can
5193 slips by, so the eval should only happen for things that can
5192 really be only function/method names.
5194 really be only function/method names.
5193
5195
5194 2002-10-15 Fernando Perez <fperez@colorado.edu>
5196 2002-10-15 Fernando Perez <fperez@colorado.edu>
5195
5197
5196 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5198 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5197 OSX information to main manual, removed README_Mac_OSX file from
5199 OSX information to main manual, removed README_Mac_OSX file from
5198 distribution. Also updated credits for recent additions.
5200 distribution. Also updated credits for recent additions.
5199
5201
5200 2002-10-10 Fernando Perez <fperez@colorado.edu>
5202 2002-10-10 Fernando Perez <fperez@colorado.edu>
5201
5203
5202 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5204 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5203 terminal-related issues. Many thanks to Andrea Riciputi
5205 terminal-related issues. Many thanks to Andrea Riciputi
5204 <andrea.riciputi-AT-libero.it> for writing it.
5206 <andrea.riciputi-AT-libero.it> for writing it.
5205
5207
5206 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5208 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5207 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5209 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5208
5210
5209 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5211 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5210 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5212 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5211 <syver-en-AT-online.no> who both submitted patches for this problem.
5213 <syver-en-AT-online.no> who both submitted patches for this problem.
5212
5214
5213 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5215 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5214 global embedding to make sure that things don't overwrite user
5216 global embedding to make sure that things don't overwrite user
5215 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5217 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5216
5218
5217 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5219 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5218 compatibility. Thanks to Hayden Callow
5220 compatibility. Thanks to Hayden Callow
5219 <h.callow-AT-elec.canterbury.ac.nz>
5221 <h.callow-AT-elec.canterbury.ac.nz>
5220
5222
5221 2002-10-04 Fernando Perez <fperez@colorado.edu>
5223 2002-10-04 Fernando Perez <fperez@colorado.edu>
5222
5224
5223 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5225 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5224 Gnuplot.File objects.
5226 Gnuplot.File objects.
5225
5227
5226 2002-07-23 Fernando Perez <fperez@colorado.edu>
5228 2002-07-23 Fernando Perez <fperez@colorado.edu>
5227
5229
5228 * IPython/genutils.py (timing): Added timings() and timing() for
5230 * IPython/genutils.py (timing): Added timings() and timing() for
5229 quick access to the most commonly needed data, the execution
5231 quick access to the most commonly needed data, the execution
5230 times. Old timing() renamed to timings_out().
5232 times. Old timing() renamed to timings_out().
5231
5233
5232 2002-07-18 Fernando Perez <fperez@colorado.edu>
5234 2002-07-18 Fernando Perez <fperez@colorado.edu>
5233
5235
5234 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5236 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5235 bug with nested instances disrupting the parent's tab completion.
5237 bug with nested instances disrupting the parent's tab completion.
5236
5238
5237 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5239 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5238 all_completions code to begin the emacs integration.
5240 all_completions code to begin the emacs integration.
5239
5241
5240 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5242 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5241 argument to allow titling individual arrays when plotting.
5243 argument to allow titling individual arrays when plotting.
5242
5244
5243 2002-07-15 Fernando Perez <fperez@colorado.edu>
5245 2002-07-15 Fernando Perez <fperez@colorado.edu>
5244
5246
5245 * setup.py (make_shortcut): changed to retrieve the value of
5247 * setup.py (make_shortcut): changed to retrieve the value of
5246 'Program Files' directory from the registry (this value changes in
5248 'Program Files' directory from the registry (this value changes in
5247 non-english versions of Windows). Thanks to Thomas Fanslau
5249 non-english versions of Windows). Thanks to Thomas Fanslau
5248 <tfanslau-AT-gmx.de> for the report.
5250 <tfanslau-AT-gmx.de> for the report.
5249
5251
5250 2002-07-10 Fernando Perez <fperez@colorado.edu>
5252 2002-07-10 Fernando Perez <fperez@colorado.edu>
5251
5253
5252 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5254 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5253 a bug in pdb, which crashes if a line with only whitespace is
5255 a bug in pdb, which crashes if a line with only whitespace is
5254 entered. Bug report submitted to sourceforge.
5256 entered. Bug report submitted to sourceforge.
5255
5257
5256 2002-07-09 Fernando Perez <fperez@colorado.edu>
5258 2002-07-09 Fernando Perez <fperez@colorado.edu>
5257
5259
5258 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5260 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5259 reporting exceptions (it's a bug in inspect.py, I just set a
5261 reporting exceptions (it's a bug in inspect.py, I just set a
5260 workaround).
5262 workaround).
5261
5263
5262 2002-07-08 Fernando Perez <fperez@colorado.edu>
5264 2002-07-08 Fernando Perez <fperez@colorado.edu>
5263
5265
5264 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5266 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5265 __IPYTHON__ in __builtins__ to show up in user_ns.
5267 __IPYTHON__ in __builtins__ to show up in user_ns.
5266
5268
5267 2002-07-03 Fernando Perez <fperez@colorado.edu>
5269 2002-07-03 Fernando Perez <fperez@colorado.edu>
5268
5270
5269 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5271 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5270 name from @gp_set_instance to @gp_set_default.
5272 name from @gp_set_instance to @gp_set_default.
5271
5273
5272 * IPython/ipmaker.py (make_IPython): default editor value set to
5274 * IPython/ipmaker.py (make_IPython): default editor value set to
5273 '0' (a string), to match the rc file. Otherwise will crash when
5275 '0' (a string), to match the rc file. Otherwise will crash when
5274 .strip() is called on it.
5276 .strip() is called on it.
5275
5277
5276
5278
5277 2002-06-28 Fernando Perez <fperez@colorado.edu>
5279 2002-06-28 Fernando Perez <fperez@colorado.edu>
5278
5280
5279 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5281 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5280 of files in current directory when a file is executed via
5282 of files in current directory when a file is executed via
5281 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5283 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5282
5284
5283 * setup.py (manfiles): fix for rpm builds, submitted by RA
5285 * setup.py (manfiles): fix for rpm builds, submitted by RA
5284 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5286 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5285
5287
5286 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5288 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5287 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5289 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5288 string!). A. Schmolck caught this one.
5290 string!). A. Schmolck caught this one.
5289
5291
5290 2002-06-27 Fernando Perez <fperez@colorado.edu>
5292 2002-06-27 Fernando Perez <fperez@colorado.edu>
5291
5293
5292 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5294 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5293 defined files at the cmd line. __name__ wasn't being set to
5295 defined files at the cmd line. __name__ wasn't being set to
5294 __main__.
5296 __main__.
5295
5297
5296 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5298 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5297 regular lists and tuples besides Numeric arrays.
5299 regular lists and tuples besides Numeric arrays.
5298
5300
5299 * IPython/Prompts.py (CachedOutput.__call__): Added output
5301 * IPython/Prompts.py (CachedOutput.__call__): Added output
5300 supression for input ending with ';'. Similar to Mathematica and
5302 supression for input ending with ';'. Similar to Mathematica and
5301 Matlab. The _* vars and Out[] list are still updated, just like
5303 Matlab. The _* vars and Out[] list are still updated, just like
5302 Mathematica behaves.
5304 Mathematica behaves.
5303
5305
5304 2002-06-25 Fernando Perez <fperez@colorado.edu>
5306 2002-06-25 Fernando Perez <fperez@colorado.edu>
5305
5307
5306 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5308 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5307 .ini extensions for profiels under Windows.
5309 .ini extensions for profiels under Windows.
5308
5310
5309 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5311 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5310 string form. Fix contributed by Alexander Schmolck
5312 string form. Fix contributed by Alexander Schmolck
5311 <a.schmolck-AT-gmx.net>
5313 <a.schmolck-AT-gmx.net>
5312
5314
5313 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5315 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5314 pre-configured Gnuplot instance.
5316 pre-configured Gnuplot instance.
5315
5317
5316 2002-06-21 Fernando Perez <fperez@colorado.edu>
5318 2002-06-21 Fernando Perez <fperez@colorado.edu>
5317
5319
5318 * IPython/numutils.py (exp_safe): new function, works around the
5320 * IPython/numutils.py (exp_safe): new function, works around the
5319 underflow problems in Numeric.
5321 underflow problems in Numeric.
5320 (log2): New fn. Safe log in base 2: returns exact integer answer
5322 (log2): New fn. Safe log in base 2: returns exact integer answer
5321 for exact integer powers of 2.
5323 for exact integer powers of 2.
5322
5324
5323 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5325 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5324 properly.
5326 properly.
5325
5327
5326 2002-06-20 Fernando Perez <fperez@colorado.edu>
5328 2002-06-20 Fernando Perez <fperez@colorado.edu>
5327
5329
5328 * IPython/genutils.py (timing): new function like
5330 * IPython/genutils.py (timing): new function like
5329 Mathematica's. Similar to time_test, but returns more info.
5331 Mathematica's. Similar to time_test, but returns more info.
5330
5332
5331 2002-06-18 Fernando Perez <fperez@colorado.edu>
5333 2002-06-18 Fernando Perez <fperez@colorado.edu>
5332
5334
5333 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5335 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5334 according to Mike Heeter's suggestions.
5336 according to Mike Heeter's suggestions.
5335
5337
5336 2002-06-16 Fernando Perez <fperez@colorado.edu>
5338 2002-06-16 Fernando Perez <fperez@colorado.edu>
5337
5339
5338 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5340 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5339 system. GnuplotMagic is gone as a user-directory option. New files
5341 system. GnuplotMagic is gone as a user-directory option. New files
5340 make it easier to use all the gnuplot stuff both from external
5342 make it easier to use all the gnuplot stuff both from external
5341 programs as well as from IPython. Had to rewrite part of
5343 programs as well as from IPython. Had to rewrite part of
5342 hardcopy() b/c of a strange bug: often the ps files simply don't
5344 hardcopy() b/c of a strange bug: often the ps files simply don't
5343 get created, and require a repeat of the command (often several
5345 get created, and require a repeat of the command (often several
5344 times).
5346 times).
5345
5347
5346 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5348 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5347 resolve output channel at call time, so that if sys.stderr has
5349 resolve output channel at call time, so that if sys.stderr has
5348 been redirected by user this gets honored.
5350 been redirected by user this gets honored.
5349
5351
5350 2002-06-13 Fernando Perez <fperez@colorado.edu>
5352 2002-06-13 Fernando Perez <fperez@colorado.edu>
5351
5353
5352 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5354 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5353 IPShell. Kept a copy with the old names to avoid breaking people's
5355 IPShell. Kept a copy with the old names to avoid breaking people's
5354 embedded code.
5356 embedded code.
5355
5357
5356 * IPython/ipython: simplified it to the bare minimum after
5358 * IPython/ipython: simplified it to the bare minimum after
5357 Holger's suggestions. Added info about how to use it in
5359 Holger's suggestions. Added info about how to use it in
5358 PYTHONSTARTUP.
5360 PYTHONSTARTUP.
5359
5361
5360 * IPython/Shell.py (IPythonShell): changed the options passing
5362 * IPython/Shell.py (IPythonShell): changed the options passing
5361 from a string with funky %s replacements to a straight list. Maybe
5363 from a string with funky %s replacements to a straight list. Maybe
5362 a bit more typing, but it follows sys.argv conventions, so there's
5364 a bit more typing, but it follows sys.argv conventions, so there's
5363 less special-casing to remember.
5365 less special-casing to remember.
5364
5366
5365 2002-06-12 Fernando Perez <fperez@colorado.edu>
5367 2002-06-12 Fernando Perez <fperez@colorado.edu>
5366
5368
5367 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5369 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5368 command. Thanks to a suggestion by Mike Heeter.
5370 command. Thanks to a suggestion by Mike Heeter.
5369 (Magic.magic_pfile): added behavior to look at filenames if given
5371 (Magic.magic_pfile): added behavior to look at filenames if given
5370 arg is not a defined object.
5372 arg is not a defined object.
5371 (Magic.magic_save): New @save function to save code snippets. Also
5373 (Magic.magic_save): New @save function to save code snippets. Also
5372 a Mike Heeter idea.
5374 a Mike Heeter idea.
5373
5375
5374 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5376 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5375 plot() and replot(). Much more convenient now, especially for
5377 plot() and replot(). Much more convenient now, especially for
5376 interactive use.
5378 interactive use.
5377
5379
5378 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5380 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5379 filenames.
5381 filenames.
5380
5382
5381 2002-06-02 Fernando Perez <fperez@colorado.edu>
5383 2002-06-02 Fernando Perez <fperez@colorado.edu>
5382
5384
5383 * IPython/Struct.py (Struct.__init__): modified to admit
5385 * IPython/Struct.py (Struct.__init__): modified to admit
5384 initialization via another struct.
5386 initialization via another struct.
5385
5387
5386 * IPython/genutils.py (SystemExec.__init__): New stateful
5388 * IPython/genutils.py (SystemExec.__init__): New stateful
5387 interface to xsys and bq. Useful for writing system scripts.
5389 interface to xsys and bq. Useful for writing system scripts.
5388
5390
5389 2002-05-30 Fernando Perez <fperez@colorado.edu>
5391 2002-05-30 Fernando Perez <fperez@colorado.edu>
5390
5392
5391 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5393 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5392 documents. This will make the user download smaller (it's getting
5394 documents. This will make the user download smaller (it's getting
5393 too big).
5395 too big).
5394
5396
5395 2002-05-29 Fernando Perez <fperez@colorado.edu>
5397 2002-05-29 Fernando Perez <fperez@colorado.edu>
5396
5398
5397 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5399 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5398 fix problems with shelve and pickle. Seems to work, but I don't
5400 fix problems with shelve and pickle. Seems to work, but I don't
5399 know if corner cases break it. Thanks to Mike Heeter
5401 know if corner cases break it. Thanks to Mike Heeter
5400 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5402 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5401
5403
5402 2002-05-24 Fernando Perez <fperez@colorado.edu>
5404 2002-05-24 Fernando Perez <fperez@colorado.edu>
5403
5405
5404 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5406 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5405 macros having broken.
5407 macros having broken.
5406
5408
5407 2002-05-21 Fernando Perez <fperez@colorado.edu>
5409 2002-05-21 Fernando Perez <fperez@colorado.edu>
5408
5410
5409 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5411 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5410 introduced logging bug: all history before logging started was
5412 introduced logging bug: all history before logging started was
5411 being written one character per line! This came from the redesign
5413 being written one character per line! This came from the redesign
5412 of the input history as a special list which slices to strings,
5414 of the input history as a special list which slices to strings,
5413 not to lists.
5415 not to lists.
5414
5416
5415 2002-05-20 Fernando Perez <fperez@colorado.edu>
5417 2002-05-20 Fernando Perez <fperez@colorado.edu>
5416
5418
5417 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5419 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5418 be an attribute of all classes in this module. The design of these
5420 be an attribute of all classes in this module. The design of these
5419 classes needs some serious overhauling.
5421 classes needs some serious overhauling.
5420
5422
5421 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5423 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5422 which was ignoring '_' in option names.
5424 which was ignoring '_' in option names.
5423
5425
5424 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5426 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5425 'Verbose_novars' to 'Context' and made it the new default. It's a
5427 'Verbose_novars' to 'Context' and made it the new default. It's a
5426 bit more readable and also safer than verbose.
5428 bit more readable and also safer than verbose.
5427
5429
5428 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5430 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5429 triple-quoted strings.
5431 triple-quoted strings.
5430
5432
5431 * IPython/OInspect.py (__all__): new module exposing the object
5433 * IPython/OInspect.py (__all__): new module exposing the object
5432 introspection facilities. Now the corresponding magics are dummy
5434 introspection facilities. Now the corresponding magics are dummy
5433 wrappers around this. Having this module will make it much easier
5435 wrappers around this. Having this module will make it much easier
5434 to put these functions into our modified pdb.
5436 to put these functions into our modified pdb.
5435 This new object inspector system uses the new colorizing module,
5437 This new object inspector system uses the new colorizing module,
5436 so source code and other things are nicely syntax highlighted.
5438 so source code and other things are nicely syntax highlighted.
5437
5439
5438 2002-05-18 Fernando Perez <fperez@colorado.edu>
5440 2002-05-18 Fernando Perez <fperez@colorado.edu>
5439
5441
5440 * IPython/ColorANSI.py: Split the coloring tools into a separate
5442 * IPython/ColorANSI.py: Split the coloring tools into a separate
5441 module so I can use them in other code easier (they were part of
5443 module so I can use them in other code easier (they were part of
5442 ultraTB).
5444 ultraTB).
5443
5445
5444 2002-05-17 Fernando Perez <fperez@colorado.edu>
5446 2002-05-17 Fernando Perez <fperez@colorado.edu>
5445
5447
5446 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5448 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5447 fixed it to set the global 'g' also to the called instance, as
5449 fixed it to set the global 'g' also to the called instance, as
5448 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5450 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5449 user's 'g' variables).
5451 user's 'g' variables).
5450
5452
5451 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5453 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5452 global variables (aliases to _ih,_oh) so that users which expect
5454 global variables (aliases to _ih,_oh) so that users which expect
5453 In[5] or Out[7] to work aren't unpleasantly surprised.
5455 In[5] or Out[7] to work aren't unpleasantly surprised.
5454 (InputList.__getslice__): new class to allow executing slices of
5456 (InputList.__getslice__): new class to allow executing slices of
5455 input history directly. Very simple class, complements the use of
5457 input history directly. Very simple class, complements the use of
5456 macros.
5458 macros.
5457
5459
5458 2002-05-16 Fernando Perez <fperez@colorado.edu>
5460 2002-05-16 Fernando Perez <fperez@colorado.edu>
5459
5461
5460 * setup.py (docdirbase): make doc directory be just doc/IPython
5462 * setup.py (docdirbase): make doc directory be just doc/IPython
5461 without version numbers, it will reduce clutter for users.
5463 without version numbers, it will reduce clutter for users.
5462
5464
5463 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5465 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5464 execfile call to prevent possible memory leak. See for details:
5466 execfile call to prevent possible memory leak. See for details:
5465 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5467 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5466
5468
5467 2002-05-15 Fernando Perez <fperez@colorado.edu>
5469 2002-05-15 Fernando Perez <fperez@colorado.edu>
5468
5470
5469 * IPython/Magic.py (Magic.magic_psource): made the object
5471 * IPython/Magic.py (Magic.magic_psource): made the object
5470 introspection names be more standard: pdoc, pdef, pfile and
5472 introspection names be more standard: pdoc, pdef, pfile and
5471 psource. They all print/page their output, and it makes
5473 psource. They all print/page their output, and it makes
5472 remembering them easier. Kept old names for compatibility as
5474 remembering them easier. Kept old names for compatibility as
5473 aliases.
5475 aliases.
5474
5476
5475 2002-05-14 Fernando Perez <fperez@colorado.edu>
5477 2002-05-14 Fernando Perez <fperez@colorado.edu>
5476
5478
5477 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5479 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5478 what the mouse problem was. The trick is to use gnuplot with temp
5480 what the mouse problem was. The trick is to use gnuplot with temp
5479 files and NOT with pipes (for data communication), because having
5481 files and NOT with pipes (for data communication), because having
5480 both pipes and the mouse on is bad news.
5482 both pipes and the mouse on is bad news.
5481
5483
5482 2002-05-13 Fernando Perez <fperez@colorado.edu>
5484 2002-05-13 Fernando Perez <fperez@colorado.edu>
5483
5485
5484 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5486 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5485 bug. Information would be reported about builtins even when
5487 bug. Information would be reported about builtins even when
5486 user-defined functions overrode them.
5488 user-defined functions overrode them.
5487
5489
5488 2002-05-11 Fernando Perez <fperez@colorado.edu>
5490 2002-05-11 Fernando Perez <fperez@colorado.edu>
5489
5491
5490 * IPython/__init__.py (__all__): removed FlexCompleter from
5492 * IPython/__init__.py (__all__): removed FlexCompleter from
5491 __all__ so that things don't fail in platforms without readline.
5493 __all__ so that things don't fail in platforms without readline.
5492
5494
5493 2002-05-10 Fernando Perez <fperez@colorado.edu>
5495 2002-05-10 Fernando Perez <fperez@colorado.edu>
5494
5496
5495 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5497 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5496 it requires Numeric, effectively making Numeric a dependency for
5498 it requires Numeric, effectively making Numeric a dependency for
5497 IPython.
5499 IPython.
5498
5500
5499 * Released 0.2.13
5501 * Released 0.2.13
5500
5502
5501 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5503 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5502 profiler interface. Now all the major options from the profiler
5504 profiler interface. Now all the major options from the profiler
5503 module are directly supported in IPython, both for single
5505 module are directly supported in IPython, both for single
5504 expressions (@prun) and for full programs (@run -p).
5506 expressions (@prun) and for full programs (@run -p).
5505
5507
5506 2002-05-09 Fernando Perez <fperez@colorado.edu>
5508 2002-05-09 Fernando Perez <fperez@colorado.edu>
5507
5509
5508 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5510 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5509 magic properly formatted for screen.
5511 magic properly formatted for screen.
5510
5512
5511 * setup.py (make_shortcut): Changed things to put pdf version in
5513 * setup.py (make_shortcut): Changed things to put pdf version in
5512 doc/ instead of doc/manual (had to change lyxport a bit).
5514 doc/ instead of doc/manual (had to change lyxport a bit).
5513
5515
5514 * IPython/Magic.py (Profile.string_stats): made profile runs go
5516 * IPython/Magic.py (Profile.string_stats): made profile runs go
5515 through pager (they are long and a pager allows searching, saving,
5517 through pager (they are long and a pager allows searching, saving,
5516 etc.)
5518 etc.)
5517
5519
5518 2002-05-08 Fernando Perez <fperez@colorado.edu>
5520 2002-05-08 Fernando Perez <fperez@colorado.edu>
5519
5521
5520 * Released 0.2.12
5522 * Released 0.2.12
5521
5523
5522 2002-05-06 Fernando Perez <fperez@colorado.edu>
5524 2002-05-06 Fernando Perez <fperez@colorado.edu>
5523
5525
5524 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5526 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5525 introduced); 'hist n1 n2' was broken.
5527 introduced); 'hist n1 n2' was broken.
5526 (Magic.magic_pdb): added optional on/off arguments to @pdb
5528 (Magic.magic_pdb): added optional on/off arguments to @pdb
5527 (Magic.magic_run): added option -i to @run, which executes code in
5529 (Magic.magic_run): added option -i to @run, which executes code in
5528 the IPython namespace instead of a clean one. Also added @irun as
5530 the IPython namespace instead of a clean one. Also added @irun as
5529 an alias to @run -i.
5531 an alias to @run -i.
5530
5532
5531 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5533 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5532 fixed (it didn't really do anything, the namespaces were wrong).
5534 fixed (it didn't really do anything, the namespaces were wrong).
5533
5535
5534 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5536 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5535
5537
5536 * IPython/__init__.py (__all__): Fixed package namespace, now
5538 * IPython/__init__.py (__all__): Fixed package namespace, now
5537 'import IPython' does give access to IPython.<all> as
5539 'import IPython' does give access to IPython.<all> as
5538 expected. Also renamed __release__ to Release.
5540 expected. Also renamed __release__ to Release.
5539
5541
5540 * IPython/Debugger.py (__license__): created new Pdb class which
5542 * IPython/Debugger.py (__license__): created new Pdb class which
5541 functions like a drop-in for the normal pdb.Pdb but does NOT
5543 functions like a drop-in for the normal pdb.Pdb but does NOT
5542 import readline by default. This way it doesn't muck up IPython's
5544 import readline by default. This way it doesn't muck up IPython's
5543 readline handling, and now tab-completion finally works in the
5545 readline handling, and now tab-completion finally works in the
5544 debugger -- sort of. It completes things globally visible, but the
5546 debugger -- sort of. It completes things globally visible, but the
5545 completer doesn't track the stack as pdb walks it. That's a bit
5547 completer doesn't track the stack as pdb walks it. That's a bit
5546 tricky, and I'll have to implement it later.
5548 tricky, and I'll have to implement it later.
5547
5549
5548 2002-05-05 Fernando Perez <fperez@colorado.edu>
5550 2002-05-05 Fernando Perez <fperez@colorado.edu>
5549
5551
5550 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5552 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5551 magic docstrings when printed via ? (explicit \'s were being
5553 magic docstrings when printed via ? (explicit \'s were being
5552 printed).
5554 printed).
5553
5555
5554 * IPython/ipmaker.py (make_IPython): fixed namespace
5556 * IPython/ipmaker.py (make_IPython): fixed namespace
5555 identification bug. Now variables loaded via logs or command-line
5557 identification bug. Now variables loaded via logs or command-line
5556 files are recognized in the interactive namespace by @who.
5558 files are recognized in the interactive namespace by @who.
5557
5559
5558 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5560 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5559 log replay system stemming from the string form of Structs.
5561 log replay system stemming from the string form of Structs.
5560
5562
5561 * IPython/Magic.py (Macro.__init__): improved macros to properly
5563 * IPython/Magic.py (Macro.__init__): improved macros to properly
5562 handle magic commands in them.
5564 handle magic commands in them.
5563 (Magic.magic_logstart): usernames are now expanded so 'logstart
5565 (Magic.magic_logstart): usernames are now expanded so 'logstart
5564 ~/mylog' now works.
5566 ~/mylog' now works.
5565
5567
5566 * IPython/iplib.py (complete): fixed bug where paths starting with
5568 * IPython/iplib.py (complete): fixed bug where paths starting with
5567 '/' would be completed as magic names.
5569 '/' would be completed as magic names.
5568
5570
5569 2002-05-04 Fernando Perez <fperez@colorado.edu>
5571 2002-05-04 Fernando Perez <fperez@colorado.edu>
5570
5572
5571 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5573 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5572 allow running full programs under the profiler's control.
5574 allow running full programs under the profiler's control.
5573
5575
5574 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5576 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5575 mode to report exceptions verbosely but without formatting
5577 mode to report exceptions verbosely but without formatting
5576 variables. This addresses the issue of ipython 'freezing' (it's
5578 variables. This addresses the issue of ipython 'freezing' (it's
5577 not frozen, but caught in an expensive formatting loop) when huge
5579 not frozen, but caught in an expensive formatting loop) when huge
5578 variables are in the context of an exception.
5580 variables are in the context of an exception.
5579 (VerboseTB.text): Added '--->' markers at line where exception was
5581 (VerboseTB.text): Added '--->' markers at line where exception was
5580 triggered. Much clearer to read, especially in NoColor modes.
5582 triggered. Much clearer to read, especially in NoColor modes.
5581
5583
5582 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5584 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5583 implemented in reverse when changing to the new parse_options().
5585 implemented in reverse when changing to the new parse_options().
5584
5586
5585 2002-05-03 Fernando Perez <fperez@colorado.edu>
5587 2002-05-03 Fernando Perez <fperez@colorado.edu>
5586
5588
5587 * IPython/Magic.py (Magic.parse_options): new function so that
5589 * IPython/Magic.py (Magic.parse_options): new function so that
5588 magics can parse options easier.
5590 magics can parse options easier.
5589 (Magic.magic_prun): new function similar to profile.run(),
5591 (Magic.magic_prun): new function similar to profile.run(),
5590 suggested by Chris Hart.
5592 suggested by Chris Hart.
5591 (Magic.magic_cd): fixed behavior so that it only changes if
5593 (Magic.magic_cd): fixed behavior so that it only changes if
5592 directory actually is in history.
5594 directory actually is in history.
5593
5595
5594 * IPython/usage.py (__doc__): added information about potential
5596 * IPython/usage.py (__doc__): added information about potential
5595 slowness of Verbose exception mode when there are huge data
5597 slowness of Verbose exception mode when there are huge data
5596 structures to be formatted (thanks to Archie Paulson).
5598 structures to be formatted (thanks to Archie Paulson).
5597
5599
5598 * IPython/ipmaker.py (make_IPython): Changed default logging
5600 * IPython/ipmaker.py (make_IPython): Changed default logging
5599 (when simply called with -log) to use curr_dir/ipython.log in
5601 (when simply called with -log) to use curr_dir/ipython.log in
5600 rotate mode. Fixed crash which was occuring with -log before
5602 rotate mode. Fixed crash which was occuring with -log before
5601 (thanks to Jim Boyle).
5603 (thanks to Jim Boyle).
5602
5604
5603 2002-05-01 Fernando Perez <fperez@colorado.edu>
5605 2002-05-01 Fernando Perez <fperez@colorado.edu>
5604
5606
5605 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5607 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5606 was nasty -- though somewhat of a corner case).
5608 was nasty -- though somewhat of a corner case).
5607
5609
5608 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5610 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5609 text (was a bug).
5611 text (was a bug).
5610
5612
5611 2002-04-30 Fernando Perez <fperez@colorado.edu>
5613 2002-04-30 Fernando Perez <fperez@colorado.edu>
5612
5614
5613 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5615 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5614 a print after ^D or ^C from the user so that the In[] prompt
5616 a print after ^D or ^C from the user so that the In[] prompt
5615 doesn't over-run the gnuplot one.
5617 doesn't over-run the gnuplot one.
5616
5618
5617 2002-04-29 Fernando Perez <fperez@colorado.edu>
5619 2002-04-29 Fernando Perez <fperez@colorado.edu>
5618
5620
5619 * Released 0.2.10
5621 * Released 0.2.10
5620
5622
5621 * IPython/__release__.py (version): get date dynamically.
5623 * IPython/__release__.py (version): get date dynamically.
5622
5624
5623 * Misc. documentation updates thanks to Arnd's comments. Also ran
5625 * Misc. documentation updates thanks to Arnd's comments. Also ran
5624 a full spellcheck on the manual (hadn't been done in a while).
5626 a full spellcheck on the manual (hadn't been done in a while).
5625
5627
5626 2002-04-27 Fernando Perez <fperez@colorado.edu>
5628 2002-04-27 Fernando Perez <fperez@colorado.edu>
5627
5629
5628 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5630 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5629 starting a log in mid-session would reset the input history list.
5631 starting a log in mid-session would reset the input history list.
5630
5632
5631 2002-04-26 Fernando Perez <fperez@colorado.edu>
5633 2002-04-26 Fernando Perez <fperez@colorado.edu>
5632
5634
5633 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5635 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5634 all files were being included in an update. Now anything in
5636 all files were being included in an update. Now anything in
5635 UserConfig that matches [A-Za-z]*.py will go (this excludes
5637 UserConfig that matches [A-Za-z]*.py will go (this excludes
5636 __init__.py)
5638 __init__.py)
5637
5639
5638 2002-04-25 Fernando Perez <fperez@colorado.edu>
5640 2002-04-25 Fernando Perez <fperez@colorado.edu>
5639
5641
5640 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5642 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5641 to __builtins__ so that any form of embedded or imported code can
5643 to __builtins__ so that any form of embedded or imported code can
5642 test for being inside IPython.
5644 test for being inside IPython.
5643
5645
5644 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5646 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5645 changed to GnuplotMagic because it's now an importable module,
5647 changed to GnuplotMagic because it's now an importable module,
5646 this makes the name follow that of the standard Gnuplot module.
5648 this makes the name follow that of the standard Gnuplot module.
5647 GnuplotMagic can now be loaded at any time in mid-session.
5649 GnuplotMagic can now be loaded at any time in mid-session.
5648
5650
5649 2002-04-24 Fernando Perez <fperez@colorado.edu>
5651 2002-04-24 Fernando Perez <fperez@colorado.edu>
5650
5652
5651 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5653 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5652 the globals (IPython has its own namespace) and the
5654 the globals (IPython has its own namespace) and the
5653 PhysicalQuantity stuff is much better anyway.
5655 PhysicalQuantity stuff is much better anyway.
5654
5656
5655 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5657 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5656 embedding example to standard user directory for
5658 embedding example to standard user directory for
5657 distribution. Also put it in the manual.
5659 distribution. Also put it in the manual.
5658
5660
5659 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5661 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5660 instance as first argument (so it doesn't rely on some obscure
5662 instance as first argument (so it doesn't rely on some obscure
5661 hidden global).
5663 hidden global).
5662
5664
5663 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5665 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5664 delimiters. While it prevents ().TAB from working, it allows
5666 delimiters. While it prevents ().TAB from working, it allows
5665 completions in open (... expressions. This is by far a more common
5667 completions in open (... expressions. This is by far a more common
5666 case.
5668 case.
5667
5669
5668 2002-04-23 Fernando Perez <fperez@colorado.edu>
5670 2002-04-23 Fernando Perez <fperez@colorado.edu>
5669
5671
5670 * IPython/Extensions/InterpreterPasteInput.py: new
5672 * IPython/Extensions/InterpreterPasteInput.py: new
5671 syntax-processing module for pasting lines with >>> or ... at the
5673 syntax-processing module for pasting lines with >>> or ... at the
5672 start.
5674 start.
5673
5675
5674 * IPython/Extensions/PhysicalQ_Interactive.py
5676 * IPython/Extensions/PhysicalQ_Interactive.py
5675 (PhysicalQuantityInteractive.__int__): fixed to work with either
5677 (PhysicalQuantityInteractive.__int__): fixed to work with either
5676 Numeric or math.
5678 Numeric or math.
5677
5679
5678 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5680 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5679 provided profiles. Now we have:
5681 provided profiles. Now we have:
5680 -math -> math module as * and cmath with its own namespace.
5682 -math -> math module as * and cmath with its own namespace.
5681 -numeric -> Numeric as *, plus gnuplot & grace
5683 -numeric -> Numeric as *, plus gnuplot & grace
5682 -physics -> same as before
5684 -physics -> same as before
5683
5685
5684 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5686 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5685 user-defined magics wouldn't be found by @magic if they were
5687 user-defined magics wouldn't be found by @magic if they were
5686 defined as class methods. Also cleaned up the namespace search
5688 defined as class methods. Also cleaned up the namespace search
5687 logic and the string building (to use %s instead of many repeated
5689 logic and the string building (to use %s instead of many repeated
5688 string adds).
5690 string adds).
5689
5691
5690 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5692 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5691 of user-defined magics to operate with class methods (cleaner, in
5693 of user-defined magics to operate with class methods (cleaner, in
5692 line with the gnuplot code).
5694 line with the gnuplot code).
5693
5695
5694 2002-04-22 Fernando Perez <fperez@colorado.edu>
5696 2002-04-22 Fernando Perez <fperez@colorado.edu>
5695
5697
5696 * setup.py: updated dependency list so that manual is updated when
5698 * setup.py: updated dependency list so that manual is updated when
5697 all included files change.
5699 all included files change.
5698
5700
5699 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5701 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5700 the delimiter removal option (the fix is ugly right now).
5702 the delimiter removal option (the fix is ugly right now).
5701
5703
5702 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5704 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5703 all of the math profile (quicker loading, no conflict between
5705 all of the math profile (quicker loading, no conflict between
5704 g-9.8 and g-gnuplot).
5706 g-9.8 and g-gnuplot).
5705
5707
5706 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5708 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5707 name of post-mortem files to IPython_crash_report.txt.
5709 name of post-mortem files to IPython_crash_report.txt.
5708
5710
5709 * Cleanup/update of the docs. Added all the new readline info and
5711 * Cleanup/update of the docs. Added all the new readline info and
5710 formatted all lists as 'real lists'.
5712 formatted all lists as 'real lists'.
5711
5713
5712 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5714 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5713 tab-completion options, since the full readline parse_and_bind is
5715 tab-completion options, since the full readline parse_and_bind is
5714 now accessible.
5716 now accessible.
5715
5717
5716 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5718 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5717 handling of readline options. Now users can specify any string to
5719 handling of readline options. Now users can specify any string to
5718 be passed to parse_and_bind(), as well as the delimiters to be
5720 be passed to parse_and_bind(), as well as the delimiters to be
5719 removed.
5721 removed.
5720 (InteractiveShell.__init__): Added __name__ to the global
5722 (InteractiveShell.__init__): Added __name__ to the global
5721 namespace so that things like Itpl which rely on its existence
5723 namespace so that things like Itpl which rely on its existence
5722 don't crash.
5724 don't crash.
5723 (InteractiveShell._prefilter): Defined the default with a _ so
5725 (InteractiveShell._prefilter): Defined the default with a _ so
5724 that prefilter() is easier to override, while the default one
5726 that prefilter() is easier to override, while the default one
5725 remains available.
5727 remains available.
5726
5728
5727 2002-04-18 Fernando Perez <fperez@colorado.edu>
5729 2002-04-18 Fernando Perez <fperez@colorado.edu>
5728
5730
5729 * Added information about pdb in the docs.
5731 * Added information about pdb in the docs.
5730
5732
5731 2002-04-17 Fernando Perez <fperez@colorado.edu>
5733 2002-04-17 Fernando Perez <fperez@colorado.edu>
5732
5734
5733 * IPython/ipmaker.py (make_IPython): added rc_override option to
5735 * IPython/ipmaker.py (make_IPython): added rc_override option to
5734 allow passing config options at creation time which may override
5736 allow passing config options at creation time which may override
5735 anything set in the config files or command line. This is
5737 anything set in the config files or command line. This is
5736 particularly useful for configuring embedded instances.
5738 particularly useful for configuring embedded instances.
5737
5739
5738 2002-04-15 Fernando Perez <fperez@colorado.edu>
5740 2002-04-15 Fernando Perez <fperez@colorado.edu>
5739
5741
5740 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5742 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5741 crash embedded instances because of the input cache falling out of
5743 crash embedded instances because of the input cache falling out of
5742 sync with the output counter.
5744 sync with the output counter.
5743
5745
5744 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5746 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5745 mode which calls pdb after an uncaught exception in IPython itself.
5747 mode which calls pdb after an uncaught exception in IPython itself.
5746
5748
5747 2002-04-14 Fernando Perez <fperez@colorado.edu>
5749 2002-04-14 Fernando Perez <fperez@colorado.edu>
5748
5750
5749 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5751 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5750 readline, fix it back after each call.
5752 readline, fix it back after each call.
5751
5753
5752 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5754 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5753 method to force all access via __call__(), which guarantees that
5755 method to force all access via __call__(), which guarantees that
5754 traceback references are properly deleted.
5756 traceback references are properly deleted.
5755
5757
5756 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5758 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5757 improve printing when pprint is in use.
5759 improve printing when pprint is in use.
5758
5760
5759 2002-04-13 Fernando Perez <fperez@colorado.edu>
5761 2002-04-13 Fernando Perez <fperez@colorado.edu>
5760
5762
5761 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5763 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5762 exceptions aren't caught anymore. If the user triggers one, he
5764 exceptions aren't caught anymore. If the user triggers one, he
5763 should know why he's doing it and it should go all the way up,
5765 should know why he's doing it and it should go all the way up,
5764 just like any other exception. So now @abort will fully kill the
5766 just like any other exception. So now @abort will fully kill the
5765 embedded interpreter and the embedding code (unless that happens
5767 embedded interpreter and the embedding code (unless that happens
5766 to catch SystemExit).
5768 to catch SystemExit).
5767
5769
5768 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5770 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5769 and a debugger() method to invoke the interactive pdb debugger
5771 and a debugger() method to invoke the interactive pdb debugger
5770 after printing exception information. Also added the corresponding
5772 after printing exception information. Also added the corresponding
5771 -pdb option and @pdb magic to control this feature, and updated
5773 -pdb option and @pdb magic to control this feature, and updated
5772 the docs. After a suggestion from Christopher Hart
5774 the docs. After a suggestion from Christopher Hart
5773 (hart-AT-caltech.edu).
5775 (hart-AT-caltech.edu).
5774
5776
5775 2002-04-12 Fernando Perez <fperez@colorado.edu>
5777 2002-04-12 Fernando Perez <fperez@colorado.edu>
5776
5778
5777 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5779 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5778 the exception handlers defined by the user (not the CrashHandler)
5780 the exception handlers defined by the user (not the CrashHandler)
5779 so that user exceptions don't trigger an ipython bug report.
5781 so that user exceptions don't trigger an ipython bug report.
5780
5782
5781 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5783 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5782 configurable (it should have always been so).
5784 configurable (it should have always been so).
5783
5785
5784 2002-03-26 Fernando Perez <fperez@colorado.edu>
5786 2002-03-26 Fernando Perez <fperez@colorado.edu>
5785
5787
5786 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5788 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5787 and there to fix embedding namespace issues. This should all be
5789 and there to fix embedding namespace issues. This should all be
5788 done in a more elegant way.
5790 done in a more elegant way.
5789
5791
5790 2002-03-25 Fernando Perez <fperez@colorado.edu>
5792 2002-03-25 Fernando Perez <fperez@colorado.edu>
5791
5793
5792 * IPython/genutils.py (get_home_dir): Try to make it work under
5794 * IPython/genutils.py (get_home_dir): Try to make it work under
5793 win9x also.
5795 win9x also.
5794
5796
5795 2002-03-20 Fernando Perez <fperez@colorado.edu>
5797 2002-03-20 Fernando Perez <fperez@colorado.edu>
5796
5798
5797 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5799 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5798 sys.displayhook untouched upon __init__.
5800 sys.displayhook untouched upon __init__.
5799
5801
5800 2002-03-19 Fernando Perez <fperez@colorado.edu>
5802 2002-03-19 Fernando Perez <fperez@colorado.edu>
5801
5803
5802 * Released 0.2.9 (for embedding bug, basically).
5804 * Released 0.2.9 (for embedding bug, basically).
5803
5805
5804 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5806 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5805 exceptions so that enclosing shell's state can be restored.
5807 exceptions so that enclosing shell's state can be restored.
5806
5808
5807 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5809 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5808 naming conventions in the .ipython/ dir.
5810 naming conventions in the .ipython/ dir.
5809
5811
5810 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5812 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5811 from delimiters list so filenames with - in them get expanded.
5813 from delimiters list so filenames with - in them get expanded.
5812
5814
5813 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5815 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5814 sys.displayhook not being properly restored after an embedded call.
5816 sys.displayhook not being properly restored after an embedded call.
5815
5817
5816 2002-03-18 Fernando Perez <fperez@colorado.edu>
5818 2002-03-18 Fernando Perez <fperez@colorado.edu>
5817
5819
5818 * Released 0.2.8
5820 * Released 0.2.8
5819
5821
5820 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5822 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5821 some files weren't being included in a -upgrade.
5823 some files weren't being included in a -upgrade.
5822 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5824 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5823 on' so that the first tab completes.
5825 on' so that the first tab completes.
5824 (InteractiveShell.handle_magic): fixed bug with spaces around
5826 (InteractiveShell.handle_magic): fixed bug with spaces around
5825 quotes breaking many magic commands.
5827 quotes breaking many magic commands.
5826
5828
5827 * setup.py: added note about ignoring the syntax error messages at
5829 * setup.py: added note about ignoring the syntax error messages at
5828 installation.
5830 installation.
5829
5831
5830 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5832 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5831 streamlining the gnuplot interface, now there's only one magic @gp.
5833 streamlining the gnuplot interface, now there's only one magic @gp.
5832
5834
5833 2002-03-17 Fernando Perez <fperez@colorado.edu>
5835 2002-03-17 Fernando Perez <fperez@colorado.edu>
5834
5836
5835 * IPython/UserConfig/magic_gnuplot.py: new name for the
5837 * IPython/UserConfig/magic_gnuplot.py: new name for the
5836 example-magic_pm.py file. Much enhanced system, now with a shell
5838 example-magic_pm.py file. Much enhanced system, now with a shell
5837 for communicating directly with gnuplot, one command at a time.
5839 for communicating directly with gnuplot, one command at a time.
5838
5840
5839 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5841 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5840 setting __name__=='__main__'.
5842 setting __name__=='__main__'.
5841
5843
5842 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5844 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5843 mini-shell for accessing gnuplot from inside ipython. Should
5845 mini-shell for accessing gnuplot from inside ipython. Should
5844 extend it later for grace access too. Inspired by Arnd's
5846 extend it later for grace access too. Inspired by Arnd's
5845 suggestion.
5847 suggestion.
5846
5848
5847 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5849 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5848 calling magic functions with () in their arguments. Thanks to Arnd
5850 calling magic functions with () in their arguments. Thanks to Arnd
5849 Baecker for pointing this to me.
5851 Baecker for pointing this to me.
5850
5852
5851 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5853 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5852 infinitely for integer or complex arrays (only worked with floats).
5854 infinitely for integer or complex arrays (only worked with floats).
5853
5855
5854 2002-03-16 Fernando Perez <fperez@colorado.edu>
5856 2002-03-16 Fernando Perez <fperez@colorado.edu>
5855
5857
5856 * setup.py: Merged setup and setup_windows into a single script
5858 * setup.py: Merged setup and setup_windows into a single script
5857 which properly handles things for windows users.
5859 which properly handles things for windows users.
5858
5860
5859 2002-03-15 Fernando Perez <fperez@colorado.edu>
5861 2002-03-15 Fernando Perez <fperez@colorado.edu>
5860
5862
5861 * Big change to the manual: now the magics are all automatically
5863 * Big change to the manual: now the magics are all automatically
5862 documented. This information is generated from their docstrings
5864 documented. This information is generated from their docstrings
5863 and put in a latex file included by the manual lyx file. This way
5865 and put in a latex file included by the manual lyx file. This way
5864 we get always up to date information for the magics. The manual
5866 we get always up to date information for the magics. The manual
5865 now also has proper version information, also auto-synced.
5867 now also has proper version information, also auto-synced.
5866
5868
5867 For this to work, an undocumented --magic_docstrings option was added.
5869 For this to work, an undocumented --magic_docstrings option was added.
5868
5870
5869 2002-03-13 Fernando Perez <fperez@colorado.edu>
5871 2002-03-13 Fernando Perez <fperez@colorado.edu>
5870
5872
5871 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5873 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5872 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5874 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5873
5875
5874 2002-03-12 Fernando Perez <fperez@colorado.edu>
5876 2002-03-12 Fernando Perez <fperez@colorado.edu>
5875
5877
5876 * IPython/ultraTB.py (TermColors): changed color escapes again to
5878 * IPython/ultraTB.py (TermColors): changed color escapes again to
5877 fix the (old, reintroduced) line-wrapping bug. Basically, if
5879 fix the (old, reintroduced) line-wrapping bug. Basically, if
5878 \001..\002 aren't given in the color escapes, lines get wrapped
5880 \001..\002 aren't given in the color escapes, lines get wrapped
5879 weirdly. But giving those screws up old xterms and emacs terms. So
5881 weirdly. But giving those screws up old xterms and emacs terms. So
5880 I added some logic for emacs terms to be ok, but I can't identify old
5882 I added some logic for emacs terms to be ok, but I can't identify old
5881 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5883 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5882
5884
5883 2002-03-10 Fernando Perez <fperez@colorado.edu>
5885 2002-03-10 Fernando Perez <fperez@colorado.edu>
5884
5886
5885 * IPython/usage.py (__doc__): Various documentation cleanups and
5887 * IPython/usage.py (__doc__): Various documentation cleanups and
5886 updates, both in usage docstrings and in the manual.
5888 updates, both in usage docstrings and in the manual.
5887
5889
5888 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5890 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5889 handling of caching. Set minimum acceptabe value for having a
5891 handling of caching. Set minimum acceptabe value for having a
5890 cache at 20 values.
5892 cache at 20 values.
5891
5893
5892 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5894 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5893 install_first_time function to a method, renamed it and added an
5895 install_first_time function to a method, renamed it and added an
5894 'upgrade' mode. Now people can update their config directory with
5896 'upgrade' mode. Now people can update their config directory with
5895 a simple command line switch (-upgrade, also new).
5897 a simple command line switch (-upgrade, also new).
5896
5898
5897 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5899 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5898 @file (convenient for automagic users under Python >= 2.2).
5900 @file (convenient for automagic users under Python >= 2.2).
5899 Removed @files (it seemed more like a plural than an abbrev. of
5901 Removed @files (it seemed more like a plural than an abbrev. of
5900 'file show').
5902 'file show').
5901
5903
5902 * IPython/iplib.py (install_first_time): Fixed crash if there were
5904 * IPython/iplib.py (install_first_time): Fixed crash if there were
5903 backup files ('~') in .ipython/ install directory.
5905 backup files ('~') in .ipython/ install directory.
5904
5906
5905 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5907 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5906 system. Things look fine, but these changes are fairly
5908 system. Things look fine, but these changes are fairly
5907 intrusive. Test them for a few days.
5909 intrusive. Test them for a few days.
5908
5910
5909 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5911 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5910 the prompts system. Now all in/out prompt strings are user
5912 the prompts system. Now all in/out prompt strings are user
5911 controllable. This is particularly useful for embedding, as one
5913 controllable. This is particularly useful for embedding, as one
5912 can tag embedded instances with particular prompts.
5914 can tag embedded instances with particular prompts.
5913
5915
5914 Also removed global use of sys.ps1/2, which now allows nested
5916 Also removed global use of sys.ps1/2, which now allows nested
5915 embeddings without any problems. Added command-line options for
5917 embeddings without any problems. Added command-line options for
5916 the prompt strings.
5918 the prompt strings.
5917
5919
5918 2002-03-08 Fernando Perez <fperez@colorado.edu>
5920 2002-03-08 Fernando Perez <fperez@colorado.edu>
5919
5921
5920 * IPython/UserConfig/example-embed-short.py (ipshell): added
5922 * IPython/UserConfig/example-embed-short.py (ipshell): added
5921 example file with the bare minimum code for embedding.
5923 example file with the bare minimum code for embedding.
5922
5924
5923 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5925 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5924 functionality for the embeddable shell to be activated/deactivated
5926 functionality for the embeddable shell to be activated/deactivated
5925 either globally or at each call.
5927 either globally or at each call.
5926
5928
5927 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5929 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5928 rewriting the prompt with '--->' for auto-inputs with proper
5930 rewriting the prompt with '--->' for auto-inputs with proper
5929 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5931 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5930 this is handled by the prompts class itself, as it should.
5932 this is handled by the prompts class itself, as it should.
5931
5933
5932 2002-03-05 Fernando Perez <fperez@colorado.edu>
5934 2002-03-05 Fernando Perez <fperez@colorado.edu>
5933
5935
5934 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5936 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5935 @logstart to avoid name clashes with the math log function.
5937 @logstart to avoid name clashes with the math log function.
5936
5938
5937 * Big updates to X/Emacs section of the manual.
5939 * Big updates to X/Emacs section of the manual.
5938
5940
5939 * Removed ipython_emacs. Milan explained to me how to pass
5941 * Removed ipython_emacs. Milan explained to me how to pass
5940 arguments to ipython through Emacs. Some day I'm going to end up
5942 arguments to ipython through Emacs. Some day I'm going to end up
5941 learning some lisp...
5943 learning some lisp...
5942
5944
5943 2002-03-04 Fernando Perez <fperez@colorado.edu>
5945 2002-03-04 Fernando Perez <fperez@colorado.edu>
5944
5946
5945 * IPython/ipython_emacs: Created script to be used as the
5947 * IPython/ipython_emacs: Created script to be used as the
5946 py-python-command Emacs variable so we can pass IPython
5948 py-python-command Emacs variable so we can pass IPython
5947 parameters. I can't figure out how to tell Emacs directly to pass
5949 parameters. I can't figure out how to tell Emacs directly to pass
5948 parameters to IPython, so a dummy shell script will do it.
5950 parameters to IPython, so a dummy shell script will do it.
5949
5951
5950 Other enhancements made for things to work better under Emacs'
5952 Other enhancements made for things to work better under Emacs'
5951 various types of terminals. Many thanks to Milan Zamazal
5953 various types of terminals. Many thanks to Milan Zamazal
5952 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5954 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5953
5955
5954 2002-03-01 Fernando Perez <fperez@colorado.edu>
5956 2002-03-01 Fernando Perez <fperez@colorado.edu>
5955
5957
5956 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5958 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5957 that loading of readline is now optional. This gives better
5959 that loading of readline is now optional. This gives better
5958 control to emacs users.
5960 control to emacs users.
5959
5961
5960 * IPython/ultraTB.py (__date__): Modified color escape sequences
5962 * IPython/ultraTB.py (__date__): Modified color escape sequences
5961 and now things work fine under xterm and in Emacs' term buffers
5963 and now things work fine under xterm and in Emacs' term buffers
5962 (though not shell ones). Well, in emacs you get colors, but all
5964 (though not shell ones). Well, in emacs you get colors, but all
5963 seem to be 'light' colors (no difference between dark and light
5965 seem to be 'light' colors (no difference between dark and light
5964 ones). But the garbage chars are gone, and also in xterms. It
5966 ones). But the garbage chars are gone, and also in xterms. It
5965 seems that now I'm using 'cleaner' ansi sequences.
5967 seems that now I'm using 'cleaner' ansi sequences.
5966
5968
5967 2002-02-21 Fernando Perez <fperez@colorado.edu>
5969 2002-02-21 Fernando Perez <fperez@colorado.edu>
5968
5970
5969 * Released 0.2.7 (mainly to publish the scoping fix).
5971 * Released 0.2.7 (mainly to publish the scoping fix).
5970
5972
5971 * IPython/Logger.py (Logger.logstate): added. A corresponding
5973 * IPython/Logger.py (Logger.logstate): added. A corresponding
5972 @logstate magic was created.
5974 @logstate magic was created.
5973
5975
5974 * IPython/Magic.py: fixed nested scoping problem under Python
5976 * IPython/Magic.py: fixed nested scoping problem under Python
5975 2.1.x (automagic wasn't working).
5977 2.1.x (automagic wasn't working).
5976
5978
5977 2002-02-20 Fernando Perez <fperez@colorado.edu>
5979 2002-02-20 Fernando Perez <fperez@colorado.edu>
5978
5980
5979 * Released 0.2.6.
5981 * Released 0.2.6.
5980
5982
5981 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5983 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5982 option so that logs can come out without any headers at all.
5984 option so that logs can come out without any headers at all.
5983
5985
5984 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5986 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5985 SciPy.
5987 SciPy.
5986
5988
5987 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5989 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5988 that embedded IPython calls don't require vars() to be explicitly
5990 that embedded IPython calls don't require vars() to be explicitly
5989 passed. Now they are extracted from the caller's frame (code
5991 passed. Now they are extracted from the caller's frame (code
5990 snatched from Eric Jones' weave). Added better documentation to
5992 snatched from Eric Jones' weave). Added better documentation to
5991 the section on embedding and the example file.
5993 the section on embedding and the example file.
5992
5994
5993 * IPython/genutils.py (page): Changed so that under emacs, it just
5995 * IPython/genutils.py (page): Changed so that under emacs, it just
5994 prints the string. You can then page up and down in the emacs
5996 prints the string. You can then page up and down in the emacs
5995 buffer itself. This is how the builtin help() works.
5997 buffer itself. This is how the builtin help() works.
5996
5998
5997 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5999 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5998 macro scoping: macros need to be executed in the user's namespace
6000 macro scoping: macros need to be executed in the user's namespace
5999 to work as if they had been typed by the user.
6001 to work as if they had been typed by the user.
6000
6002
6001 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6003 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6002 execute automatically (no need to type 'exec...'). They then
6004 execute automatically (no need to type 'exec...'). They then
6003 behave like 'true macros'. The printing system was also modified
6005 behave like 'true macros'. The printing system was also modified
6004 for this to work.
6006 for this to work.
6005
6007
6006 2002-02-19 Fernando Perez <fperez@colorado.edu>
6008 2002-02-19 Fernando Perez <fperez@colorado.edu>
6007
6009
6008 * IPython/genutils.py (page_file): new function for paging files
6010 * IPython/genutils.py (page_file): new function for paging files
6009 in an OS-independent way. Also necessary for file viewing to work
6011 in an OS-independent way. Also necessary for file viewing to work
6010 well inside Emacs buffers.
6012 well inside Emacs buffers.
6011 (page): Added checks for being in an emacs buffer.
6013 (page): Added checks for being in an emacs buffer.
6012 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6014 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6013 same bug in iplib.
6015 same bug in iplib.
6014
6016
6015 2002-02-18 Fernando Perez <fperez@colorado.edu>
6017 2002-02-18 Fernando Perez <fperez@colorado.edu>
6016
6018
6017 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6019 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6018 of readline so that IPython can work inside an Emacs buffer.
6020 of readline so that IPython can work inside an Emacs buffer.
6019
6021
6020 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6022 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6021 method signatures (they weren't really bugs, but it looks cleaner
6023 method signatures (they weren't really bugs, but it looks cleaner
6022 and keeps PyChecker happy).
6024 and keeps PyChecker happy).
6023
6025
6024 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6026 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6025 for implementing various user-defined hooks. Currently only
6027 for implementing various user-defined hooks. Currently only
6026 display is done.
6028 display is done.
6027
6029
6028 * IPython/Prompts.py (CachedOutput._display): changed display
6030 * IPython/Prompts.py (CachedOutput._display): changed display
6029 functions so that they can be dynamically changed by users easily.
6031 functions so that they can be dynamically changed by users easily.
6030
6032
6031 * IPython/Extensions/numeric_formats.py (num_display): added an
6033 * IPython/Extensions/numeric_formats.py (num_display): added an
6032 extension for printing NumPy arrays in flexible manners. It
6034 extension for printing NumPy arrays in flexible manners. It
6033 doesn't do anything yet, but all the structure is in
6035 doesn't do anything yet, but all the structure is in
6034 place. Ultimately the plan is to implement output format control
6036 place. Ultimately the plan is to implement output format control
6035 like in Octave.
6037 like in Octave.
6036
6038
6037 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6039 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6038 methods are found at run-time by all the automatic machinery.
6040 methods are found at run-time by all the automatic machinery.
6039
6041
6040 2002-02-17 Fernando Perez <fperez@colorado.edu>
6042 2002-02-17 Fernando Perez <fperez@colorado.edu>
6041
6043
6042 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6044 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6043 whole file a little.
6045 whole file a little.
6044
6046
6045 * ToDo: closed this document. Now there's a new_design.lyx
6047 * ToDo: closed this document. Now there's a new_design.lyx
6046 document for all new ideas. Added making a pdf of it for the
6048 document for all new ideas. Added making a pdf of it for the
6047 end-user distro.
6049 end-user distro.
6048
6050
6049 * IPython/Logger.py (Logger.switch_log): Created this to replace
6051 * IPython/Logger.py (Logger.switch_log): Created this to replace
6050 logon() and logoff(). It also fixes a nasty crash reported by
6052 logon() and logoff(). It also fixes a nasty crash reported by
6051 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6053 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6052
6054
6053 * IPython/iplib.py (complete): got auto-completion to work with
6055 * IPython/iplib.py (complete): got auto-completion to work with
6054 automagic (I had wanted this for a long time).
6056 automagic (I had wanted this for a long time).
6055
6057
6056 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6058 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6057 to @file, since file() is now a builtin and clashes with automagic
6059 to @file, since file() is now a builtin and clashes with automagic
6058 for @file.
6060 for @file.
6059
6061
6060 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6062 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6061 of this was previously in iplib, which had grown to more than 2000
6063 of this was previously in iplib, which had grown to more than 2000
6062 lines, way too long. No new functionality, but it makes managing
6064 lines, way too long. No new functionality, but it makes managing
6063 the code a bit easier.
6065 the code a bit easier.
6064
6066
6065 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6067 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6066 information to crash reports.
6068 information to crash reports.
6067
6069
6068 2002-02-12 Fernando Perez <fperez@colorado.edu>
6070 2002-02-12 Fernando Perez <fperez@colorado.edu>
6069
6071
6070 * Released 0.2.5.
6072 * Released 0.2.5.
6071
6073
6072 2002-02-11 Fernando Perez <fperez@colorado.edu>
6074 2002-02-11 Fernando Perez <fperez@colorado.edu>
6073
6075
6074 * Wrote a relatively complete Windows installer. It puts
6076 * Wrote a relatively complete Windows installer. It puts
6075 everything in place, creates Start Menu entries and fixes the
6077 everything in place, creates Start Menu entries and fixes the
6076 color issues. Nothing fancy, but it works.
6078 color issues. Nothing fancy, but it works.
6077
6079
6078 2002-02-10 Fernando Perez <fperez@colorado.edu>
6080 2002-02-10 Fernando Perez <fperez@colorado.edu>
6079
6081
6080 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6082 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6081 os.path.expanduser() call so that we can type @run ~/myfile.py and
6083 os.path.expanduser() call so that we can type @run ~/myfile.py and
6082 have thigs work as expected.
6084 have thigs work as expected.
6083
6085
6084 * IPython/genutils.py (page): fixed exception handling so things
6086 * IPython/genutils.py (page): fixed exception handling so things
6085 work both in Unix and Windows correctly. Quitting a pager triggers
6087 work both in Unix and Windows correctly. Quitting a pager triggers
6086 an IOError/broken pipe in Unix, and in windows not finding a pager
6088 an IOError/broken pipe in Unix, and in windows not finding a pager
6087 is also an IOError, so I had to actually look at the return value
6089 is also an IOError, so I had to actually look at the return value
6088 of the exception, not just the exception itself. Should be ok now.
6090 of the exception, not just the exception itself. Should be ok now.
6089
6091
6090 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6092 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6091 modified to allow case-insensitive color scheme changes.
6093 modified to allow case-insensitive color scheme changes.
6092
6094
6093 2002-02-09 Fernando Perez <fperez@colorado.edu>
6095 2002-02-09 Fernando Perez <fperez@colorado.edu>
6094
6096
6095 * IPython/genutils.py (native_line_ends): new function to leave
6097 * IPython/genutils.py (native_line_ends): new function to leave
6096 user config files with os-native line-endings.
6098 user config files with os-native line-endings.
6097
6099
6098 * README and manual updates.
6100 * README and manual updates.
6099
6101
6100 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6102 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6101 instead of StringType to catch Unicode strings.
6103 instead of StringType to catch Unicode strings.
6102
6104
6103 * IPython/genutils.py (filefind): fixed bug for paths with
6105 * IPython/genutils.py (filefind): fixed bug for paths with
6104 embedded spaces (very common in Windows).
6106 embedded spaces (very common in Windows).
6105
6107
6106 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6108 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6107 files under Windows, so that they get automatically associated
6109 files under Windows, so that they get automatically associated
6108 with a text editor. Windows makes it a pain to handle
6110 with a text editor. Windows makes it a pain to handle
6109 extension-less files.
6111 extension-less files.
6110
6112
6111 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6113 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6112 warning about readline only occur for Posix. In Windows there's no
6114 warning about readline only occur for Posix. In Windows there's no
6113 way to get readline, so why bother with the warning.
6115 way to get readline, so why bother with the warning.
6114
6116
6115 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6117 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6116 for __str__ instead of dir(self), since dir() changed in 2.2.
6118 for __str__ instead of dir(self), since dir() changed in 2.2.
6117
6119
6118 * Ported to Windows! Tested on XP, I suspect it should work fine
6120 * Ported to Windows! Tested on XP, I suspect it should work fine
6119 on NT/2000, but I don't think it will work on 98 et al. That
6121 on NT/2000, but I don't think it will work on 98 et al. That
6120 series of Windows is such a piece of junk anyway that I won't try
6122 series of Windows is such a piece of junk anyway that I won't try
6121 porting it there. The XP port was straightforward, showed a few
6123 porting it there. The XP port was straightforward, showed a few
6122 bugs here and there (fixed all), in particular some string
6124 bugs here and there (fixed all), in particular some string
6123 handling stuff which required considering Unicode strings (which
6125 handling stuff which required considering Unicode strings (which
6124 Windows uses). This is good, but hasn't been too tested :) No
6126 Windows uses). This is good, but hasn't been too tested :) No
6125 fancy installer yet, I'll put a note in the manual so people at
6127 fancy installer yet, I'll put a note in the manual so people at
6126 least make manually a shortcut.
6128 least make manually a shortcut.
6127
6129
6128 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6130 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6129 into a single one, "colors". This now controls both prompt and
6131 into a single one, "colors". This now controls both prompt and
6130 exception color schemes, and can be changed both at startup
6132 exception color schemes, and can be changed both at startup
6131 (either via command-line switches or via ipythonrc files) and at
6133 (either via command-line switches or via ipythonrc files) and at
6132 runtime, with @colors.
6134 runtime, with @colors.
6133 (Magic.magic_run): renamed @prun to @run and removed the old
6135 (Magic.magic_run): renamed @prun to @run and removed the old
6134 @run. The two were too similar to warrant keeping both.
6136 @run. The two were too similar to warrant keeping both.
6135
6137
6136 2002-02-03 Fernando Perez <fperez@colorado.edu>
6138 2002-02-03 Fernando Perez <fperez@colorado.edu>
6137
6139
6138 * IPython/iplib.py (install_first_time): Added comment on how to
6140 * IPython/iplib.py (install_first_time): Added comment on how to
6139 configure the color options for first-time users. Put a <return>
6141 configure the color options for first-time users. Put a <return>
6140 request at the end so that small-terminal users get a chance to
6142 request at the end so that small-terminal users get a chance to
6141 read the startup info.
6143 read the startup info.
6142
6144
6143 2002-01-23 Fernando Perez <fperez@colorado.edu>
6145 2002-01-23 Fernando Perez <fperez@colorado.edu>
6144
6146
6145 * IPython/iplib.py (CachedOutput.update): Changed output memory
6147 * IPython/iplib.py (CachedOutput.update): Changed output memory
6146 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6148 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6147 input history we still use _i. Did this b/c these variable are
6149 input history we still use _i. Did this b/c these variable are
6148 very commonly used in interactive work, so the less we need to
6150 very commonly used in interactive work, so the less we need to
6149 type the better off we are.
6151 type the better off we are.
6150 (Magic.magic_prun): updated @prun to better handle the namespaces
6152 (Magic.magic_prun): updated @prun to better handle the namespaces
6151 the file will run in, including a fix for __name__ not being set
6153 the file will run in, including a fix for __name__ not being set
6152 before.
6154 before.
6153
6155
6154 2002-01-20 Fernando Perez <fperez@colorado.edu>
6156 2002-01-20 Fernando Perez <fperez@colorado.edu>
6155
6157
6156 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6158 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6157 extra garbage for Python 2.2. Need to look more carefully into
6159 extra garbage for Python 2.2. Need to look more carefully into
6158 this later.
6160 this later.
6159
6161
6160 2002-01-19 Fernando Perez <fperez@colorado.edu>
6162 2002-01-19 Fernando Perez <fperez@colorado.edu>
6161
6163
6162 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6164 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6163 display SyntaxError exceptions properly formatted when they occur
6165 display SyntaxError exceptions properly formatted when they occur
6164 (they can be triggered by imported code).
6166 (they can be triggered by imported code).
6165
6167
6166 2002-01-18 Fernando Perez <fperez@colorado.edu>
6168 2002-01-18 Fernando Perez <fperez@colorado.edu>
6167
6169
6168 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6170 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6169 SyntaxError exceptions are reported nicely formatted, instead of
6171 SyntaxError exceptions are reported nicely formatted, instead of
6170 spitting out only offset information as before.
6172 spitting out only offset information as before.
6171 (Magic.magic_prun): Added the @prun function for executing
6173 (Magic.magic_prun): Added the @prun function for executing
6172 programs with command line args inside IPython.
6174 programs with command line args inside IPython.
6173
6175
6174 2002-01-16 Fernando Perez <fperez@colorado.edu>
6176 2002-01-16 Fernando Perez <fperez@colorado.edu>
6175
6177
6176 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6178 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6177 to *not* include the last item given in a range. This brings their
6179 to *not* include the last item given in a range. This brings their
6178 behavior in line with Python's slicing:
6180 behavior in line with Python's slicing:
6179 a[n1:n2] -> a[n1]...a[n2-1]
6181 a[n1:n2] -> a[n1]...a[n2-1]
6180 It may be a bit less convenient, but I prefer to stick to Python's
6182 It may be a bit less convenient, but I prefer to stick to Python's
6181 conventions *everywhere*, so users never have to wonder.
6183 conventions *everywhere*, so users never have to wonder.
6182 (Magic.magic_macro): Added @macro function to ease the creation of
6184 (Magic.magic_macro): Added @macro function to ease the creation of
6183 macros.
6185 macros.
6184
6186
6185 2002-01-05 Fernando Perez <fperez@colorado.edu>
6187 2002-01-05 Fernando Perez <fperez@colorado.edu>
6186
6188
6187 * Released 0.2.4.
6189 * Released 0.2.4.
6188
6190
6189 * IPython/iplib.py (Magic.magic_pdef):
6191 * IPython/iplib.py (Magic.magic_pdef):
6190 (InteractiveShell.safe_execfile): report magic lines and error
6192 (InteractiveShell.safe_execfile): report magic lines and error
6191 lines without line numbers so one can easily copy/paste them for
6193 lines without line numbers so one can easily copy/paste them for
6192 re-execution.
6194 re-execution.
6193
6195
6194 * Updated manual with recent changes.
6196 * Updated manual with recent changes.
6195
6197
6196 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6198 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6197 docstring printing when class? is called. Very handy for knowing
6199 docstring printing when class? is called. Very handy for knowing
6198 how to create class instances (as long as __init__ is well
6200 how to create class instances (as long as __init__ is well
6199 documented, of course :)
6201 documented, of course :)
6200 (Magic.magic_doc): print both class and constructor docstrings.
6202 (Magic.magic_doc): print both class and constructor docstrings.
6201 (Magic.magic_pdef): give constructor info if passed a class and
6203 (Magic.magic_pdef): give constructor info if passed a class and
6202 __call__ info for callable object instances.
6204 __call__ info for callable object instances.
6203
6205
6204 2002-01-04 Fernando Perez <fperez@colorado.edu>
6206 2002-01-04 Fernando Perez <fperez@colorado.edu>
6205
6207
6206 * Made deep_reload() off by default. It doesn't always work
6208 * Made deep_reload() off by default. It doesn't always work
6207 exactly as intended, so it's probably safer to have it off. It's
6209 exactly as intended, so it's probably safer to have it off. It's
6208 still available as dreload() anyway, so nothing is lost.
6210 still available as dreload() anyway, so nothing is lost.
6209
6211
6210 2002-01-02 Fernando Perez <fperez@colorado.edu>
6212 2002-01-02 Fernando Perez <fperez@colorado.edu>
6211
6213
6212 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6214 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6213 so I wanted an updated release).
6215 so I wanted an updated release).
6214
6216
6215 2001-12-27 Fernando Perez <fperez@colorado.edu>
6217 2001-12-27 Fernando Perez <fperez@colorado.edu>
6216
6218
6217 * IPython/iplib.py (InteractiveShell.interact): Added the original
6219 * IPython/iplib.py (InteractiveShell.interact): Added the original
6218 code from 'code.py' for this module in order to change the
6220 code from 'code.py' for this module in order to change the
6219 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6221 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6220 the history cache would break when the user hit Ctrl-C, and
6222 the history cache would break when the user hit Ctrl-C, and
6221 interact() offers no way to add any hooks to it.
6223 interact() offers no way to add any hooks to it.
6222
6224
6223 2001-12-23 Fernando Perez <fperez@colorado.edu>
6225 2001-12-23 Fernando Perez <fperez@colorado.edu>
6224
6226
6225 * setup.py: added check for 'MANIFEST' before trying to remove
6227 * setup.py: added check for 'MANIFEST' before trying to remove
6226 it. Thanks to Sean Reifschneider.
6228 it. Thanks to Sean Reifschneider.
6227
6229
6228 2001-12-22 Fernando Perez <fperez@colorado.edu>
6230 2001-12-22 Fernando Perez <fperez@colorado.edu>
6229
6231
6230 * Released 0.2.2.
6232 * Released 0.2.2.
6231
6233
6232 * Finished (reasonably) writing the manual. Later will add the
6234 * Finished (reasonably) writing the manual. Later will add the
6233 python-standard navigation stylesheets, but for the time being
6235 python-standard navigation stylesheets, but for the time being
6234 it's fairly complete. Distribution will include html and pdf
6236 it's fairly complete. Distribution will include html and pdf
6235 versions.
6237 versions.
6236
6238
6237 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6239 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6238 (MayaVi author).
6240 (MayaVi author).
6239
6241
6240 2001-12-21 Fernando Perez <fperez@colorado.edu>
6242 2001-12-21 Fernando Perez <fperez@colorado.edu>
6241
6243
6242 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6244 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6243 good public release, I think (with the manual and the distutils
6245 good public release, I think (with the manual and the distutils
6244 installer). The manual can use some work, but that can go
6246 installer). The manual can use some work, but that can go
6245 slowly. Otherwise I think it's quite nice for end users. Next
6247 slowly. Otherwise I think it's quite nice for end users. Next
6246 summer, rewrite the guts of it...
6248 summer, rewrite the guts of it...
6247
6249
6248 * Changed format of ipythonrc files to use whitespace as the
6250 * Changed format of ipythonrc files to use whitespace as the
6249 separator instead of an explicit '='. Cleaner.
6251 separator instead of an explicit '='. Cleaner.
6250
6252
6251 2001-12-20 Fernando Perez <fperez@colorado.edu>
6253 2001-12-20 Fernando Perez <fperez@colorado.edu>
6252
6254
6253 * Started a manual in LyX. For now it's just a quick merge of the
6255 * Started a manual in LyX. For now it's just a quick merge of the
6254 various internal docstrings and READMEs. Later it may grow into a
6256 various internal docstrings and READMEs. Later it may grow into a
6255 nice, full-blown manual.
6257 nice, full-blown manual.
6256
6258
6257 * Set up a distutils based installer. Installation should now be
6259 * Set up a distutils based installer. Installation should now be
6258 trivially simple for end-users.
6260 trivially simple for end-users.
6259
6261
6260 2001-12-11 Fernando Perez <fperez@colorado.edu>
6262 2001-12-11 Fernando Perez <fperez@colorado.edu>
6261
6263
6262 * Released 0.2.0. First public release, announced it at
6264 * Released 0.2.0. First public release, announced it at
6263 comp.lang.python. From now on, just bugfixes...
6265 comp.lang.python. From now on, just bugfixes...
6264
6266
6265 * Went through all the files, set copyright/license notices and
6267 * Went through all the files, set copyright/license notices and
6266 cleaned up things. Ready for release.
6268 cleaned up things. Ready for release.
6267
6269
6268 2001-12-10 Fernando Perez <fperez@colorado.edu>
6270 2001-12-10 Fernando Perez <fperez@colorado.edu>
6269
6271
6270 * Changed the first-time installer not to use tarfiles. It's more
6272 * Changed the first-time installer not to use tarfiles. It's more
6271 robust now and less unix-dependent. Also makes it easier for
6273 robust now and less unix-dependent. Also makes it easier for
6272 people to later upgrade versions.
6274 people to later upgrade versions.
6273
6275
6274 * Changed @exit to @abort to reflect the fact that it's pretty
6276 * Changed @exit to @abort to reflect the fact that it's pretty
6275 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6277 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6276 becomes significant only when IPyhton is embedded: in that case,
6278 becomes significant only when IPyhton is embedded: in that case,
6277 C-D closes IPython only, but @abort kills the enclosing program
6279 C-D closes IPython only, but @abort kills the enclosing program
6278 too (unless it had called IPython inside a try catching
6280 too (unless it had called IPython inside a try catching
6279 SystemExit).
6281 SystemExit).
6280
6282
6281 * Created Shell module which exposes the actuall IPython Shell
6283 * Created Shell module which exposes the actuall IPython Shell
6282 classes, currently the normal and the embeddable one. This at
6284 classes, currently the normal and the embeddable one. This at
6283 least offers a stable interface we won't need to change when
6285 least offers a stable interface we won't need to change when
6284 (later) the internals are rewritten. That rewrite will be confined
6286 (later) the internals are rewritten. That rewrite will be confined
6285 to iplib and ipmaker, but the Shell interface should remain as is.
6287 to iplib and ipmaker, but the Shell interface should remain as is.
6286
6288
6287 * Added embed module which offers an embeddable IPShell object,
6289 * Added embed module which offers an embeddable IPShell object,
6288 useful to fire up IPython *inside* a running program. Great for
6290 useful to fire up IPython *inside* a running program. Great for
6289 debugging or dynamical data analysis.
6291 debugging or dynamical data analysis.
6290
6292
6291 2001-12-08 Fernando Perez <fperez@colorado.edu>
6293 2001-12-08 Fernando Perez <fperez@colorado.edu>
6292
6294
6293 * Fixed small bug preventing seeing info from methods of defined
6295 * Fixed small bug preventing seeing info from methods of defined
6294 objects (incorrect namespace in _ofind()).
6296 objects (incorrect namespace in _ofind()).
6295
6297
6296 * Documentation cleanup. Moved the main usage docstrings to a
6298 * Documentation cleanup. Moved the main usage docstrings to a
6297 separate file, usage.py (cleaner to maintain, and hopefully in the
6299 separate file, usage.py (cleaner to maintain, and hopefully in the
6298 future some perlpod-like way of producing interactive, man and
6300 future some perlpod-like way of producing interactive, man and
6299 html docs out of it will be found).
6301 html docs out of it will be found).
6300
6302
6301 * Added @profile to see your profile at any time.
6303 * Added @profile to see your profile at any time.
6302
6304
6303 * Added @p as an alias for 'print'. It's especially convenient if
6305 * Added @p as an alias for 'print'. It's especially convenient if
6304 using automagic ('p x' prints x).
6306 using automagic ('p x' prints x).
6305
6307
6306 * Small cleanups and fixes after a pychecker run.
6308 * Small cleanups and fixes after a pychecker run.
6307
6309
6308 * Changed the @cd command to handle @cd - and @cd -<n> for
6310 * Changed the @cd command to handle @cd - and @cd -<n> for
6309 visiting any directory in _dh.
6311 visiting any directory in _dh.
6310
6312
6311 * Introduced _dh, a history of visited directories. @dhist prints
6313 * Introduced _dh, a history of visited directories. @dhist prints
6312 it out with numbers.
6314 it out with numbers.
6313
6315
6314 2001-12-07 Fernando Perez <fperez@colorado.edu>
6316 2001-12-07 Fernando Perez <fperez@colorado.edu>
6315
6317
6316 * Released 0.1.22
6318 * Released 0.1.22
6317
6319
6318 * Made initialization a bit more robust against invalid color
6320 * Made initialization a bit more robust against invalid color
6319 options in user input (exit, not traceback-crash).
6321 options in user input (exit, not traceback-crash).
6320
6322
6321 * Changed the bug crash reporter to write the report only in the
6323 * Changed the bug crash reporter to write the report only in the
6322 user's .ipython directory. That way IPython won't litter people's
6324 user's .ipython directory. That way IPython won't litter people's
6323 hard disks with crash files all over the place. Also print on
6325 hard disks with crash files all over the place. Also print on
6324 screen the necessary mail command.
6326 screen the necessary mail command.
6325
6327
6326 * With the new ultraTB, implemented LightBG color scheme for light
6328 * With the new ultraTB, implemented LightBG color scheme for light
6327 background terminals. A lot of people like white backgrounds, so I
6329 background terminals. A lot of people like white backgrounds, so I
6328 guess we should at least give them something readable.
6330 guess we should at least give them something readable.
6329
6331
6330 2001-12-06 Fernando Perez <fperez@colorado.edu>
6332 2001-12-06 Fernando Perez <fperez@colorado.edu>
6331
6333
6332 * Modified the structure of ultraTB. Now there's a proper class
6334 * Modified the structure of ultraTB. Now there's a proper class
6333 for tables of color schemes which allow adding schemes easily and
6335 for tables of color schemes which allow adding schemes easily and
6334 switching the active scheme without creating a new instance every
6336 switching the active scheme without creating a new instance every
6335 time (which was ridiculous). The syntax for creating new schemes
6337 time (which was ridiculous). The syntax for creating new schemes
6336 is also cleaner. I think ultraTB is finally done, with a clean
6338 is also cleaner. I think ultraTB is finally done, with a clean
6337 class structure. Names are also much cleaner (now there's proper
6339 class structure. Names are also much cleaner (now there's proper
6338 color tables, no need for every variable to also have 'color' in
6340 color tables, no need for every variable to also have 'color' in
6339 its name).
6341 its name).
6340
6342
6341 * Broke down genutils into separate files. Now genutils only
6343 * Broke down genutils into separate files. Now genutils only
6342 contains utility functions, and classes have been moved to their
6344 contains utility functions, and classes have been moved to their
6343 own files (they had enough independent functionality to warrant
6345 own files (they had enough independent functionality to warrant
6344 it): ConfigLoader, OutputTrap, Struct.
6346 it): ConfigLoader, OutputTrap, Struct.
6345
6347
6346 2001-12-05 Fernando Perez <fperez@colorado.edu>
6348 2001-12-05 Fernando Perez <fperez@colorado.edu>
6347
6349
6348 * IPython turns 21! Released version 0.1.21, as a candidate for
6350 * IPython turns 21! Released version 0.1.21, as a candidate for
6349 public consumption. If all goes well, release in a few days.
6351 public consumption. If all goes well, release in a few days.
6350
6352
6351 * Fixed path bug (files in Extensions/ directory wouldn't be found
6353 * Fixed path bug (files in Extensions/ directory wouldn't be found
6352 unless IPython/ was explicitly in sys.path).
6354 unless IPython/ was explicitly in sys.path).
6353
6355
6354 * Extended the FlexCompleter class as MagicCompleter to allow
6356 * Extended the FlexCompleter class as MagicCompleter to allow
6355 completion of @-starting lines.
6357 completion of @-starting lines.
6356
6358
6357 * Created __release__.py file as a central repository for release
6359 * Created __release__.py file as a central repository for release
6358 info that other files can read from.
6360 info that other files can read from.
6359
6361
6360 * Fixed small bug in logging: when logging was turned on in
6362 * Fixed small bug in logging: when logging was turned on in
6361 mid-session, old lines with special meanings (!@?) were being
6363 mid-session, old lines with special meanings (!@?) were being
6362 logged without the prepended comment, which is necessary since
6364 logged without the prepended comment, which is necessary since
6363 they are not truly valid python syntax. This should make session
6365 they are not truly valid python syntax. This should make session
6364 restores produce less errors.
6366 restores produce less errors.
6365
6367
6366 * The namespace cleanup forced me to make a FlexCompleter class
6368 * The namespace cleanup forced me to make a FlexCompleter class
6367 which is nothing but a ripoff of rlcompleter, but with selectable
6369 which is nothing but a ripoff of rlcompleter, but with selectable
6368 namespace (rlcompleter only works in __main__.__dict__). I'll try
6370 namespace (rlcompleter only works in __main__.__dict__). I'll try
6369 to submit a note to the authors to see if this change can be
6371 to submit a note to the authors to see if this change can be
6370 incorporated in future rlcompleter releases (Dec.6: done)
6372 incorporated in future rlcompleter releases (Dec.6: done)
6371
6373
6372 * More fixes to namespace handling. It was a mess! Now all
6374 * More fixes to namespace handling. It was a mess! Now all
6373 explicit references to __main__.__dict__ are gone (except when
6375 explicit references to __main__.__dict__ are gone (except when
6374 really needed) and everything is handled through the namespace
6376 really needed) and everything is handled through the namespace
6375 dicts in the IPython instance. We seem to be getting somewhere
6377 dicts in the IPython instance. We seem to be getting somewhere
6376 with this, finally...
6378 with this, finally...
6377
6379
6378 * Small documentation updates.
6380 * Small documentation updates.
6379
6381
6380 * Created the Extensions directory under IPython (with an
6382 * Created the Extensions directory under IPython (with an
6381 __init__.py). Put the PhysicalQ stuff there. This directory should
6383 __init__.py). Put the PhysicalQ stuff there. This directory should
6382 be used for all special-purpose extensions.
6384 be used for all special-purpose extensions.
6383
6385
6384 * File renaming:
6386 * File renaming:
6385 ipythonlib --> ipmaker
6387 ipythonlib --> ipmaker
6386 ipplib --> iplib
6388 ipplib --> iplib
6387 This makes a bit more sense in terms of what these files actually do.
6389 This makes a bit more sense in terms of what these files actually do.
6388
6390
6389 * Moved all the classes and functions in ipythonlib to ipplib, so
6391 * Moved all the classes and functions in ipythonlib to ipplib, so
6390 now ipythonlib only has make_IPython(). This will ease up its
6392 now ipythonlib only has make_IPython(). This will ease up its
6391 splitting in smaller functional chunks later.
6393 splitting in smaller functional chunks later.
6392
6394
6393 * Cleaned up (done, I think) output of @whos. Better column
6395 * Cleaned up (done, I think) output of @whos. Better column
6394 formatting, and now shows str(var) for as much as it can, which is
6396 formatting, and now shows str(var) for as much as it can, which is
6395 typically what one gets with a 'print var'.
6397 typically what one gets with a 'print var'.
6396
6398
6397 2001-12-04 Fernando Perez <fperez@colorado.edu>
6399 2001-12-04 Fernando Perez <fperez@colorado.edu>
6398
6400
6399 * Fixed namespace problems. Now builtin/IPyhton/user names get
6401 * Fixed namespace problems. Now builtin/IPyhton/user names get
6400 properly reported in their namespace. Internal namespace handling
6402 properly reported in their namespace. Internal namespace handling
6401 is finally getting decent (not perfect yet, but much better than
6403 is finally getting decent (not perfect yet, but much better than
6402 the ad-hoc mess we had).
6404 the ad-hoc mess we had).
6403
6405
6404 * Removed -exit option. If people just want to run a python
6406 * Removed -exit option. If people just want to run a python
6405 script, that's what the normal interpreter is for. Less
6407 script, that's what the normal interpreter is for. Less
6406 unnecessary options, less chances for bugs.
6408 unnecessary options, less chances for bugs.
6407
6409
6408 * Added a crash handler which generates a complete post-mortem if
6410 * Added a crash handler which generates a complete post-mortem if
6409 IPython crashes. This will help a lot in tracking bugs down the
6411 IPython crashes. This will help a lot in tracking bugs down the
6410 road.
6412 road.
6411
6413
6412 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6414 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6413 which were boud to functions being reassigned would bypass the
6415 which were boud to functions being reassigned would bypass the
6414 logger, breaking the sync of _il with the prompt counter. This
6416 logger, breaking the sync of _il with the prompt counter. This
6415 would then crash IPython later when a new line was logged.
6417 would then crash IPython later when a new line was logged.
6416
6418
6417 2001-12-02 Fernando Perez <fperez@colorado.edu>
6419 2001-12-02 Fernando Perez <fperez@colorado.edu>
6418
6420
6419 * Made IPython a package. This means people don't have to clutter
6421 * Made IPython a package. This means people don't have to clutter
6420 their sys.path with yet another directory. Changed the INSTALL
6422 their sys.path with yet another directory. Changed the INSTALL
6421 file accordingly.
6423 file accordingly.
6422
6424
6423 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6425 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6424 sorts its output (so @who shows it sorted) and @whos formats the
6426 sorts its output (so @who shows it sorted) and @whos formats the
6425 table according to the width of the first column. Nicer, easier to
6427 table according to the width of the first column. Nicer, easier to
6426 read. Todo: write a generic table_format() which takes a list of
6428 read. Todo: write a generic table_format() which takes a list of
6427 lists and prints it nicely formatted, with optional row/column
6429 lists and prints it nicely formatted, with optional row/column
6428 separators and proper padding and justification.
6430 separators and proper padding and justification.
6429
6431
6430 * Released 0.1.20
6432 * Released 0.1.20
6431
6433
6432 * Fixed bug in @log which would reverse the inputcache list (a
6434 * Fixed bug in @log which would reverse the inputcache list (a
6433 copy operation was missing).
6435 copy operation was missing).
6434
6436
6435 * Code cleanup. @config was changed to use page(). Better, since
6437 * Code cleanup. @config was changed to use page(). Better, since
6436 its output is always quite long.
6438 its output is always quite long.
6437
6439
6438 * Itpl is back as a dependency. I was having too many problems
6440 * Itpl is back as a dependency. I was having too many problems
6439 getting the parametric aliases to work reliably, and it's just
6441 getting the parametric aliases to work reliably, and it's just
6440 easier to code weird string operations with it than playing %()s
6442 easier to code weird string operations with it than playing %()s
6441 games. It's only ~6k, so I don't think it's too big a deal.
6443 games. It's only ~6k, so I don't think it's too big a deal.
6442
6444
6443 * Found (and fixed) a very nasty bug with history. !lines weren't
6445 * Found (and fixed) a very nasty bug with history. !lines weren't
6444 getting cached, and the out of sync caches would crash
6446 getting cached, and the out of sync caches would crash
6445 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6447 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6446 division of labor a bit better. Bug fixed, cleaner structure.
6448 division of labor a bit better. Bug fixed, cleaner structure.
6447
6449
6448 2001-12-01 Fernando Perez <fperez@colorado.edu>
6450 2001-12-01 Fernando Perez <fperez@colorado.edu>
6449
6451
6450 * Released 0.1.19
6452 * Released 0.1.19
6451
6453
6452 * Added option -n to @hist to prevent line number printing. Much
6454 * Added option -n to @hist to prevent line number printing. Much
6453 easier to copy/paste code this way.
6455 easier to copy/paste code this way.
6454
6456
6455 * Created global _il to hold the input list. Allows easy
6457 * Created global _il to hold the input list. Allows easy
6456 re-execution of blocks of code by slicing it (inspired by Janko's
6458 re-execution of blocks of code by slicing it (inspired by Janko's
6457 comment on 'macros').
6459 comment on 'macros').
6458
6460
6459 * Small fixes and doc updates.
6461 * Small fixes and doc updates.
6460
6462
6461 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6463 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6462 much too fragile with automagic. Handles properly multi-line
6464 much too fragile with automagic. Handles properly multi-line
6463 statements and takes parameters.
6465 statements and takes parameters.
6464
6466
6465 2001-11-30 Fernando Perez <fperez@colorado.edu>
6467 2001-11-30 Fernando Perez <fperez@colorado.edu>
6466
6468
6467 * Version 0.1.18 released.
6469 * Version 0.1.18 released.
6468
6470
6469 * Fixed nasty namespace bug in initial module imports.
6471 * Fixed nasty namespace bug in initial module imports.
6470
6472
6471 * Added copyright/license notes to all code files (except
6473 * Added copyright/license notes to all code files (except
6472 DPyGetOpt). For the time being, LGPL. That could change.
6474 DPyGetOpt). For the time being, LGPL. That could change.
6473
6475
6474 * Rewrote a much nicer README, updated INSTALL, cleaned up
6476 * Rewrote a much nicer README, updated INSTALL, cleaned up
6475 ipythonrc-* samples.
6477 ipythonrc-* samples.
6476
6478
6477 * Overall code/documentation cleanup. Basically ready for
6479 * Overall code/documentation cleanup. Basically ready for
6478 release. Only remaining thing: licence decision (LGPL?).
6480 release. Only remaining thing: licence decision (LGPL?).
6479
6481
6480 * Converted load_config to a class, ConfigLoader. Now recursion
6482 * Converted load_config to a class, ConfigLoader. Now recursion
6481 control is better organized. Doesn't include the same file twice.
6483 control is better organized. Doesn't include the same file twice.
6482
6484
6483 2001-11-29 Fernando Perez <fperez@colorado.edu>
6485 2001-11-29 Fernando Perez <fperez@colorado.edu>
6484
6486
6485 * Got input history working. Changed output history variables from
6487 * Got input history working. Changed output history variables from
6486 _p to _o so that _i is for input and _o for output. Just cleaner
6488 _p to _o so that _i is for input and _o for output. Just cleaner
6487 convention.
6489 convention.
6488
6490
6489 * Implemented parametric aliases. This pretty much allows the
6491 * Implemented parametric aliases. This pretty much allows the
6490 alias system to offer full-blown shell convenience, I think.
6492 alias system to offer full-blown shell convenience, I think.
6491
6493
6492 * Version 0.1.17 released, 0.1.18 opened.
6494 * Version 0.1.17 released, 0.1.18 opened.
6493
6495
6494 * dot_ipython/ipythonrc (alias): added documentation.
6496 * dot_ipython/ipythonrc (alias): added documentation.
6495 (xcolor): Fixed small bug (xcolors -> xcolor)
6497 (xcolor): Fixed small bug (xcolors -> xcolor)
6496
6498
6497 * Changed the alias system. Now alias is a magic command to define
6499 * Changed the alias system. Now alias is a magic command to define
6498 aliases just like the shell. Rationale: the builtin magics should
6500 aliases just like the shell. Rationale: the builtin magics should
6499 be there for things deeply connected to IPython's
6501 be there for things deeply connected to IPython's
6500 architecture. And this is a much lighter system for what I think
6502 architecture. And this is a much lighter system for what I think
6501 is the really important feature: allowing users to define quickly
6503 is the really important feature: allowing users to define quickly
6502 magics that will do shell things for them, so they can customize
6504 magics that will do shell things for them, so they can customize
6503 IPython easily to match their work habits. If someone is really
6505 IPython easily to match their work habits. If someone is really
6504 desperate to have another name for a builtin alias, they can
6506 desperate to have another name for a builtin alias, they can
6505 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6507 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6506 works.
6508 works.
6507
6509
6508 2001-11-28 Fernando Perez <fperez@colorado.edu>
6510 2001-11-28 Fernando Perez <fperez@colorado.edu>
6509
6511
6510 * Changed @file so that it opens the source file at the proper
6512 * Changed @file so that it opens the source file at the proper
6511 line. Since it uses less, if your EDITOR environment is
6513 line. Since it uses less, if your EDITOR environment is
6512 configured, typing v will immediately open your editor of choice
6514 configured, typing v will immediately open your editor of choice
6513 right at the line where the object is defined. Not as quick as
6515 right at the line where the object is defined. Not as quick as
6514 having a direct @edit command, but for all intents and purposes it
6516 having a direct @edit command, but for all intents and purposes it
6515 works. And I don't have to worry about writing @edit to deal with
6517 works. And I don't have to worry about writing @edit to deal with
6516 all the editors, less does that.
6518 all the editors, less does that.
6517
6519
6518 * Version 0.1.16 released, 0.1.17 opened.
6520 * Version 0.1.16 released, 0.1.17 opened.
6519
6521
6520 * Fixed some nasty bugs in the page/page_dumb combo that could
6522 * Fixed some nasty bugs in the page/page_dumb combo that could
6521 crash IPython.
6523 crash IPython.
6522
6524
6523 2001-11-27 Fernando Perez <fperez@colorado.edu>
6525 2001-11-27 Fernando Perez <fperez@colorado.edu>
6524
6526
6525 * Version 0.1.15 released, 0.1.16 opened.
6527 * Version 0.1.15 released, 0.1.16 opened.
6526
6528
6527 * Finally got ? and ?? to work for undefined things: now it's
6529 * Finally got ? and ?? to work for undefined things: now it's
6528 possible to type {}.get? and get information about the get method
6530 possible to type {}.get? and get information about the get method
6529 of dicts, or os.path? even if only os is defined (so technically
6531 of dicts, or os.path? even if only os is defined (so technically
6530 os.path isn't). Works at any level. For example, after import os,
6532 os.path isn't). Works at any level. For example, after import os,
6531 os?, os.path?, os.path.abspath? all work. This is great, took some
6533 os?, os.path?, os.path.abspath? all work. This is great, took some
6532 work in _ofind.
6534 work in _ofind.
6533
6535
6534 * Fixed more bugs with logging. The sanest way to do it was to add
6536 * Fixed more bugs with logging. The sanest way to do it was to add
6535 to @log a 'mode' parameter. Killed two in one shot (this mode
6537 to @log a 'mode' parameter. Killed two in one shot (this mode
6536 option was a request of Janko's). I think it's finally clean
6538 option was a request of Janko's). I think it's finally clean
6537 (famous last words).
6539 (famous last words).
6538
6540
6539 * Added a page_dumb() pager which does a decent job of paging on
6541 * Added a page_dumb() pager which does a decent job of paging on
6540 screen, if better things (like less) aren't available. One less
6542 screen, if better things (like less) aren't available. One less
6541 unix dependency (someday maybe somebody will port this to
6543 unix dependency (someday maybe somebody will port this to
6542 windows).
6544 windows).
6543
6545
6544 * Fixed problem in magic_log: would lock of logging out if log
6546 * Fixed problem in magic_log: would lock of logging out if log
6545 creation failed (because it would still think it had succeeded).
6547 creation failed (because it would still think it had succeeded).
6546
6548
6547 * Improved the page() function using curses to auto-detect screen
6549 * Improved the page() function using curses to auto-detect screen
6548 size. Now it can make a much better decision on whether to print
6550 size. Now it can make a much better decision on whether to print
6549 or page a string. Option screen_length was modified: a value 0
6551 or page a string. Option screen_length was modified: a value 0
6550 means auto-detect, and that's the default now.
6552 means auto-detect, and that's the default now.
6551
6553
6552 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6554 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6553 go out. I'll test it for a few days, then talk to Janko about
6555 go out. I'll test it for a few days, then talk to Janko about
6554 licences and announce it.
6556 licences and announce it.
6555
6557
6556 * Fixed the length of the auto-generated ---> prompt which appears
6558 * Fixed the length of the auto-generated ---> prompt which appears
6557 for auto-parens and auto-quotes. Getting this right isn't trivial,
6559 for auto-parens and auto-quotes. Getting this right isn't trivial,
6558 with all the color escapes, different prompt types and optional
6560 with all the color escapes, different prompt types and optional
6559 separators. But it seems to be working in all the combinations.
6561 separators. But it seems to be working in all the combinations.
6560
6562
6561 2001-11-26 Fernando Perez <fperez@colorado.edu>
6563 2001-11-26 Fernando Perez <fperez@colorado.edu>
6562
6564
6563 * Wrote a regexp filter to get option types from the option names
6565 * Wrote a regexp filter to get option types from the option names
6564 string. This eliminates the need to manually keep two duplicate
6566 string. This eliminates the need to manually keep two duplicate
6565 lists.
6567 lists.
6566
6568
6567 * Removed the unneeded check_option_names. Now options are handled
6569 * Removed the unneeded check_option_names. Now options are handled
6568 in a much saner manner and it's easy to visually check that things
6570 in a much saner manner and it's easy to visually check that things
6569 are ok.
6571 are ok.
6570
6572
6571 * Updated version numbers on all files I modified to carry a
6573 * Updated version numbers on all files I modified to carry a
6572 notice so Janko and Nathan have clear version markers.
6574 notice so Janko and Nathan have clear version markers.
6573
6575
6574 * Updated docstring for ultraTB with my changes. I should send
6576 * Updated docstring for ultraTB with my changes. I should send
6575 this to Nathan.
6577 this to Nathan.
6576
6578
6577 * Lots of small fixes. Ran everything through pychecker again.
6579 * Lots of small fixes. Ran everything through pychecker again.
6578
6580
6579 * Made loading of deep_reload an cmd line option. If it's not too
6581 * Made loading of deep_reload an cmd line option. If it's not too
6580 kosher, now people can just disable it. With -nodeep_reload it's
6582 kosher, now people can just disable it. With -nodeep_reload it's
6581 still available as dreload(), it just won't overwrite reload().
6583 still available as dreload(), it just won't overwrite reload().
6582
6584
6583 * Moved many options to the no| form (-opt and -noopt
6585 * Moved many options to the no| form (-opt and -noopt
6584 accepted). Cleaner.
6586 accepted). Cleaner.
6585
6587
6586 * Changed magic_log so that if called with no parameters, it uses
6588 * Changed magic_log so that if called with no parameters, it uses
6587 'rotate' mode. That way auto-generated logs aren't automatically
6589 'rotate' mode. That way auto-generated logs aren't automatically
6588 over-written. For normal logs, now a backup is made if it exists
6590 over-written. For normal logs, now a backup is made if it exists
6589 (only 1 level of backups). A new 'backup' mode was added to the
6591 (only 1 level of backups). A new 'backup' mode was added to the
6590 Logger class to support this. This was a request by Janko.
6592 Logger class to support this. This was a request by Janko.
6591
6593
6592 * Added @logoff/@logon to stop/restart an active log.
6594 * Added @logoff/@logon to stop/restart an active log.
6593
6595
6594 * Fixed a lot of bugs in log saving/replay. It was pretty
6596 * Fixed a lot of bugs in log saving/replay. It was pretty
6595 broken. Now special lines (!@,/) appear properly in the command
6597 broken. Now special lines (!@,/) appear properly in the command
6596 history after a log replay.
6598 history after a log replay.
6597
6599
6598 * Tried and failed to implement full session saving via pickle. My
6600 * Tried and failed to implement full session saving via pickle. My
6599 idea was to pickle __main__.__dict__, but modules can't be
6601 idea was to pickle __main__.__dict__, but modules can't be
6600 pickled. This would be a better alternative to replaying logs, but
6602 pickled. This would be a better alternative to replaying logs, but
6601 seems quite tricky to get to work. Changed -session to be called
6603 seems quite tricky to get to work. Changed -session to be called
6602 -logplay, which more accurately reflects what it does. And if we
6604 -logplay, which more accurately reflects what it does. And if we
6603 ever get real session saving working, -session is now available.
6605 ever get real session saving working, -session is now available.
6604
6606
6605 * Implemented color schemes for prompts also. As for tracebacks,
6607 * Implemented color schemes for prompts also. As for tracebacks,
6606 currently only NoColor and Linux are supported. But now the
6608 currently only NoColor and Linux are supported. But now the
6607 infrastructure is in place, based on a generic ColorScheme
6609 infrastructure is in place, based on a generic ColorScheme
6608 class. So writing and activating new schemes both for the prompts
6610 class. So writing and activating new schemes both for the prompts
6609 and the tracebacks should be straightforward.
6611 and the tracebacks should be straightforward.
6610
6612
6611 * Version 0.1.13 released, 0.1.14 opened.
6613 * Version 0.1.13 released, 0.1.14 opened.
6612
6614
6613 * Changed handling of options for output cache. Now counter is
6615 * Changed handling of options for output cache. Now counter is
6614 hardwired starting at 1 and one specifies the maximum number of
6616 hardwired starting at 1 and one specifies the maximum number of
6615 entries *in the outcache* (not the max prompt counter). This is
6617 entries *in the outcache* (not the max prompt counter). This is
6616 much better, since many statements won't increase the cache
6618 much better, since many statements won't increase the cache
6617 count. It also eliminated some confusing options, now there's only
6619 count. It also eliminated some confusing options, now there's only
6618 one: cache_size.
6620 one: cache_size.
6619
6621
6620 * Added 'alias' magic function and magic_alias option in the
6622 * Added 'alias' magic function and magic_alias option in the
6621 ipythonrc file. Now the user can easily define whatever names he
6623 ipythonrc file. Now the user can easily define whatever names he
6622 wants for the magic functions without having to play weird
6624 wants for the magic functions without having to play weird
6623 namespace games. This gives IPython a real shell-like feel.
6625 namespace games. This gives IPython a real shell-like feel.
6624
6626
6625 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6627 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6626 @ or not).
6628 @ or not).
6627
6629
6628 This was one of the last remaining 'visible' bugs (that I know
6630 This was one of the last remaining 'visible' bugs (that I know
6629 of). I think if I can clean up the session loading so it works
6631 of). I think if I can clean up the session loading so it works
6630 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6632 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6631 about licensing).
6633 about licensing).
6632
6634
6633 2001-11-25 Fernando Perez <fperez@colorado.edu>
6635 2001-11-25 Fernando Perez <fperez@colorado.edu>
6634
6636
6635 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6637 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6636 there's a cleaner distinction between what ? and ?? show.
6638 there's a cleaner distinction between what ? and ?? show.
6637
6639
6638 * Added screen_length option. Now the user can define his own
6640 * Added screen_length option. Now the user can define his own
6639 screen size for page() operations.
6641 screen size for page() operations.
6640
6642
6641 * Implemented magic shell-like functions with automatic code
6643 * Implemented magic shell-like functions with automatic code
6642 generation. Now adding another function is just a matter of adding
6644 generation. Now adding another function is just a matter of adding
6643 an entry to a dict, and the function is dynamically generated at
6645 an entry to a dict, and the function is dynamically generated at
6644 run-time. Python has some really cool features!
6646 run-time. Python has some really cool features!
6645
6647
6646 * Renamed many options to cleanup conventions a little. Now all
6648 * Renamed many options to cleanup conventions a little. Now all
6647 are lowercase, and only underscores where needed. Also in the code
6649 are lowercase, and only underscores where needed. Also in the code
6648 option name tables are clearer.
6650 option name tables are clearer.
6649
6651
6650 * Changed prompts a little. Now input is 'In [n]:' instead of
6652 * Changed prompts a little. Now input is 'In [n]:' instead of
6651 'In[n]:='. This allows it the numbers to be aligned with the
6653 'In[n]:='. This allows it the numbers to be aligned with the
6652 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6654 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6653 Python (it was a Mathematica thing). The '...' continuation prompt
6655 Python (it was a Mathematica thing). The '...' continuation prompt
6654 was also changed a little to align better.
6656 was also changed a little to align better.
6655
6657
6656 * Fixed bug when flushing output cache. Not all _p<n> variables
6658 * Fixed bug when flushing output cache. Not all _p<n> variables
6657 exist, so their deletion needs to be wrapped in a try:
6659 exist, so their deletion needs to be wrapped in a try:
6658
6660
6659 * Figured out how to properly use inspect.formatargspec() (it
6661 * Figured out how to properly use inspect.formatargspec() (it
6660 requires the args preceded by *). So I removed all the code from
6662 requires the args preceded by *). So I removed all the code from
6661 _get_pdef in Magic, which was just replicating that.
6663 _get_pdef in Magic, which was just replicating that.
6662
6664
6663 * Added test to prefilter to allow redefining magic function names
6665 * Added test to prefilter to allow redefining magic function names
6664 as variables. This is ok, since the @ form is always available,
6666 as variables. This is ok, since the @ form is always available,
6665 but whe should allow the user to define a variable called 'ls' if
6667 but whe should allow the user to define a variable called 'ls' if
6666 he needs it.
6668 he needs it.
6667
6669
6668 * Moved the ToDo information from README into a separate ToDo.
6670 * Moved the ToDo information from README into a separate ToDo.
6669
6671
6670 * General code cleanup and small bugfixes. I think it's close to a
6672 * General code cleanup and small bugfixes. I think it's close to a
6671 state where it can be released, obviously with a big 'beta'
6673 state where it can be released, obviously with a big 'beta'
6672 warning on it.
6674 warning on it.
6673
6675
6674 * Got the magic function split to work. Now all magics are defined
6676 * Got the magic function split to work. Now all magics are defined
6675 in a separate class. It just organizes things a bit, and now
6677 in a separate class. It just organizes things a bit, and now
6676 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6678 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6677 was too long).
6679 was too long).
6678
6680
6679 * Changed @clear to @reset to avoid potential confusions with
6681 * Changed @clear to @reset to avoid potential confusions with
6680 the shell command clear. Also renamed @cl to @clear, which does
6682 the shell command clear. Also renamed @cl to @clear, which does
6681 exactly what people expect it to from their shell experience.
6683 exactly what people expect it to from their shell experience.
6682
6684
6683 Added a check to the @reset command (since it's so
6685 Added a check to the @reset command (since it's so
6684 destructive, it's probably a good idea to ask for confirmation).
6686 destructive, it's probably a good idea to ask for confirmation).
6685 But now reset only works for full namespace resetting. Since the
6687 But now reset only works for full namespace resetting. Since the
6686 del keyword is already there for deleting a few specific
6688 del keyword is already there for deleting a few specific
6687 variables, I don't see the point of having a redundant magic
6689 variables, I don't see the point of having a redundant magic
6688 function for the same task.
6690 function for the same task.
6689
6691
6690 2001-11-24 Fernando Perez <fperez@colorado.edu>
6692 2001-11-24 Fernando Perez <fperez@colorado.edu>
6691
6693
6692 * Updated the builtin docs (esp. the ? ones).
6694 * Updated the builtin docs (esp. the ? ones).
6693
6695
6694 * Ran all the code through pychecker. Not terribly impressed with
6696 * Ran all the code through pychecker. Not terribly impressed with
6695 it: lots of spurious warnings and didn't really find anything of
6697 it: lots of spurious warnings and didn't really find anything of
6696 substance (just a few modules being imported and not used).
6698 substance (just a few modules being imported and not used).
6697
6699
6698 * Implemented the new ultraTB functionality into IPython. New
6700 * Implemented the new ultraTB functionality into IPython. New
6699 option: xcolors. This chooses color scheme. xmode now only selects
6701 option: xcolors. This chooses color scheme. xmode now only selects
6700 between Plain and Verbose. Better orthogonality.
6702 between Plain and Verbose. Better orthogonality.
6701
6703
6702 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6704 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6703 mode and color scheme for the exception handlers. Now it's
6705 mode and color scheme for the exception handlers. Now it's
6704 possible to have the verbose traceback with no coloring.
6706 possible to have the verbose traceback with no coloring.
6705
6707
6706 2001-11-23 Fernando Perez <fperez@colorado.edu>
6708 2001-11-23 Fernando Perez <fperez@colorado.edu>
6707
6709
6708 * Version 0.1.12 released, 0.1.13 opened.
6710 * Version 0.1.12 released, 0.1.13 opened.
6709
6711
6710 * Removed option to set auto-quote and auto-paren escapes by
6712 * Removed option to set auto-quote and auto-paren escapes by
6711 user. The chances of breaking valid syntax are just too high. If
6713 user. The chances of breaking valid syntax are just too high. If
6712 someone *really* wants, they can always dig into the code.
6714 someone *really* wants, they can always dig into the code.
6713
6715
6714 * Made prompt separators configurable.
6716 * Made prompt separators configurable.
6715
6717
6716 2001-11-22 Fernando Perez <fperez@colorado.edu>
6718 2001-11-22 Fernando Perez <fperez@colorado.edu>
6717
6719
6718 * Small bugfixes in many places.
6720 * Small bugfixes in many places.
6719
6721
6720 * Removed the MyCompleter class from ipplib. It seemed redundant
6722 * Removed the MyCompleter class from ipplib. It seemed redundant
6721 with the C-p,C-n history search functionality. Less code to
6723 with the C-p,C-n history search functionality. Less code to
6722 maintain.
6724 maintain.
6723
6725
6724 * Moved all the original ipython.py code into ipythonlib.py. Right
6726 * Moved all the original ipython.py code into ipythonlib.py. Right
6725 now it's just one big dump into a function called make_IPython, so
6727 now it's just one big dump into a function called make_IPython, so
6726 no real modularity has been gained. But at least it makes the
6728 no real modularity has been gained. But at least it makes the
6727 wrapper script tiny, and since ipythonlib is a module, it gets
6729 wrapper script tiny, and since ipythonlib is a module, it gets
6728 compiled and startup is much faster.
6730 compiled and startup is much faster.
6729
6731
6730 This is a reasobably 'deep' change, so we should test it for a
6732 This is a reasobably 'deep' change, so we should test it for a
6731 while without messing too much more with the code.
6733 while without messing too much more with the code.
6732
6734
6733 2001-11-21 Fernando Perez <fperez@colorado.edu>
6735 2001-11-21 Fernando Perez <fperez@colorado.edu>
6734
6736
6735 * Version 0.1.11 released, 0.1.12 opened for further work.
6737 * Version 0.1.11 released, 0.1.12 opened for further work.
6736
6738
6737 * Removed dependency on Itpl. It was only needed in one place. It
6739 * Removed dependency on Itpl. It was only needed in one place. It
6738 would be nice if this became part of python, though. It makes life
6740 would be nice if this became part of python, though. It makes life
6739 *a lot* easier in some cases.
6741 *a lot* easier in some cases.
6740
6742
6741 * Simplified the prefilter code a bit. Now all handlers are
6743 * Simplified the prefilter code a bit. Now all handlers are
6742 expected to explicitly return a value (at least a blank string).
6744 expected to explicitly return a value (at least a blank string).
6743
6745
6744 * Heavy edits in ipplib. Removed the help system altogether. Now
6746 * Heavy edits in ipplib. Removed the help system altogether. Now
6745 obj?/?? is used for inspecting objects, a magic @doc prints
6747 obj?/?? is used for inspecting objects, a magic @doc prints
6746 docstrings, and full-blown Python help is accessed via the 'help'
6748 docstrings, and full-blown Python help is accessed via the 'help'
6747 keyword. This cleans up a lot of code (less to maintain) and does
6749 keyword. This cleans up a lot of code (less to maintain) and does
6748 the job. Since 'help' is now a standard Python component, might as
6750 the job. Since 'help' is now a standard Python component, might as
6749 well use it and remove duplicate functionality.
6751 well use it and remove duplicate functionality.
6750
6752
6751 Also removed the option to use ipplib as a standalone program. By
6753 Also removed the option to use ipplib as a standalone program. By
6752 now it's too dependent on other parts of IPython to function alone.
6754 now it's too dependent on other parts of IPython to function alone.
6753
6755
6754 * Fixed bug in genutils.pager. It would crash if the pager was
6756 * Fixed bug in genutils.pager. It would crash if the pager was
6755 exited immediately after opening (broken pipe).
6757 exited immediately after opening (broken pipe).
6756
6758
6757 * Trimmed down the VerboseTB reporting a little. The header is
6759 * Trimmed down the VerboseTB reporting a little. The header is
6758 much shorter now and the repeated exception arguments at the end
6760 much shorter now and the repeated exception arguments at the end
6759 have been removed. For interactive use the old header seemed a bit
6761 have been removed. For interactive use the old header seemed a bit
6760 excessive.
6762 excessive.
6761
6763
6762 * Fixed small bug in output of @whos for variables with multi-word
6764 * Fixed small bug in output of @whos for variables with multi-word
6763 types (only first word was displayed).
6765 types (only first word was displayed).
6764
6766
6765 2001-11-17 Fernando Perez <fperez@colorado.edu>
6767 2001-11-17 Fernando Perez <fperez@colorado.edu>
6766
6768
6767 * Version 0.1.10 released, 0.1.11 opened for further work.
6769 * Version 0.1.10 released, 0.1.11 opened for further work.
6768
6770
6769 * Modified dirs and friends. dirs now *returns* the stack (not
6771 * Modified dirs and friends. dirs now *returns* the stack (not
6770 prints), so one can manipulate it as a variable. Convenient to
6772 prints), so one can manipulate it as a variable. Convenient to
6771 travel along many directories.
6773 travel along many directories.
6772
6774
6773 * Fixed bug in magic_pdef: would only work with functions with
6775 * Fixed bug in magic_pdef: would only work with functions with
6774 arguments with default values.
6776 arguments with default values.
6775
6777
6776 2001-11-14 Fernando Perez <fperez@colorado.edu>
6778 2001-11-14 Fernando Perez <fperez@colorado.edu>
6777
6779
6778 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6780 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6779 example with IPython. Various other minor fixes and cleanups.
6781 example with IPython. Various other minor fixes and cleanups.
6780
6782
6781 * Version 0.1.9 released, 0.1.10 opened for further work.
6783 * Version 0.1.9 released, 0.1.10 opened for further work.
6782
6784
6783 * Added sys.path to the list of directories searched in the
6785 * Added sys.path to the list of directories searched in the
6784 execfile= option. It used to be the current directory and the
6786 execfile= option. It used to be the current directory and the
6785 user's IPYTHONDIR only.
6787 user's IPYTHONDIR only.
6786
6788
6787 2001-11-13 Fernando Perez <fperez@colorado.edu>
6789 2001-11-13 Fernando Perez <fperez@colorado.edu>
6788
6790
6789 * Reinstated the raw_input/prefilter separation that Janko had
6791 * Reinstated the raw_input/prefilter separation that Janko had
6790 initially. This gives a more convenient setup for extending the
6792 initially. This gives a more convenient setup for extending the
6791 pre-processor from the outside: raw_input always gets a string,
6793 pre-processor from the outside: raw_input always gets a string,
6792 and prefilter has to process it. We can then redefine prefilter
6794 and prefilter has to process it. We can then redefine prefilter
6793 from the outside and implement extensions for special
6795 from the outside and implement extensions for special
6794 purposes.
6796 purposes.
6795
6797
6796 Today I got one for inputting PhysicalQuantity objects
6798 Today I got one for inputting PhysicalQuantity objects
6797 (from Scientific) without needing any function calls at
6799 (from Scientific) without needing any function calls at
6798 all. Extremely convenient, and it's all done as a user-level
6800 all. Extremely convenient, and it's all done as a user-level
6799 extension (no IPython code was touched). Now instead of:
6801 extension (no IPython code was touched). Now instead of:
6800 a = PhysicalQuantity(4.2,'m/s**2')
6802 a = PhysicalQuantity(4.2,'m/s**2')
6801 one can simply say
6803 one can simply say
6802 a = 4.2 m/s**2
6804 a = 4.2 m/s**2
6803 or even
6805 or even
6804 a = 4.2 m/s^2
6806 a = 4.2 m/s^2
6805
6807
6806 I use this, but it's also a proof of concept: IPython really is
6808 I use this, but it's also a proof of concept: IPython really is
6807 fully user-extensible, even at the level of the parsing of the
6809 fully user-extensible, even at the level of the parsing of the
6808 command line. It's not trivial, but it's perfectly doable.
6810 command line. It's not trivial, but it's perfectly doable.
6809
6811
6810 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6812 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6811 the problem of modules being loaded in the inverse order in which
6813 the problem of modules being loaded in the inverse order in which
6812 they were defined in
6814 they were defined in
6813
6815
6814 * Version 0.1.8 released, 0.1.9 opened for further work.
6816 * Version 0.1.8 released, 0.1.9 opened for further work.
6815
6817
6816 * Added magics pdef, source and file. They respectively show the
6818 * Added magics pdef, source and file. They respectively show the
6817 definition line ('prototype' in C), source code and full python
6819 definition line ('prototype' in C), source code and full python
6818 file for any callable object. The object inspector oinfo uses
6820 file for any callable object. The object inspector oinfo uses
6819 these to show the same information.
6821 these to show the same information.
6820
6822
6821 * Version 0.1.7 released, 0.1.8 opened for further work.
6823 * Version 0.1.7 released, 0.1.8 opened for further work.
6822
6824
6823 * Separated all the magic functions into a class called Magic. The
6825 * Separated all the magic functions into a class called Magic. The
6824 InteractiveShell class was becoming too big for Xemacs to handle
6826 InteractiveShell class was becoming too big for Xemacs to handle
6825 (de-indenting a line would lock it up for 10 seconds while it
6827 (de-indenting a line would lock it up for 10 seconds while it
6826 backtracked on the whole class!)
6828 backtracked on the whole class!)
6827
6829
6828 FIXME: didn't work. It can be done, but right now namespaces are
6830 FIXME: didn't work. It can be done, but right now namespaces are
6829 all messed up. Do it later (reverted it for now, so at least
6831 all messed up. Do it later (reverted it for now, so at least
6830 everything works as before).
6832 everything works as before).
6831
6833
6832 * Got the object introspection system (magic_oinfo) working! I
6834 * Got the object introspection system (magic_oinfo) working! I
6833 think this is pretty much ready for release to Janko, so he can
6835 think this is pretty much ready for release to Janko, so he can
6834 test it for a while and then announce it. Pretty much 100% of what
6836 test it for a while and then announce it. Pretty much 100% of what
6835 I wanted for the 'phase 1' release is ready. Happy, tired.
6837 I wanted for the 'phase 1' release is ready. Happy, tired.
6836
6838
6837 2001-11-12 Fernando Perez <fperez@colorado.edu>
6839 2001-11-12 Fernando Perez <fperez@colorado.edu>
6838
6840
6839 * Version 0.1.6 released, 0.1.7 opened for further work.
6841 * Version 0.1.6 released, 0.1.7 opened for further work.
6840
6842
6841 * Fixed bug in printing: it used to test for truth before
6843 * Fixed bug in printing: it used to test for truth before
6842 printing, so 0 wouldn't print. Now checks for None.
6844 printing, so 0 wouldn't print. Now checks for None.
6843
6845
6844 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6846 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6845 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6847 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6846 reaches by hand into the outputcache. Think of a better way to do
6848 reaches by hand into the outputcache. Think of a better way to do
6847 this later.
6849 this later.
6848
6850
6849 * Various small fixes thanks to Nathan's comments.
6851 * Various small fixes thanks to Nathan's comments.
6850
6852
6851 * Changed magic_pprint to magic_Pprint. This way it doesn't
6853 * Changed magic_pprint to magic_Pprint. This way it doesn't
6852 collide with pprint() and the name is consistent with the command
6854 collide with pprint() and the name is consistent with the command
6853 line option.
6855 line option.
6854
6856
6855 * Changed prompt counter behavior to be fully like
6857 * Changed prompt counter behavior to be fully like
6856 Mathematica's. That is, even input that doesn't return a result
6858 Mathematica's. That is, even input that doesn't return a result
6857 raises the prompt counter. The old behavior was kind of confusing
6859 raises the prompt counter. The old behavior was kind of confusing
6858 (getting the same prompt number several times if the operation
6860 (getting the same prompt number several times if the operation
6859 didn't return a result).
6861 didn't return a result).
6860
6862
6861 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6863 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6862
6864
6863 * Fixed -Classic mode (wasn't working anymore).
6865 * Fixed -Classic mode (wasn't working anymore).
6864
6866
6865 * Added colored prompts using Nathan's new code. Colors are
6867 * Added colored prompts using Nathan's new code. Colors are
6866 currently hardwired, they can be user-configurable. For
6868 currently hardwired, they can be user-configurable. For
6867 developers, they can be chosen in file ipythonlib.py, at the
6869 developers, they can be chosen in file ipythonlib.py, at the
6868 beginning of the CachedOutput class def.
6870 beginning of the CachedOutput class def.
6869
6871
6870 2001-11-11 Fernando Perez <fperez@colorado.edu>
6872 2001-11-11 Fernando Perez <fperez@colorado.edu>
6871
6873
6872 * Version 0.1.5 released, 0.1.6 opened for further work.
6874 * Version 0.1.5 released, 0.1.6 opened for further work.
6873
6875
6874 * Changed magic_env to *return* the environment as a dict (not to
6876 * Changed magic_env to *return* the environment as a dict (not to
6875 print it). This way it prints, but it can also be processed.
6877 print it). This way it prints, but it can also be processed.
6876
6878
6877 * Added Verbose exception reporting to interactive
6879 * Added Verbose exception reporting to interactive
6878 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6880 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6879 traceback. Had to make some changes to the ultraTB file. This is
6881 traceback. Had to make some changes to the ultraTB file. This is
6880 probably the last 'big' thing in my mental todo list. This ties
6882 probably the last 'big' thing in my mental todo list. This ties
6881 in with the next entry:
6883 in with the next entry:
6882
6884
6883 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6885 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6884 has to specify is Plain, Color or Verbose for all exception
6886 has to specify is Plain, Color or Verbose for all exception
6885 handling.
6887 handling.
6886
6888
6887 * Removed ShellServices option. All this can really be done via
6889 * Removed ShellServices option. All this can really be done via
6888 the magic system. It's easier to extend, cleaner and has automatic
6890 the magic system. It's easier to extend, cleaner and has automatic
6889 namespace protection and documentation.
6891 namespace protection and documentation.
6890
6892
6891 2001-11-09 Fernando Perez <fperez@colorado.edu>
6893 2001-11-09 Fernando Perez <fperez@colorado.edu>
6892
6894
6893 * Fixed bug in output cache flushing (missing parameter to
6895 * Fixed bug in output cache flushing (missing parameter to
6894 __init__). Other small bugs fixed (found using pychecker).
6896 __init__). Other small bugs fixed (found using pychecker).
6895
6897
6896 * Version 0.1.4 opened for bugfixing.
6898 * Version 0.1.4 opened for bugfixing.
6897
6899
6898 2001-11-07 Fernando Perez <fperez@colorado.edu>
6900 2001-11-07 Fernando Perez <fperez@colorado.edu>
6899
6901
6900 * Version 0.1.3 released, mainly because of the raw_input bug.
6902 * Version 0.1.3 released, mainly because of the raw_input bug.
6901
6903
6902 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6904 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6903 and when testing for whether things were callable, a call could
6905 and when testing for whether things were callable, a call could
6904 actually be made to certain functions. They would get called again
6906 actually be made to certain functions. They would get called again
6905 once 'really' executed, with a resulting double call. A disaster
6907 once 'really' executed, with a resulting double call. A disaster
6906 in many cases (list.reverse() would never work!).
6908 in many cases (list.reverse() would never work!).
6907
6909
6908 * Removed prefilter() function, moved its code to raw_input (which
6910 * Removed prefilter() function, moved its code to raw_input (which
6909 after all was just a near-empty caller for prefilter). This saves
6911 after all was just a near-empty caller for prefilter). This saves
6910 a function call on every prompt, and simplifies the class a tiny bit.
6912 a function call on every prompt, and simplifies the class a tiny bit.
6911
6913
6912 * Fix _ip to __ip name in magic example file.
6914 * Fix _ip to __ip name in magic example file.
6913
6915
6914 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6916 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6915 work with non-gnu versions of tar.
6917 work with non-gnu versions of tar.
6916
6918
6917 2001-11-06 Fernando Perez <fperez@colorado.edu>
6919 2001-11-06 Fernando Perez <fperez@colorado.edu>
6918
6920
6919 * Version 0.1.2. Just to keep track of the recent changes.
6921 * Version 0.1.2. Just to keep track of the recent changes.
6920
6922
6921 * Fixed nasty bug in output prompt routine. It used to check 'if
6923 * Fixed nasty bug in output prompt routine. It used to check 'if
6922 arg != None...'. Problem is, this fails if arg implements a
6924 arg != None...'. Problem is, this fails if arg implements a
6923 special comparison (__cmp__) which disallows comparing to
6925 special comparison (__cmp__) which disallows comparing to
6924 None. Found it when trying to use the PhysicalQuantity module from
6926 None. Found it when trying to use the PhysicalQuantity module from
6925 ScientificPython.
6927 ScientificPython.
6926
6928
6927 2001-11-05 Fernando Perez <fperez@colorado.edu>
6929 2001-11-05 Fernando Perez <fperez@colorado.edu>
6928
6930
6929 * Also added dirs. Now the pushd/popd/dirs family functions
6931 * Also added dirs. Now the pushd/popd/dirs family functions
6930 basically like the shell, with the added convenience of going home
6932 basically like the shell, with the added convenience of going home
6931 when called with no args.
6933 when called with no args.
6932
6934
6933 * pushd/popd slightly modified to mimic shell behavior more
6935 * pushd/popd slightly modified to mimic shell behavior more
6934 closely.
6936 closely.
6935
6937
6936 * Added env,pushd,popd from ShellServices as magic functions. I
6938 * Added env,pushd,popd from ShellServices as magic functions. I
6937 think the cleanest will be to port all desired functions from
6939 think the cleanest will be to port all desired functions from
6938 ShellServices as magics and remove ShellServices altogether. This
6940 ShellServices as magics and remove ShellServices altogether. This
6939 will provide a single, clean way of adding functionality
6941 will provide a single, clean way of adding functionality
6940 (shell-type or otherwise) to IP.
6942 (shell-type or otherwise) to IP.
6941
6943
6942 2001-11-04 Fernando Perez <fperez@colorado.edu>
6944 2001-11-04 Fernando Perez <fperez@colorado.edu>
6943
6945
6944 * Added .ipython/ directory to sys.path. This way users can keep
6946 * Added .ipython/ directory to sys.path. This way users can keep
6945 customizations there and access them via import.
6947 customizations there and access them via import.
6946
6948
6947 2001-11-03 Fernando Perez <fperez@colorado.edu>
6949 2001-11-03 Fernando Perez <fperez@colorado.edu>
6948
6950
6949 * Opened version 0.1.1 for new changes.
6951 * Opened version 0.1.1 for new changes.
6950
6952
6951 * Changed version number to 0.1.0: first 'public' release, sent to
6953 * Changed version number to 0.1.0: first 'public' release, sent to
6952 Nathan and Janko.
6954 Nathan and Janko.
6953
6955
6954 * Lots of small fixes and tweaks.
6956 * Lots of small fixes and tweaks.
6955
6957
6956 * Minor changes to whos format. Now strings are shown, snipped if
6958 * Minor changes to whos format. Now strings are shown, snipped if
6957 too long.
6959 too long.
6958
6960
6959 * Changed ShellServices to work on __main__ so they show up in @who
6961 * Changed ShellServices to work on __main__ so they show up in @who
6960
6962
6961 * Help also works with ? at the end of a line:
6963 * Help also works with ? at the end of a line:
6962 ?sin and sin?
6964 ?sin and sin?
6963 both produce the same effect. This is nice, as often I use the
6965 both produce the same effect. This is nice, as often I use the
6964 tab-complete to find the name of a method, but I used to then have
6966 tab-complete to find the name of a method, but I used to then have
6965 to go to the beginning of the line to put a ? if I wanted more
6967 to go to the beginning of the line to put a ? if I wanted more
6966 info. Now I can just add the ? and hit return. Convenient.
6968 info. Now I can just add the ? and hit return. Convenient.
6967
6969
6968 2001-11-02 Fernando Perez <fperez@colorado.edu>
6970 2001-11-02 Fernando Perez <fperez@colorado.edu>
6969
6971
6970 * Python version check (>=2.1) added.
6972 * Python version check (>=2.1) added.
6971
6973
6972 * Added LazyPython documentation. At this point the docs are quite
6974 * Added LazyPython documentation. At this point the docs are quite
6973 a mess. A cleanup is in order.
6975 a mess. A cleanup is in order.
6974
6976
6975 * Auto-installer created. For some bizarre reason, the zipfiles
6977 * Auto-installer created. For some bizarre reason, the zipfiles
6976 module isn't working on my system. So I made a tar version
6978 module isn't working on my system. So I made a tar version
6977 (hopefully the command line options in various systems won't kill
6979 (hopefully the command line options in various systems won't kill
6978 me).
6980 me).
6979
6981
6980 * Fixes to Struct in genutils. Now all dictionary-like methods are
6982 * Fixes to Struct in genutils. Now all dictionary-like methods are
6981 protected (reasonably).
6983 protected (reasonably).
6982
6984
6983 * Added pager function to genutils and changed ? to print usage
6985 * Added pager function to genutils and changed ? to print usage
6984 note through it (it was too long).
6986 note through it (it was too long).
6985
6987
6986 * Added the LazyPython functionality. Works great! I changed the
6988 * Added the LazyPython functionality. Works great! I changed the
6987 auto-quote escape to ';', it's on home row and next to '. But
6989 auto-quote escape to ';', it's on home row and next to '. But
6988 both auto-quote and auto-paren (still /) escapes are command-line
6990 both auto-quote and auto-paren (still /) escapes are command-line
6989 parameters.
6991 parameters.
6990
6992
6991
6993
6992 2001-11-01 Fernando Perez <fperez@colorado.edu>
6994 2001-11-01 Fernando Perez <fperez@colorado.edu>
6993
6995
6994 * Version changed to 0.0.7. Fairly large change: configuration now
6996 * Version changed to 0.0.7. Fairly large change: configuration now
6995 is all stored in a directory, by default .ipython. There, all
6997 is all stored in a directory, by default .ipython. There, all
6996 config files have normal looking names (not .names)
6998 config files have normal looking names (not .names)
6997
6999
6998 * Version 0.0.6 Released first to Lucas and Archie as a test
7000 * Version 0.0.6 Released first to Lucas and Archie as a test
6999 run. Since it's the first 'semi-public' release, change version to
7001 run. Since it's the first 'semi-public' release, change version to
7000 > 0.0.6 for any changes now.
7002 > 0.0.6 for any changes now.
7001
7003
7002 * Stuff I had put in the ipplib.py changelog:
7004 * Stuff I had put in the ipplib.py changelog:
7003
7005
7004 Changes to InteractiveShell:
7006 Changes to InteractiveShell:
7005
7007
7006 - Made the usage message a parameter.
7008 - Made the usage message a parameter.
7007
7009
7008 - Require the name of the shell variable to be given. It's a bit
7010 - Require the name of the shell variable to be given. It's a bit
7009 of a hack, but allows the name 'shell' not to be hardwired in the
7011 of a hack, but allows the name 'shell' not to be hardwired in the
7010 magic (@) handler, which is problematic b/c it requires
7012 magic (@) handler, which is problematic b/c it requires
7011 polluting the global namespace with 'shell'. This in turn is
7013 polluting the global namespace with 'shell'. This in turn is
7012 fragile: if a user redefines a variable called shell, things
7014 fragile: if a user redefines a variable called shell, things
7013 break.
7015 break.
7014
7016
7015 - magic @: all functions available through @ need to be defined
7017 - magic @: all functions available through @ need to be defined
7016 as magic_<name>, even though they can be called simply as
7018 as magic_<name>, even though they can be called simply as
7017 @<name>. This allows the special command @magic to gather
7019 @<name>. This allows the special command @magic to gather
7018 information automatically about all existing magic functions,
7020 information automatically about all existing magic functions,
7019 even if they are run-time user extensions, by parsing the shell
7021 even if they are run-time user extensions, by parsing the shell
7020 instance __dict__ looking for special magic_ names.
7022 instance __dict__ looking for special magic_ names.
7021
7023
7022 - mainloop: added *two* local namespace parameters. This allows
7024 - mainloop: added *two* local namespace parameters. This allows
7023 the class to differentiate between parameters which were there
7025 the class to differentiate between parameters which were there
7024 before and after command line initialization was processed. This
7026 before and after command line initialization was processed. This
7025 way, later @who can show things loaded at startup by the
7027 way, later @who can show things loaded at startup by the
7026 user. This trick was necessary to make session saving/reloading
7028 user. This trick was necessary to make session saving/reloading
7027 really work: ideally after saving/exiting/reloading a session,
7029 really work: ideally after saving/exiting/reloading a session,
7028 *everything* should look the same, including the output of @who. I
7030 *everything* should look the same, including the output of @who. I
7029 was only able to make this work with this double namespace
7031 was only able to make this work with this double namespace
7030 trick.
7032 trick.
7031
7033
7032 - added a header to the logfile which allows (almost) full
7034 - added a header to the logfile which allows (almost) full
7033 session restoring.
7035 session restoring.
7034
7036
7035 - prepend lines beginning with @ or !, with a and log
7037 - prepend lines beginning with @ or !, with a and log
7036 them. Why? !lines: may be useful to know what you did @lines:
7038 them. Why? !lines: may be useful to know what you did @lines:
7037 they may affect session state. So when restoring a session, at
7039 they may affect session state. So when restoring a session, at
7038 least inform the user of their presence. I couldn't quite get
7040 least inform the user of their presence. I couldn't quite get
7039 them to properly re-execute, but at least the user is warned.
7041 them to properly re-execute, but at least the user is warned.
7040
7042
7041 * Started ChangeLog.
7043 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now