##// END OF EJS Templates
add zope profile
vivainio -
Show More
@@ -0,0 +1,320 b''
1 # -*- coding: utf-8 -*-
2 #
3 # File: ipy_profile_zope.py
4 #
5 # Copyright (c) InQuant GmbH
6 #
7 # An ipython profile for zope and plone. Some ideas
8 # stolen from http://www.tomster.org.
9 #
10 # German Free Software License (D-FSL)
11 #
12 # This Program may be used by anyone in accordance with the terms of the
13 # German Free Software License
14 # The License may be obtained under <http://www.d-fsl.org>.
15
16 __author__ = """Stefan Eletzhofer <stefan.eletzhofer@inquant.de>"""
17 __docformat__ = 'plaintext'
18 __revision__ = "$Revision$"
19
20 from IPython import ipapi
21 from IPython import Release
22 from types import StringType
23 import sys
24 import os
25 import textwrap
26
27 # The import below effectively obsoletes your old-style ipythonrc[.ini],
28 # so consider yourself warned!
29 # import ipy_defaults
30
31 _marker = []
32 def shasattr(obj, attr, acquire=False):
33 """ See Archetypes/utils.py
34 """
35 if not acquire:
36 obj = obj.aq_base
37 return getattr(obj, attr, _marker) is not _marker
38
39 class ZopeDebug(object):
40 def __init__(self):
41
42 self.instancehome = os.environ.get( "INSTANCE_HOME" )
43
44 configfile = os.environ.get( "CONFIG_FILE" )
45 if configfile is None and self.instancehome is not None:
46 configfile = os.path.join( self.instancehome, "etc", "zope.conf" )
47
48 if configfile is None:
49 raise RuntimeError( "CONFIG_FILE env not set" )
50
51 print "CONFIG_FILE=", configfile
52 print "INSTANCE_HOME=", self.instancehome
53
54 self.configfile = configfile
55
56 try:
57 from Zope2 import configure
58 except ImportError:
59 from Zope import configure
60
61 configure( configfile )
62
63 try:
64 import Zope2
65 app = Zope2.app()
66 except ImportError:
67 import Zope
68 app = Zope.app()
69
70 from Testing.makerequest import makerequest
71 self.app = makerequest( app )
72
73 try:
74 self._make_permissive()
75 print "Permissive security installed"
76 except:
77 print "Permissive security NOT installed"
78
79 self._pwd = self.portal or self.app
80
81 try:
82 from zope.component import getSiteManager
83 from zope.component import getGlobalSiteManager
84 from zope.app.component.hooks import setSite
85
86 if self.portal is not None:
87 setSite( self.portal )
88
89 gsm = getGlobalSiteManager()
90 sm = getSiteManager()
91
92 if sm is gsm:
93 print "ERROR SETTING SITE!"
94 except:
95 pass
96
97
98 @property
99 def utils(self):
100 class Utils(object):
101 commit = self.commit
102 sync = self.sync
103 objectInfo = self.objectInfo
104 ls = self.ls
105 pwd = self.pwd
106 cd = self.cd
107 su = self.su
108 getCatalogInfo = self.getCatalogInfo
109
110 @property
111 def cwd(self):
112 return self.pwd()
113
114 return Utils()
115
116 @property
117 def namespace(self):
118 return dict( utils=self.utils, app=self.app, portal=self.portal )
119
120 @property
121 def portal(self):
122 portals = self.app.objectValues( "Plone Site" )
123 if len(portals):
124 return portals[0]
125 else:
126 raise KeyError( "No Plone Site found.")
127
128 def pwd(self):
129 return self._pwd
130
131 def _make_permissive(self):
132 """
133 Make a permissive security manager with all rights. Hell,
134 we're developers, aren't we? Security is for whimps. :)
135 """
136 from Products.CMFCore.tests.base.security import PermissiveSecurityPolicy
137 import AccessControl
138 from AccessControl.SecurityManagement import newSecurityManager
139 from AccessControl.SecurityManager import setSecurityPolicy
140
141 _policy = PermissiveSecurityPolicy()
142 self.oldpolicy = setSecurityPolicy(_policy)
143 newSecurityManager(None, AccessControl.User.system)
144
145 def su(self, username):
146 """ Change to named user.
147 """
148 # TODO Make it easy to change back to permissive security.
149 user = self.portal.acl_users.getUser(username)
150 if not user:
151 print "Can't find %s in %s" % (username, self.portal.acl_users)
152 return
153
154 from AccessControl import ZopeSecurityPolicy
155 import AccessControl
156 from AccessControl.SecurityManagement import newSecurityManager, getSecurityManager
157 from AccessControl.SecurityManager import setSecurityPolicy
158
159 _policy = ZopeSecurityPolicy
160 self.oldpolicy = setSecurityPolicy(_policy)
161 wrapped_user = user.__of__(self.portal.acl_users)
162 newSecurityManager(None, user)
163 print 'User changed.'
164 return getSecurityManager().getUser()
165
166 def getCatalogInfo(self, obj=None, catalog='portal_catalog', query=None, sort_on='created', sort_order='reverse' ):
167 """ Inspect portal_catalog. Pass an object or object id for a
168 default query on that object, or pass an explicit query.
169 """
170 if obj and query:
171 print "Ignoring %s, using query." % obj
172
173 catalog = self.portal.get(catalog)
174 if not catalog:
175 return 'No catalog'
176
177 indexes = catalog._catalog.indexes
178 if not query:
179 if type(obj) is StringType:
180 cwd = self.pwd()
181 obj = cwd.unrestrictedTraverse( obj )
182 # If the default in the signature is mutable, its value will
183 # persist across invocations.
184 query = {}
185 if indexes.get('path'):
186 from string import join
187 path = join(obj.getPhysicalPath(), '/')
188 query.update({'path': path})
189 if indexes.get('getID'):
190 query.update({'getID': obj.id, })
191 if indexes.get('UID') and shasattr(obj, 'UID'):
192 query.update({'UID': obj.UID(), })
193 if indexes.get(sort_on):
194 query.update({'sort_on': sort_on, 'sort_order': sort_order})
195 if not query:
196 return 'Empty query'
197 results = catalog(**query)
198
199 result_info = []
200 for r in results:
201 rid = r.getRID()
202 if rid:
203 result_info.append(
204 {'path': catalog.getpath(rid),
205 'metadata': catalog.getMetadataForRID(rid),
206 'indexes': catalog.getIndexDataForRID(rid), }
207 )
208 else:
209 result_info.append({'missing': rid})
210
211 if len(result_info) == 1:
212 return result_info[0]
213 return result_info
214
215 def commit(self):
216 """
217 Commit the transaction.
218 """
219 try:
220 import transaction
221 transaction.get().commit()
222 except ImportError:
223 get_transaction().commit()
224
225 def sync(self):
226 """
227 Sync the app's view of the zodb.
228 """
229 self.app._p_jar.sync()
230
231 def objectInfo( self, o ):
232 """
233 Return a descriptive string of an object
234 """
235 Title = ""
236 t = getattr( o, 'Title', None )
237 if t:
238 Title = t()
239 return {'id': o.getId(),
240 'Title': Title,
241 'portal_type': getattr( o, 'portal_type', o.meta_type),
242 'folderish': o.isPrincipiaFolderish
243 }
244
245 def cd( self, path ):
246 """
247 Change current dir to a specific folder.
248
249 cd( ".." )
250 cd( "/plone/Members/admin" )
251 cd( portal.Members.admin )
252 etc.
253 """
254 if type(path) is not StringType:
255 path = '/'.join(path.getPhysicalPath())
256 cwd = self.pwd()
257 x = cwd.unrestrictedTraverse( path )
258 if x is None:
259 raise KeyError( "Can't cd to %s" % path )
260
261 print "%s -> %s" % ( self.pwd().getId(), x.getId() )
262 self._pwd = x
263
264 def ls( self, x=None ):
265 """
266 List object(s)
267 """
268 if type(x) is StringType:
269 cwd = self.pwd()
270 x = cwd.unrestrictedTraverse( x )
271 if x is None:
272 x = self.pwd()
273 if x.isPrincipiaFolderish:
274 return [self.objectInfo(o) for id, o in x.objectItems()]
275 else:
276 return self.objectInfo( x )
277
278 zope_debug = None
279
280 def ipy_set_trace():
281 import IPython; IPython.Debugger.Pdb().set_trace()
282
283 def main():
284 global zope_debug
285 ip = ipapi.get()
286 o = ip.options
287 # autocall to "full" mode (smart mode is default, I like full mode)
288
289 SOFTWARE_HOME = os.environ.get( "SOFTWARE_HOME" )
290 sys.path.append( SOFTWARE_HOME )
291 print "SOFTWARE_HOME=%s\n" % SOFTWARE_HOME
292
293 zope_debug = ZopeDebug()
294
295 # <HACK ALERT>
296 import pdb;
297 pdb.set_trace = ipy_set_trace
298 # </HACK ALERT>
299
300 # I like my banner minimal.
301 o.banner = "ZOPE Py %s IPy %s\n" % (sys.version.split('\n')[0],Release.version)
302
303 print textwrap.dedent("""\
304 ZOPE mode iPython shell.
305
306 Bound names:
307 app
308 portal
309 utils.{ %s }
310
311 Uses the $SOFTWARE_HOME and $CONFIG_FILE environment
312 variables.
313 """ % ( ",".join([ x for x in dir(zope_debug.utils) if not x.startswith("_") ] ) ) )
314
315
316 ip.user_ns.update( zope_debug.namespace )
317
318
319 main()
320 # vim: set ft=python ts=4 sw=4 expandtab :
@@ -1,7073 +1,7077 b''
1 2007-09-04 Ville Vainio <vivainio@gmail.com>
2
3 * ipy_profile_zope.py: add zope profile, by Stefan Eletzhofer.
4
1 2007-09-03 Ville Vainio <vivainio@gmail.com>
5 2007-09-03 Ville Vainio <vivainio@gmail.com>
2
6
3 * Magic.py: %time now passes expression through prefilter,
7 * Magic.py: %time now passes expression through prefilter,
4 allowing IPython syntax.
8 allowing IPython syntax.
5
9
6 2007-09-01 Ville Vainio <vivainio@gmail.com>
10 2007-09-01 Ville Vainio <vivainio@gmail.com>
7
11
8 * ipmaker.py: Always show full traceback when newstyle config fails
12 * ipmaker.py: Always show full traceback when newstyle config fails
9
13
10 2007-08-27 Ville Vainio <vivainio@gmail.com>
14 2007-08-27 Ville Vainio <vivainio@gmail.com>
11
15
12 * Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
16 * Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
13
17
14 2007-08-26 Ville Vainio <vivainio@gmail.com>
18 2007-08-26 Ville Vainio <vivainio@gmail.com>
15
19
16 * ipmaker.py: Command line args have the highest priority again
20 * ipmaker.py: Command line args have the highest priority again
17
21
18 * iplib.py, ipmaker.py: -i command line argument now behaves as in
22 * iplib.py, ipmaker.py: -i command line argument now behaves as in
19 normal python, i.e. leaves the IPython session running after -c
23 normal python, i.e. leaves the IPython session running after -c
20 command or running a batch file from command line.
24 command or running a batch file from command line.
21
25
22 2007-08-22 Ville Vainio <vivainio@gmail.com>
26 2007-08-22 Ville Vainio <vivainio@gmail.com>
23
27
24 * iplib.py: no extra empty (last) line in raw hist w/ multiline
28 * iplib.py: no extra empty (last) line in raw hist w/ multiline
25 statements
29 statements
26
30
27 * logger.py: Fix bug where blank lines in history were not
31 * logger.py: Fix bug where blank lines in history were not
28 added until AFTER adding the current line; translated and raw
32 added until AFTER adding the current line; translated and raw
29 history should finally be in sync with prompt now.
33 history should finally be in sync with prompt now.
30
34
31 * ipy_completers.py: quick_completer now makes it easy to create
35 * ipy_completers.py: quick_completer now makes it easy to create
32 trivial custom completers
36 trivial custom completers
33
37
34 * clearcmd.py: shadow history compression & erasing, fixed input hist
38 * clearcmd.py: shadow history compression & erasing, fixed input hist
35 clearing.
39 clearing.
36
40
37 * envpersist.py, history.py: %env (sh profile only), %hist completers
41 * envpersist.py, history.py: %env (sh profile only), %hist completers
38
42
39 * genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
43 * genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
40 term title now include the drive letter, and always use / instead of
44 term title now include the drive letter, and always use / instead of
41 os.sep (as per recommended approach for win32 ipython in general).
45 os.sep (as per recommended approach for win32 ipython in general).
42
46
43 * ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
47 * ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
44 plain python scripts from ipykit command line by running
48 plain python scripts from ipykit command line by running
45 "py myscript.py", even w/o installed python.
49 "py myscript.py", even w/o installed python.
46
50
47 2007-08-21 Ville Vainio <vivainio@gmail.com>
51 2007-08-21 Ville Vainio <vivainio@gmail.com>
48
52
49 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
53 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
50 (for backwards compatibility)
54 (for backwards compatibility)
51
55
52 * history.py: switch back to %hist -t from %hist -r as default.
56 * history.py: switch back to %hist -t from %hist -r as default.
53 At least until raw history is fixed for good.
57 At least until raw history is fixed for good.
54
58
55 2007-08-20 Ville Vainio <vivainio@gmail.com>
59 2007-08-20 Ville Vainio <vivainio@gmail.com>
56
60
57 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
61 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
58 locate alias redeclarations etc. Also, avoid handling
62 locate alias redeclarations etc. Also, avoid handling
59 _ip.IP.alias_table directly, prefer using _ip.defalias.
63 _ip.IP.alias_table directly, prefer using _ip.defalias.
60
64
61
65
62 2007-08-15 Ville Vainio <vivainio@gmail.com>
66 2007-08-15 Ville Vainio <vivainio@gmail.com>
63
67
64 * prefilter.py: ! is now always served first
68 * prefilter.py: ! is now always served first
65
69
66 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
70 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
67
71
68 * IPython/iplib.py (safe_execfile): fix the SystemExit
72 * IPython/iplib.py (safe_execfile): fix the SystemExit
69 auto-suppression code to work in Python2.4 (the internal structure
73 auto-suppression code to work in Python2.4 (the internal structure
70 of that exception changed and I'd only tested the code with 2.5).
74 of that exception changed and I'd only tested the code with 2.5).
71 Bug reported by a SciPy attendee.
75 Bug reported by a SciPy attendee.
72
76
73 2007-08-13 Ville Vainio <vivainio@gmail.com>
77 2007-08-13 Ville Vainio <vivainio@gmail.com>
74
78
75 * prefilter.py: reverted !c:/bin/foo fix, made % in
79 * prefilter.py: reverted !c:/bin/foo fix, made % in
76 multiline specials work again
80 multiline specials work again
77
81
78 2007-08-13 Ville Vainio <vivainio@gmail.com>
82 2007-08-13 Ville Vainio <vivainio@gmail.com>
79
83
80 * prefilter.py: Take more care to special-case !, so that
84 * prefilter.py: Take more care to special-case !, so that
81 !c:/bin/foo.exe works.
85 !c:/bin/foo.exe works.
82
86
83 * setup.py: if we are building eggs, strip all docs and
87 * setup.py: if we are building eggs, strip all docs and
84 examples (it doesn't make sense to bytecompile examples,
88 examples (it doesn't make sense to bytecompile examples,
85 and docs would be in an awkward place anyway).
89 and docs would be in an awkward place anyway).
86
90
87 * Ryan Krauss' patch fixes start menu shortcuts when IPython
91 * Ryan Krauss' patch fixes start menu shortcuts when IPython
88 is installed into a directory that has spaces in the name.
92 is installed into a directory that has spaces in the name.
89
93
90 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
94 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
91
95
92 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
96 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
93 doctest profile and %doctest_mode, so they actually generate the
97 doctest profile and %doctest_mode, so they actually generate the
94 blank lines needed by doctest to separate individual tests.
98 blank lines needed by doctest to separate individual tests.
95
99
96 * IPython/iplib.py (safe_execfile): modify so that running code
100 * IPython/iplib.py (safe_execfile): modify so that running code
97 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
101 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
98 doesn't get a printed traceback. Any other value in sys.exit(),
102 doesn't get a printed traceback. Any other value in sys.exit(),
99 including the empty call, still generates a traceback. This
103 including the empty call, still generates a traceback. This
100 enables use of %run without having to pass '-e' for codes that
104 enables use of %run without having to pass '-e' for codes that
101 correctly set the exit status flag.
105 correctly set the exit status flag.
102
106
103 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
107 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
104
108
105 * IPython/iplib.py (InteractiveShell.post_config_initialization):
109 * IPython/iplib.py (InteractiveShell.post_config_initialization):
106 fix problems with doctests failing when run inside IPython due to
110 fix problems with doctests failing when run inside IPython due to
107 IPython's modifications of sys.displayhook.
111 IPython's modifications of sys.displayhook.
108
112
109 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
113 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
110
114
111 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
115 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
112 a string with names.
116 a string with names.
113
117
114 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
118 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
115
119
116 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
120 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
117 magic to toggle on/off the doctest pasting support without having
121 magic to toggle on/off the doctest pasting support without having
118 to leave a session to switch to a separate profile.
122 to leave a session to switch to a separate profile.
119
123
120 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
124 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
121
125
122 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
126 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
123 introduce a blank line between inputs, to conform to doctest
127 introduce a blank line between inputs, to conform to doctest
124 requirements.
128 requirements.
125
129
126 * IPython/OInspect.py (Inspector.pinfo): fix another part where
130 * IPython/OInspect.py (Inspector.pinfo): fix another part where
127 auto-generated docstrings for new-style classes were showing up.
131 auto-generated docstrings for new-style classes were showing up.
128
132
129 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
133 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
130
134
131 * api_changes: Add new file to track backward-incompatible
135 * api_changes: Add new file to track backward-incompatible
132 user-visible changes.
136 user-visible changes.
133
137
134 2007-08-06 Ville Vainio <vivainio@gmail.com>
138 2007-08-06 Ville Vainio <vivainio@gmail.com>
135
139
136 * ipmaker.py: fix bug where user_config_ns didn't exist at all
140 * ipmaker.py: fix bug where user_config_ns didn't exist at all
137 before all the config files were handled.
141 before all the config files were handled.
138
142
139 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
143 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
140
144
141 * IPython/irunner.py (RunnerFactory): Add new factory class for
145 * IPython/irunner.py (RunnerFactory): Add new factory class for
142 creating reusable runners based on filenames.
146 creating reusable runners based on filenames.
143
147
144 * IPython/Extensions/ipy_profile_doctest.py: New profile for
148 * IPython/Extensions/ipy_profile_doctest.py: New profile for
145 doctest support. It sets prompts/exceptions as similar to
149 doctest support. It sets prompts/exceptions as similar to
146 standard Python as possible, so that ipython sessions in this
150 standard Python as possible, so that ipython sessions in this
147 profile can be easily pasted as doctests with minimal
151 profile can be easily pasted as doctests with minimal
148 modifications. It also enables pasting of doctests from external
152 modifications. It also enables pasting of doctests from external
149 sources (even if they have leading whitespace), so that you can
153 sources (even if they have leading whitespace), so that you can
150 rerun doctests from existing sources.
154 rerun doctests from existing sources.
151
155
152 * IPython/iplib.py (_prefilter): fix a buglet where after entering
156 * IPython/iplib.py (_prefilter): fix a buglet where after entering
153 some whitespace, the prompt would become a continuation prompt
157 some whitespace, the prompt would become a continuation prompt
154 with no way of exiting it other than Ctrl-C. This fix brings us
158 with no way of exiting it other than Ctrl-C. This fix brings us
155 into conformity with how the default python prompt works.
159 into conformity with how the default python prompt works.
156
160
157 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
161 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
158 Add support for pasting not only lines that start with '>>>', but
162 Add support for pasting not only lines that start with '>>>', but
159 also with ' >>>'. That is, arbitrary whitespace can now precede
163 also with ' >>>'. That is, arbitrary whitespace can now precede
160 the prompts. This makes the system useful for pasting doctests
164 the prompts. This makes the system useful for pasting doctests
161 from docstrings back into a normal session.
165 from docstrings back into a normal session.
162
166
163 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
167 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
164
168
165 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
169 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
166 r1357, which had killed multiple invocations of an embedded
170 r1357, which had killed multiple invocations of an embedded
167 ipython (this means that example-embed has been broken for over 1
171 ipython (this means that example-embed has been broken for over 1
168 year!!!). Rather than possibly breaking the batch stuff for which
172 year!!!). Rather than possibly breaking the batch stuff for which
169 the code in iplib.py/interact was introduced, I worked around the
173 the code in iplib.py/interact was introduced, I worked around the
170 problem in the embedding class in Shell.py. We really need a
174 problem in the embedding class in Shell.py. We really need a
171 bloody test suite for this code, I'm sick of finding stuff that
175 bloody test suite for this code, I'm sick of finding stuff that
172 used to work breaking left and right every time I use an old
176 used to work breaking left and right every time I use an old
173 feature I hadn't touched in a few months.
177 feature I hadn't touched in a few months.
174 (kill_embedded): Add a new magic that only shows up in embedded
178 (kill_embedded): Add a new magic that only shows up in embedded
175 mode, to allow users to permanently deactivate an embedded instance.
179 mode, to allow users to permanently deactivate an embedded instance.
176
180
177 2007-08-01 Ville Vainio <vivainio@gmail.com>
181 2007-08-01 Ville Vainio <vivainio@gmail.com>
178
182
179 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
183 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
180 history gets out of sync on runlines (e.g. when running macros).
184 history gets out of sync on runlines (e.g. when running macros).
181
185
182 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
186 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
183
187
184 * IPython/Magic.py (magic_colors): fix win32-related error message
188 * IPython/Magic.py (magic_colors): fix win32-related error message
185 that could appear under *nix when readline was missing. Patch by
189 that could appear under *nix when readline was missing. Patch by
186 Scott Jackson, closes #175.
190 Scott Jackson, closes #175.
187
191
188 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
192 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
189
193
190 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
194 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
191 completer that it traits-aware, so that traits objects don't show
195 completer that it traits-aware, so that traits objects don't show
192 all of their internal attributes all the time.
196 all of their internal attributes all the time.
193
197
194 * IPython/genutils.py (dir2): moved this code from inside
198 * IPython/genutils.py (dir2): moved this code from inside
195 completer.py to expose it publicly, so I could use it in the
199 completer.py to expose it publicly, so I could use it in the
196 wildcards bugfix.
200 wildcards bugfix.
197
201
198 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
202 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
199 Stefan with Traits.
203 Stefan with Traits.
200
204
201 * IPython/completer.py (Completer.attr_matches): change internal
205 * IPython/completer.py (Completer.attr_matches): change internal
202 var name from 'object' to 'obj', since 'object' is now a builtin
206 var name from 'object' to 'obj', since 'object' is now a builtin
203 and this can lead to weird bugs if reusing this code elsewhere.
207 and this can lead to weird bugs if reusing this code elsewhere.
204
208
205 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
209 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
206
210
207 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
211 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
208 'foo?' and update the code to prevent printing of default
212 'foo?' and update the code to prevent printing of default
209 docstrings that started appearing after I added support for
213 docstrings that started appearing after I added support for
210 new-style classes. The approach I'm using isn't ideal (I just
214 new-style classes. The approach I'm using isn't ideal (I just
211 special-case those strings) but I'm not sure how to more robustly
215 special-case those strings) but I'm not sure how to more robustly
212 differentiate between truly user-written strings and Python's
216 differentiate between truly user-written strings and Python's
213 automatic ones.
217 automatic ones.
214
218
215 2007-07-09 Ville Vainio <vivainio@gmail.com>
219 2007-07-09 Ville Vainio <vivainio@gmail.com>
216
220
217 * completer.py: Applied Matthew Neeley's patch:
221 * completer.py: Applied Matthew Neeley's patch:
218 Dynamic attributes from trait_names and _getAttributeNames are added
222 Dynamic attributes from trait_names and _getAttributeNames are added
219 to the list of tab completions, but when this happens, the attribute
223 to the list of tab completions, but when this happens, the attribute
220 list is turned into a set, so the attributes are unordered when
224 list is turned into a set, so the attributes are unordered when
221 printed, which makes it hard to find the right completion. This patch
225 printed, which makes it hard to find the right completion. This patch
222 turns this set back into a list and sort it.
226 turns this set back into a list and sort it.
223
227
224 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
228 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
225
229
226 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
230 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
227 classes in various inspector functions.
231 classes in various inspector functions.
228
232
229 2007-06-28 Ville Vainio <vivainio@gmail.com>
233 2007-06-28 Ville Vainio <vivainio@gmail.com>
230
234
231 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
235 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
232 Implement "shadow" namespace, and callable aliases that reside there.
236 Implement "shadow" namespace, and callable aliases that reside there.
233 Use them by:
237 Use them by:
234
238
235 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
239 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
236
240
237 foo hello world
241 foo hello world
238 (gets translated to:)
242 (gets translated to:)
239 _sh.foo(r"""hello world""")
243 _sh.foo(r"""hello world""")
240
244
241 In practice, this kind of alias can take the role of a magic function
245 In practice, this kind of alias can take the role of a magic function
242
246
243 * New generic inspect_object, called on obj? and obj??
247 * New generic inspect_object, called on obj? and obj??
244
248
245 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
249 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
246
250
247 * IPython/ultraTB.py (findsource): fix a problem with
251 * IPython/ultraTB.py (findsource): fix a problem with
248 inspect.getfile that can cause crashes during traceback construction.
252 inspect.getfile that can cause crashes during traceback construction.
249
253
250 2007-06-14 Ville Vainio <vivainio@gmail.com>
254 2007-06-14 Ville Vainio <vivainio@gmail.com>
251
255
252 * iplib.py (handle_auto): Try to use ascii for printing "--->"
256 * iplib.py (handle_auto): Try to use ascii for printing "--->"
253 autocall rewrite indication, becausesometimes unicode fails to print
257 autocall rewrite indication, becausesometimes unicode fails to print
254 properly (and you get ' - - - '). Use plain uncoloured ---> for
258 properly (and you get ' - - - '). Use plain uncoloured ---> for
255 unicode.
259 unicode.
256
260
257 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
261 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
258
262
259 . pickleshare 'hash' commands (hget, hset, hcompress,
263 . pickleshare 'hash' commands (hget, hset, hcompress,
260 hdict) for efficient shadow history storage.
264 hdict) for efficient shadow history storage.
261
265
262 2007-06-13 Ville Vainio <vivainio@gmail.com>
266 2007-06-13 Ville Vainio <vivainio@gmail.com>
263
267
264 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
268 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
265 Added kw arg 'interactive', tell whether vars should be visible
269 Added kw arg 'interactive', tell whether vars should be visible
266 with %whos.
270 with %whos.
267
271
268 2007-06-11 Ville Vainio <vivainio@gmail.com>
272 2007-06-11 Ville Vainio <vivainio@gmail.com>
269
273
270 * pspersistence.py, Magic.py, iplib.py: directory history now saved
274 * pspersistence.py, Magic.py, iplib.py: directory history now saved
271 to db
275 to db
272
276
273 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
277 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
274 Also, it exits IPython immediately after evaluating the command (just like
278 Also, it exits IPython immediately after evaluating the command (just like
275 std python)
279 std python)
276
280
277 2007-06-05 Walter Doerwald <walter@livinglogic.de>
281 2007-06-05 Walter Doerwald <walter@livinglogic.de>
278
282
279 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
283 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
280 Python string and captures the output. (Idea and original patch by
284 Python string and captures the output. (Idea and original patch by
281 StοΏ½fan van der Walt)
285 StοΏ½fan van der Walt)
282
286
283 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
287 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
284
288
285 * IPython/ultraTB.py (VerboseTB.text): update printing of
289 * IPython/ultraTB.py (VerboseTB.text): update printing of
286 exception types for Python 2.5 (now all exceptions in the stdlib
290 exception types for Python 2.5 (now all exceptions in the stdlib
287 are new-style classes).
291 are new-style classes).
288
292
289 2007-05-31 Walter Doerwald <walter@livinglogic.de>
293 2007-05-31 Walter Doerwald <walter@livinglogic.de>
290
294
291 * IPython/Extensions/igrid.py: Add new commands refresh and
295 * IPython/Extensions/igrid.py: Add new commands refresh and
292 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
296 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
293 the iterator once (refresh) or after every x seconds (refresh_timer).
297 the iterator once (refresh) or after every x seconds (refresh_timer).
294 Add a working implementation of "searchexpression", where the text
298 Add a working implementation of "searchexpression", where the text
295 entered is not the text to search for, but an expression that must
299 entered is not the text to search for, but an expression that must
296 be true. Added display of shortcuts to the menu. Added commands "pickinput"
300 be true. Added display of shortcuts to the menu. Added commands "pickinput"
297 and "pickinputattr" that put the object or attribute under the cursor
301 and "pickinputattr" that put the object or attribute under the cursor
298 in the input line. Split the statusbar to be able to display the currently
302 in the input line. Split the statusbar to be able to display the currently
299 active refresh interval. (Patch by Nik Tautenhahn)
303 active refresh interval. (Patch by Nik Tautenhahn)
300
304
301 2007-05-29 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
305 2007-05-29 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
302
306
303 * fixing set_term_title to use ctypes as default
307 * fixing set_term_title to use ctypes as default
304
308
305 * fixing set_term_title fallback to work when curent dir
309 * fixing set_term_title fallback to work when curent dir
306 is on a windows network share
310 is on a windows network share
307
311
308 2007-05-28 Ville Vainio <vivainio@gmail.com>
312 2007-05-28 Ville Vainio <vivainio@gmail.com>
309
313
310 * %cpaste: strip + with > from left (diffs).
314 * %cpaste: strip + with > from left (diffs).
311
315
312 * iplib.py: Fix crash when readline not installed
316 * iplib.py: Fix crash when readline not installed
313
317
314 2007-05-26 Ville Vainio <vivainio@gmail.com>
318 2007-05-26 Ville Vainio <vivainio@gmail.com>
315
319
316 * generics.py: intruduce easy to extend result_display generic
320 * generics.py: intruduce easy to extend result_display generic
317 function (using simplegeneric.py).
321 function (using simplegeneric.py).
318
322
319 * Fixed the append functionality of %set.
323 * Fixed the append functionality of %set.
320
324
321 2007-05-25 Ville Vainio <vivainio@gmail.com>
325 2007-05-25 Ville Vainio <vivainio@gmail.com>
322
326
323 * New magic: %rep (fetch / run old commands from history)
327 * New magic: %rep (fetch / run old commands from history)
324
328
325 * New extension: mglob (%mglob magic), for powerful glob / find /filter
329 * New extension: mglob (%mglob magic), for powerful glob / find /filter
326 like functionality
330 like functionality
327
331
328 % maghistory.py: %hist -g PATTERM greps the history for pattern
332 % maghistory.py: %hist -g PATTERM greps the history for pattern
329
333
330 2007-05-24 Walter Doerwald <walter@livinglogic.de>
334 2007-05-24 Walter Doerwald <walter@livinglogic.de>
331
335
332 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
336 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
333 browse the IPython input history
337 browse the IPython input history
334
338
335 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
339 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
336 (mapped to "i") can be used to put the object under the curser in the input
340 (mapped to "i") can be used to put the object under the curser in the input
337 line. pickinputattr (mapped to "I") does the same for the attribute under
341 line. pickinputattr (mapped to "I") does the same for the attribute under
338 the cursor.
342 the cursor.
339
343
340 2007-05-24 Ville Vainio <vivainio@gmail.com>
344 2007-05-24 Ville Vainio <vivainio@gmail.com>
341
345
342 * Grand magic cleansing (changeset [2380]):
346 * Grand magic cleansing (changeset [2380]):
343
347
344 * Introduce ipy_legacy.py where the following magics were
348 * Introduce ipy_legacy.py where the following magics were
345 moved:
349 moved:
346
350
347 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
351 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
348
352
349 If you need them, either use default profile or "import ipy_legacy"
353 If you need them, either use default profile or "import ipy_legacy"
350 in your ipy_user_conf.py
354 in your ipy_user_conf.py
351
355
352 * Move sh and scipy profile to Extensions from UserConfig. this implies
356 * Move sh and scipy profile to Extensions from UserConfig. this implies
353 you should not edit them, but you don't need to run %upgrade when
357 you should not edit them, but you don't need to run %upgrade when
354 upgrading IPython anymore.
358 upgrading IPython anymore.
355
359
356 * %hist/%history now operates in "raw" mode by default. To get the old
360 * %hist/%history now operates in "raw" mode by default. To get the old
357 behaviour, run '%hist -n' (native mode).
361 behaviour, run '%hist -n' (native mode).
358
362
359 * split ipy_stock_completers.py to ipy_stock_completers.py and
363 * split ipy_stock_completers.py to ipy_stock_completers.py and
360 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
364 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
361 installed as default.
365 installed as default.
362
366
363 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
367 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
364 handling.
368 handling.
365
369
366 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
370 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
367 input if readline is available.
371 input if readline is available.
368
372
369 2007-05-23 Ville Vainio <vivainio@gmail.com>
373 2007-05-23 Ville Vainio <vivainio@gmail.com>
370
374
371 * macro.py: %store uses __getstate__ properly
375 * macro.py: %store uses __getstate__ properly
372
376
373 * exesetup.py: added new setup script for creating
377 * exesetup.py: added new setup script for creating
374 standalone IPython executables with py2exe (i.e.
378 standalone IPython executables with py2exe (i.e.
375 no python installation required).
379 no python installation required).
376
380
377 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
381 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
378 its place.
382 its place.
379
383
380 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
384 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
381
385
382 2007-05-21 Ville Vainio <vivainio@gmail.com>
386 2007-05-21 Ville Vainio <vivainio@gmail.com>
383
387
384 * platutil_win32.py (set_term_title): handle
388 * platutil_win32.py (set_term_title): handle
385 failure of 'title' system call properly.
389 failure of 'title' system call properly.
386
390
387 2007-05-17 Walter Doerwald <walter@livinglogic.de>
391 2007-05-17 Walter Doerwald <walter@livinglogic.de>
388
392
389 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
393 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
390 (Bug detected by Paul Mueller).
394 (Bug detected by Paul Mueller).
391
395
392 2007-05-16 Ville Vainio <vivainio@gmail.com>
396 2007-05-16 Ville Vainio <vivainio@gmail.com>
393
397
394 * ipy_profile_sci.py, ipython_win_post_install.py: Create
398 * ipy_profile_sci.py, ipython_win_post_install.py: Create
395 new "sci" profile, effectively a modern version of the old
399 new "sci" profile, effectively a modern version of the old
396 "scipy" profile (which is now slated for deprecation).
400 "scipy" profile (which is now slated for deprecation).
397
401
398 2007-05-15 Ville Vainio <vivainio@gmail.com>
402 2007-05-15 Ville Vainio <vivainio@gmail.com>
399
403
400 * pycolorize.py, pycolor.1: Paul Mueller's patches that
404 * pycolorize.py, pycolor.1: Paul Mueller's patches that
401 make pycolorize read input from stdin when run without arguments.
405 make pycolorize read input from stdin when run without arguments.
402
406
403 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
407 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
404
408
405 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
409 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
406 it in sh profile (instead of ipy_system_conf.py).
410 it in sh profile (instead of ipy_system_conf.py).
407
411
408 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
412 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
409 aliases are now lower case on windows (MyCommand.exe => mycommand).
413 aliases are now lower case on windows (MyCommand.exe => mycommand).
410
414
411 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
415 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
412 Macros are now callable objects that inherit from ipapi.IPyAutocall,
416 Macros are now callable objects that inherit from ipapi.IPyAutocall,
413 i.e. get autocalled regardless of system autocall setting.
417 i.e. get autocalled regardless of system autocall setting.
414
418
415 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
419 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
416
420
417 * IPython/rlineimpl.py: check for clear_history in readline and
421 * IPython/rlineimpl.py: check for clear_history in readline and
418 make it a dummy no-op if not available. This function isn't
422 make it a dummy no-op if not available. This function isn't
419 guaranteed to be in the API and appeared in Python 2.4, so we need
423 guaranteed to be in the API and appeared in Python 2.4, so we need
420 to check it ourselves. Also, clean up this file quite a bit.
424 to check it ourselves. Also, clean up this file quite a bit.
421
425
422 * ipython.1: update man page and full manual with information
426 * ipython.1: update man page and full manual with information
423 about threads (remove outdated warning). Closes #151.
427 about threads (remove outdated warning). Closes #151.
424
428
425 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
429 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
426
430
427 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
431 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
428 in trunk (note that this made it into the 0.8.1 release already,
432 in trunk (note that this made it into the 0.8.1 release already,
429 but the changelogs didn't get coordinated). Many thanks to Gael
433 but the changelogs didn't get coordinated). Many thanks to Gael
430 Varoquaux <gael.varoquaux-AT-normalesup.org>
434 Varoquaux <gael.varoquaux-AT-normalesup.org>
431
435
432 2007-05-09 *** Released version 0.8.1
436 2007-05-09 *** Released version 0.8.1
433
437
434 2007-05-10 Walter Doerwald <walter@livinglogic.de>
438 2007-05-10 Walter Doerwald <walter@livinglogic.de>
435
439
436 * IPython/Extensions/igrid.py: Incorporate html help into
440 * IPython/Extensions/igrid.py: Incorporate html help into
437 the module, so we don't have to search for the file.
441 the module, so we don't have to search for the file.
438
442
439 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
443 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
440
444
441 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
445 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
442
446
443 2007-04-30 Ville Vainio <vivainio@gmail.com>
447 2007-04-30 Ville Vainio <vivainio@gmail.com>
444
448
445 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
449 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
446 user has illegal (non-ascii) home directory name
450 user has illegal (non-ascii) home directory name
447
451
448 2007-04-27 Ville Vainio <vivainio@gmail.com>
452 2007-04-27 Ville Vainio <vivainio@gmail.com>
449
453
450 * platutils_win32.py: implement set_term_title for windows
454 * platutils_win32.py: implement set_term_title for windows
451
455
452 * Update version number
456 * Update version number
453
457
454 * ipy_profile_sh.py: more informative prompt (2 dir levels)
458 * ipy_profile_sh.py: more informative prompt (2 dir levels)
455
459
456 2007-04-26 Walter Doerwald <walter@livinglogic.de>
460 2007-04-26 Walter Doerwald <walter@livinglogic.de>
457
461
458 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
462 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
459 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
463 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
460 bug discovered by Ville).
464 bug discovered by Ville).
461
465
462 2007-04-26 Ville Vainio <vivainio@gmail.com>
466 2007-04-26 Ville Vainio <vivainio@gmail.com>
463
467
464 * Extensions/ipy_completers.py: Olivier's module completer now
468 * Extensions/ipy_completers.py: Olivier's module completer now
465 saves the list of root modules if it takes > 4 secs on the first run.
469 saves the list of root modules if it takes > 4 secs on the first run.
466
470
467 * Magic.py (%rehashx): %rehashx now clears the completer cache
471 * Magic.py (%rehashx): %rehashx now clears the completer cache
468
472
469
473
470 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
474 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
471
475
472 * ipython.el: fix incorrect color scheme, reported by Stefan.
476 * ipython.el: fix incorrect color scheme, reported by Stefan.
473 Closes #149.
477 Closes #149.
474
478
475 * IPython/PyColorize.py (Parser.format2): fix state-handling
479 * IPython/PyColorize.py (Parser.format2): fix state-handling
476 logic. I still don't like how that code handles state, but at
480 logic. I still don't like how that code handles state, but at
477 least now it should be correct, if inelegant. Closes #146.
481 least now it should be correct, if inelegant. Closes #146.
478
482
479 2007-04-25 Ville Vainio <vivainio@gmail.com>
483 2007-04-25 Ville Vainio <vivainio@gmail.com>
480
484
481 * Extensions/ipy_which.py: added extension for %which magic, works
485 * Extensions/ipy_which.py: added extension for %which magic, works
482 a lot like unix 'which' but also finds and expands aliases, and
486 a lot like unix 'which' but also finds and expands aliases, and
483 allows wildcards.
487 allows wildcards.
484
488
485 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
489 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
486 as opposed to returning nothing.
490 as opposed to returning nothing.
487
491
488 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
492 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
489 ipy_stock_completers on default profile, do import on sh profile.
493 ipy_stock_completers on default profile, do import on sh profile.
490
494
491 2007-04-22 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
495 2007-04-22 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
492
496
493 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
497 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
494 like ipython.py foo.py which raised a IndexError.
498 like ipython.py foo.py which raised a IndexError.
495
499
496 2007-04-21 Ville Vainio <vivainio@gmail.com>
500 2007-04-21 Ville Vainio <vivainio@gmail.com>
497
501
498 * Extensions/ipy_extutil.py: added extension to manage other ipython
502 * Extensions/ipy_extutil.py: added extension to manage other ipython
499 extensions. Now only supports 'ls' == list extensions.
503 extensions. Now only supports 'ls' == list extensions.
500
504
501 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
505 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
502
506
503 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
507 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
504 would prevent use of the exception system outside of a running
508 would prevent use of the exception system outside of a running
505 IPython instance.
509 IPython instance.
506
510
507 2007-04-20 Ville Vainio <vivainio@gmail.com>
511 2007-04-20 Ville Vainio <vivainio@gmail.com>
508
512
509 * Extensions/ipy_render.py: added extension for easy
513 * Extensions/ipy_render.py: added extension for easy
510 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
514 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
511 'Iptl' template notation,
515 'Iptl' template notation,
512
516
513 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
517 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
514 safer & faster 'import' completer.
518 safer & faster 'import' completer.
515
519
516 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
520 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
517 and _ip.defalias(name, command).
521 and _ip.defalias(name, command).
518
522
519 * Extensions/ipy_exportdb.py: New extension for exporting all the
523 * Extensions/ipy_exportdb.py: New extension for exporting all the
520 %store'd data in a portable format (normal ipapi calls like
524 %store'd data in a portable format (normal ipapi calls like
521 defmacro() etc.)
525 defmacro() etc.)
522
526
523 2007-04-19 Ville Vainio <vivainio@gmail.com>
527 2007-04-19 Ville Vainio <vivainio@gmail.com>
524
528
525 * upgrade_dir.py: skip junk files like *.pyc
529 * upgrade_dir.py: skip junk files like *.pyc
526
530
527 * Release.py: version number to 0.8.1
531 * Release.py: version number to 0.8.1
528
532
529 2007-04-18 Ville Vainio <vivainio@gmail.com>
533 2007-04-18 Ville Vainio <vivainio@gmail.com>
530
534
531 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
535 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
532 and later on win32.
536 and later on win32.
533
537
534 2007-04-16 Ville Vainio <vivainio@gmail.com>
538 2007-04-16 Ville Vainio <vivainio@gmail.com>
535
539
536 * iplib.py (showtraceback): Do not crash when running w/o readline.
540 * iplib.py (showtraceback): Do not crash when running w/o readline.
537
541
538 2007-04-12 Walter Doerwald <walter@livinglogic.de>
542 2007-04-12 Walter Doerwald <walter@livinglogic.de>
539
543
540 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
544 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
541 sorted (case sensitive with files and dirs mixed).
545 sorted (case sensitive with files and dirs mixed).
542
546
543 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
547 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
544
548
545 * IPython/Release.py (version): Open trunk for 0.8.1 development.
549 * IPython/Release.py (version): Open trunk for 0.8.1 development.
546
550
547 2007-04-10 *** Released version 0.8.0
551 2007-04-10 *** Released version 0.8.0
548
552
549 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
553 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
550
554
551 * Tag 0.8.0 for release.
555 * Tag 0.8.0 for release.
552
556
553 * IPython/iplib.py (reloadhist): add API function to cleanly
557 * IPython/iplib.py (reloadhist): add API function to cleanly
554 reload the readline history, which was growing inappropriately on
558 reload the readline history, which was growing inappropriately on
555 every %run call.
559 every %run call.
556
560
557 * win32_manual_post_install.py (run): apply last part of Nicolas
561 * win32_manual_post_install.py (run): apply last part of Nicolas
558 Pernetty's patch (I'd accidentally applied it in a different
562 Pernetty's patch (I'd accidentally applied it in a different
559 directory and this particular file didn't get patched).
563 directory and this particular file didn't get patched).
560
564
561 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
565 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
562
566
563 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
567 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
564 find the main thread id and use the proper API call. Thanks to
568 find the main thread id and use the proper API call. Thanks to
565 Stefan for the fix.
569 Stefan for the fix.
566
570
567 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
571 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
568 unit tests to reflect fixed ticket #52, and add more tests sent by
572 unit tests to reflect fixed ticket #52, and add more tests sent by
569 him.
573 him.
570
574
571 * IPython/iplib.py (raw_input): restore the readline completer
575 * IPython/iplib.py (raw_input): restore the readline completer
572 state on every input, in case third-party code messed it up.
576 state on every input, in case third-party code messed it up.
573 (_prefilter): revert recent addition of early-escape checks which
577 (_prefilter): revert recent addition of early-escape checks which
574 prevent many valid alias calls from working.
578 prevent many valid alias calls from working.
575
579
576 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
580 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
577 flag for sigint handler so we don't run a full signal() call on
581 flag for sigint handler so we don't run a full signal() call on
578 each runcode access.
582 each runcode access.
579
583
580 * IPython/Magic.py (magic_whos): small improvement to diagnostic
584 * IPython/Magic.py (magic_whos): small improvement to diagnostic
581 message.
585 message.
582
586
583 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
587 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
584
588
585 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
589 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
586 asynchronous exceptions working, i.e., Ctrl-C can actually
590 asynchronous exceptions working, i.e., Ctrl-C can actually
587 interrupt long-running code in the multithreaded shells.
591 interrupt long-running code in the multithreaded shells.
588
592
589 This is using Tomer Filiba's great ctypes-based trick:
593 This is using Tomer Filiba's great ctypes-based trick:
590 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
594 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
591 this in the past, but hadn't been able to make it work before. So
595 this in the past, but hadn't been able to make it work before. So
592 far it looks like it's actually running, but this needs more
596 far it looks like it's actually running, but this needs more
593 testing. If it really works, I'll be *very* happy, and we'll owe
597 testing. If it really works, I'll be *very* happy, and we'll owe
594 a huge thank you to Tomer. My current implementation is ugly,
598 a huge thank you to Tomer. My current implementation is ugly,
595 hackish and uses nasty globals, but I don't want to try and clean
599 hackish and uses nasty globals, but I don't want to try and clean
596 anything up until we know if it actually works.
600 anything up until we know if it actually works.
597
601
598 NOTE: this feature needs ctypes to work. ctypes is included in
602 NOTE: this feature needs ctypes to work. ctypes is included in
599 Python2.5, but 2.4 users will need to manually install it. This
603 Python2.5, but 2.4 users will need to manually install it. This
600 feature makes multi-threaded shells so much more usable that it's
604 feature makes multi-threaded shells so much more usable that it's
601 a minor price to pay (ctypes is very easy to install, already a
605 a minor price to pay (ctypes is very easy to install, already a
602 requirement for win32 and available in major linux distros).
606 requirement for win32 and available in major linux distros).
603
607
604 2007-04-04 Ville Vainio <vivainio@gmail.com>
608 2007-04-04 Ville Vainio <vivainio@gmail.com>
605
609
606 * Extensions/ipy_completers.py, ipy_stock_completers.py:
610 * Extensions/ipy_completers.py, ipy_stock_completers.py:
607 Moved implementations of 'bundled' completers to ipy_completers.py,
611 Moved implementations of 'bundled' completers to ipy_completers.py,
608 they are only enabled in ipy_stock_completers.py.
612 they are only enabled in ipy_stock_completers.py.
609
613
610 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
614 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
611
615
612 * IPython/PyColorize.py (Parser.format2): Fix identation of
616 * IPython/PyColorize.py (Parser.format2): Fix identation of
613 colorzied output and return early if color scheme is NoColor, to
617 colorzied output and return early if color scheme is NoColor, to
614 avoid unnecessary and expensive tokenization. Closes #131.
618 avoid unnecessary and expensive tokenization. Closes #131.
615
619
616 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
620 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
617
621
618 * IPython/Debugger.py: disable the use of pydb version 1.17. It
622 * IPython/Debugger.py: disable the use of pydb version 1.17. It
619 has a critical bug (a missing import that makes post-mortem not
623 has a critical bug (a missing import that makes post-mortem not
620 work at all). Unfortunately as of this time, this is the version
624 work at all). Unfortunately as of this time, this is the version
621 shipped with Ubuntu Edgy, so quite a few people have this one. I
625 shipped with Ubuntu Edgy, so quite a few people have this one. I
622 hope Edgy will update to a more recent package.
626 hope Edgy will update to a more recent package.
623
627
624 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
628 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
625
629
626 * IPython/iplib.py (_prefilter): close #52, second part of a patch
630 * IPython/iplib.py (_prefilter): close #52, second part of a patch
627 set by Stefan (only the first part had been applied before).
631 set by Stefan (only the first part had been applied before).
628
632
629 * IPython/Extensions/ipy_stock_completers.py (module_completer):
633 * IPython/Extensions/ipy_stock_completers.py (module_completer):
630 remove usage of the dangerous pkgutil.walk_packages(). See
634 remove usage of the dangerous pkgutil.walk_packages(). See
631 details in comments left in the code.
635 details in comments left in the code.
632
636
633 * IPython/Magic.py (magic_whos): add support for numpy arrays
637 * IPython/Magic.py (magic_whos): add support for numpy arrays
634 similar to what we had for Numeric.
638 similar to what we had for Numeric.
635
639
636 * IPython/completer.py (IPCompleter.complete): extend the
640 * IPython/completer.py (IPCompleter.complete): extend the
637 complete() call API to support completions by other mechanisms
641 complete() call API to support completions by other mechanisms
638 than readline. Closes #109.
642 than readline. Closes #109.
639
643
640 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
644 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
641 protect against a bug in Python's execfile(). Closes #123.
645 protect against a bug in Python's execfile(). Closes #123.
642
646
643 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
647 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
644
648
645 * IPython/iplib.py (split_user_input): ensure that when splitting
649 * IPython/iplib.py (split_user_input): ensure that when splitting
646 user input, the part that can be treated as a python name is pure
650 user input, the part that can be treated as a python name is pure
647 ascii (Python identifiers MUST be pure ascii). Part of the
651 ascii (Python identifiers MUST be pure ascii). Part of the
648 ongoing Unicode support work.
652 ongoing Unicode support work.
649
653
650 * IPython/Prompts.py (prompt_specials_color): Add \N for the
654 * IPython/Prompts.py (prompt_specials_color): Add \N for the
651 actual prompt number, without any coloring. This allows users to
655 actual prompt number, without any coloring. This allows users to
652 produce numbered prompts with their own colors. Added after a
656 produce numbered prompts with their own colors. Added after a
653 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
657 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
654
658
655 2007-03-31 Walter Doerwald <walter@livinglogic.de>
659 2007-03-31 Walter Doerwald <walter@livinglogic.de>
656
660
657 * IPython/Extensions/igrid.py: Map the return key
661 * IPython/Extensions/igrid.py: Map the return key
658 to enter() and shift-return to enterattr().
662 to enter() and shift-return to enterattr().
659
663
660 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
664 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
661
665
662 * IPython/Magic.py (magic_psearch): add unicode support by
666 * IPython/Magic.py (magic_psearch): add unicode support by
663 encoding to ascii the input, since this routine also only deals
667 encoding to ascii the input, since this routine also only deals
664 with valid Python names. Fixes a bug reported by Stefan.
668 with valid Python names. Fixes a bug reported by Stefan.
665
669
666 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
670 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
667
671
668 * IPython/Magic.py (_inspect): convert unicode input into ascii
672 * IPython/Magic.py (_inspect): convert unicode input into ascii
669 before trying to evaluate it as a Python identifier. This fixes a
673 before trying to evaluate it as a Python identifier. This fixes a
670 problem that the new unicode support had introduced when analyzing
674 problem that the new unicode support had introduced when analyzing
671 long definition lines for functions.
675 long definition lines for functions.
672
676
673 2007-03-24 Walter Doerwald <walter@livinglogic.de>
677 2007-03-24 Walter Doerwald <walter@livinglogic.de>
674
678
675 * IPython/Extensions/igrid.py: Fix picking. Using
679 * IPython/Extensions/igrid.py: Fix picking. Using
676 igrid with wxPython 2.6 and -wthread should work now.
680 igrid with wxPython 2.6 and -wthread should work now.
677 igrid.display() simply tries to create a frame without
681 igrid.display() simply tries to create a frame without
678 an application. Only if this fails an application is created.
682 an application. Only if this fails an application is created.
679
683
680 2007-03-23 Walter Doerwald <walter@livinglogic.de>
684 2007-03-23 Walter Doerwald <walter@livinglogic.de>
681
685
682 * IPython/Extensions/path.py: Updated to version 2.2.
686 * IPython/Extensions/path.py: Updated to version 2.2.
683
687
684 2007-03-23 Ville Vainio <vivainio@gmail.com>
688 2007-03-23 Ville Vainio <vivainio@gmail.com>
685
689
686 * iplib.py: recursive alias expansion now works better, so that
690 * iplib.py: recursive alias expansion now works better, so that
687 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
691 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
688 doesn't trip up the process, if 'd' has been aliased to 'ls'.
692 doesn't trip up the process, if 'd' has been aliased to 'ls'.
689
693
690 * Extensions/ipy_gnuglobal.py added, provides %global magic
694 * Extensions/ipy_gnuglobal.py added, provides %global magic
691 for users of http://www.gnu.org/software/global
695 for users of http://www.gnu.org/software/global
692
696
693 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
697 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
694 Closes #52. Patch by Stefan van der Walt.
698 Closes #52. Patch by Stefan van der Walt.
695
699
696 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
700 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
697
701
698 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
702 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
699 respect the __file__ attribute when using %run. Thanks to a bug
703 respect the __file__ attribute when using %run. Thanks to a bug
700 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
704 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
701
705
702 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
706 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
703
707
704 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
708 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
705 input. Patch sent by Stefan.
709 input. Patch sent by Stefan.
706
710
707 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
711 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
708 * IPython/Extensions/ipy_stock_completer.py
712 * IPython/Extensions/ipy_stock_completer.py
709 shlex_split, fix bug in shlex_split. len function
713 shlex_split, fix bug in shlex_split. len function
710 call was missing an if statement. Caused shlex_split to
714 call was missing an if statement. Caused shlex_split to
711 sometimes return "" as last element.
715 sometimes return "" as last element.
712
716
713 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
717 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
714
718
715 * IPython/completer.py
719 * IPython/completer.py
716 (IPCompleter.file_matches.single_dir_expand): fix a problem
720 (IPCompleter.file_matches.single_dir_expand): fix a problem
717 reported by Stefan, where directories containign a single subdir
721 reported by Stefan, where directories containign a single subdir
718 would be completed too early.
722 would be completed too early.
719
723
720 * IPython/Shell.py (_load_pylab): Make the execution of 'from
724 * IPython/Shell.py (_load_pylab): Make the execution of 'from
721 pylab import *' when -pylab is given be optional. A new flag,
725 pylab import *' when -pylab is given be optional. A new flag,
722 pylab_import_all controls this behavior, the default is True for
726 pylab_import_all controls this behavior, the default is True for
723 backwards compatibility.
727 backwards compatibility.
724
728
725 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
729 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
726 modified) R. Bernstein's patch for fully syntax highlighted
730 modified) R. Bernstein's patch for fully syntax highlighted
727 tracebacks. The functionality is also available under ultraTB for
731 tracebacks. The functionality is also available under ultraTB for
728 non-ipython users (someone using ultraTB but outside an ipython
732 non-ipython users (someone using ultraTB but outside an ipython
729 session). They can select the color scheme by setting the
733 session). They can select the color scheme by setting the
730 module-level global DEFAULT_SCHEME. The highlight functionality
734 module-level global DEFAULT_SCHEME. The highlight functionality
731 also works when debugging.
735 also works when debugging.
732
736
733 * IPython/genutils.py (IOStream.close): small patch by
737 * IPython/genutils.py (IOStream.close): small patch by
734 R. Bernstein for improved pydb support.
738 R. Bernstein for improved pydb support.
735
739
736 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
740 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
737 DaveS <davls@telus.net> to improve support of debugging under
741 DaveS <davls@telus.net> to improve support of debugging under
738 NTEmacs, including improved pydb behavior.
742 NTEmacs, including improved pydb behavior.
739
743
740 * IPython/Magic.py (magic_prun): Fix saving of profile info for
744 * IPython/Magic.py (magic_prun): Fix saving of profile info for
741 Python 2.5, where the stats object API changed a little. Thanks
745 Python 2.5, where the stats object API changed a little. Thanks
742 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
746 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
743
747
744 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
748 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
745 Pernetty's patch to improve support for (X)Emacs under Win32.
749 Pernetty's patch to improve support for (X)Emacs under Win32.
746
750
747 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
751 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
748
752
749 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
753 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
750 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
754 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
751 a report by Nik Tautenhahn.
755 a report by Nik Tautenhahn.
752
756
753 2007-03-16 Walter Doerwald <walter@livinglogic.de>
757 2007-03-16 Walter Doerwald <walter@livinglogic.de>
754
758
755 * setup.py: Add the igrid help files to the list of data files
759 * setup.py: Add the igrid help files to the list of data files
756 to be installed alongside igrid.
760 to be installed alongside igrid.
757 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
761 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
758 Show the input object of the igrid browser as the window tile.
762 Show the input object of the igrid browser as the window tile.
759 Show the object the cursor is on in the statusbar.
763 Show the object the cursor is on in the statusbar.
760
764
761 2007-03-15 Ville Vainio <vivainio@gmail.com>
765 2007-03-15 Ville Vainio <vivainio@gmail.com>
762
766
763 * Extensions/ipy_stock_completers.py: Fixed exception
767 * Extensions/ipy_stock_completers.py: Fixed exception
764 on mismatching quotes in %run completer. Patch by
768 on mismatching quotes in %run completer. Patch by
765 JοΏ½rgen Stenarson. Closes #127.
769 JοΏ½rgen Stenarson. Closes #127.
766
770
767 2007-03-14 Ville Vainio <vivainio@gmail.com>
771 2007-03-14 Ville Vainio <vivainio@gmail.com>
768
772
769 * Extensions/ext_rehashdir.py: Do not do auto_alias
773 * Extensions/ext_rehashdir.py: Do not do auto_alias
770 in %rehashdir, it clobbers %store'd aliases.
774 in %rehashdir, it clobbers %store'd aliases.
771
775
772 * UserConfig/ipy_profile_sh.py: envpersist.py extension
776 * UserConfig/ipy_profile_sh.py: envpersist.py extension
773 (beefed up %env) imported for sh profile.
777 (beefed up %env) imported for sh profile.
774
778
775 2007-03-10 Walter Doerwald <walter@livinglogic.de>
779 2007-03-10 Walter Doerwald <walter@livinglogic.de>
776
780
777 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
781 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
778 as the default browser.
782 as the default browser.
779 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
783 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
780 As igrid displays all attributes it ever encounters, fetch() (which has
784 As igrid displays all attributes it ever encounters, fetch() (which has
781 been renamed to _fetch()) doesn't have to recalculate the display attributes
785 been renamed to _fetch()) doesn't have to recalculate the display attributes
782 every time a new item is fetched. This should speed up scrolling.
786 every time a new item is fetched. This should speed up scrolling.
783
787
784 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
788 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
785
789
786 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
790 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
787 Schmolck's recently reported tab-completion bug (my previous one
791 Schmolck's recently reported tab-completion bug (my previous one
788 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
792 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
789
793
790 2007-03-09 Walter Doerwald <walter@livinglogic.de>
794 2007-03-09 Walter Doerwald <walter@livinglogic.de>
791
795
792 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
796 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
793 Close help window if exiting igrid.
797 Close help window if exiting igrid.
794
798
795 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
799 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
796
800
797 * IPython/Extensions/ipy_defaults.py: Check if readline is available
801 * IPython/Extensions/ipy_defaults.py: Check if readline is available
798 before calling functions from readline.
802 before calling functions from readline.
799
803
800 2007-03-02 Walter Doerwald <walter@livinglogic.de>
804 2007-03-02 Walter Doerwald <walter@livinglogic.de>
801
805
802 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
806 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
803 igrid is a wxPython-based display object for ipipe. If your system has
807 igrid is a wxPython-based display object for ipipe. If your system has
804 wx installed igrid will be the default display. Without wx ipipe falls
808 wx installed igrid will be the default display. Without wx ipipe falls
805 back to ibrowse (which needs curses). If no curses is installed ipipe
809 back to ibrowse (which needs curses). If no curses is installed ipipe
806 falls back to idump.
810 falls back to idump.
807
811
808 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
812 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
809
813
810 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
814 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
811 my changes from yesterday, they introduced bugs. Will reactivate
815 my changes from yesterday, they introduced bugs. Will reactivate
812 once I get a correct solution, which will be much easier thanks to
816 once I get a correct solution, which will be much easier thanks to
813 Dan Milstein's new prefilter test suite.
817 Dan Milstein's new prefilter test suite.
814
818
815 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
819 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
816
820
817 * IPython/iplib.py (split_user_input): fix input splitting so we
821 * IPython/iplib.py (split_user_input): fix input splitting so we
818 don't attempt attribute accesses on things that can't possibly be
822 don't attempt attribute accesses on things that can't possibly be
819 valid Python attributes. After a bug report by Alex Schmolck.
823 valid Python attributes. After a bug report by Alex Schmolck.
820 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
824 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
821 %magic with explicit % prefix.
825 %magic with explicit % prefix.
822
826
823 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
827 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
824
828
825 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
829 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
826 avoid a DeprecationWarning from GTK.
830 avoid a DeprecationWarning from GTK.
827
831
828 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
832 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
829
833
830 * IPython/genutils.py (clock): I modified clock() to return total
834 * IPython/genutils.py (clock): I modified clock() to return total
831 time, user+system. This is a more commonly needed metric. I also
835 time, user+system. This is a more commonly needed metric. I also
832 introduced the new clocku/clocks to get only user/system time if
836 introduced the new clocku/clocks to get only user/system time if
833 one wants those instead.
837 one wants those instead.
834
838
835 ***WARNING: API CHANGE*** clock() used to return only user time,
839 ***WARNING: API CHANGE*** clock() used to return only user time,
836 so if you want exactly the same results as before, use clocku
840 so if you want exactly the same results as before, use clocku
837 instead.
841 instead.
838
842
839 2007-02-22 Ville Vainio <vivainio@gmail.com>
843 2007-02-22 Ville Vainio <vivainio@gmail.com>
840
844
841 * IPython/Extensions/ipy_p4.py: Extension for improved
845 * IPython/Extensions/ipy_p4.py: Extension for improved
842 p4 (perforce version control system) experience.
846 p4 (perforce version control system) experience.
843 Adds %p4 magic with p4 command completion and
847 Adds %p4 magic with p4 command completion and
844 automatic -G argument (marshall output as python dict)
848 automatic -G argument (marshall output as python dict)
845
849
846 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
850 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
847
851
848 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
852 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
849 stop marks.
853 stop marks.
850 (ClearingMixin): a simple mixin to easily make a Demo class clear
854 (ClearingMixin): a simple mixin to easily make a Demo class clear
851 the screen in between blocks and have empty marquees. The
855 the screen in between blocks and have empty marquees. The
852 ClearDemo and ClearIPDemo classes that use it are included.
856 ClearDemo and ClearIPDemo classes that use it are included.
853
857
854 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
858 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
855
859
856 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
860 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
857 protect against exceptions at Python shutdown time. Patch
861 protect against exceptions at Python shutdown time. Patch
858 sumbmitted to upstream.
862 sumbmitted to upstream.
859
863
860 2007-02-14 Walter Doerwald <walter@livinglogic.de>
864 2007-02-14 Walter Doerwald <walter@livinglogic.de>
861
865
862 * IPython/Extensions/ibrowse.py: If entering the first object level
866 * IPython/Extensions/ibrowse.py: If entering the first object level
863 (i.e. the object for which the browser has been started) fails,
867 (i.e. the object for which the browser has been started) fails,
864 now the error is raised directly (aborting the browser) instead of
868 now the error is raised directly (aborting the browser) instead of
865 running into an empty levels list later.
869 running into an empty levels list later.
866
870
867 2007-02-03 Walter Doerwald <walter@livinglogic.de>
871 2007-02-03 Walter Doerwald <walter@livinglogic.de>
868
872
869 * IPython/Extensions/ipipe.py: Add an xrepr implementation
873 * IPython/Extensions/ipipe.py: Add an xrepr implementation
870 for the noitem object.
874 for the noitem object.
871
875
872 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
876 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
873
877
874 * IPython/completer.py (Completer.attr_matches): Fix small
878 * IPython/completer.py (Completer.attr_matches): Fix small
875 tab-completion bug with Enthought Traits objects with units.
879 tab-completion bug with Enthought Traits objects with units.
876 Thanks to a bug report by Tom Denniston
880 Thanks to a bug report by Tom Denniston
877 <tom.denniston-AT-alum.dartmouth.org>.
881 <tom.denniston-AT-alum.dartmouth.org>.
878
882
879 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
883 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
880
884
881 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
885 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
882 bug where only .ipy or .py would be completed. Once the first
886 bug where only .ipy or .py would be completed. Once the first
883 argument to %run has been given, all completions are valid because
887 argument to %run has been given, all completions are valid because
884 they are the arguments to the script, which may well be non-python
888 they are the arguments to the script, which may well be non-python
885 filenames.
889 filenames.
886
890
887 * IPython/irunner.py (InteractiveRunner.run_source): major updates
891 * IPython/irunner.py (InteractiveRunner.run_source): major updates
888 to irunner to allow it to correctly support real doctesting of
892 to irunner to allow it to correctly support real doctesting of
889 out-of-process ipython code.
893 out-of-process ipython code.
890
894
891 * IPython/Magic.py (magic_cd): Make the setting of the terminal
895 * IPython/Magic.py (magic_cd): Make the setting of the terminal
892 title an option (-noterm_title) because it completely breaks
896 title an option (-noterm_title) because it completely breaks
893 doctesting.
897 doctesting.
894
898
895 * IPython/demo.py: fix IPythonDemo class that was not actually working.
899 * IPython/demo.py: fix IPythonDemo class that was not actually working.
896
900
897 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
901 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
898
902
899 * IPython/irunner.py (main): fix small bug where extensions were
903 * IPython/irunner.py (main): fix small bug where extensions were
900 not being correctly recognized.
904 not being correctly recognized.
901
905
902 2007-01-23 Walter Doerwald <walter@livinglogic.de>
906 2007-01-23 Walter Doerwald <walter@livinglogic.de>
903
907
904 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
908 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
905 a string containing a single line yields the string itself as the
909 a string containing a single line yields the string itself as the
906 only item.
910 only item.
907
911
908 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
912 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
909 object if it's the same as the one on the last level (This avoids
913 object if it's the same as the one on the last level (This avoids
910 infinite recursion for one line strings).
914 infinite recursion for one line strings).
911
915
912 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
916 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
913
917
914 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
918 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
915 all output streams before printing tracebacks. This ensures that
919 all output streams before printing tracebacks. This ensures that
916 user output doesn't end up interleaved with traceback output.
920 user output doesn't end up interleaved with traceback output.
917
921
918 2007-01-10 Ville Vainio <vivainio@gmail.com>
922 2007-01-10 Ville Vainio <vivainio@gmail.com>
919
923
920 * Extensions/envpersist.py: Turbocharged %env that remembers
924 * Extensions/envpersist.py: Turbocharged %env that remembers
921 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
925 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
922 "%env VISUAL=jed".
926 "%env VISUAL=jed".
923
927
924 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
928 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
925
929
926 * IPython/iplib.py (showtraceback): ensure that we correctly call
930 * IPython/iplib.py (showtraceback): ensure that we correctly call
927 custom handlers in all cases (some with pdb were slipping through,
931 custom handlers in all cases (some with pdb were slipping through,
928 but I'm not exactly sure why).
932 but I'm not exactly sure why).
929
933
930 * IPython/Debugger.py (Tracer.__init__): added new class to
934 * IPython/Debugger.py (Tracer.__init__): added new class to
931 support set_trace-like usage of IPython's enhanced debugger.
935 support set_trace-like usage of IPython's enhanced debugger.
932
936
933 2006-12-24 Ville Vainio <vivainio@gmail.com>
937 2006-12-24 Ville Vainio <vivainio@gmail.com>
934
938
935 * ipmaker.py: more informative message when ipy_user_conf
939 * ipmaker.py: more informative message when ipy_user_conf
936 import fails (suggest running %upgrade).
940 import fails (suggest running %upgrade).
937
941
938 * tools/run_ipy_in_profiler.py: Utility to see where
942 * tools/run_ipy_in_profiler.py: Utility to see where
939 the time during IPython startup is spent.
943 the time during IPython startup is spent.
940
944
941 2006-12-20 Ville Vainio <vivainio@gmail.com>
945 2006-12-20 Ville Vainio <vivainio@gmail.com>
942
946
943 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
947 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
944
948
945 * ipapi.py: Add new ipapi method, expand_alias.
949 * ipapi.py: Add new ipapi method, expand_alias.
946
950
947 * Release.py: Bump up version to 0.7.4.svn
951 * Release.py: Bump up version to 0.7.4.svn
948
952
949 2006-12-17 Ville Vainio <vivainio@gmail.com>
953 2006-12-17 Ville Vainio <vivainio@gmail.com>
950
954
951 * Extensions/jobctrl.py: Fixed &cmd arg arg...
955 * Extensions/jobctrl.py: Fixed &cmd arg arg...
952 to work properly on posix too
956 to work properly on posix too
953
957
954 * Release.py: Update revnum (version is still just 0.7.3).
958 * Release.py: Update revnum (version is still just 0.7.3).
955
959
956 2006-12-15 Ville Vainio <vivainio@gmail.com>
960 2006-12-15 Ville Vainio <vivainio@gmail.com>
957
961
958 * scripts/ipython_win_post_install: create ipython.py in
962 * scripts/ipython_win_post_install: create ipython.py in
959 prefix + "/scripts".
963 prefix + "/scripts".
960
964
961 * Release.py: Update version to 0.7.3.
965 * Release.py: Update version to 0.7.3.
962
966
963 2006-12-14 Ville Vainio <vivainio@gmail.com>
967 2006-12-14 Ville Vainio <vivainio@gmail.com>
964
968
965 * scripts/ipython_win_post_install: Overwrite old shortcuts
969 * scripts/ipython_win_post_install: Overwrite old shortcuts
966 if they already exist
970 if they already exist
967
971
968 * Release.py: release 0.7.3rc2
972 * Release.py: release 0.7.3rc2
969
973
970 2006-12-13 Ville Vainio <vivainio@gmail.com>
974 2006-12-13 Ville Vainio <vivainio@gmail.com>
971
975
972 * Branch and update Release.py for 0.7.3rc1
976 * Branch and update Release.py for 0.7.3rc1
973
977
974 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
978 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
975
979
976 * IPython/Shell.py (IPShellWX): update for current WX naming
980 * IPython/Shell.py (IPShellWX): update for current WX naming
977 conventions, to avoid a deprecation warning with current WX
981 conventions, to avoid a deprecation warning with current WX
978 versions. Thanks to a report by Danny Shevitz.
982 versions. Thanks to a report by Danny Shevitz.
979
983
980 2006-12-12 Ville Vainio <vivainio@gmail.com>
984 2006-12-12 Ville Vainio <vivainio@gmail.com>
981
985
982 * ipmaker.py: apply david cournapeau's patch to make
986 * ipmaker.py: apply david cournapeau's patch to make
983 import_some work properly even when ipythonrc does
987 import_some work properly even when ipythonrc does
984 import_some on empty list (it was an old bug!).
988 import_some on empty list (it was an old bug!).
985
989
986 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
990 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
987 Add deprecation note to ipythonrc and a url to wiki
991 Add deprecation note to ipythonrc and a url to wiki
988 in ipy_user_conf.py
992 in ipy_user_conf.py
989
993
990
994
991 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
995 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
992 as if it was typed on IPython command prompt, i.e.
996 as if it was typed on IPython command prompt, i.e.
993 as IPython script.
997 as IPython script.
994
998
995 * example-magic.py, magic_grepl.py: remove outdated examples
999 * example-magic.py, magic_grepl.py: remove outdated examples
996
1000
997 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
1001 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
998
1002
999 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
1003 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
1000 is called before any exception has occurred.
1004 is called before any exception has occurred.
1001
1005
1002 2006-12-08 Ville Vainio <vivainio@gmail.com>
1006 2006-12-08 Ville Vainio <vivainio@gmail.com>
1003
1007
1004 * Extensions/ipy_stock_completers.py: fix cd completer
1008 * Extensions/ipy_stock_completers.py: fix cd completer
1005 to translate /'s to \'s again.
1009 to translate /'s to \'s again.
1006
1010
1007 * completer.py: prevent traceback on file completions w/
1011 * completer.py: prevent traceback on file completions w/
1008 backslash.
1012 backslash.
1009
1013
1010 * Release.py: Update release number to 0.7.3b3 for release
1014 * Release.py: Update release number to 0.7.3b3 for release
1011
1015
1012 2006-12-07 Ville Vainio <vivainio@gmail.com>
1016 2006-12-07 Ville Vainio <vivainio@gmail.com>
1013
1017
1014 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
1018 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
1015 while executing external code. Provides more shell-like behaviour
1019 while executing external code. Provides more shell-like behaviour
1016 and overall better response to ctrl + C / ctrl + break.
1020 and overall better response to ctrl + C / ctrl + break.
1017
1021
1018 * tools/make_tarball.py: new script to create tarball straight from svn
1022 * tools/make_tarball.py: new script to create tarball straight from svn
1019 (setup.py sdist doesn't work on win32).
1023 (setup.py sdist doesn't work on win32).
1020
1024
1021 * Extensions/ipy_stock_completers.py: fix cd completer to give up
1025 * Extensions/ipy_stock_completers.py: fix cd completer to give up
1022 on dirnames with spaces and use the default completer instead.
1026 on dirnames with spaces and use the default completer instead.
1023
1027
1024 * Revision.py: Change version to 0.7.3b2 for release.
1028 * Revision.py: Change version to 0.7.3b2 for release.
1025
1029
1026 2006-12-05 Ville Vainio <vivainio@gmail.com>
1030 2006-12-05 Ville Vainio <vivainio@gmail.com>
1027
1031
1028 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
1032 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
1029 pydb patch 4 (rm debug printing, py 2.5 checking)
1033 pydb patch 4 (rm debug printing, py 2.5 checking)
1030
1034
1031 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1035 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1032 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1036 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1033 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1037 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1034 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1038 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1035 object the cursor was on before the refresh. The command "markrange" is
1039 object the cursor was on before the refresh. The command "markrange" is
1036 mapped to "%" now.
1040 mapped to "%" now.
1037 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1041 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1038
1042
1039 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1043 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1040
1044
1041 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1045 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1042 interactive debugger on the last traceback, without having to call
1046 interactive debugger on the last traceback, without having to call
1043 %pdb and rerun your code. Made minor changes in various modules,
1047 %pdb and rerun your code. Made minor changes in various modules,
1044 should automatically recognize pydb if available.
1048 should automatically recognize pydb if available.
1045
1049
1046 2006-11-28 Ville Vainio <vivainio@gmail.com>
1050 2006-11-28 Ville Vainio <vivainio@gmail.com>
1047
1051
1048 * completer.py: If the text start with !, show file completions
1052 * completer.py: If the text start with !, show file completions
1049 properly. This helps when trying to complete command name
1053 properly. This helps when trying to complete command name
1050 for shell escapes.
1054 for shell escapes.
1051
1055
1052 2006-11-27 Ville Vainio <vivainio@gmail.com>
1056 2006-11-27 Ville Vainio <vivainio@gmail.com>
1053
1057
1054 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1058 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1055 der Walt. Clean up svn and hg completers by using a common
1059 der Walt. Clean up svn and hg completers by using a common
1056 vcs_completer.
1060 vcs_completer.
1057
1061
1058 2006-11-26 Ville Vainio <vivainio@gmail.com>
1062 2006-11-26 Ville Vainio <vivainio@gmail.com>
1059
1063
1060 * Remove ipconfig and %config; you should use _ip.options structure
1064 * Remove ipconfig and %config; you should use _ip.options structure
1061 directly instead!
1065 directly instead!
1062
1066
1063 * genutils.py: add wrap_deprecated function for deprecating callables
1067 * genutils.py: add wrap_deprecated function for deprecating callables
1064
1068
1065 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1069 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1066 _ip.system instead. ipalias is redundant.
1070 _ip.system instead. ipalias is redundant.
1067
1071
1068 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1072 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1069 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1073 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1070 explicit.
1074 explicit.
1071
1075
1072 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1076 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1073 completer. Try it by entering 'hg ' and pressing tab.
1077 completer. Try it by entering 'hg ' and pressing tab.
1074
1078
1075 * macro.py: Give Macro a useful __repr__ method
1079 * macro.py: Give Macro a useful __repr__ method
1076
1080
1077 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1081 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1078
1082
1079 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1083 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1080 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1084 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1081 we don't get a duplicate ipipe module, where registration of the xrepr
1085 we don't get a duplicate ipipe module, where registration of the xrepr
1082 implementation for Text is useless.
1086 implementation for Text is useless.
1083
1087
1084 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1088 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1085
1089
1086 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1090 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1087
1091
1088 2006-11-24 Ville Vainio <vivainio@gmail.com>
1092 2006-11-24 Ville Vainio <vivainio@gmail.com>
1089
1093
1090 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1094 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1091 try to use "cProfile" instead of the slower pure python
1095 try to use "cProfile" instead of the slower pure python
1092 "profile"
1096 "profile"
1093
1097
1094 2006-11-23 Ville Vainio <vivainio@gmail.com>
1098 2006-11-23 Ville Vainio <vivainio@gmail.com>
1095
1099
1096 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1100 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1097 Qt+IPython+Designer link in documentation.
1101 Qt+IPython+Designer link in documentation.
1098
1102
1099 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1103 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1100 correct Pdb object to %pydb.
1104 correct Pdb object to %pydb.
1101
1105
1102
1106
1103 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1107 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1104 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1108 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1105 generic xrepr(), otherwise the list implementation would kick in.
1109 generic xrepr(), otherwise the list implementation would kick in.
1106
1110
1107 2006-11-21 Ville Vainio <vivainio@gmail.com>
1111 2006-11-21 Ville Vainio <vivainio@gmail.com>
1108
1112
1109 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1113 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1110 with one from UserConfig.
1114 with one from UserConfig.
1111
1115
1112 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1116 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1113 it was missing which broke the sh profile.
1117 it was missing which broke the sh profile.
1114
1118
1115 * completer.py: file completer now uses explicit '/' instead
1119 * completer.py: file completer now uses explicit '/' instead
1116 of os.path.join, expansion of 'foo' was broken on win32
1120 of os.path.join, expansion of 'foo' was broken on win32
1117 if there was one directory with name 'foobar'.
1121 if there was one directory with name 'foobar'.
1118
1122
1119 * A bunch of patches from Kirill Smelkov:
1123 * A bunch of patches from Kirill Smelkov:
1120
1124
1121 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1125 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1122
1126
1123 * [patch 7/9] Implement %page -r (page in raw mode) -
1127 * [patch 7/9] Implement %page -r (page in raw mode) -
1124
1128
1125 * [patch 5/9] ScientificPython webpage has moved
1129 * [patch 5/9] ScientificPython webpage has moved
1126
1130
1127 * [patch 4/9] The manual mentions %ds, should be %dhist
1131 * [patch 4/9] The manual mentions %ds, should be %dhist
1128
1132
1129 * [patch 3/9] Kill old bits from %prun doc.
1133 * [patch 3/9] Kill old bits from %prun doc.
1130
1134
1131 * [patch 1/9] Fix typos here and there.
1135 * [patch 1/9] Fix typos here and there.
1132
1136
1133 2006-11-08 Ville Vainio <vivainio@gmail.com>
1137 2006-11-08 Ville Vainio <vivainio@gmail.com>
1134
1138
1135 * completer.py (attr_matches): catch all exceptions raised
1139 * completer.py (attr_matches): catch all exceptions raised
1136 by eval of expr with dots.
1140 by eval of expr with dots.
1137
1141
1138 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1142 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1139
1143
1140 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1144 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1141 input if it starts with whitespace. This allows you to paste
1145 input if it starts with whitespace. This allows you to paste
1142 indented input from any editor without manually having to type in
1146 indented input from any editor without manually having to type in
1143 the 'if 1:', which is convenient when working interactively.
1147 the 'if 1:', which is convenient when working interactively.
1144 Slightly modifed version of a patch by Bo Peng
1148 Slightly modifed version of a patch by Bo Peng
1145 <bpeng-AT-rice.edu>.
1149 <bpeng-AT-rice.edu>.
1146
1150
1147 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1151 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1148
1152
1149 * IPython/irunner.py (main): modified irunner so it automatically
1153 * IPython/irunner.py (main): modified irunner so it automatically
1150 recognizes the right runner to use based on the extension (.py for
1154 recognizes the right runner to use based on the extension (.py for
1151 python, .ipy for ipython and .sage for sage).
1155 python, .ipy for ipython and .sage for sage).
1152
1156
1153 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1157 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1154 visible in ipapi as ip.config(), to programatically control the
1158 visible in ipapi as ip.config(), to programatically control the
1155 internal rc object. There's an accompanying %config magic for
1159 internal rc object. There's an accompanying %config magic for
1156 interactive use, which has been enhanced to match the
1160 interactive use, which has been enhanced to match the
1157 funtionality in ipconfig.
1161 funtionality in ipconfig.
1158
1162
1159 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1163 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1160 so it's not just a toggle, it now takes an argument. Add support
1164 so it's not just a toggle, it now takes an argument. Add support
1161 for a customizable header when making system calls, as the new
1165 for a customizable header when making system calls, as the new
1162 system_header variable in the ipythonrc file.
1166 system_header variable in the ipythonrc file.
1163
1167
1164 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1168 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1165
1169
1166 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1170 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1167 generic functions (using Philip J. Eby's simplegeneric package).
1171 generic functions (using Philip J. Eby's simplegeneric package).
1168 This makes it possible to customize the display of third-party classes
1172 This makes it possible to customize the display of third-party classes
1169 without having to monkeypatch them. xiter() no longer supports a mode
1173 without having to monkeypatch them. xiter() no longer supports a mode
1170 argument and the XMode class has been removed. The same functionality can
1174 argument and the XMode class has been removed. The same functionality can
1171 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1175 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1172 One consequence of the switch to generic functions is that xrepr() and
1176 One consequence of the switch to generic functions is that xrepr() and
1173 xattrs() implementation must define the default value for the mode
1177 xattrs() implementation must define the default value for the mode
1174 argument themselves and xattrs() implementations must return real
1178 argument themselves and xattrs() implementations must return real
1175 descriptors.
1179 descriptors.
1176
1180
1177 * IPython/external: This new subpackage will contain all third-party
1181 * IPython/external: This new subpackage will contain all third-party
1178 packages that are bundled with IPython. (The first one is simplegeneric).
1182 packages that are bundled with IPython. (The first one is simplegeneric).
1179
1183
1180 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1184 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1181 directory which as been dropped in r1703.
1185 directory which as been dropped in r1703.
1182
1186
1183 * IPython/Extensions/ipipe.py (iless): Fixed.
1187 * IPython/Extensions/ipipe.py (iless): Fixed.
1184
1188
1185 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1189 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1186
1190
1187 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1191 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1188
1192
1189 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1193 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1190 handling in variable expansion so that shells and magics recognize
1194 handling in variable expansion so that shells and magics recognize
1191 function local scopes correctly. Bug reported by Brian.
1195 function local scopes correctly. Bug reported by Brian.
1192
1196
1193 * scripts/ipython: remove the very first entry in sys.path which
1197 * scripts/ipython: remove the very first entry in sys.path which
1194 Python auto-inserts for scripts, so that sys.path under IPython is
1198 Python auto-inserts for scripts, so that sys.path under IPython is
1195 as similar as possible to that under plain Python.
1199 as similar as possible to that under plain Python.
1196
1200
1197 * IPython/completer.py (IPCompleter.file_matches): Fix
1201 * IPython/completer.py (IPCompleter.file_matches): Fix
1198 tab-completion so that quotes are not closed unless the completion
1202 tab-completion so that quotes are not closed unless the completion
1199 is unambiguous. After a request by Stefan. Minor cleanups in
1203 is unambiguous. After a request by Stefan. Minor cleanups in
1200 ipy_stock_completers.
1204 ipy_stock_completers.
1201
1205
1202 2006-11-02 Ville Vainio <vivainio@gmail.com>
1206 2006-11-02 Ville Vainio <vivainio@gmail.com>
1203
1207
1204 * ipy_stock_completers.py: Add %run and %cd completers.
1208 * ipy_stock_completers.py: Add %run and %cd completers.
1205
1209
1206 * completer.py: Try running custom completer for both
1210 * completer.py: Try running custom completer for both
1207 "foo" and "%foo" if the command is just "foo". Ignore case
1211 "foo" and "%foo" if the command is just "foo". Ignore case
1208 when filtering possible completions.
1212 when filtering possible completions.
1209
1213
1210 * UserConfig/ipy_user_conf.py: install stock completers as default
1214 * UserConfig/ipy_user_conf.py: install stock completers as default
1211
1215
1212 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1216 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1213 simplified readline history save / restore through a wrapper
1217 simplified readline history save / restore through a wrapper
1214 function
1218 function
1215
1219
1216
1220
1217 2006-10-31 Ville Vainio <vivainio@gmail.com>
1221 2006-10-31 Ville Vainio <vivainio@gmail.com>
1218
1222
1219 * strdispatch.py, completer.py, ipy_stock_completers.py:
1223 * strdispatch.py, completer.py, ipy_stock_completers.py:
1220 Allow str_key ("command") in completer hooks. Implement
1224 Allow str_key ("command") in completer hooks. Implement
1221 trivial completer for 'import' (stdlib modules only). Rename
1225 trivial completer for 'import' (stdlib modules only). Rename
1222 ipy_linux_package_managers.py to ipy_stock_completers.py.
1226 ipy_linux_package_managers.py to ipy_stock_completers.py.
1223 SVN completer.
1227 SVN completer.
1224
1228
1225 * Extensions/ledit.py: %magic line editor for easily and
1229 * Extensions/ledit.py: %magic line editor for easily and
1226 incrementally manipulating lists of strings. The magic command
1230 incrementally manipulating lists of strings. The magic command
1227 name is %led.
1231 name is %led.
1228
1232
1229 2006-10-30 Ville Vainio <vivainio@gmail.com>
1233 2006-10-30 Ville Vainio <vivainio@gmail.com>
1230
1234
1231 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1235 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1232 Bernsteins's patches for pydb integration.
1236 Bernsteins's patches for pydb integration.
1233 http://bashdb.sourceforge.net/pydb/
1237 http://bashdb.sourceforge.net/pydb/
1234
1238
1235 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1239 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1236 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1240 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1237 custom completer hook to allow the users to implement their own
1241 custom completer hook to allow the users to implement their own
1238 completers. See ipy_linux_package_managers.py for example. The
1242 completers. See ipy_linux_package_managers.py for example. The
1239 hook name is 'complete_command'.
1243 hook name is 'complete_command'.
1240
1244
1241 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1245 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1242
1246
1243 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1247 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1244 Numeric leftovers.
1248 Numeric leftovers.
1245
1249
1246 * ipython.el (py-execute-region): apply Stefan's patch to fix
1250 * ipython.el (py-execute-region): apply Stefan's patch to fix
1247 garbled results if the python shell hasn't been previously started.
1251 garbled results if the python shell hasn't been previously started.
1248
1252
1249 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1253 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1250 pretty generic function and useful for other things.
1254 pretty generic function and useful for other things.
1251
1255
1252 * IPython/OInspect.py (getsource): Add customizable source
1256 * IPython/OInspect.py (getsource): Add customizable source
1253 extractor. After a request/patch form W. Stein (SAGE).
1257 extractor. After a request/patch form W. Stein (SAGE).
1254
1258
1255 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1259 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1256 window size to a more reasonable value from what pexpect does,
1260 window size to a more reasonable value from what pexpect does,
1257 since their choice causes wrapping bugs with long input lines.
1261 since their choice causes wrapping bugs with long input lines.
1258
1262
1259 2006-10-28 Ville Vainio <vivainio@gmail.com>
1263 2006-10-28 Ville Vainio <vivainio@gmail.com>
1260
1264
1261 * Magic.py (%run): Save and restore the readline history from
1265 * Magic.py (%run): Save and restore the readline history from
1262 file around %run commands to prevent side effects from
1266 file around %run commands to prevent side effects from
1263 %runned programs that might use readline (e.g. pydb).
1267 %runned programs that might use readline (e.g. pydb).
1264
1268
1265 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1269 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1266 invoking the pydb enhanced debugger.
1270 invoking the pydb enhanced debugger.
1267
1271
1268 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1272 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1269
1273
1270 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1274 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1271 call the base class method and propagate the return value to
1275 call the base class method and propagate the return value to
1272 ifile. This is now done by path itself.
1276 ifile. This is now done by path itself.
1273
1277
1274 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1278 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1275
1279
1276 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1280 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1277 api: set_crash_handler(), to expose the ability to change the
1281 api: set_crash_handler(), to expose the ability to change the
1278 internal crash handler.
1282 internal crash handler.
1279
1283
1280 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1284 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1281 the various parameters of the crash handler so that apps using
1285 the various parameters of the crash handler so that apps using
1282 IPython as their engine can customize crash handling. Ipmlemented
1286 IPython as their engine can customize crash handling. Ipmlemented
1283 at the request of SAGE.
1287 at the request of SAGE.
1284
1288
1285 2006-10-14 Ville Vainio <vivainio@gmail.com>
1289 2006-10-14 Ville Vainio <vivainio@gmail.com>
1286
1290
1287 * Magic.py, ipython.el: applied first "safe" part of Rocky
1291 * Magic.py, ipython.el: applied first "safe" part of Rocky
1288 Bernstein's patch set for pydb integration.
1292 Bernstein's patch set for pydb integration.
1289
1293
1290 * Magic.py (%unalias, %alias): %store'd aliases can now be
1294 * Magic.py (%unalias, %alias): %store'd aliases can now be
1291 removed with '%unalias'. %alias w/o args now shows most
1295 removed with '%unalias'. %alias w/o args now shows most
1292 interesting (stored / manually defined) aliases last
1296 interesting (stored / manually defined) aliases last
1293 where they catch the eye w/o scrolling.
1297 where they catch the eye w/o scrolling.
1294
1298
1295 * Magic.py (%rehashx), ext_rehashdir.py: files with
1299 * Magic.py (%rehashx), ext_rehashdir.py: files with
1296 'py' extension are always considered executable, even
1300 'py' extension are always considered executable, even
1297 when not in PATHEXT environment variable.
1301 when not in PATHEXT environment variable.
1298
1302
1299 2006-10-12 Ville Vainio <vivainio@gmail.com>
1303 2006-10-12 Ville Vainio <vivainio@gmail.com>
1300
1304
1301 * jobctrl.py: Add new "jobctrl" extension for spawning background
1305 * jobctrl.py: Add new "jobctrl" extension for spawning background
1302 processes with "&find /". 'import jobctrl' to try it out. Requires
1306 processes with "&find /". 'import jobctrl' to try it out. Requires
1303 'subprocess' module, standard in python 2.4+.
1307 'subprocess' module, standard in python 2.4+.
1304
1308
1305 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1309 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1306 so if foo -> bar and bar -> baz, then foo -> baz.
1310 so if foo -> bar and bar -> baz, then foo -> baz.
1307
1311
1308 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1312 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1309
1313
1310 * IPython/Magic.py (Magic.parse_options): add a new posix option
1314 * IPython/Magic.py (Magic.parse_options): add a new posix option
1311 to allow parsing of input args in magics that doesn't strip quotes
1315 to allow parsing of input args in magics that doesn't strip quotes
1312 (if posix=False). This also closes %timeit bug reported by
1316 (if posix=False). This also closes %timeit bug reported by
1313 Stefan.
1317 Stefan.
1314
1318
1315 2006-10-03 Ville Vainio <vivainio@gmail.com>
1319 2006-10-03 Ville Vainio <vivainio@gmail.com>
1316
1320
1317 * iplib.py (raw_input, interact): Return ValueError catching for
1321 * iplib.py (raw_input, interact): Return ValueError catching for
1318 raw_input. Fixes infinite loop for sys.stdin.close() or
1322 raw_input. Fixes infinite loop for sys.stdin.close() or
1319 sys.stdout.close().
1323 sys.stdout.close().
1320
1324
1321 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1325 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1322
1326
1323 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1327 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1324 to help in handling doctests. irunner is now pretty useful for
1328 to help in handling doctests. irunner is now pretty useful for
1325 running standalone scripts and simulate a full interactive session
1329 running standalone scripts and simulate a full interactive session
1326 in a format that can be then pasted as a doctest.
1330 in a format that can be then pasted as a doctest.
1327
1331
1328 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1332 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1329 on top of the default (useless) ones. This also fixes the nasty
1333 on top of the default (useless) ones. This also fixes the nasty
1330 way in which 2.5's Quitter() exits (reverted [1785]).
1334 way in which 2.5's Quitter() exits (reverted [1785]).
1331
1335
1332 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1336 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1333 2.5.
1337 2.5.
1334
1338
1335 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1339 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1336 color scheme is updated as well when color scheme is changed
1340 color scheme is updated as well when color scheme is changed
1337 interactively.
1341 interactively.
1338
1342
1339 2006-09-27 Ville Vainio <vivainio@gmail.com>
1343 2006-09-27 Ville Vainio <vivainio@gmail.com>
1340
1344
1341 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1345 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1342 infinite loop and just exit. It's a hack, but will do for a while.
1346 infinite loop and just exit. It's a hack, but will do for a while.
1343
1347
1344 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1348 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1345
1349
1346 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1350 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1347 the constructor, this makes it possible to get a list of only directories
1351 the constructor, this makes it possible to get a list of only directories
1348 or only files.
1352 or only files.
1349
1353
1350 2006-08-12 Ville Vainio <vivainio@gmail.com>
1354 2006-08-12 Ville Vainio <vivainio@gmail.com>
1351
1355
1352 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1356 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1353 they broke unittest
1357 they broke unittest
1354
1358
1355 2006-08-11 Ville Vainio <vivainio@gmail.com>
1359 2006-08-11 Ville Vainio <vivainio@gmail.com>
1356
1360
1357 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1361 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1358 by resolving issue properly, i.e. by inheriting FakeModule
1362 by resolving issue properly, i.e. by inheriting FakeModule
1359 from types.ModuleType. Pickling ipython interactive data
1363 from types.ModuleType. Pickling ipython interactive data
1360 should still work as usual (testing appreciated).
1364 should still work as usual (testing appreciated).
1361
1365
1362 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1366 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1363
1367
1364 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1368 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1365 running under python 2.3 with code from 2.4 to fix a bug with
1369 running under python 2.3 with code from 2.4 to fix a bug with
1366 help(). Reported by the Debian maintainers, Norbert Tretkowski
1370 help(). Reported by the Debian maintainers, Norbert Tretkowski
1367 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1371 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1368 <afayolle-AT-debian.org>.
1372 <afayolle-AT-debian.org>.
1369
1373
1370 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1374 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1371
1375
1372 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1376 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1373 (which was displaying "quit" twice).
1377 (which was displaying "quit" twice).
1374
1378
1375 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1379 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1376
1380
1377 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1381 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1378 the mode argument).
1382 the mode argument).
1379
1383
1380 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1384 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1381
1385
1382 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1386 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1383 not running under IPython.
1387 not running under IPython.
1384
1388
1385 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1389 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1386 and make it iterable (iterating over the attribute itself). Add two new
1390 and make it iterable (iterating over the attribute itself). Add two new
1387 magic strings for __xattrs__(): If the string starts with "-", the attribute
1391 magic strings for __xattrs__(): If the string starts with "-", the attribute
1388 will not be displayed in ibrowse's detail view (but it can still be
1392 will not be displayed in ibrowse's detail view (but it can still be
1389 iterated over). This makes it possible to add attributes that are large
1393 iterated over). This makes it possible to add attributes that are large
1390 lists or generator methods to the detail view. Replace magic attribute names
1394 lists or generator methods to the detail view. Replace magic attribute names
1391 and _attrname() and _getattr() with "descriptors": For each type of magic
1395 and _attrname() and _getattr() with "descriptors": For each type of magic
1392 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1396 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1393 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1397 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1394 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1398 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1395 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1399 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1396 are still supported.
1400 are still supported.
1397
1401
1398 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1402 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1399 fails in ibrowse.fetch(), the exception object is added as the last item
1403 fails in ibrowse.fetch(), the exception object is added as the last item
1400 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1404 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1401 a generator throws an exception midway through execution.
1405 a generator throws an exception midway through execution.
1402
1406
1403 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1407 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1404 encoding into methods.
1408 encoding into methods.
1405
1409
1406 2006-07-26 Ville Vainio <vivainio@gmail.com>
1410 2006-07-26 Ville Vainio <vivainio@gmail.com>
1407
1411
1408 * iplib.py: history now stores multiline input as single
1412 * iplib.py: history now stores multiline input as single
1409 history entries. Patch by Jorgen Cederlof.
1413 history entries. Patch by Jorgen Cederlof.
1410
1414
1411 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1415 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1412
1416
1413 * IPython/Extensions/ibrowse.py: Make cursor visible over
1417 * IPython/Extensions/ibrowse.py: Make cursor visible over
1414 non existing attributes.
1418 non existing attributes.
1415
1419
1416 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1420 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1417
1421
1418 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1422 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1419 error output of the running command doesn't mess up the screen.
1423 error output of the running command doesn't mess up the screen.
1420
1424
1421 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1425 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1422
1426
1423 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1427 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1424 argument. This sorts the items themselves.
1428 argument. This sorts the items themselves.
1425
1429
1426 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1430 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1427
1431
1428 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1432 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1429 Compile expression strings into code objects. This should speed
1433 Compile expression strings into code objects. This should speed
1430 up ifilter and friends somewhat.
1434 up ifilter and friends somewhat.
1431
1435
1432 2006-07-08 Ville Vainio <vivainio@gmail.com>
1436 2006-07-08 Ville Vainio <vivainio@gmail.com>
1433
1437
1434 * Magic.py: %cpaste now strips > from the beginning of lines
1438 * Magic.py: %cpaste now strips > from the beginning of lines
1435 to ease pasting quoted code from emails. Contributed by
1439 to ease pasting quoted code from emails. Contributed by
1436 Stefan van der Walt.
1440 Stefan van der Walt.
1437
1441
1438 2006-06-29 Ville Vainio <vivainio@gmail.com>
1442 2006-06-29 Ville Vainio <vivainio@gmail.com>
1439
1443
1440 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1444 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1441 mode, patch contributed by Darren Dale. NEEDS TESTING!
1445 mode, patch contributed by Darren Dale. NEEDS TESTING!
1442
1446
1443 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1447 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1444
1448
1445 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1449 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1446 a blue background. Fix fetching new display rows when the browser
1450 a blue background. Fix fetching new display rows when the browser
1447 scrolls more than a screenful (e.g. by using the goto command).
1451 scrolls more than a screenful (e.g. by using the goto command).
1448
1452
1449 2006-06-27 Ville Vainio <vivainio@gmail.com>
1453 2006-06-27 Ville Vainio <vivainio@gmail.com>
1450
1454
1451 * Magic.py (_inspect, _ofind) Apply David Huard's
1455 * Magic.py (_inspect, _ofind) Apply David Huard's
1452 patch for displaying the correct docstring for 'property'
1456 patch for displaying the correct docstring for 'property'
1453 attributes.
1457 attributes.
1454
1458
1455 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1459 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1456
1460
1457 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1461 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1458 commands into the methods implementing them.
1462 commands into the methods implementing them.
1459
1463
1460 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1464 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1461
1465
1462 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1466 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1463 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1467 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1464 autoindent support was authored by Jin Liu.
1468 autoindent support was authored by Jin Liu.
1465
1469
1466 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1470 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1467
1471
1468 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1472 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1469 for keymaps with a custom class that simplifies handling.
1473 for keymaps with a custom class that simplifies handling.
1470
1474
1471 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1475 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1472
1476
1473 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1477 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1474 resizing. This requires Python 2.5 to work.
1478 resizing. This requires Python 2.5 to work.
1475
1479
1476 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1480 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1477
1481
1478 * IPython/Extensions/ibrowse.py: Add two new commands to
1482 * IPython/Extensions/ibrowse.py: Add two new commands to
1479 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1483 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1480 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1484 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1481 attributes again. Remapped the help command to "?". Display
1485 attributes again. Remapped the help command to "?". Display
1482 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1486 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1483 as keys for the "home" and "end" commands. Add three new commands
1487 as keys for the "home" and "end" commands. Add three new commands
1484 to the input mode for "find" and friends: "delend" (CTRL-K)
1488 to the input mode for "find" and friends: "delend" (CTRL-K)
1485 deletes to the end of line. "incsearchup" searches upwards in the
1489 deletes to the end of line. "incsearchup" searches upwards in the
1486 command history for an input that starts with the text before the cursor.
1490 command history for an input that starts with the text before the cursor.
1487 "incsearchdown" does the same downwards. Removed a bogus mapping of
1491 "incsearchdown" does the same downwards. Removed a bogus mapping of
1488 the x key to "delete".
1492 the x key to "delete".
1489
1493
1490 2006-06-15 Ville Vainio <vivainio@gmail.com>
1494 2006-06-15 Ville Vainio <vivainio@gmail.com>
1491
1495
1492 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1496 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1493 used to create prompts dynamically, instead of the "old" way of
1497 used to create prompts dynamically, instead of the "old" way of
1494 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1498 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1495 way still works (it's invoked by the default hook), of course.
1499 way still works (it's invoked by the default hook), of course.
1496
1500
1497 * Prompts.py: added generate_output_prompt hook for altering output
1501 * Prompts.py: added generate_output_prompt hook for altering output
1498 prompt
1502 prompt
1499
1503
1500 * Release.py: Changed version string to 0.7.3.svn.
1504 * Release.py: Changed version string to 0.7.3.svn.
1501
1505
1502 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1506 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1503
1507
1504 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1508 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1505 the call to fetch() always tries to fetch enough data for at least one
1509 the call to fetch() always tries to fetch enough data for at least one
1506 full screen. This makes it possible to simply call moveto(0,0,True) in
1510 full screen. This makes it possible to simply call moveto(0,0,True) in
1507 the constructor. Fix typos and removed the obsolete goto attribute.
1511 the constructor. Fix typos and removed the obsolete goto attribute.
1508
1512
1509 2006-06-12 Ville Vainio <vivainio@gmail.com>
1513 2006-06-12 Ville Vainio <vivainio@gmail.com>
1510
1514
1511 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1515 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1512 allowing $variable interpolation within multiline statements,
1516 allowing $variable interpolation within multiline statements,
1513 though so far only with "sh" profile for a testing period.
1517 though so far only with "sh" profile for a testing period.
1514 The patch also enables splitting long commands with \ but it
1518 The patch also enables splitting long commands with \ but it
1515 doesn't work properly yet.
1519 doesn't work properly yet.
1516
1520
1517 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1521 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1518
1522
1519 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1523 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1520 input history and the position of the cursor in the input history for
1524 input history and the position of the cursor in the input history for
1521 the find, findbackwards and goto command.
1525 the find, findbackwards and goto command.
1522
1526
1523 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1527 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1524
1528
1525 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1529 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1526 implements the basic functionality of browser commands that require
1530 implements the basic functionality of browser commands that require
1527 input. Reimplement the goto, find and findbackwards commands as
1531 input. Reimplement the goto, find and findbackwards commands as
1528 subclasses of _CommandInput. Add an input history and keymaps to those
1532 subclasses of _CommandInput. Add an input history and keymaps to those
1529 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1533 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1530 execute commands.
1534 execute commands.
1531
1535
1532 2006-06-07 Ville Vainio <vivainio@gmail.com>
1536 2006-06-07 Ville Vainio <vivainio@gmail.com>
1533
1537
1534 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1538 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1535 running the batch files instead of leaving the session open.
1539 running the batch files instead of leaving the session open.
1536
1540
1537 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1541 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1538
1542
1539 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1543 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1540 the original fix was incomplete. Patch submitted by W. Maier.
1544 the original fix was incomplete. Patch submitted by W. Maier.
1541
1545
1542 2006-06-07 Ville Vainio <vivainio@gmail.com>
1546 2006-06-07 Ville Vainio <vivainio@gmail.com>
1543
1547
1544 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1548 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1545 Confirmation prompts can be supressed by 'quiet' option.
1549 Confirmation prompts can be supressed by 'quiet' option.
1546 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1550 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1547
1551
1548 2006-06-06 *** Released version 0.7.2
1552 2006-06-06 *** Released version 0.7.2
1549
1553
1550 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1554 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1551
1555
1552 * IPython/Release.py (version): Made 0.7.2 final for release.
1556 * IPython/Release.py (version): Made 0.7.2 final for release.
1553 Repo tagged and release cut.
1557 Repo tagged and release cut.
1554
1558
1555 2006-06-05 Ville Vainio <vivainio@gmail.com>
1559 2006-06-05 Ville Vainio <vivainio@gmail.com>
1556
1560
1557 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1561 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1558 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1562 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1559
1563
1560 * upgrade_dir.py: try import 'path' module a bit harder
1564 * upgrade_dir.py: try import 'path' module a bit harder
1561 (for %upgrade)
1565 (for %upgrade)
1562
1566
1563 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1567 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1564
1568
1565 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1569 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1566 instead of looping 20 times.
1570 instead of looping 20 times.
1567
1571
1568 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1572 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1569 correctly at initialization time. Bug reported by Krishna Mohan
1573 correctly at initialization time. Bug reported by Krishna Mohan
1570 Gundu <gkmohan-AT-gmail.com> on the user list.
1574 Gundu <gkmohan-AT-gmail.com> on the user list.
1571
1575
1572 * IPython/Release.py (version): Mark 0.7.2 version to start
1576 * IPython/Release.py (version): Mark 0.7.2 version to start
1573 testing for release on 06/06.
1577 testing for release on 06/06.
1574
1578
1575 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1579 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1576
1580
1577 * scripts/irunner: thin script interface so users don't have to
1581 * scripts/irunner: thin script interface so users don't have to
1578 find the module and call it as an executable, since modules rarely
1582 find the module and call it as an executable, since modules rarely
1579 live in people's PATH.
1583 live in people's PATH.
1580
1584
1581 * IPython/irunner.py (InteractiveRunner.__init__): added
1585 * IPython/irunner.py (InteractiveRunner.__init__): added
1582 delaybeforesend attribute to control delays with newer versions of
1586 delaybeforesend attribute to control delays with newer versions of
1583 pexpect. Thanks to detailed help from pexpect's author, Noah
1587 pexpect. Thanks to detailed help from pexpect's author, Noah
1584 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1588 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1585 correctly (it works in NoColor mode).
1589 correctly (it works in NoColor mode).
1586
1590
1587 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1591 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1588 SAGE list, from improper log() calls.
1592 SAGE list, from improper log() calls.
1589
1593
1590 2006-05-31 Ville Vainio <vivainio@gmail.com>
1594 2006-05-31 Ville Vainio <vivainio@gmail.com>
1591
1595
1592 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1596 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1593 with args in parens to work correctly with dirs that have spaces.
1597 with args in parens to work correctly with dirs that have spaces.
1594
1598
1595 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1599 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1596
1600
1597 * IPython/Logger.py (Logger.logstart): add option to log raw input
1601 * IPython/Logger.py (Logger.logstart): add option to log raw input
1598 instead of the processed one. A -r flag was added to the
1602 instead of the processed one. A -r flag was added to the
1599 %logstart magic used for controlling logging.
1603 %logstart magic used for controlling logging.
1600
1604
1601 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1605 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1602
1606
1603 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1607 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1604 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1608 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1605 recognize the option. After a bug report by Will Maier. This
1609 recognize the option. After a bug report by Will Maier. This
1606 closes #64 (will do it after confirmation from W. Maier).
1610 closes #64 (will do it after confirmation from W. Maier).
1607
1611
1608 * IPython/irunner.py: New module to run scripts as if manually
1612 * IPython/irunner.py: New module to run scripts as if manually
1609 typed into an interactive environment, based on pexpect. After a
1613 typed into an interactive environment, based on pexpect. After a
1610 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1614 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1611 ipython-user list. Simple unittests in the tests/ directory.
1615 ipython-user list. Simple unittests in the tests/ directory.
1612
1616
1613 * tools/release: add Will Maier, OpenBSD port maintainer, to
1617 * tools/release: add Will Maier, OpenBSD port maintainer, to
1614 recepients list. We are now officially part of the OpenBSD ports:
1618 recepients list. We are now officially part of the OpenBSD ports:
1615 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1619 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1616 work.
1620 work.
1617
1621
1618 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1622 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1619
1623
1620 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1624 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1621 so that it doesn't break tkinter apps.
1625 so that it doesn't break tkinter apps.
1622
1626
1623 * IPython/iplib.py (_prefilter): fix bug where aliases would
1627 * IPython/iplib.py (_prefilter): fix bug where aliases would
1624 shadow variables when autocall was fully off. Reported by SAGE
1628 shadow variables when autocall was fully off. Reported by SAGE
1625 author William Stein.
1629 author William Stein.
1626
1630
1627 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1631 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1628 at what detail level strings are computed when foo? is requested.
1632 at what detail level strings are computed when foo? is requested.
1629 This allows users to ask for example that the string form of an
1633 This allows users to ask for example that the string form of an
1630 object is only computed when foo?? is called, or even never, by
1634 object is only computed when foo?? is called, or even never, by
1631 setting the object_info_string_level >= 2 in the configuration
1635 setting the object_info_string_level >= 2 in the configuration
1632 file. This new option has been added and documented. After a
1636 file. This new option has been added and documented. After a
1633 request by SAGE to be able to control the printing of very large
1637 request by SAGE to be able to control the printing of very large
1634 objects more easily.
1638 objects more easily.
1635
1639
1636 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1640 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1637
1641
1638 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1642 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1639 from sys.argv, to be 100% consistent with how Python itself works
1643 from sys.argv, to be 100% consistent with how Python itself works
1640 (as seen for example with python -i file.py). After a bug report
1644 (as seen for example with python -i file.py). After a bug report
1641 by Jeffrey Collins.
1645 by Jeffrey Collins.
1642
1646
1643 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1647 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1644 nasty bug which was preventing custom namespaces with -pylab,
1648 nasty bug which was preventing custom namespaces with -pylab,
1645 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1649 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1646 compatibility (long gone from mpl).
1650 compatibility (long gone from mpl).
1647
1651
1648 * IPython/ipapi.py (make_session): name change: create->make. We
1652 * IPython/ipapi.py (make_session): name change: create->make. We
1649 use make in other places (ipmaker,...), it's shorter and easier to
1653 use make in other places (ipmaker,...), it's shorter and easier to
1650 type and say, etc. I'm trying to clean things before 0.7.2 so
1654 type and say, etc. I'm trying to clean things before 0.7.2 so
1651 that I can keep things stable wrt to ipapi in the chainsaw branch.
1655 that I can keep things stable wrt to ipapi in the chainsaw branch.
1652
1656
1653 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1657 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1654 python-mode recognizes our debugger mode. Add support for
1658 python-mode recognizes our debugger mode. Add support for
1655 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1659 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1656 <m.liu.jin-AT-gmail.com> originally written by
1660 <m.liu.jin-AT-gmail.com> originally written by
1657 doxgen-AT-newsmth.net (with minor modifications for xemacs
1661 doxgen-AT-newsmth.net (with minor modifications for xemacs
1658 compatibility)
1662 compatibility)
1659
1663
1660 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1664 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1661 tracebacks when walking the stack so that the stack tracking system
1665 tracebacks when walking the stack so that the stack tracking system
1662 in emacs' python-mode can identify the frames correctly.
1666 in emacs' python-mode can identify the frames correctly.
1663
1667
1664 * IPython/ipmaker.py (make_IPython): make the internal (and
1668 * IPython/ipmaker.py (make_IPython): make the internal (and
1665 default config) autoedit_syntax value false by default. Too many
1669 default config) autoedit_syntax value false by default. Too many
1666 users have complained to me (both on and off-list) about problems
1670 users have complained to me (both on and off-list) about problems
1667 with this option being on by default, so I'm making it default to
1671 with this option being on by default, so I'm making it default to
1668 off. It can still be enabled by anyone via the usual mechanisms.
1672 off. It can still be enabled by anyone via the usual mechanisms.
1669
1673
1670 * IPython/completer.py (Completer.attr_matches): add support for
1674 * IPython/completer.py (Completer.attr_matches): add support for
1671 PyCrust-style _getAttributeNames magic method. Patch contributed
1675 PyCrust-style _getAttributeNames magic method. Patch contributed
1672 by <mscott-AT-goldenspud.com>. Closes #50.
1676 by <mscott-AT-goldenspud.com>. Closes #50.
1673
1677
1674 * IPython/iplib.py (InteractiveShell.__init__): remove the
1678 * IPython/iplib.py (InteractiveShell.__init__): remove the
1675 deletion of exit/quit from __builtin__, which can break
1679 deletion of exit/quit from __builtin__, which can break
1676 third-party tools like the Zope debugging console. The
1680 third-party tools like the Zope debugging console. The
1677 %exit/%quit magics remain. In general, it's probably a good idea
1681 %exit/%quit magics remain. In general, it's probably a good idea
1678 not to delete anything from __builtin__, since we never know what
1682 not to delete anything from __builtin__, since we never know what
1679 that will break. In any case, python now (for 2.5) will support
1683 that will break. In any case, python now (for 2.5) will support
1680 'real' exit/quit, so this issue is moot. Closes #55.
1684 'real' exit/quit, so this issue is moot. Closes #55.
1681
1685
1682 * IPython/genutils.py (with_obj): rename the 'with' function to
1686 * IPython/genutils.py (with_obj): rename the 'with' function to
1683 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1687 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1684 becomes a language keyword. Closes #53.
1688 becomes a language keyword. Closes #53.
1685
1689
1686 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1690 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1687 __file__ attribute to this so it fools more things into thinking
1691 __file__ attribute to this so it fools more things into thinking
1688 it is a real module. Closes #59.
1692 it is a real module. Closes #59.
1689
1693
1690 * IPython/Magic.py (magic_edit): add -n option to open the editor
1694 * IPython/Magic.py (magic_edit): add -n option to open the editor
1691 at a specific line number. After a patch by Stefan van der Walt.
1695 at a specific line number. After a patch by Stefan van der Walt.
1692
1696
1693 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1697 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1694
1698
1695 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1699 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1696 reason the file could not be opened. After automatic crash
1700 reason the file could not be opened. After automatic crash
1697 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1701 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1698 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1702 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1699 (_should_recompile): Don't fire editor if using %bg, since there
1703 (_should_recompile): Don't fire editor if using %bg, since there
1700 is no file in the first place. From the same report as above.
1704 is no file in the first place. From the same report as above.
1701 (raw_input): protect against faulty third-party prefilters. After
1705 (raw_input): protect against faulty third-party prefilters. After
1702 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1706 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1703 while running under SAGE.
1707 while running under SAGE.
1704
1708
1705 2006-05-23 Ville Vainio <vivainio@gmail.com>
1709 2006-05-23 Ville Vainio <vivainio@gmail.com>
1706
1710
1707 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1711 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1708 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1712 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1709 now returns None (again), unless dummy is specifically allowed by
1713 now returns None (again), unless dummy is specifically allowed by
1710 ipapi.get(allow_dummy=True).
1714 ipapi.get(allow_dummy=True).
1711
1715
1712 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1716 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1713
1717
1714 * IPython: remove all 2.2-compatibility objects and hacks from
1718 * IPython: remove all 2.2-compatibility objects and hacks from
1715 everywhere, since we only support 2.3 at this point. Docs
1719 everywhere, since we only support 2.3 at this point. Docs
1716 updated.
1720 updated.
1717
1721
1718 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1722 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1719 Anything requiring extra validation can be turned into a Python
1723 Anything requiring extra validation can be turned into a Python
1720 property in the future. I used a property for the db one b/c
1724 property in the future. I used a property for the db one b/c
1721 there was a nasty circularity problem with the initialization
1725 there was a nasty circularity problem with the initialization
1722 order, which right now I don't have time to clean up.
1726 order, which right now I don't have time to clean up.
1723
1727
1724 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1728 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1725 another locking bug reported by Jorgen. I'm not 100% sure though,
1729 another locking bug reported by Jorgen. I'm not 100% sure though,
1726 so more testing is needed...
1730 so more testing is needed...
1727
1731
1728 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1732 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1729
1733
1730 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1734 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1731 local variables from any routine in user code (typically executed
1735 local variables from any routine in user code (typically executed
1732 with %run) directly into the interactive namespace. Very useful
1736 with %run) directly into the interactive namespace. Very useful
1733 when doing complex debugging.
1737 when doing complex debugging.
1734 (IPythonNotRunning): Changed the default None object to a dummy
1738 (IPythonNotRunning): Changed the default None object to a dummy
1735 whose attributes can be queried as well as called without
1739 whose attributes can be queried as well as called without
1736 exploding, to ease writing code which works transparently both in
1740 exploding, to ease writing code which works transparently both in
1737 and out of ipython and uses some of this API.
1741 and out of ipython and uses some of this API.
1738
1742
1739 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1743 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1740
1744
1741 * IPython/hooks.py (result_display): Fix the fact that our display
1745 * IPython/hooks.py (result_display): Fix the fact that our display
1742 hook was using str() instead of repr(), as the default python
1746 hook was using str() instead of repr(), as the default python
1743 console does. This had gone unnoticed b/c it only happened if
1747 console does. This had gone unnoticed b/c it only happened if
1744 %Pprint was off, but the inconsistency was there.
1748 %Pprint was off, but the inconsistency was there.
1745
1749
1746 2006-05-15 Ville Vainio <vivainio@gmail.com>
1750 2006-05-15 Ville Vainio <vivainio@gmail.com>
1747
1751
1748 * Oinspect.py: Only show docstring for nonexisting/binary files
1752 * Oinspect.py: Only show docstring for nonexisting/binary files
1749 when doing object??, closing ticket #62
1753 when doing object??, closing ticket #62
1750
1754
1751 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1755 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1752
1756
1753 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1757 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1754 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1758 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1755 was being released in a routine which hadn't checked if it had
1759 was being released in a routine which hadn't checked if it had
1756 been the one to acquire it.
1760 been the one to acquire it.
1757
1761
1758 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1762 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1759
1763
1760 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1764 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1761
1765
1762 2006-04-11 Ville Vainio <vivainio@gmail.com>
1766 2006-04-11 Ville Vainio <vivainio@gmail.com>
1763
1767
1764 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1768 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1765 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1769 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1766 prefilters, allowing stuff like magics and aliases in the file.
1770 prefilters, allowing stuff like magics and aliases in the file.
1767
1771
1768 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1772 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1769 added. Supported now are "%clear in" and "%clear out" (clear input and
1773 added. Supported now are "%clear in" and "%clear out" (clear input and
1770 output history, respectively). Also fixed CachedOutput.flush to
1774 output history, respectively). Also fixed CachedOutput.flush to
1771 properly flush the output cache.
1775 properly flush the output cache.
1772
1776
1773 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1777 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1774 half-success (and fail explicitly).
1778 half-success (and fail explicitly).
1775
1779
1776 2006-03-28 Ville Vainio <vivainio@gmail.com>
1780 2006-03-28 Ville Vainio <vivainio@gmail.com>
1777
1781
1778 * iplib.py: Fix quoting of aliases so that only argless ones
1782 * iplib.py: Fix quoting of aliases so that only argless ones
1779 are quoted
1783 are quoted
1780
1784
1781 2006-03-28 Ville Vainio <vivainio@gmail.com>
1785 2006-03-28 Ville Vainio <vivainio@gmail.com>
1782
1786
1783 * iplib.py: Quote aliases with spaces in the name.
1787 * iplib.py: Quote aliases with spaces in the name.
1784 "c:\program files\blah\bin" is now legal alias target.
1788 "c:\program files\blah\bin" is now legal alias target.
1785
1789
1786 * ext_rehashdir.py: Space no longer allowed as arg
1790 * ext_rehashdir.py: Space no longer allowed as arg
1787 separator, since space is legal in path names.
1791 separator, since space is legal in path names.
1788
1792
1789 2006-03-16 Ville Vainio <vivainio@gmail.com>
1793 2006-03-16 Ville Vainio <vivainio@gmail.com>
1790
1794
1791 * upgrade_dir.py: Take path.py from Extensions, correcting
1795 * upgrade_dir.py: Take path.py from Extensions, correcting
1792 %upgrade magic
1796 %upgrade magic
1793
1797
1794 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1798 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1795
1799
1796 * hooks.py: Only enclose editor binary in quotes if legal and
1800 * hooks.py: Only enclose editor binary in quotes if legal and
1797 necessary (space in the name, and is an existing file). Fixes a bug
1801 necessary (space in the name, and is an existing file). Fixes a bug
1798 reported by Zachary Pincus.
1802 reported by Zachary Pincus.
1799
1803
1800 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1804 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1801
1805
1802 * Manual: thanks to a tip on proper color handling for Emacs, by
1806 * Manual: thanks to a tip on proper color handling for Emacs, by
1803 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1807 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1804
1808
1805 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1809 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1806 by applying the provided patch. Thanks to Liu Jin
1810 by applying the provided patch. Thanks to Liu Jin
1807 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1811 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1808 XEmacs/Linux, I'm trusting the submitter that it actually helps
1812 XEmacs/Linux, I'm trusting the submitter that it actually helps
1809 under win32/GNU Emacs. Will revisit if any problems are reported.
1813 under win32/GNU Emacs. Will revisit if any problems are reported.
1810
1814
1811 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1815 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1812
1816
1813 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1817 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1814 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1818 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1815
1819
1816 2006-03-12 Ville Vainio <vivainio@gmail.com>
1820 2006-03-12 Ville Vainio <vivainio@gmail.com>
1817
1821
1818 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1822 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1819 Torsten Marek.
1823 Torsten Marek.
1820
1824
1821 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1825 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1822
1826
1823 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1827 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1824 line ranges works again.
1828 line ranges works again.
1825
1829
1826 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1830 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1827
1831
1828 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1832 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1829 and friends, after a discussion with Zach Pincus on ipython-user.
1833 and friends, after a discussion with Zach Pincus on ipython-user.
1830 I'm not 100% sure, but after thinking about it quite a bit, it may
1834 I'm not 100% sure, but after thinking about it quite a bit, it may
1831 be OK. Testing with the multithreaded shells didn't reveal any
1835 be OK. Testing with the multithreaded shells didn't reveal any
1832 problems, but let's keep an eye out.
1836 problems, but let's keep an eye out.
1833
1837
1834 In the process, I fixed a few things which were calling
1838 In the process, I fixed a few things which were calling
1835 self.InteractiveTB() directly (like safe_execfile), which is a
1839 self.InteractiveTB() directly (like safe_execfile), which is a
1836 mistake: ALL exception reporting should be done by calling
1840 mistake: ALL exception reporting should be done by calling
1837 self.showtraceback(), which handles state and tab-completion and
1841 self.showtraceback(), which handles state and tab-completion and
1838 more.
1842 more.
1839
1843
1840 2006-03-01 Ville Vainio <vivainio@gmail.com>
1844 2006-03-01 Ville Vainio <vivainio@gmail.com>
1841
1845
1842 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1846 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1843 To use, do "from ipipe import *".
1847 To use, do "from ipipe import *".
1844
1848
1845 2006-02-24 Ville Vainio <vivainio@gmail.com>
1849 2006-02-24 Ville Vainio <vivainio@gmail.com>
1846
1850
1847 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1851 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1848 "cleanly" and safely than the older upgrade mechanism.
1852 "cleanly" and safely than the older upgrade mechanism.
1849
1853
1850 2006-02-21 Ville Vainio <vivainio@gmail.com>
1854 2006-02-21 Ville Vainio <vivainio@gmail.com>
1851
1855
1852 * Magic.py: %save works again.
1856 * Magic.py: %save works again.
1853
1857
1854 2006-02-15 Ville Vainio <vivainio@gmail.com>
1858 2006-02-15 Ville Vainio <vivainio@gmail.com>
1855
1859
1856 * Magic.py: %Pprint works again
1860 * Magic.py: %Pprint works again
1857
1861
1858 * Extensions/ipy_sane_defaults.py: Provide everything provided
1862 * Extensions/ipy_sane_defaults.py: Provide everything provided
1859 in default ipythonrc, to make it possible to have a completely empty
1863 in default ipythonrc, to make it possible to have a completely empty
1860 ipythonrc (and thus completely rc-file free configuration)
1864 ipythonrc (and thus completely rc-file free configuration)
1861
1865
1862 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1866 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1863
1867
1864 * IPython/hooks.py (editor): quote the call to the editor command,
1868 * IPython/hooks.py (editor): quote the call to the editor command,
1865 to allow commands with spaces in them. Problem noted by watching
1869 to allow commands with spaces in them. Problem noted by watching
1866 Ian Oswald's video about textpad under win32 at
1870 Ian Oswald's video about textpad under win32 at
1867 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1871 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1868
1872
1869 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1873 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1870 describing magics (we haven't used @ for a loong time).
1874 describing magics (we haven't used @ for a loong time).
1871
1875
1872 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1876 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1873 contributed by marienz to close
1877 contributed by marienz to close
1874 http://www.scipy.net/roundup/ipython/issue53.
1878 http://www.scipy.net/roundup/ipython/issue53.
1875
1879
1876 2006-02-10 Ville Vainio <vivainio@gmail.com>
1880 2006-02-10 Ville Vainio <vivainio@gmail.com>
1877
1881
1878 * genutils.py: getoutput now works in win32 too
1882 * genutils.py: getoutput now works in win32 too
1879
1883
1880 * completer.py: alias and magic completion only invoked
1884 * completer.py: alias and magic completion only invoked
1881 at the first "item" in the line, to avoid "cd %store"
1885 at the first "item" in the line, to avoid "cd %store"
1882 nonsense.
1886 nonsense.
1883
1887
1884 2006-02-09 Ville Vainio <vivainio@gmail.com>
1888 2006-02-09 Ville Vainio <vivainio@gmail.com>
1885
1889
1886 * test/*: Added a unit testing framework (finally).
1890 * test/*: Added a unit testing framework (finally).
1887 '%run runtests.py' to run test_*.
1891 '%run runtests.py' to run test_*.
1888
1892
1889 * ipapi.py: Exposed runlines and set_custom_exc
1893 * ipapi.py: Exposed runlines and set_custom_exc
1890
1894
1891 2006-02-07 Ville Vainio <vivainio@gmail.com>
1895 2006-02-07 Ville Vainio <vivainio@gmail.com>
1892
1896
1893 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1897 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1894 instead use "f(1 2)" as before.
1898 instead use "f(1 2)" as before.
1895
1899
1896 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1900 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1897
1901
1898 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1902 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1899 facilities, for demos processed by the IPython input filter
1903 facilities, for demos processed by the IPython input filter
1900 (IPythonDemo), and for running a script one-line-at-a-time as a
1904 (IPythonDemo), and for running a script one-line-at-a-time as a
1901 demo, both for pure Python (LineDemo) and for IPython-processed
1905 demo, both for pure Python (LineDemo) and for IPython-processed
1902 input (IPythonLineDemo). After a request by Dave Kohel, from the
1906 input (IPythonLineDemo). After a request by Dave Kohel, from the
1903 SAGE team.
1907 SAGE team.
1904 (Demo.edit): added an edit() method to the demo objects, to edit
1908 (Demo.edit): added an edit() method to the demo objects, to edit
1905 the in-memory copy of the last executed block.
1909 the in-memory copy of the last executed block.
1906
1910
1907 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1911 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1908 processing to %edit, %macro and %save. These commands can now be
1912 processing to %edit, %macro and %save. These commands can now be
1909 invoked on the unprocessed input as it was typed by the user
1913 invoked on the unprocessed input as it was typed by the user
1910 (without any prefilters applied). After requests by the SAGE team
1914 (without any prefilters applied). After requests by the SAGE team
1911 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1915 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1912
1916
1913 2006-02-01 Ville Vainio <vivainio@gmail.com>
1917 2006-02-01 Ville Vainio <vivainio@gmail.com>
1914
1918
1915 * setup.py, eggsetup.py: easy_install ipython==dev works
1919 * setup.py, eggsetup.py: easy_install ipython==dev works
1916 correctly now (on Linux)
1920 correctly now (on Linux)
1917
1921
1918 * ipy_user_conf,ipmaker: user config changes, removed spurious
1922 * ipy_user_conf,ipmaker: user config changes, removed spurious
1919 warnings
1923 warnings
1920
1924
1921 * iplib: if rc.banner is string, use it as is.
1925 * iplib: if rc.banner is string, use it as is.
1922
1926
1923 * Magic: %pycat accepts a string argument and pages it's contents.
1927 * Magic: %pycat accepts a string argument and pages it's contents.
1924
1928
1925
1929
1926 2006-01-30 Ville Vainio <vivainio@gmail.com>
1930 2006-01-30 Ville Vainio <vivainio@gmail.com>
1927
1931
1928 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1932 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1929 Now %store and bookmarks work through PickleShare, meaning that
1933 Now %store and bookmarks work through PickleShare, meaning that
1930 concurrent access is possible and all ipython sessions see the
1934 concurrent access is possible and all ipython sessions see the
1931 same database situation all the time, instead of snapshot of
1935 same database situation all the time, instead of snapshot of
1932 the situation when the session was started. Hence, %bookmark
1936 the situation when the session was started. Hence, %bookmark
1933 results are immediately accessible from othes sessions. The database
1937 results are immediately accessible from othes sessions. The database
1934 is also available for use by user extensions. See:
1938 is also available for use by user extensions. See:
1935 http://www.python.org/pypi/pickleshare
1939 http://www.python.org/pypi/pickleshare
1936
1940
1937 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1941 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1938
1942
1939 * aliases can now be %store'd
1943 * aliases can now be %store'd
1940
1944
1941 * path.py moved to Extensions so that pickleshare does not need
1945 * path.py moved to Extensions so that pickleshare does not need
1942 IPython-specific import. Extensions added to pythonpath right
1946 IPython-specific import. Extensions added to pythonpath right
1943 at __init__.
1947 at __init__.
1944
1948
1945 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1949 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1946 called with _ip.system and the pre-transformed command string.
1950 called with _ip.system and the pre-transformed command string.
1947
1951
1948 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1952 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1949
1953
1950 * IPython/iplib.py (interact): Fix that we were not catching
1954 * IPython/iplib.py (interact): Fix that we were not catching
1951 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1955 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1952 logic here had to change, but it's fixed now.
1956 logic here had to change, but it's fixed now.
1953
1957
1954 2006-01-29 Ville Vainio <vivainio@gmail.com>
1958 2006-01-29 Ville Vainio <vivainio@gmail.com>
1955
1959
1956 * iplib.py: Try to import pyreadline on Windows.
1960 * iplib.py: Try to import pyreadline on Windows.
1957
1961
1958 2006-01-27 Ville Vainio <vivainio@gmail.com>
1962 2006-01-27 Ville Vainio <vivainio@gmail.com>
1959
1963
1960 * iplib.py: Expose ipapi as _ip in builtin namespace.
1964 * iplib.py: Expose ipapi as _ip in builtin namespace.
1961 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1965 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1962 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1966 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1963 syntax now produce _ip.* variant of the commands.
1967 syntax now produce _ip.* variant of the commands.
1964
1968
1965 * "_ip.options().autoedit_syntax = 2" automatically throws
1969 * "_ip.options().autoedit_syntax = 2" automatically throws
1966 user to editor for syntax error correction without prompting.
1970 user to editor for syntax error correction without prompting.
1967
1971
1968 2006-01-27 Ville Vainio <vivainio@gmail.com>
1972 2006-01-27 Ville Vainio <vivainio@gmail.com>
1969
1973
1970 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1974 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1971 'ipython' at argv[0]) executed through command line.
1975 'ipython' at argv[0]) executed through command line.
1972 NOTE: this DEPRECATES calling ipython with multiple scripts
1976 NOTE: this DEPRECATES calling ipython with multiple scripts
1973 ("ipython a.py b.py c.py")
1977 ("ipython a.py b.py c.py")
1974
1978
1975 * iplib.py, hooks.py: Added configurable input prefilter,
1979 * iplib.py, hooks.py: Added configurable input prefilter,
1976 named 'input_prefilter'. See ext_rescapture.py for example
1980 named 'input_prefilter'. See ext_rescapture.py for example
1977 usage.
1981 usage.
1978
1982
1979 * ext_rescapture.py, Magic.py: Better system command output capture
1983 * ext_rescapture.py, Magic.py: Better system command output capture
1980 through 'var = !ls' (deprecates user-visible %sc). Same notation
1984 through 'var = !ls' (deprecates user-visible %sc). Same notation
1981 applies for magics, 'var = %alias' assigns alias list to var.
1985 applies for magics, 'var = %alias' assigns alias list to var.
1982
1986
1983 * ipapi.py: added meta() for accessing extension-usable data store.
1987 * ipapi.py: added meta() for accessing extension-usable data store.
1984
1988
1985 * iplib.py: added InteractiveShell.getapi(). New magics should be
1989 * iplib.py: added InteractiveShell.getapi(). New magics should be
1986 written doing self.getapi() instead of using the shell directly.
1990 written doing self.getapi() instead of using the shell directly.
1987
1991
1988 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1992 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1989 %store foo >> ~/myfoo.txt to store variables to files (in clean
1993 %store foo >> ~/myfoo.txt to store variables to files (in clean
1990 textual form, not a restorable pickle).
1994 textual form, not a restorable pickle).
1991
1995
1992 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1996 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1993
1997
1994 * usage.py, Magic.py: added %quickref
1998 * usage.py, Magic.py: added %quickref
1995
1999
1996 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
2000 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1997
2001
1998 * GetoptErrors when invoking magics etc. with wrong args
2002 * GetoptErrors when invoking magics etc. with wrong args
1999 are now more helpful:
2003 are now more helpful:
2000 GetoptError: option -l not recognized (allowed: "qb" )
2004 GetoptError: option -l not recognized (allowed: "qb" )
2001
2005
2002 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
2006 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
2003
2007
2004 * IPython/demo.py (Demo.show): Flush stdout after each block, so
2008 * IPython/demo.py (Demo.show): Flush stdout after each block, so
2005 computationally intensive blocks don't appear to stall the demo.
2009 computationally intensive blocks don't appear to stall the demo.
2006
2010
2007 2006-01-24 Ville Vainio <vivainio@gmail.com>
2011 2006-01-24 Ville Vainio <vivainio@gmail.com>
2008
2012
2009 * iplib.py, hooks.py: 'result_display' hook can return a non-None
2013 * iplib.py, hooks.py: 'result_display' hook can return a non-None
2010 value to manipulate resulting history entry.
2014 value to manipulate resulting history entry.
2011
2015
2012 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
2016 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
2013 to instance methods of IPApi class, to make extending an embedded
2017 to instance methods of IPApi class, to make extending an embedded
2014 IPython feasible. See ext_rehashdir.py for example usage.
2018 IPython feasible. See ext_rehashdir.py for example usage.
2015
2019
2016 * Merged 1071-1076 from branches/0.7.1
2020 * Merged 1071-1076 from branches/0.7.1
2017
2021
2018
2022
2019 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
2023 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
2020
2024
2021 * tools/release (daystamp): Fix build tools to use the new
2025 * tools/release (daystamp): Fix build tools to use the new
2022 eggsetup.py script to build lightweight eggs.
2026 eggsetup.py script to build lightweight eggs.
2023
2027
2024 * Applied changesets 1062 and 1064 before 0.7.1 release.
2028 * Applied changesets 1062 and 1064 before 0.7.1 release.
2025
2029
2026 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
2030 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
2027 see the raw input history (without conversions like %ls ->
2031 see the raw input history (without conversions like %ls ->
2028 ipmagic("ls")). After a request from W. Stein, SAGE
2032 ipmagic("ls")). After a request from W. Stein, SAGE
2029 (http://modular.ucsd.edu/sage) developer. This information is
2033 (http://modular.ucsd.edu/sage) developer. This information is
2030 stored in the input_hist_raw attribute of the IPython instance, so
2034 stored in the input_hist_raw attribute of the IPython instance, so
2031 developers can access it if needed (it's an InputList instance).
2035 developers can access it if needed (it's an InputList instance).
2032
2036
2033 * Versionstring = 0.7.2.svn
2037 * Versionstring = 0.7.2.svn
2034
2038
2035 * eggsetup.py: A separate script for constructing eggs, creates
2039 * eggsetup.py: A separate script for constructing eggs, creates
2036 proper launch scripts even on Windows (an .exe file in
2040 proper launch scripts even on Windows (an .exe file in
2037 \python24\scripts).
2041 \python24\scripts).
2038
2042
2039 * ipapi.py: launch_new_instance, launch entry point needed for the
2043 * ipapi.py: launch_new_instance, launch entry point needed for the
2040 egg.
2044 egg.
2041
2045
2042 2006-01-23 Ville Vainio <vivainio@gmail.com>
2046 2006-01-23 Ville Vainio <vivainio@gmail.com>
2043
2047
2044 * Added %cpaste magic for pasting python code
2048 * Added %cpaste magic for pasting python code
2045
2049
2046 2006-01-22 Ville Vainio <vivainio@gmail.com>
2050 2006-01-22 Ville Vainio <vivainio@gmail.com>
2047
2051
2048 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2052 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2049
2053
2050 * Versionstring = 0.7.2.svn
2054 * Versionstring = 0.7.2.svn
2051
2055
2052 * eggsetup.py: A separate script for constructing eggs, creates
2056 * eggsetup.py: A separate script for constructing eggs, creates
2053 proper launch scripts even on Windows (an .exe file in
2057 proper launch scripts even on Windows (an .exe file in
2054 \python24\scripts).
2058 \python24\scripts).
2055
2059
2056 * ipapi.py: launch_new_instance, launch entry point needed for the
2060 * ipapi.py: launch_new_instance, launch entry point needed for the
2057 egg.
2061 egg.
2058
2062
2059 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2063 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2060
2064
2061 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2065 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2062 %pfile foo would print the file for foo even if it was a binary.
2066 %pfile foo would print the file for foo even if it was a binary.
2063 Now, extensions '.so' and '.dll' are skipped.
2067 Now, extensions '.so' and '.dll' are skipped.
2064
2068
2065 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2069 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2066 bug, where macros would fail in all threaded modes. I'm not 100%
2070 bug, where macros would fail in all threaded modes. I'm not 100%
2067 sure, so I'm going to put out an rc instead of making a release
2071 sure, so I'm going to put out an rc instead of making a release
2068 today, and wait for feedback for at least a few days.
2072 today, and wait for feedback for at least a few days.
2069
2073
2070 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2074 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2071 it...) the handling of pasting external code with autoindent on.
2075 it...) the handling of pasting external code with autoindent on.
2072 To get out of a multiline input, the rule will appear for most
2076 To get out of a multiline input, the rule will appear for most
2073 users unchanged: two blank lines or change the indent level
2077 users unchanged: two blank lines or change the indent level
2074 proposed by IPython. But there is a twist now: you can
2078 proposed by IPython. But there is a twist now: you can
2075 add/subtract only *one or two spaces*. If you add/subtract three
2079 add/subtract only *one or two spaces*. If you add/subtract three
2076 or more (unless you completely delete the line), IPython will
2080 or more (unless you completely delete the line), IPython will
2077 accept that line, and you'll need to enter a second one of pure
2081 accept that line, and you'll need to enter a second one of pure
2078 whitespace. I know it sounds complicated, but I can't find a
2082 whitespace. I know it sounds complicated, but I can't find a
2079 different solution that covers all the cases, with the right
2083 different solution that covers all the cases, with the right
2080 heuristics. Hopefully in actual use, nobody will really notice
2084 heuristics. Hopefully in actual use, nobody will really notice
2081 all these strange rules and things will 'just work'.
2085 all these strange rules and things will 'just work'.
2082
2086
2083 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2087 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2084
2088
2085 * IPython/iplib.py (interact): catch exceptions which can be
2089 * IPython/iplib.py (interact): catch exceptions which can be
2086 triggered asynchronously by signal handlers. Thanks to an
2090 triggered asynchronously by signal handlers. Thanks to an
2087 automatic crash report, submitted by Colin Kingsley
2091 automatic crash report, submitted by Colin Kingsley
2088 <tercel-AT-gentoo.org>.
2092 <tercel-AT-gentoo.org>.
2089
2093
2090 2006-01-20 Ville Vainio <vivainio@gmail.com>
2094 2006-01-20 Ville Vainio <vivainio@gmail.com>
2091
2095
2092 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2096 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2093 (%rehashdir, very useful, try it out) of how to extend ipython
2097 (%rehashdir, very useful, try it out) of how to extend ipython
2094 with new magics. Also added Extensions dir to pythonpath to make
2098 with new magics. Also added Extensions dir to pythonpath to make
2095 importing extensions easy.
2099 importing extensions easy.
2096
2100
2097 * %store now complains when trying to store interactively declared
2101 * %store now complains when trying to store interactively declared
2098 classes / instances of those classes.
2102 classes / instances of those classes.
2099
2103
2100 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2104 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2101 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2105 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2102 if they exist, and ipy_user_conf.py with some defaults is created for
2106 if they exist, and ipy_user_conf.py with some defaults is created for
2103 the user.
2107 the user.
2104
2108
2105 * Startup rehashing done by the config file, not InterpreterExec.
2109 * Startup rehashing done by the config file, not InterpreterExec.
2106 This means system commands are available even without selecting the
2110 This means system commands are available even without selecting the
2107 pysh profile. It's the sensible default after all.
2111 pysh profile. It's the sensible default after all.
2108
2112
2109 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2113 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2110
2114
2111 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2115 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2112 multiline code with autoindent on working. But I am really not
2116 multiline code with autoindent on working. But I am really not
2113 sure, so this needs more testing. Will commit a debug-enabled
2117 sure, so this needs more testing. Will commit a debug-enabled
2114 version for now, while I test it some more, so that Ville and
2118 version for now, while I test it some more, so that Ville and
2115 others may also catch any problems. Also made
2119 others may also catch any problems. Also made
2116 self.indent_current_str() a method, to ensure that there's no
2120 self.indent_current_str() a method, to ensure that there's no
2117 chance of the indent space count and the corresponding string
2121 chance of the indent space count and the corresponding string
2118 falling out of sync. All code needing the string should just call
2122 falling out of sync. All code needing the string should just call
2119 the method.
2123 the method.
2120
2124
2121 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2125 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2122
2126
2123 * IPython/Magic.py (magic_edit): fix check for when users don't
2127 * IPython/Magic.py (magic_edit): fix check for when users don't
2124 save their output files, the try/except was in the wrong section.
2128 save their output files, the try/except was in the wrong section.
2125
2129
2126 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2130 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2127
2131
2128 * IPython/Magic.py (magic_run): fix __file__ global missing from
2132 * IPython/Magic.py (magic_run): fix __file__ global missing from
2129 script's namespace when executed via %run. After a report by
2133 script's namespace when executed via %run. After a report by
2130 Vivian.
2134 Vivian.
2131
2135
2132 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2136 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2133 when using python 2.4. The parent constructor changed in 2.4, and
2137 when using python 2.4. The parent constructor changed in 2.4, and
2134 we need to track it directly (we can't call it, as it messes up
2138 we need to track it directly (we can't call it, as it messes up
2135 readline and tab-completion inside our pdb would stop working).
2139 readline and tab-completion inside our pdb would stop working).
2136 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2140 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2137
2141
2138 2006-01-16 Ville Vainio <vivainio@gmail.com>
2142 2006-01-16 Ville Vainio <vivainio@gmail.com>
2139
2143
2140 * Ipython/magic.py: Reverted back to old %edit functionality
2144 * Ipython/magic.py: Reverted back to old %edit functionality
2141 that returns file contents on exit.
2145 that returns file contents on exit.
2142
2146
2143 * IPython/path.py: Added Jason Orendorff's "path" module to
2147 * IPython/path.py: Added Jason Orendorff's "path" module to
2144 IPython tree, http://www.jorendorff.com/articles/python/path/.
2148 IPython tree, http://www.jorendorff.com/articles/python/path/.
2145 You can get path objects conveniently through %sc, and !!, e.g.:
2149 You can get path objects conveniently through %sc, and !!, e.g.:
2146 sc files=ls
2150 sc files=ls
2147 for p in files.paths: # or files.p
2151 for p in files.paths: # or files.p
2148 print p,p.mtime
2152 print p,p.mtime
2149
2153
2150 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2154 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2151 now work again without considering the exclusion regexp -
2155 now work again without considering the exclusion regexp -
2152 hence, things like ',foo my/path' turn to 'foo("my/path")'
2156 hence, things like ',foo my/path' turn to 'foo("my/path")'
2153 instead of syntax error.
2157 instead of syntax error.
2154
2158
2155
2159
2156 2006-01-14 Ville Vainio <vivainio@gmail.com>
2160 2006-01-14 Ville Vainio <vivainio@gmail.com>
2157
2161
2158 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2162 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2159 ipapi decorators for python 2.4 users, options() provides access to rc
2163 ipapi decorators for python 2.4 users, options() provides access to rc
2160 data.
2164 data.
2161
2165
2162 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2166 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2163 as path separators (even on Linux ;-). Space character after
2167 as path separators (even on Linux ;-). Space character after
2164 backslash (as yielded by tab completer) is still space;
2168 backslash (as yielded by tab completer) is still space;
2165 "%cd long\ name" works as expected.
2169 "%cd long\ name" works as expected.
2166
2170
2167 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2171 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2168 as "chain of command", with priority. API stays the same,
2172 as "chain of command", with priority. API stays the same,
2169 TryNext exception raised by a hook function signals that
2173 TryNext exception raised by a hook function signals that
2170 current hook failed and next hook should try handling it, as
2174 current hook failed and next hook should try handling it, as
2171 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2175 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2172 requested configurable display hook, which is now implemented.
2176 requested configurable display hook, which is now implemented.
2173
2177
2174 2006-01-13 Ville Vainio <vivainio@gmail.com>
2178 2006-01-13 Ville Vainio <vivainio@gmail.com>
2175
2179
2176 * IPython/platutils*.py: platform specific utility functions,
2180 * IPython/platutils*.py: platform specific utility functions,
2177 so far only set_term_title is implemented (change terminal
2181 so far only set_term_title is implemented (change terminal
2178 label in windowing systems). %cd now changes the title to
2182 label in windowing systems). %cd now changes the title to
2179 current dir.
2183 current dir.
2180
2184
2181 * IPython/Release.py: Added myself to "authors" list,
2185 * IPython/Release.py: Added myself to "authors" list,
2182 had to create new files.
2186 had to create new files.
2183
2187
2184 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2188 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2185 shell escape; not a known bug but had potential to be one in the
2189 shell escape; not a known bug but had potential to be one in the
2186 future.
2190 future.
2187
2191
2188 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2192 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2189 extension API for IPython! See the module for usage example. Fix
2193 extension API for IPython! See the module for usage example. Fix
2190 OInspect for docstring-less magic functions.
2194 OInspect for docstring-less magic functions.
2191
2195
2192
2196
2193 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2197 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2194
2198
2195 * IPython/iplib.py (raw_input): temporarily deactivate all
2199 * IPython/iplib.py (raw_input): temporarily deactivate all
2196 attempts at allowing pasting of code with autoindent on. It
2200 attempts at allowing pasting of code with autoindent on. It
2197 introduced bugs (reported by Prabhu) and I can't seem to find a
2201 introduced bugs (reported by Prabhu) and I can't seem to find a
2198 robust combination which works in all cases. Will have to revisit
2202 robust combination which works in all cases. Will have to revisit
2199 later.
2203 later.
2200
2204
2201 * IPython/genutils.py: remove isspace() function. We've dropped
2205 * IPython/genutils.py: remove isspace() function. We've dropped
2202 2.2 compatibility, so it's OK to use the string method.
2206 2.2 compatibility, so it's OK to use the string method.
2203
2207
2204 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2208 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2205
2209
2206 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2210 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2207 matching what NOT to autocall on, to include all python binary
2211 matching what NOT to autocall on, to include all python binary
2208 operators (including things like 'and', 'or', 'is' and 'in').
2212 operators (including things like 'and', 'or', 'is' and 'in').
2209 Prompted by a bug report on 'foo & bar', but I realized we had
2213 Prompted by a bug report on 'foo & bar', but I realized we had
2210 many more potential bug cases with other operators. The regexp is
2214 many more potential bug cases with other operators. The regexp is
2211 self.re_exclude_auto, it's fairly commented.
2215 self.re_exclude_auto, it's fairly commented.
2212
2216
2213 2006-01-12 Ville Vainio <vivainio@gmail.com>
2217 2006-01-12 Ville Vainio <vivainio@gmail.com>
2214
2218
2215 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2219 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2216 Prettified and hardened string/backslash quoting with ipsystem(),
2220 Prettified and hardened string/backslash quoting with ipsystem(),
2217 ipalias() and ipmagic(). Now even \ characters are passed to
2221 ipalias() and ipmagic(). Now even \ characters are passed to
2218 %magics, !shell escapes and aliases exactly as they are in the
2222 %magics, !shell escapes and aliases exactly as they are in the
2219 ipython command line. Should improve backslash experience,
2223 ipython command line. Should improve backslash experience,
2220 particularly in Windows (path delimiter for some commands that
2224 particularly in Windows (path delimiter for some commands that
2221 won't understand '/'), but Unix benefits as well (regexps). %cd
2225 won't understand '/'), but Unix benefits as well (regexps). %cd
2222 magic still doesn't support backslash path delimiters, though. Also
2226 magic still doesn't support backslash path delimiters, though. Also
2223 deleted all pretense of supporting multiline command strings in
2227 deleted all pretense of supporting multiline command strings in
2224 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2228 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2225
2229
2226 * doc/build_doc_instructions.txt added. Documentation on how to
2230 * doc/build_doc_instructions.txt added. Documentation on how to
2227 use doc/update_manual.py, added yesterday. Both files contributed
2231 use doc/update_manual.py, added yesterday. Both files contributed
2228 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2232 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2229 doc/*.sh for deprecation at a later date.
2233 doc/*.sh for deprecation at a later date.
2230
2234
2231 * /ipython.py Added ipython.py to root directory for
2235 * /ipython.py Added ipython.py to root directory for
2232 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2236 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2233 ipython.py) and development convenience (no need to keep doing
2237 ipython.py) and development convenience (no need to keep doing
2234 "setup.py install" between changes).
2238 "setup.py install" between changes).
2235
2239
2236 * Made ! and !! shell escapes work (again) in multiline expressions:
2240 * Made ! and !! shell escapes work (again) in multiline expressions:
2237 if 1:
2241 if 1:
2238 !ls
2242 !ls
2239 !!ls
2243 !!ls
2240
2244
2241 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2245 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2242
2246
2243 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2247 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2244 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2248 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2245 module in case-insensitive installation. Was causing crashes
2249 module in case-insensitive installation. Was causing crashes
2246 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2250 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2247
2251
2248 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2252 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2249 <marienz-AT-gentoo.org>, closes
2253 <marienz-AT-gentoo.org>, closes
2250 http://www.scipy.net/roundup/ipython/issue51.
2254 http://www.scipy.net/roundup/ipython/issue51.
2251
2255
2252 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2256 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2253
2257
2254 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2258 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2255 problem of excessive CPU usage under *nix and keyboard lag under
2259 problem of excessive CPU usage under *nix and keyboard lag under
2256 win32.
2260 win32.
2257
2261
2258 2006-01-10 *** Released version 0.7.0
2262 2006-01-10 *** Released version 0.7.0
2259
2263
2260 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2264 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2261
2265
2262 * IPython/Release.py (revision): tag version number to 0.7.0,
2266 * IPython/Release.py (revision): tag version number to 0.7.0,
2263 ready for release.
2267 ready for release.
2264
2268
2265 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2269 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2266 it informs the user of the name of the temp. file used. This can
2270 it informs the user of the name of the temp. file used. This can
2267 help if you decide later to reuse that same file, so you know
2271 help if you decide later to reuse that same file, so you know
2268 where to copy the info from.
2272 where to copy the info from.
2269
2273
2270 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2274 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2271
2275
2272 * setup_bdist_egg.py: little script to build an egg. Added
2276 * setup_bdist_egg.py: little script to build an egg. Added
2273 support in the release tools as well.
2277 support in the release tools as well.
2274
2278
2275 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2279 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2276
2280
2277 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2281 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2278 version selection (new -wxversion command line and ipythonrc
2282 version selection (new -wxversion command line and ipythonrc
2279 parameter). Patch contributed by Arnd Baecker
2283 parameter). Patch contributed by Arnd Baecker
2280 <arnd.baecker-AT-web.de>.
2284 <arnd.baecker-AT-web.de>.
2281
2285
2282 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2286 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2283 embedded instances, for variables defined at the interactive
2287 embedded instances, for variables defined at the interactive
2284 prompt of the embedded ipython. Reported by Arnd.
2288 prompt of the embedded ipython. Reported by Arnd.
2285
2289
2286 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2290 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2287 it can be used as a (stateful) toggle, or with a direct parameter.
2291 it can be used as a (stateful) toggle, or with a direct parameter.
2288
2292
2289 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2293 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2290 could be triggered in certain cases and cause the traceback
2294 could be triggered in certain cases and cause the traceback
2291 printer not to work.
2295 printer not to work.
2292
2296
2293 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2297 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2294
2298
2295 * IPython/iplib.py (_should_recompile): Small fix, closes
2299 * IPython/iplib.py (_should_recompile): Small fix, closes
2296 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2300 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2297
2301
2298 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2302 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2299
2303
2300 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2304 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2301 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2305 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2302 Moad for help with tracking it down.
2306 Moad for help with tracking it down.
2303
2307
2304 * IPython/iplib.py (handle_auto): fix autocall handling for
2308 * IPython/iplib.py (handle_auto): fix autocall handling for
2305 objects which support BOTH __getitem__ and __call__ (so that f [x]
2309 objects which support BOTH __getitem__ and __call__ (so that f [x]
2306 is left alone, instead of becoming f([x]) automatically).
2310 is left alone, instead of becoming f([x]) automatically).
2307
2311
2308 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2312 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2309 Ville's patch.
2313 Ville's patch.
2310
2314
2311 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2315 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2312
2316
2313 * IPython/iplib.py (handle_auto): changed autocall semantics to
2317 * IPython/iplib.py (handle_auto): changed autocall semantics to
2314 include 'smart' mode, where the autocall transformation is NOT
2318 include 'smart' mode, where the autocall transformation is NOT
2315 applied if there are no arguments on the line. This allows you to
2319 applied if there are no arguments on the line. This allows you to
2316 just type 'foo' if foo is a callable to see its internal form,
2320 just type 'foo' if foo is a callable to see its internal form,
2317 instead of having it called with no arguments (typically a
2321 instead of having it called with no arguments (typically a
2318 mistake). The old 'full' autocall still exists: for that, you
2322 mistake). The old 'full' autocall still exists: for that, you
2319 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2323 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2320
2324
2321 * IPython/completer.py (Completer.attr_matches): add
2325 * IPython/completer.py (Completer.attr_matches): add
2322 tab-completion support for Enthoughts' traits. After a report by
2326 tab-completion support for Enthoughts' traits. After a report by
2323 Arnd and a patch by Prabhu.
2327 Arnd and a patch by Prabhu.
2324
2328
2325 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2329 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2326
2330
2327 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2331 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2328 Schmolck's patch to fix inspect.getinnerframes().
2332 Schmolck's patch to fix inspect.getinnerframes().
2329
2333
2330 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2334 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2331 for embedded instances, regarding handling of namespaces and items
2335 for embedded instances, regarding handling of namespaces and items
2332 added to the __builtin__ one. Multiple embedded instances and
2336 added to the __builtin__ one. Multiple embedded instances and
2333 recursive embeddings should work better now (though I'm not sure
2337 recursive embeddings should work better now (though I'm not sure
2334 I've got all the corner cases fixed, that code is a bit of a brain
2338 I've got all the corner cases fixed, that code is a bit of a brain
2335 twister).
2339 twister).
2336
2340
2337 * IPython/Magic.py (magic_edit): added support to edit in-memory
2341 * IPython/Magic.py (magic_edit): added support to edit in-memory
2338 macros (automatically creates the necessary temp files). %edit
2342 macros (automatically creates the necessary temp files). %edit
2339 also doesn't return the file contents anymore, it's just noise.
2343 also doesn't return the file contents anymore, it's just noise.
2340
2344
2341 * IPython/completer.py (Completer.attr_matches): revert change to
2345 * IPython/completer.py (Completer.attr_matches): revert change to
2342 complete only on attributes listed in __all__. I realized it
2346 complete only on attributes listed in __all__. I realized it
2343 cripples the tab-completion system as a tool for exploring the
2347 cripples the tab-completion system as a tool for exploring the
2344 internals of unknown libraries (it renders any non-__all__
2348 internals of unknown libraries (it renders any non-__all__
2345 attribute off-limits). I got bit by this when trying to see
2349 attribute off-limits). I got bit by this when trying to see
2346 something inside the dis module.
2350 something inside the dis module.
2347
2351
2348 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2352 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2349
2353
2350 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2354 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2351 namespace for users and extension writers to hold data in. This
2355 namespace for users and extension writers to hold data in. This
2352 follows the discussion in
2356 follows the discussion in
2353 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2357 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2354
2358
2355 * IPython/completer.py (IPCompleter.complete): small patch to help
2359 * IPython/completer.py (IPCompleter.complete): small patch to help
2356 tab-completion under Emacs, after a suggestion by John Barnard
2360 tab-completion under Emacs, after a suggestion by John Barnard
2357 <barnarj-AT-ccf.org>.
2361 <barnarj-AT-ccf.org>.
2358
2362
2359 * IPython/Magic.py (Magic.extract_input_slices): added support for
2363 * IPython/Magic.py (Magic.extract_input_slices): added support for
2360 the slice notation in magics to use N-M to represent numbers N...M
2364 the slice notation in magics to use N-M to represent numbers N...M
2361 (closed endpoints). This is used by %macro and %save.
2365 (closed endpoints). This is used by %macro and %save.
2362
2366
2363 * IPython/completer.py (Completer.attr_matches): for modules which
2367 * IPython/completer.py (Completer.attr_matches): for modules which
2364 define __all__, complete only on those. After a patch by Jeffrey
2368 define __all__, complete only on those. After a patch by Jeffrey
2365 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2369 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2366 speed up this routine.
2370 speed up this routine.
2367
2371
2368 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2372 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2369 don't know if this is the end of it, but the behavior now is
2373 don't know if this is the end of it, but the behavior now is
2370 certainly much more correct. Note that coupled with macros,
2374 certainly much more correct. Note that coupled with macros,
2371 slightly surprising (at first) behavior may occur: a macro will in
2375 slightly surprising (at first) behavior may occur: a macro will in
2372 general expand to multiple lines of input, so upon exiting, the
2376 general expand to multiple lines of input, so upon exiting, the
2373 in/out counters will both be bumped by the corresponding amount
2377 in/out counters will both be bumped by the corresponding amount
2374 (as if the macro's contents had been typed interactively). Typing
2378 (as if the macro's contents had been typed interactively). Typing
2375 %hist will reveal the intermediate (silently processed) lines.
2379 %hist will reveal the intermediate (silently processed) lines.
2376
2380
2377 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2381 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2378 pickle to fail (%run was overwriting __main__ and not restoring
2382 pickle to fail (%run was overwriting __main__ and not restoring
2379 it, but pickle relies on __main__ to operate).
2383 it, but pickle relies on __main__ to operate).
2380
2384
2381 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2385 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2382 using properties, but forgot to make the main InteractiveShell
2386 using properties, but forgot to make the main InteractiveShell
2383 class a new-style class. Properties fail silently, and
2387 class a new-style class. Properties fail silently, and
2384 mysteriously, with old-style class (getters work, but
2388 mysteriously, with old-style class (getters work, but
2385 setters don't do anything).
2389 setters don't do anything).
2386
2390
2387 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2391 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2388
2392
2389 * IPython/Magic.py (magic_history): fix history reporting bug (I
2393 * IPython/Magic.py (magic_history): fix history reporting bug (I
2390 know some nasties are still there, I just can't seem to find a
2394 know some nasties are still there, I just can't seem to find a
2391 reproducible test case to track them down; the input history is
2395 reproducible test case to track them down; the input history is
2392 falling out of sync...)
2396 falling out of sync...)
2393
2397
2394 * IPython/iplib.py (handle_shell_escape): fix bug where both
2398 * IPython/iplib.py (handle_shell_escape): fix bug where both
2395 aliases and system accesses where broken for indented code (such
2399 aliases and system accesses where broken for indented code (such
2396 as loops).
2400 as loops).
2397
2401
2398 * IPython/genutils.py (shell): fix small but critical bug for
2402 * IPython/genutils.py (shell): fix small but critical bug for
2399 win32 system access.
2403 win32 system access.
2400
2404
2401 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2405 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2402
2406
2403 * IPython/iplib.py (showtraceback): remove use of the
2407 * IPython/iplib.py (showtraceback): remove use of the
2404 sys.last_{type/value/traceback} structures, which are non
2408 sys.last_{type/value/traceback} structures, which are non
2405 thread-safe.
2409 thread-safe.
2406 (_prefilter): change control flow to ensure that we NEVER
2410 (_prefilter): change control flow to ensure that we NEVER
2407 introspect objects when autocall is off. This will guarantee that
2411 introspect objects when autocall is off. This will guarantee that
2408 having an input line of the form 'x.y', where access to attribute
2412 having an input line of the form 'x.y', where access to attribute
2409 'y' has side effects, doesn't trigger the side effect TWICE. It
2413 'y' has side effects, doesn't trigger the side effect TWICE. It
2410 is important to note that, with autocall on, these side effects
2414 is important to note that, with autocall on, these side effects
2411 can still happen.
2415 can still happen.
2412 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2416 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2413 trio. IPython offers these three kinds of special calls which are
2417 trio. IPython offers these three kinds of special calls which are
2414 not python code, and it's a good thing to have their call method
2418 not python code, and it's a good thing to have their call method
2415 be accessible as pure python functions (not just special syntax at
2419 be accessible as pure python functions (not just special syntax at
2416 the command line). It gives us a better internal implementation
2420 the command line). It gives us a better internal implementation
2417 structure, as well as exposing these for user scripting more
2421 structure, as well as exposing these for user scripting more
2418 cleanly.
2422 cleanly.
2419
2423
2420 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2424 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2421 file. Now that they'll be more likely to be used with the
2425 file. Now that they'll be more likely to be used with the
2422 persistance system (%store), I want to make sure their module path
2426 persistance system (%store), I want to make sure their module path
2423 doesn't change in the future, so that we don't break things for
2427 doesn't change in the future, so that we don't break things for
2424 users' persisted data.
2428 users' persisted data.
2425
2429
2426 * IPython/iplib.py (autoindent_update): move indentation
2430 * IPython/iplib.py (autoindent_update): move indentation
2427 management into the _text_ processing loop, not the keyboard
2431 management into the _text_ processing loop, not the keyboard
2428 interactive one. This is necessary to correctly process non-typed
2432 interactive one. This is necessary to correctly process non-typed
2429 multiline input (such as macros).
2433 multiline input (such as macros).
2430
2434
2431 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2435 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2432 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2436 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2433 which was producing problems in the resulting manual.
2437 which was producing problems in the resulting manual.
2434 (magic_whos): improve reporting of instances (show their class,
2438 (magic_whos): improve reporting of instances (show their class,
2435 instead of simply printing 'instance' which isn't terribly
2439 instead of simply printing 'instance' which isn't terribly
2436 informative).
2440 informative).
2437
2441
2438 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2442 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2439 (minor mods) to support network shares under win32.
2443 (minor mods) to support network shares under win32.
2440
2444
2441 * IPython/winconsole.py (get_console_size): add new winconsole
2445 * IPython/winconsole.py (get_console_size): add new winconsole
2442 module and fixes to page_dumb() to improve its behavior under
2446 module and fixes to page_dumb() to improve its behavior under
2443 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2447 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2444
2448
2445 * IPython/Magic.py (Macro): simplified Macro class to just
2449 * IPython/Magic.py (Macro): simplified Macro class to just
2446 subclass list. We've had only 2.2 compatibility for a very long
2450 subclass list. We've had only 2.2 compatibility for a very long
2447 time, yet I was still avoiding subclassing the builtin types. No
2451 time, yet I was still avoiding subclassing the builtin types. No
2448 more (I'm also starting to use properties, though I won't shift to
2452 more (I'm also starting to use properties, though I won't shift to
2449 2.3-specific features quite yet).
2453 2.3-specific features quite yet).
2450 (magic_store): added Ville's patch for lightweight variable
2454 (magic_store): added Ville's patch for lightweight variable
2451 persistence, after a request on the user list by Matt Wilkie
2455 persistence, after a request on the user list by Matt Wilkie
2452 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2456 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2453 details.
2457 details.
2454
2458
2455 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2459 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2456 changed the default logfile name from 'ipython.log' to
2460 changed the default logfile name from 'ipython.log' to
2457 'ipython_log.py'. These logs are real python files, and now that
2461 'ipython_log.py'. These logs are real python files, and now that
2458 we have much better multiline support, people are more likely to
2462 we have much better multiline support, people are more likely to
2459 want to use them as such. Might as well name them correctly.
2463 want to use them as such. Might as well name them correctly.
2460
2464
2461 * IPython/Magic.py: substantial cleanup. While we can't stop
2465 * IPython/Magic.py: substantial cleanup. While we can't stop
2462 using magics as mixins, due to the existing customizations 'out
2466 using magics as mixins, due to the existing customizations 'out
2463 there' which rely on the mixin naming conventions, at least I
2467 there' which rely on the mixin naming conventions, at least I
2464 cleaned out all cross-class name usage. So once we are OK with
2468 cleaned out all cross-class name usage. So once we are OK with
2465 breaking compatibility, the two systems can be separated.
2469 breaking compatibility, the two systems can be separated.
2466
2470
2467 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2471 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2468 anymore, and the class is a fair bit less hideous as well. New
2472 anymore, and the class is a fair bit less hideous as well. New
2469 features were also introduced: timestamping of input, and logging
2473 features were also introduced: timestamping of input, and logging
2470 of output results. These are user-visible with the -t and -o
2474 of output results. These are user-visible with the -t and -o
2471 options to %logstart. Closes
2475 options to %logstart. Closes
2472 http://www.scipy.net/roundup/ipython/issue11 and a request by
2476 http://www.scipy.net/roundup/ipython/issue11 and a request by
2473 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2477 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2474
2478
2475 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2479 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2476
2480
2477 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2481 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2478 better handle backslashes in paths. See the thread 'More Windows
2482 better handle backslashes in paths. See the thread 'More Windows
2479 questions part 2 - \/ characters revisited' on the iypthon user
2483 questions part 2 - \/ characters revisited' on the iypthon user
2480 list:
2484 list:
2481 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2485 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2482
2486
2483 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2487 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2484
2488
2485 (InteractiveShell.__init__): change threaded shells to not use the
2489 (InteractiveShell.__init__): change threaded shells to not use the
2486 ipython crash handler. This was causing more problems than not,
2490 ipython crash handler. This was causing more problems than not,
2487 as exceptions in the main thread (GUI code, typically) would
2491 as exceptions in the main thread (GUI code, typically) would
2488 always show up as a 'crash', when they really weren't.
2492 always show up as a 'crash', when they really weren't.
2489
2493
2490 The colors and exception mode commands (%colors/%xmode) have been
2494 The colors and exception mode commands (%colors/%xmode) have been
2491 synchronized to also take this into account, so users can get
2495 synchronized to also take this into account, so users can get
2492 verbose exceptions for their threaded code as well. I also added
2496 verbose exceptions for their threaded code as well. I also added
2493 support for activating pdb inside this exception handler as well,
2497 support for activating pdb inside this exception handler as well,
2494 so now GUI authors can use IPython's enhanced pdb at runtime.
2498 so now GUI authors can use IPython's enhanced pdb at runtime.
2495
2499
2496 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2500 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2497 true by default, and add it to the shipped ipythonrc file. Since
2501 true by default, and add it to the shipped ipythonrc file. Since
2498 this asks the user before proceeding, I think it's OK to make it
2502 this asks the user before proceeding, I think it's OK to make it
2499 true by default.
2503 true by default.
2500
2504
2501 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2505 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2502 of the previous special-casing of input in the eval loop. I think
2506 of the previous special-casing of input in the eval loop. I think
2503 this is cleaner, as they really are commands and shouldn't have
2507 this is cleaner, as they really are commands and shouldn't have
2504 a special role in the middle of the core code.
2508 a special role in the middle of the core code.
2505
2509
2506 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2510 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2507
2511
2508 * IPython/iplib.py (edit_syntax_error): added support for
2512 * IPython/iplib.py (edit_syntax_error): added support for
2509 automatically reopening the editor if the file had a syntax error
2513 automatically reopening the editor if the file had a syntax error
2510 in it. Thanks to scottt who provided the patch at:
2514 in it. Thanks to scottt who provided the patch at:
2511 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2515 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2512 version committed).
2516 version committed).
2513
2517
2514 * IPython/iplib.py (handle_normal): add suport for multi-line
2518 * IPython/iplib.py (handle_normal): add suport for multi-line
2515 input with emtpy lines. This fixes
2519 input with emtpy lines. This fixes
2516 http://www.scipy.net/roundup/ipython/issue43 and a similar
2520 http://www.scipy.net/roundup/ipython/issue43 and a similar
2517 discussion on the user list.
2521 discussion on the user list.
2518
2522
2519 WARNING: a behavior change is necessarily introduced to support
2523 WARNING: a behavior change is necessarily introduced to support
2520 blank lines: now a single blank line with whitespace does NOT
2524 blank lines: now a single blank line with whitespace does NOT
2521 break the input loop, which means that when autoindent is on, by
2525 break the input loop, which means that when autoindent is on, by
2522 default hitting return on the next (indented) line does NOT exit.
2526 default hitting return on the next (indented) line does NOT exit.
2523
2527
2524 Instead, to exit a multiline input you can either have:
2528 Instead, to exit a multiline input you can either have:
2525
2529
2526 - TWO whitespace lines (just hit return again), or
2530 - TWO whitespace lines (just hit return again), or
2527 - a single whitespace line of a different length than provided
2531 - a single whitespace line of a different length than provided
2528 by the autoindent (add or remove a space).
2532 by the autoindent (add or remove a space).
2529
2533
2530 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2534 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2531 module to better organize all readline-related functionality.
2535 module to better organize all readline-related functionality.
2532 I've deleted FlexCompleter and put all completion clases here.
2536 I've deleted FlexCompleter and put all completion clases here.
2533
2537
2534 * IPython/iplib.py (raw_input): improve indentation management.
2538 * IPython/iplib.py (raw_input): improve indentation management.
2535 It is now possible to paste indented code with autoindent on, and
2539 It is now possible to paste indented code with autoindent on, and
2536 the code is interpreted correctly (though it still looks bad on
2540 the code is interpreted correctly (though it still looks bad on
2537 screen, due to the line-oriented nature of ipython).
2541 screen, due to the line-oriented nature of ipython).
2538 (MagicCompleter.complete): change behavior so that a TAB key on an
2542 (MagicCompleter.complete): change behavior so that a TAB key on an
2539 otherwise empty line actually inserts a tab, instead of completing
2543 otherwise empty line actually inserts a tab, instead of completing
2540 on the entire global namespace. This makes it easier to use the
2544 on the entire global namespace. This makes it easier to use the
2541 TAB key for indentation. After a request by Hans Meine
2545 TAB key for indentation. After a request by Hans Meine
2542 <hans_meine-AT-gmx.net>
2546 <hans_meine-AT-gmx.net>
2543 (_prefilter): add support so that typing plain 'exit' or 'quit'
2547 (_prefilter): add support so that typing plain 'exit' or 'quit'
2544 does a sensible thing. Originally I tried to deviate as little as
2548 does a sensible thing. Originally I tried to deviate as little as
2545 possible from the default python behavior, but even that one may
2549 possible from the default python behavior, but even that one may
2546 change in this direction (thread on python-dev to that effect).
2550 change in this direction (thread on python-dev to that effect).
2547 Regardless, ipython should do the right thing even if CPython's
2551 Regardless, ipython should do the right thing even if CPython's
2548 '>>>' prompt doesn't.
2552 '>>>' prompt doesn't.
2549 (InteractiveShell): removed subclassing code.InteractiveConsole
2553 (InteractiveShell): removed subclassing code.InteractiveConsole
2550 class. By now we'd overridden just about all of its methods: I've
2554 class. By now we'd overridden just about all of its methods: I've
2551 copied the remaining two over, and now ipython is a standalone
2555 copied the remaining two over, and now ipython is a standalone
2552 class. This will provide a clearer picture for the chainsaw
2556 class. This will provide a clearer picture for the chainsaw
2553 branch refactoring.
2557 branch refactoring.
2554
2558
2555 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2559 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2556
2560
2557 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2561 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2558 failures for objects which break when dir() is called on them.
2562 failures for objects which break when dir() is called on them.
2559
2563
2560 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2564 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2561 distinct local and global namespaces in the completer API. This
2565 distinct local and global namespaces in the completer API. This
2562 change allows us to properly handle completion with distinct
2566 change allows us to properly handle completion with distinct
2563 scopes, including in embedded instances (this had never really
2567 scopes, including in embedded instances (this had never really
2564 worked correctly).
2568 worked correctly).
2565
2569
2566 Note: this introduces a change in the constructor for
2570 Note: this introduces a change in the constructor for
2567 MagicCompleter, as a new global_namespace parameter is now the
2571 MagicCompleter, as a new global_namespace parameter is now the
2568 second argument (the others were bumped one position).
2572 second argument (the others were bumped one position).
2569
2573
2570 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2574 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2571
2575
2572 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2576 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2573 embedded instances (which can be done now thanks to Vivian's
2577 embedded instances (which can be done now thanks to Vivian's
2574 frame-handling fixes for pdb).
2578 frame-handling fixes for pdb).
2575 (InteractiveShell.__init__): Fix namespace handling problem in
2579 (InteractiveShell.__init__): Fix namespace handling problem in
2576 embedded instances. We were overwriting __main__ unconditionally,
2580 embedded instances. We were overwriting __main__ unconditionally,
2577 and this should only be done for 'full' (non-embedded) IPython;
2581 and this should only be done for 'full' (non-embedded) IPython;
2578 embedded instances must respect the caller's __main__. Thanks to
2582 embedded instances must respect the caller's __main__. Thanks to
2579 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2583 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2580
2584
2581 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2585 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2582
2586
2583 * setup.py: added download_url to setup(). This registers the
2587 * setup.py: added download_url to setup(). This registers the
2584 download address at PyPI, which is not only useful to humans
2588 download address at PyPI, which is not only useful to humans
2585 browsing the site, but is also picked up by setuptools (the Eggs
2589 browsing the site, but is also picked up by setuptools (the Eggs
2586 machinery). Thanks to Ville and R. Kern for the info/discussion
2590 machinery). Thanks to Ville and R. Kern for the info/discussion
2587 on this.
2591 on this.
2588
2592
2589 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2593 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2590
2594
2591 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2595 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2592 This brings a lot of nice functionality to the pdb mode, which now
2596 This brings a lot of nice functionality to the pdb mode, which now
2593 has tab-completion, syntax highlighting, and better stack handling
2597 has tab-completion, syntax highlighting, and better stack handling
2594 than before. Many thanks to Vivian De Smedt
2598 than before. Many thanks to Vivian De Smedt
2595 <vivian-AT-vdesmedt.com> for the original patches.
2599 <vivian-AT-vdesmedt.com> for the original patches.
2596
2600
2597 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2601 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2598
2602
2599 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2603 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2600 sequence to consistently accept the banner argument. The
2604 sequence to consistently accept the banner argument. The
2601 inconsistency was tripping SAGE, thanks to Gary Zablackis
2605 inconsistency was tripping SAGE, thanks to Gary Zablackis
2602 <gzabl-AT-yahoo.com> for the report.
2606 <gzabl-AT-yahoo.com> for the report.
2603
2607
2604 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2608 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2605
2609
2606 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2610 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2607 Fix bug where a naked 'alias' call in the ipythonrc file would
2611 Fix bug where a naked 'alias' call in the ipythonrc file would
2608 cause a crash. Bug reported by Jorgen Stenarson.
2612 cause a crash. Bug reported by Jorgen Stenarson.
2609
2613
2610 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2614 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2611
2615
2612 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2616 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2613 startup time.
2617 startup time.
2614
2618
2615 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2619 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2616 instances had introduced a bug with globals in normal code. Now
2620 instances had introduced a bug with globals in normal code. Now
2617 it's working in all cases.
2621 it's working in all cases.
2618
2622
2619 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2623 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2620 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2624 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2621 has been introduced to set the default case sensitivity of the
2625 has been introduced to set the default case sensitivity of the
2622 searches. Users can still select either mode at runtime on a
2626 searches. Users can still select either mode at runtime on a
2623 per-search basis.
2627 per-search basis.
2624
2628
2625 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2629 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2626
2630
2627 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2631 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2628 attributes in wildcard searches for subclasses. Modified version
2632 attributes in wildcard searches for subclasses. Modified version
2629 of a patch by Jorgen.
2633 of a patch by Jorgen.
2630
2634
2631 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2635 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2632
2636
2633 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2637 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2634 embedded instances. I added a user_global_ns attribute to the
2638 embedded instances. I added a user_global_ns attribute to the
2635 InteractiveShell class to handle this.
2639 InteractiveShell class to handle this.
2636
2640
2637 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2641 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2638
2642
2639 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2643 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2640 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2644 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2641 (reported under win32, but may happen also in other platforms).
2645 (reported under win32, but may happen also in other platforms).
2642 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2646 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2643
2647
2644 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2648 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2645
2649
2646 * IPython/Magic.py (magic_psearch): new support for wildcard
2650 * IPython/Magic.py (magic_psearch): new support for wildcard
2647 patterns. Now, typing ?a*b will list all names which begin with a
2651 patterns. Now, typing ?a*b will list all names which begin with a
2648 and end in b, for example. The %psearch magic has full
2652 and end in b, for example. The %psearch magic has full
2649 docstrings. Many thanks to JΓΆrgen Stenarson
2653 docstrings. Many thanks to JΓΆrgen Stenarson
2650 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2654 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2651 implementing this functionality.
2655 implementing this functionality.
2652
2656
2653 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2657 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2654
2658
2655 * Manual: fixed long-standing annoyance of double-dashes (as in
2659 * Manual: fixed long-standing annoyance of double-dashes (as in
2656 --prefix=~, for example) being stripped in the HTML version. This
2660 --prefix=~, for example) being stripped in the HTML version. This
2657 is a latex2html bug, but a workaround was provided. Many thanks
2661 is a latex2html bug, but a workaround was provided. Many thanks
2658 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2662 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2659 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2663 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2660 rolling. This seemingly small issue had tripped a number of users
2664 rolling. This seemingly small issue had tripped a number of users
2661 when first installing, so I'm glad to see it gone.
2665 when first installing, so I'm glad to see it gone.
2662
2666
2663 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2667 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2664
2668
2665 * IPython/Extensions/numeric_formats.py: fix missing import,
2669 * IPython/Extensions/numeric_formats.py: fix missing import,
2666 reported by Stephen Walton.
2670 reported by Stephen Walton.
2667
2671
2668 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2672 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2669
2673
2670 * IPython/demo.py: finish demo module, fully documented now.
2674 * IPython/demo.py: finish demo module, fully documented now.
2671
2675
2672 * IPython/genutils.py (file_read): simple little utility to read a
2676 * IPython/genutils.py (file_read): simple little utility to read a
2673 file and ensure it's closed afterwards.
2677 file and ensure it's closed afterwards.
2674
2678
2675 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2679 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2676
2680
2677 * IPython/demo.py (Demo.__init__): added support for individually
2681 * IPython/demo.py (Demo.__init__): added support for individually
2678 tagging blocks for automatic execution.
2682 tagging blocks for automatic execution.
2679
2683
2680 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2684 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2681 syntax-highlighted python sources, requested by John.
2685 syntax-highlighted python sources, requested by John.
2682
2686
2683 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2687 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2684
2688
2685 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2689 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2686 finishing.
2690 finishing.
2687
2691
2688 * IPython/genutils.py (shlex_split): moved from Magic to here,
2692 * IPython/genutils.py (shlex_split): moved from Magic to here,
2689 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2693 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2690
2694
2691 * IPython/demo.py (Demo.__init__): added support for silent
2695 * IPython/demo.py (Demo.__init__): added support for silent
2692 blocks, improved marks as regexps, docstrings written.
2696 blocks, improved marks as regexps, docstrings written.
2693 (Demo.__init__): better docstring, added support for sys.argv.
2697 (Demo.__init__): better docstring, added support for sys.argv.
2694
2698
2695 * IPython/genutils.py (marquee): little utility used by the demo
2699 * IPython/genutils.py (marquee): little utility used by the demo
2696 code, handy in general.
2700 code, handy in general.
2697
2701
2698 * IPython/demo.py (Demo.__init__): new class for interactive
2702 * IPython/demo.py (Demo.__init__): new class for interactive
2699 demos. Not documented yet, I just wrote it in a hurry for
2703 demos. Not documented yet, I just wrote it in a hurry for
2700 scipy'05. Will docstring later.
2704 scipy'05. Will docstring later.
2701
2705
2702 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2706 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2703
2707
2704 * IPython/Shell.py (sigint_handler): Drastic simplification which
2708 * IPython/Shell.py (sigint_handler): Drastic simplification which
2705 also seems to make Ctrl-C work correctly across threads! This is
2709 also seems to make Ctrl-C work correctly across threads! This is
2706 so simple, that I can't beleive I'd missed it before. Needs more
2710 so simple, that I can't beleive I'd missed it before. Needs more
2707 testing, though.
2711 testing, though.
2708 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2712 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2709 like this before...
2713 like this before...
2710
2714
2711 * IPython/genutils.py (get_home_dir): add protection against
2715 * IPython/genutils.py (get_home_dir): add protection against
2712 non-dirs in win32 registry.
2716 non-dirs in win32 registry.
2713
2717
2714 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2718 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2715 bug where dict was mutated while iterating (pysh crash).
2719 bug where dict was mutated while iterating (pysh crash).
2716
2720
2717 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2721 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2718
2722
2719 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2723 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2720 spurious newlines added by this routine. After a report by
2724 spurious newlines added by this routine. After a report by
2721 F. Mantegazza.
2725 F. Mantegazza.
2722
2726
2723 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2727 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2724
2728
2725 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2729 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2726 calls. These were a leftover from the GTK 1.x days, and can cause
2730 calls. These were a leftover from the GTK 1.x days, and can cause
2727 problems in certain cases (after a report by John Hunter).
2731 problems in certain cases (after a report by John Hunter).
2728
2732
2729 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2733 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2730 os.getcwd() fails at init time. Thanks to patch from David Remahl
2734 os.getcwd() fails at init time. Thanks to patch from David Remahl
2731 <chmod007-AT-mac.com>.
2735 <chmod007-AT-mac.com>.
2732 (InteractiveShell.__init__): prevent certain special magics from
2736 (InteractiveShell.__init__): prevent certain special magics from
2733 being shadowed by aliases. Closes
2737 being shadowed by aliases. Closes
2734 http://www.scipy.net/roundup/ipython/issue41.
2738 http://www.scipy.net/roundup/ipython/issue41.
2735
2739
2736 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2740 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2737
2741
2738 * IPython/iplib.py (InteractiveShell.complete): Added new
2742 * IPython/iplib.py (InteractiveShell.complete): Added new
2739 top-level completion method to expose the completion mechanism
2743 top-level completion method to expose the completion mechanism
2740 beyond readline-based environments.
2744 beyond readline-based environments.
2741
2745
2742 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2746 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2743
2747
2744 * tools/ipsvnc (svnversion): fix svnversion capture.
2748 * tools/ipsvnc (svnversion): fix svnversion capture.
2745
2749
2746 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2750 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2747 attribute to self, which was missing. Before, it was set by a
2751 attribute to self, which was missing. Before, it was set by a
2748 routine which in certain cases wasn't being called, so the
2752 routine which in certain cases wasn't being called, so the
2749 instance could end up missing the attribute. This caused a crash.
2753 instance could end up missing the attribute. This caused a crash.
2750 Closes http://www.scipy.net/roundup/ipython/issue40.
2754 Closes http://www.scipy.net/roundup/ipython/issue40.
2751
2755
2752 2005-08-16 Fernando Perez <fperez@colorado.edu>
2756 2005-08-16 Fernando Perez <fperez@colorado.edu>
2753
2757
2754 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2758 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2755 contains non-string attribute. Closes
2759 contains non-string attribute. Closes
2756 http://www.scipy.net/roundup/ipython/issue38.
2760 http://www.scipy.net/roundup/ipython/issue38.
2757
2761
2758 2005-08-14 Fernando Perez <fperez@colorado.edu>
2762 2005-08-14 Fernando Perez <fperez@colorado.edu>
2759
2763
2760 * tools/ipsvnc: Minor improvements, to add changeset info.
2764 * tools/ipsvnc: Minor improvements, to add changeset info.
2761
2765
2762 2005-08-12 Fernando Perez <fperez@colorado.edu>
2766 2005-08-12 Fernando Perez <fperez@colorado.edu>
2763
2767
2764 * IPython/iplib.py (runsource): remove self.code_to_run_src
2768 * IPython/iplib.py (runsource): remove self.code_to_run_src
2765 attribute. I realized this is nothing more than
2769 attribute. I realized this is nothing more than
2766 '\n'.join(self.buffer), and having the same data in two different
2770 '\n'.join(self.buffer), and having the same data in two different
2767 places is just asking for synchronization bugs. This may impact
2771 places is just asking for synchronization bugs. This may impact
2768 people who have custom exception handlers, so I need to warn
2772 people who have custom exception handlers, so I need to warn
2769 ipython-dev about it (F. Mantegazza may use them).
2773 ipython-dev about it (F. Mantegazza may use them).
2770
2774
2771 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2775 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2772
2776
2773 * IPython/genutils.py: fix 2.2 compatibility (generators)
2777 * IPython/genutils.py: fix 2.2 compatibility (generators)
2774
2778
2775 2005-07-18 Fernando Perez <fperez@colorado.edu>
2779 2005-07-18 Fernando Perez <fperez@colorado.edu>
2776
2780
2777 * IPython/genutils.py (get_home_dir): fix to help users with
2781 * IPython/genutils.py (get_home_dir): fix to help users with
2778 invalid $HOME under win32.
2782 invalid $HOME under win32.
2779
2783
2780 2005-07-17 Fernando Perez <fperez@colorado.edu>
2784 2005-07-17 Fernando Perez <fperez@colorado.edu>
2781
2785
2782 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2786 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2783 some old hacks and clean up a bit other routines; code should be
2787 some old hacks and clean up a bit other routines; code should be
2784 simpler and a bit faster.
2788 simpler and a bit faster.
2785
2789
2786 * IPython/iplib.py (interact): removed some last-resort attempts
2790 * IPython/iplib.py (interact): removed some last-resort attempts
2787 to survive broken stdout/stderr. That code was only making it
2791 to survive broken stdout/stderr. That code was only making it
2788 harder to abstract out the i/o (necessary for gui integration),
2792 harder to abstract out the i/o (necessary for gui integration),
2789 and the crashes it could prevent were extremely rare in practice
2793 and the crashes it could prevent were extremely rare in practice
2790 (besides being fully user-induced in a pretty violent manner).
2794 (besides being fully user-induced in a pretty violent manner).
2791
2795
2792 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2796 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2793 Nothing major yet, but the code is simpler to read; this should
2797 Nothing major yet, but the code is simpler to read; this should
2794 make it easier to do more serious modifications in the future.
2798 make it easier to do more serious modifications in the future.
2795
2799
2796 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2800 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2797 which broke in .15 (thanks to a report by Ville).
2801 which broke in .15 (thanks to a report by Ville).
2798
2802
2799 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2803 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2800 be quite correct, I know next to nothing about unicode). This
2804 be quite correct, I know next to nothing about unicode). This
2801 will allow unicode strings to be used in prompts, amongst other
2805 will allow unicode strings to be used in prompts, amongst other
2802 cases. It also will prevent ipython from crashing when unicode
2806 cases. It also will prevent ipython from crashing when unicode
2803 shows up unexpectedly in many places. If ascii encoding fails, we
2807 shows up unexpectedly in many places. If ascii encoding fails, we
2804 assume utf_8. Currently the encoding is not a user-visible
2808 assume utf_8. Currently the encoding is not a user-visible
2805 setting, though it could be made so if there is demand for it.
2809 setting, though it could be made so if there is demand for it.
2806
2810
2807 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2811 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2808
2812
2809 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2813 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2810
2814
2811 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2815 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2812
2816
2813 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2817 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2814 code can work transparently for 2.2/2.3.
2818 code can work transparently for 2.2/2.3.
2815
2819
2816 2005-07-16 Fernando Perez <fperez@colorado.edu>
2820 2005-07-16 Fernando Perez <fperez@colorado.edu>
2817
2821
2818 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2822 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2819 out of the color scheme table used for coloring exception
2823 out of the color scheme table used for coloring exception
2820 tracebacks. This allows user code to add new schemes at runtime.
2824 tracebacks. This allows user code to add new schemes at runtime.
2821 This is a minimally modified version of the patch at
2825 This is a minimally modified version of the patch at
2822 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2826 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2823 for the contribution.
2827 for the contribution.
2824
2828
2825 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2829 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2826 slightly modified version of the patch in
2830 slightly modified version of the patch in
2827 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2831 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2828 to remove the previous try/except solution (which was costlier).
2832 to remove the previous try/except solution (which was costlier).
2829 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2833 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2830
2834
2831 2005-06-08 Fernando Perez <fperez@colorado.edu>
2835 2005-06-08 Fernando Perez <fperez@colorado.edu>
2832
2836
2833 * IPython/iplib.py (write/write_err): Add methods to abstract all
2837 * IPython/iplib.py (write/write_err): Add methods to abstract all
2834 I/O a bit more.
2838 I/O a bit more.
2835
2839
2836 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2840 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2837 warning, reported by Aric Hagberg, fix by JD Hunter.
2841 warning, reported by Aric Hagberg, fix by JD Hunter.
2838
2842
2839 2005-06-02 *** Released version 0.6.15
2843 2005-06-02 *** Released version 0.6.15
2840
2844
2841 2005-06-01 Fernando Perez <fperez@colorado.edu>
2845 2005-06-01 Fernando Perez <fperez@colorado.edu>
2842
2846
2843 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2847 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2844 tab-completion of filenames within open-quoted strings. Note that
2848 tab-completion of filenames within open-quoted strings. Note that
2845 this requires that in ~/.ipython/ipythonrc, users change the
2849 this requires that in ~/.ipython/ipythonrc, users change the
2846 readline delimiters configuration to read:
2850 readline delimiters configuration to read:
2847
2851
2848 readline_remove_delims -/~
2852 readline_remove_delims -/~
2849
2853
2850
2854
2851 2005-05-31 *** Released version 0.6.14
2855 2005-05-31 *** Released version 0.6.14
2852
2856
2853 2005-05-29 Fernando Perez <fperez@colorado.edu>
2857 2005-05-29 Fernando Perez <fperez@colorado.edu>
2854
2858
2855 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2859 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2856 with files not on the filesystem. Reported by Eliyahu Sandler
2860 with files not on the filesystem. Reported by Eliyahu Sandler
2857 <eli@gondolin.net>
2861 <eli@gondolin.net>
2858
2862
2859 2005-05-22 Fernando Perez <fperez@colorado.edu>
2863 2005-05-22 Fernando Perez <fperez@colorado.edu>
2860
2864
2861 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2865 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2862 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2866 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2863
2867
2864 2005-05-19 Fernando Perez <fperez@colorado.edu>
2868 2005-05-19 Fernando Perez <fperez@colorado.edu>
2865
2869
2866 * IPython/iplib.py (safe_execfile): close a file which could be
2870 * IPython/iplib.py (safe_execfile): close a file which could be
2867 left open (causing problems in win32, which locks open files).
2871 left open (causing problems in win32, which locks open files).
2868 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2872 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2869
2873
2870 2005-05-18 Fernando Perez <fperez@colorado.edu>
2874 2005-05-18 Fernando Perez <fperez@colorado.edu>
2871
2875
2872 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2876 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2873 keyword arguments correctly to safe_execfile().
2877 keyword arguments correctly to safe_execfile().
2874
2878
2875 2005-05-13 Fernando Perez <fperez@colorado.edu>
2879 2005-05-13 Fernando Perez <fperez@colorado.edu>
2876
2880
2877 * ipython.1: Added info about Qt to manpage, and threads warning
2881 * ipython.1: Added info about Qt to manpage, and threads warning
2878 to usage page (invoked with --help).
2882 to usage page (invoked with --help).
2879
2883
2880 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2884 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2881 new matcher (it goes at the end of the priority list) to do
2885 new matcher (it goes at the end of the priority list) to do
2882 tab-completion on named function arguments. Submitted by George
2886 tab-completion on named function arguments. Submitted by George
2883 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2887 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2884 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2888 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2885 for more details.
2889 for more details.
2886
2890
2887 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2891 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2888 SystemExit exceptions in the script being run. Thanks to a report
2892 SystemExit exceptions in the script being run. Thanks to a report
2889 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2893 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2890 producing very annoying behavior when running unit tests.
2894 producing very annoying behavior when running unit tests.
2891
2895
2892 2005-05-12 Fernando Perez <fperez@colorado.edu>
2896 2005-05-12 Fernando Perez <fperez@colorado.edu>
2893
2897
2894 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2898 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2895 which I'd broken (again) due to a changed regexp. In the process,
2899 which I'd broken (again) due to a changed regexp. In the process,
2896 added ';' as an escape to auto-quote the whole line without
2900 added ';' as an escape to auto-quote the whole line without
2897 splitting its arguments. Thanks to a report by Jerry McRae
2901 splitting its arguments. Thanks to a report by Jerry McRae
2898 <qrs0xyc02-AT-sneakemail.com>.
2902 <qrs0xyc02-AT-sneakemail.com>.
2899
2903
2900 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2904 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2901 possible crashes caused by a TokenError. Reported by Ed Schofield
2905 possible crashes caused by a TokenError. Reported by Ed Schofield
2902 <schofield-AT-ftw.at>.
2906 <schofield-AT-ftw.at>.
2903
2907
2904 2005-05-06 Fernando Perez <fperez@colorado.edu>
2908 2005-05-06 Fernando Perez <fperez@colorado.edu>
2905
2909
2906 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2910 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2907
2911
2908 2005-04-29 Fernando Perez <fperez@colorado.edu>
2912 2005-04-29 Fernando Perez <fperez@colorado.edu>
2909
2913
2910 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2914 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2911 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2915 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2912 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2916 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2913 which provides support for Qt interactive usage (similar to the
2917 which provides support for Qt interactive usage (similar to the
2914 existing one for WX and GTK). This had been often requested.
2918 existing one for WX and GTK). This had been often requested.
2915
2919
2916 2005-04-14 *** Released version 0.6.13
2920 2005-04-14 *** Released version 0.6.13
2917
2921
2918 2005-04-08 Fernando Perez <fperez@colorado.edu>
2922 2005-04-08 Fernando Perez <fperez@colorado.edu>
2919
2923
2920 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2924 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2921 from _ofind, which gets called on almost every input line. Now,
2925 from _ofind, which gets called on almost every input line. Now,
2922 we only try to get docstrings if they are actually going to be
2926 we only try to get docstrings if they are actually going to be
2923 used (the overhead of fetching unnecessary docstrings can be
2927 used (the overhead of fetching unnecessary docstrings can be
2924 noticeable for certain objects, such as Pyro proxies).
2928 noticeable for certain objects, such as Pyro proxies).
2925
2929
2926 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2930 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2927 for completers. For some reason I had been passing them the state
2931 for completers. For some reason I had been passing them the state
2928 variable, which completers never actually need, and was in
2932 variable, which completers never actually need, and was in
2929 conflict with the rlcompleter API. Custom completers ONLY need to
2933 conflict with the rlcompleter API. Custom completers ONLY need to
2930 take the text parameter.
2934 take the text parameter.
2931
2935
2932 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2936 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2933 work correctly in pysh. I've also moved all the logic which used
2937 work correctly in pysh. I've also moved all the logic which used
2934 to be in pysh.py here, which will prevent problems with future
2938 to be in pysh.py here, which will prevent problems with future
2935 upgrades. However, this time I must warn users to update their
2939 upgrades. However, this time I must warn users to update their
2936 pysh profile to include the line
2940 pysh profile to include the line
2937
2941
2938 import_all IPython.Extensions.InterpreterExec
2942 import_all IPython.Extensions.InterpreterExec
2939
2943
2940 because otherwise things won't work for them. They MUST also
2944 because otherwise things won't work for them. They MUST also
2941 delete pysh.py and the line
2945 delete pysh.py and the line
2942
2946
2943 execfile pysh.py
2947 execfile pysh.py
2944
2948
2945 from their ipythonrc-pysh.
2949 from their ipythonrc-pysh.
2946
2950
2947 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2951 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2948 robust in the face of objects whose dir() returns non-strings
2952 robust in the face of objects whose dir() returns non-strings
2949 (which it shouldn't, but some broken libs like ITK do). Thanks to
2953 (which it shouldn't, but some broken libs like ITK do). Thanks to
2950 a patch by John Hunter (implemented differently, though). Also
2954 a patch by John Hunter (implemented differently, though). Also
2951 minor improvements by using .extend instead of + on lists.
2955 minor improvements by using .extend instead of + on lists.
2952
2956
2953 * pysh.py:
2957 * pysh.py:
2954
2958
2955 2005-04-06 Fernando Perez <fperez@colorado.edu>
2959 2005-04-06 Fernando Perez <fperez@colorado.edu>
2956
2960
2957 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2961 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2958 by default, so that all users benefit from it. Those who don't
2962 by default, so that all users benefit from it. Those who don't
2959 want it can still turn it off.
2963 want it can still turn it off.
2960
2964
2961 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2965 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2962 config file, I'd forgotten about this, so users were getting it
2966 config file, I'd forgotten about this, so users were getting it
2963 off by default.
2967 off by default.
2964
2968
2965 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2969 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2966 consistency. Now magics can be called in multiline statements,
2970 consistency. Now magics can be called in multiline statements,
2967 and python variables can be expanded in magic calls via $var.
2971 and python variables can be expanded in magic calls via $var.
2968 This makes the magic system behave just like aliases or !system
2972 This makes the magic system behave just like aliases or !system
2969 calls.
2973 calls.
2970
2974
2971 2005-03-28 Fernando Perez <fperez@colorado.edu>
2975 2005-03-28 Fernando Perez <fperez@colorado.edu>
2972
2976
2973 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2977 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2974 expensive string additions for building command. Add support for
2978 expensive string additions for building command. Add support for
2975 trailing ';' when autocall is used.
2979 trailing ';' when autocall is used.
2976
2980
2977 2005-03-26 Fernando Perez <fperez@colorado.edu>
2981 2005-03-26 Fernando Perez <fperez@colorado.edu>
2978
2982
2979 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2983 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2980 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2984 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2981 ipython.el robust against prompts with any number of spaces
2985 ipython.el robust against prompts with any number of spaces
2982 (including 0) after the ':' character.
2986 (including 0) after the ':' character.
2983
2987
2984 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2988 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2985 continuation prompt, which misled users to think the line was
2989 continuation prompt, which misled users to think the line was
2986 already indented. Closes debian Bug#300847, reported to me by
2990 already indented. Closes debian Bug#300847, reported to me by
2987 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2991 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2988
2992
2989 2005-03-23 Fernando Perez <fperez@colorado.edu>
2993 2005-03-23 Fernando Perez <fperez@colorado.edu>
2990
2994
2991 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2995 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2992 properly aligned if they have embedded newlines.
2996 properly aligned if they have embedded newlines.
2993
2997
2994 * IPython/iplib.py (runlines): Add a public method to expose
2998 * IPython/iplib.py (runlines): Add a public method to expose
2995 IPython's code execution machinery, so that users can run strings
2999 IPython's code execution machinery, so that users can run strings
2996 as if they had been typed at the prompt interactively.
3000 as if they had been typed at the prompt interactively.
2997 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
3001 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2998 methods which can call the system shell, but with python variable
3002 methods which can call the system shell, but with python variable
2999 expansion. The three such methods are: __IPYTHON__.system,
3003 expansion. The three such methods are: __IPYTHON__.system,
3000 .getoutput and .getoutputerror. These need to be documented in a
3004 .getoutput and .getoutputerror. These need to be documented in a
3001 'public API' section (to be written) of the manual.
3005 'public API' section (to be written) of the manual.
3002
3006
3003 2005-03-20 Fernando Perez <fperez@colorado.edu>
3007 2005-03-20 Fernando Perez <fperez@colorado.edu>
3004
3008
3005 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
3009 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
3006 for custom exception handling. This is quite powerful, and it
3010 for custom exception handling. This is quite powerful, and it
3007 allows for user-installable exception handlers which can trap
3011 allows for user-installable exception handlers which can trap
3008 custom exceptions at runtime and treat them separately from
3012 custom exceptions at runtime and treat them separately from
3009 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
3013 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
3010 Mantegazza <mantegazza-AT-ill.fr>.
3014 Mantegazza <mantegazza-AT-ill.fr>.
3011 (InteractiveShell.set_custom_completer): public API function to
3015 (InteractiveShell.set_custom_completer): public API function to
3012 add new completers at runtime.
3016 add new completers at runtime.
3013
3017
3014 2005-03-19 Fernando Perez <fperez@colorado.edu>
3018 2005-03-19 Fernando Perez <fperez@colorado.edu>
3015
3019
3016 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
3020 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
3017 allow objects which provide their docstrings via non-standard
3021 allow objects which provide their docstrings via non-standard
3018 mechanisms (like Pyro proxies) to still be inspected by ipython's
3022 mechanisms (like Pyro proxies) to still be inspected by ipython's
3019 ? system.
3023 ? system.
3020
3024
3021 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
3025 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
3022 automatic capture system. I tried quite hard to make it work
3026 automatic capture system. I tried quite hard to make it work
3023 reliably, and simply failed. I tried many combinations with the
3027 reliably, and simply failed. I tried many combinations with the
3024 subprocess module, but eventually nothing worked in all needed
3028 subprocess module, but eventually nothing worked in all needed
3025 cases (not blocking stdin for the child, duplicating stdout
3029 cases (not blocking stdin for the child, duplicating stdout
3026 without blocking, etc). The new %sc/%sx still do capture to these
3030 without blocking, etc). The new %sc/%sx still do capture to these
3027 magical list/string objects which make shell use much more
3031 magical list/string objects which make shell use much more
3028 conveninent, so not all is lost.
3032 conveninent, so not all is lost.
3029
3033
3030 XXX - FIX MANUAL for the change above!
3034 XXX - FIX MANUAL for the change above!
3031
3035
3032 (runsource): I copied code.py's runsource() into ipython to modify
3036 (runsource): I copied code.py's runsource() into ipython to modify
3033 it a bit. Now the code object and source to be executed are
3037 it a bit. Now the code object and source to be executed are
3034 stored in ipython. This makes this info accessible to third-party
3038 stored in ipython. This makes this info accessible to third-party
3035 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
3039 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
3036 Mantegazza <mantegazza-AT-ill.fr>.
3040 Mantegazza <mantegazza-AT-ill.fr>.
3037
3041
3038 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3042 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3039 history-search via readline (like C-p/C-n). I'd wanted this for a
3043 history-search via readline (like C-p/C-n). I'd wanted this for a
3040 long time, but only recently found out how to do it. For users
3044 long time, but only recently found out how to do it. For users
3041 who already have their ipythonrc files made and want this, just
3045 who already have their ipythonrc files made and want this, just
3042 add:
3046 add:
3043
3047
3044 readline_parse_and_bind "\e[A": history-search-backward
3048 readline_parse_and_bind "\e[A": history-search-backward
3045 readline_parse_and_bind "\e[B": history-search-forward
3049 readline_parse_and_bind "\e[B": history-search-forward
3046
3050
3047 2005-03-18 Fernando Perez <fperez@colorado.edu>
3051 2005-03-18 Fernando Perez <fperez@colorado.edu>
3048
3052
3049 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3053 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3050 LSString and SList classes which allow transparent conversions
3054 LSString and SList classes which allow transparent conversions
3051 between list mode and whitespace-separated string.
3055 between list mode and whitespace-separated string.
3052 (magic_r): Fix recursion problem in %r.
3056 (magic_r): Fix recursion problem in %r.
3053
3057
3054 * IPython/genutils.py (LSString): New class to be used for
3058 * IPython/genutils.py (LSString): New class to be used for
3055 automatic storage of the results of all alias/system calls in _o
3059 automatic storage of the results of all alias/system calls in _o
3056 and _e (stdout/err). These provide a .l/.list attribute which
3060 and _e (stdout/err). These provide a .l/.list attribute which
3057 does automatic splitting on newlines. This means that for most
3061 does automatic splitting on newlines. This means that for most
3058 uses, you'll never need to do capturing of output with %sc/%sx
3062 uses, you'll never need to do capturing of output with %sc/%sx
3059 anymore, since ipython keeps this always done for you. Note that
3063 anymore, since ipython keeps this always done for you. Note that
3060 only the LAST results are stored, the _o/e variables are
3064 only the LAST results are stored, the _o/e variables are
3061 overwritten on each call. If you need to save their contents
3065 overwritten on each call. If you need to save their contents
3062 further, simply bind them to any other name.
3066 further, simply bind them to any other name.
3063
3067
3064 2005-03-17 Fernando Perez <fperez@colorado.edu>
3068 2005-03-17 Fernando Perez <fperez@colorado.edu>
3065
3069
3066 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3070 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3067 prompt namespace handling.
3071 prompt namespace handling.
3068
3072
3069 2005-03-16 Fernando Perez <fperez@colorado.edu>
3073 2005-03-16 Fernando Perez <fperez@colorado.edu>
3070
3074
3071 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3075 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3072 classic prompts to be '>>> ' (final space was missing, and it
3076 classic prompts to be '>>> ' (final space was missing, and it
3073 trips the emacs python mode).
3077 trips the emacs python mode).
3074 (BasePrompt.__str__): Added safe support for dynamic prompt
3078 (BasePrompt.__str__): Added safe support for dynamic prompt
3075 strings. Now you can set your prompt string to be '$x', and the
3079 strings. Now you can set your prompt string to be '$x', and the
3076 value of x will be printed from your interactive namespace. The
3080 value of x will be printed from your interactive namespace. The
3077 interpolation syntax includes the full Itpl support, so
3081 interpolation syntax includes the full Itpl support, so
3078 ${foo()+x+bar()} is a valid prompt string now, and the function
3082 ${foo()+x+bar()} is a valid prompt string now, and the function
3079 calls will be made at runtime.
3083 calls will be made at runtime.
3080
3084
3081 2005-03-15 Fernando Perez <fperez@colorado.edu>
3085 2005-03-15 Fernando Perez <fperez@colorado.edu>
3082
3086
3083 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3087 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3084 avoid name clashes in pylab. %hist still works, it just forwards
3088 avoid name clashes in pylab. %hist still works, it just forwards
3085 the call to %history.
3089 the call to %history.
3086
3090
3087 2005-03-02 *** Released version 0.6.12
3091 2005-03-02 *** Released version 0.6.12
3088
3092
3089 2005-03-02 Fernando Perez <fperez@colorado.edu>
3093 2005-03-02 Fernando Perez <fperez@colorado.edu>
3090
3094
3091 * IPython/iplib.py (handle_magic): log magic calls properly as
3095 * IPython/iplib.py (handle_magic): log magic calls properly as
3092 ipmagic() function calls.
3096 ipmagic() function calls.
3093
3097
3094 * IPython/Magic.py (magic_time): Improved %time to support
3098 * IPython/Magic.py (magic_time): Improved %time to support
3095 statements and provide wall-clock as well as CPU time.
3099 statements and provide wall-clock as well as CPU time.
3096
3100
3097 2005-02-27 Fernando Perez <fperez@colorado.edu>
3101 2005-02-27 Fernando Perez <fperez@colorado.edu>
3098
3102
3099 * IPython/hooks.py: New hooks module, to expose user-modifiable
3103 * IPython/hooks.py: New hooks module, to expose user-modifiable
3100 IPython functionality in a clean manner. For now only the editor
3104 IPython functionality in a clean manner. For now only the editor
3101 hook is actually written, and other thigns which I intend to turn
3105 hook is actually written, and other thigns which I intend to turn
3102 into proper hooks aren't yet there. The display and prefilter
3106 into proper hooks aren't yet there. The display and prefilter
3103 stuff, for example, should be hooks. But at least now the
3107 stuff, for example, should be hooks. But at least now the
3104 framework is in place, and the rest can be moved here with more
3108 framework is in place, and the rest can be moved here with more
3105 time later. IPython had had a .hooks variable for a long time for
3109 time later. IPython had had a .hooks variable for a long time for
3106 this purpose, but I'd never actually used it for anything.
3110 this purpose, but I'd never actually used it for anything.
3107
3111
3108 2005-02-26 Fernando Perez <fperez@colorado.edu>
3112 2005-02-26 Fernando Perez <fperez@colorado.edu>
3109
3113
3110 * IPython/ipmaker.py (make_IPython): make the default ipython
3114 * IPython/ipmaker.py (make_IPython): make the default ipython
3111 directory be called _ipython under win32, to follow more the
3115 directory be called _ipython under win32, to follow more the
3112 naming peculiarities of that platform (where buggy software like
3116 naming peculiarities of that platform (where buggy software like
3113 Visual Sourcesafe breaks with .named directories). Reported by
3117 Visual Sourcesafe breaks with .named directories). Reported by
3114 Ville Vainio.
3118 Ville Vainio.
3115
3119
3116 2005-02-23 Fernando Perez <fperez@colorado.edu>
3120 2005-02-23 Fernando Perez <fperez@colorado.edu>
3117
3121
3118 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3122 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3119 auto_aliases for win32 which were causing problems. Users can
3123 auto_aliases for win32 which were causing problems. Users can
3120 define the ones they personally like.
3124 define the ones they personally like.
3121
3125
3122 2005-02-21 Fernando Perez <fperez@colorado.edu>
3126 2005-02-21 Fernando Perez <fperez@colorado.edu>
3123
3127
3124 * IPython/Magic.py (magic_time): new magic to time execution of
3128 * IPython/Magic.py (magic_time): new magic to time execution of
3125 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3129 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3126
3130
3127 2005-02-19 Fernando Perez <fperez@colorado.edu>
3131 2005-02-19 Fernando Perez <fperez@colorado.edu>
3128
3132
3129 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3133 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3130 into keys (for prompts, for example).
3134 into keys (for prompts, for example).
3131
3135
3132 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3136 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3133 prompts in case users want them. This introduces a small behavior
3137 prompts in case users want them. This introduces a small behavior
3134 change: ipython does not automatically add a space to all prompts
3138 change: ipython does not automatically add a space to all prompts
3135 anymore. To get the old prompts with a space, users should add it
3139 anymore. To get the old prompts with a space, users should add it
3136 manually to their ipythonrc file, so for example prompt_in1 should
3140 manually to their ipythonrc file, so for example prompt_in1 should
3137 now read 'In [\#]: ' instead of 'In [\#]:'.
3141 now read 'In [\#]: ' instead of 'In [\#]:'.
3138 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3142 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3139 file) to control left-padding of secondary prompts.
3143 file) to control left-padding of secondary prompts.
3140
3144
3141 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3145 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3142 the profiler can't be imported. Fix for Debian, which removed
3146 the profiler can't be imported. Fix for Debian, which removed
3143 profile.py because of License issues. I applied a slightly
3147 profile.py because of License issues. I applied a slightly
3144 modified version of the original Debian patch at
3148 modified version of the original Debian patch at
3145 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3149 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3146
3150
3147 2005-02-17 Fernando Perez <fperez@colorado.edu>
3151 2005-02-17 Fernando Perez <fperez@colorado.edu>
3148
3152
3149 * IPython/genutils.py (native_line_ends): Fix bug which would
3153 * IPython/genutils.py (native_line_ends): Fix bug which would
3150 cause improper line-ends under win32 b/c I was not opening files
3154 cause improper line-ends under win32 b/c I was not opening files
3151 in binary mode. Bug report and fix thanks to Ville.
3155 in binary mode. Bug report and fix thanks to Ville.
3152
3156
3153 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3157 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3154 trying to catch spurious foo[1] autocalls. My fix actually broke
3158 trying to catch spurious foo[1] autocalls. My fix actually broke
3155 ',/' autoquote/call with explicit escape (bad regexp).
3159 ',/' autoquote/call with explicit escape (bad regexp).
3156
3160
3157 2005-02-15 *** Released version 0.6.11
3161 2005-02-15 *** Released version 0.6.11
3158
3162
3159 2005-02-14 Fernando Perez <fperez@colorado.edu>
3163 2005-02-14 Fernando Perez <fperez@colorado.edu>
3160
3164
3161 * IPython/background_jobs.py: New background job management
3165 * IPython/background_jobs.py: New background job management
3162 subsystem. This is implemented via a new set of classes, and
3166 subsystem. This is implemented via a new set of classes, and
3163 IPython now provides a builtin 'jobs' object for background job
3167 IPython now provides a builtin 'jobs' object for background job
3164 execution. A convenience %bg magic serves as a lightweight
3168 execution. A convenience %bg magic serves as a lightweight
3165 frontend for starting the more common type of calls. This was
3169 frontend for starting the more common type of calls. This was
3166 inspired by discussions with B. Granger and the BackgroundCommand
3170 inspired by discussions with B. Granger and the BackgroundCommand
3167 class described in the book Python Scripting for Computational
3171 class described in the book Python Scripting for Computational
3168 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3172 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3169 (although ultimately no code from this text was used, as IPython's
3173 (although ultimately no code from this text was used, as IPython's
3170 system is a separate implementation).
3174 system is a separate implementation).
3171
3175
3172 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3176 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3173 to control the completion of single/double underscore names
3177 to control the completion of single/double underscore names
3174 separately. As documented in the example ipytonrc file, the
3178 separately. As documented in the example ipytonrc file, the
3175 readline_omit__names variable can now be set to 2, to omit even
3179 readline_omit__names variable can now be set to 2, to omit even
3176 single underscore names. Thanks to a patch by Brian Wong
3180 single underscore names. Thanks to a patch by Brian Wong
3177 <BrianWong-AT-AirgoNetworks.Com>.
3181 <BrianWong-AT-AirgoNetworks.Com>.
3178 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3182 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3179 be autocalled as foo([1]) if foo were callable. A problem for
3183 be autocalled as foo([1]) if foo were callable. A problem for
3180 things which are both callable and implement __getitem__.
3184 things which are both callable and implement __getitem__.
3181 (init_readline): Fix autoindentation for win32. Thanks to a patch
3185 (init_readline): Fix autoindentation for win32. Thanks to a patch
3182 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3186 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3183
3187
3184 2005-02-12 Fernando Perez <fperez@colorado.edu>
3188 2005-02-12 Fernando Perez <fperez@colorado.edu>
3185
3189
3186 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3190 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3187 which I had written long ago to sort out user error messages which
3191 which I had written long ago to sort out user error messages which
3188 may occur during startup. This seemed like a good idea initially,
3192 may occur during startup. This seemed like a good idea initially,
3189 but it has proven a disaster in retrospect. I don't want to
3193 but it has proven a disaster in retrospect. I don't want to
3190 change much code for now, so my fix is to set the internal 'debug'
3194 change much code for now, so my fix is to set the internal 'debug'
3191 flag to true everywhere, whose only job was precisely to control
3195 flag to true everywhere, whose only job was precisely to control
3192 this subsystem. This closes issue 28 (as well as avoiding all
3196 this subsystem. This closes issue 28 (as well as avoiding all
3193 sorts of strange hangups which occur from time to time).
3197 sorts of strange hangups which occur from time to time).
3194
3198
3195 2005-02-07 Fernando Perez <fperez@colorado.edu>
3199 2005-02-07 Fernando Perez <fperez@colorado.edu>
3196
3200
3197 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3201 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3198 previous call produced a syntax error.
3202 previous call produced a syntax error.
3199
3203
3200 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3204 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3201 classes without constructor.
3205 classes without constructor.
3202
3206
3203 2005-02-06 Fernando Perez <fperez@colorado.edu>
3207 2005-02-06 Fernando Perez <fperez@colorado.edu>
3204
3208
3205 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3209 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3206 completions with the results of each matcher, so we return results
3210 completions with the results of each matcher, so we return results
3207 to the user from all namespaces. This breaks with ipython
3211 to the user from all namespaces. This breaks with ipython
3208 tradition, but I think it's a nicer behavior. Now you get all
3212 tradition, but I think it's a nicer behavior. Now you get all
3209 possible completions listed, from all possible namespaces (python,
3213 possible completions listed, from all possible namespaces (python,
3210 filesystem, magics...) After a request by John Hunter
3214 filesystem, magics...) After a request by John Hunter
3211 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3215 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3212
3216
3213 2005-02-05 Fernando Perez <fperez@colorado.edu>
3217 2005-02-05 Fernando Perez <fperez@colorado.edu>
3214
3218
3215 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3219 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3216 the call had quote characters in it (the quotes were stripped).
3220 the call had quote characters in it (the quotes were stripped).
3217
3221
3218 2005-01-31 Fernando Perez <fperez@colorado.edu>
3222 2005-01-31 Fernando Perez <fperez@colorado.edu>
3219
3223
3220 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3224 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3221 Itpl.itpl() to make the code more robust against psyco
3225 Itpl.itpl() to make the code more robust against psyco
3222 optimizations.
3226 optimizations.
3223
3227
3224 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3228 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3225 of causing an exception. Quicker, cleaner.
3229 of causing an exception. Quicker, cleaner.
3226
3230
3227 2005-01-28 Fernando Perez <fperez@colorado.edu>
3231 2005-01-28 Fernando Perez <fperez@colorado.edu>
3228
3232
3229 * scripts/ipython_win_post_install.py (install): hardcode
3233 * scripts/ipython_win_post_install.py (install): hardcode
3230 sys.prefix+'python.exe' as the executable path. It turns out that
3234 sys.prefix+'python.exe' as the executable path. It turns out that
3231 during the post-installation run, sys.executable resolves to the
3235 during the post-installation run, sys.executable resolves to the
3232 name of the binary installer! I should report this as a distutils
3236 name of the binary installer! I should report this as a distutils
3233 bug, I think. I updated the .10 release with this tiny fix, to
3237 bug, I think. I updated the .10 release with this tiny fix, to
3234 avoid annoying the lists further.
3238 avoid annoying the lists further.
3235
3239
3236 2005-01-27 *** Released version 0.6.10
3240 2005-01-27 *** Released version 0.6.10
3237
3241
3238 2005-01-27 Fernando Perez <fperez@colorado.edu>
3242 2005-01-27 Fernando Perez <fperez@colorado.edu>
3239
3243
3240 * IPython/numutils.py (norm): Added 'inf' as optional name for
3244 * IPython/numutils.py (norm): Added 'inf' as optional name for
3241 L-infinity norm, included references to mathworld.com for vector
3245 L-infinity norm, included references to mathworld.com for vector
3242 norm definitions.
3246 norm definitions.
3243 (amin/amax): added amin/amax for array min/max. Similar to what
3247 (amin/amax): added amin/amax for array min/max. Similar to what
3244 pylab ships with after the recent reorganization of names.
3248 pylab ships with after the recent reorganization of names.
3245 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3249 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3246
3250
3247 * ipython.el: committed Alex's recent fixes and improvements.
3251 * ipython.el: committed Alex's recent fixes and improvements.
3248 Tested with python-mode from CVS, and it looks excellent. Since
3252 Tested with python-mode from CVS, and it looks excellent. Since
3249 python-mode hasn't released anything in a while, I'm temporarily
3253 python-mode hasn't released anything in a while, I'm temporarily
3250 putting a copy of today's CVS (v 4.70) of python-mode in:
3254 putting a copy of today's CVS (v 4.70) of python-mode in:
3251 http://ipython.scipy.org/tmp/python-mode.el
3255 http://ipython.scipy.org/tmp/python-mode.el
3252
3256
3253 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3257 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3254 sys.executable for the executable name, instead of assuming it's
3258 sys.executable for the executable name, instead of assuming it's
3255 called 'python.exe' (the post-installer would have produced broken
3259 called 'python.exe' (the post-installer would have produced broken
3256 setups on systems with a differently named python binary).
3260 setups on systems with a differently named python binary).
3257
3261
3258 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3262 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3259 references to os.linesep, to make the code more
3263 references to os.linesep, to make the code more
3260 platform-independent. This is also part of the win32 coloring
3264 platform-independent. This is also part of the win32 coloring
3261 fixes.
3265 fixes.
3262
3266
3263 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3267 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3264 lines, which actually cause coloring bugs because the length of
3268 lines, which actually cause coloring bugs because the length of
3265 the line is very difficult to correctly compute with embedded
3269 the line is very difficult to correctly compute with embedded
3266 escapes. This was the source of all the coloring problems under
3270 escapes. This was the source of all the coloring problems under
3267 Win32. I think that _finally_, Win32 users have a properly
3271 Win32. I think that _finally_, Win32 users have a properly
3268 working ipython in all respects. This would never have happened
3272 working ipython in all respects. This would never have happened
3269 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3273 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3270
3274
3271 2005-01-26 *** Released version 0.6.9
3275 2005-01-26 *** Released version 0.6.9
3272
3276
3273 2005-01-25 Fernando Perez <fperez@colorado.edu>
3277 2005-01-25 Fernando Perez <fperez@colorado.edu>
3274
3278
3275 * setup.py: finally, we have a true Windows installer, thanks to
3279 * setup.py: finally, we have a true Windows installer, thanks to
3276 the excellent work of Viktor Ransmayr
3280 the excellent work of Viktor Ransmayr
3277 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3281 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3278 Windows users. The setup routine is quite a bit cleaner thanks to
3282 Windows users. The setup routine is quite a bit cleaner thanks to
3279 this, and the post-install script uses the proper functions to
3283 this, and the post-install script uses the proper functions to
3280 allow a clean de-installation using the standard Windows Control
3284 allow a clean de-installation using the standard Windows Control
3281 Panel.
3285 Panel.
3282
3286
3283 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3287 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3284 environment variable under all OSes (including win32) if
3288 environment variable under all OSes (including win32) if
3285 available. This will give consistency to win32 users who have set
3289 available. This will give consistency to win32 users who have set
3286 this variable for any reason. If os.environ['HOME'] fails, the
3290 this variable for any reason. If os.environ['HOME'] fails, the
3287 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3291 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3288
3292
3289 2005-01-24 Fernando Perez <fperez@colorado.edu>
3293 2005-01-24 Fernando Perez <fperez@colorado.edu>
3290
3294
3291 * IPython/numutils.py (empty_like): add empty_like(), similar to
3295 * IPython/numutils.py (empty_like): add empty_like(), similar to
3292 zeros_like() but taking advantage of the new empty() Numeric routine.
3296 zeros_like() but taking advantage of the new empty() Numeric routine.
3293
3297
3294 2005-01-23 *** Released version 0.6.8
3298 2005-01-23 *** Released version 0.6.8
3295
3299
3296 2005-01-22 Fernando Perez <fperez@colorado.edu>
3300 2005-01-22 Fernando Perez <fperez@colorado.edu>
3297
3301
3298 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3302 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3299 automatic show() calls. After discussing things with JDH, it
3303 automatic show() calls. After discussing things with JDH, it
3300 turns out there are too many corner cases where this can go wrong.
3304 turns out there are too many corner cases where this can go wrong.
3301 It's best not to try to be 'too smart', and simply have ipython
3305 It's best not to try to be 'too smart', and simply have ipython
3302 reproduce as much as possible the default behavior of a normal
3306 reproduce as much as possible the default behavior of a normal
3303 python shell.
3307 python shell.
3304
3308
3305 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3309 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3306 line-splitting regexp and _prefilter() to avoid calling getattr()
3310 line-splitting regexp and _prefilter() to avoid calling getattr()
3307 on assignments. This closes
3311 on assignments. This closes
3308 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3312 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3309 readline uses getattr(), so a simple <TAB> keypress is still
3313 readline uses getattr(), so a simple <TAB> keypress is still
3310 enough to trigger getattr() calls on an object.
3314 enough to trigger getattr() calls on an object.
3311
3315
3312 2005-01-21 Fernando Perez <fperez@colorado.edu>
3316 2005-01-21 Fernando Perez <fperez@colorado.edu>
3313
3317
3314 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3318 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3315 docstring under pylab so it doesn't mask the original.
3319 docstring under pylab so it doesn't mask the original.
3316
3320
3317 2005-01-21 *** Released version 0.6.7
3321 2005-01-21 *** Released version 0.6.7
3318
3322
3319 2005-01-21 Fernando Perez <fperez@colorado.edu>
3323 2005-01-21 Fernando Perez <fperez@colorado.edu>
3320
3324
3321 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3325 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3322 signal handling for win32 users in multithreaded mode.
3326 signal handling for win32 users in multithreaded mode.
3323
3327
3324 2005-01-17 Fernando Perez <fperez@colorado.edu>
3328 2005-01-17 Fernando Perez <fperez@colorado.edu>
3325
3329
3326 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3330 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3327 instances with no __init__. After a crash report by Norbert Nemec
3331 instances with no __init__. After a crash report by Norbert Nemec
3328 <Norbert-AT-nemec-online.de>.
3332 <Norbert-AT-nemec-online.de>.
3329
3333
3330 2005-01-14 Fernando Perez <fperez@colorado.edu>
3334 2005-01-14 Fernando Perez <fperez@colorado.edu>
3331
3335
3332 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3336 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3333 names for verbose exceptions, when multiple dotted names and the
3337 names for verbose exceptions, when multiple dotted names and the
3334 'parent' object were present on the same line.
3338 'parent' object were present on the same line.
3335
3339
3336 2005-01-11 Fernando Perez <fperez@colorado.edu>
3340 2005-01-11 Fernando Perez <fperez@colorado.edu>
3337
3341
3338 * IPython/genutils.py (flag_calls): new utility to trap and flag
3342 * IPython/genutils.py (flag_calls): new utility to trap and flag
3339 calls in functions. I need it to clean up matplotlib support.
3343 calls in functions. I need it to clean up matplotlib support.
3340 Also removed some deprecated code in genutils.
3344 Also removed some deprecated code in genutils.
3341
3345
3342 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3346 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3343 that matplotlib scripts called with %run, which don't call show()
3347 that matplotlib scripts called with %run, which don't call show()
3344 themselves, still have their plotting windows open.
3348 themselves, still have their plotting windows open.
3345
3349
3346 2005-01-05 Fernando Perez <fperez@colorado.edu>
3350 2005-01-05 Fernando Perez <fperez@colorado.edu>
3347
3351
3348 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3352 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3349 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3353 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3350
3354
3351 2004-12-19 Fernando Perez <fperez@colorado.edu>
3355 2004-12-19 Fernando Perez <fperez@colorado.edu>
3352
3356
3353 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3357 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3354 parent_runcode, which was an eyesore. The same result can be
3358 parent_runcode, which was an eyesore. The same result can be
3355 obtained with Python's regular superclass mechanisms.
3359 obtained with Python's regular superclass mechanisms.
3356
3360
3357 2004-12-17 Fernando Perez <fperez@colorado.edu>
3361 2004-12-17 Fernando Perez <fperez@colorado.edu>
3358
3362
3359 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3363 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3360 reported by Prabhu.
3364 reported by Prabhu.
3361 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3365 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3362 sys.stderr) instead of explicitly calling sys.stderr. This helps
3366 sys.stderr) instead of explicitly calling sys.stderr. This helps
3363 maintain our I/O abstractions clean, for future GUI embeddings.
3367 maintain our I/O abstractions clean, for future GUI embeddings.
3364
3368
3365 * IPython/genutils.py (info): added new utility for sys.stderr
3369 * IPython/genutils.py (info): added new utility for sys.stderr
3366 unified info message handling (thin wrapper around warn()).
3370 unified info message handling (thin wrapper around warn()).
3367
3371
3368 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3372 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3369 composite (dotted) names on verbose exceptions.
3373 composite (dotted) names on verbose exceptions.
3370 (VerboseTB.nullrepr): harden against another kind of errors which
3374 (VerboseTB.nullrepr): harden against another kind of errors which
3371 Python's inspect module can trigger, and which were crashing
3375 Python's inspect module can trigger, and which were crashing
3372 IPython. Thanks to a report by Marco Lombardi
3376 IPython. Thanks to a report by Marco Lombardi
3373 <mlombard-AT-ma010192.hq.eso.org>.
3377 <mlombard-AT-ma010192.hq.eso.org>.
3374
3378
3375 2004-12-13 *** Released version 0.6.6
3379 2004-12-13 *** Released version 0.6.6
3376
3380
3377 2004-12-12 Fernando Perez <fperez@colorado.edu>
3381 2004-12-12 Fernando Perez <fperez@colorado.edu>
3378
3382
3379 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3383 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3380 generated by pygtk upon initialization if it was built without
3384 generated by pygtk upon initialization if it was built without
3381 threads (for matplotlib users). After a crash reported by
3385 threads (for matplotlib users). After a crash reported by
3382 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3386 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3383
3387
3384 * IPython/ipmaker.py (make_IPython): fix small bug in the
3388 * IPython/ipmaker.py (make_IPython): fix small bug in the
3385 import_some parameter for multiple imports.
3389 import_some parameter for multiple imports.
3386
3390
3387 * IPython/iplib.py (ipmagic): simplified the interface of
3391 * IPython/iplib.py (ipmagic): simplified the interface of
3388 ipmagic() to take a single string argument, just as it would be
3392 ipmagic() to take a single string argument, just as it would be
3389 typed at the IPython cmd line.
3393 typed at the IPython cmd line.
3390 (ipalias): Added new ipalias() with an interface identical to
3394 (ipalias): Added new ipalias() with an interface identical to
3391 ipmagic(). This completes exposing a pure python interface to the
3395 ipmagic(). This completes exposing a pure python interface to the
3392 alias and magic system, which can be used in loops or more complex
3396 alias and magic system, which can be used in loops or more complex
3393 code where IPython's automatic line mangling is not active.
3397 code where IPython's automatic line mangling is not active.
3394
3398
3395 * IPython/genutils.py (timing): changed interface of timing to
3399 * IPython/genutils.py (timing): changed interface of timing to
3396 simply run code once, which is the most common case. timings()
3400 simply run code once, which is the most common case. timings()
3397 remains unchanged, for the cases where you want multiple runs.
3401 remains unchanged, for the cases where you want multiple runs.
3398
3402
3399 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3403 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3400 bug where Python2.2 crashes with exec'ing code which does not end
3404 bug where Python2.2 crashes with exec'ing code which does not end
3401 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3405 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3402 before.
3406 before.
3403
3407
3404 2004-12-10 Fernando Perez <fperez@colorado.edu>
3408 2004-12-10 Fernando Perez <fperez@colorado.edu>
3405
3409
3406 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3410 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3407 -t to -T, to accomodate the new -t flag in %run (the %run and
3411 -t to -T, to accomodate the new -t flag in %run (the %run and
3408 %prun options are kind of intermixed, and it's not easy to change
3412 %prun options are kind of intermixed, and it's not easy to change
3409 this with the limitations of python's getopt).
3413 this with the limitations of python's getopt).
3410
3414
3411 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3415 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3412 the execution of scripts. It's not as fine-tuned as timeit.py,
3416 the execution of scripts. It's not as fine-tuned as timeit.py,
3413 but it works from inside ipython (and under 2.2, which lacks
3417 but it works from inside ipython (and under 2.2, which lacks
3414 timeit.py). Optionally a number of runs > 1 can be given for
3418 timeit.py). Optionally a number of runs > 1 can be given for
3415 timing very short-running code.
3419 timing very short-running code.
3416
3420
3417 * IPython/genutils.py (uniq_stable): new routine which returns a
3421 * IPython/genutils.py (uniq_stable): new routine which returns a
3418 list of unique elements in any iterable, but in stable order of
3422 list of unique elements in any iterable, but in stable order of
3419 appearance. I needed this for the ultraTB fixes, and it's a handy
3423 appearance. I needed this for the ultraTB fixes, and it's a handy
3420 utility.
3424 utility.
3421
3425
3422 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3426 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3423 dotted names in Verbose exceptions. This had been broken since
3427 dotted names in Verbose exceptions. This had been broken since
3424 the very start, now x.y will properly be printed in a Verbose
3428 the very start, now x.y will properly be printed in a Verbose
3425 traceback, instead of x being shown and y appearing always as an
3429 traceback, instead of x being shown and y appearing always as an
3426 'undefined global'. Getting this to work was a bit tricky,
3430 'undefined global'. Getting this to work was a bit tricky,
3427 because by default python tokenizers are stateless. Saved by
3431 because by default python tokenizers are stateless. Saved by
3428 python's ability to easily add a bit of state to an arbitrary
3432 python's ability to easily add a bit of state to an arbitrary
3429 function (without needing to build a full-blown callable object).
3433 function (without needing to build a full-blown callable object).
3430
3434
3431 Also big cleanup of this code, which had horrendous runtime
3435 Also big cleanup of this code, which had horrendous runtime
3432 lookups of zillions of attributes for colorization. Moved all
3436 lookups of zillions of attributes for colorization. Moved all
3433 this code into a few templates, which make it cleaner and quicker.
3437 this code into a few templates, which make it cleaner and quicker.
3434
3438
3435 Printout quality was also improved for Verbose exceptions: one
3439 Printout quality was also improved for Verbose exceptions: one
3436 variable per line, and memory addresses are printed (this can be
3440 variable per line, and memory addresses are printed (this can be
3437 quite handy in nasty debugging situations, which is what Verbose
3441 quite handy in nasty debugging situations, which is what Verbose
3438 is for).
3442 is for).
3439
3443
3440 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3444 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3441 the command line as scripts to be loaded by embedded instances.
3445 the command line as scripts to be loaded by embedded instances.
3442 Doing so has the potential for an infinite recursion if there are
3446 Doing so has the potential for an infinite recursion if there are
3443 exceptions thrown in the process. This fixes a strange crash
3447 exceptions thrown in the process. This fixes a strange crash
3444 reported by Philippe MULLER <muller-AT-irit.fr>.
3448 reported by Philippe MULLER <muller-AT-irit.fr>.
3445
3449
3446 2004-12-09 Fernando Perez <fperez@colorado.edu>
3450 2004-12-09 Fernando Perez <fperez@colorado.edu>
3447
3451
3448 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3452 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3449 to reflect new names in matplotlib, which now expose the
3453 to reflect new names in matplotlib, which now expose the
3450 matlab-compatible interface via a pylab module instead of the
3454 matlab-compatible interface via a pylab module instead of the
3451 'matlab' name. The new code is backwards compatible, so users of
3455 'matlab' name. The new code is backwards compatible, so users of
3452 all matplotlib versions are OK. Patch by J. Hunter.
3456 all matplotlib versions are OK. Patch by J. Hunter.
3453
3457
3454 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3458 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3455 of __init__ docstrings for instances (class docstrings are already
3459 of __init__ docstrings for instances (class docstrings are already
3456 automatically printed). Instances with customized docstrings
3460 automatically printed). Instances with customized docstrings
3457 (indep. of the class) are also recognized and all 3 separate
3461 (indep. of the class) are also recognized and all 3 separate
3458 docstrings are printed (instance, class, constructor). After some
3462 docstrings are printed (instance, class, constructor). After some
3459 comments/suggestions by J. Hunter.
3463 comments/suggestions by J. Hunter.
3460
3464
3461 2004-12-05 Fernando Perez <fperez@colorado.edu>
3465 2004-12-05 Fernando Perez <fperez@colorado.edu>
3462
3466
3463 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3467 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3464 warnings when tab-completion fails and triggers an exception.
3468 warnings when tab-completion fails and triggers an exception.
3465
3469
3466 2004-12-03 Fernando Perez <fperez@colorado.edu>
3470 2004-12-03 Fernando Perez <fperez@colorado.edu>
3467
3471
3468 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3472 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3469 be triggered when using 'run -p'. An incorrect option flag was
3473 be triggered when using 'run -p'. An incorrect option flag was
3470 being set ('d' instead of 'D').
3474 being set ('d' instead of 'D').
3471 (manpage): fix missing escaped \- sign.
3475 (manpage): fix missing escaped \- sign.
3472
3476
3473 2004-11-30 *** Released version 0.6.5
3477 2004-11-30 *** Released version 0.6.5
3474
3478
3475 2004-11-30 Fernando Perez <fperez@colorado.edu>
3479 2004-11-30 Fernando Perez <fperez@colorado.edu>
3476
3480
3477 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3481 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3478 setting with -d option.
3482 setting with -d option.
3479
3483
3480 * setup.py (docfiles): Fix problem where the doc glob I was using
3484 * setup.py (docfiles): Fix problem where the doc glob I was using
3481 was COMPLETELY BROKEN. It was giving the right files by pure
3485 was COMPLETELY BROKEN. It was giving the right files by pure
3482 accident, but failed once I tried to include ipython.el. Note:
3486 accident, but failed once I tried to include ipython.el. Note:
3483 glob() does NOT allow you to do exclusion on multiple endings!
3487 glob() does NOT allow you to do exclusion on multiple endings!
3484
3488
3485 2004-11-29 Fernando Perez <fperez@colorado.edu>
3489 2004-11-29 Fernando Perez <fperez@colorado.edu>
3486
3490
3487 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3491 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3488 the manpage as the source. Better formatting & consistency.
3492 the manpage as the source. Better formatting & consistency.
3489
3493
3490 * IPython/Magic.py (magic_run): Added new -d option, to run
3494 * IPython/Magic.py (magic_run): Added new -d option, to run
3491 scripts under the control of the python pdb debugger. Note that
3495 scripts under the control of the python pdb debugger. Note that
3492 this required changing the %prun option -d to -D, to avoid a clash
3496 this required changing the %prun option -d to -D, to avoid a clash
3493 (since %run must pass options to %prun, and getopt is too dumb to
3497 (since %run must pass options to %prun, and getopt is too dumb to
3494 handle options with string values with embedded spaces). Thanks
3498 handle options with string values with embedded spaces). Thanks
3495 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3499 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3496 (magic_who_ls): added type matching to %who and %whos, so that one
3500 (magic_who_ls): added type matching to %who and %whos, so that one
3497 can filter their output to only include variables of certain
3501 can filter their output to only include variables of certain
3498 types. Another suggestion by Matthew.
3502 types. Another suggestion by Matthew.
3499 (magic_whos): Added memory summaries in kb and Mb for arrays.
3503 (magic_whos): Added memory summaries in kb and Mb for arrays.
3500 (magic_who): Improve formatting (break lines every 9 vars).
3504 (magic_who): Improve formatting (break lines every 9 vars).
3501
3505
3502 2004-11-28 Fernando Perez <fperez@colorado.edu>
3506 2004-11-28 Fernando Perez <fperez@colorado.edu>
3503
3507
3504 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3508 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3505 cache when empty lines were present.
3509 cache when empty lines were present.
3506
3510
3507 2004-11-24 Fernando Perez <fperez@colorado.edu>
3511 2004-11-24 Fernando Perez <fperez@colorado.edu>
3508
3512
3509 * IPython/usage.py (__doc__): document the re-activated threading
3513 * IPython/usage.py (__doc__): document the re-activated threading
3510 options for WX and GTK.
3514 options for WX and GTK.
3511
3515
3512 2004-11-23 Fernando Perez <fperez@colorado.edu>
3516 2004-11-23 Fernando Perez <fperez@colorado.edu>
3513
3517
3514 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3518 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3515 the -wthread and -gthread options, along with a new -tk one to try
3519 the -wthread and -gthread options, along with a new -tk one to try
3516 and coordinate Tk threading with wx/gtk. The tk support is very
3520 and coordinate Tk threading with wx/gtk. The tk support is very
3517 platform dependent, since it seems to require Tcl and Tk to be
3521 platform dependent, since it seems to require Tcl and Tk to be
3518 built with threads (Fedora1/2 appears NOT to have it, but in
3522 built with threads (Fedora1/2 appears NOT to have it, but in
3519 Prabhu's Debian boxes it works OK). But even with some Tk
3523 Prabhu's Debian boxes it works OK). But even with some Tk
3520 limitations, this is a great improvement.
3524 limitations, this is a great improvement.
3521
3525
3522 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3526 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3523 info in user prompts. Patch by Prabhu.
3527 info in user prompts. Patch by Prabhu.
3524
3528
3525 2004-11-18 Fernando Perez <fperez@colorado.edu>
3529 2004-11-18 Fernando Perez <fperez@colorado.edu>
3526
3530
3527 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3531 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3528 EOFErrors and bail, to avoid infinite loops if a non-terminating
3532 EOFErrors and bail, to avoid infinite loops if a non-terminating
3529 file is fed into ipython. Patch submitted in issue 19 by user,
3533 file is fed into ipython. Patch submitted in issue 19 by user,
3530 many thanks.
3534 many thanks.
3531
3535
3532 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3536 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3533 autoquote/parens in continuation prompts, which can cause lots of
3537 autoquote/parens in continuation prompts, which can cause lots of
3534 problems. Closes roundup issue 20.
3538 problems. Closes roundup issue 20.
3535
3539
3536 2004-11-17 Fernando Perez <fperez@colorado.edu>
3540 2004-11-17 Fernando Perez <fperez@colorado.edu>
3537
3541
3538 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3542 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3539 reported as debian bug #280505. I'm not sure my local changelog
3543 reported as debian bug #280505. I'm not sure my local changelog
3540 entry has the proper debian format (Jack?).
3544 entry has the proper debian format (Jack?).
3541
3545
3542 2004-11-08 *** Released version 0.6.4
3546 2004-11-08 *** Released version 0.6.4
3543
3547
3544 2004-11-08 Fernando Perez <fperez@colorado.edu>
3548 2004-11-08 Fernando Perez <fperez@colorado.edu>
3545
3549
3546 * IPython/iplib.py (init_readline): Fix exit message for Windows
3550 * IPython/iplib.py (init_readline): Fix exit message for Windows
3547 when readline is active. Thanks to a report by Eric Jones
3551 when readline is active. Thanks to a report by Eric Jones
3548 <eric-AT-enthought.com>.
3552 <eric-AT-enthought.com>.
3549
3553
3550 2004-11-07 Fernando Perez <fperez@colorado.edu>
3554 2004-11-07 Fernando Perez <fperez@colorado.edu>
3551
3555
3552 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3556 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3553 sometimes seen by win2k/cygwin users.
3557 sometimes seen by win2k/cygwin users.
3554
3558
3555 2004-11-06 Fernando Perez <fperez@colorado.edu>
3559 2004-11-06 Fernando Perez <fperez@colorado.edu>
3556
3560
3557 * IPython/iplib.py (interact): Change the handling of %Exit from
3561 * IPython/iplib.py (interact): Change the handling of %Exit from
3558 trying to propagate a SystemExit to an internal ipython flag.
3562 trying to propagate a SystemExit to an internal ipython flag.
3559 This is less elegant than using Python's exception mechanism, but
3563 This is less elegant than using Python's exception mechanism, but
3560 I can't get that to work reliably with threads, so under -pylab
3564 I can't get that to work reliably with threads, so under -pylab
3561 %Exit was hanging IPython. Cross-thread exception handling is
3565 %Exit was hanging IPython. Cross-thread exception handling is
3562 really a bitch. Thaks to a bug report by Stephen Walton
3566 really a bitch. Thaks to a bug report by Stephen Walton
3563 <stephen.walton-AT-csun.edu>.
3567 <stephen.walton-AT-csun.edu>.
3564
3568
3565 2004-11-04 Fernando Perez <fperez@colorado.edu>
3569 2004-11-04 Fernando Perez <fperez@colorado.edu>
3566
3570
3567 * IPython/iplib.py (raw_input_original): store a pointer to the
3571 * IPython/iplib.py (raw_input_original): store a pointer to the
3568 true raw_input to harden against code which can modify it
3572 true raw_input to harden against code which can modify it
3569 (wx.py.PyShell does this and would otherwise crash ipython).
3573 (wx.py.PyShell does this and would otherwise crash ipython).
3570 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3574 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3571
3575
3572 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3576 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3573 Ctrl-C problem, which does not mess up the input line.
3577 Ctrl-C problem, which does not mess up the input line.
3574
3578
3575 2004-11-03 Fernando Perez <fperez@colorado.edu>
3579 2004-11-03 Fernando Perez <fperez@colorado.edu>
3576
3580
3577 * IPython/Release.py: Changed licensing to BSD, in all files.
3581 * IPython/Release.py: Changed licensing to BSD, in all files.
3578 (name): lowercase name for tarball/RPM release.
3582 (name): lowercase name for tarball/RPM release.
3579
3583
3580 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3584 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3581 use throughout ipython.
3585 use throughout ipython.
3582
3586
3583 * IPython/Magic.py (Magic._ofind): Switch to using the new
3587 * IPython/Magic.py (Magic._ofind): Switch to using the new
3584 OInspect.getdoc() function.
3588 OInspect.getdoc() function.
3585
3589
3586 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3590 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3587 of the line currently being canceled via Ctrl-C. It's extremely
3591 of the line currently being canceled via Ctrl-C. It's extremely
3588 ugly, but I don't know how to do it better (the problem is one of
3592 ugly, but I don't know how to do it better (the problem is one of
3589 handling cross-thread exceptions).
3593 handling cross-thread exceptions).
3590
3594
3591 2004-10-28 Fernando Perez <fperez@colorado.edu>
3595 2004-10-28 Fernando Perez <fperez@colorado.edu>
3592
3596
3593 * IPython/Shell.py (signal_handler): add signal handlers to trap
3597 * IPython/Shell.py (signal_handler): add signal handlers to trap
3594 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3598 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3595 report by Francesc Alted.
3599 report by Francesc Alted.
3596
3600
3597 2004-10-21 Fernando Perez <fperez@colorado.edu>
3601 2004-10-21 Fernando Perez <fperez@colorado.edu>
3598
3602
3599 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3603 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3600 to % for pysh syntax extensions.
3604 to % for pysh syntax extensions.
3601
3605
3602 2004-10-09 Fernando Perez <fperez@colorado.edu>
3606 2004-10-09 Fernando Perez <fperez@colorado.edu>
3603
3607
3604 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3608 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3605 arrays to print a more useful summary, without calling str(arr).
3609 arrays to print a more useful summary, without calling str(arr).
3606 This avoids the problem of extremely lengthy computations which
3610 This avoids the problem of extremely lengthy computations which
3607 occur if arr is large, and appear to the user as a system lockup
3611 occur if arr is large, and appear to the user as a system lockup
3608 with 100% cpu activity. After a suggestion by Kristian Sandberg
3612 with 100% cpu activity. After a suggestion by Kristian Sandberg
3609 <Kristian.Sandberg@colorado.edu>.
3613 <Kristian.Sandberg@colorado.edu>.
3610 (Magic.__init__): fix bug in global magic escapes not being
3614 (Magic.__init__): fix bug in global magic escapes not being
3611 correctly set.
3615 correctly set.
3612
3616
3613 2004-10-08 Fernando Perez <fperez@colorado.edu>
3617 2004-10-08 Fernando Perez <fperez@colorado.edu>
3614
3618
3615 * IPython/Magic.py (__license__): change to absolute imports of
3619 * IPython/Magic.py (__license__): change to absolute imports of
3616 ipython's own internal packages, to start adapting to the absolute
3620 ipython's own internal packages, to start adapting to the absolute
3617 import requirement of PEP-328.
3621 import requirement of PEP-328.
3618
3622
3619 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3623 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3620 files, and standardize author/license marks through the Release
3624 files, and standardize author/license marks through the Release
3621 module instead of having per/file stuff (except for files with
3625 module instead of having per/file stuff (except for files with
3622 particular licenses, like the MIT/PSF-licensed codes).
3626 particular licenses, like the MIT/PSF-licensed codes).
3623
3627
3624 * IPython/Debugger.py: remove dead code for python 2.1
3628 * IPython/Debugger.py: remove dead code for python 2.1
3625
3629
3626 2004-10-04 Fernando Perez <fperez@colorado.edu>
3630 2004-10-04 Fernando Perez <fperez@colorado.edu>
3627
3631
3628 * IPython/iplib.py (ipmagic): New function for accessing magics
3632 * IPython/iplib.py (ipmagic): New function for accessing magics
3629 via a normal python function call.
3633 via a normal python function call.
3630
3634
3631 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3635 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3632 from '@' to '%', to accomodate the new @decorator syntax of python
3636 from '@' to '%', to accomodate the new @decorator syntax of python
3633 2.4.
3637 2.4.
3634
3638
3635 2004-09-29 Fernando Perez <fperez@colorado.edu>
3639 2004-09-29 Fernando Perez <fperez@colorado.edu>
3636
3640
3637 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3641 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3638 matplotlib.use to prevent running scripts which try to switch
3642 matplotlib.use to prevent running scripts which try to switch
3639 interactive backends from within ipython. This will just crash
3643 interactive backends from within ipython. This will just crash
3640 the python interpreter, so we can't allow it (but a detailed error
3644 the python interpreter, so we can't allow it (but a detailed error
3641 is given to the user).
3645 is given to the user).
3642
3646
3643 2004-09-28 Fernando Perez <fperez@colorado.edu>
3647 2004-09-28 Fernando Perez <fperez@colorado.edu>
3644
3648
3645 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3649 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3646 matplotlib-related fixes so that using @run with non-matplotlib
3650 matplotlib-related fixes so that using @run with non-matplotlib
3647 scripts doesn't pop up spurious plot windows. This requires
3651 scripts doesn't pop up spurious plot windows. This requires
3648 matplotlib >= 0.63, where I had to make some changes as well.
3652 matplotlib >= 0.63, where I had to make some changes as well.
3649
3653
3650 * IPython/ipmaker.py (make_IPython): update version requirement to
3654 * IPython/ipmaker.py (make_IPython): update version requirement to
3651 python 2.2.
3655 python 2.2.
3652
3656
3653 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3657 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3654 banner arg for embedded customization.
3658 banner arg for embedded customization.
3655
3659
3656 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3660 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3657 explicit uses of __IP as the IPython's instance name. Now things
3661 explicit uses of __IP as the IPython's instance name. Now things
3658 are properly handled via the shell.name value. The actual code
3662 are properly handled via the shell.name value. The actual code
3659 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3663 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3660 is much better than before. I'll clean things completely when the
3664 is much better than before. I'll clean things completely when the
3661 magic stuff gets a real overhaul.
3665 magic stuff gets a real overhaul.
3662
3666
3663 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3667 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3664 minor changes to debian dir.
3668 minor changes to debian dir.
3665
3669
3666 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3670 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3667 pointer to the shell itself in the interactive namespace even when
3671 pointer to the shell itself in the interactive namespace even when
3668 a user-supplied dict is provided. This is needed for embedding
3672 a user-supplied dict is provided. This is needed for embedding
3669 purposes (found by tests with Michel Sanner).
3673 purposes (found by tests with Michel Sanner).
3670
3674
3671 2004-09-27 Fernando Perez <fperez@colorado.edu>
3675 2004-09-27 Fernando Perez <fperez@colorado.edu>
3672
3676
3673 * IPython/UserConfig/ipythonrc: remove []{} from
3677 * IPython/UserConfig/ipythonrc: remove []{} from
3674 readline_remove_delims, so that things like [modname.<TAB> do
3678 readline_remove_delims, so that things like [modname.<TAB> do
3675 proper completion. This disables [].TAB, but that's a less common
3679 proper completion. This disables [].TAB, but that's a less common
3676 case than module names in list comprehensions, for example.
3680 case than module names in list comprehensions, for example.
3677 Thanks to a report by Andrea Riciputi.
3681 Thanks to a report by Andrea Riciputi.
3678
3682
3679 2004-09-09 Fernando Perez <fperez@colorado.edu>
3683 2004-09-09 Fernando Perez <fperez@colorado.edu>
3680
3684
3681 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3685 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3682 blocking problems in win32 and osx. Fix by John.
3686 blocking problems in win32 and osx. Fix by John.
3683
3687
3684 2004-09-08 Fernando Perez <fperez@colorado.edu>
3688 2004-09-08 Fernando Perez <fperez@colorado.edu>
3685
3689
3686 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3690 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3687 for Win32 and OSX. Fix by John Hunter.
3691 for Win32 and OSX. Fix by John Hunter.
3688
3692
3689 2004-08-30 *** Released version 0.6.3
3693 2004-08-30 *** Released version 0.6.3
3690
3694
3691 2004-08-30 Fernando Perez <fperez@colorado.edu>
3695 2004-08-30 Fernando Perez <fperez@colorado.edu>
3692
3696
3693 * setup.py (isfile): Add manpages to list of dependent files to be
3697 * setup.py (isfile): Add manpages to list of dependent files to be
3694 updated.
3698 updated.
3695
3699
3696 2004-08-27 Fernando Perez <fperez@colorado.edu>
3700 2004-08-27 Fernando Perez <fperez@colorado.edu>
3697
3701
3698 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3702 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3699 for now. They don't really work with standalone WX/GTK code
3703 for now. They don't really work with standalone WX/GTK code
3700 (though matplotlib IS working fine with both of those backends).
3704 (though matplotlib IS working fine with both of those backends).
3701 This will neeed much more testing. I disabled most things with
3705 This will neeed much more testing. I disabled most things with
3702 comments, so turning it back on later should be pretty easy.
3706 comments, so turning it back on later should be pretty easy.
3703
3707
3704 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3708 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3705 autocalling of expressions like r'foo', by modifying the line
3709 autocalling of expressions like r'foo', by modifying the line
3706 split regexp. Closes
3710 split regexp. Closes
3707 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3711 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3708 Riley <ipythonbugs-AT-sabi.net>.
3712 Riley <ipythonbugs-AT-sabi.net>.
3709 (InteractiveShell.mainloop): honor --nobanner with banner
3713 (InteractiveShell.mainloop): honor --nobanner with banner
3710 extensions.
3714 extensions.
3711
3715
3712 * IPython/Shell.py: Significant refactoring of all classes, so
3716 * IPython/Shell.py: Significant refactoring of all classes, so
3713 that we can really support ALL matplotlib backends and threading
3717 that we can really support ALL matplotlib backends and threading
3714 models (John spotted a bug with Tk which required this). Now we
3718 models (John spotted a bug with Tk which required this). Now we
3715 should support single-threaded, WX-threads and GTK-threads, both
3719 should support single-threaded, WX-threads and GTK-threads, both
3716 for generic code and for matplotlib.
3720 for generic code and for matplotlib.
3717
3721
3718 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3722 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3719 -pylab, to simplify things for users. Will also remove the pylab
3723 -pylab, to simplify things for users. Will also remove the pylab
3720 profile, since now all of matplotlib configuration is directly
3724 profile, since now all of matplotlib configuration is directly
3721 handled here. This also reduces startup time.
3725 handled here. This also reduces startup time.
3722
3726
3723 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3727 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3724 shell wasn't being correctly called. Also in IPShellWX.
3728 shell wasn't being correctly called. Also in IPShellWX.
3725
3729
3726 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3730 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3727 fine-tune banner.
3731 fine-tune banner.
3728
3732
3729 * IPython/numutils.py (spike): Deprecate these spike functions,
3733 * IPython/numutils.py (spike): Deprecate these spike functions,
3730 delete (long deprecated) gnuplot_exec handler.
3734 delete (long deprecated) gnuplot_exec handler.
3731
3735
3732 2004-08-26 Fernando Perez <fperez@colorado.edu>
3736 2004-08-26 Fernando Perez <fperez@colorado.edu>
3733
3737
3734 * ipython.1: Update for threading options, plus some others which
3738 * ipython.1: Update for threading options, plus some others which
3735 were missing.
3739 were missing.
3736
3740
3737 * IPython/ipmaker.py (__call__): Added -wthread option for
3741 * IPython/ipmaker.py (__call__): Added -wthread option for
3738 wxpython thread handling. Make sure threading options are only
3742 wxpython thread handling. Make sure threading options are only
3739 valid at the command line.
3743 valid at the command line.
3740
3744
3741 * scripts/ipython: moved shell selection into a factory function
3745 * scripts/ipython: moved shell selection into a factory function
3742 in Shell.py, to keep the starter script to a minimum.
3746 in Shell.py, to keep the starter script to a minimum.
3743
3747
3744 2004-08-25 Fernando Perez <fperez@colorado.edu>
3748 2004-08-25 Fernando Perez <fperez@colorado.edu>
3745
3749
3746 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3750 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3747 John. Along with some recent changes he made to matplotlib, the
3751 John. Along with some recent changes he made to matplotlib, the
3748 next versions of both systems should work very well together.
3752 next versions of both systems should work very well together.
3749
3753
3750 2004-08-24 Fernando Perez <fperez@colorado.edu>
3754 2004-08-24 Fernando Perez <fperez@colorado.edu>
3751
3755
3752 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3756 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3753 tried to switch the profiling to using hotshot, but I'm getting
3757 tried to switch the profiling to using hotshot, but I'm getting
3754 strange errors from prof.runctx() there. I may be misreading the
3758 strange errors from prof.runctx() there. I may be misreading the
3755 docs, but it looks weird. For now the profiling code will
3759 docs, but it looks weird. For now the profiling code will
3756 continue to use the standard profiler.
3760 continue to use the standard profiler.
3757
3761
3758 2004-08-23 Fernando Perez <fperez@colorado.edu>
3762 2004-08-23 Fernando Perez <fperez@colorado.edu>
3759
3763
3760 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3764 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3761 threaded shell, by John Hunter. It's not quite ready yet, but
3765 threaded shell, by John Hunter. It's not quite ready yet, but
3762 close.
3766 close.
3763
3767
3764 2004-08-22 Fernando Perez <fperez@colorado.edu>
3768 2004-08-22 Fernando Perez <fperez@colorado.edu>
3765
3769
3766 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3770 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3767 in Magic and ultraTB.
3771 in Magic and ultraTB.
3768
3772
3769 * ipython.1: document threading options in manpage.
3773 * ipython.1: document threading options in manpage.
3770
3774
3771 * scripts/ipython: Changed name of -thread option to -gthread,
3775 * scripts/ipython: Changed name of -thread option to -gthread,
3772 since this is GTK specific. I want to leave the door open for a
3776 since this is GTK specific. I want to leave the door open for a
3773 -wthread option for WX, which will most likely be necessary. This
3777 -wthread option for WX, which will most likely be necessary. This
3774 change affects usage and ipmaker as well.
3778 change affects usage and ipmaker as well.
3775
3779
3776 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3780 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3777 handle the matplotlib shell issues. Code by John Hunter
3781 handle the matplotlib shell issues. Code by John Hunter
3778 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3782 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3779 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3783 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3780 broken (and disabled for end users) for now, but it puts the
3784 broken (and disabled for end users) for now, but it puts the
3781 infrastructure in place.
3785 infrastructure in place.
3782
3786
3783 2004-08-21 Fernando Perez <fperez@colorado.edu>
3787 2004-08-21 Fernando Perez <fperez@colorado.edu>
3784
3788
3785 * ipythonrc-pylab: Add matplotlib support.
3789 * ipythonrc-pylab: Add matplotlib support.
3786
3790
3787 * matplotlib_config.py: new files for matplotlib support, part of
3791 * matplotlib_config.py: new files for matplotlib support, part of
3788 the pylab profile.
3792 the pylab profile.
3789
3793
3790 * IPython/usage.py (__doc__): documented the threading options.
3794 * IPython/usage.py (__doc__): documented the threading options.
3791
3795
3792 2004-08-20 Fernando Perez <fperez@colorado.edu>
3796 2004-08-20 Fernando Perez <fperez@colorado.edu>
3793
3797
3794 * ipython: Modified the main calling routine to handle the -thread
3798 * ipython: Modified the main calling routine to handle the -thread
3795 and -mpthread options. This needs to be done as a top-level hack,
3799 and -mpthread options. This needs to be done as a top-level hack,
3796 because it determines which class to instantiate for IPython
3800 because it determines which class to instantiate for IPython
3797 itself.
3801 itself.
3798
3802
3799 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3803 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3800 classes to support multithreaded GTK operation without blocking,
3804 classes to support multithreaded GTK operation without blocking,
3801 and matplotlib with all backends. This is a lot of still very
3805 and matplotlib with all backends. This is a lot of still very
3802 experimental code, and threads are tricky. So it may still have a
3806 experimental code, and threads are tricky. So it may still have a
3803 few rough edges... This code owes a lot to
3807 few rough edges... This code owes a lot to
3804 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3808 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3805 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3809 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3806 to John Hunter for all the matplotlib work.
3810 to John Hunter for all the matplotlib work.
3807
3811
3808 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3812 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3809 options for gtk thread and matplotlib support.
3813 options for gtk thread and matplotlib support.
3810
3814
3811 2004-08-16 Fernando Perez <fperez@colorado.edu>
3815 2004-08-16 Fernando Perez <fperez@colorado.edu>
3812
3816
3813 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3817 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3814 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3818 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3815 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3819 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3816
3820
3817 2004-08-11 Fernando Perez <fperez@colorado.edu>
3821 2004-08-11 Fernando Perez <fperez@colorado.edu>
3818
3822
3819 * setup.py (isfile): Fix build so documentation gets updated for
3823 * setup.py (isfile): Fix build so documentation gets updated for
3820 rpms (it was only done for .tgz builds).
3824 rpms (it was only done for .tgz builds).
3821
3825
3822 2004-08-10 Fernando Perez <fperez@colorado.edu>
3826 2004-08-10 Fernando Perez <fperez@colorado.edu>
3823
3827
3824 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3828 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3825
3829
3826 * iplib.py : Silence syntax error exceptions in tab-completion.
3830 * iplib.py : Silence syntax error exceptions in tab-completion.
3827
3831
3828 2004-08-05 Fernando Perez <fperez@colorado.edu>
3832 2004-08-05 Fernando Perez <fperez@colorado.edu>
3829
3833
3830 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3834 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3831 'color off' mark for continuation prompts. This was causing long
3835 'color off' mark for continuation prompts. This was causing long
3832 continuation lines to mis-wrap.
3836 continuation lines to mis-wrap.
3833
3837
3834 2004-08-01 Fernando Perez <fperez@colorado.edu>
3838 2004-08-01 Fernando Perez <fperez@colorado.edu>
3835
3839
3836 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3840 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3837 for building ipython to be a parameter. All this is necessary
3841 for building ipython to be a parameter. All this is necessary
3838 right now to have a multithreaded version, but this insane
3842 right now to have a multithreaded version, but this insane
3839 non-design will be cleaned up soon. For now, it's a hack that
3843 non-design will be cleaned up soon. For now, it's a hack that
3840 works.
3844 works.
3841
3845
3842 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3846 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3843 args in various places. No bugs so far, but it's a dangerous
3847 args in various places. No bugs so far, but it's a dangerous
3844 practice.
3848 practice.
3845
3849
3846 2004-07-31 Fernando Perez <fperez@colorado.edu>
3850 2004-07-31 Fernando Perez <fperez@colorado.edu>
3847
3851
3848 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3852 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3849 fix completion of files with dots in their names under most
3853 fix completion of files with dots in their names under most
3850 profiles (pysh was OK because the completion order is different).
3854 profiles (pysh was OK because the completion order is different).
3851
3855
3852 2004-07-27 Fernando Perez <fperez@colorado.edu>
3856 2004-07-27 Fernando Perez <fperez@colorado.edu>
3853
3857
3854 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3858 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3855 keywords manually, b/c the one in keyword.py was removed in python
3859 keywords manually, b/c the one in keyword.py was removed in python
3856 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3860 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3857 This is NOT a bug under python 2.3 and earlier.
3861 This is NOT a bug under python 2.3 and earlier.
3858
3862
3859 2004-07-26 Fernando Perez <fperez@colorado.edu>
3863 2004-07-26 Fernando Perez <fperez@colorado.edu>
3860
3864
3861 * IPython/ultraTB.py (VerboseTB.text): Add another
3865 * IPython/ultraTB.py (VerboseTB.text): Add another
3862 linecache.checkcache() call to try to prevent inspect.py from
3866 linecache.checkcache() call to try to prevent inspect.py from
3863 crashing under python 2.3. I think this fixes
3867 crashing under python 2.3. I think this fixes
3864 http://www.scipy.net/roundup/ipython/issue17.
3868 http://www.scipy.net/roundup/ipython/issue17.
3865
3869
3866 2004-07-26 *** Released version 0.6.2
3870 2004-07-26 *** Released version 0.6.2
3867
3871
3868 2004-07-26 Fernando Perez <fperez@colorado.edu>
3872 2004-07-26 Fernando Perez <fperez@colorado.edu>
3869
3873
3870 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3874 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3871 fail for any number.
3875 fail for any number.
3872 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3876 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3873 empty bookmarks.
3877 empty bookmarks.
3874
3878
3875 2004-07-26 *** Released version 0.6.1
3879 2004-07-26 *** Released version 0.6.1
3876
3880
3877 2004-07-26 Fernando Perez <fperez@colorado.edu>
3881 2004-07-26 Fernando Perez <fperez@colorado.edu>
3878
3882
3879 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3883 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3880
3884
3881 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3885 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3882 escaping '()[]{}' in filenames.
3886 escaping '()[]{}' in filenames.
3883
3887
3884 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3888 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3885 Python 2.2 users who lack a proper shlex.split.
3889 Python 2.2 users who lack a proper shlex.split.
3886
3890
3887 2004-07-19 Fernando Perez <fperez@colorado.edu>
3891 2004-07-19 Fernando Perez <fperez@colorado.edu>
3888
3892
3889 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3893 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3890 for reading readline's init file. I follow the normal chain:
3894 for reading readline's init file. I follow the normal chain:
3891 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3895 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3892 report by Mike Heeter. This closes
3896 report by Mike Heeter. This closes
3893 http://www.scipy.net/roundup/ipython/issue16.
3897 http://www.scipy.net/roundup/ipython/issue16.
3894
3898
3895 2004-07-18 Fernando Perez <fperez@colorado.edu>
3899 2004-07-18 Fernando Perez <fperez@colorado.edu>
3896
3900
3897 * IPython/iplib.py (__init__): Add better handling of '\' under
3901 * IPython/iplib.py (__init__): Add better handling of '\' under
3898 Win32 for filenames. After a patch by Ville.
3902 Win32 for filenames. After a patch by Ville.
3899
3903
3900 2004-07-17 Fernando Perez <fperez@colorado.edu>
3904 2004-07-17 Fernando Perez <fperez@colorado.edu>
3901
3905
3902 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3906 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3903 autocalling would be triggered for 'foo is bar' if foo is
3907 autocalling would be triggered for 'foo is bar' if foo is
3904 callable. I also cleaned up the autocall detection code to use a
3908 callable. I also cleaned up the autocall detection code to use a
3905 regexp, which is faster. Bug reported by Alexander Schmolck.
3909 regexp, which is faster. Bug reported by Alexander Schmolck.
3906
3910
3907 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3911 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3908 '?' in them would confuse the help system. Reported by Alex
3912 '?' in them would confuse the help system. Reported by Alex
3909 Schmolck.
3913 Schmolck.
3910
3914
3911 2004-07-16 Fernando Perez <fperez@colorado.edu>
3915 2004-07-16 Fernando Perez <fperez@colorado.edu>
3912
3916
3913 * IPython/GnuplotInteractive.py (__all__): added plot2.
3917 * IPython/GnuplotInteractive.py (__all__): added plot2.
3914
3918
3915 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3919 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3916 plotting dictionaries, lists or tuples of 1d arrays.
3920 plotting dictionaries, lists or tuples of 1d arrays.
3917
3921
3918 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3922 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3919 optimizations.
3923 optimizations.
3920
3924
3921 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3925 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3922 the information which was there from Janko's original IPP code:
3926 the information which was there from Janko's original IPP code:
3923
3927
3924 03.05.99 20:53 porto.ifm.uni-kiel.de
3928 03.05.99 20:53 porto.ifm.uni-kiel.de
3925 --Started changelog.
3929 --Started changelog.
3926 --make clear do what it say it does
3930 --make clear do what it say it does
3927 --added pretty output of lines from inputcache
3931 --added pretty output of lines from inputcache
3928 --Made Logger a mixin class, simplifies handling of switches
3932 --Made Logger a mixin class, simplifies handling of switches
3929 --Added own completer class. .string<TAB> expands to last history
3933 --Added own completer class. .string<TAB> expands to last history
3930 line which starts with string. The new expansion is also present
3934 line which starts with string. The new expansion is also present
3931 with Ctrl-r from the readline library. But this shows, who this
3935 with Ctrl-r from the readline library. But this shows, who this
3932 can be done for other cases.
3936 can be done for other cases.
3933 --Added convention that all shell functions should accept a
3937 --Added convention that all shell functions should accept a
3934 parameter_string This opens the door for different behaviour for
3938 parameter_string This opens the door for different behaviour for
3935 each function. @cd is a good example of this.
3939 each function. @cd is a good example of this.
3936
3940
3937 04.05.99 12:12 porto.ifm.uni-kiel.de
3941 04.05.99 12:12 porto.ifm.uni-kiel.de
3938 --added logfile rotation
3942 --added logfile rotation
3939 --added new mainloop method which freezes first the namespace
3943 --added new mainloop method which freezes first the namespace
3940
3944
3941 07.05.99 21:24 porto.ifm.uni-kiel.de
3945 07.05.99 21:24 porto.ifm.uni-kiel.de
3942 --added the docreader classes. Now there is a help system.
3946 --added the docreader classes. Now there is a help system.
3943 -This is only a first try. Currently it's not easy to put new
3947 -This is only a first try. Currently it's not easy to put new
3944 stuff in the indices. But this is the way to go. Info would be
3948 stuff in the indices. But this is the way to go. Info would be
3945 better, but HTML is every where and not everybody has an info
3949 better, but HTML is every where and not everybody has an info
3946 system installed and it's not so easy to change html-docs to info.
3950 system installed and it's not so easy to change html-docs to info.
3947 --added global logfile option
3951 --added global logfile option
3948 --there is now a hook for object inspection method pinfo needs to
3952 --there is now a hook for object inspection method pinfo needs to
3949 be provided for this. Can be reached by two '??'.
3953 be provided for this. Can be reached by two '??'.
3950
3954
3951 08.05.99 20:51 porto.ifm.uni-kiel.de
3955 08.05.99 20:51 porto.ifm.uni-kiel.de
3952 --added a README
3956 --added a README
3953 --bug in rc file. Something has changed so functions in the rc
3957 --bug in rc file. Something has changed so functions in the rc
3954 file need to reference the shell and not self. Not clear if it's a
3958 file need to reference the shell and not self. Not clear if it's a
3955 bug or feature.
3959 bug or feature.
3956 --changed rc file for new behavior
3960 --changed rc file for new behavior
3957
3961
3958 2004-07-15 Fernando Perez <fperez@colorado.edu>
3962 2004-07-15 Fernando Perez <fperez@colorado.edu>
3959
3963
3960 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3964 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3961 cache was falling out of sync in bizarre manners when multi-line
3965 cache was falling out of sync in bizarre manners when multi-line
3962 input was present. Minor optimizations and cleanup.
3966 input was present. Minor optimizations and cleanup.
3963
3967
3964 (Logger): Remove old Changelog info for cleanup. This is the
3968 (Logger): Remove old Changelog info for cleanup. This is the
3965 information which was there from Janko's original code:
3969 information which was there from Janko's original code:
3966
3970
3967 Changes to Logger: - made the default log filename a parameter
3971 Changes to Logger: - made the default log filename a parameter
3968
3972
3969 - put a check for lines beginning with !@? in log(). Needed
3973 - put a check for lines beginning with !@? in log(). Needed
3970 (even if the handlers properly log their lines) for mid-session
3974 (even if the handlers properly log their lines) for mid-session
3971 logging activation to work properly. Without this, lines logged
3975 logging activation to work properly. Without this, lines logged
3972 in mid session, which get read from the cache, would end up
3976 in mid session, which get read from the cache, would end up
3973 'bare' (with !@? in the open) in the log. Now they are caught
3977 'bare' (with !@? in the open) in the log. Now they are caught
3974 and prepended with a #.
3978 and prepended with a #.
3975
3979
3976 * IPython/iplib.py (InteractiveShell.init_readline): added check
3980 * IPython/iplib.py (InteractiveShell.init_readline): added check
3977 in case MagicCompleter fails to be defined, so we don't crash.
3981 in case MagicCompleter fails to be defined, so we don't crash.
3978
3982
3979 2004-07-13 Fernando Perez <fperez@colorado.edu>
3983 2004-07-13 Fernando Perez <fperez@colorado.edu>
3980
3984
3981 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3985 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3982 of EPS if the requested filename ends in '.eps'.
3986 of EPS if the requested filename ends in '.eps'.
3983
3987
3984 2004-07-04 Fernando Perez <fperez@colorado.edu>
3988 2004-07-04 Fernando Perez <fperez@colorado.edu>
3985
3989
3986 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3990 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3987 escaping of quotes when calling the shell.
3991 escaping of quotes when calling the shell.
3988
3992
3989 2004-07-02 Fernando Perez <fperez@colorado.edu>
3993 2004-07-02 Fernando Perez <fperez@colorado.edu>
3990
3994
3991 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3995 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3992 gettext not working because we were clobbering '_'. Fixes
3996 gettext not working because we were clobbering '_'. Fixes
3993 http://www.scipy.net/roundup/ipython/issue6.
3997 http://www.scipy.net/roundup/ipython/issue6.
3994
3998
3995 2004-07-01 Fernando Perez <fperez@colorado.edu>
3999 2004-07-01 Fernando Perez <fperez@colorado.edu>
3996
4000
3997 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
4001 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3998 into @cd. Patch by Ville.
4002 into @cd. Patch by Ville.
3999
4003
4000 * IPython/iplib.py (InteractiveShell.post_config_initialization):
4004 * IPython/iplib.py (InteractiveShell.post_config_initialization):
4001 new function to store things after ipmaker runs. Patch by Ville.
4005 new function to store things after ipmaker runs. Patch by Ville.
4002 Eventually this will go away once ipmaker is removed and the class
4006 Eventually this will go away once ipmaker is removed and the class
4003 gets cleaned up, but for now it's ok. Key functionality here is
4007 gets cleaned up, but for now it's ok. Key functionality here is
4004 the addition of the persistent storage mechanism, a dict for
4008 the addition of the persistent storage mechanism, a dict for
4005 keeping data across sessions (for now just bookmarks, but more can
4009 keeping data across sessions (for now just bookmarks, but more can
4006 be implemented later).
4010 be implemented later).
4007
4011
4008 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
4012 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
4009 persistent across sections. Patch by Ville, I modified it
4013 persistent across sections. Patch by Ville, I modified it
4010 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
4014 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
4011 added a '-l' option to list all bookmarks.
4015 added a '-l' option to list all bookmarks.
4012
4016
4013 * IPython/iplib.py (InteractiveShell.atexit_operations): new
4017 * IPython/iplib.py (InteractiveShell.atexit_operations): new
4014 center for cleanup. Registered with atexit.register(). I moved
4018 center for cleanup. Registered with atexit.register(). I moved
4015 here the old exit_cleanup(). After a patch by Ville.
4019 here the old exit_cleanup(). After a patch by Ville.
4016
4020
4017 * IPython/Magic.py (get_py_filename): added '~' to the accepted
4021 * IPython/Magic.py (get_py_filename): added '~' to the accepted
4018 characters in the hacked shlex_split for python 2.2.
4022 characters in the hacked shlex_split for python 2.2.
4019
4023
4020 * IPython/iplib.py (file_matches): more fixes to filenames with
4024 * IPython/iplib.py (file_matches): more fixes to filenames with
4021 whitespace in them. It's not perfect, but limitations in python's
4025 whitespace in them. It's not perfect, but limitations in python's
4022 readline make it impossible to go further.
4026 readline make it impossible to go further.
4023
4027
4024 2004-06-29 Fernando Perez <fperez@colorado.edu>
4028 2004-06-29 Fernando Perez <fperez@colorado.edu>
4025
4029
4026 * IPython/iplib.py (file_matches): escape whitespace correctly in
4030 * IPython/iplib.py (file_matches): escape whitespace correctly in
4027 filename completions. Bug reported by Ville.
4031 filename completions. Bug reported by Ville.
4028
4032
4029 2004-06-28 Fernando Perez <fperez@colorado.edu>
4033 2004-06-28 Fernando Perez <fperez@colorado.edu>
4030
4034
4031 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4035 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4032 the history file will be called 'history-PROFNAME' (or just
4036 the history file will be called 'history-PROFNAME' (or just
4033 'history' if no profile is loaded). I was getting annoyed at
4037 'history' if no profile is loaded). I was getting annoyed at
4034 getting my Numerical work history clobbered by pysh sessions.
4038 getting my Numerical work history clobbered by pysh sessions.
4035
4039
4036 * IPython/iplib.py (InteractiveShell.__init__): Internal
4040 * IPython/iplib.py (InteractiveShell.__init__): Internal
4037 getoutputerror() function so that we can honor the system_verbose
4041 getoutputerror() function so that we can honor the system_verbose
4038 flag for _all_ system calls. I also added escaping of #
4042 flag for _all_ system calls. I also added escaping of #
4039 characters here to avoid confusing Itpl.
4043 characters here to avoid confusing Itpl.
4040
4044
4041 * IPython/Magic.py (shlex_split): removed call to shell in
4045 * IPython/Magic.py (shlex_split): removed call to shell in
4042 parse_options and replaced it with shlex.split(). The annoying
4046 parse_options and replaced it with shlex.split(). The annoying
4043 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4047 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4044 to backport it from 2.3, with several frail hacks (the shlex
4048 to backport it from 2.3, with several frail hacks (the shlex
4045 module is rather limited in 2.2). Thanks to a suggestion by Ville
4049 module is rather limited in 2.2). Thanks to a suggestion by Ville
4046 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4050 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4047 problem.
4051 problem.
4048
4052
4049 (Magic.magic_system_verbose): new toggle to print the actual
4053 (Magic.magic_system_verbose): new toggle to print the actual
4050 system calls made by ipython. Mainly for debugging purposes.
4054 system calls made by ipython. Mainly for debugging purposes.
4051
4055
4052 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4056 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4053 doesn't support persistence. Reported (and fix suggested) by
4057 doesn't support persistence. Reported (and fix suggested) by
4054 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4058 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4055
4059
4056 2004-06-26 Fernando Perez <fperez@colorado.edu>
4060 2004-06-26 Fernando Perez <fperez@colorado.edu>
4057
4061
4058 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4062 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4059 continue prompts.
4063 continue prompts.
4060
4064
4061 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4065 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4062 function (basically a big docstring) and a few more things here to
4066 function (basically a big docstring) and a few more things here to
4063 speedup startup. pysh.py is now very lightweight. We want because
4067 speedup startup. pysh.py is now very lightweight. We want because
4064 it gets execfile'd, while InterpreterExec gets imported, so
4068 it gets execfile'd, while InterpreterExec gets imported, so
4065 byte-compilation saves time.
4069 byte-compilation saves time.
4066
4070
4067 2004-06-25 Fernando Perez <fperez@colorado.edu>
4071 2004-06-25 Fernando Perez <fperez@colorado.edu>
4068
4072
4069 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4073 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4070 -NUM', which was recently broken.
4074 -NUM', which was recently broken.
4071
4075
4072 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4076 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4073 in multi-line input (but not !!, which doesn't make sense there).
4077 in multi-line input (but not !!, which doesn't make sense there).
4074
4078
4075 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4079 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4076 It's just too useful, and people can turn it off in the less
4080 It's just too useful, and people can turn it off in the less
4077 common cases where it's a problem.
4081 common cases where it's a problem.
4078
4082
4079 2004-06-24 Fernando Perez <fperez@colorado.edu>
4083 2004-06-24 Fernando Perez <fperez@colorado.edu>
4080
4084
4081 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4085 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4082 special syntaxes (like alias calling) is now allied in multi-line
4086 special syntaxes (like alias calling) is now allied in multi-line
4083 input. This is still _very_ experimental, but it's necessary for
4087 input. This is still _very_ experimental, but it's necessary for
4084 efficient shell usage combining python looping syntax with system
4088 efficient shell usage combining python looping syntax with system
4085 calls. For now it's restricted to aliases, I don't think it
4089 calls. For now it's restricted to aliases, I don't think it
4086 really even makes sense to have this for magics.
4090 really even makes sense to have this for magics.
4087
4091
4088 2004-06-23 Fernando Perez <fperez@colorado.edu>
4092 2004-06-23 Fernando Perez <fperez@colorado.edu>
4089
4093
4090 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4094 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4091 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4095 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4092
4096
4093 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4097 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4094 extensions under Windows (after code sent by Gary Bishop). The
4098 extensions under Windows (after code sent by Gary Bishop). The
4095 extensions considered 'executable' are stored in IPython's rc
4099 extensions considered 'executable' are stored in IPython's rc
4096 structure as win_exec_ext.
4100 structure as win_exec_ext.
4097
4101
4098 * IPython/genutils.py (shell): new function, like system() but
4102 * IPython/genutils.py (shell): new function, like system() but
4099 without return value. Very useful for interactive shell work.
4103 without return value. Very useful for interactive shell work.
4100
4104
4101 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4105 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4102 delete aliases.
4106 delete aliases.
4103
4107
4104 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4108 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4105 sure that the alias table doesn't contain python keywords.
4109 sure that the alias table doesn't contain python keywords.
4106
4110
4107 2004-06-21 Fernando Perez <fperez@colorado.edu>
4111 2004-06-21 Fernando Perez <fperez@colorado.edu>
4108
4112
4109 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4113 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4110 non-existent items are found in $PATH. Reported by Thorsten.
4114 non-existent items are found in $PATH. Reported by Thorsten.
4111
4115
4112 2004-06-20 Fernando Perez <fperez@colorado.edu>
4116 2004-06-20 Fernando Perez <fperez@colorado.edu>
4113
4117
4114 * IPython/iplib.py (complete): modified the completer so that the
4118 * IPython/iplib.py (complete): modified the completer so that the
4115 order of priorities can be easily changed at runtime.
4119 order of priorities can be easily changed at runtime.
4116
4120
4117 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4121 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4118 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4122 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4119
4123
4120 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4124 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4121 expand Python variables prepended with $ in all system calls. The
4125 expand Python variables prepended with $ in all system calls. The
4122 same was done to InteractiveShell.handle_shell_escape. Now all
4126 same was done to InteractiveShell.handle_shell_escape. Now all
4123 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4127 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4124 expansion of python variables and expressions according to the
4128 expansion of python variables and expressions according to the
4125 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4129 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4126
4130
4127 Though PEP-215 has been rejected, a similar (but simpler) one
4131 Though PEP-215 has been rejected, a similar (but simpler) one
4128 seems like it will go into Python 2.4, PEP-292 -
4132 seems like it will go into Python 2.4, PEP-292 -
4129 http://www.python.org/peps/pep-0292.html.
4133 http://www.python.org/peps/pep-0292.html.
4130
4134
4131 I'll keep the full syntax of PEP-215, since IPython has since the
4135 I'll keep the full syntax of PEP-215, since IPython has since the
4132 start used Ka-Ping Yee's reference implementation discussed there
4136 start used Ka-Ping Yee's reference implementation discussed there
4133 (Itpl), and I actually like the powerful semantics it offers.
4137 (Itpl), and I actually like the powerful semantics it offers.
4134
4138
4135 In order to access normal shell variables, the $ has to be escaped
4139 In order to access normal shell variables, the $ has to be escaped
4136 via an extra $. For example:
4140 via an extra $. For example:
4137
4141
4138 In [7]: PATH='a python variable'
4142 In [7]: PATH='a python variable'
4139
4143
4140 In [8]: !echo $PATH
4144 In [8]: !echo $PATH
4141 a python variable
4145 a python variable
4142
4146
4143 In [9]: !echo $$PATH
4147 In [9]: !echo $$PATH
4144 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4148 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4145
4149
4146 (Magic.parse_options): escape $ so the shell doesn't evaluate
4150 (Magic.parse_options): escape $ so the shell doesn't evaluate
4147 things prematurely.
4151 things prematurely.
4148
4152
4149 * IPython/iplib.py (InteractiveShell.call_alias): added the
4153 * IPython/iplib.py (InteractiveShell.call_alias): added the
4150 ability for aliases to expand python variables via $.
4154 ability for aliases to expand python variables via $.
4151
4155
4152 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4156 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4153 system, now there's a @rehash/@rehashx pair of magics. These work
4157 system, now there's a @rehash/@rehashx pair of magics. These work
4154 like the csh rehash command, and can be invoked at any time. They
4158 like the csh rehash command, and can be invoked at any time. They
4155 build a table of aliases to everything in the user's $PATH
4159 build a table of aliases to everything in the user's $PATH
4156 (@rehash uses everything, @rehashx is slower but only adds
4160 (@rehash uses everything, @rehashx is slower but only adds
4157 executable files). With this, the pysh.py-based shell profile can
4161 executable files). With this, the pysh.py-based shell profile can
4158 now simply call rehash upon startup, and full access to all
4162 now simply call rehash upon startup, and full access to all
4159 programs in the user's path is obtained.
4163 programs in the user's path is obtained.
4160
4164
4161 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4165 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4162 functionality is now fully in place. I removed the old dynamic
4166 functionality is now fully in place. I removed the old dynamic
4163 code generation based approach, in favor of a much lighter one
4167 code generation based approach, in favor of a much lighter one
4164 based on a simple dict. The advantage is that this allows me to
4168 based on a simple dict. The advantage is that this allows me to
4165 now have thousands of aliases with negligible cost (unthinkable
4169 now have thousands of aliases with negligible cost (unthinkable
4166 with the old system).
4170 with the old system).
4167
4171
4168 2004-06-19 Fernando Perez <fperez@colorado.edu>
4172 2004-06-19 Fernando Perez <fperez@colorado.edu>
4169
4173
4170 * IPython/iplib.py (__init__): extended MagicCompleter class to
4174 * IPython/iplib.py (__init__): extended MagicCompleter class to
4171 also complete (last in priority) on user aliases.
4175 also complete (last in priority) on user aliases.
4172
4176
4173 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4177 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4174 call to eval.
4178 call to eval.
4175 (ItplNS.__init__): Added a new class which functions like Itpl,
4179 (ItplNS.__init__): Added a new class which functions like Itpl,
4176 but allows configuring the namespace for the evaluation to occur
4180 but allows configuring the namespace for the evaluation to occur
4177 in.
4181 in.
4178
4182
4179 2004-06-18 Fernando Perez <fperez@colorado.edu>
4183 2004-06-18 Fernando Perez <fperez@colorado.edu>
4180
4184
4181 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4185 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4182 better message when 'exit' or 'quit' are typed (a common newbie
4186 better message when 'exit' or 'quit' are typed (a common newbie
4183 confusion).
4187 confusion).
4184
4188
4185 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4189 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4186 check for Windows users.
4190 check for Windows users.
4187
4191
4188 * IPython/iplib.py (InteractiveShell.user_setup): removed
4192 * IPython/iplib.py (InteractiveShell.user_setup): removed
4189 disabling of colors for Windows. I'll test at runtime and issue a
4193 disabling of colors for Windows. I'll test at runtime and issue a
4190 warning if Gary's readline isn't found, as to nudge users to
4194 warning if Gary's readline isn't found, as to nudge users to
4191 download it.
4195 download it.
4192
4196
4193 2004-06-16 Fernando Perez <fperez@colorado.edu>
4197 2004-06-16 Fernando Perez <fperez@colorado.edu>
4194
4198
4195 * IPython/genutils.py (Stream.__init__): changed to print errors
4199 * IPython/genutils.py (Stream.__init__): changed to print errors
4196 to sys.stderr. I had a circular dependency here. Now it's
4200 to sys.stderr. I had a circular dependency here. Now it's
4197 possible to run ipython as IDLE's shell (consider this pre-alpha,
4201 possible to run ipython as IDLE's shell (consider this pre-alpha,
4198 since true stdout things end up in the starting terminal instead
4202 since true stdout things end up in the starting terminal instead
4199 of IDLE's out).
4203 of IDLE's out).
4200
4204
4201 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4205 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4202 users who haven't # updated their prompt_in2 definitions. Remove
4206 users who haven't # updated their prompt_in2 definitions. Remove
4203 eventually.
4207 eventually.
4204 (multiple_replace): added credit to original ASPN recipe.
4208 (multiple_replace): added credit to original ASPN recipe.
4205
4209
4206 2004-06-15 Fernando Perez <fperez@colorado.edu>
4210 2004-06-15 Fernando Perez <fperez@colorado.edu>
4207
4211
4208 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4212 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4209 list of auto-defined aliases.
4213 list of auto-defined aliases.
4210
4214
4211 2004-06-13 Fernando Perez <fperez@colorado.edu>
4215 2004-06-13 Fernando Perez <fperez@colorado.edu>
4212
4216
4213 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4217 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4214 install was really requested (so setup.py can be used for other
4218 install was really requested (so setup.py can be used for other
4215 things under Windows).
4219 things under Windows).
4216
4220
4217 2004-06-10 Fernando Perez <fperez@colorado.edu>
4221 2004-06-10 Fernando Perez <fperez@colorado.edu>
4218
4222
4219 * IPython/Logger.py (Logger.create_log): Manually remove any old
4223 * IPython/Logger.py (Logger.create_log): Manually remove any old
4220 backup, since os.remove may fail under Windows. Fixes bug
4224 backup, since os.remove may fail under Windows. Fixes bug
4221 reported by Thorsten.
4225 reported by Thorsten.
4222
4226
4223 2004-06-09 Fernando Perez <fperez@colorado.edu>
4227 2004-06-09 Fernando Perez <fperez@colorado.edu>
4224
4228
4225 * examples/example-embed.py: fixed all references to %n (replaced
4229 * examples/example-embed.py: fixed all references to %n (replaced
4226 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4230 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4227 for all examples and the manual as well.
4231 for all examples and the manual as well.
4228
4232
4229 2004-06-08 Fernando Perez <fperez@colorado.edu>
4233 2004-06-08 Fernando Perez <fperez@colorado.edu>
4230
4234
4231 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4235 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4232 alignment and color management. All 3 prompt subsystems now
4236 alignment and color management. All 3 prompt subsystems now
4233 inherit from BasePrompt.
4237 inherit from BasePrompt.
4234
4238
4235 * tools/release: updates for windows installer build and tag rpms
4239 * tools/release: updates for windows installer build and tag rpms
4236 with python version (since paths are fixed).
4240 with python version (since paths are fixed).
4237
4241
4238 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4242 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4239 which will become eventually obsolete. Also fixed the default
4243 which will become eventually obsolete. Also fixed the default
4240 prompt_in2 to use \D, so at least new users start with the correct
4244 prompt_in2 to use \D, so at least new users start with the correct
4241 defaults.
4245 defaults.
4242 WARNING: Users with existing ipythonrc files will need to apply
4246 WARNING: Users with existing ipythonrc files will need to apply
4243 this fix manually!
4247 this fix manually!
4244
4248
4245 * setup.py: make windows installer (.exe). This is finally the
4249 * setup.py: make windows installer (.exe). This is finally the
4246 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4250 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4247 which I hadn't included because it required Python 2.3 (or recent
4251 which I hadn't included because it required Python 2.3 (or recent
4248 distutils).
4252 distutils).
4249
4253
4250 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4254 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4251 usage of new '\D' escape.
4255 usage of new '\D' escape.
4252
4256
4253 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4257 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4254 lacks os.getuid())
4258 lacks os.getuid())
4255 (CachedOutput.set_colors): Added the ability to turn coloring
4259 (CachedOutput.set_colors): Added the ability to turn coloring
4256 on/off with @colors even for manually defined prompt colors. It
4260 on/off with @colors even for manually defined prompt colors. It
4257 uses a nasty global, but it works safely and via the generic color
4261 uses a nasty global, but it works safely and via the generic color
4258 handling mechanism.
4262 handling mechanism.
4259 (Prompt2.__init__): Introduced new escape '\D' for continuation
4263 (Prompt2.__init__): Introduced new escape '\D' for continuation
4260 prompts. It represents the counter ('\#') as dots.
4264 prompts. It represents the counter ('\#') as dots.
4261 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4265 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4262 need to update their ipythonrc files and replace '%n' with '\D' in
4266 need to update their ipythonrc files and replace '%n' with '\D' in
4263 their prompt_in2 settings everywhere. Sorry, but there's
4267 their prompt_in2 settings everywhere. Sorry, but there's
4264 otherwise no clean way to get all prompts to properly align. The
4268 otherwise no clean way to get all prompts to properly align. The
4265 ipythonrc shipped with IPython has been updated.
4269 ipythonrc shipped with IPython has been updated.
4266
4270
4267 2004-06-07 Fernando Perez <fperez@colorado.edu>
4271 2004-06-07 Fernando Perez <fperez@colorado.edu>
4268
4272
4269 * setup.py (isfile): Pass local_icons option to latex2html, so the
4273 * setup.py (isfile): Pass local_icons option to latex2html, so the
4270 resulting HTML file is self-contained. Thanks to
4274 resulting HTML file is self-contained. Thanks to
4271 dryice-AT-liu.com.cn for the tip.
4275 dryice-AT-liu.com.cn for the tip.
4272
4276
4273 * pysh.py: I created a new profile 'shell', which implements a
4277 * pysh.py: I created a new profile 'shell', which implements a
4274 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4278 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4275 system shell, nor will it become one anytime soon. It's mainly
4279 system shell, nor will it become one anytime soon. It's mainly
4276 meant to illustrate the use of the new flexible bash-like prompts.
4280 meant to illustrate the use of the new flexible bash-like prompts.
4277 I guess it could be used by hardy souls for true shell management,
4281 I guess it could be used by hardy souls for true shell management,
4278 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4282 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4279 profile. This uses the InterpreterExec extension provided by
4283 profile. This uses the InterpreterExec extension provided by
4280 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4284 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4281
4285
4282 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4286 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4283 auto-align itself with the length of the previous input prompt
4287 auto-align itself with the length of the previous input prompt
4284 (taking into account the invisible color escapes).
4288 (taking into account the invisible color escapes).
4285 (CachedOutput.__init__): Large restructuring of this class. Now
4289 (CachedOutput.__init__): Large restructuring of this class. Now
4286 all three prompts (primary1, primary2, output) are proper objects,
4290 all three prompts (primary1, primary2, output) are proper objects,
4287 managed by the 'parent' CachedOutput class. The code is still a
4291 managed by the 'parent' CachedOutput class. The code is still a
4288 bit hackish (all prompts share state via a pointer to the cache),
4292 bit hackish (all prompts share state via a pointer to the cache),
4289 but it's overall far cleaner than before.
4293 but it's overall far cleaner than before.
4290
4294
4291 * IPython/genutils.py (getoutputerror): modified to add verbose,
4295 * IPython/genutils.py (getoutputerror): modified to add verbose,
4292 debug and header options. This makes the interface of all getout*
4296 debug and header options. This makes the interface of all getout*
4293 functions uniform.
4297 functions uniform.
4294 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4298 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4295
4299
4296 * IPython/Magic.py (Magic.default_option): added a function to
4300 * IPython/Magic.py (Magic.default_option): added a function to
4297 allow registering default options for any magic command. This
4301 allow registering default options for any magic command. This
4298 makes it easy to have profiles which customize the magics globally
4302 makes it easy to have profiles which customize the magics globally
4299 for a certain use. The values set through this function are
4303 for a certain use. The values set through this function are
4300 picked up by the parse_options() method, which all magics should
4304 picked up by the parse_options() method, which all magics should
4301 use to parse their options.
4305 use to parse their options.
4302
4306
4303 * IPython/genutils.py (warn): modified the warnings framework to
4307 * IPython/genutils.py (warn): modified the warnings framework to
4304 use the Term I/O class. I'm trying to slowly unify all of
4308 use the Term I/O class. I'm trying to slowly unify all of
4305 IPython's I/O operations to pass through Term.
4309 IPython's I/O operations to pass through Term.
4306
4310
4307 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4311 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4308 the secondary prompt to correctly match the length of the primary
4312 the secondary prompt to correctly match the length of the primary
4309 one for any prompt. Now multi-line code will properly line up
4313 one for any prompt. Now multi-line code will properly line up
4310 even for path dependent prompts, such as the new ones available
4314 even for path dependent prompts, such as the new ones available
4311 via the prompt_specials.
4315 via the prompt_specials.
4312
4316
4313 2004-06-06 Fernando Perez <fperez@colorado.edu>
4317 2004-06-06 Fernando Perez <fperez@colorado.edu>
4314
4318
4315 * IPython/Prompts.py (prompt_specials): Added the ability to have
4319 * IPython/Prompts.py (prompt_specials): Added the ability to have
4316 bash-like special sequences in the prompts, which get
4320 bash-like special sequences in the prompts, which get
4317 automatically expanded. Things like hostname, current working
4321 automatically expanded. Things like hostname, current working
4318 directory and username are implemented already, but it's easy to
4322 directory and username are implemented already, but it's easy to
4319 add more in the future. Thanks to a patch by W.J. van der Laan
4323 add more in the future. Thanks to a patch by W.J. van der Laan
4320 <gnufnork-AT-hetdigitalegat.nl>
4324 <gnufnork-AT-hetdigitalegat.nl>
4321 (prompt_specials): Added color support for prompt strings, so
4325 (prompt_specials): Added color support for prompt strings, so
4322 users can define arbitrary color setups for their prompts.
4326 users can define arbitrary color setups for their prompts.
4323
4327
4324 2004-06-05 Fernando Perez <fperez@colorado.edu>
4328 2004-06-05 Fernando Perez <fperez@colorado.edu>
4325
4329
4326 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4330 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4327 code to load Gary Bishop's readline and configure it
4331 code to load Gary Bishop's readline and configure it
4328 automatically. Thanks to Gary for help on this.
4332 automatically. Thanks to Gary for help on this.
4329
4333
4330 2004-06-01 Fernando Perez <fperez@colorado.edu>
4334 2004-06-01 Fernando Perez <fperez@colorado.edu>
4331
4335
4332 * IPython/Logger.py (Logger.create_log): fix bug for logging
4336 * IPython/Logger.py (Logger.create_log): fix bug for logging
4333 with no filename (previous fix was incomplete).
4337 with no filename (previous fix was incomplete).
4334
4338
4335 2004-05-25 Fernando Perez <fperez@colorado.edu>
4339 2004-05-25 Fernando Perez <fperez@colorado.edu>
4336
4340
4337 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4341 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4338 parens would get passed to the shell.
4342 parens would get passed to the shell.
4339
4343
4340 2004-05-20 Fernando Perez <fperez@colorado.edu>
4344 2004-05-20 Fernando Perez <fperez@colorado.edu>
4341
4345
4342 * IPython/Magic.py (Magic.magic_prun): changed default profile
4346 * IPython/Magic.py (Magic.magic_prun): changed default profile
4343 sort order to 'time' (the more common profiling need).
4347 sort order to 'time' (the more common profiling need).
4344
4348
4345 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4349 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4346 so that source code shown is guaranteed in sync with the file on
4350 so that source code shown is guaranteed in sync with the file on
4347 disk (also changed in psource). Similar fix to the one for
4351 disk (also changed in psource). Similar fix to the one for
4348 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4352 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4349 <yann.ledu-AT-noos.fr>.
4353 <yann.ledu-AT-noos.fr>.
4350
4354
4351 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4355 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4352 with a single option would not be correctly parsed. Closes
4356 with a single option would not be correctly parsed. Closes
4353 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4357 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4354 introduced in 0.6.0 (on 2004-05-06).
4358 introduced in 0.6.0 (on 2004-05-06).
4355
4359
4356 2004-05-13 *** Released version 0.6.0
4360 2004-05-13 *** Released version 0.6.0
4357
4361
4358 2004-05-13 Fernando Perez <fperez@colorado.edu>
4362 2004-05-13 Fernando Perez <fperez@colorado.edu>
4359
4363
4360 * debian/: Added debian/ directory to CVS, so that debian support
4364 * debian/: Added debian/ directory to CVS, so that debian support
4361 is publicly accessible. The debian package is maintained by Jack
4365 is publicly accessible. The debian package is maintained by Jack
4362 Moffit <jack-AT-xiph.org>.
4366 Moffit <jack-AT-xiph.org>.
4363
4367
4364 * Documentation: included the notes about an ipython-based system
4368 * Documentation: included the notes about an ipython-based system
4365 shell (the hypothetical 'pysh') into the new_design.pdf document,
4369 shell (the hypothetical 'pysh') into the new_design.pdf document,
4366 so that these ideas get distributed to users along with the
4370 so that these ideas get distributed to users along with the
4367 official documentation.
4371 official documentation.
4368
4372
4369 2004-05-10 Fernando Perez <fperez@colorado.edu>
4373 2004-05-10 Fernando Perez <fperez@colorado.edu>
4370
4374
4371 * IPython/Logger.py (Logger.create_log): fix recently introduced
4375 * IPython/Logger.py (Logger.create_log): fix recently introduced
4372 bug (misindented line) where logstart would fail when not given an
4376 bug (misindented line) where logstart would fail when not given an
4373 explicit filename.
4377 explicit filename.
4374
4378
4375 2004-05-09 Fernando Perez <fperez@colorado.edu>
4379 2004-05-09 Fernando Perez <fperez@colorado.edu>
4376
4380
4377 * IPython/Magic.py (Magic.parse_options): skip system call when
4381 * IPython/Magic.py (Magic.parse_options): skip system call when
4378 there are no options to look for. Faster, cleaner for the common
4382 there are no options to look for. Faster, cleaner for the common
4379 case.
4383 case.
4380
4384
4381 * Documentation: many updates to the manual: describing Windows
4385 * Documentation: many updates to the manual: describing Windows
4382 support better, Gnuplot updates, credits, misc small stuff. Also
4386 support better, Gnuplot updates, credits, misc small stuff. Also
4383 updated the new_design doc a bit.
4387 updated the new_design doc a bit.
4384
4388
4385 2004-05-06 *** Released version 0.6.0.rc1
4389 2004-05-06 *** Released version 0.6.0.rc1
4386
4390
4387 2004-05-06 Fernando Perez <fperez@colorado.edu>
4391 2004-05-06 Fernando Perez <fperez@colorado.edu>
4388
4392
4389 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4393 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4390 operations to use the vastly more efficient list/''.join() method.
4394 operations to use the vastly more efficient list/''.join() method.
4391 (FormattedTB.text): Fix
4395 (FormattedTB.text): Fix
4392 http://www.scipy.net/roundup/ipython/issue12 - exception source
4396 http://www.scipy.net/roundup/ipython/issue12 - exception source
4393 extract not updated after reload. Thanks to Mike Salib
4397 extract not updated after reload. Thanks to Mike Salib
4394 <msalib-AT-mit.edu> for pinning the source of the problem.
4398 <msalib-AT-mit.edu> for pinning the source of the problem.
4395 Fortunately, the solution works inside ipython and doesn't require
4399 Fortunately, the solution works inside ipython and doesn't require
4396 any changes to python proper.
4400 any changes to python proper.
4397
4401
4398 * IPython/Magic.py (Magic.parse_options): Improved to process the
4402 * IPython/Magic.py (Magic.parse_options): Improved to process the
4399 argument list as a true shell would (by actually using the
4403 argument list as a true shell would (by actually using the
4400 underlying system shell). This way, all @magics automatically get
4404 underlying system shell). This way, all @magics automatically get
4401 shell expansion for variables. Thanks to a comment by Alex
4405 shell expansion for variables. Thanks to a comment by Alex
4402 Schmolck.
4406 Schmolck.
4403
4407
4404 2004-04-04 Fernando Perez <fperez@colorado.edu>
4408 2004-04-04 Fernando Perez <fperez@colorado.edu>
4405
4409
4406 * IPython/iplib.py (InteractiveShell.interact): Added a special
4410 * IPython/iplib.py (InteractiveShell.interact): Added a special
4407 trap for a debugger quit exception, which is basically impossible
4411 trap for a debugger quit exception, which is basically impossible
4408 to handle by normal mechanisms, given what pdb does to the stack.
4412 to handle by normal mechanisms, given what pdb does to the stack.
4409 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4413 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4410
4414
4411 2004-04-03 Fernando Perez <fperez@colorado.edu>
4415 2004-04-03 Fernando Perez <fperez@colorado.edu>
4412
4416
4413 * IPython/genutils.py (Term): Standardized the names of the Term
4417 * IPython/genutils.py (Term): Standardized the names of the Term
4414 class streams to cin/cout/cerr, following C++ naming conventions
4418 class streams to cin/cout/cerr, following C++ naming conventions
4415 (I can't use in/out/err because 'in' is not a valid attribute
4419 (I can't use in/out/err because 'in' is not a valid attribute
4416 name).
4420 name).
4417
4421
4418 * IPython/iplib.py (InteractiveShell.interact): don't increment
4422 * IPython/iplib.py (InteractiveShell.interact): don't increment
4419 the prompt if there's no user input. By Daniel 'Dang' Griffith
4423 the prompt if there's no user input. By Daniel 'Dang' Griffith
4420 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4424 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4421 Francois Pinard.
4425 Francois Pinard.
4422
4426
4423 2004-04-02 Fernando Perez <fperez@colorado.edu>
4427 2004-04-02 Fernando Perez <fperez@colorado.edu>
4424
4428
4425 * IPython/genutils.py (Stream.__init__): Modified to survive at
4429 * IPython/genutils.py (Stream.__init__): Modified to survive at
4426 least importing in contexts where stdin/out/err aren't true file
4430 least importing in contexts where stdin/out/err aren't true file
4427 objects, such as PyCrust (they lack fileno() and mode). However,
4431 objects, such as PyCrust (they lack fileno() and mode). However,
4428 the recovery facilities which rely on these things existing will
4432 the recovery facilities which rely on these things existing will
4429 not work.
4433 not work.
4430
4434
4431 2004-04-01 Fernando Perez <fperez@colorado.edu>
4435 2004-04-01 Fernando Perez <fperez@colorado.edu>
4432
4436
4433 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4437 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4434 use the new getoutputerror() function, so it properly
4438 use the new getoutputerror() function, so it properly
4435 distinguishes stdout/err.
4439 distinguishes stdout/err.
4436
4440
4437 * IPython/genutils.py (getoutputerror): added a function to
4441 * IPython/genutils.py (getoutputerror): added a function to
4438 capture separately the standard output and error of a command.
4442 capture separately the standard output and error of a command.
4439 After a comment from dang on the mailing lists. This code is
4443 After a comment from dang on the mailing lists. This code is
4440 basically a modified version of commands.getstatusoutput(), from
4444 basically a modified version of commands.getstatusoutput(), from
4441 the standard library.
4445 the standard library.
4442
4446
4443 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4447 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4444 '!!' as a special syntax (shorthand) to access @sx.
4448 '!!' as a special syntax (shorthand) to access @sx.
4445
4449
4446 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4450 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4447 command and return its output as a list split on '\n'.
4451 command and return its output as a list split on '\n'.
4448
4452
4449 2004-03-31 Fernando Perez <fperez@colorado.edu>
4453 2004-03-31 Fernando Perez <fperez@colorado.edu>
4450
4454
4451 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4455 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4452 method to dictionaries used as FakeModule instances if they lack
4456 method to dictionaries used as FakeModule instances if they lack
4453 it. At least pydoc in python2.3 breaks for runtime-defined
4457 it. At least pydoc in python2.3 breaks for runtime-defined
4454 functions without this hack. At some point I need to _really_
4458 functions without this hack. At some point I need to _really_
4455 understand what FakeModule is doing, because it's a gross hack.
4459 understand what FakeModule is doing, because it's a gross hack.
4456 But it solves Arnd's problem for now...
4460 But it solves Arnd's problem for now...
4457
4461
4458 2004-02-27 Fernando Perez <fperez@colorado.edu>
4462 2004-02-27 Fernando Perez <fperez@colorado.edu>
4459
4463
4460 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4464 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4461 mode would behave erratically. Also increased the number of
4465 mode would behave erratically. Also increased the number of
4462 possible logs in rotate mod to 999. Thanks to Rod Holland
4466 possible logs in rotate mod to 999. Thanks to Rod Holland
4463 <rhh@StructureLABS.com> for the report and fixes.
4467 <rhh@StructureLABS.com> for the report and fixes.
4464
4468
4465 2004-02-26 Fernando Perez <fperez@colorado.edu>
4469 2004-02-26 Fernando Perez <fperez@colorado.edu>
4466
4470
4467 * IPython/genutils.py (page): Check that the curses module really
4471 * IPython/genutils.py (page): Check that the curses module really
4468 has the initscr attribute before trying to use it. For some
4472 has the initscr attribute before trying to use it. For some
4469 reason, the Solaris curses module is missing this. I think this
4473 reason, the Solaris curses module is missing this. I think this
4470 should be considered a Solaris python bug, but I'm not sure.
4474 should be considered a Solaris python bug, but I'm not sure.
4471
4475
4472 2004-01-17 Fernando Perez <fperez@colorado.edu>
4476 2004-01-17 Fernando Perez <fperez@colorado.edu>
4473
4477
4474 * IPython/genutils.py (Stream.__init__): Changes to try to make
4478 * IPython/genutils.py (Stream.__init__): Changes to try to make
4475 ipython robust against stdin/out/err being closed by the user.
4479 ipython robust against stdin/out/err being closed by the user.
4476 This is 'user error' (and blocks a normal python session, at least
4480 This is 'user error' (and blocks a normal python session, at least
4477 the stdout case). However, Ipython should be able to survive such
4481 the stdout case). However, Ipython should be able to survive such
4478 instances of abuse as gracefully as possible. To simplify the
4482 instances of abuse as gracefully as possible. To simplify the
4479 coding and maintain compatibility with Gary Bishop's Term
4483 coding and maintain compatibility with Gary Bishop's Term
4480 contributions, I've made use of classmethods for this. I think
4484 contributions, I've made use of classmethods for this. I think
4481 this introduces a dependency on python 2.2.
4485 this introduces a dependency on python 2.2.
4482
4486
4483 2004-01-13 Fernando Perez <fperez@colorado.edu>
4487 2004-01-13 Fernando Perez <fperez@colorado.edu>
4484
4488
4485 * IPython/numutils.py (exp_safe): simplified the code a bit and
4489 * IPython/numutils.py (exp_safe): simplified the code a bit and
4486 removed the need for importing the kinds module altogether.
4490 removed the need for importing the kinds module altogether.
4487
4491
4488 2004-01-06 Fernando Perez <fperez@colorado.edu>
4492 2004-01-06 Fernando Perez <fperez@colorado.edu>
4489
4493
4490 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4494 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4491 a magic function instead, after some community feedback. No
4495 a magic function instead, after some community feedback. No
4492 special syntax will exist for it, but its name is deliberately
4496 special syntax will exist for it, but its name is deliberately
4493 very short.
4497 very short.
4494
4498
4495 2003-12-20 Fernando Perez <fperez@colorado.edu>
4499 2003-12-20 Fernando Perez <fperez@colorado.edu>
4496
4500
4497 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4501 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4498 new functionality, to automagically assign the result of a shell
4502 new functionality, to automagically assign the result of a shell
4499 command to a variable. I'll solicit some community feedback on
4503 command to a variable. I'll solicit some community feedback on
4500 this before making it permanent.
4504 this before making it permanent.
4501
4505
4502 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4506 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4503 requested about callables for which inspect couldn't obtain a
4507 requested about callables for which inspect couldn't obtain a
4504 proper argspec. Thanks to a crash report sent by Etienne
4508 proper argspec. Thanks to a crash report sent by Etienne
4505 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4509 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4506
4510
4507 2003-12-09 Fernando Perez <fperez@colorado.edu>
4511 2003-12-09 Fernando Perez <fperez@colorado.edu>
4508
4512
4509 * IPython/genutils.py (page): patch for the pager to work across
4513 * IPython/genutils.py (page): patch for the pager to work across
4510 various versions of Windows. By Gary Bishop.
4514 various versions of Windows. By Gary Bishop.
4511
4515
4512 2003-12-04 Fernando Perez <fperez@colorado.edu>
4516 2003-12-04 Fernando Perez <fperez@colorado.edu>
4513
4517
4514 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4518 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4515 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4519 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4516 While I tested this and it looks ok, there may still be corner
4520 While I tested this and it looks ok, there may still be corner
4517 cases I've missed.
4521 cases I've missed.
4518
4522
4519 2003-12-01 Fernando Perez <fperez@colorado.edu>
4523 2003-12-01 Fernando Perez <fperez@colorado.edu>
4520
4524
4521 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4525 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4522 where a line like 'p,q=1,2' would fail because the automagic
4526 where a line like 'p,q=1,2' would fail because the automagic
4523 system would be triggered for @p.
4527 system would be triggered for @p.
4524
4528
4525 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4529 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4526 cleanups, code unmodified.
4530 cleanups, code unmodified.
4527
4531
4528 * IPython/genutils.py (Term): added a class for IPython to handle
4532 * IPython/genutils.py (Term): added a class for IPython to handle
4529 output. In most cases it will just be a proxy for stdout/err, but
4533 output. In most cases it will just be a proxy for stdout/err, but
4530 having this allows modifications to be made for some platforms,
4534 having this allows modifications to be made for some platforms,
4531 such as handling color escapes under Windows. All of this code
4535 such as handling color escapes under Windows. All of this code
4532 was contributed by Gary Bishop, with minor modifications by me.
4536 was contributed by Gary Bishop, with minor modifications by me.
4533 The actual changes affect many files.
4537 The actual changes affect many files.
4534
4538
4535 2003-11-30 Fernando Perez <fperez@colorado.edu>
4539 2003-11-30 Fernando Perez <fperez@colorado.edu>
4536
4540
4537 * IPython/iplib.py (file_matches): new completion code, courtesy
4541 * IPython/iplib.py (file_matches): new completion code, courtesy
4538 of Jeff Collins. This enables filename completion again under
4542 of Jeff Collins. This enables filename completion again under
4539 python 2.3, which disabled it at the C level.
4543 python 2.3, which disabled it at the C level.
4540
4544
4541 2003-11-11 Fernando Perez <fperez@colorado.edu>
4545 2003-11-11 Fernando Perez <fperez@colorado.edu>
4542
4546
4543 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4547 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4544 for Numeric.array(map(...)), but often convenient.
4548 for Numeric.array(map(...)), but often convenient.
4545
4549
4546 2003-11-05 Fernando Perez <fperez@colorado.edu>
4550 2003-11-05 Fernando Perez <fperez@colorado.edu>
4547
4551
4548 * IPython/numutils.py (frange): Changed a call from int() to
4552 * IPython/numutils.py (frange): Changed a call from int() to
4549 int(round()) to prevent a problem reported with arange() in the
4553 int(round()) to prevent a problem reported with arange() in the
4550 numpy list.
4554 numpy list.
4551
4555
4552 2003-10-06 Fernando Perez <fperez@colorado.edu>
4556 2003-10-06 Fernando Perez <fperez@colorado.edu>
4553
4557
4554 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4558 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4555 prevent crashes if sys lacks an argv attribute (it happens with
4559 prevent crashes if sys lacks an argv attribute (it happens with
4556 embedded interpreters which build a bare-bones sys module).
4560 embedded interpreters which build a bare-bones sys module).
4557 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4561 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4558
4562
4559 2003-09-24 Fernando Perez <fperez@colorado.edu>
4563 2003-09-24 Fernando Perez <fperez@colorado.edu>
4560
4564
4561 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4565 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4562 to protect against poorly written user objects where __getattr__
4566 to protect against poorly written user objects where __getattr__
4563 raises exceptions other than AttributeError. Thanks to a bug
4567 raises exceptions other than AttributeError. Thanks to a bug
4564 report by Oliver Sander <osander-AT-gmx.de>.
4568 report by Oliver Sander <osander-AT-gmx.de>.
4565
4569
4566 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4570 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4567 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4571 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4568
4572
4569 2003-09-09 Fernando Perez <fperez@colorado.edu>
4573 2003-09-09 Fernando Perez <fperez@colorado.edu>
4570
4574
4571 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4575 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4572 unpacking a list whith a callable as first element would
4576 unpacking a list whith a callable as first element would
4573 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4577 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4574 Collins.
4578 Collins.
4575
4579
4576 2003-08-25 *** Released version 0.5.0
4580 2003-08-25 *** Released version 0.5.0
4577
4581
4578 2003-08-22 Fernando Perez <fperez@colorado.edu>
4582 2003-08-22 Fernando Perez <fperez@colorado.edu>
4579
4583
4580 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4584 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4581 improperly defined user exceptions. Thanks to feedback from Mark
4585 improperly defined user exceptions. Thanks to feedback from Mark
4582 Russell <mrussell-AT-verio.net>.
4586 Russell <mrussell-AT-verio.net>.
4583
4587
4584 2003-08-20 Fernando Perez <fperez@colorado.edu>
4588 2003-08-20 Fernando Perez <fperez@colorado.edu>
4585
4589
4586 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4590 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4587 printing so that it would print multi-line string forms starting
4591 printing so that it would print multi-line string forms starting
4588 with a new line. This way the formatting is better respected for
4592 with a new line. This way the formatting is better respected for
4589 objects which work hard to make nice string forms.
4593 objects which work hard to make nice string forms.
4590
4594
4591 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4595 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4592 autocall would overtake data access for objects with both
4596 autocall would overtake data access for objects with both
4593 __getitem__ and __call__.
4597 __getitem__ and __call__.
4594
4598
4595 2003-08-19 *** Released version 0.5.0-rc1
4599 2003-08-19 *** Released version 0.5.0-rc1
4596
4600
4597 2003-08-19 Fernando Perez <fperez@colorado.edu>
4601 2003-08-19 Fernando Perez <fperez@colorado.edu>
4598
4602
4599 * IPython/deep_reload.py (load_tail): single tiny change here
4603 * IPython/deep_reload.py (load_tail): single tiny change here
4600 seems to fix the long-standing bug of dreload() failing to work
4604 seems to fix the long-standing bug of dreload() failing to work
4601 for dotted names. But this module is pretty tricky, so I may have
4605 for dotted names. But this module is pretty tricky, so I may have
4602 missed some subtlety. Needs more testing!.
4606 missed some subtlety. Needs more testing!.
4603
4607
4604 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4608 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4605 exceptions which have badly implemented __str__ methods.
4609 exceptions which have badly implemented __str__ methods.
4606 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4610 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4607 which I've been getting reports about from Python 2.3 users. I
4611 which I've been getting reports about from Python 2.3 users. I
4608 wish I had a simple test case to reproduce the problem, so I could
4612 wish I had a simple test case to reproduce the problem, so I could
4609 either write a cleaner workaround or file a bug report if
4613 either write a cleaner workaround or file a bug report if
4610 necessary.
4614 necessary.
4611
4615
4612 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4616 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4613 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4617 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4614 a bug report by Tjabo Kloppenburg.
4618 a bug report by Tjabo Kloppenburg.
4615
4619
4616 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4620 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4617 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4621 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4618 seems rather unstable. Thanks to a bug report by Tjabo
4622 seems rather unstable. Thanks to a bug report by Tjabo
4619 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4623 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4620
4624
4621 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4625 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4622 this out soon because of the critical fixes in the inner loop for
4626 this out soon because of the critical fixes in the inner loop for
4623 generators.
4627 generators.
4624
4628
4625 * IPython/Magic.py (Magic.getargspec): removed. This (and
4629 * IPython/Magic.py (Magic.getargspec): removed. This (and
4626 _get_def) have been obsoleted by OInspect for a long time, I
4630 _get_def) have been obsoleted by OInspect for a long time, I
4627 hadn't noticed that they were dead code.
4631 hadn't noticed that they were dead code.
4628 (Magic._ofind): restored _ofind functionality for a few literals
4632 (Magic._ofind): restored _ofind functionality for a few literals
4629 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4633 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4630 for things like "hello".capitalize?, since that would require a
4634 for things like "hello".capitalize?, since that would require a
4631 potentially dangerous eval() again.
4635 potentially dangerous eval() again.
4632
4636
4633 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4637 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4634 logic a bit more to clean up the escapes handling and minimize the
4638 logic a bit more to clean up the escapes handling and minimize the
4635 use of _ofind to only necessary cases. The interactive 'feel' of
4639 use of _ofind to only necessary cases. The interactive 'feel' of
4636 IPython should have improved quite a bit with the changes in
4640 IPython should have improved quite a bit with the changes in
4637 _prefilter and _ofind (besides being far safer than before).
4641 _prefilter and _ofind (besides being far safer than before).
4638
4642
4639 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4643 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4640 obscure, never reported). Edit would fail to find the object to
4644 obscure, never reported). Edit would fail to find the object to
4641 edit under some circumstances.
4645 edit under some circumstances.
4642 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4646 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4643 which were causing double-calling of generators. Those eval calls
4647 which were causing double-calling of generators. Those eval calls
4644 were _very_ dangerous, since code with side effects could be
4648 were _very_ dangerous, since code with side effects could be
4645 triggered. As they say, 'eval is evil'... These were the
4649 triggered. As they say, 'eval is evil'... These were the
4646 nastiest evals in IPython. Besides, _ofind is now far simpler,
4650 nastiest evals in IPython. Besides, _ofind is now far simpler,
4647 and it should also be quite a bit faster. Its use of inspect is
4651 and it should also be quite a bit faster. Its use of inspect is
4648 also safer, so perhaps some of the inspect-related crashes I've
4652 also safer, so perhaps some of the inspect-related crashes I've
4649 seen lately with Python 2.3 might be taken care of. That will
4653 seen lately with Python 2.3 might be taken care of. That will
4650 need more testing.
4654 need more testing.
4651
4655
4652 2003-08-17 Fernando Perez <fperez@colorado.edu>
4656 2003-08-17 Fernando Perez <fperez@colorado.edu>
4653
4657
4654 * IPython/iplib.py (InteractiveShell._prefilter): significant
4658 * IPython/iplib.py (InteractiveShell._prefilter): significant
4655 simplifications to the logic for handling user escapes. Faster
4659 simplifications to the logic for handling user escapes. Faster
4656 and simpler code.
4660 and simpler code.
4657
4661
4658 2003-08-14 Fernando Perez <fperez@colorado.edu>
4662 2003-08-14 Fernando Perez <fperez@colorado.edu>
4659
4663
4660 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4664 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4661 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4665 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4662 but it should be quite a bit faster. And the recursive version
4666 but it should be quite a bit faster. And the recursive version
4663 generated O(log N) intermediate storage for all rank>1 arrays,
4667 generated O(log N) intermediate storage for all rank>1 arrays,
4664 even if they were contiguous.
4668 even if they were contiguous.
4665 (l1norm): Added this function.
4669 (l1norm): Added this function.
4666 (norm): Added this function for arbitrary norms (including
4670 (norm): Added this function for arbitrary norms (including
4667 l-infinity). l1 and l2 are still special cases for convenience
4671 l-infinity). l1 and l2 are still special cases for convenience
4668 and speed.
4672 and speed.
4669
4673
4670 2003-08-03 Fernando Perez <fperez@colorado.edu>
4674 2003-08-03 Fernando Perez <fperez@colorado.edu>
4671
4675
4672 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4676 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4673 exceptions, which now raise PendingDeprecationWarnings in Python
4677 exceptions, which now raise PendingDeprecationWarnings in Python
4674 2.3. There were some in Magic and some in Gnuplot2.
4678 2.3. There were some in Magic and some in Gnuplot2.
4675
4679
4676 2003-06-30 Fernando Perez <fperez@colorado.edu>
4680 2003-06-30 Fernando Perez <fperez@colorado.edu>
4677
4681
4678 * IPython/genutils.py (page): modified to call curses only for
4682 * IPython/genutils.py (page): modified to call curses only for
4679 terminals where TERM=='xterm'. After problems under many other
4683 terminals where TERM=='xterm'. After problems under many other
4680 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4684 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4681
4685
4682 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4686 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4683 would be triggered when readline was absent. This was just an old
4687 would be triggered when readline was absent. This was just an old
4684 debugging statement I'd forgotten to take out.
4688 debugging statement I'd forgotten to take out.
4685
4689
4686 2003-06-20 Fernando Perez <fperez@colorado.edu>
4690 2003-06-20 Fernando Perez <fperez@colorado.edu>
4687
4691
4688 * IPython/genutils.py (clock): modified to return only user time
4692 * IPython/genutils.py (clock): modified to return only user time
4689 (not counting system time), after a discussion on scipy. While
4693 (not counting system time), after a discussion on scipy. While
4690 system time may be a useful quantity occasionally, it may much
4694 system time may be a useful quantity occasionally, it may much
4691 more easily be skewed by occasional swapping or other similar
4695 more easily be skewed by occasional swapping or other similar
4692 activity.
4696 activity.
4693
4697
4694 2003-06-05 Fernando Perez <fperez@colorado.edu>
4698 2003-06-05 Fernando Perez <fperez@colorado.edu>
4695
4699
4696 * IPython/numutils.py (identity): new function, for building
4700 * IPython/numutils.py (identity): new function, for building
4697 arbitrary rank Kronecker deltas (mostly backwards compatible with
4701 arbitrary rank Kronecker deltas (mostly backwards compatible with
4698 Numeric.identity)
4702 Numeric.identity)
4699
4703
4700 2003-06-03 Fernando Perez <fperez@colorado.edu>
4704 2003-06-03 Fernando Perez <fperez@colorado.edu>
4701
4705
4702 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4706 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4703 arguments passed to magics with spaces, to allow trailing '\' to
4707 arguments passed to magics with spaces, to allow trailing '\' to
4704 work normally (mainly for Windows users).
4708 work normally (mainly for Windows users).
4705
4709
4706 2003-05-29 Fernando Perez <fperez@colorado.edu>
4710 2003-05-29 Fernando Perez <fperez@colorado.edu>
4707
4711
4708 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4712 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4709 instead of pydoc.help. This fixes a bizarre behavior where
4713 instead of pydoc.help. This fixes a bizarre behavior where
4710 printing '%s' % locals() would trigger the help system. Now
4714 printing '%s' % locals() would trigger the help system. Now
4711 ipython behaves like normal python does.
4715 ipython behaves like normal python does.
4712
4716
4713 Note that if one does 'from pydoc import help', the bizarre
4717 Note that if one does 'from pydoc import help', the bizarre
4714 behavior returns, but this will also happen in normal python, so
4718 behavior returns, but this will also happen in normal python, so
4715 it's not an ipython bug anymore (it has to do with how pydoc.help
4719 it's not an ipython bug anymore (it has to do with how pydoc.help
4716 is implemented).
4720 is implemented).
4717
4721
4718 2003-05-22 Fernando Perez <fperez@colorado.edu>
4722 2003-05-22 Fernando Perez <fperez@colorado.edu>
4719
4723
4720 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4724 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4721 return [] instead of None when nothing matches, also match to end
4725 return [] instead of None when nothing matches, also match to end
4722 of line. Patch by Gary Bishop.
4726 of line. Patch by Gary Bishop.
4723
4727
4724 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4728 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4725 protection as before, for files passed on the command line. This
4729 protection as before, for files passed on the command line. This
4726 prevents the CrashHandler from kicking in if user files call into
4730 prevents the CrashHandler from kicking in if user files call into
4727 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4731 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4728 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4732 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4729
4733
4730 2003-05-20 *** Released version 0.4.0
4734 2003-05-20 *** Released version 0.4.0
4731
4735
4732 2003-05-20 Fernando Perez <fperez@colorado.edu>
4736 2003-05-20 Fernando Perez <fperez@colorado.edu>
4733
4737
4734 * setup.py: added support for manpages. It's a bit hackish b/c of
4738 * setup.py: added support for manpages. It's a bit hackish b/c of
4735 a bug in the way the bdist_rpm distutils target handles gzipped
4739 a bug in the way the bdist_rpm distutils target handles gzipped
4736 manpages, but it works. After a patch by Jack.
4740 manpages, but it works. After a patch by Jack.
4737
4741
4738 2003-05-19 Fernando Perez <fperez@colorado.edu>
4742 2003-05-19 Fernando Perez <fperez@colorado.edu>
4739
4743
4740 * IPython/numutils.py: added a mockup of the kinds module, since
4744 * IPython/numutils.py: added a mockup of the kinds module, since
4741 it was recently removed from Numeric. This way, numutils will
4745 it was recently removed from Numeric. This way, numutils will
4742 work for all users even if they are missing kinds.
4746 work for all users even if they are missing kinds.
4743
4747
4744 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4748 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4745 failure, which can occur with SWIG-wrapped extensions. After a
4749 failure, which can occur with SWIG-wrapped extensions. After a
4746 crash report from Prabhu.
4750 crash report from Prabhu.
4747
4751
4748 2003-05-16 Fernando Perez <fperez@colorado.edu>
4752 2003-05-16 Fernando Perez <fperez@colorado.edu>
4749
4753
4750 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4754 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4751 protect ipython from user code which may call directly
4755 protect ipython from user code which may call directly
4752 sys.excepthook (this looks like an ipython crash to the user, even
4756 sys.excepthook (this looks like an ipython crash to the user, even
4753 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4757 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4754 This is especially important to help users of WxWindows, but may
4758 This is especially important to help users of WxWindows, but may
4755 also be useful in other cases.
4759 also be useful in other cases.
4756
4760
4757 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4761 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4758 an optional tb_offset to be specified, and to preserve exception
4762 an optional tb_offset to be specified, and to preserve exception
4759 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4763 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4760
4764
4761 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4765 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4762
4766
4763 2003-05-15 Fernando Perez <fperez@colorado.edu>
4767 2003-05-15 Fernando Perez <fperez@colorado.edu>
4764
4768
4765 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4769 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4766 installing for a new user under Windows.
4770 installing for a new user under Windows.
4767
4771
4768 2003-05-12 Fernando Perez <fperez@colorado.edu>
4772 2003-05-12 Fernando Perez <fperez@colorado.edu>
4769
4773
4770 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4774 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4771 handler for Emacs comint-based lines. Currently it doesn't do
4775 handler for Emacs comint-based lines. Currently it doesn't do
4772 much (but importantly, it doesn't update the history cache). In
4776 much (but importantly, it doesn't update the history cache). In
4773 the future it may be expanded if Alex needs more functionality
4777 the future it may be expanded if Alex needs more functionality
4774 there.
4778 there.
4775
4779
4776 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4780 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4777 info to crash reports.
4781 info to crash reports.
4778
4782
4779 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4783 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4780 just like Python's -c. Also fixed crash with invalid -color
4784 just like Python's -c. Also fixed crash with invalid -color
4781 option value at startup. Thanks to Will French
4785 option value at startup. Thanks to Will French
4782 <wfrench-AT-bestweb.net> for the bug report.
4786 <wfrench-AT-bestweb.net> for the bug report.
4783
4787
4784 2003-05-09 Fernando Perez <fperez@colorado.edu>
4788 2003-05-09 Fernando Perez <fperez@colorado.edu>
4785
4789
4786 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4790 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4787 to EvalDict (it's a mapping, after all) and simplified its code
4791 to EvalDict (it's a mapping, after all) and simplified its code
4788 quite a bit, after a nice discussion on c.l.py where Gustavo
4792 quite a bit, after a nice discussion on c.l.py where Gustavo
4789 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4793 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4790
4794
4791 2003-04-30 Fernando Perez <fperez@colorado.edu>
4795 2003-04-30 Fernando Perez <fperez@colorado.edu>
4792
4796
4793 * IPython/genutils.py (timings_out): modified it to reduce its
4797 * IPython/genutils.py (timings_out): modified it to reduce its
4794 overhead in the common reps==1 case.
4798 overhead in the common reps==1 case.
4795
4799
4796 2003-04-29 Fernando Perez <fperez@colorado.edu>
4800 2003-04-29 Fernando Perez <fperez@colorado.edu>
4797
4801
4798 * IPython/genutils.py (timings_out): Modified to use the resource
4802 * IPython/genutils.py (timings_out): Modified to use the resource
4799 module, which avoids the wraparound problems of time.clock().
4803 module, which avoids the wraparound problems of time.clock().
4800
4804
4801 2003-04-17 *** Released version 0.2.15pre4
4805 2003-04-17 *** Released version 0.2.15pre4
4802
4806
4803 2003-04-17 Fernando Perez <fperez@colorado.edu>
4807 2003-04-17 Fernando Perez <fperez@colorado.edu>
4804
4808
4805 * setup.py (scriptfiles): Split windows-specific stuff over to a
4809 * setup.py (scriptfiles): Split windows-specific stuff over to a
4806 separate file, in an attempt to have a Windows GUI installer.
4810 separate file, in an attempt to have a Windows GUI installer.
4807 That didn't work, but part of the groundwork is done.
4811 That didn't work, but part of the groundwork is done.
4808
4812
4809 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4813 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4810 indent/unindent with 4 spaces. Particularly useful in combination
4814 indent/unindent with 4 spaces. Particularly useful in combination
4811 with the new auto-indent option.
4815 with the new auto-indent option.
4812
4816
4813 2003-04-16 Fernando Perez <fperez@colorado.edu>
4817 2003-04-16 Fernando Perez <fperez@colorado.edu>
4814
4818
4815 * IPython/Magic.py: various replacements of self.rc for
4819 * IPython/Magic.py: various replacements of self.rc for
4816 self.shell.rc. A lot more remains to be done to fully disentangle
4820 self.shell.rc. A lot more remains to be done to fully disentangle
4817 this class from the main Shell class.
4821 this class from the main Shell class.
4818
4822
4819 * IPython/GnuplotRuntime.py: added checks for mouse support so
4823 * IPython/GnuplotRuntime.py: added checks for mouse support so
4820 that we don't try to enable it if the current gnuplot doesn't
4824 that we don't try to enable it if the current gnuplot doesn't
4821 really support it. Also added checks so that we don't try to
4825 really support it. Also added checks so that we don't try to
4822 enable persist under Windows (where Gnuplot doesn't recognize the
4826 enable persist under Windows (where Gnuplot doesn't recognize the
4823 option).
4827 option).
4824
4828
4825 * IPython/iplib.py (InteractiveShell.interact): Added optional
4829 * IPython/iplib.py (InteractiveShell.interact): Added optional
4826 auto-indenting code, after a patch by King C. Shu
4830 auto-indenting code, after a patch by King C. Shu
4827 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4831 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4828 get along well with pasting indented code. If I ever figure out
4832 get along well with pasting indented code. If I ever figure out
4829 how to make that part go well, it will become on by default.
4833 how to make that part go well, it will become on by default.
4830
4834
4831 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4835 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4832 crash ipython if there was an unmatched '%' in the user's prompt
4836 crash ipython if there was an unmatched '%' in the user's prompt
4833 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4837 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4834
4838
4835 * IPython/iplib.py (InteractiveShell.interact): removed the
4839 * IPython/iplib.py (InteractiveShell.interact): removed the
4836 ability to ask the user whether he wants to crash or not at the
4840 ability to ask the user whether he wants to crash or not at the
4837 'last line' exception handler. Calling functions at that point
4841 'last line' exception handler. Calling functions at that point
4838 changes the stack, and the error reports would have incorrect
4842 changes the stack, and the error reports would have incorrect
4839 tracebacks.
4843 tracebacks.
4840
4844
4841 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4845 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4842 pass through a peger a pretty-printed form of any object. After a
4846 pass through a peger a pretty-printed form of any object. After a
4843 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4847 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4844
4848
4845 2003-04-14 Fernando Perez <fperez@colorado.edu>
4849 2003-04-14 Fernando Perez <fperez@colorado.edu>
4846
4850
4847 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4851 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4848 all files in ~ would be modified at first install (instead of
4852 all files in ~ would be modified at first install (instead of
4849 ~/.ipython). This could be potentially disastrous, as the
4853 ~/.ipython). This could be potentially disastrous, as the
4850 modification (make line-endings native) could damage binary files.
4854 modification (make line-endings native) could damage binary files.
4851
4855
4852 2003-04-10 Fernando Perez <fperez@colorado.edu>
4856 2003-04-10 Fernando Perez <fperez@colorado.edu>
4853
4857
4854 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4858 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4855 handle only lines which are invalid python. This now means that
4859 handle only lines which are invalid python. This now means that
4856 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4860 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4857 for the bug report.
4861 for the bug report.
4858
4862
4859 2003-04-01 Fernando Perez <fperez@colorado.edu>
4863 2003-04-01 Fernando Perez <fperez@colorado.edu>
4860
4864
4861 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4865 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4862 where failing to set sys.last_traceback would crash pdb.pm().
4866 where failing to set sys.last_traceback would crash pdb.pm().
4863 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4867 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4864 report.
4868 report.
4865
4869
4866 2003-03-25 Fernando Perez <fperez@colorado.edu>
4870 2003-03-25 Fernando Perez <fperez@colorado.edu>
4867
4871
4868 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4872 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4869 before printing it (it had a lot of spurious blank lines at the
4873 before printing it (it had a lot of spurious blank lines at the
4870 end).
4874 end).
4871
4875
4872 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4876 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4873 output would be sent 21 times! Obviously people don't use this
4877 output would be sent 21 times! Obviously people don't use this
4874 too often, or I would have heard about it.
4878 too often, or I would have heard about it.
4875
4879
4876 2003-03-24 Fernando Perez <fperez@colorado.edu>
4880 2003-03-24 Fernando Perez <fperez@colorado.edu>
4877
4881
4878 * setup.py (scriptfiles): renamed the data_files parameter from
4882 * setup.py (scriptfiles): renamed the data_files parameter from
4879 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4883 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4880 for the patch.
4884 for the patch.
4881
4885
4882 2003-03-20 Fernando Perez <fperez@colorado.edu>
4886 2003-03-20 Fernando Perez <fperez@colorado.edu>
4883
4887
4884 * IPython/genutils.py (error): added error() and fatal()
4888 * IPython/genutils.py (error): added error() and fatal()
4885 functions.
4889 functions.
4886
4890
4887 2003-03-18 *** Released version 0.2.15pre3
4891 2003-03-18 *** Released version 0.2.15pre3
4888
4892
4889 2003-03-18 Fernando Perez <fperez@colorado.edu>
4893 2003-03-18 Fernando Perez <fperez@colorado.edu>
4890
4894
4891 * setupext/install_data_ext.py
4895 * setupext/install_data_ext.py
4892 (install_data_ext.initialize_options): Class contributed by Jack
4896 (install_data_ext.initialize_options): Class contributed by Jack
4893 Moffit for fixing the old distutils hack. He is sending this to
4897 Moffit for fixing the old distutils hack. He is sending this to
4894 the distutils folks so in the future we may not need it as a
4898 the distutils folks so in the future we may not need it as a
4895 private fix.
4899 private fix.
4896
4900
4897 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4901 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4898 changes for Debian packaging. See his patch for full details.
4902 changes for Debian packaging. See his patch for full details.
4899 The old distutils hack of making the ipythonrc* files carry a
4903 The old distutils hack of making the ipythonrc* files carry a
4900 bogus .py extension is gone, at last. Examples were moved to a
4904 bogus .py extension is gone, at last. Examples were moved to a
4901 separate subdir under doc/, and the separate executable scripts
4905 separate subdir under doc/, and the separate executable scripts
4902 now live in their own directory. Overall a great cleanup. The
4906 now live in their own directory. Overall a great cleanup. The
4903 manual was updated to use the new files, and setup.py has been
4907 manual was updated to use the new files, and setup.py has been
4904 fixed for this setup.
4908 fixed for this setup.
4905
4909
4906 * IPython/PyColorize.py (Parser.usage): made non-executable and
4910 * IPython/PyColorize.py (Parser.usage): made non-executable and
4907 created a pycolor wrapper around it to be included as a script.
4911 created a pycolor wrapper around it to be included as a script.
4908
4912
4909 2003-03-12 *** Released version 0.2.15pre2
4913 2003-03-12 *** Released version 0.2.15pre2
4910
4914
4911 2003-03-12 Fernando Perez <fperez@colorado.edu>
4915 2003-03-12 Fernando Perez <fperez@colorado.edu>
4912
4916
4913 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4917 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4914 long-standing problem with garbage characters in some terminals.
4918 long-standing problem with garbage characters in some terminals.
4915 The issue was really that the \001 and \002 escapes must _only_ be
4919 The issue was really that the \001 and \002 escapes must _only_ be
4916 passed to input prompts (which call readline), but _never_ to
4920 passed to input prompts (which call readline), but _never_ to
4917 normal text to be printed on screen. I changed ColorANSI to have
4921 normal text to be printed on screen. I changed ColorANSI to have
4918 two classes: TermColors and InputTermColors, each with the
4922 two classes: TermColors and InputTermColors, each with the
4919 appropriate escapes for input prompts or normal text. The code in
4923 appropriate escapes for input prompts or normal text. The code in
4920 Prompts.py got slightly more complicated, but this very old and
4924 Prompts.py got slightly more complicated, but this very old and
4921 annoying bug is finally fixed.
4925 annoying bug is finally fixed.
4922
4926
4923 All the credit for nailing down the real origin of this problem
4927 All the credit for nailing down the real origin of this problem
4924 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4928 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4925 *Many* thanks to him for spending quite a bit of effort on this.
4929 *Many* thanks to him for spending quite a bit of effort on this.
4926
4930
4927 2003-03-05 *** Released version 0.2.15pre1
4931 2003-03-05 *** Released version 0.2.15pre1
4928
4932
4929 2003-03-03 Fernando Perez <fperez@colorado.edu>
4933 2003-03-03 Fernando Perez <fperez@colorado.edu>
4930
4934
4931 * IPython/FakeModule.py: Moved the former _FakeModule to a
4935 * IPython/FakeModule.py: Moved the former _FakeModule to a
4932 separate file, because it's also needed by Magic (to fix a similar
4936 separate file, because it's also needed by Magic (to fix a similar
4933 pickle-related issue in @run).
4937 pickle-related issue in @run).
4934
4938
4935 2003-03-02 Fernando Perez <fperez@colorado.edu>
4939 2003-03-02 Fernando Perez <fperez@colorado.edu>
4936
4940
4937 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4941 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4938 the autocall option at runtime.
4942 the autocall option at runtime.
4939 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4943 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4940 across Magic.py to start separating Magic from InteractiveShell.
4944 across Magic.py to start separating Magic from InteractiveShell.
4941 (Magic._ofind): Fixed to return proper namespace for dotted
4945 (Magic._ofind): Fixed to return proper namespace for dotted
4942 names. Before, a dotted name would always return 'not currently
4946 names. Before, a dotted name would always return 'not currently
4943 defined', because it would find the 'parent'. s.x would be found,
4947 defined', because it would find the 'parent'. s.x would be found,
4944 but since 'x' isn't defined by itself, it would get confused.
4948 but since 'x' isn't defined by itself, it would get confused.
4945 (Magic.magic_run): Fixed pickling problems reported by Ralf
4949 (Magic.magic_run): Fixed pickling problems reported by Ralf
4946 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4950 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4947 that I'd used when Mike Heeter reported similar issues at the
4951 that I'd used when Mike Heeter reported similar issues at the
4948 top-level, but now for @run. It boils down to injecting the
4952 top-level, but now for @run. It boils down to injecting the
4949 namespace where code is being executed with something that looks
4953 namespace where code is being executed with something that looks
4950 enough like a module to fool pickle.dump(). Since a pickle stores
4954 enough like a module to fool pickle.dump(). Since a pickle stores
4951 a named reference to the importing module, we need this for
4955 a named reference to the importing module, we need this for
4952 pickles to save something sensible.
4956 pickles to save something sensible.
4953
4957
4954 * IPython/ipmaker.py (make_IPython): added an autocall option.
4958 * IPython/ipmaker.py (make_IPython): added an autocall option.
4955
4959
4956 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4960 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4957 the auto-eval code. Now autocalling is an option, and the code is
4961 the auto-eval code. Now autocalling is an option, and the code is
4958 also vastly safer. There is no more eval() involved at all.
4962 also vastly safer. There is no more eval() involved at all.
4959
4963
4960 2003-03-01 Fernando Perez <fperez@colorado.edu>
4964 2003-03-01 Fernando Perez <fperez@colorado.edu>
4961
4965
4962 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4966 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4963 dict with named keys instead of a tuple.
4967 dict with named keys instead of a tuple.
4964
4968
4965 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4969 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4966
4970
4967 * setup.py (make_shortcut): Fixed message about directories
4971 * setup.py (make_shortcut): Fixed message about directories
4968 created during Windows installation (the directories were ok, just
4972 created during Windows installation (the directories were ok, just
4969 the printed message was misleading). Thanks to Chris Liechti
4973 the printed message was misleading). Thanks to Chris Liechti
4970 <cliechti-AT-gmx.net> for the heads up.
4974 <cliechti-AT-gmx.net> for the heads up.
4971
4975
4972 2003-02-21 Fernando Perez <fperez@colorado.edu>
4976 2003-02-21 Fernando Perez <fperez@colorado.edu>
4973
4977
4974 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4978 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4975 of ValueError exception when checking for auto-execution. This
4979 of ValueError exception when checking for auto-execution. This
4976 one is raised by things like Numeric arrays arr.flat when the
4980 one is raised by things like Numeric arrays arr.flat when the
4977 array is non-contiguous.
4981 array is non-contiguous.
4978
4982
4979 2003-01-31 Fernando Perez <fperez@colorado.edu>
4983 2003-01-31 Fernando Perez <fperez@colorado.edu>
4980
4984
4981 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4985 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4982 not return any value at all (even though the command would get
4986 not return any value at all (even though the command would get
4983 executed).
4987 executed).
4984 (xsys): Flush stdout right after printing the command to ensure
4988 (xsys): Flush stdout right after printing the command to ensure
4985 proper ordering of commands and command output in the total
4989 proper ordering of commands and command output in the total
4986 output.
4990 output.
4987 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4991 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4988 system/getoutput as defaults. The old ones are kept for
4992 system/getoutput as defaults. The old ones are kept for
4989 compatibility reasons, so no code which uses this library needs
4993 compatibility reasons, so no code which uses this library needs
4990 changing.
4994 changing.
4991
4995
4992 2003-01-27 *** Released version 0.2.14
4996 2003-01-27 *** Released version 0.2.14
4993
4997
4994 2003-01-25 Fernando Perez <fperez@colorado.edu>
4998 2003-01-25 Fernando Perez <fperez@colorado.edu>
4995
4999
4996 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
5000 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4997 functions defined in previous edit sessions could not be re-edited
5001 functions defined in previous edit sessions could not be re-edited
4998 (because the temp files were immediately removed). Now temp files
5002 (because the temp files were immediately removed). Now temp files
4999 are removed only at IPython's exit.
5003 are removed only at IPython's exit.
5000 (Magic.magic_run): Improved @run to perform shell-like expansions
5004 (Magic.magic_run): Improved @run to perform shell-like expansions
5001 on its arguments (~users and $VARS). With this, @run becomes more
5005 on its arguments (~users and $VARS). With this, @run becomes more
5002 like a normal command-line.
5006 like a normal command-line.
5003
5007
5004 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
5008 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
5005 bugs related to embedding and cleaned up that code. A fairly
5009 bugs related to embedding and cleaned up that code. A fairly
5006 important one was the impossibility to access the global namespace
5010 important one was the impossibility to access the global namespace
5007 through the embedded IPython (only local variables were visible).
5011 through the embedded IPython (only local variables were visible).
5008
5012
5009 2003-01-14 Fernando Perez <fperez@colorado.edu>
5013 2003-01-14 Fernando Perez <fperez@colorado.edu>
5010
5014
5011 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
5015 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
5012 auto-calling to be a bit more conservative. Now it doesn't get
5016 auto-calling to be a bit more conservative. Now it doesn't get
5013 triggered if any of '!=()<>' are in the rest of the input line, to
5017 triggered if any of '!=()<>' are in the rest of the input line, to
5014 allow comparing callables. Thanks to Alex for the heads up.
5018 allow comparing callables. Thanks to Alex for the heads up.
5015
5019
5016 2003-01-07 Fernando Perez <fperez@colorado.edu>
5020 2003-01-07 Fernando Perez <fperez@colorado.edu>
5017
5021
5018 * IPython/genutils.py (page): fixed estimation of the number of
5022 * IPython/genutils.py (page): fixed estimation of the number of
5019 lines in a string to be paged to simply count newlines. This
5023 lines in a string to be paged to simply count newlines. This
5020 prevents over-guessing due to embedded escape sequences. A better
5024 prevents over-guessing due to embedded escape sequences. A better
5021 long-term solution would involve stripping out the control chars
5025 long-term solution would involve stripping out the control chars
5022 for the count, but it's potentially so expensive I just don't
5026 for the count, but it's potentially so expensive I just don't
5023 think it's worth doing.
5027 think it's worth doing.
5024
5028
5025 2002-12-19 *** Released version 0.2.14pre50
5029 2002-12-19 *** Released version 0.2.14pre50
5026
5030
5027 2002-12-19 Fernando Perez <fperez@colorado.edu>
5031 2002-12-19 Fernando Perez <fperez@colorado.edu>
5028
5032
5029 * tools/release (version): Changed release scripts to inform
5033 * tools/release (version): Changed release scripts to inform
5030 Andrea and build a NEWS file with a list of recent changes.
5034 Andrea and build a NEWS file with a list of recent changes.
5031
5035
5032 * IPython/ColorANSI.py (__all__): changed terminal detection
5036 * IPython/ColorANSI.py (__all__): changed terminal detection
5033 code. Seems to work better for xterms without breaking
5037 code. Seems to work better for xterms without breaking
5034 konsole. Will need more testing to determine if WinXP and Mac OSX
5038 konsole. Will need more testing to determine if WinXP and Mac OSX
5035 also work ok.
5039 also work ok.
5036
5040
5037 2002-12-18 *** Released version 0.2.14pre49
5041 2002-12-18 *** Released version 0.2.14pre49
5038
5042
5039 2002-12-18 Fernando Perez <fperez@colorado.edu>
5043 2002-12-18 Fernando Perez <fperez@colorado.edu>
5040
5044
5041 * Docs: added new info about Mac OSX, from Andrea.
5045 * Docs: added new info about Mac OSX, from Andrea.
5042
5046
5043 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5047 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5044 allow direct plotting of python strings whose format is the same
5048 allow direct plotting of python strings whose format is the same
5045 of gnuplot data files.
5049 of gnuplot data files.
5046
5050
5047 2002-12-16 Fernando Perez <fperez@colorado.edu>
5051 2002-12-16 Fernando Perez <fperez@colorado.edu>
5048
5052
5049 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5053 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5050 value of exit question to be acknowledged.
5054 value of exit question to be acknowledged.
5051
5055
5052 2002-12-03 Fernando Perez <fperez@colorado.edu>
5056 2002-12-03 Fernando Perez <fperez@colorado.edu>
5053
5057
5054 * IPython/ipmaker.py: removed generators, which had been added
5058 * IPython/ipmaker.py: removed generators, which had been added
5055 by mistake in an earlier debugging run. This was causing trouble
5059 by mistake in an earlier debugging run. This was causing trouble
5056 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5060 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5057 for pointing this out.
5061 for pointing this out.
5058
5062
5059 2002-11-17 Fernando Perez <fperez@colorado.edu>
5063 2002-11-17 Fernando Perez <fperez@colorado.edu>
5060
5064
5061 * Manual: updated the Gnuplot section.
5065 * Manual: updated the Gnuplot section.
5062
5066
5063 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5067 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5064 a much better split of what goes in Runtime and what goes in
5068 a much better split of what goes in Runtime and what goes in
5065 Interactive.
5069 Interactive.
5066
5070
5067 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5071 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5068 being imported from iplib.
5072 being imported from iplib.
5069
5073
5070 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5074 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5071 for command-passing. Now the global Gnuplot instance is called
5075 for command-passing. Now the global Gnuplot instance is called
5072 'gp' instead of 'g', which was really a far too fragile and
5076 'gp' instead of 'g', which was really a far too fragile and
5073 common name.
5077 common name.
5074
5078
5075 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5079 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5076 bounding boxes generated by Gnuplot for square plots.
5080 bounding boxes generated by Gnuplot for square plots.
5077
5081
5078 * IPython/genutils.py (popkey): new function added. I should
5082 * IPython/genutils.py (popkey): new function added. I should
5079 suggest this on c.l.py as a dict method, it seems useful.
5083 suggest this on c.l.py as a dict method, it seems useful.
5080
5084
5081 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5085 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5082 to transparently handle PostScript generation. MUCH better than
5086 to transparently handle PostScript generation. MUCH better than
5083 the previous plot_eps/replot_eps (which I removed now). The code
5087 the previous plot_eps/replot_eps (which I removed now). The code
5084 is also fairly clean and well documented now (including
5088 is also fairly clean and well documented now (including
5085 docstrings).
5089 docstrings).
5086
5090
5087 2002-11-13 Fernando Perez <fperez@colorado.edu>
5091 2002-11-13 Fernando Perez <fperez@colorado.edu>
5088
5092
5089 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5093 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5090 (inconsistent with options).
5094 (inconsistent with options).
5091
5095
5092 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5096 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5093 manually disabled, I don't know why. Fixed it.
5097 manually disabled, I don't know why. Fixed it.
5094 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5098 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5095 eps output.
5099 eps output.
5096
5100
5097 2002-11-12 Fernando Perez <fperez@colorado.edu>
5101 2002-11-12 Fernando Perez <fperez@colorado.edu>
5098
5102
5099 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5103 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5100 don't propagate up to caller. Fixes crash reported by François
5104 don't propagate up to caller. Fixes crash reported by François
5101 Pinard.
5105 Pinard.
5102
5106
5103 2002-11-09 Fernando Perez <fperez@colorado.edu>
5107 2002-11-09 Fernando Perez <fperez@colorado.edu>
5104
5108
5105 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5109 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5106 history file for new users.
5110 history file for new users.
5107 (make_IPython): fixed bug where initial install would leave the
5111 (make_IPython): fixed bug where initial install would leave the
5108 user running in the .ipython dir.
5112 user running in the .ipython dir.
5109 (make_IPython): fixed bug where config dir .ipython would be
5113 (make_IPython): fixed bug where config dir .ipython would be
5110 created regardless of the given -ipythondir option. Thanks to Cory
5114 created regardless of the given -ipythondir option. Thanks to Cory
5111 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5115 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5112
5116
5113 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5117 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5114 type confirmations. Will need to use it in all of IPython's code
5118 type confirmations. Will need to use it in all of IPython's code
5115 consistently.
5119 consistently.
5116
5120
5117 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5121 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5118 context to print 31 lines instead of the default 5. This will make
5122 context to print 31 lines instead of the default 5. This will make
5119 the crash reports extremely detailed in case the problem is in
5123 the crash reports extremely detailed in case the problem is in
5120 libraries I don't have access to.
5124 libraries I don't have access to.
5121
5125
5122 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5126 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5123 line of defense' code to still crash, but giving users fair
5127 line of defense' code to still crash, but giving users fair
5124 warning. I don't want internal errors to go unreported: if there's
5128 warning. I don't want internal errors to go unreported: if there's
5125 an internal problem, IPython should crash and generate a full
5129 an internal problem, IPython should crash and generate a full
5126 report.
5130 report.
5127
5131
5128 2002-11-08 Fernando Perez <fperez@colorado.edu>
5132 2002-11-08 Fernando Perez <fperez@colorado.edu>
5129
5133
5130 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5134 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5131 otherwise uncaught exceptions which can appear if people set
5135 otherwise uncaught exceptions which can appear if people set
5132 sys.stdout to something badly broken. Thanks to a crash report
5136 sys.stdout to something badly broken. Thanks to a crash report
5133 from henni-AT-mail.brainbot.com.
5137 from henni-AT-mail.brainbot.com.
5134
5138
5135 2002-11-04 Fernando Perez <fperez@colorado.edu>
5139 2002-11-04 Fernando Perez <fperez@colorado.edu>
5136
5140
5137 * IPython/iplib.py (InteractiveShell.interact): added
5141 * IPython/iplib.py (InteractiveShell.interact): added
5138 __IPYTHON__active to the builtins. It's a flag which goes on when
5142 __IPYTHON__active to the builtins. It's a flag which goes on when
5139 the interaction starts and goes off again when it stops. This
5143 the interaction starts and goes off again when it stops. This
5140 allows embedding code to detect being inside IPython. Before this
5144 allows embedding code to detect being inside IPython. Before this
5141 was done via __IPYTHON__, but that only shows that an IPython
5145 was done via __IPYTHON__, but that only shows that an IPython
5142 instance has been created.
5146 instance has been created.
5143
5147
5144 * IPython/Magic.py (Magic.magic_env): I realized that in a
5148 * IPython/Magic.py (Magic.magic_env): I realized that in a
5145 UserDict, instance.data holds the data as a normal dict. So I
5149 UserDict, instance.data holds the data as a normal dict. So I
5146 modified @env to return os.environ.data instead of rebuilding a
5150 modified @env to return os.environ.data instead of rebuilding a
5147 dict by hand.
5151 dict by hand.
5148
5152
5149 2002-11-02 Fernando Perez <fperez@colorado.edu>
5153 2002-11-02 Fernando Perez <fperez@colorado.edu>
5150
5154
5151 * IPython/genutils.py (warn): changed so that level 1 prints no
5155 * IPython/genutils.py (warn): changed so that level 1 prints no
5152 header. Level 2 is now the default (with 'WARNING' header, as
5156 header. Level 2 is now the default (with 'WARNING' header, as
5153 before). I think I tracked all places where changes were needed in
5157 before). I think I tracked all places where changes were needed in
5154 IPython, but outside code using the old level numbering may have
5158 IPython, but outside code using the old level numbering may have
5155 broken.
5159 broken.
5156
5160
5157 * IPython/iplib.py (InteractiveShell.runcode): added this to
5161 * IPython/iplib.py (InteractiveShell.runcode): added this to
5158 handle the tracebacks in SystemExit traps correctly. The previous
5162 handle the tracebacks in SystemExit traps correctly. The previous
5159 code (through interact) was printing more of the stack than
5163 code (through interact) was printing more of the stack than
5160 necessary, showing IPython internal code to the user.
5164 necessary, showing IPython internal code to the user.
5161
5165
5162 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5166 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5163 default. Now that the default at the confirmation prompt is yes,
5167 default. Now that the default at the confirmation prompt is yes,
5164 it's not so intrusive. François' argument that ipython sessions
5168 it's not so intrusive. François' argument that ipython sessions
5165 tend to be complex enough not to lose them from an accidental C-d,
5169 tend to be complex enough not to lose them from an accidental C-d,
5166 is a valid one.
5170 is a valid one.
5167
5171
5168 * IPython/iplib.py (InteractiveShell.interact): added a
5172 * IPython/iplib.py (InteractiveShell.interact): added a
5169 showtraceback() call to the SystemExit trap, and modified the exit
5173 showtraceback() call to the SystemExit trap, and modified the exit
5170 confirmation to have yes as the default.
5174 confirmation to have yes as the default.
5171
5175
5172 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5176 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5173 this file. It's been gone from the code for a long time, this was
5177 this file. It's been gone from the code for a long time, this was
5174 simply leftover junk.
5178 simply leftover junk.
5175
5179
5176 2002-11-01 Fernando Perez <fperez@colorado.edu>
5180 2002-11-01 Fernando Perez <fperez@colorado.edu>
5177
5181
5178 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5182 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5179 added. If set, IPython now traps EOF and asks for
5183 added. If set, IPython now traps EOF and asks for
5180 confirmation. After a request by François Pinard.
5184 confirmation. After a request by François Pinard.
5181
5185
5182 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5186 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5183 of @abort, and with a new (better) mechanism for handling the
5187 of @abort, and with a new (better) mechanism for handling the
5184 exceptions.
5188 exceptions.
5185
5189
5186 2002-10-27 Fernando Perez <fperez@colorado.edu>
5190 2002-10-27 Fernando Perez <fperez@colorado.edu>
5187
5191
5188 * IPython/usage.py (__doc__): updated the --help information and
5192 * IPython/usage.py (__doc__): updated the --help information and
5189 the ipythonrc file to indicate that -log generates
5193 the ipythonrc file to indicate that -log generates
5190 ./ipython.log. Also fixed the corresponding info in @logstart.
5194 ./ipython.log. Also fixed the corresponding info in @logstart.
5191 This and several other fixes in the manuals thanks to reports by
5195 This and several other fixes in the manuals thanks to reports by
5192 François Pinard <pinard-AT-iro.umontreal.ca>.
5196 François Pinard <pinard-AT-iro.umontreal.ca>.
5193
5197
5194 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5198 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5195 refer to @logstart (instead of @log, which doesn't exist).
5199 refer to @logstart (instead of @log, which doesn't exist).
5196
5200
5197 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5201 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5198 AttributeError crash. Thanks to Christopher Armstrong
5202 AttributeError crash. Thanks to Christopher Armstrong
5199 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5203 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5200 introduced recently (in 0.2.14pre37) with the fix to the eval
5204 introduced recently (in 0.2.14pre37) with the fix to the eval
5201 problem mentioned below.
5205 problem mentioned below.
5202
5206
5203 2002-10-17 Fernando Perez <fperez@colorado.edu>
5207 2002-10-17 Fernando Perez <fperez@colorado.edu>
5204
5208
5205 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5209 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5206 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5210 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5207
5211
5208 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5212 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5209 this function to fix a problem reported by Alex Schmolck. He saw
5213 this function to fix a problem reported by Alex Schmolck. He saw
5210 it with list comprehensions and generators, which were getting
5214 it with list comprehensions and generators, which were getting
5211 called twice. The real problem was an 'eval' call in testing for
5215 called twice. The real problem was an 'eval' call in testing for
5212 automagic which was evaluating the input line silently.
5216 automagic which was evaluating the input line silently.
5213
5217
5214 This is a potentially very nasty bug, if the input has side
5218 This is a potentially very nasty bug, if the input has side
5215 effects which must not be repeated. The code is much cleaner now,
5219 effects which must not be repeated. The code is much cleaner now,
5216 without any blanket 'except' left and with a regexp test for
5220 without any blanket 'except' left and with a regexp test for
5217 actual function names.
5221 actual function names.
5218
5222
5219 But an eval remains, which I'm not fully comfortable with. I just
5223 But an eval remains, which I'm not fully comfortable with. I just
5220 don't know how to find out if an expression could be a callable in
5224 don't know how to find out if an expression could be a callable in
5221 the user's namespace without doing an eval on the string. However
5225 the user's namespace without doing an eval on the string. However
5222 that string is now much more strictly checked so that no code
5226 that string is now much more strictly checked so that no code
5223 slips by, so the eval should only happen for things that can
5227 slips by, so the eval should only happen for things that can
5224 really be only function/method names.
5228 really be only function/method names.
5225
5229
5226 2002-10-15 Fernando Perez <fperez@colorado.edu>
5230 2002-10-15 Fernando Perez <fperez@colorado.edu>
5227
5231
5228 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5232 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5229 OSX information to main manual, removed README_Mac_OSX file from
5233 OSX information to main manual, removed README_Mac_OSX file from
5230 distribution. Also updated credits for recent additions.
5234 distribution. Also updated credits for recent additions.
5231
5235
5232 2002-10-10 Fernando Perez <fperez@colorado.edu>
5236 2002-10-10 Fernando Perez <fperez@colorado.edu>
5233
5237
5234 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5238 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5235 terminal-related issues. Many thanks to Andrea Riciputi
5239 terminal-related issues. Many thanks to Andrea Riciputi
5236 <andrea.riciputi-AT-libero.it> for writing it.
5240 <andrea.riciputi-AT-libero.it> for writing it.
5237
5241
5238 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5242 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5239 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5243 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5240
5244
5241 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5245 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5242 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5246 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5243 <syver-en-AT-online.no> who both submitted patches for this problem.
5247 <syver-en-AT-online.no> who both submitted patches for this problem.
5244
5248
5245 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5249 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5246 global embedding to make sure that things don't overwrite user
5250 global embedding to make sure that things don't overwrite user
5247 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5251 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5248
5252
5249 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5253 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5250 compatibility. Thanks to Hayden Callow
5254 compatibility. Thanks to Hayden Callow
5251 <h.callow-AT-elec.canterbury.ac.nz>
5255 <h.callow-AT-elec.canterbury.ac.nz>
5252
5256
5253 2002-10-04 Fernando Perez <fperez@colorado.edu>
5257 2002-10-04 Fernando Perez <fperez@colorado.edu>
5254
5258
5255 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5259 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5256 Gnuplot.File objects.
5260 Gnuplot.File objects.
5257
5261
5258 2002-07-23 Fernando Perez <fperez@colorado.edu>
5262 2002-07-23 Fernando Perez <fperez@colorado.edu>
5259
5263
5260 * IPython/genutils.py (timing): Added timings() and timing() for
5264 * IPython/genutils.py (timing): Added timings() and timing() for
5261 quick access to the most commonly needed data, the execution
5265 quick access to the most commonly needed data, the execution
5262 times. Old timing() renamed to timings_out().
5266 times. Old timing() renamed to timings_out().
5263
5267
5264 2002-07-18 Fernando Perez <fperez@colorado.edu>
5268 2002-07-18 Fernando Perez <fperez@colorado.edu>
5265
5269
5266 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5270 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5267 bug with nested instances disrupting the parent's tab completion.
5271 bug with nested instances disrupting the parent's tab completion.
5268
5272
5269 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5273 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5270 all_completions code to begin the emacs integration.
5274 all_completions code to begin the emacs integration.
5271
5275
5272 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5276 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5273 argument to allow titling individual arrays when plotting.
5277 argument to allow titling individual arrays when plotting.
5274
5278
5275 2002-07-15 Fernando Perez <fperez@colorado.edu>
5279 2002-07-15 Fernando Perez <fperez@colorado.edu>
5276
5280
5277 * setup.py (make_shortcut): changed to retrieve the value of
5281 * setup.py (make_shortcut): changed to retrieve the value of
5278 'Program Files' directory from the registry (this value changes in
5282 'Program Files' directory from the registry (this value changes in
5279 non-english versions of Windows). Thanks to Thomas Fanslau
5283 non-english versions of Windows). Thanks to Thomas Fanslau
5280 <tfanslau-AT-gmx.de> for the report.
5284 <tfanslau-AT-gmx.de> for the report.
5281
5285
5282 2002-07-10 Fernando Perez <fperez@colorado.edu>
5286 2002-07-10 Fernando Perez <fperez@colorado.edu>
5283
5287
5284 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5288 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5285 a bug in pdb, which crashes if a line with only whitespace is
5289 a bug in pdb, which crashes if a line with only whitespace is
5286 entered. Bug report submitted to sourceforge.
5290 entered. Bug report submitted to sourceforge.
5287
5291
5288 2002-07-09 Fernando Perez <fperez@colorado.edu>
5292 2002-07-09 Fernando Perez <fperez@colorado.edu>
5289
5293
5290 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5294 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5291 reporting exceptions (it's a bug in inspect.py, I just set a
5295 reporting exceptions (it's a bug in inspect.py, I just set a
5292 workaround).
5296 workaround).
5293
5297
5294 2002-07-08 Fernando Perez <fperez@colorado.edu>
5298 2002-07-08 Fernando Perez <fperez@colorado.edu>
5295
5299
5296 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5300 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5297 __IPYTHON__ in __builtins__ to show up in user_ns.
5301 __IPYTHON__ in __builtins__ to show up in user_ns.
5298
5302
5299 2002-07-03 Fernando Perez <fperez@colorado.edu>
5303 2002-07-03 Fernando Perez <fperez@colorado.edu>
5300
5304
5301 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5305 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5302 name from @gp_set_instance to @gp_set_default.
5306 name from @gp_set_instance to @gp_set_default.
5303
5307
5304 * IPython/ipmaker.py (make_IPython): default editor value set to
5308 * IPython/ipmaker.py (make_IPython): default editor value set to
5305 '0' (a string), to match the rc file. Otherwise will crash when
5309 '0' (a string), to match the rc file. Otherwise will crash when
5306 .strip() is called on it.
5310 .strip() is called on it.
5307
5311
5308
5312
5309 2002-06-28 Fernando Perez <fperez@colorado.edu>
5313 2002-06-28 Fernando Perez <fperez@colorado.edu>
5310
5314
5311 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5315 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5312 of files in current directory when a file is executed via
5316 of files in current directory when a file is executed via
5313 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5317 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5314
5318
5315 * setup.py (manfiles): fix for rpm builds, submitted by RA
5319 * setup.py (manfiles): fix for rpm builds, submitted by RA
5316 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5320 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5317
5321
5318 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5322 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5319 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5323 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5320 string!). A. Schmolck caught this one.
5324 string!). A. Schmolck caught this one.
5321
5325
5322 2002-06-27 Fernando Perez <fperez@colorado.edu>
5326 2002-06-27 Fernando Perez <fperez@colorado.edu>
5323
5327
5324 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5328 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5325 defined files at the cmd line. __name__ wasn't being set to
5329 defined files at the cmd line. __name__ wasn't being set to
5326 __main__.
5330 __main__.
5327
5331
5328 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5332 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5329 regular lists and tuples besides Numeric arrays.
5333 regular lists and tuples besides Numeric arrays.
5330
5334
5331 * IPython/Prompts.py (CachedOutput.__call__): Added output
5335 * IPython/Prompts.py (CachedOutput.__call__): Added output
5332 supression for input ending with ';'. Similar to Mathematica and
5336 supression for input ending with ';'. Similar to Mathematica and
5333 Matlab. The _* vars and Out[] list are still updated, just like
5337 Matlab. The _* vars and Out[] list are still updated, just like
5334 Mathematica behaves.
5338 Mathematica behaves.
5335
5339
5336 2002-06-25 Fernando Perez <fperez@colorado.edu>
5340 2002-06-25 Fernando Perez <fperez@colorado.edu>
5337
5341
5338 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5342 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5339 .ini extensions for profiels under Windows.
5343 .ini extensions for profiels under Windows.
5340
5344
5341 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5345 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5342 string form. Fix contributed by Alexander Schmolck
5346 string form. Fix contributed by Alexander Schmolck
5343 <a.schmolck-AT-gmx.net>
5347 <a.schmolck-AT-gmx.net>
5344
5348
5345 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5349 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5346 pre-configured Gnuplot instance.
5350 pre-configured Gnuplot instance.
5347
5351
5348 2002-06-21 Fernando Perez <fperez@colorado.edu>
5352 2002-06-21 Fernando Perez <fperez@colorado.edu>
5349
5353
5350 * IPython/numutils.py (exp_safe): new function, works around the
5354 * IPython/numutils.py (exp_safe): new function, works around the
5351 underflow problems in Numeric.
5355 underflow problems in Numeric.
5352 (log2): New fn. Safe log in base 2: returns exact integer answer
5356 (log2): New fn. Safe log in base 2: returns exact integer answer
5353 for exact integer powers of 2.
5357 for exact integer powers of 2.
5354
5358
5355 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5359 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5356 properly.
5360 properly.
5357
5361
5358 2002-06-20 Fernando Perez <fperez@colorado.edu>
5362 2002-06-20 Fernando Perez <fperez@colorado.edu>
5359
5363
5360 * IPython/genutils.py (timing): new function like
5364 * IPython/genutils.py (timing): new function like
5361 Mathematica's. Similar to time_test, but returns more info.
5365 Mathematica's. Similar to time_test, but returns more info.
5362
5366
5363 2002-06-18 Fernando Perez <fperez@colorado.edu>
5367 2002-06-18 Fernando Perez <fperez@colorado.edu>
5364
5368
5365 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5369 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5366 according to Mike Heeter's suggestions.
5370 according to Mike Heeter's suggestions.
5367
5371
5368 2002-06-16 Fernando Perez <fperez@colorado.edu>
5372 2002-06-16 Fernando Perez <fperez@colorado.edu>
5369
5373
5370 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5374 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5371 system. GnuplotMagic is gone as a user-directory option. New files
5375 system. GnuplotMagic is gone as a user-directory option. New files
5372 make it easier to use all the gnuplot stuff both from external
5376 make it easier to use all the gnuplot stuff both from external
5373 programs as well as from IPython. Had to rewrite part of
5377 programs as well as from IPython. Had to rewrite part of
5374 hardcopy() b/c of a strange bug: often the ps files simply don't
5378 hardcopy() b/c of a strange bug: often the ps files simply don't
5375 get created, and require a repeat of the command (often several
5379 get created, and require a repeat of the command (often several
5376 times).
5380 times).
5377
5381
5378 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5382 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5379 resolve output channel at call time, so that if sys.stderr has
5383 resolve output channel at call time, so that if sys.stderr has
5380 been redirected by user this gets honored.
5384 been redirected by user this gets honored.
5381
5385
5382 2002-06-13 Fernando Perez <fperez@colorado.edu>
5386 2002-06-13 Fernando Perez <fperez@colorado.edu>
5383
5387
5384 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5388 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5385 IPShell. Kept a copy with the old names to avoid breaking people's
5389 IPShell. Kept a copy with the old names to avoid breaking people's
5386 embedded code.
5390 embedded code.
5387
5391
5388 * IPython/ipython: simplified it to the bare minimum after
5392 * IPython/ipython: simplified it to the bare minimum after
5389 Holger's suggestions. Added info about how to use it in
5393 Holger's suggestions. Added info about how to use it in
5390 PYTHONSTARTUP.
5394 PYTHONSTARTUP.
5391
5395
5392 * IPython/Shell.py (IPythonShell): changed the options passing
5396 * IPython/Shell.py (IPythonShell): changed the options passing
5393 from a string with funky %s replacements to a straight list. Maybe
5397 from a string with funky %s replacements to a straight list. Maybe
5394 a bit more typing, but it follows sys.argv conventions, so there's
5398 a bit more typing, but it follows sys.argv conventions, so there's
5395 less special-casing to remember.
5399 less special-casing to remember.
5396
5400
5397 2002-06-12 Fernando Perez <fperez@colorado.edu>
5401 2002-06-12 Fernando Perez <fperez@colorado.edu>
5398
5402
5399 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5403 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5400 command. Thanks to a suggestion by Mike Heeter.
5404 command. Thanks to a suggestion by Mike Heeter.
5401 (Magic.magic_pfile): added behavior to look at filenames if given
5405 (Magic.magic_pfile): added behavior to look at filenames if given
5402 arg is not a defined object.
5406 arg is not a defined object.
5403 (Magic.magic_save): New @save function to save code snippets. Also
5407 (Magic.magic_save): New @save function to save code snippets. Also
5404 a Mike Heeter idea.
5408 a Mike Heeter idea.
5405
5409
5406 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5410 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5407 plot() and replot(). Much more convenient now, especially for
5411 plot() and replot(). Much more convenient now, especially for
5408 interactive use.
5412 interactive use.
5409
5413
5410 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5414 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5411 filenames.
5415 filenames.
5412
5416
5413 2002-06-02 Fernando Perez <fperez@colorado.edu>
5417 2002-06-02 Fernando Perez <fperez@colorado.edu>
5414
5418
5415 * IPython/Struct.py (Struct.__init__): modified to admit
5419 * IPython/Struct.py (Struct.__init__): modified to admit
5416 initialization via another struct.
5420 initialization via another struct.
5417
5421
5418 * IPython/genutils.py (SystemExec.__init__): New stateful
5422 * IPython/genutils.py (SystemExec.__init__): New stateful
5419 interface to xsys and bq. Useful for writing system scripts.
5423 interface to xsys and bq. Useful for writing system scripts.
5420
5424
5421 2002-05-30 Fernando Perez <fperez@colorado.edu>
5425 2002-05-30 Fernando Perez <fperez@colorado.edu>
5422
5426
5423 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5427 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5424 documents. This will make the user download smaller (it's getting
5428 documents. This will make the user download smaller (it's getting
5425 too big).
5429 too big).
5426
5430
5427 2002-05-29 Fernando Perez <fperez@colorado.edu>
5431 2002-05-29 Fernando Perez <fperez@colorado.edu>
5428
5432
5429 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5433 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5430 fix problems with shelve and pickle. Seems to work, but I don't
5434 fix problems with shelve and pickle. Seems to work, but I don't
5431 know if corner cases break it. Thanks to Mike Heeter
5435 know if corner cases break it. Thanks to Mike Heeter
5432 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5436 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5433
5437
5434 2002-05-24 Fernando Perez <fperez@colorado.edu>
5438 2002-05-24 Fernando Perez <fperez@colorado.edu>
5435
5439
5436 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5440 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5437 macros having broken.
5441 macros having broken.
5438
5442
5439 2002-05-21 Fernando Perez <fperez@colorado.edu>
5443 2002-05-21 Fernando Perez <fperez@colorado.edu>
5440
5444
5441 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5445 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5442 introduced logging bug: all history before logging started was
5446 introduced logging bug: all history before logging started was
5443 being written one character per line! This came from the redesign
5447 being written one character per line! This came from the redesign
5444 of the input history as a special list which slices to strings,
5448 of the input history as a special list which slices to strings,
5445 not to lists.
5449 not to lists.
5446
5450
5447 2002-05-20 Fernando Perez <fperez@colorado.edu>
5451 2002-05-20 Fernando Perez <fperez@colorado.edu>
5448
5452
5449 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5453 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5450 be an attribute of all classes in this module. The design of these
5454 be an attribute of all classes in this module. The design of these
5451 classes needs some serious overhauling.
5455 classes needs some serious overhauling.
5452
5456
5453 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5457 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5454 which was ignoring '_' in option names.
5458 which was ignoring '_' in option names.
5455
5459
5456 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5460 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5457 'Verbose_novars' to 'Context' and made it the new default. It's a
5461 'Verbose_novars' to 'Context' and made it the new default. It's a
5458 bit more readable and also safer than verbose.
5462 bit more readable and also safer than verbose.
5459
5463
5460 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5464 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5461 triple-quoted strings.
5465 triple-quoted strings.
5462
5466
5463 * IPython/OInspect.py (__all__): new module exposing the object
5467 * IPython/OInspect.py (__all__): new module exposing the object
5464 introspection facilities. Now the corresponding magics are dummy
5468 introspection facilities. Now the corresponding magics are dummy
5465 wrappers around this. Having this module will make it much easier
5469 wrappers around this. Having this module will make it much easier
5466 to put these functions into our modified pdb.
5470 to put these functions into our modified pdb.
5467 This new object inspector system uses the new colorizing module,
5471 This new object inspector system uses the new colorizing module,
5468 so source code and other things are nicely syntax highlighted.
5472 so source code and other things are nicely syntax highlighted.
5469
5473
5470 2002-05-18 Fernando Perez <fperez@colorado.edu>
5474 2002-05-18 Fernando Perez <fperez@colorado.edu>
5471
5475
5472 * IPython/ColorANSI.py: Split the coloring tools into a separate
5476 * IPython/ColorANSI.py: Split the coloring tools into a separate
5473 module so I can use them in other code easier (they were part of
5477 module so I can use them in other code easier (they were part of
5474 ultraTB).
5478 ultraTB).
5475
5479
5476 2002-05-17 Fernando Perez <fperez@colorado.edu>
5480 2002-05-17 Fernando Perez <fperez@colorado.edu>
5477
5481
5478 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5482 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5479 fixed it to set the global 'g' also to the called instance, as
5483 fixed it to set the global 'g' also to the called instance, as
5480 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5484 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5481 user's 'g' variables).
5485 user's 'g' variables).
5482
5486
5483 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5487 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5484 global variables (aliases to _ih,_oh) so that users which expect
5488 global variables (aliases to _ih,_oh) so that users which expect
5485 In[5] or Out[7] to work aren't unpleasantly surprised.
5489 In[5] or Out[7] to work aren't unpleasantly surprised.
5486 (InputList.__getslice__): new class to allow executing slices of
5490 (InputList.__getslice__): new class to allow executing slices of
5487 input history directly. Very simple class, complements the use of
5491 input history directly. Very simple class, complements the use of
5488 macros.
5492 macros.
5489
5493
5490 2002-05-16 Fernando Perez <fperez@colorado.edu>
5494 2002-05-16 Fernando Perez <fperez@colorado.edu>
5491
5495
5492 * setup.py (docdirbase): make doc directory be just doc/IPython
5496 * setup.py (docdirbase): make doc directory be just doc/IPython
5493 without version numbers, it will reduce clutter for users.
5497 without version numbers, it will reduce clutter for users.
5494
5498
5495 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5499 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5496 execfile call to prevent possible memory leak. See for details:
5500 execfile call to prevent possible memory leak. See for details:
5497 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5501 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5498
5502
5499 2002-05-15 Fernando Perez <fperez@colorado.edu>
5503 2002-05-15 Fernando Perez <fperez@colorado.edu>
5500
5504
5501 * IPython/Magic.py (Magic.magic_psource): made the object
5505 * IPython/Magic.py (Magic.magic_psource): made the object
5502 introspection names be more standard: pdoc, pdef, pfile and
5506 introspection names be more standard: pdoc, pdef, pfile and
5503 psource. They all print/page their output, and it makes
5507 psource. They all print/page their output, and it makes
5504 remembering them easier. Kept old names for compatibility as
5508 remembering them easier. Kept old names for compatibility as
5505 aliases.
5509 aliases.
5506
5510
5507 2002-05-14 Fernando Perez <fperez@colorado.edu>
5511 2002-05-14 Fernando Perez <fperez@colorado.edu>
5508
5512
5509 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5513 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5510 what the mouse problem was. The trick is to use gnuplot with temp
5514 what the mouse problem was. The trick is to use gnuplot with temp
5511 files and NOT with pipes (for data communication), because having
5515 files and NOT with pipes (for data communication), because having
5512 both pipes and the mouse on is bad news.
5516 both pipes and the mouse on is bad news.
5513
5517
5514 2002-05-13 Fernando Perez <fperez@colorado.edu>
5518 2002-05-13 Fernando Perez <fperez@colorado.edu>
5515
5519
5516 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5520 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5517 bug. Information would be reported about builtins even when
5521 bug. Information would be reported about builtins even when
5518 user-defined functions overrode them.
5522 user-defined functions overrode them.
5519
5523
5520 2002-05-11 Fernando Perez <fperez@colorado.edu>
5524 2002-05-11 Fernando Perez <fperez@colorado.edu>
5521
5525
5522 * IPython/__init__.py (__all__): removed FlexCompleter from
5526 * IPython/__init__.py (__all__): removed FlexCompleter from
5523 __all__ so that things don't fail in platforms without readline.
5527 __all__ so that things don't fail in platforms without readline.
5524
5528
5525 2002-05-10 Fernando Perez <fperez@colorado.edu>
5529 2002-05-10 Fernando Perez <fperez@colorado.edu>
5526
5530
5527 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5531 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5528 it requires Numeric, effectively making Numeric a dependency for
5532 it requires Numeric, effectively making Numeric a dependency for
5529 IPython.
5533 IPython.
5530
5534
5531 * Released 0.2.13
5535 * Released 0.2.13
5532
5536
5533 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5537 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5534 profiler interface. Now all the major options from the profiler
5538 profiler interface. Now all the major options from the profiler
5535 module are directly supported in IPython, both for single
5539 module are directly supported in IPython, both for single
5536 expressions (@prun) and for full programs (@run -p).
5540 expressions (@prun) and for full programs (@run -p).
5537
5541
5538 2002-05-09 Fernando Perez <fperez@colorado.edu>
5542 2002-05-09 Fernando Perez <fperez@colorado.edu>
5539
5543
5540 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5544 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5541 magic properly formatted for screen.
5545 magic properly formatted for screen.
5542
5546
5543 * setup.py (make_shortcut): Changed things to put pdf version in
5547 * setup.py (make_shortcut): Changed things to put pdf version in
5544 doc/ instead of doc/manual (had to change lyxport a bit).
5548 doc/ instead of doc/manual (had to change lyxport a bit).
5545
5549
5546 * IPython/Magic.py (Profile.string_stats): made profile runs go
5550 * IPython/Magic.py (Profile.string_stats): made profile runs go
5547 through pager (they are long and a pager allows searching, saving,
5551 through pager (they are long and a pager allows searching, saving,
5548 etc.)
5552 etc.)
5549
5553
5550 2002-05-08 Fernando Perez <fperez@colorado.edu>
5554 2002-05-08 Fernando Perez <fperez@colorado.edu>
5551
5555
5552 * Released 0.2.12
5556 * Released 0.2.12
5553
5557
5554 2002-05-06 Fernando Perez <fperez@colorado.edu>
5558 2002-05-06 Fernando Perez <fperez@colorado.edu>
5555
5559
5556 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5560 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5557 introduced); 'hist n1 n2' was broken.
5561 introduced); 'hist n1 n2' was broken.
5558 (Magic.magic_pdb): added optional on/off arguments to @pdb
5562 (Magic.magic_pdb): added optional on/off arguments to @pdb
5559 (Magic.magic_run): added option -i to @run, which executes code in
5563 (Magic.magic_run): added option -i to @run, which executes code in
5560 the IPython namespace instead of a clean one. Also added @irun as
5564 the IPython namespace instead of a clean one. Also added @irun as
5561 an alias to @run -i.
5565 an alias to @run -i.
5562
5566
5563 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5567 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5564 fixed (it didn't really do anything, the namespaces were wrong).
5568 fixed (it didn't really do anything, the namespaces were wrong).
5565
5569
5566 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5570 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5567
5571
5568 * IPython/__init__.py (__all__): Fixed package namespace, now
5572 * IPython/__init__.py (__all__): Fixed package namespace, now
5569 'import IPython' does give access to IPython.<all> as
5573 'import IPython' does give access to IPython.<all> as
5570 expected. Also renamed __release__ to Release.
5574 expected. Also renamed __release__ to Release.
5571
5575
5572 * IPython/Debugger.py (__license__): created new Pdb class which
5576 * IPython/Debugger.py (__license__): created new Pdb class which
5573 functions like a drop-in for the normal pdb.Pdb but does NOT
5577 functions like a drop-in for the normal pdb.Pdb but does NOT
5574 import readline by default. This way it doesn't muck up IPython's
5578 import readline by default. This way it doesn't muck up IPython's
5575 readline handling, and now tab-completion finally works in the
5579 readline handling, and now tab-completion finally works in the
5576 debugger -- sort of. It completes things globally visible, but the
5580 debugger -- sort of. It completes things globally visible, but the
5577 completer doesn't track the stack as pdb walks it. That's a bit
5581 completer doesn't track the stack as pdb walks it. That's a bit
5578 tricky, and I'll have to implement it later.
5582 tricky, and I'll have to implement it later.
5579
5583
5580 2002-05-05 Fernando Perez <fperez@colorado.edu>
5584 2002-05-05 Fernando Perez <fperez@colorado.edu>
5581
5585
5582 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5586 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5583 magic docstrings when printed via ? (explicit \'s were being
5587 magic docstrings when printed via ? (explicit \'s were being
5584 printed).
5588 printed).
5585
5589
5586 * IPython/ipmaker.py (make_IPython): fixed namespace
5590 * IPython/ipmaker.py (make_IPython): fixed namespace
5587 identification bug. Now variables loaded via logs or command-line
5591 identification bug. Now variables loaded via logs or command-line
5588 files are recognized in the interactive namespace by @who.
5592 files are recognized in the interactive namespace by @who.
5589
5593
5590 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5594 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5591 log replay system stemming from the string form of Structs.
5595 log replay system stemming from the string form of Structs.
5592
5596
5593 * IPython/Magic.py (Macro.__init__): improved macros to properly
5597 * IPython/Magic.py (Macro.__init__): improved macros to properly
5594 handle magic commands in them.
5598 handle magic commands in them.
5595 (Magic.magic_logstart): usernames are now expanded so 'logstart
5599 (Magic.magic_logstart): usernames are now expanded so 'logstart
5596 ~/mylog' now works.
5600 ~/mylog' now works.
5597
5601
5598 * IPython/iplib.py (complete): fixed bug where paths starting with
5602 * IPython/iplib.py (complete): fixed bug where paths starting with
5599 '/' would be completed as magic names.
5603 '/' would be completed as magic names.
5600
5604
5601 2002-05-04 Fernando Perez <fperez@colorado.edu>
5605 2002-05-04 Fernando Perez <fperez@colorado.edu>
5602
5606
5603 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5607 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5604 allow running full programs under the profiler's control.
5608 allow running full programs under the profiler's control.
5605
5609
5606 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5610 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5607 mode to report exceptions verbosely but without formatting
5611 mode to report exceptions verbosely but without formatting
5608 variables. This addresses the issue of ipython 'freezing' (it's
5612 variables. This addresses the issue of ipython 'freezing' (it's
5609 not frozen, but caught in an expensive formatting loop) when huge
5613 not frozen, but caught in an expensive formatting loop) when huge
5610 variables are in the context of an exception.
5614 variables are in the context of an exception.
5611 (VerboseTB.text): Added '--->' markers at line where exception was
5615 (VerboseTB.text): Added '--->' markers at line where exception was
5612 triggered. Much clearer to read, especially in NoColor modes.
5616 triggered. Much clearer to read, especially in NoColor modes.
5613
5617
5614 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5618 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5615 implemented in reverse when changing to the new parse_options().
5619 implemented in reverse when changing to the new parse_options().
5616
5620
5617 2002-05-03 Fernando Perez <fperez@colorado.edu>
5621 2002-05-03 Fernando Perez <fperez@colorado.edu>
5618
5622
5619 * IPython/Magic.py (Magic.parse_options): new function so that
5623 * IPython/Magic.py (Magic.parse_options): new function so that
5620 magics can parse options easier.
5624 magics can parse options easier.
5621 (Magic.magic_prun): new function similar to profile.run(),
5625 (Magic.magic_prun): new function similar to profile.run(),
5622 suggested by Chris Hart.
5626 suggested by Chris Hart.
5623 (Magic.magic_cd): fixed behavior so that it only changes if
5627 (Magic.magic_cd): fixed behavior so that it only changes if
5624 directory actually is in history.
5628 directory actually is in history.
5625
5629
5626 * IPython/usage.py (__doc__): added information about potential
5630 * IPython/usage.py (__doc__): added information about potential
5627 slowness of Verbose exception mode when there are huge data
5631 slowness of Verbose exception mode when there are huge data
5628 structures to be formatted (thanks to Archie Paulson).
5632 structures to be formatted (thanks to Archie Paulson).
5629
5633
5630 * IPython/ipmaker.py (make_IPython): Changed default logging
5634 * IPython/ipmaker.py (make_IPython): Changed default logging
5631 (when simply called with -log) to use curr_dir/ipython.log in
5635 (when simply called with -log) to use curr_dir/ipython.log in
5632 rotate mode. Fixed crash which was occuring with -log before
5636 rotate mode. Fixed crash which was occuring with -log before
5633 (thanks to Jim Boyle).
5637 (thanks to Jim Boyle).
5634
5638
5635 2002-05-01 Fernando Perez <fperez@colorado.edu>
5639 2002-05-01 Fernando Perez <fperez@colorado.edu>
5636
5640
5637 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5641 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5638 was nasty -- though somewhat of a corner case).
5642 was nasty -- though somewhat of a corner case).
5639
5643
5640 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5644 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5641 text (was a bug).
5645 text (was a bug).
5642
5646
5643 2002-04-30 Fernando Perez <fperez@colorado.edu>
5647 2002-04-30 Fernando Perez <fperez@colorado.edu>
5644
5648
5645 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5649 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5646 a print after ^D or ^C from the user so that the In[] prompt
5650 a print after ^D or ^C from the user so that the In[] prompt
5647 doesn't over-run the gnuplot one.
5651 doesn't over-run the gnuplot one.
5648
5652
5649 2002-04-29 Fernando Perez <fperez@colorado.edu>
5653 2002-04-29 Fernando Perez <fperez@colorado.edu>
5650
5654
5651 * Released 0.2.10
5655 * Released 0.2.10
5652
5656
5653 * IPython/__release__.py (version): get date dynamically.
5657 * IPython/__release__.py (version): get date dynamically.
5654
5658
5655 * Misc. documentation updates thanks to Arnd's comments. Also ran
5659 * Misc. documentation updates thanks to Arnd's comments. Also ran
5656 a full spellcheck on the manual (hadn't been done in a while).
5660 a full spellcheck on the manual (hadn't been done in a while).
5657
5661
5658 2002-04-27 Fernando Perez <fperez@colorado.edu>
5662 2002-04-27 Fernando Perez <fperez@colorado.edu>
5659
5663
5660 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5664 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5661 starting a log in mid-session would reset the input history list.
5665 starting a log in mid-session would reset the input history list.
5662
5666
5663 2002-04-26 Fernando Perez <fperez@colorado.edu>
5667 2002-04-26 Fernando Perez <fperez@colorado.edu>
5664
5668
5665 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5669 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5666 all files were being included in an update. Now anything in
5670 all files were being included in an update. Now anything in
5667 UserConfig that matches [A-Za-z]*.py will go (this excludes
5671 UserConfig that matches [A-Za-z]*.py will go (this excludes
5668 __init__.py)
5672 __init__.py)
5669
5673
5670 2002-04-25 Fernando Perez <fperez@colorado.edu>
5674 2002-04-25 Fernando Perez <fperez@colorado.edu>
5671
5675
5672 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5676 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5673 to __builtins__ so that any form of embedded or imported code can
5677 to __builtins__ so that any form of embedded or imported code can
5674 test for being inside IPython.
5678 test for being inside IPython.
5675
5679
5676 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5680 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5677 changed to GnuplotMagic because it's now an importable module,
5681 changed to GnuplotMagic because it's now an importable module,
5678 this makes the name follow that of the standard Gnuplot module.
5682 this makes the name follow that of the standard Gnuplot module.
5679 GnuplotMagic can now be loaded at any time in mid-session.
5683 GnuplotMagic can now be loaded at any time in mid-session.
5680
5684
5681 2002-04-24 Fernando Perez <fperez@colorado.edu>
5685 2002-04-24 Fernando Perez <fperez@colorado.edu>
5682
5686
5683 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5687 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5684 the globals (IPython has its own namespace) and the
5688 the globals (IPython has its own namespace) and the
5685 PhysicalQuantity stuff is much better anyway.
5689 PhysicalQuantity stuff is much better anyway.
5686
5690
5687 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5691 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5688 embedding example to standard user directory for
5692 embedding example to standard user directory for
5689 distribution. Also put it in the manual.
5693 distribution. Also put it in the manual.
5690
5694
5691 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5695 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5692 instance as first argument (so it doesn't rely on some obscure
5696 instance as first argument (so it doesn't rely on some obscure
5693 hidden global).
5697 hidden global).
5694
5698
5695 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5699 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5696 delimiters. While it prevents ().TAB from working, it allows
5700 delimiters. While it prevents ().TAB from working, it allows
5697 completions in open (... expressions. This is by far a more common
5701 completions in open (... expressions. This is by far a more common
5698 case.
5702 case.
5699
5703
5700 2002-04-23 Fernando Perez <fperez@colorado.edu>
5704 2002-04-23 Fernando Perez <fperez@colorado.edu>
5701
5705
5702 * IPython/Extensions/InterpreterPasteInput.py: new
5706 * IPython/Extensions/InterpreterPasteInput.py: new
5703 syntax-processing module for pasting lines with >>> or ... at the
5707 syntax-processing module for pasting lines with >>> or ... at the
5704 start.
5708 start.
5705
5709
5706 * IPython/Extensions/PhysicalQ_Interactive.py
5710 * IPython/Extensions/PhysicalQ_Interactive.py
5707 (PhysicalQuantityInteractive.__int__): fixed to work with either
5711 (PhysicalQuantityInteractive.__int__): fixed to work with either
5708 Numeric or math.
5712 Numeric or math.
5709
5713
5710 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5714 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5711 provided profiles. Now we have:
5715 provided profiles. Now we have:
5712 -math -> math module as * and cmath with its own namespace.
5716 -math -> math module as * and cmath with its own namespace.
5713 -numeric -> Numeric as *, plus gnuplot & grace
5717 -numeric -> Numeric as *, plus gnuplot & grace
5714 -physics -> same as before
5718 -physics -> same as before
5715
5719
5716 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5720 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5717 user-defined magics wouldn't be found by @magic if they were
5721 user-defined magics wouldn't be found by @magic if they were
5718 defined as class methods. Also cleaned up the namespace search
5722 defined as class methods. Also cleaned up the namespace search
5719 logic and the string building (to use %s instead of many repeated
5723 logic and the string building (to use %s instead of many repeated
5720 string adds).
5724 string adds).
5721
5725
5722 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5726 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5723 of user-defined magics to operate with class methods (cleaner, in
5727 of user-defined magics to operate with class methods (cleaner, in
5724 line with the gnuplot code).
5728 line with the gnuplot code).
5725
5729
5726 2002-04-22 Fernando Perez <fperez@colorado.edu>
5730 2002-04-22 Fernando Perez <fperez@colorado.edu>
5727
5731
5728 * setup.py: updated dependency list so that manual is updated when
5732 * setup.py: updated dependency list so that manual is updated when
5729 all included files change.
5733 all included files change.
5730
5734
5731 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5735 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5732 the delimiter removal option (the fix is ugly right now).
5736 the delimiter removal option (the fix is ugly right now).
5733
5737
5734 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5738 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5735 all of the math profile (quicker loading, no conflict between
5739 all of the math profile (quicker loading, no conflict between
5736 g-9.8 and g-gnuplot).
5740 g-9.8 and g-gnuplot).
5737
5741
5738 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5742 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5739 name of post-mortem files to IPython_crash_report.txt.
5743 name of post-mortem files to IPython_crash_report.txt.
5740
5744
5741 * Cleanup/update of the docs. Added all the new readline info and
5745 * Cleanup/update of the docs. Added all the new readline info and
5742 formatted all lists as 'real lists'.
5746 formatted all lists as 'real lists'.
5743
5747
5744 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5748 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5745 tab-completion options, since the full readline parse_and_bind is
5749 tab-completion options, since the full readline parse_and_bind is
5746 now accessible.
5750 now accessible.
5747
5751
5748 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5752 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5749 handling of readline options. Now users can specify any string to
5753 handling of readline options. Now users can specify any string to
5750 be passed to parse_and_bind(), as well as the delimiters to be
5754 be passed to parse_and_bind(), as well as the delimiters to be
5751 removed.
5755 removed.
5752 (InteractiveShell.__init__): Added __name__ to the global
5756 (InteractiveShell.__init__): Added __name__ to the global
5753 namespace so that things like Itpl which rely on its existence
5757 namespace so that things like Itpl which rely on its existence
5754 don't crash.
5758 don't crash.
5755 (InteractiveShell._prefilter): Defined the default with a _ so
5759 (InteractiveShell._prefilter): Defined the default with a _ so
5756 that prefilter() is easier to override, while the default one
5760 that prefilter() is easier to override, while the default one
5757 remains available.
5761 remains available.
5758
5762
5759 2002-04-18 Fernando Perez <fperez@colorado.edu>
5763 2002-04-18 Fernando Perez <fperez@colorado.edu>
5760
5764
5761 * Added information about pdb in the docs.
5765 * Added information about pdb in the docs.
5762
5766
5763 2002-04-17 Fernando Perez <fperez@colorado.edu>
5767 2002-04-17 Fernando Perez <fperez@colorado.edu>
5764
5768
5765 * IPython/ipmaker.py (make_IPython): added rc_override option to
5769 * IPython/ipmaker.py (make_IPython): added rc_override option to
5766 allow passing config options at creation time which may override
5770 allow passing config options at creation time which may override
5767 anything set in the config files or command line. This is
5771 anything set in the config files or command line. This is
5768 particularly useful for configuring embedded instances.
5772 particularly useful for configuring embedded instances.
5769
5773
5770 2002-04-15 Fernando Perez <fperez@colorado.edu>
5774 2002-04-15 Fernando Perez <fperez@colorado.edu>
5771
5775
5772 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5776 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5773 crash embedded instances because of the input cache falling out of
5777 crash embedded instances because of the input cache falling out of
5774 sync with the output counter.
5778 sync with the output counter.
5775
5779
5776 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5780 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5777 mode which calls pdb after an uncaught exception in IPython itself.
5781 mode which calls pdb after an uncaught exception in IPython itself.
5778
5782
5779 2002-04-14 Fernando Perez <fperez@colorado.edu>
5783 2002-04-14 Fernando Perez <fperez@colorado.edu>
5780
5784
5781 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5785 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5782 readline, fix it back after each call.
5786 readline, fix it back after each call.
5783
5787
5784 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5788 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5785 method to force all access via __call__(), which guarantees that
5789 method to force all access via __call__(), which guarantees that
5786 traceback references are properly deleted.
5790 traceback references are properly deleted.
5787
5791
5788 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5792 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5789 improve printing when pprint is in use.
5793 improve printing when pprint is in use.
5790
5794
5791 2002-04-13 Fernando Perez <fperez@colorado.edu>
5795 2002-04-13 Fernando Perez <fperez@colorado.edu>
5792
5796
5793 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5797 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5794 exceptions aren't caught anymore. If the user triggers one, he
5798 exceptions aren't caught anymore. If the user triggers one, he
5795 should know why he's doing it and it should go all the way up,
5799 should know why he's doing it and it should go all the way up,
5796 just like any other exception. So now @abort will fully kill the
5800 just like any other exception. So now @abort will fully kill the
5797 embedded interpreter and the embedding code (unless that happens
5801 embedded interpreter and the embedding code (unless that happens
5798 to catch SystemExit).
5802 to catch SystemExit).
5799
5803
5800 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5804 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5801 and a debugger() method to invoke the interactive pdb debugger
5805 and a debugger() method to invoke the interactive pdb debugger
5802 after printing exception information. Also added the corresponding
5806 after printing exception information. Also added the corresponding
5803 -pdb option and @pdb magic to control this feature, and updated
5807 -pdb option and @pdb magic to control this feature, and updated
5804 the docs. After a suggestion from Christopher Hart
5808 the docs. After a suggestion from Christopher Hart
5805 (hart-AT-caltech.edu).
5809 (hart-AT-caltech.edu).
5806
5810
5807 2002-04-12 Fernando Perez <fperez@colorado.edu>
5811 2002-04-12 Fernando Perez <fperez@colorado.edu>
5808
5812
5809 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5813 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5810 the exception handlers defined by the user (not the CrashHandler)
5814 the exception handlers defined by the user (not the CrashHandler)
5811 so that user exceptions don't trigger an ipython bug report.
5815 so that user exceptions don't trigger an ipython bug report.
5812
5816
5813 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5817 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5814 configurable (it should have always been so).
5818 configurable (it should have always been so).
5815
5819
5816 2002-03-26 Fernando Perez <fperez@colorado.edu>
5820 2002-03-26 Fernando Perez <fperez@colorado.edu>
5817
5821
5818 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5822 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5819 and there to fix embedding namespace issues. This should all be
5823 and there to fix embedding namespace issues. This should all be
5820 done in a more elegant way.
5824 done in a more elegant way.
5821
5825
5822 2002-03-25 Fernando Perez <fperez@colorado.edu>
5826 2002-03-25 Fernando Perez <fperez@colorado.edu>
5823
5827
5824 * IPython/genutils.py (get_home_dir): Try to make it work under
5828 * IPython/genutils.py (get_home_dir): Try to make it work under
5825 win9x also.
5829 win9x also.
5826
5830
5827 2002-03-20 Fernando Perez <fperez@colorado.edu>
5831 2002-03-20 Fernando Perez <fperez@colorado.edu>
5828
5832
5829 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5833 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5830 sys.displayhook untouched upon __init__.
5834 sys.displayhook untouched upon __init__.
5831
5835
5832 2002-03-19 Fernando Perez <fperez@colorado.edu>
5836 2002-03-19 Fernando Perez <fperez@colorado.edu>
5833
5837
5834 * Released 0.2.9 (for embedding bug, basically).
5838 * Released 0.2.9 (for embedding bug, basically).
5835
5839
5836 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5840 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5837 exceptions so that enclosing shell's state can be restored.
5841 exceptions so that enclosing shell's state can be restored.
5838
5842
5839 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5843 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5840 naming conventions in the .ipython/ dir.
5844 naming conventions in the .ipython/ dir.
5841
5845
5842 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5846 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5843 from delimiters list so filenames with - in them get expanded.
5847 from delimiters list so filenames with - in them get expanded.
5844
5848
5845 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5849 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5846 sys.displayhook not being properly restored after an embedded call.
5850 sys.displayhook not being properly restored after an embedded call.
5847
5851
5848 2002-03-18 Fernando Perez <fperez@colorado.edu>
5852 2002-03-18 Fernando Perez <fperez@colorado.edu>
5849
5853
5850 * Released 0.2.8
5854 * Released 0.2.8
5851
5855
5852 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5856 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5853 some files weren't being included in a -upgrade.
5857 some files weren't being included in a -upgrade.
5854 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5858 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5855 on' so that the first tab completes.
5859 on' so that the first tab completes.
5856 (InteractiveShell.handle_magic): fixed bug with spaces around
5860 (InteractiveShell.handle_magic): fixed bug with spaces around
5857 quotes breaking many magic commands.
5861 quotes breaking many magic commands.
5858
5862
5859 * setup.py: added note about ignoring the syntax error messages at
5863 * setup.py: added note about ignoring the syntax error messages at
5860 installation.
5864 installation.
5861
5865
5862 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5866 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5863 streamlining the gnuplot interface, now there's only one magic @gp.
5867 streamlining the gnuplot interface, now there's only one magic @gp.
5864
5868
5865 2002-03-17 Fernando Perez <fperez@colorado.edu>
5869 2002-03-17 Fernando Perez <fperez@colorado.edu>
5866
5870
5867 * IPython/UserConfig/magic_gnuplot.py: new name for the
5871 * IPython/UserConfig/magic_gnuplot.py: new name for the
5868 example-magic_pm.py file. Much enhanced system, now with a shell
5872 example-magic_pm.py file. Much enhanced system, now with a shell
5869 for communicating directly with gnuplot, one command at a time.
5873 for communicating directly with gnuplot, one command at a time.
5870
5874
5871 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5875 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5872 setting __name__=='__main__'.
5876 setting __name__=='__main__'.
5873
5877
5874 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5878 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5875 mini-shell for accessing gnuplot from inside ipython. Should
5879 mini-shell for accessing gnuplot from inside ipython. Should
5876 extend it later for grace access too. Inspired by Arnd's
5880 extend it later for grace access too. Inspired by Arnd's
5877 suggestion.
5881 suggestion.
5878
5882
5879 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5883 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5880 calling magic functions with () in their arguments. Thanks to Arnd
5884 calling magic functions with () in their arguments. Thanks to Arnd
5881 Baecker for pointing this to me.
5885 Baecker for pointing this to me.
5882
5886
5883 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5887 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5884 infinitely for integer or complex arrays (only worked with floats).
5888 infinitely for integer or complex arrays (only worked with floats).
5885
5889
5886 2002-03-16 Fernando Perez <fperez@colorado.edu>
5890 2002-03-16 Fernando Perez <fperez@colorado.edu>
5887
5891
5888 * setup.py: Merged setup and setup_windows into a single script
5892 * setup.py: Merged setup and setup_windows into a single script
5889 which properly handles things for windows users.
5893 which properly handles things for windows users.
5890
5894
5891 2002-03-15 Fernando Perez <fperez@colorado.edu>
5895 2002-03-15 Fernando Perez <fperez@colorado.edu>
5892
5896
5893 * Big change to the manual: now the magics are all automatically
5897 * Big change to the manual: now the magics are all automatically
5894 documented. This information is generated from their docstrings
5898 documented. This information is generated from their docstrings
5895 and put in a latex file included by the manual lyx file. This way
5899 and put in a latex file included by the manual lyx file. This way
5896 we get always up to date information for the magics. The manual
5900 we get always up to date information for the magics. The manual
5897 now also has proper version information, also auto-synced.
5901 now also has proper version information, also auto-synced.
5898
5902
5899 For this to work, an undocumented --magic_docstrings option was added.
5903 For this to work, an undocumented --magic_docstrings option was added.
5900
5904
5901 2002-03-13 Fernando Perez <fperez@colorado.edu>
5905 2002-03-13 Fernando Perez <fperez@colorado.edu>
5902
5906
5903 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5907 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5904 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5908 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5905
5909
5906 2002-03-12 Fernando Perez <fperez@colorado.edu>
5910 2002-03-12 Fernando Perez <fperez@colorado.edu>
5907
5911
5908 * IPython/ultraTB.py (TermColors): changed color escapes again to
5912 * IPython/ultraTB.py (TermColors): changed color escapes again to
5909 fix the (old, reintroduced) line-wrapping bug. Basically, if
5913 fix the (old, reintroduced) line-wrapping bug. Basically, if
5910 \001..\002 aren't given in the color escapes, lines get wrapped
5914 \001..\002 aren't given in the color escapes, lines get wrapped
5911 weirdly. But giving those screws up old xterms and emacs terms. So
5915 weirdly. But giving those screws up old xterms and emacs terms. So
5912 I added some logic for emacs terms to be ok, but I can't identify old
5916 I added some logic for emacs terms to be ok, but I can't identify old
5913 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5917 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5914
5918
5915 2002-03-10 Fernando Perez <fperez@colorado.edu>
5919 2002-03-10 Fernando Perez <fperez@colorado.edu>
5916
5920
5917 * IPython/usage.py (__doc__): Various documentation cleanups and
5921 * IPython/usage.py (__doc__): Various documentation cleanups and
5918 updates, both in usage docstrings and in the manual.
5922 updates, both in usage docstrings and in the manual.
5919
5923
5920 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5924 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5921 handling of caching. Set minimum acceptabe value for having a
5925 handling of caching. Set minimum acceptabe value for having a
5922 cache at 20 values.
5926 cache at 20 values.
5923
5927
5924 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5928 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5925 install_first_time function to a method, renamed it and added an
5929 install_first_time function to a method, renamed it and added an
5926 'upgrade' mode. Now people can update their config directory with
5930 'upgrade' mode. Now people can update their config directory with
5927 a simple command line switch (-upgrade, also new).
5931 a simple command line switch (-upgrade, also new).
5928
5932
5929 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5933 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5930 @file (convenient for automagic users under Python >= 2.2).
5934 @file (convenient for automagic users under Python >= 2.2).
5931 Removed @files (it seemed more like a plural than an abbrev. of
5935 Removed @files (it seemed more like a plural than an abbrev. of
5932 'file show').
5936 'file show').
5933
5937
5934 * IPython/iplib.py (install_first_time): Fixed crash if there were
5938 * IPython/iplib.py (install_first_time): Fixed crash if there were
5935 backup files ('~') in .ipython/ install directory.
5939 backup files ('~') in .ipython/ install directory.
5936
5940
5937 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5941 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5938 system. Things look fine, but these changes are fairly
5942 system. Things look fine, but these changes are fairly
5939 intrusive. Test them for a few days.
5943 intrusive. Test them for a few days.
5940
5944
5941 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5945 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5942 the prompts system. Now all in/out prompt strings are user
5946 the prompts system. Now all in/out prompt strings are user
5943 controllable. This is particularly useful for embedding, as one
5947 controllable. This is particularly useful for embedding, as one
5944 can tag embedded instances with particular prompts.
5948 can tag embedded instances with particular prompts.
5945
5949
5946 Also removed global use of sys.ps1/2, which now allows nested
5950 Also removed global use of sys.ps1/2, which now allows nested
5947 embeddings without any problems. Added command-line options for
5951 embeddings without any problems. Added command-line options for
5948 the prompt strings.
5952 the prompt strings.
5949
5953
5950 2002-03-08 Fernando Perez <fperez@colorado.edu>
5954 2002-03-08 Fernando Perez <fperez@colorado.edu>
5951
5955
5952 * IPython/UserConfig/example-embed-short.py (ipshell): added
5956 * IPython/UserConfig/example-embed-short.py (ipshell): added
5953 example file with the bare minimum code for embedding.
5957 example file with the bare minimum code for embedding.
5954
5958
5955 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5959 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5956 functionality for the embeddable shell to be activated/deactivated
5960 functionality for the embeddable shell to be activated/deactivated
5957 either globally or at each call.
5961 either globally or at each call.
5958
5962
5959 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5963 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5960 rewriting the prompt with '--->' for auto-inputs with proper
5964 rewriting the prompt with '--->' for auto-inputs with proper
5961 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5965 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5962 this is handled by the prompts class itself, as it should.
5966 this is handled by the prompts class itself, as it should.
5963
5967
5964 2002-03-05 Fernando Perez <fperez@colorado.edu>
5968 2002-03-05 Fernando Perez <fperez@colorado.edu>
5965
5969
5966 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5970 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5967 @logstart to avoid name clashes with the math log function.
5971 @logstart to avoid name clashes with the math log function.
5968
5972
5969 * Big updates to X/Emacs section of the manual.
5973 * Big updates to X/Emacs section of the manual.
5970
5974
5971 * Removed ipython_emacs. Milan explained to me how to pass
5975 * Removed ipython_emacs. Milan explained to me how to pass
5972 arguments to ipython through Emacs. Some day I'm going to end up
5976 arguments to ipython through Emacs. Some day I'm going to end up
5973 learning some lisp...
5977 learning some lisp...
5974
5978
5975 2002-03-04 Fernando Perez <fperez@colorado.edu>
5979 2002-03-04 Fernando Perez <fperez@colorado.edu>
5976
5980
5977 * IPython/ipython_emacs: Created script to be used as the
5981 * IPython/ipython_emacs: Created script to be used as the
5978 py-python-command Emacs variable so we can pass IPython
5982 py-python-command Emacs variable so we can pass IPython
5979 parameters. I can't figure out how to tell Emacs directly to pass
5983 parameters. I can't figure out how to tell Emacs directly to pass
5980 parameters to IPython, so a dummy shell script will do it.
5984 parameters to IPython, so a dummy shell script will do it.
5981
5985
5982 Other enhancements made for things to work better under Emacs'
5986 Other enhancements made for things to work better under Emacs'
5983 various types of terminals. Many thanks to Milan Zamazal
5987 various types of terminals. Many thanks to Milan Zamazal
5984 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5988 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5985
5989
5986 2002-03-01 Fernando Perez <fperez@colorado.edu>
5990 2002-03-01 Fernando Perez <fperez@colorado.edu>
5987
5991
5988 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5992 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5989 that loading of readline is now optional. This gives better
5993 that loading of readline is now optional. This gives better
5990 control to emacs users.
5994 control to emacs users.
5991
5995
5992 * IPython/ultraTB.py (__date__): Modified color escape sequences
5996 * IPython/ultraTB.py (__date__): Modified color escape sequences
5993 and now things work fine under xterm and in Emacs' term buffers
5997 and now things work fine under xterm and in Emacs' term buffers
5994 (though not shell ones). Well, in emacs you get colors, but all
5998 (though not shell ones). Well, in emacs you get colors, but all
5995 seem to be 'light' colors (no difference between dark and light
5999 seem to be 'light' colors (no difference between dark and light
5996 ones). But the garbage chars are gone, and also in xterms. It
6000 ones). But the garbage chars are gone, and also in xterms. It
5997 seems that now I'm using 'cleaner' ansi sequences.
6001 seems that now I'm using 'cleaner' ansi sequences.
5998
6002
5999 2002-02-21 Fernando Perez <fperez@colorado.edu>
6003 2002-02-21 Fernando Perez <fperez@colorado.edu>
6000
6004
6001 * Released 0.2.7 (mainly to publish the scoping fix).
6005 * Released 0.2.7 (mainly to publish the scoping fix).
6002
6006
6003 * IPython/Logger.py (Logger.logstate): added. A corresponding
6007 * IPython/Logger.py (Logger.logstate): added. A corresponding
6004 @logstate magic was created.
6008 @logstate magic was created.
6005
6009
6006 * IPython/Magic.py: fixed nested scoping problem under Python
6010 * IPython/Magic.py: fixed nested scoping problem under Python
6007 2.1.x (automagic wasn't working).
6011 2.1.x (automagic wasn't working).
6008
6012
6009 2002-02-20 Fernando Perez <fperez@colorado.edu>
6013 2002-02-20 Fernando Perez <fperez@colorado.edu>
6010
6014
6011 * Released 0.2.6.
6015 * Released 0.2.6.
6012
6016
6013 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
6017 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
6014 option so that logs can come out without any headers at all.
6018 option so that logs can come out without any headers at all.
6015
6019
6016 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
6020 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
6017 SciPy.
6021 SciPy.
6018
6022
6019 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
6023 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
6020 that embedded IPython calls don't require vars() to be explicitly
6024 that embedded IPython calls don't require vars() to be explicitly
6021 passed. Now they are extracted from the caller's frame (code
6025 passed. Now they are extracted from the caller's frame (code
6022 snatched from Eric Jones' weave). Added better documentation to
6026 snatched from Eric Jones' weave). Added better documentation to
6023 the section on embedding and the example file.
6027 the section on embedding and the example file.
6024
6028
6025 * IPython/genutils.py (page): Changed so that under emacs, it just
6029 * IPython/genutils.py (page): Changed so that under emacs, it just
6026 prints the string. You can then page up and down in the emacs
6030 prints the string. You can then page up and down in the emacs
6027 buffer itself. This is how the builtin help() works.
6031 buffer itself. This is how the builtin help() works.
6028
6032
6029 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
6033 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
6030 macro scoping: macros need to be executed in the user's namespace
6034 macro scoping: macros need to be executed in the user's namespace
6031 to work as if they had been typed by the user.
6035 to work as if they had been typed by the user.
6032
6036
6033 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6037 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6034 execute automatically (no need to type 'exec...'). They then
6038 execute automatically (no need to type 'exec...'). They then
6035 behave like 'true macros'. The printing system was also modified
6039 behave like 'true macros'. The printing system was also modified
6036 for this to work.
6040 for this to work.
6037
6041
6038 2002-02-19 Fernando Perez <fperez@colorado.edu>
6042 2002-02-19 Fernando Perez <fperez@colorado.edu>
6039
6043
6040 * IPython/genutils.py (page_file): new function for paging files
6044 * IPython/genutils.py (page_file): new function for paging files
6041 in an OS-independent way. Also necessary for file viewing to work
6045 in an OS-independent way. Also necessary for file viewing to work
6042 well inside Emacs buffers.
6046 well inside Emacs buffers.
6043 (page): Added checks for being in an emacs buffer.
6047 (page): Added checks for being in an emacs buffer.
6044 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6048 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6045 same bug in iplib.
6049 same bug in iplib.
6046
6050
6047 2002-02-18 Fernando Perez <fperez@colorado.edu>
6051 2002-02-18 Fernando Perez <fperez@colorado.edu>
6048
6052
6049 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6053 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6050 of readline so that IPython can work inside an Emacs buffer.
6054 of readline so that IPython can work inside an Emacs buffer.
6051
6055
6052 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6056 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6053 method signatures (they weren't really bugs, but it looks cleaner
6057 method signatures (they weren't really bugs, but it looks cleaner
6054 and keeps PyChecker happy).
6058 and keeps PyChecker happy).
6055
6059
6056 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6060 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6057 for implementing various user-defined hooks. Currently only
6061 for implementing various user-defined hooks. Currently only
6058 display is done.
6062 display is done.
6059
6063
6060 * IPython/Prompts.py (CachedOutput._display): changed display
6064 * IPython/Prompts.py (CachedOutput._display): changed display
6061 functions so that they can be dynamically changed by users easily.
6065 functions so that they can be dynamically changed by users easily.
6062
6066
6063 * IPython/Extensions/numeric_formats.py (num_display): added an
6067 * IPython/Extensions/numeric_formats.py (num_display): added an
6064 extension for printing NumPy arrays in flexible manners. It
6068 extension for printing NumPy arrays in flexible manners. It
6065 doesn't do anything yet, but all the structure is in
6069 doesn't do anything yet, but all the structure is in
6066 place. Ultimately the plan is to implement output format control
6070 place. Ultimately the plan is to implement output format control
6067 like in Octave.
6071 like in Octave.
6068
6072
6069 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6073 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6070 methods are found at run-time by all the automatic machinery.
6074 methods are found at run-time by all the automatic machinery.
6071
6075
6072 2002-02-17 Fernando Perez <fperez@colorado.edu>
6076 2002-02-17 Fernando Perez <fperez@colorado.edu>
6073
6077
6074 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6078 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6075 whole file a little.
6079 whole file a little.
6076
6080
6077 * ToDo: closed this document. Now there's a new_design.lyx
6081 * ToDo: closed this document. Now there's a new_design.lyx
6078 document for all new ideas. Added making a pdf of it for the
6082 document for all new ideas. Added making a pdf of it for the
6079 end-user distro.
6083 end-user distro.
6080
6084
6081 * IPython/Logger.py (Logger.switch_log): Created this to replace
6085 * IPython/Logger.py (Logger.switch_log): Created this to replace
6082 logon() and logoff(). It also fixes a nasty crash reported by
6086 logon() and logoff(). It also fixes a nasty crash reported by
6083 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6087 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6084
6088
6085 * IPython/iplib.py (complete): got auto-completion to work with
6089 * IPython/iplib.py (complete): got auto-completion to work with
6086 automagic (I had wanted this for a long time).
6090 automagic (I had wanted this for a long time).
6087
6091
6088 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6092 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6089 to @file, since file() is now a builtin and clashes with automagic
6093 to @file, since file() is now a builtin and clashes with automagic
6090 for @file.
6094 for @file.
6091
6095
6092 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6096 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6093 of this was previously in iplib, which had grown to more than 2000
6097 of this was previously in iplib, which had grown to more than 2000
6094 lines, way too long. No new functionality, but it makes managing
6098 lines, way too long. No new functionality, but it makes managing
6095 the code a bit easier.
6099 the code a bit easier.
6096
6100
6097 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6101 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6098 information to crash reports.
6102 information to crash reports.
6099
6103
6100 2002-02-12 Fernando Perez <fperez@colorado.edu>
6104 2002-02-12 Fernando Perez <fperez@colorado.edu>
6101
6105
6102 * Released 0.2.5.
6106 * Released 0.2.5.
6103
6107
6104 2002-02-11 Fernando Perez <fperez@colorado.edu>
6108 2002-02-11 Fernando Perez <fperez@colorado.edu>
6105
6109
6106 * Wrote a relatively complete Windows installer. It puts
6110 * Wrote a relatively complete Windows installer. It puts
6107 everything in place, creates Start Menu entries and fixes the
6111 everything in place, creates Start Menu entries and fixes the
6108 color issues. Nothing fancy, but it works.
6112 color issues. Nothing fancy, but it works.
6109
6113
6110 2002-02-10 Fernando Perez <fperez@colorado.edu>
6114 2002-02-10 Fernando Perez <fperez@colorado.edu>
6111
6115
6112 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6116 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6113 os.path.expanduser() call so that we can type @run ~/myfile.py and
6117 os.path.expanduser() call so that we can type @run ~/myfile.py and
6114 have thigs work as expected.
6118 have thigs work as expected.
6115
6119
6116 * IPython/genutils.py (page): fixed exception handling so things
6120 * IPython/genutils.py (page): fixed exception handling so things
6117 work both in Unix and Windows correctly. Quitting a pager triggers
6121 work both in Unix and Windows correctly. Quitting a pager triggers
6118 an IOError/broken pipe in Unix, and in windows not finding a pager
6122 an IOError/broken pipe in Unix, and in windows not finding a pager
6119 is also an IOError, so I had to actually look at the return value
6123 is also an IOError, so I had to actually look at the return value
6120 of the exception, not just the exception itself. Should be ok now.
6124 of the exception, not just the exception itself. Should be ok now.
6121
6125
6122 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6126 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6123 modified to allow case-insensitive color scheme changes.
6127 modified to allow case-insensitive color scheme changes.
6124
6128
6125 2002-02-09 Fernando Perez <fperez@colorado.edu>
6129 2002-02-09 Fernando Perez <fperez@colorado.edu>
6126
6130
6127 * IPython/genutils.py (native_line_ends): new function to leave
6131 * IPython/genutils.py (native_line_ends): new function to leave
6128 user config files with os-native line-endings.
6132 user config files with os-native line-endings.
6129
6133
6130 * README and manual updates.
6134 * README and manual updates.
6131
6135
6132 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6136 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6133 instead of StringType to catch Unicode strings.
6137 instead of StringType to catch Unicode strings.
6134
6138
6135 * IPython/genutils.py (filefind): fixed bug for paths with
6139 * IPython/genutils.py (filefind): fixed bug for paths with
6136 embedded spaces (very common in Windows).
6140 embedded spaces (very common in Windows).
6137
6141
6138 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6142 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6139 files under Windows, so that they get automatically associated
6143 files under Windows, so that they get automatically associated
6140 with a text editor. Windows makes it a pain to handle
6144 with a text editor. Windows makes it a pain to handle
6141 extension-less files.
6145 extension-less files.
6142
6146
6143 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6147 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6144 warning about readline only occur for Posix. In Windows there's no
6148 warning about readline only occur for Posix. In Windows there's no
6145 way to get readline, so why bother with the warning.
6149 way to get readline, so why bother with the warning.
6146
6150
6147 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6151 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6148 for __str__ instead of dir(self), since dir() changed in 2.2.
6152 for __str__ instead of dir(self), since dir() changed in 2.2.
6149
6153
6150 * Ported to Windows! Tested on XP, I suspect it should work fine
6154 * Ported to Windows! Tested on XP, I suspect it should work fine
6151 on NT/2000, but I don't think it will work on 98 et al. That
6155 on NT/2000, but I don't think it will work on 98 et al. That
6152 series of Windows is such a piece of junk anyway that I won't try
6156 series of Windows is such a piece of junk anyway that I won't try
6153 porting it there. The XP port was straightforward, showed a few
6157 porting it there. The XP port was straightforward, showed a few
6154 bugs here and there (fixed all), in particular some string
6158 bugs here and there (fixed all), in particular some string
6155 handling stuff which required considering Unicode strings (which
6159 handling stuff which required considering Unicode strings (which
6156 Windows uses). This is good, but hasn't been too tested :) No
6160 Windows uses). This is good, but hasn't been too tested :) No
6157 fancy installer yet, I'll put a note in the manual so people at
6161 fancy installer yet, I'll put a note in the manual so people at
6158 least make manually a shortcut.
6162 least make manually a shortcut.
6159
6163
6160 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6164 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6161 into a single one, "colors". This now controls both prompt and
6165 into a single one, "colors". This now controls both prompt and
6162 exception color schemes, and can be changed both at startup
6166 exception color schemes, and can be changed both at startup
6163 (either via command-line switches or via ipythonrc files) and at
6167 (either via command-line switches or via ipythonrc files) and at
6164 runtime, with @colors.
6168 runtime, with @colors.
6165 (Magic.magic_run): renamed @prun to @run and removed the old
6169 (Magic.magic_run): renamed @prun to @run and removed the old
6166 @run. The two were too similar to warrant keeping both.
6170 @run. The two were too similar to warrant keeping both.
6167
6171
6168 2002-02-03 Fernando Perez <fperez@colorado.edu>
6172 2002-02-03 Fernando Perez <fperez@colorado.edu>
6169
6173
6170 * IPython/iplib.py (install_first_time): Added comment on how to
6174 * IPython/iplib.py (install_first_time): Added comment on how to
6171 configure the color options for first-time users. Put a <return>
6175 configure the color options for first-time users. Put a <return>
6172 request at the end so that small-terminal users get a chance to
6176 request at the end so that small-terminal users get a chance to
6173 read the startup info.
6177 read the startup info.
6174
6178
6175 2002-01-23 Fernando Perez <fperez@colorado.edu>
6179 2002-01-23 Fernando Perez <fperez@colorado.edu>
6176
6180
6177 * IPython/iplib.py (CachedOutput.update): Changed output memory
6181 * IPython/iplib.py (CachedOutput.update): Changed output memory
6178 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6182 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6179 input history we still use _i. Did this b/c these variable are
6183 input history we still use _i. Did this b/c these variable are
6180 very commonly used in interactive work, so the less we need to
6184 very commonly used in interactive work, so the less we need to
6181 type the better off we are.
6185 type the better off we are.
6182 (Magic.magic_prun): updated @prun to better handle the namespaces
6186 (Magic.magic_prun): updated @prun to better handle the namespaces
6183 the file will run in, including a fix for __name__ not being set
6187 the file will run in, including a fix for __name__ not being set
6184 before.
6188 before.
6185
6189
6186 2002-01-20 Fernando Perez <fperez@colorado.edu>
6190 2002-01-20 Fernando Perez <fperez@colorado.edu>
6187
6191
6188 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6192 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6189 extra garbage for Python 2.2. Need to look more carefully into
6193 extra garbage for Python 2.2. Need to look more carefully into
6190 this later.
6194 this later.
6191
6195
6192 2002-01-19 Fernando Perez <fperez@colorado.edu>
6196 2002-01-19 Fernando Perez <fperez@colorado.edu>
6193
6197
6194 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6198 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6195 display SyntaxError exceptions properly formatted when they occur
6199 display SyntaxError exceptions properly formatted when they occur
6196 (they can be triggered by imported code).
6200 (they can be triggered by imported code).
6197
6201
6198 2002-01-18 Fernando Perez <fperez@colorado.edu>
6202 2002-01-18 Fernando Perez <fperez@colorado.edu>
6199
6203
6200 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6204 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6201 SyntaxError exceptions are reported nicely formatted, instead of
6205 SyntaxError exceptions are reported nicely formatted, instead of
6202 spitting out only offset information as before.
6206 spitting out only offset information as before.
6203 (Magic.magic_prun): Added the @prun function for executing
6207 (Magic.magic_prun): Added the @prun function for executing
6204 programs with command line args inside IPython.
6208 programs with command line args inside IPython.
6205
6209
6206 2002-01-16 Fernando Perez <fperez@colorado.edu>
6210 2002-01-16 Fernando Perez <fperez@colorado.edu>
6207
6211
6208 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6212 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6209 to *not* include the last item given in a range. This brings their
6213 to *not* include the last item given in a range. This brings their
6210 behavior in line with Python's slicing:
6214 behavior in line with Python's slicing:
6211 a[n1:n2] -> a[n1]...a[n2-1]
6215 a[n1:n2] -> a[n1]...a[n2-1]
6212 It may be a bit less convenient, but I prefer to stick to Python's
6216 It may be a bit less convenient, but I prefer to stick to Python's
6213 conventions *everywhere*, so users never have to wonder.
6217 conventions *everywhere*, so users never have to wonder.
6214 (Magic.magic_macro): Added @macro function to ease the creation of
6218 (Magic.magic_macro): Added @macro function to ease the creation of
6215 macros.
6219 macros.
6216
6220
6217 2002-01-05 Fernando Perez <fperez@colorado.edu>
6221 2002-01-05 Fernando Perez <fperez@colorado.edu>
6218
6222
6219 * Released 0.2.4.
6223 * Released 0.2.4.
6220
6224
6221 * IPython/iplib.py (Magic.magic_pdef):
6225 * IPython/iplib.py (Magic.magic_pdef):
6222 (InteractiveShell.safe_execfile): report magic lines and error
6226 (InteractiveShell.safe_execfile): report magic lines and error
6223 lines without line numbers so one can easily copy/paste them for
6227 lines without line numbers so one can easily copy/paste them for
6224 re-execution.
6228 re-execution.
6225
6229
6226 * Updated manual with recent changes.
6230 * Updated manual with recent changes.
6227
6231
6228 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6232 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6229 docstring printing when class? is called. Very handy for knowing
6233 docstring printing when class? is called. Very handy for knowing
6230 how to create class instances (as long as __init__ is well
6234 how to create class instances (as long as __init__ is well
6231 documented, of course :)
6235 documented, of course :)
6232 (Magic.magic_doc): print both class and constructor docstrings.
6236 (Magic.magic_doc): print both class and constructor docstrings.
6233 (Magic.magic_pdef): give constructor info if passed a class and
6237 (Magic.magic_pdef): give constructor info if passed a class and
6234 __call__ info for callable object instances.
6238 __call__ info for callable object instances.
6235
6239
6236 2002-01-04 Fernando Perez <fperez@colorado.edu>
6240 2002-01-04 Fernando Perez <fperez@colorado.edu>
6237
6241
6238 * Made deep_reload() off by default. It doesn't always work
6242 * Made deep_reload() off by default. It doesn't always work
6239 exactly as intended, so it's probably safer to have it off. It's
6243 exactly as intended, so it's probably safer to have it off. It's
6240 still available as dreload() anyway, so nothing is lost.
6244 still available as dreload() anyway, so nothing is lost.
6241
6245
6242 2002-01-02 Fernando Perez <fperez@colorado.edu>
6246 2002-01-02 Fernando Perez <fperez@colorado.edu>
6243
6247
6244 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6248 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6245 so I wanted an updated release).
6249 so I wanted an updated release).
6246
6250
6247 2001-12-27 Fernando Perez <fperez@colorado.edu>
6251 2001-12-27 Fernando Perez <fperez@colorado.edu>
6248
6252
6249 * IPython/iplib.py (InteractiveShell.interact): Added the original
6253 * IPython/iplib.py (InteractiveShell.interact): Added the original
6250 code from 'code.py' for this module in order to change the
6254 code from 'code.py' for this module in order to change the
6251 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6255 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6252 the history cache would break when the user hit Ctrl-C, and
6256 the history cache would break when the user hit Ctrl-C, and
6253 interact() offers no way to add any hooks to it.
6257 interact() offers no way to add any hooks to it.
6254
6258
6255 2001-12-23 Fernando Perez <fperez@colorado.edu>
6259 2001-12-23 Fernando Perez <fperez@colorado.edu>
6256
6260
6257 * setup.py: added check for 'MANIFEST' before trying to remove
6261 * setup.py: added check for 'MANIFEST' before trying to remove
6258 it. Thanks to Sean Reifschneider.
6262 it. Thanks to Sean Reifschneider.
6259
6263
6260 2001-12-22 Fernando Perez <fperez@colorado.edu>
6264 2001-12-22 Fernando Perez <fperez@colorado.edu>
6261
6265
6262 * Released 0.2.2.
6266 * Released 0.2.2.
6263
6267
6264 * Finished (reasonably) writing the manual. Later will add the
6268 * Finished (reasonably) writing the manual. Later will add the
6265 python-standard navigation stylesheets, but for the time being
6269 python-standard navigation stylesheets, but for the time being
6266 it's fairly complete. Distribution will include html and pdf
6270 it's fairly complete. Distribution will include html and pdf
6267 versions.
6271 versions.
6268
6272
6269 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6273 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6270 (MayaVi author).
6274 (MayaVi author).
6271
6275
6272 2001-12-21 Fernando Perez <fperez@colorado.edu>
6276 2001-12-21 Fernando Perez <fperez@colorado.edu>
6273
6277
6274 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6278 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6275 good public release, I think (with the manual and the distutils
6279 good public release, I think (with the manual and the distutils
6276 installer). The manual can use some work, but that can go
6280 installer). The manual can use some work, but that can go
6277 slowly. Otherwise I think it's quite nice for end users. Next
6281 slowly. Otherwise I think it's quite nice for end users. Next
6278 summer, rewrite the guts of it...
6282 summer, rewrite the guts of it...
6279
6283
6280 * Changed format of ipythonrc files to use whitespace as the
6284 * Changed format of ipythonrc files to use whitespace as the
6281 separator instead of an explicit '='. Cleaner.
6285 separator instead of an explicit '='. Cleaner.
6282
6286
6283 2001-12-20 Fernando Perez <fperez@colorado.edu>
6287 2001-12-20 Fernando Perez <fperez@colorado.edu>
6284
6288
6285 * Started a manual in LyX. For now it's just a quick merge of the
6289 * Started a manual in LyX. For now it's just a quick merge of the
6286 various internal docstrings and READMEs. Later it may grow into a
6290 various internal docstrings and READMEs. Later it may grow into a
6287 nice, full-blown manual.
6291 nice, full-blown manual.
6288
6292
6289 * Set up a distutils based installer. Installation should now be
6293 * Set up a distutils based installer. Installation should now be
6290 trivially simple for end-users.
6294 trivially simple for end-users.
6291
6295
6292 2001-12-11 Fernando Perez <fperez@colorado.edu>
6296 2001-12-11 Fernando Perez <fperez@colorado.edu>
6293
6297
6294 * Released 0.2.0. First public release, announced it at
6298 * Released 0.2.0. First public release, announced it at
6295 comp.lang.python. From now on, just bugfixes...
6299 comp.lang.python. From now on, just bugfixes...
6296
6300
6297 * Went through all the files, set copyright/license notices and
6301 * Went through all the files, set copyright/license notices and
6298 cleaned up things. Ready for release.
6302 cleaned up things. Ready for release.
6299
6303
6300 2001-12-10 Fernando Perez <fperez@colorado.edu>
6304 2001-12-10 Fernando Perez <fperez@colorado.edu>
6301
6305
6302 * Changed the first-time installer not to use tarfiles. It's more
6306 * Changed the first-time installer not to use tarfiles. It's more
6303 robust now and less unix-dependent. Also makes it easier for
6307 robust now and less unix-dependent. Also makes it easier for
6304 people to later upgrade versions.
6308 people to later upgrade versions.
6305
6309
6306 * Changed @exit to @abort to reflect the fact that it's pretty
6310 * Changed @exit to @abort to reflect the fact that it's pretty
6307 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6311 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6308 becomes significant only when IPyhton is embedded: in that case,
6312 becomes significant only when IPyhton is embedded: in that case,
6309 C-D closes IPython only, but @abort kills the enclosing program
6313 C-D closes IPython only, but @abort kills the enclosing program
6310 too (unless it had called IPython inside a try catching
6314 too (unless it had called IPython inside a try catching
6311 SystemExit).
6315 SystemExit).
6312
6316
6313 * Created Shell module which exposes the actuall IPython Shell
6317 * Created Shell module which exposes the actuall IPython Shell
6314 classes, currently the normal and the embeddable one. This at
6318 classes, currently the normal and the embeddable one. This at
6315 least offers a stable interface we won't need to change when
6319 least offers a stable interface we won't need to change when
6316 (later) the internals are rewritten. That rewrite will be confined
6320 (later) the internals are rewritten. That rewrite will be confined
6317 to iplib and ipmaker, but the Shell interface should remain as is.
6321 to iplib and ipmaker, but the Shell interface should remain as is.
6318
6322
6319 * Added embed module which offers an embeddable IPShell object,
6323 * Added embed module which offers an embeddable IPShell object,
6320 useful to fire up IPython *inside* a running program. Great for
6324 useful to fire up IPython *inside* a running program. Great for
6321 debugging or dynamical data analysis.
6325 debugging or dynamical data analysis.
6322
6326
6323 2001-12-08 Fernando Perez <fperez@colorado.edu>
6327 2001-12-08 Fernando Perez <fperez@colorado.edu>
6324
6328
6325 * Fixed small bug preventing seeing info from methods of defined
6329 * Fixed small bug preventing seeing info from methods of defined
6326 objects (incorrect namespace in _ofind()).
6330 objects (incorrect namespace in _ofind()).
6327
6331
6328 * Documentation cleanup. Moved the main usage docstrings to a
6332 * Documentation cleanup. Moved the main usage docstrings to a
6329 separate file, usage.py (cleaner to maintain, and hopefully in the
6333 separate file, usage.py (cleaner to maintain, and hopefully in the
6330 future some perlpod-like way of producing interactive, man and
6334 future some perlpod-like way of producing interactive, man and
6331 html docs out of it will be found).
6335 html docs out of it will be found).
6332
6336
6333 * Added @profile to see your profile at any time.
6337 * Added @profile to see your profile at any time.
6334
6338
6335 * Added @p as an alias for 'print'. It's especially convenient if
6339 * Added @p as an alias for 'print'. It's especially convenient if
6336 using automagic ('p x' prints x).
6340 using automagic ('p x' prints x).
6337
6341
6338 * Small cleanups and fixes after a pychecker run.
6342 * Small cleanups and fixes after a pychecker run.
6339
6343
6340 * Changed the @cd command to handle @cd - and @cd -<n> for
6344 * Changed the @cd command to handle @cd - and @cd -<n> for
6341 visiting any directory in _dh.
6345 visiting any directory in _dh.
6342
6346
6343 * Introduced _dh, a history of visited directories. @dhist prints
6347 * Introduced _dh, a history of visited directories. @dhist prints
6344 it out with numbers.
6348 it out with numbers.
6345
6349
6346 2001-12-07 Fernando Perez <fperez@colorado.edu>
6350 2001-12-07 Fernando Perez <fperez@colorado.edu>
6347
6351
6348 * Released 0.1.22
6352 * Released 0.1.22
6349
6353
6350 * Made initialization a bit more robust against invalid color
6354 * Made initialization a bit more robust against invalid color
6351 options in user input (exit, not traceback-crash).
6355 options in user input (exit, not traceback-crash).
6352
6356
6353 * Changed the bug crash reporter to write the report only in the
6357 * Changed the bug crash reporter to write the report only in the
6354 user's .ipython directory. That way IPython won't litter people's
6358 user's .ipython directory. That way IPython won't litter people's
6355 hard disks with crash files all over the place. Also print on
6359 hard disks with crash files all over the place. Also print on
6356 screen the necessary mail command.
6360 screen the necessary mail command.
6357
6361
6358 * With the new ultraTB, implemented LightBG color scheme for light
6362 * With the new ultraTB, implemented LightBG color scheme for light
6359 background terminals. A lot of people like white backgrounds, so I
6363 background terminals. A lot of people like white backgrounds, so I
6360 guess we should at least give them something readable.
6364 guess we should at least give them something readable.
6361
6365
6362 2001-12-06 Fernando Perez <fperez@colorado.edu>
6366 2001-12-06 Fernando Perez <fperez@colorado.edu>
6363
6367
6364 * Modified the structure of ultraTB. Now there's a proper class
6368 * Modified the structure of ultraTB. Now there's a proper class
6365 for tables of color schemes which allow adding schemes easily and
6369 for tables of color schemes which allow adding schemes easily and
6366 switching the active scheme without creating a new instance every
6370 switching the active scheme without creating a new instance every
6367 time (which was ridiculous). The syntax for creating new schemes
6371 time (which was ridiculous). The syntax for creating new schemes
6368 is also cleaner. I think ultraTB is finally done, with a clean
6372 is also cleaner. I think ultraTB is finally done, with a clean
6369 class structure. Names are also much cleaner (now there's proper
6373 class structure. Names are also much cleaner (now there's proper
6370 color tables, no need for every variable to also have 'color' in
6374 color tables, no need for every variable to also have 'color' in
6371 its name).
6375 its name).
6372
6376
6373 * Broke down genutils into separate files. Now genutils only
6377 * Broke down genutils into separate files. Now genutils only
6374 contains utility functions, and classes have been moved to their
6378 contains utility functions, and classes have been moved to their
6375 own files (they had enough independent functionality to warrant
6379 own files (they had enough independent functionality to warrant
6376 it): ConfigLoader, OutputTrap, Struct.
6380 it): ConfigLoader, OutputTrap, Struct.
6377
6381
6378 2001-12-05 Fernando Perez <fperez@colorado.edu>
6382 2001-12-05 Fernando Perez <fperez@colorado.edu>
6379
6383
6380 * IPython turns 21! Released version 0.1.21, as a candidate for
6384 * IPython turns 21! Released version 0.1.21, as a candidate for
6381 public consumption. If all goes well, release in a few days.
6385 public consumption. If all goes well, release in a few days.
6382
6386
6383 * Fixed path bug (files in Extensions/ directory wouldn't be found
6387 * Fixed path bug (files in Extensions/ directory wouldn't be found
6384 unless IPython/ was explicitly in sys.path).
6388 unless IPython/ was explicitly in sys.path).
6385
6389
6386 * Extended the FlexCompleter class as MagicCompleter to allow
6390 * Extended the FlexCompleter class as MagicCompleter to allow
6387 completion of @-starting lines.
6391 completion of @-starting lines.
6388
6392
6389 * Created __release__.py file as a central repository for release
6393 * Created __release__.py file as a central repository for release
6390 info that other files can read from.
6394 info that other files can read from.
6391
6395
6392 * Fixed small bug in logging: when logging was turned on in
6396 * Fixed small bug in logging: when logging was turned on in
6393 mid-session, old lines with special meanings (!@?) were being
6397 mid-session, old lines with special meanings (!@?) were being
6394 logged without the prepended comment, which is necessary since
6398 logged without the prepended comment, which is necessary since
6395 they are not truly valid python syntax. This should make session
6399 they are not truly valid python syntax. This should make session
6396 restores produce less errors.
6400 restores produce less errors.
6397
6401
6398 * The namespace cleanup forced me to make a FlexCompleter class
6402 * The namespace cleanup forced me to make a FlexCompleter class
6399 which is nothing but a ripoff of rlcompleter, but with selectable
6403 which is nothing but a ripoff of rlcompleter, but with selectable
6400 namespace (rlcompleter only works in __main__.__dict__). I'll try
6404 namespace (rlcompleter only works in __main__.__dict__). I'll try
6401 to submit a note to the authors to see if this change can be
6405 to submit a note to the authors to see if this change can be
6402 incorporated in future rlcompleter releases (Dec.6: done)
6406 incorporated in future rlcompleter releases (Dec.6: done)
6403
6407
6404 * More fixes to namespace handling. It was a mess! Now all
6408 * More fixes to namespace handling. It was a mess! Now all
6405 explicit references to __main__.__dict__ are gone (except when
6409 explicit references to __main__.__dict__ are gone (except when
6406 really needed) and everything is handled through the namespace
6410 really needed) and everything is handled through the namespace
6407 dicts in the IPython instance. We seem to be getting somewhere
6411 dicts in the IPython instance. We seem to be getting somewhere
6408 with this, finally...
6412 with this, finally...
6409
6413
6410 * Small documentation updates.
6414 * Small documentation updates.
6411
6415
6412 * Created the Extensions directory under IPython (with an
6416 * Created the Extensions directory under IPython (with an
6413 __init__.py). Put the PhysicalQ stuff there. This directory should
6417 __init__.py). Put the PhysicalQ stuff there. This directory should
6414 be used for all special-purpose extensions.
6418 be used for all special-purpose extensions.
6415
6419
6416 * File renaming:
6420 * File renaming:
6417 ipythonlib --> ipmaker
6421 ipythonlib --> ipmaker
6418 ipplib --> iplib
6422 ipplib --> iplib
6419 This makes a bit more sense in terms of what these files actually do.
6423 This makes a bit more sense in terms of what these files actually do.
6420
6424
6421 * Moved all the classes and functions in ipythonlib to ipplib, so
6425 * Moved all the classes and functions in ipythonlib to ipplib, so
6422 now ipythonlib only has make_IPython(). This will ease up its
6426 now ipythonlib only has make_IPython(). This will ease up its
6423 splitting in smaller functional chunks later.
6427 splitting in smaller functional chunks later.
6424
6428
6425 * Cleaned up (done, I think) output of @whos. Better column
6429 * Cleaned up (done, I think) output of @whos. Better column
6426 formatting, and now shows str(var) for as much as it can, which is
6430 formatting, and now shows str(var) for as much as it can, which is
6427 typically what one gets with a 'print var'.
6431 typically what one gets with a 'print var'.
6428
6432
6429 2001-12-04 Fernando Perez <fperez@colorado.edu>
6433 2001-12-04 Fernando Perez <fperez@colorado.edu>
6430
6434
6431 * Fixed namespace problems. Now builtin/IPyhton/user names get
6435 * Fixed namespace problems. Now builtin/IPyhton/user names get
6432 properly reported in their namespace. Internal namespace handling
6436 properly reported in their namespace. Internal namespace handling
6433 is finally getting decent (not perfect yet, but much better than
6437 is finally getting decent (not perfect yet, but much better than
6434 the ad-hoc mess we had).
6438 the ad-hoc mess we had).
6435
6439
6436 * Removed -exit option. If people just want to run a python
6440 * Removed -exit option. If people just want to run a python
6437 script, that's what the normal interpreter is for. Less
6441 script, that's what the normal interpreter is for. Less
6438 unnecessary options, less chances for bugs.
6442 unnecessary options, less chances for bugs.
6439
6443
6440 * Added a crash handler which generates a complete post-mortem if
6444 * Added a crash handler which generates a complete post-mortem if
6441 IPython crashes. This will help a lot in tracking bugs down the
6445 IPython crashes. This will help a lot in tracking bugs down the
6442 road.
6446 road.
6443
6447
6444 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6448 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6445 which were boud to functions being reassigned would bypass the
6449 which were boud to functions being reassigned would bypass the
6446 logger, breaking the sync of _il with the prompt counter. This
6450 logger, breaking the sync of _il with the prompt counter. This
6447 would then crash IPython later when a new line was logged.
6451 would then crash IPython later when a new line was logged.
6448
6452
6449 2001-12-02 Fernando Perez <fperez@colorado.edu>
6453 2001-12-02 Fernando Perez <fperez@colorado.edu>
6450
6454
6451 * Made IPython a package. This means people don't have to clutter
6455 * Made IPython a package. This means people don't have to clutter
6452 their sys.path with yet another directory. Changed the INSTALL
6456 their sys.path with yet another directory. Changed the INSTALL
6453 file accordingly.
6457 file accordingly.
6454
6458
6455 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6459 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6456 sorts its output (so @who shows it sorted) and @whos formats the
6460 sorts its output (so @who shows it sorted) and @whos formats the
6457 table according to the width of the first column. Nicer, easier to
6461 table according to the width of the first column. Nicer, easier to
6458 read. Todo: write a generic table_format() which takes a list of
6462 read. Todo: write a generic table_format() which takes a list of
6459 lists and prints it nicely formatted, with optional row/column
6463 lists and prints it nicely formatted, with optional row/column
6460 separators and proper padding and justification.
6464 separators and proper padding and justification.
6461
6465
6462 * Released 0.1.20
6466 * Released 0.1.20
6463
6467
6464 * Fixed bug in @log which would reverse the inputcache list (a
6468 * Fixed bug in @log which would reverse the inputcache list (a
6465 copy operation was missing).
6469 copy operation was missing).
6466
6470
6467 * Code cleanup. @config was changed to use page(). Better, since
6471 * Code cleanup. @config was changed to use page(). Better, since
6468 its output is always quite long.
6472 its output is always quite long.
6469
6473
6470 * Itpl is back as a dependency. I was having too many problems
6474 * Itpl is back as a dependency. I was having too many problems
6471 getting the parametric aliases to work reliably, and it's just
6475 getting the parametric aliases to work reliably, and it's just
6472 easier to code weird string operations with it than playing %()s
6476 easier to code weird string operations with it than playing %()s
6473 games. It's only ~6k, so I don't think it's too big a deal.
6477 games. It's only ~6k, so I don't think it's too big a deal.
6474
6478
6475 * Found (and fixed) a very nasty bug with history. !lines weren't
6479 * Found (and fixed) a very nasty bug with history. !lines weren't
6476 getting cached, and the out of sync caches would crash
6480 getting cached, and the out of sync caches would crash
6477 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6481 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6478 division of labor a bit better. Bug fixed, cleaner structure.
6482 division of labor a bit better. Bug fixed, cleaner structure.
6479
6483
6480 2001-12-01 Fernando Perez <fperez@colorado.edu>
6484 2001-12-01 Fernando Perez <fperez@colorado.edu>
6481
6485
6482 * Released 0.1.19
6486 * Released 0.1.19
6483
6487
6484 * Added option -n to @hist to prevent line number printing. Much
6488 * Added option -n to @hist to prevent line number printing. Much
6485 easier to copy/paste code this way.
6489 easier to copy/paste code this way.
6486
6490
6487 * Created global _il to hold the input list. Allows easy
6491 * Created global _il to hold the input list. Allows easy
6488 re-execution of blocks of code by slicing it (inspired by Janko's
6492 re-execution of blocks of code by slicing it (inspired by Janko's
6489 comment on 'macros').
6493 comment on 'macros').
6490
6494
6491 * Small fixes and doc updates.
6495 * Small fixes and doc updates.
6492
6496
6493 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6497 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6494 much too fragile with automagic. Handles properly multi-line
6498 much too fragile with automagic. Handles properly multi-line
6495 statements and takes parameters.
6499 statements and takes parameters.
6496
6500
6497 2001-11-30 Fernando Perez <fperez@colorado.edu>
6501 2001-11-30 Fernando Perez <fperez@colorado.edu>
6498
6502
6499 * Version 0.1.18 released.
6503 * Version 0.1.18 released.
6500
6504
6501 * Fixed nasty namespace bug in initial module imports.
6505 * Fixed nasty namespace bug in initial module imports.
6502
6506
6503 * Added copyright/license notes to all code files (except
6507 * Added copyright/license notes to all code files (except
6504 DPyGetOpt). For the time being, LGPL. That could change.
6508 DPyGetOpt). For the time being, LGPL. That could change.
6505
6509
6506 * Rewrote a much nicer README, updated INSTALL, cleaned up
6510 * Rewrote a much nicer README, updated INSTALL, cleaned up
6507 ipythonrc-* samples.
6511 ipythonrc-* samples.
6508
6512
6509 * Overall code/documentation cleanup. Basically ready for
6513 * Overall code/documentation cleanup. Basically ready for
6510 release. Only remaining thing: licence decision (LGPL?).
6514 release. Only remaining thing: licence decision (LGPL?).
6511
6515
6512 * Converted load_config to a class, ConfigLoader. Now recursion
6516 * Converted load_config to a class, ConfigLoader. Now recursion
6513 control is better organized. Doesn't include the same file twice.
6517 control is better organized. Doesn't include the same file twice.
6514
6518
6515 2001-11-29 Fernando Perez <fperez@colorado.edu>
6519 2001-11-29 Fernando Perez <fperez@colorado.edu>
6516
6520
6517 * Got input history working. Changed output history variables from
6521 * Got input history working. Changed output history variables from
6518 _p to _o so that _i is for input and _o for output. Just cleaner
6522 _p to _o so that _i is for input and _o for output. Just cleaner
6519 convention.
6523 convention.
6520
6524
6521 * Implemented parametric aliases. This pretty much allows the
6525 * Implemented parametric aliases. This pretty much allows the
6522 alias system to offer full-blown shell convenience, I think.
6526 alias system to offer full-blown shell convenience, I think.
6523
6527
6524 * Version 0.1.17 released, 0.1.18 opened.
6528 * Version 0.1.17 released, 0.1.18 opened.
6525
6529
6526 * dot_ipython/ipythonrc (alias): added documentation.
6530 * dot_ipython/ipythonrc (alias): added documentation.
6527 (xcolor): Fixed small bug (xcolors -> xcolor)
6531 (xcolor): Fixed small bug (xcolors -> xcolor)
6528
6532
6529 * Changed the alias system. Now alias is a magic command to define
6533 * Changed the alias system. Now alias is a magic command to define
6530 aliases just like the shell. Rationale: the builtin magics should
6534 aliases just like the shell. Rationale: the builtin magics should
6531 be there for things deeply connected to IPython's
6535 be there for things deeply connected to IPython's
6532 architecture. And this is a much lighter system for what I think
6536 architecture. And this is a much lighter system for what I think
6533 is the really important feature: allowing users to define quickly
6537 is the really important feature: allowing users to define quickly
6534 magics that will do shell things for them, so they can customize
6538 magics that will do shell things for them, so they can customize
6535 IPython easily to match their work habits. If someone is really
6539 IPython easily to match their work habits. If someone is really
6536 desperate to have another name for a builtin alias, they can
6540 desperate to have another name for a builtin alias, they can
6537 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6541 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6538 works.
6542 works.
6539
6543
6540 2001-11-28 Fernando Perez <fperez@colorado.edu>
6544 2001-11-28 Fernando Perez <fperez@colorado.edu>
6541
6545
6542 * Changed @file so that it opens the source file at the proper
6546 * Changed @file so that it opens the source file at the proper
6543 line. Since it uses less, if your EDITOR environment is
6547 line. Since it uses less, if your EDITOR environment is
6544 configured, typing v will immediately open your editor of choice
6548 configured, typing v will immediately open your editor of choice
6545 right at the line where the object is defined. Not as quick as
6549 right at the line where the object is defined. Not as quick as
6546 having a direct @edit command, but for all intents and purposes it
6550 having a direct @edit command, but for all intents and purposes it
6547 works. And I don't have to worry about writing @edit to deal with
6551 works. And I don't have to worry about writing @edit to deal with
6548 all the editors, less does that.
6552 all the editors, less does that.
6549
6553
6550 * Version 0.1.16 released, 0.1.17 opened.
6554 * Version 0.1.16 released, 0.1.17 opened.
6551
6555
6552 * Fixed some nasty bugs in the page/page_dumb combo that could
6556 * Fixed some nasty bugs in the page/page_dumb combo that could
6553 crash IPython.
6557 crash IPython.
6554
6558
6555 2001-11-27 Fernando Perez <fperez@colorado.edu>
6559 2001-11-27 Fernando Perez <fperez@colorado.edu>
6556
6560
6557 * Version 0.1.15 released, 0.1.16 opened.
6561 * Version 0.1.15 released, 0.1.16 opened.
6558
6562
6559 * Finally got ? and ?? to work for undefined things: now it's
6563 * Finally got ? and ?? to work for undefined things: now it's
6560 possible to type {}.get? and get information about the get method
6564 possible to type {}.get? and get information about the get method
6561 of dicts, or os.path? even if only os is defined (so technically
6565 of dicts, or os.path? even if only os is defined (so technically
6562 os.path isn't). Works at any level. For example, after import os,
6566 os.path isn't). Works at any level. For example, after import os,
6563 os?, os.path?, os.path.abspath? all work. This is great, took some
6567 os?, os.path?, os.path.abspath? all work. This is great, took some
6564 work in _ofind.
6568 work in _ofind.
6565
6569
6566 * Fixed more bugs with logging. The sanest way to do it was to add
6570 * Fixed more bugs with logging. The sanest way to do it was to add
6567 to @log a 'mode' parameter. Killed two in one shot (this mode
6571 to @log a 'mode' parameter. Killed two in one shot (this mode
6568 option was a request of Janko's). I think it's finally clean
6572 option was a request of Janko's). I think it's finally clean
6569 (famous last words).
6573 (famous last words).
6570
6574
6571 * Added a page_dumb() pager which does a decent job of paging on
6575 * Added a page_dumb() pager which does a decent job of paging on
6572 screen, if better things (like less) aren't available. One less
6576 screen, if better things (like less) aren't available. One less
6573 unix dependency (someday maybe somebody will port this to
6577 unix dependency (someday maybe somebody will port this to
6574 windows).
6578 windows).
6575
6579
6576 * Fixed problem in magic_log: would lock of logging out if log
6580 * Fixed problem in magic_log: would lock of logging out if log
6577 creation failed (because it would still think it had succeeded).
6581 creation failed (because it would still think it had succeeded).
6578
6582
6579 * Improved the page() function using curses to auto-detect screen
6583 * Improved the page() function using curses to auto-detect screen
6580 size. Now it can make a much better decision on whether to print
6584 size. Now it can make a much better decision on whether to print
6581 or page a string. Option screen_length was modified: a value 0
6585 or page a string. Option screen_length was modified: a value 0
6582 means auto-detect, and that's the default now.
6586 means auto-detect, and that's the default now.
6583
6587
6584 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6588 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6585 go out. I'll test it for a few days, then talk to Janko about
6589 go out. I'll test it for a few days, then talk to Janko about
6586 licences and announce it.
6590 licences and announce it.
6587
6591
6588 * Fixed the length of the auto-generated ---> prompt which appears
6592 * Fixed the length of the auto-generated ---> prompt which appears
6589 for auto-parens and auto-quotes. Getting this right isn't trivial,
6593 for auto-parens and auto-quotes. Getting this right isn't trivial,
6590 with all the color escapes, different prompt types and optional
6594 with all the color escapes, different prompt types and optional
6591 separators. But it seems to be working in all the combinations.
6595 separators. But it seems to be working in all the combinations.
6592
6596
6593 2001-11-26 Fernando Perez <fperez@colorado.edu>
6597 2001-11-26 Fernando Perez <fperez@colorado.edu>
6594
6598
6595 * Wrote a regexp filter to get option types from the option names
6599 * Wrote a regexp filter to get option types from the option names
6596 string. This eliminates the need to manually keep two duplicate
6600 string. This eliminates the need to manually keep two duplicate
6597 lists.
6601 lists.
6598
6602
6599 * Removed the unneeded check_option_names. Now options are handled
6603 * Removed the unneeded check_option_names. Now options are handled
6600 in a much saner manner and it's easy to visually check that things
6604 in a much saner manner and it's easy to visually check that things
6601 are ok.
6605 are ok.
6602
6606
6603 * Updated version numbers on all files I modified to carry a
6607 * Updated version numbers on all files I modified to carry a
6604 notice so Janko and Nathan have clear version markers.
6608 notice so Janko and Nathan have clear version markers.
6605
6609
6606 * Updated docstring for ultraTB with my changes. I should send
6610 * Updated docstring for ultraTB with my changes. I should send
6607 this to Nathan.
6611 this to Nathan.
6608
6612
6609 * Lots of small fixes. Ran everything through pychecker again.
6613 * Lots of small fixes. Ran everything through pychecker again.
6610
6614
6611 * Made loading of deep_reload an cmd line option. If it's not too
6615 * Made loading of deep_reload an cmd line option. If it's not too
6612 kosher, now people can just disable it. With -nodeep_reload it's
6616 kosher, now people can just disable it. With -nodeep_reload it's
6613 still available as dreload(), it just won't overwrite reload().
6617 still available as dreload(), it just won't overwrite reload().
6614
6618
6615 * Moved many options to the no| form (-opt and -noopt
6619 * Moved many options to the no| form (-opt and -noopt
6616 accepted). Cleaner.
6620 accepted). Cleaner.
6617
6621
6618 * Changed magic_log so that if called with no parameters, it uses
6622 * Changed magic_log so that if called with no parameters, it uses
6619 'rotate' mode. That way auto-generated logs aren't automatically
6623 'rotate' mode. That way auto-generated logs aren't automatically
6620 over-written. For normal logs, now a backup is made if it exists
6624 over-written. For normal logs, now a backup is made if it exists
6621 (only 1 level of backups). A new 'backup' mode was added to the
6625 (only 1 level of backups). A new 'backup' mode was added to the
6622 Logger class to support this. This was a request by Janko.
6626 Logger class to support this. This was a request by Janko.
6623
6627
6624 * Added @logoff/@logon to stop/restart an active log.
6628 * Added @logoff/@logon to stop/restart an active log.
6625
6629
6626 * Fixed a lot of bugs in log saving/replay. It was pretty
6630 * Fixed a lot of bugs in log saving/replay. It was pretty
6627 broken. Now special lines (!@,/) appear properly in the command
6631 broken. Now special lines (!@,/) appear properly in the command
6628 history after a log replay.
6632 history after a log replay.
6629
6633
6630 * Tried and failed to implement full session saving via pickle. My
6634 * Tried and failed to implement full session saving via pickle. My
6631 idea was to pickle __main__.__dict__, but modules can't be
6635 idea was to pickle __main__.__dict__, but modules can't be
6632 pickled. This would be a better alternative to replaying logs, but
6636 pickled. This would be a better alternative to replaying logs, but
6633 seems quite tricky to get to work. Changed -session to be called
6637 seems quite tricky to get to work. Changed -session to be called
6634 -logplay, which more accurately reflects what it does. And if we
6638 -logplay, which more accurately reflects what it does. And if we
6635 ever get real session saving working, -session is now available.
6639 ever get real session saving working, -session is now available.
6636
6640
6637 * Implemented color schemes for prompts also. As for tracebacks,
6641 * Implemented color schemes for prompts also. As for tracebacks,
6638 currently only NoColor and Linux are supported. But now the
6642 currently only NoColor and Linux are supported. But now the
6639 infrastructure is in place, based on a generic ColorScheme
6643 infrastructure is in place, based on a generic ColorScheme
6640 class. So writing and activating new schemes both for the prompts
6644 class. So writing and activating new schemes both for the prompts
6641 and the tracebacks should be straightforward.
6645 and the tracebacks should be straightforward.
6642
6646
6643 * Version 0.1.13 released, 0.1.14 opened.
6647 * Version 0.1.13 released, 0.1.14 opened.
6644
6648
6645 * Changed handling of options for output cache. Now counter is
6649 * Changed handling of options for output cache. Now counter is
6646 hardwired starting at 1 and one specifies the maximum number of
6650 hardwired starting at 1 and one specifies the maximum number of
6647 entries *in the outcache* (not the max prompt counter). This is
6651 entries *in the outcache* (not the max prompt counter). This is
6648 much better, since many statements won't increase the cache
6652 much better, since many statements won't increase the cache
6649 count. It also eliminated some confusing options, now there's only
6653 count. It also eliminated some confusing options, now there's only
6650 one: cache_size.
6654 one: cache_size.
6651
6655
6652 * Added 'alias' magic function and magic_alias option in the
6656 * Added 'alias' magic function and magic_alias option in the
6653 ipythonrc file. Now the user can easily define whatever names he
6657 ipythonrc file. Now the user can easily define whatever names he
6654 wants for the magic functions without having to play weird
6658 wants for the magic functions without having to play weird
6655 namespace games. This gives IPython a real shell-like feel.
6659 namespace games. This gives IPython a real shell-like feel.
6656
6660
6657 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6661 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6658 @ or not).
6662 @ or not).
6659
6663
6660 This was one of the last remaining 'visible' bugs (that I know
6664 This was one of the last remaining 'visible' bugs (that I know
6661 of). I think if I can clean up the session loading so it works
6665 of). I think if I can clean up the session loading so it works
6662 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6666 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6663 about licensing).
6667 about licensing).
6664
6668
6665 2001-11-25 Fernando Perez <fperez@colorado.edu>
6669 2001-11-25 Fernando Perez <fperez@colorado.edu>
6666
6670
6667 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6671 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6668 there's a cleaner distinction between what ? and ?? show.
6672 there's a cleaner distinction between what ? and ?? show.
6669
6673
6670 * Added screen_length option. Now the user can define his own
6674 * Added screen_length option. Now the user can define his own
6671 screen size for page() operations.
6675 screen size for page() operations.
6672
6676
6673 * Implemented magic shell-like functions with automatic code
6677 * Implemented magic shell-like functions with automatic code
6674 generation. Now adding another function is just a matter of adding
6678 generation. Now adding another function is just a matter of adding
6675 an entry to a dict, and the function is dynamically generated at
6679 an entry to a dict, and the function is dynamically generated at
6676 run-time. Python has some really cool features!
6680 run-time. Python has some really cool features!
6677
6681
6678 * Renamed many options to cleanup conventions a little. Now all
6682 * Renamed many options to cleanup conventions a little. Now all
6679 are lowercase, and only underscores where needed. Also in the code
6683 are lowercase, and only underscores where needed. Also in the code
6680 option name tables are clearer.
6684 option name tables are clearer.
6681
6685
6682 * Changed prompts a little. Now input is 'In [n]:' instead of
6686 * Changed prompts a little. Now input is 'In [n]:' instead of
6683 'In[n]:='. This allows it the numbers to be aligned with the
6687 'In[n]:='. This allows it the numbers to be aligned with the
6684 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6688 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6685 Python (it was a Mathematica thing). The '...' continuation prompt
6689 Python (it was a Mathematica thing). The '...' continuation prompt
6686 was also changed a little to align better.
6690 was also changed a little to align better.
6687
6691
6688 * Fixed bug when flushing output cache. Not all _p<n> variables
6692 * Fixed bug when flushing output cache. Not all _p<n> variables
6689 exist, so their deletion needs to be wrapped in a try:
6693 exist, so their deletion needs to be wrapped in a try:
6690
6694
6691 * Figured out how to properly use inspect.formatargspec() (it
6695 * Figured out how to properly use inspect.formatargspec() (it
6692 requires the args preceded by *). So I removed all the code from
6696 requires the args preceded by *). So I removed all the code from
6693 _get_pdef in Magic, which was just replicating that.
6697 _get_pdef in Magic, which was just replicating that.
6694
6698
6695 * Added test to prefilter to allow redefining magic function names
6699 * Added test to prefilter to allow redefining magic function names
6696 as variables. This is ok, since the @ form is always available,
6700 as variables. This is ok, since the @ form is always available,
6697 but whe should allow the user to define a variable called 'ls' if
6701 but whe should allow the user to define a variable called 'ls' if
6698 he needs it.
6702 he needs it.
6699
6703
6700 * Moved the ToDo information from README into a separate ToDo.
6704 * Moved the ToDo information from README into a separate ToDo.
6701
6705
6702 * General code cleanup and small bugfixes. I think it's close to a
6706 * General code cleanup and small bugfixes. I think it's close to a
6703 state where it can be released, obviously with a big 'beta'
6707 state where it can be released, obviously with a big 'beta'
6704 warning on it.
6708 warning on it.
6705
6709
6706 * Got the magic function split to work. Now all magics are defined
6710 * Got the magic function split to work. Now all magics are defined
6707 in a separate class. It just organizes things a bit, and now
6711 in a separate class. It just organizes things a bit, and now
6708 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6712 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6709 was too long).
6713 was too long).
6710
6714
6711 * Changed @clear to @reset to avoid potential confusions with
6715 * Changed @clear to @reset to avoid potential confusions with
6712 the shell command clear. Also renamed @cl to @clear, which does
6716 the shell command clear. Also renamed @cl to @clear, which does
6713 exactly what people expect it to from their shell experience.
6717 exactly what people expect it to from their shell experience.
6714
6718
6715 Added a check to the @reset command (since it's so
6719 Added a check to the @reset command (since it's so
6716 destructive, it's probably a good idea to ask for confirmation).
6720 destructive, it's probably a good idea to ask for confirmation).
6717 But now reset only works for full namespace resetting. Since the
6721 But now reset only works for full namespace resetting. Since the
6718 del keyword is already there for deleting a few specific
6722 del keyword is already there for deleting a few specific
6719 variables, I don't see the point of having a redundant magic
6723 variables, I don't see the point of having a redundant magic
6720 function for the same task.
6724 function for the same task.
6721
6725
6722 2001-11-24 Fernando Perez <fperez@colorado.edu>
6726 2001-11-24 Fernando Perez <fperez@colorado.edu>
6723
6727
6724 * Updated the builtin docs (esp. the ? ones).
6728 * Updated the builtin docs (esp. the ? ones).
6725
6729
6726 * Ran all the code through pychecker. Not terribly impressed with
6730 * Ran all the code through pychecker. Not terribly impressed with
6727 it: lots of spurious warnings and didn't really find anything of
6731 it: lots of spurious warnings and didn't really find anything of
6728 substance (just a few modules being imported and not used).
6732 substance (just a few modules being imported and not used).
6729
6733
6730 * Implemented the new ultraTB functionality into IPython. New
6734 * Implemented the new ultraTB functionality into IPython. New
6731 option: xcolors. This chooses color scheme. xmode now only selects
6735 option: xcolors. This chooses color scheme. xmode now only selects
6732 between Plain and Verbose. Better orthogonality.
6736 between Plain and Verbose. Better orthogonality.
6733
6737
6734 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6738 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6735 mode and color scheme for the exception handlers. Now it's
6739 mode and color scheme for the exception handlers. Now it's
6736 possible to have the verbose traceback with no coloring.
6740 possible to have the verbose traceback with no coloring.
6737
6741
6738 2001-11-23 Fernando Perez <fperez@colorado.edu>
6742 2001-11-23 Fernando Perez <fperez@colorado.edu>
6739
6743
6740 * Version 0.1.12 released, 0.1.13 opened.
6744 * Version 0.1.12 released, 0.1.13 opened.
6741
6745
6742 * Removed option to set auto-quote and auto-paren escapes by
6746 * Removed option to set auto-quote and auto-paren escapes by
6743 user. The chances of breaking valid syntax are just too high. If
6747 user. The chances of breaking valid syntax are just too high. If
6744 someone *really* wants, they can always dig into the code.
6748 someone *really* wants, they can always dig into the code.
6745
6749
6746 * Made prompt separators configurable.
6750 * Made prompt separators configurable.
6747
6751
6748 2001-11-22 Fernando Perez <fperez@colorado.edu>
6752 2001-11-22 Fernando Perez <fperez@colorado.edu>
6749
6753
6750 * Small bugfixes in many places.
6754 * Small bugfixes in many places.
6751
6755
6752 * Removed the MyCompleter class from ipplib. It seemed redundant
6756 * Removed the MyCompleter class from ipplib. It seemed redundant
6753 with the C-p,C-n history search functionality. Less code to
6757 with the C-p,C-n history search functionality. Less code to
6754 maintain.
6758 maintain.
6755
6759
6756 * Moved all the original ipython.py code into ipythonlib.py. Right
6760 * Moved all the original ipython.py code into ipythonlib.py. Right
6757 now it's just one big dump into a function called make_IPython, so
6761 now it's just one big dump into a function called make_IPython, so
6758 no real modularity has been gained. But at least it makes the
6762 no real modularity has been gained. But at least it makes the
6759 wrapper script tiny, and since ipythonlib is a module, it gets
6763 wrapper script tiny, and since ipythonlib is a module, it gets
6760 compiled and startup is much faster.
6764 compiled and startup is much faster.
6761
6765
6762 This is a reasobably 'deep' change, so we should test it for a
6766 This is a reasobably 'deep' change, so we should test it for a
6763 while without messing too much more with the code.
6767 while without messing too much more with the code.
6764
6768
6765 2001-11-21 Fernando Perez <fperez@colorado.edu>
6769 2001-11-21 Fernando Perez <fperez@colorado.edu>
6766
6770
6767 * Version 0.1.11 released, 0.1.12 opened for further work.
6771 * Version 0.1.11 released, 0.1.12 opened for further work.
6768
6772
6769 * Removed dependency on Itpl. It was only needed in one place. It
6773 * Removed dependency on Itpl. It was only needed in one place. It
6770 would be nice if this became part of python, though. It makes life
6774 would be nice if this became part of python, though. It makes life
6771 *a lot* easier in some cases.
6775 *a lot* easier in some cases.
6772
6776
6773 * Simplified the prefilter code a bit. Now all handlers are
6777 * Simplified the prefilter code a bit. Now all handlers are
6774 expected to explicitly return a value (at least a blank string).
6778 expected to explicitly return a value (at least a blank string).
6775
6779
6776 * Heavy edits in ipplib. Removed the help system altogether. Now
6780 * Heavy edits in ipplib. Removed the help system altogether. Now
6777 obj?/?? is used for inspecting objects, a magic @doc prints
6781 obj?/?? is used for inspecting objects, a magic @doc prints
6778 docstrings, and full-blown Python help is accessed via the 'help'
6782 docstrings, and full-blown Python help is accessed via the 'help'
6779 keyword. This cleans up a lot of code (less to maintain) and does
6783 keyword. This cleans up a lot of code (less to maintain) and does
6780 the job. Since 'help' is now a standard Python component, might as
6784 the job. Since 'help' is now a standard Python component, might as
6781 well use it and remove duplicate functionality.
6785 well use it and remove duplicate functionality.
6782
6786
6783 Also removed the option to use ipplib as a standalone program. By
6787 Also removed the option to use ipplib as a standalone program. By
6784 now it's too dependent on other parts of IPython to function alone.
6788 now it's too dependent on other parts of IPython to function alone.
6785
6789
6786 * Fixed bug in genutils.pager. It would crash if the pager was
6790 * Fixed bug in genutils.pager. It would crash if the pager was
6787 exited immediately after opening (broken pipe).
6791 exited immediately after opening (broken pipe).
6788
6792
6789 * Trimmed down the VerboseTB reporting a little. The header is
6793 * Trimmed down the VerboseTB reporting a little. The header is
6790 much shorter now and the repeated exception arguments at the end
6794 much shorter now and the repeated exception arguments at the end
6791 have been removed. For interactive use the old header seemed a bit
6795 have been removed. For interactive use the old header seemed a bit
6792 excessive.
6796 excessive.
6793
6797
6794 * Fixed small bug in output of @whos for variables with multi-word
6798 * Fixed small bug in output of @whos for variables with multi-word
6795 types (only first word was displayed).
6799 types (only first word was displayed).
6796
6800
6797 2001-11-17 Fernando Perez <fperez@colorado.edu>
6801 2001-11-17 Fernando Perez <fperez@colorado.edu>
6798
6802
6799 * Version 0.1.10 released, 0.1.11 opened for further work.
6803 * Version 0.1.10 released, 0.1.11 opened for further work.
6800
6804
6801 * Modified dirs and friends. dirs now *returns* the stack (not
6805 * Modified dirs and friends. dirs now *returns* the stack (not
6802 prints), so one can manipulate it as a variable. Convenient to
6806 prints), so one can manipulate it as a variable. Convenient to
6803 travel along many directories.
6807 travel along many directories.
6804
6808
6805 * Fixed bug in magic_pdef: would only work with functions with
6809 * Fixed bug in magic_pdef: would only work with functions with
6806 arguments with default values.
6810 arguments with default values.
6807
6811
6808 2001-11-14 Fernando Perez <fperez@colorado.edu>
6812 2001-11-14 Fernando Perez <fperez@colorado.edu>
6809
6813
6810 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6814 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6811 example with IPython. Various other minor fixes and cleanups.
6815 example with IPython. Various other minor fixes and cleanups.
6812
6816
6813 * Version 0.1.9 released, 0.1.10 opened for further work.
6817 * Version 0.1.9 released, 0.1.10 opened for further work.
6814
6818
6815 * Added sys.path to the list of directories searched in the
6819 * Added sys.path to the list of directories searched in the
6816 execfile= option. It used to be the current directory and the
6820 execfile= option. It used to be the current directory and the
6817 user's IPYTHONDIR only.
6821 user's IPYTHONDIR only.
6818
6822
6819 2001-11-13 Fernando Perez <fperez@colorado.edu>
6823 2001-11-13 Fernando Perez <fperez@colorado.edu>
6820
6824
6821 * Reinstated the raw_input/prefilter separation that Janko had
6825 * Reinstated the raw_input/prefilter separation that Janko had
6822 initially. This gives a more convenient setup for extending the
6826 initially. This gives a more convenient setup for extending the
6823 pre-processor from the outside: raw_input always gets a string,
6827 pre-processor from the outside: raw_input always gets a string,
6824 and prefilter has to process it. We can then redefine prefilter
6828 and prefilter has to process it. We can then redefine prefilter
6825 from the outside and implement extensions for special
6829 from the outside and implement extensions for special
6826 purposes.
6830 purposes.
6827
6831
6828 Today I got one for inputting PhysicalQuantity objects
6832 Today I got one for inputting PhysicalQuantity objects
6829 (from Scientific) without needing any function calls at
6833 (from Scientific) without needing any function calls at
6830 all. Extremely convenient, and it's all done as a user-level
6834 all. Extremely convenient, and it's all done as a user-level
6831 extension (no IPython code was touched). Now instead of:
6835 extension (no IPython code was touched). Now instead of:
6832 a = PhysicalQuantity(4.2,'m/s**2')
6836 a = PhysicalQuantity(4.2,'m/s**2')
6833 one can simply say
6837 one can simply say
6834 a = 4.2 m/s**2
6838 a = 4.2 m/s**2
6835 or even
6839 or even
6836 a = 4.2 m/s^2
6840 a = 4.2 m/s^2
6837
6841
6838 I use this, but it's also a proof of concept: IPython really is
6842 I use this, but it's also a proof of concept: IPython really is
6839 fully user-extensible, even at the level of the parsing of the
6843 fully user-extensible, even at the level of the parsing of the
6840 command line. It's not trivial, but it's perfectly doable.
6844 command line. It's not trivial, but it's perfectly doable.
6841
6845
6842 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6846 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6843 the problem of modules being loaded in the inverse order in which
6847 the problem of modules being loaded in the inverse order in which
6844 they were defined in
6848 they were defined in
6845
6849
6846 * Version 0.1.8 released, 0.1.9 opened for further work.
6850 * Version 0.1.8 released, 0.1.9 opened for further work.
6847
6851
6848 * Added magics pdef, source and file. They respectively show the
6852 * Added magics pdef, source and file. They respectively show the
6849 definition line ('prototype' in C), source code and full python
6853 definition line ('prototype' in C), source code and full python
6850 file for any callable object. The object inspector oinfo uses
6854 file for any callable object. The object inspector oinfo uses
6851 these to show the same information.
6855 these to show the same information.
6852
6856
6853 * Version 0.1.7 released, 0.1.8 opened for further work.
6857 * Version 0.1.7 released, 0.1.8 opened for further work.
6854
6858
6855 * Separated all the magic functions into a class called Magic. The
6859 * Separated all the magic functions into a class called Magic. The
6856 InteractiveShell class was becoming too big for Xemacs to handle
6860 InteractiveShell class was becoming too big for Xemacs to handle
6857 (de-indenting a line would lock it up for 10 seconds while it
6861 (de-indenting a line would lock it up for 10 seconds while it
6858 backtracked on the whole class!)
6862 backtracked on the whole class!)
6859
6863
6860 FIXME: didn't work. It can be done, but right now namespaces are
6864 FIXME: didn't work. It can be done, but right now namespaces are
6861 all messed up. Do it later (reverted it for now, so at least
6865 all messed up. Do it later (reverted it for now, so at least
6862 everything works as before).
6866 everything works as before).
6863
6867
6864 * Got the object introspection system (magic_oinfo) working! I
6868 * Got the object introspection system (magic_oinfo) working! I
6865 think this is pretty much ready for release to Janko, so he can
6869 think this is pretty much ready for release to Janko, so he can
6866 test it for a while and then announce it. Pretty much 100% of what
6870 test it for a while and then announce it. Pretty much 100% of what
6867 I wanted for the 'phase 1' release is ready. Happy, tired.
6871 I wanted for the 'phase 1' release is ready. Happy, tired.
6868
6872
6869 2001-11-12 Fernando Perez <fperez@colorado.edu>
6873 2001-11-12 Fernando Perez <fperez@colorado.edu>
6870
6874
6871 * Version 0.1.6 released, 0.1.7 opened for further work.
6875 * Version 0.1.6 released, 0.1.7 opened for further work.
6872
6876
6873 * Fixed bug in printing: it used to test for truth before
6877 * Fixed bug in printing: it used to test for truth before
6874 printing, so 0 wouldn't print. Now checks for None.
6878 printing, so 0 wouldn't print. Now checks for None.
6875
6879
6876 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6880 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6877 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6881 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6878 reaches by hand into the outputcache. Think of a better way to do
6882 reaches by hand into the outputcache. Think of a better way to do
6879 this later.
6883 this later.
6880
6884
6881 * Various small fixes thanks to Nathan's comments.
6885 * Various small fixes thanks to Nathan's comments.
6882
6886
6883 * Changed magic_pprint to magic_Pprint. This way it doesn't
6887 * Changed magic_pprint to magic_Pprint. This way it doesn't
6884 collide with pprint() and the name is consistent with the command
6888 collide with pprint() and the name is consistent with the command
6885 line option.
6889 line option.
6886
6890
6887 * Changed prompt counter behavior to be fully like
6891 * Changed prompt counter behavior to be fully like
6888 Mathematica's. That is, even input that doesn't return a result
6892 Mathematica's. That is, even input that doesn't return a result
6889 raises the prompt counter. The old behavior was kind of confusing
6893 raises the prompt counter. The old behavior was kind of confusing
6890 (getting the same prompt number several times if the operation
6894 (getting the same prompt number several times if the operation
6891 didn't return a result).
6895 didn't return a result).
6892
6896
6893 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6897 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6894
6898
6895 * Fixed -Classic mode (wasn't working anymore).
6899 * Fixed -Classic mode (wasn't working anymore).
6896
6900
6897 * Added colored prompts using Nathan's new code. Colors are
6901 * Added colored prompts using Nathan's new code. Colors are
6898 currently hardwired, they can be user-configurable. For
6902 currently hardwired, they can be user-configurable. For
6899 developers, they can be chosen in file ipythonlib.py, at the
6903 developers, they can be chosen in file ipythonlib.py, at the
6900 beginning of the CachedOutput class def.
6904 beginning of the CachedOutput class def.
6901
6905
6902 2001-11-11 Fernando Perez <fperez@colorado.edu>
6906 2001-11-11 Fernando Perez <fperez@colorado.edu>
6903
6907
6904 * Version 0.1.5 released, 0.1.6 opened for further work.
6908 * Version 0.1.5 released, 0.1.6 opened for further work.
6905
6909
6906 * Changed magic_env to *return* the environment as a dict (not to
6910 * Changed magic_env to *return* the environment as a dict (not to
6907 print it). This way it prints, but it can also be processed.
6911 print it). This way it prints, but it can also be processed.
6908
6912
6909 * Added Verbose exception reporting to interactive
6913 * Added Verbose exception reporting to interactive
6910 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6914 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6911 traceback. Had to make some changes to the ultraTB file. This is
6915 traceback. Had to make some changes to the ultraTB file. This is
6912 probably the last 'big' thing in my mental todo list. This ties
6916 probably the last 'big' thing in my mental todo list. This ties
6913 in with the next entry:
6917 in with the next entry:
6914
6918
6915 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6919 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6916 has to specify is Plain, Color or Verbose for all exception
6920 has to specify is Plain, Color or Verbose for all exception
6917 handling.
6921 handling.
6918
6922
6919 * Removed ShellServices option. All this can really be done via
6923 * Removed ShellServices option. All this can really be done via
6920 the magic system. It's easier to extend, cleaner and has automatic
6924 the magic system. It's easier to extend, cleaner and has automatic
6921 namespace protection and documentation.
6925 namespace protection and documentation.
6922
6926
6923 2001-11-09 Fernando Perez <fperez@colorado.edu>
6927 2001-11-09 Fernando Perez <fperez@colorado.edu>
6924
6928
6925 * Fixed bug in output cache flushing (missing parameter to
6929 * Fixed bug in output cache flushing (missing parameter to
6926 __init__). Other small bugs fixed (found using pychecker).
6930 __init__). Other small bugs fixed (found using pychecker).
6927
6931
6928 * Version 0.1.4 opened for bugfixing.
6932 * Version 0.1.4 opened for bugfixing.
6929
6933
6930 2001-11-07 Fernando Perez <fperez@colorado.edu>
6934 2001-11-07 Fernando Perez <fperez@colorado.edu>
6931
6935
6932 * Version 0.1.3 released, mainly because of the raw_input bug.
6936 * Version 0.1.3 released, mainly because of the raw_input bug.
6933
6937
6934 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6938 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6935 and when testing for whether things were callable, a call could
6939 and when testing for whether things were callable, a call could
6936 actually be made to certain functions. They would get called again
6940 actually be made to certain functions. They would get called again
6937 once 'really' executed, with a resulting double call. A disaster
6941 once 'really' executed, with a resulting double call. A disaster
6938 in many cases (list.reverse() would never work!).
6942 in many cases (list.reverse() would never work!).
6939
6943
6940 * Removed prefilter() function, moved its code to raw_input (which
6944 * Removed prefilter() function, moved its code to raw_input (which
6941 after all was just a near-empty caller for prefilter). This saves
6945 after all was just a near-empty caller for prefilter). This saves
6942 a function call on every prompt, and simplifies the class a tiny bit.
6946 a function call on every prompt, and simplifies the class a tiny bit.
6943
6947
6944 * Fix _ip to __ip name in magic example file.
6948 * Fix _ip to __ip name in magic example file.
6945
6949
6946 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6950 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6947 work with non-gnu versions of tar.
6951 work with non-gnu versions of tar.
6948
6952
6949 2001-11-06 Fernando Perez <fperez@colorado.edu>
6953 2001-11-06 Fernando Perez <fperez@colorado.edu>
6950
6954
6951 * Version 0.1.2. Just to keep track of the recent changes.
6955 * Version 0.1.2. Just to keep track of the recent changes.
6952
6956
6953 * Fixed nasty bug in output prompt routine. It used to check 'if
6957 * Fixed nasty bug in output prompt routine. It used to check 'if
6954 arg != None...'. Problem is, this fails if arg implements a
6958 arg != None...'. Problem is, this fails if arg implements a
6955 special comparison (__cmp__) which disallows comparing to
6959 special comparison (__cmp__) which disallows comparing to
6956 None. Found it when trying to use the PhysicalQuantity module from
6960 None. Found it when trying to use the PhysicalQuantity module from
6957 ScientificPython.
6961 ScientificPython.
6958
6962
6959 2001-11-05 Fernando Perez <fperez@colorado.edu>
6963 2001-11-05 Fernando Perez <fperez@colorado.edu>
6960
6964
6961 * Also added dirs. Now the pushd/popd/dirs family functions
6965 * Also added dirs. Now the pushd/popd/dirs family functions
6962 basically like the shell, with the added convenience of going home
6966 basically like the shell, with the added convenience of going home
6963 when called with no args.
6967 when called with no args.
6964
6968
6965 * pushd/popd slightly modified to mimic shell behavior more
6969 * pushd/popd slightly modified to mimic shell behavior more
6966 closely.
6970 closely.
6967
6971
6968 * Added env,pushd,popd from ShellServices as magic functions. I
6972 * Added env,pushd,popd from ShellServices as magic functions. I
6969 think the cleanest will be to port all desired functions from
6973 think the cleanest will be to port all desired functions from
6970 ShellServices as magics and remove ShellServices altogether. This
6974 ShellServices as magics and remove ShellServices altogether. This
6971 will provide a single, clean way of adding functionality
6975 will provide a single, clean way of adding functionality
6972 (shell-type or otherwise) to IP.
6976 (shell-type or otherwise) to IP.
6973
6977
6974 2001-11-04 Fernando Perez <fperez@colorado.edu>
6978 2001-11-04 Fernando Perez <fperez@colorado.edu>
6975
6979
6976 * Added .ipython/ directory to sys.path. This way users can keep
6980 * Added .ipython/ directory to sys.path. This way users can keep
6977 customizations there and access them via import.
6981 customizations there and access them via import.
6978
6982
6979 2001-11-03 Fernando Perez <fperez@colorado.edu>
6983 2001-11-03 Fernando Perez <fperez@colorado.edu>
6980
6984
6981 * Opened version 0.1.1 for new changes.
6985 * Opened version 0.1.1 for new changes.
6982
6986
6983 * Changed version number to 0.1.0: first 'public' release, sent to
6987 * Changed version number to 0.1.0: first 'public' release, sent to
6984 Nathan and Janko.
6988 Nathan and Janko.
6985
6989
6986 * Lots of small fixes and tweaks.
6990 * Lots of small fixes and tweaks.
6987
6991
6988 * Minor changes to whos format. Now strings are shown, snipped if
6992 * Minor changes to whos format. Now strings are shown, snipped if
6989 too long.
6993 too long.
6990
6994
6991 * Changed ShellServices to work on __main__ so they show up in @who
6995 * Changed ShellServices to work on __main__ so they show up in @who
6992
6996
6993 * Help also works with ? at the end of a line:
6997 * Help also works with ? at the end of a line:
6994 ?sin and sin?
6998 ?sin and sin?
6995 both produce the same effect. This is nice, as often I use the
6999 both produce the same effect. This is nice, as often I use the
6996 tab-complete to find the name of a method, but I used to then have
7000 tab-complete to find the name of a method, but I used to then have
6997 to go to the beginning of the line to put a ? if I wanted more
7001 to go to the beginning of the line to put a ? if I wanted more
6998 info. Now I can just add the ? and hit return. Convenient.
7002 info. Now I can just add the ? and hit return. Convenient.
6999
7003
7000 2001-11-02 Fernando Perez <fperez@colorado.edu>
7004 2001-11-02 Fernando Perez <fperez@colorado.edu>
7001
7005
7002 * Python version check (>=2.1) added.
7006 * Python version check (>=2.1) added.
7003
7007
7004 * Added LazyPython documentation. At this point the docs are quite
7008 * Added LazyPython documentation. At this point the docs are quite
7005 a mess. A cleanup is in order.
7009 a mess. A cleanup is in order.
7006
7010
7007 * Auto-installer created. For some bizarre reason, the zipfiles
7011 * Auto-installer created. For some bizarre reason, the zipfiles
7008 module isn't working on my system. So I made a tar version
7012 module isn't working on my system. So I made a tar version
7009 (hopefully the command line options in various systems won't kill
7013 (hopefully the command line options in various systems won't kill
7010 me).
7014 me).
7011
7015
7012 * Fixes to Struct in genutils. Now all dictionary-like methods are
7016 * Fixes to Struct in genutils. Now all dictionary-like methods are
7013 protected (reasonably).
7017 protected (reasonably).
7014
7018
7015 * Added pager function to genutils and changed ? to print usage
7019 * Added pager function to genutils and changed ? to print usage
7016 note through it (it was too long).
7020 note through it (it was too long).
7017
7021
7018 * Added the LazyPython functionality. Works great! I changed the
7022 * Added the LazyPython functionality. Works great! I changed the
7019 auto-quote escape to ';', it's on home row and next to '. But
7023 auto-quote escape to ';', it's on home row and next to '. But
7020 both auto-quote and auto-paren (still /) escapes are command-line
7024 both auto-quote and auto-paren (still /) escapes are command-line
7021 parameters.
7025 parameters.
7022
7026
7023
7027
7024 2001-11-01 Fernando Perez <fperez@colorado.edu>
7028 2001-11-01 Fernando Perez <fperez@colorado.edu>
7025
7029
7026 * Version changed to 0.0.7. Fairly large change: configuration now
7030 * Version changed to 0.0.7. Fairly large change: configuration now
7027 is all stored in a directory, by default .ipython. There, all
7031 is all stored in a directory, by default .ipython. There, all
7028 config files have normal looking names (not .names)
7032 config files have normal looking names (not .names)
7029
7033
7030 * Version 0.0.6 Released first to Lucas and Archie as a test
7034 * Version 0.0.6 Released first to Lucas and Archie as a test
7031 run. Since it's the first 'semi-public' release, change version to
7035 run. Since it's the first 'semi-public' release, change version to
7032 > 0.0.6 for any changes now.
7036 > 0.0.6 for any changes now.
7033
7037
7034 * Stuff I had put in the ipplib.py changelog:
7038 * Stuff I had put in the ipplib.py changelog:
7035
7039
7036 Changes to InteractiveShell:
7040 Changes to InteractiveShell:
7037
7041
7038 - Made the usage message a parameter.
7042 - Made the usage message a parameter.
7039
7043
7040 - Require the name of the shell variable to be given. It's a bit
7044 - Require the name of the shell variable to be given. It's a bit
7041 of a hack, but allows the name 'shell' not to be hardwired in the
7045 of a hack, but allows the name 'shell' not to be hardwired in the
7042 magic (@) handler, which is problematic b/c it requires
7046 magic (@) handler, which is problematic b/c it requires
7043 polluting the global namespace with 'shell'. This in turn is
7047 polluting the global namespace with 'shell'. This in turn is
7044 fragile: if a user redefines a variable called shell, things
7048 fragile: if a user redefines a variable called shell, things
7045 break.
7049 break.
7046
7050
7047 - magic @: all functions available through @ need to be defined
7051 - magic @: all functions available through @ need to be defined
7048 as magic_<name>, even though they can be called simply as
7052 as magic_<name>, even though they can be called simply as
7049 @<name>. This allows the special command @magic to gather
7053 @<name>. This allows the special command @magic to gather
7050 information automatically about all existing magic functions,
7054 information automatically about all existing magic functions,
7051 even if they are run-time user extensions, by parsing the shell
7055 even if they are run-time user extensions, by parsing the shell
7052 instance __dict__ looking for special magic_ names.
7056 instance __dict__ looking for special magic_ names.
7053
7057
7054 - mainloop: added *two* local namespace parameters. This allows
7058 - mainloop: added *two* local namespace parameters. This allows
7055 the class to differentiate between parameters which were there
7059 the class to differentiate between parameters which were there
7056 before and after command line initialization was processed. This
7060 before and after command line initialization was processed. This
7057 way, later @who can show things loaded at startup by the
7061 way, later @who can show things loaded at startup by the
7058 user. This trick was necessary to make session saving/reloading
7062 user. This trick was necessary to make session saving/reloading
7059 really work: ideally after saving/exiting/reloading a session,
7063 really work: ideally after saving/exiting/reloading a session,
7060 *everything* should look the same, including the output of @who. I
7064 *everything* should look the same, including the output of @who. I
7061 was only able to make this work with this double namespace
7065 was only able to make this work with this double namespace
7062 trick.
7066 trick.
7063
7067
7064 - added a header to the logfile which allows (almost) full
7068 - added a header to the logfile which allows (almost) full
7065 session restoring.
7069 session restoring.
7066
7070
7067 - prepend lines beginning with @ or !, with a and log
7071 - prepend lines beginning with @ or !, with a and log
7068 them. Why? !lines: may be useful to know what you did @lines:
7072 them. Why? !lines: may be useful to know what you did @lines:
7069 they may affect session state. So when restoring a session, at
7073 they may affect session state. So when restoring a session, at
7070 least inform the user of their presence. I couldn't quite get
7074 least inform the user of their presence. I couldn't quite get
7071 them to properly re-execute, but at least the user is warned.
7075 them to properly re-execute, but at least the user is warned.
7072
7076
7073 * Started ChangeLog.
7077 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now