Package: python2.3-ipython Version: 0.7.2-3 Severity: important Hi,
When using python2.3-ipython, the help function is broken. The problem does not occur with python2.4-ipython, so it seems to me that ipython uses some code which depends on python2.4 and is not compatible with python2.3. I have also been able to run the test case on an older installation of python2.3-ipython, using version 0.7.1.fix1-2, which worked fine. I set the priority to important, because getting help interactively is one of the main goals of ipython. If you feel this is too high, please downgrade the severity. One possible solution, if the above analysis is true, would be dropping the python2.3-ipython package altogether. Steps to reproduce the bug: Put the following sample.py file in your current working directory: def foo(): """test function""" return True Then launch ipython, import sample and run help(sample) $ python2.3-ipython Python 2.3.5 (#2, Jun 13 2006, 23:12:55) Type "copyright", "credits" or "license" for more information. IPython 0.7.2 -- An enhanced Interactive Python. ? -> Introduction to IPython's features. %magic -> Information about IPython's 'magic' % functions. help -> Python's own help system. object? -> Details about 'object'. ?object also works, ?? prints more. In [1]: import sample In [2]: help(sample) --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/alf/dev/public/ail/<ipython console> /usr/lib/python2.3/site.py in __call__(self, *args, **kwds) 317 def __call__(self, *args, **kwds): 318 import pydoc --> 319 return pydoc.help(*args, **kwds) 320 321 __builtin__.help = _Helper() /usr/lib/python2.3/pydoc.py in __call__(self, request) 1546 def __call__(self, request=None): 1547 if request is not None: -> 1548 self.help(request) 1549 else: 1550 self.intro() /usr/lib/python2.3/pydoc.py in help(self, request) 1582 elif request: doc(request, 'Help on %s:') 1583 elif isinstance(request, Helper): self() -> 1584 else: doc(request, 'Help on %s:') 1585 self.output.write('\n') 1586 /usr/lib/python2.3/pydoc.py in doc(thing, title, forceload) 1373 elif module and module is not object: 1374 desc += ' in module ' + module.__name__ -> 1375 pager(title % desc + '\n\n' + text.document(object, name)) 1376 except (ImportError, ErrorDuringImport), value: 1377 print value /usr/lib/python2.3/pydoc.py in document(self, object, name, *args) 281 # by lacking a __name__ attribute) and an instance. 282 try: --> 283 if inspect.ismodule(object): return self.docmodule(*args) 284 if inspect.isclass(object): return self.docclass(*args) 285 if inspect.isroutine(object): return self.docroutine(*args) /usr/lib/python2.3/pydoc.py in docmodule(self, object, name, mod) 961 funcs = [] 962 for key, value in inspect.getmembers(object, inspect.isroutine): --> 963 if inspect.isbuiltin(value) or inspect.getmodule(value) is object: 964 if visiblename(key): 965 funcs.append((key, value)) /usr/lib/python2.3/inspect.py in getmodule(object) 380 for module in sys.modules.values(): 381 if hasattr(module, '__file__'): --> 382 modulesbyfile[getabsfile(module)] = module.__name__ 383 if file in modulesbyfile: 384 return sys.modules.get(modulesbyfile[file]) /usr/lib/python2.3/inspect.py in getabsfile(object) 361 The idea is for each object to have a unique origin, so this routine 362 normalizes the result as much as possible.""" --> 363 return os.path.normcase( 364 os.path.abspath(getsourcefile(object) or getfile(object))) 365 /usr/lib/python2.3/inspect.py in getsourcefile(object) 346 def getsourcefile(object): 347 """Return the Python source file an object was defined in, if it exists.""" --> 348 filename = getfile(object) 349 if string.lower(filename[-4:]) in ['.pyc', '.pyo']: 350 filename = filename[:-4] + '.py' /usr/lib/python2.3/inspect.py in getfile(object) 326 if iscode(object): 327 return object.co_filename --> 328 raise TypeError('arg is not a module, class, method, ' 329 'function, traceback, frame, or code object') 330 TypeError: arg is not a module, class, method, function, traceback, frame, or code object -- System Information: Debian Release: testing/unstable APT prefers unstable APT policy: (500, 'unstable') Architecture: i386 (i686) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.16-2-686 Locale: [EMAIL PROTECTED], [EMAIL PROTECTED] (charmap=ISO-8859-15) Versions of packages python2.3-ipython depends on: ii ipython-common 0.7.2-3 enhanced interactive Python shell ii python 2.3.5-10 An interactive high-level object-o ii python2.3 2.3.5-14 An interactive high-level object-o Versions of packages python2.3-ipython recommends: ii python-numeric [python2.3-num 24.2-3 Numerical (matrix-oriented) Mathem ii python-numeric-ext [python2.3 24.2-3 Extension modules for Numeric Pyth ii python2.3-pexpect 2.0-2 Python 2.3.x module for automating -- no debconf information -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]