MemoryError with parser.suite and wrong encoding declaration

Sylvain Thenault sylvain.thenault at nospam.logilab.fr
Tue Jan 18 11:03:09 EST 2005


On Tue, 18 Jan 2005 16:16:32 +0100, Thomas Heller wrote:

> Sylvain Thenault <sylvain.thenault at nospam.logilab.fr> writes:
> 
>> Hi there !
>> I've noticed the following problem with python >= 2.3 (actually 2.3.4
>> and 2.4):
>>
>> syt at musca:test$ python
>> Python 2.3.4 (#2, Sep 24 2004, 08:39:09) [GCC 3.3.4 (Debian 1:3.3.4-12)]
>> on linux2 Type "help", "copyright", "credits" or "license" for more
>> information.
>>>>> import parser
>>>>> parser.suite('# -*- coding: IBO-8859-1 -*-')
>> Traceback (most recent call last):
>>   File "<stdin>", line 1, in ?
>> MemoryError
>>>>> parser.suite('# -*- coding: ISO-8859-1 -*-')
>> <parser.st object at 0xb7e5e060>
>>
>> Shouldn't parser.suite just ignore the wrong encoding declaration, or at
>> least raise a more appropriate exception. IMHO the first solution would
>> be better, since that's the behaviour of the (C) python interpreter.
> 
> Ignore the wrong declaration?  All Python's that I have (on windows, at
> least) raise a SyntaxError:
> 
>   File "x.py", line 1
> SyntaxError: 'unknown encoding: IBO-8859-1'

hum, right (with python >= 2.3 which is the first release using those
declaration...). I was sure to have checked this but I've obviously
missed something. Maybe the fact that being able to parse it anyway is
the solution I wish has driven me to write this ;) I would like this
behaviour so that pylint can check a module with a wrong encoding
declaration anyway. But at least, SyntaxError would be better than
MemoryError.

> See also:
> 
> http://www.python.org/sf/979739

thanks
-- 
Sylvain Thénault                               LOGILAB, Paris (France).

http://www.logilab.com   http://www.logilab.fr  http://www.logilab.org





More information about the Python-list mailing list