A Flake8 plugin to check for files opened without an explicit encoding.
If you don't specify an encoding
argument to the
open function, then
Python will use a platform-dependent default encoding—whatever
locale.getpreferredencoding
returns. On many platforms this is
UTF-8, but on a significant minority it
is something different. For example, the default encoding on Japanese Windows
machines is cp932 (Microsoft's version of
Shift-JIS). If you open a UTF-8 file
on such a system but do not specify an encoding, then attempting to read any
multi-byte characters in the file will cause a UnicodeDecodeError.
pip install flake8-file-encoding
Once this plugin is installed, Flake8 will check for missing encoding
arguments along with its other checks. No special activation for this plugin is
necessary. For more details on running Flake8, see the
Flake8 documentation.
Code | Message |
---|---|
FEN001 | open() call has no encoding argument |