Show More
@@ -5,7 +5,7 b' Class which mimics a module.' | |||
|
5 | 5 | Needed to allow pickle to correctly resolve namespaces during IPython |
|
6 | 6 | sessions. |
|
7 | 7 | |
|
8 |
$Id: FakeModule.py |
|
|
8 | $Id: FakeModule.py 1322 2006-05-24 07:51:39Z fperez $""" | |
|
9 | 9 | |
|
10 | 10 | #***************************************************************************** |
|
11 | 11 | # Copyright (C) 2002-2004 Fernando Perez. <fperez@colorado.edu> |
@@ -35,6 +35,9 b' class FakeModule:' | |||
|
35 | 35 | |
|
36 | 36 | self.__dict__ = adict |
|
37 | 37 | |
|
38 | # modules should have a __file__ attribute | |
|
39 | adict['__file__'] = __file__ | |
|
40 | ||
|
38 | 41 | def __getattr__(self,key): |
|
39 | 42 | try: |
|
40 | 43 | return self.__dict__[key] |
@@ -1,7 +1,7 b'' | |||
|
1 | 1 | # -*- coding: utf-8 -*- |
|
2 | 2 | """Magic functions for InteractiveShell. |
|
3 | 3 | |
|
4 |
$Id: Magic.py 13 |
|
|
4 | $Id: Magic.py 1322 2006-05-24 07:51:39Z fperez $""" | |
|
5 | 5 | |
|
6 | 6 | #***************************************************************************** |
|
7 | 7 | # Copyright (C) 2001 Janko Hauser <jhauser@zscout.de> and |
@@ -1874,6 +1874,12 b' Currently the magic system has the following functions:\\n"""' | |||
|
1874 | 1874 | |
|
1875 | 1875 | Options: |
|
1876 | 1876 | |
|
1877 | -n <number>: open the editor at a specified line number. By default, | |
|
1878 | the IPython editor hook uses the unix syntax 'editor +N filename', but | |
|
1879 | you can configure this by providing your own modified hook if your | |
|
1880 | favorite editor supports line-number specifications with a different | |
|
1881 | syntax. | |
|
1882 | ||
|
1877 | 1883 | -p: this will call the editor with the same data as the previous time |
|
1878 | 1884 | it was used, regardless of how long ago (in your current session) it |
|
1879 | 1885 | was. |
@@ -2003,16 +2009,14 b' Currently the magic system has the following functions:\\n"""' | |||
|
2003 | 2009 | # custom exceptions |
|
2004 | 2010 | class DataIsObject(Exception): pass |
|
2005 | 2011 | |
|
2006 |
opts,args = self.parse_options(parameter_s,'prxn |
|
|
2007 | ||
|
2008 | print 'opt.n: <%r>' % opts.n # dbg | |
|
2009 | ||
|
2012 | opts,args = self.parse_options(parameter_s,'prxn:') | |
|
2010 | 2013 | # Set a few locals from the options for convenience: |
|
2011 | 2014 | opts_p = opts.has_key('p') |
|
2012 | 2015 | opts_r = opts.has_key('r') |
|
2013 | ||
|
2016 | ||
|
2014 | 2017 | # Default line number value |
|
2015 | lineno = None | |
|
2018 | lineno = opts.get('n',None) | |
|
2019 | ||
|
2016 | 2020 | if opts_p: |
|
2017 | 2021 | args = '_%s' % last_call[0] |
|
2018 | 2022 | if not self.shell.user_ns.has_key(args): |
@@ -2081,7 +2085,8 b' Currently the magic system has the following functions:\\n"""' | |||
|
2081 | 2085 | # a temp file it's gone by now). |
|
2082 | 2086 | if datafile: |
|
2083 | 2087 | try: |
|
2084 |
lineno |
|
|
2088 | if lineno is None: | |
|
2089 | lineno = inspect.getsourcelines(data)[1] | |
|
2085 | 2090 | except IOError: |
|
2086 | 2091 | filename = make_filename(args) |
|
2087 | 2092 | if filename is None: |
@@ -219,6 +219,17 b' class Completer:' | |||
|
219 | 219 | # This will happen if `object` is a class and not an instance. |
|
220 | 220 | pass |
|
221 | 221 | |
|
222 | # Support for PyCrust-style _getAttributeNames magic method. | |
|
223 | if hasattr(object, '_getAttributeNames'): | |
|
224 | try: | |
|
225 | words.extend(object._getAttributeNames()) | |
|
226 | # Eliminate duplicates. | |
|
227 | words = set(words) | |
|
228 | except TypeError: | |
|
229 | # `object` is a class and not an instance. Ignore | |
|
230 | # this error. | |
|
231 | pass | |
|
232 | ||
|
222 | 233 | # filter out non-string attributes which may be stuffed by dir() calls |
|
223 | 234 | # and poor coding in third-party modules |
|
224 | 235 | words = [w for w in words |
@@ -5,7 +5,7 b' General purpose utilities.' | |||
|
5 | 5 | This is a grab-bag of stuff I find useful in most programs I write. Some of |
|
6 | 6 | these things are also convenient when working at the command line. |
|
7 | 7 | |
|
8 |
$Id: genutils.py 13 |
|
|
8 | $Id: genutils.py 1322 2006-05-24 07:51:39Z fperez $""" | |
|
9 | 9 | |
|
10 | 10 | #***************************************************************************** |
|
11 | 11 | # Copyright (C) 2001-2006 Fernando Perez. <fperez@colorado.edu> |
@@ -1576,17 +1576,22 b' def chop(seq,size):' | |||
|
1576 | 1576 | return map(chunk,xrange(0,len(seq),size)) |
|
1577 | 1577 | |
|
1578 | 1578 | #---------------------------------------------------------------------------- |
|
1579 | def with(object, **args): | |
|
1579 | # with is a keyword as of python 2.5, so this function is renamed to withobj | |
|
1580 | # from its old 'with' name. | |
|
1581 | def with_obj(object, **args): | |
|
1580 | 1582 | """Set multiple attributes for an object, similar to Pascal's with. |
|
1581 | 1583 | |
|
1582 | 1584 | Example: |
|
1583 | with(jim, | |
|
1584 | born = 1960, | |
|
1585 | haircolour = 'Brown', | |
|
1586 | eyecolour = 'Green') | |
|
1585 | with_obj(jim, | |
|
1586 | born = 1960, | |
|
1587 | haircolour = 'Brown', | |
|
1588 | eyecolour = 'Green') | |
|
1587 | 1589 | |
|
1588 | 1590 | Credit: Greg Ewing, in |
|
1589 |
http://mail.python.org/pipermail/python-list/2001-May/040703.html |
|
|
1591 | http://mail.python.org/pipermail/python-list/2001-May/040703.html. | |
|
1592 | ||
|
1593 | NOTE: up until IPython 0.7.2, this was called simply 'with', but 'with' | |
|
1594 | has become a keyword for Python 2.5, so we had to rename it.""" | |
|
1590 | 1595 | |
|
1591 | 1596 | object.__dict__.update(args) |
|
1592 | 1597 |
@@ -32,7 +32,7 b" ip.set_hook('editor', calljed)" | |||
|
32 | 32 | You can then enable the functionality by doing 'import myiphooks' |
|
33 | 33 | somewhere in your configuration files or ipython command line. |
|
34 | 34 | |
|
35 |
$Id: hooks.py 13 |
|
|
35 | $Id: hooks.py 1322 2006-05-24 07:51:39Z fperez $""" | |
|
36 | 36 | |
|
37 | 37 | #***************************************************************************** |
|
38 | 38 | # Copyright (C) 2005 Fernando Perez. <fperez@colorado.edu> |
@@ -73,7 +73,7 b' def editor(self,filename, linenum=None):' | |||
|
73 | 73 | if linenum is None or editor=='notepad': |
|
74 | 74 | linemark = '' |
|
75 | 75 | else: |
|
76 | linemark = '+%d' % linenum | |
|
76 | linemark = '+%d' % int(linenum) | |
|
77 | 77 | |
|
78 | 78 | # Enclose in quotes if necessary and legal |
|
79 | 79 | if ' ' in editor and os.path.isfile(editor) and editor[0] != '"': |
@@ -251,7 +251,6 b' class IPApi:' | |||
|
251 | 251 | # exposes variables 'foo' as 'x' and 'bar' as 'y' in IPython |
|
252 | 252 | # user namespace |
|
253 | 253 | ip.user_ns.update(dict(x=foo,y=bar)) |
|
254 | ||
|
255 | 254 | """ |
|
256 | 255 | |
|
257 | 256 | # print 'vars given:',vars # dbg |
@@ -6,7 +6,7 b' Requires Python 2.3 or newer.' | |||
|
6 | 6 | |
|
7 | 7 | This file contains all the classes and helper functions specific to IPython. |
|
8 | 8 | |
|
9 |
$Id: iplib.py 13 |
|
|
9 | $Id: iplib.py 1322 2006-05-24 07:51:39Z fperez $ | |
|
10 | 10 | """ |
|
11 | 11 | |
|
12 | 12 | #***************************************************************************** |
@@ -204,13 +204,6 b' class InteractiveShell(object,Magic):' | |||
|
204 | 204 | # Job manager (for jobs run as background threads) |
|
205 | 205 | self.jobs = BackgroundJobManager() |
|
206 | 206 | |
|
207 | # Do the intuitively correct thing for quit/exit: we remove the | |
|
208 | # builtins if they exist, and our own magics will deal with this | |
|
209 | try: | |
|
210 | del __builtin__.exit, __builtin__.quit | |
|
211 | except AttributeError: | |
|
212 | pass | |
|
213 | ||
|
214 | 207 | # Store the actual shell's name |
|
215 | 208 | self.name = name |
|
216 | 209 | |
@@ -1231,7 +1224,8 b' want to merge them back into the new files.""" % locals()' | |||
|
1231 | 1224 | """Utility routine for edit_syntax_error""" |
|
1232 | 1225 | |
|
1233 | 1226 | if e.filename in ('<ipython console>','<input>','<string>', |
|
1234 |
'<console>', |
|
|
1227 | '<console>','<BackgroundJob compilation>', | |
|
1228 | None): | |
|
1235 | 1229 | |
|
1236 | 1230 | return False |
|
1237 | 1231 | try: |
@@ -1269,11 +1263,14 b' want to merge them back into the new files.""" % locals()' | |||
|
1269 | 1263 | except: |
|
1270 | 1264 | self.showtraceback() |
|
1271 | 1265 | else: |
|
1272 | f = file(err.filename) | |
|
1273 | 1266 | try: |
|
1274 | sys.displayhook(f.read()) | |
|
1275 |
|
|
|
1276 |
f. |
|
|
1267 | f = file(err.filename) | |
|
1268 | try: | |
|
1269 | sys.displayhook(f.read()) | |
|
1270 | finally: | |
|
1271 | f.close() | |
|
1272 | except: | |
|
1273 | self.showtraceback() | |
|
1277 | 1274 | |
|
1278 | 1275 | def showsyntaxerror(self, filename=None): |
|
1279 | 1276 | """Display the syntax error that just occurred. |
@@ -1316,7 +1313,16 b' want to merge them back into the new files.""" % locals()' | |||
|
1316 | 1313 | pdb.pm() |
|
1317 | 1314 | |
|
1318 | 1315 | def showtraceback(self,exc_tuple = None,filename=None,tb_offset=None): |
|
1319 |
"""Display the exception that just occurred. |
|
|
1316 | """Display the exception that just occurred. | |
|
1317 | ||
|
1318 | If nothing is known about the exception, this is the method which | |
|
1319 | should be used throughout the code for presenting user tracebacks, | |
|
1320 | rather htan directly invoking the InteractiveTB object. | |
|
1321 | ||
|
1322 | A specific showsyntaxerror() also exists, but this method can take | |
|
1323 | care of calling it if needed, so unless you are explicitly catching a | |
|
1324 | SyntaxError exception, don't try to analyze the stack manually and | |
|
1325 | simply call this method.""" | |
|
1320 | 1326 | |
|
1321 | 1327 | # Though this won't be called by syntax errors in the input line, |
|
1322 | 1328 | # there may be SyntaxError cases whith imported code. |
@@ -1793,7 +1799,12 b' want to merge them back into the new files.""" % locals()' | |||
|
1793 | 1799 | else: |
|
1794 | 1800 | self.input_hist_raw.append('%s\n' % line) |
|
1795 | 1801 | |
|
1796 | lineout = self.prefilter(line,continue_prompt) | |
|
1802 | try: | |
|
1803 | lineout = self.prefilter(line,continue_prompt) | |
|
1804 | except: | |
|
1805 | # blanket except, in case a user-defined prefilter crashes, so it | |
|
1806 | # can't take all of ipython with it. | |
|
1807 | self.showtraceback() | |
|
1797 | 1808 | return lineout |
|
1798 | 1809 | |
|
1799 | 1810 | def split_user_input(self,line): |
@@ -1,3 +1,40 b'' | |||
|
1 | 2006-05-24 Fernando Perez <Fernando.Perez@colorado.edu> | |
|
2 | ||
|
3 | * IPython/completer.py (Completer.attr_matches): add support for | |
|
4 | PyCrust-style _getAttributeNames magic method. Patch contributed | |
|
5 | by <mscott-AT-goldenspud.com>. Closes #50. | |
|
6 | ||
|
7 | * IPython/iplib.py (InteractiveShell.__init__): remove the | |
|
8 | deletion of exit/quit from __builtin__, which can break | |
|
9 | third-party tools like the Zope debugging console. The | |
|
10 | %exit/%quit magics remain. In general, it's probably a good idea | |
|
11 | not to delete anything from __builtin__, since we never know what | |
|
12 | that will break. In any case, python now (for 2.5) will support | |
|
13 | 'real' exit/quit, so this issue is moot. Closes #55. | |
|
14 | ||
|
15 | * IPython/genutils.py (with_obj): rename the 'with' function to | |
|
16 | 'withobj' to avoid incompatibilities with Python 2.5, where 'with' | |
|
17 | becomes a language keyword. Closes #53. | |
|
18 | ||
|
19 | * IPython/FakeModule.py (FakeModule.__init__): add a proper | |
|
20 | __file__ attribute to this so it fools more things into thinking | |
|
21 | it is a real module. Closes #59. | |
|
22 | ||
|
23 | * IPython/Magic.py (magic_edit): add -n option to open the editor | |
|
24 | at a specific line number. After a patch by Stefan van der Walt. | |
|
25 | ||
|
26 | 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu> | |
|
27 | ||
|
28 | * IPython/iplib.py (edit_syntax_error): fix crash when for some | |
|
29 | reason the file could not be opened. After automatic crash | |
|
30 | reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and | |
|
31 | Charles Dolan <charlespatrickdolan-AT-yahoo.com>. | |
|
32 | (_should_recompile): Don't fire editor if using %bg, since there | |
|
33 | is no file in the first place. From the same report as above. | |
|
34 | (raw_input): protect against faulty third-party prefilters. After | |
|
35 | an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za> | |
|
36 | while running under SAGE. | |
|
37 | ||
|
1 | 38 | 2006-05-23 Ville Vainio <vivainio@gmail.com> |
|
2 | 39 | |
|
3 | 40 | * ipapi.py: Stripped down ip.to_user_ns() to work only as |
General Comments 0
You need to be logged in to leave comments.
Login now