Files
codeql/python/ql/src/Imports/EncodingError.qhelp
2018-11-19 15:10:42 +00:00

37 lines
1.3 KiB
XML

<!DOCTYPE qhelp PUBLIC
"-//Semmle//qhelp//EN"
"qhelp.dtd">
<qhelp>
<overview>
<p> Encoding errors prevent a module being evaluated and thus imported.
An attempt to import a module with an invalid encoding will fail; a <code>SyntaxError</code> will be raised.
Note that in Python 2, the default encoding is ASCII.
</p>
<p>The existence of an encoding error in a module may suggest other problems as well.
Either the module is never imported in practice and could be deleted or a
<code>try</code> statement around the import is mistakenly discarding the <code>SyntaxError</code>.
</p>
</overview>
<recommendation>
<p>Fixing the encoding error is the obvious fix.
However, it is worth investigating why a module containing an encoding error
was able to persist and address that problem as well.
</p>
<p>
If a different encoding should be used for the file, specify it explicitly by
putting an encoding specification at the top of the file. For instance, to
specify UTF-8 encoding, add the line <code># coding=utf-8</code>.
</p>
</recommendation>
<references>
<li>Python PEPs: <a href="https://www.python.org/dev/peps/pep-0263/">PEP 263 — Defining Python Source Code Encodings.</a></li>
<li>Python Tutorial: <a href="http://docs.python.org/tutorial/errors.html#syntax-errors">SyntaxErrors.</a></li>
</references>
</qhelp>