Skip to main content

pyproject-flake8 (`pflake8`), a monkey patching wrapper to connect flake8 with pyproject.toml configuration

Project description

pyproject-flake8 (pflake8)

A monkey patching wrapper to connect flake8 with pyproject.toml configuration.

Update concerning versioning:

pyproject-flake8 so far came without explicit pinning of a flake8 version. Since a recent update broke compatibility – not unexpectedly – the issue arose, how to handle incompatible versions of flake8 and pyproject-flake8. Since there are good reasons for and against version pinning, this project now tries to follow a mix of both: Release versions will follow and pin identical flake8 versions, alpha versions (specific to pyproject-flake8) will pin to the similar non-alpha version of flake8, or later. That way, users of pyproject-flake8 can decide, whether they want a fixed version known to work, or a minimum version, getting later versions, at the risk of future breakage.

Versions 0.0.1x are pyproject-flake8 internal versions and do not correspond to flake8. Furthermore, flake8 3.8.0 was chosen as the first flake8 version to mirror this way.

tl;dr:

# e.g., suggested installation / dependency ... depending on flake8==5.0.3

pip install pyproject-flake8==5.0.3

Rationale

flake8 is one of the most popular Python linters, pyproject.toml has become the standard for Python project metadata.

More and more tools are able to utilize a shared pyproject.toml, alleviating the need for many individual configuration files cluttering a project repository.

Since excellent flake8 is not aimed to support pyproject.toml, this wrapper script tries to fix the situation.

Installation

From github

pip install .

From PyPI

pip install pyproject-flake8

Building packages

Use your favorite PEP517 compliant builder, e.g.:

# install first via: pip install build
python -m build
# packages will reside in dist/

Usage

Call pflake8 instead of flake8.

Configuration goes into the tool.flake8 section of pyproject.toml:

[tool.flake8]
max-line-length = 88
extend-ignore = ["E203"]
max-complexity = 10

See also

Two other projects aim to address the same problem:

Both seem to try to do a lot more than just getting pyproject.toml support. pyproject-flake8 tries to stay minimal while solving its task.

Caveat

This script monkey-patches flake8 and the configparser library of Python, therefore loading it as a module may have unforeseen consequences. Alpha quality. Use at your own risk. It will likely break if either Python or flake8 restructure their code significantly. No guarantees for stability between versions.

License

Unlicense

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyproject-flake8-3.9.0.tar.gz (3.6 kB view details)

Uploaded Source

Built Distribution

pyproject_flake8-3.9.0-py2.py3-none-any.whl (4.5 kB view details)

Uploaded Python 2Python 3

File details

Details for the file pyproject-flake8-3.9.0.tar.gz.

File metadata

  • Download URL: pyproject-flake8-3.9.0.tar.gz
  • Upload date:
  • Size: 3.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.14

File hashes

Hashes for pyproject-flake8-3.9.0.tar.gz
Algorithm Hash digest
SHA256 1bb1a6f2461109b9849ad9f438f490647d8190b91a336fcd39ba0c4082cbcef0
MD5 323493deea96058a10617d2aa507fcf3
BLAKE2b-256 c91d116ceb3ab2dd5c37ee4d3e8abf87f4ae72efa77058d4df92ae76ae19c171

See more details on using hashes here.

File details

Details for the file pyproject_flake8-3.9.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for pyproject_flake8-3.9.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 be60a23ddb8a6781e001daad7124ec49d5cbfdfe71e8e8d026007da20655d631
MD5 2c50ec3affb38d41d49f03c4dd8a05ec
BLAKE2b-256 553c7eb9d89f486fa1174476e98bd34faee100bae54dc33b3f39a96f0c075862

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page