[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