Very often, developers mess up the executable permissions and shebangs of Python files. For example, sometimes the executable permission was accidentally granted, sometimes it is forgotten.
This is a Flake8 plugin that ensures the executable permissions and shebangs of Python files are correctly set. Specifically, it checks the following errors:
- EXE001: Shebang is present but the file is not executable.
- EXE002: The file is executable but no shebang is present.
- EXE003: Shebang is present but does not contain "python".
- EXE004: There is whitespace before shebang.
- EXE005: There are blank or comment lines before shebang.
Run:
pip install flake8-executable
Or through pre-commit
with the .pre-commit-config.yaml
:
repos:
- repo: https://github.com/PyCQA/flake8
rev: 6.0.0 # replace with the latest flake8 release
hooks:
- id: flake8
additional_dependencies:
- flake8-executable
Normally, after flake8-executable is installed, invoking flake8 will also run this plugin. For more details, check out the Flake8 plugin page.
Copyright (c) 2019 Hong Xu hong@topbug.net
flake8-executable is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
flake8-executable is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with flake8-executable. If not, see https://www.gnu.org/licenses/.