This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: compile() raises SyntaxError with confusing message for some decoding problems
Type: behavior Stage:
Components: Library (Lib) Versions: Python 2.5
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: benjamin.peterson, exarkun, ezio.melotti
Priority: normal Keywords:

Created on 2009-06-15 22:22 by exarkun, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Messages (2)
msg89417 - (view) Author: Jean-Paul Calderone (exarkun) * (Python committer) Date: 2009-06-15 22:22
Consider this source file:

  # coding: ascii
  ☃

It is not a valid Python program (for several reasons).  The first
problem encountered is that bytes representing SNOWMAN do not fit into
ASCII, so the file cannot be decoded using the declared encoding.

If one tries to import this file, a reasonable thing happens:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "encodingfoo.py", line 2
SyntaxError: 'ascii' codec can't decode byte 0xe2 in position 0: ordinal
not in range(128)

If the builtin compile() is used instead, though, something different
happens:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 0
SyntaxError: unknown encoding: ascii
msg89420 - (view) Author: Benjamin Peterson (benjamin.peterson) * (Python committer) Date: 2009-06-16 00:30
Fixed in r73439.
History
Date User Action Args
2022-04-11 14:56:50adminsetgithub: 50538
2009-06-16 00:30:34benjamin.petersonsetstatus: open -> closed

nosy: + benjamin.peterson
messages: + msg89420

resolution: fixed
2009-06-15 22:27:07ezio.melottisetnosy: + ezio.melotti
2009-06-15 22:22:39exarkuncreate