flake8-executable

A Flake8 plugin for checking executable permissions and shebangs.

LGPL-3.0 License

Downloads
114.6K
Stars
18
Committers
5

flake8-executable

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.

Installation

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

Usage

Normally, after flake8-executable is installed, invoking flake8 will also run this plugin. For more details, check out the Flake8 plugin page.

Copyright and License

Copyright (c) 2019 Hong Xu [email protected]

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/.