[Python-apps-team] Bug#627449: Internal error when parsing assignment to a slice of a list
Peter Slickers
pesli at web.de
Fri May 20 17:42:19 UTC 2011
Package: pychecker
Version: 0.8.19-2
pychecker Version 0.8.19 crashes with an "INTERNAL ERROR" if it encounters a python statements where an
assignment to a slice of a list is done. The following piece of code provokes the error:
def function():
l = []
l[0:0] = (1,)
Here is an example:
/bin/echo -e "def function():\n l = []\n l[0:0] = (1,)\n" > pychecker_failure.py
pychecker pychecker_failure.py
---
Processing module pychecker_failure (pychecker_failure.py)...
Warnings...
pychecker_failure.py:3: INTERNAL ERROR -- STOPPED PROCESSING FUNCTION --
Traceback (most recent call last):
File "/usr/lib/pymodules/python2.6/pychecker/warn.py", line 242, in _checkFunction
_checkCode(code, codeSource)
File "/usr/lib/pymodules/python2.6/pychecker/warn.py", line 155, in _checkCode
raise NotImplementedError('No DISPATCH member for op %r' % op)
NotImplementedError: No DISPATCH member for op 43
---
This is severe bug since pychecker recursively checks module dependencies. If you have a few slice assignments
in one module of a big project, you cannot any longer use pychecker on any python file of the whole project.
Work-around: this error does not occur with the previous version 0.8.18-7 which is available in Debian stable.
Users of Debian testing should replace pychecker with the package from stable and set the stable version on 'hold'.
apt-get --reinstall install -t stable pychecker
echo pychecker hold | dpkg --set-selections
dpkg -l pychecker
--
Peter Slickers
More information about the Python-apps-team
mailing list