carstencodes / flake518

A small wrapper around flake8 enabling pyproject.toml
MIT License
11 stars 3 forks source link

Flake518

A small wrapper around the famous flake8 tool empowering it to read the configuration not from setup.cfg, tox.ini or .flake8, but from the PEP518 compliant pyproject.toml.

In contrast to flake9 it is not a fork of flake8. It uses flake8 under the hood and transforms the relevant configuration to a flake8 configuration file. This way, the ongoing implementation of flake8 can be used.

Rationale

The usage of pyproject.toml is though highly anticipated by some community members, but currently rejected by the maintainers for an undisclosed reason. Flake9 already uses the pyproject.toml file, but does not incorporate later changes.

Since flake8 allows to pass additional configuration files, a temporary configuration file is created. This way, the latest flake8 revision is used, but it can be configured using pyproject.toml.

Configuration

According to PEP518, each tool may add a tool-specific table to the project configuration.

[tool.flake8]
statistics=True
show-source=True
max-line-length=79
doctests=True
exclude=[".git", "__pypackages__", ".vscode", ".mypy_cache"]

For compliance reason, the [tool.flake518] can be used as well.

Usage with the pre-commit git hooks framework

flake518 can be included as a hook for pre-commit. The easiest way to get started is to add this configuration to your .pre-commit-config.yaml:

    -   repo: https://github.com/carstencodes/flake518
        rev: ''  # pick a git hash / tag to point to
        hooks:
        -   id: flake518

See the pre-commit for how to customize this configuration.

License

Like flake8, this project is licensed under the MIT license.

Contributions

Contributions welcome, feel free to submit issues and pull requests on github. Contact me, if you are using gitlab or codeberg.