LineDemo does not work

Bug #518984 reported by robitaille
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
IPython
New
Undecided
Unassigned

Bug Description

I'm trying to use the iPython demo mode. I created a file called test.py containing:

print 1
print 2
print 3

and then launched iPython and did the following:

In [1]: from IPython.demo import LineDemo

In [2]: d = LineDemo('test.py')

In [3]: d()
********************* <test.py> block # 0 (5 remaining) *********************
p

********************************** output: **********************************
---------------------------------------------------------------------------
NameError Traceback (most recent call last)

/Users/tom/Library/Python/2.6/site-packages/ipython-0.10-py2.6.egg/IPython/demo.pyc in runlines(self, source)
    400 """Execute a string with one or more lines of code"""
    401
--> 402 exec source in self.user_ns
    403
    404 def __call__(self,index=None):

/Users/tom/tmp/<string> in <module>()
----> 1
      2
      3
      4
      5

NameError: name 'p' is not defined

As pointed out on stackoverflow.com by another user, in demo.py in LineDemo.reload, the line that says:

src_b = [l for l in self.fobj.readline() if l.strip()]

should say:

src_b = [l for l in self.fobj.readlines() if l.strip()]

Currently it's trying to execute all the letters in the first line instead of all the lines in the file.

Using iPython 0.10 on MacOS 10.6 with Python 2.6 64-bit

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.