Name | pyproject-flake8 JSON |
Version |
7.0.0
JSON |
| download |
home_page | None |
Summary | pyproject-flake8 (`pflake8`), a monkey patching wrapper to connect flake8 with pyproject.toml configuration |
upload_time | 2024-04-09 22:10:33 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.8.1 |
license | None |
keywords |
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# 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](https://github.com/csachs/pyproject-flake8/issues/13) 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:**
```bash
# e.g., suggested installation / dependency ... depending on flake8==5.0.4
# for Python 3.8+
pip install pyproject-flake8==5.0.4
# for Python 3.6+
pip install pyproject-flake8==5.0.4.post1
```
## Rationale
[`flake8`](https://flake8.pycqa.org/) is one of the most popular Python linters, `pyproject.toml` has become the [standard](https://www.python.org/dev/peps/pep-0518/) 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
```bash
pip install .
```
### From PyPI
```bash
pip install pyproject-flake8
```
### Building packages
Use your favorite [PEP517](https://www.python.org/dev/peps/pep-0517/) compliant builder, e.g.:
```bash
# 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`:
```toml
[tool.flake8]
max-line-length = 88
extend-ignore = ["E203"]
max-complexity = 10
```
## See also
Two other projects aim to address the same problem:
- [flake9](https://gitlab.com/retnikt/flake9)
- [FlakeHell](https://github.com/life4/flakehell)
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.
[`flake8-pyproject`](https://github.com/john-hen/Flake8-pyproject) adds only `pyproject.toml` support, and does this as a Flake8 plugin, allowing
the original `flake8` command to work (rather than using `pflake8`).
## 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
Raw data
{
"_id": null,
"home_page": null,
"name": "pyproject-flake8",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8.1",
"maintainer_email": null,
"keywords": null,
"author": null,
"author_email": "Christian Sachs <sachs.christian@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/51/c3/619735aa5097b41e2af1a7e067e8859dea59689386b00c2efb7a8b7dc401/pyproject_flake8-7.0.0.tar.gz",
"platform": null,
"description": "# pyproject-flake8 (`pflake8`)\n\nA monkey patching wrapper to connect flake8 with `pyproject.toml` configuration.\n\n## Update concerning versioning:\n\npyproject-flake8 so far came without explicit pinning of a flake8 version. Since a [recent update](https://github.com/csachs/pyproject-flake8/issues/13) broke compatibility \u2013 not unexpectedly \u2013 the issue arose, how to handle incompatible versions of flake8 and pyproject-flake8.\nSince there are good reasons for and against version pinning, this project now tries to follow a mix of both:\nRelease 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*.\nThat 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.\n\nVersions 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.\n\n**tl;dr:**\n\n```bash\n# e.g., suggested installation / dependency ... depending on flake8==5.0.4\n\n# for Python 3.8+\npip install pyproject-flake8==5.0.4\n\n# for Python 3.6+\npip install pyproject-flake8==5.0.4.post1\n```\n\n## Rationale\n\n[`flake8`](https://flake8.pycqa.org/) is one of the most popular Python linters, `pyproject.toml` has become the [standard](https://www.python.org/dev/peps/pep-0518/) for Python project metadata.\n\nMore and more tools are able to utilize a shared `pyproject.toml`, alleviating the need for many individual configuration files cluttering a project repository.\n\nSince excellent `flake8` is not aimed to support `pyproject.toml`, this wrapper script tries to fix the situation.\n\n## Installation\n\n### From github \n\n```bash\npip install .\n```\n\n### From PyPI\n\n```bash\npip install pyproject-flake8\n```\n\n### Building packages\n\nUse your favorite [PEP517](https://www.python.org/dev/peps/pep-0517/) compliant builder, e.g.:\n```bash\n# install first via: pip install build\npython -m build\n# packages will reside in dist/\n```\n\n## Usage\n\nCall `pflake8` instead of `flake8`.\n\nConfiguration goes into the `tool.flake8` section of `pyproject.toml`: \n\n```toml\n[tool.flake8]\nmax-line-length = 88\nextend-ignore = [\"E203\"]\nmax-complexity = 10\n```\n\n## See also\n\nTwo other projects aim to address the same problem:\n\n- [flake9](https://gitlab.com/retnikt/flake9)\n- [FlakeHell](https://github.com/life4/flakehell)\n\nBoth seem to try to do a lot more than just getting `pyproject.toml` support. `pyproject-flake8` tries to stay minimal while solving its task. \n\n[`flake8-pyproject`](https://github.com/john-hen/Flake8-pyproject) adds only `pyproject.toml` support, and does this as a Flake8 plugin, allowing\nthe original `flake8` command to work (rather than using `pflake8`).\n\n## Caveat\n\nThis script monkey-patches flake8 and the configparser library of Python, therefore loading it as a module may have unforeseen consequences.\nAlpha 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.\n\n## License\n\nUnlicense\n\n",
"bugtrack_url": null,
"license": null,
"summary": "pyproject-flake8 (`pflake8`), a monkey patching wrapper to connect flake8 with pyproject.toml configuration",
"version": "7.0.0",
"project_urls": {
"Home": "https://github.com/csachs/pyproject-flake8"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "3a4934cb28f055739c442383cffe72f57d5eb924a9535ffc9c80edacff0f37f7",
"md5": "b9d63224af2645785a5641b8faf1e68f",
"sha256": "611e91b49916e6d0685f88423ad4baff490888278a258975403c0dee6eb6072e"
},
"downloads": -1,
"filename": "pyproject_flake8-7.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b9d63224af2645785a5641b8faf1e68f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8.1",
"size": 5481,
"upload_time": "2024-04-09T22:10:29",
"upload_time_iso_8601": "2024-04-09T22:10:29.949483Z",
"url": "https://files.pythonhosted.org/packages/3a/49/34cb28f055739c442383cffe72f57d5eb924a9535ffc9c80edacff0f37f7/pyproject_flake8-7.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "51c3619735aa5097b41e2af1a7e067e8859dea59689386b00c2efb7a8b7dc401",
"md5": "d937589caccf7d1d1981cfce0cda5de3",
"sha256": "5b953592336bc04d86e8942fdca1014256044a3445c8b6ca9467d08636749158"
},
"downloads": -1,
"filename": "pyproject_flake8-7.0.0.tar.gz",
"has_sig": false,
"md5_digest": "d937589caccf7d1d1981cfce0cda5de3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8.1",
"size": 4629,
"upload_time": "2024-04-09T22:10:33",
"upload_time_iso_8601": "2024-04-09T22:10:33.642355Z",
"url": "https://files.pythonhosted.org/packages/51/c3/619735aa5097b41e2af1a7e067e8859dea59689386b00c2efb7a8b7dc401/pyproject_flake8-7.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-04-09 22:10:33",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "csachs",
"github_project": "pyproject-flake8",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pyproject-flake8"
}