# wemake-python-styleguide
[![wemake.services](https://img.shields.io/badge/%20-wemake.services-green.svg?label=%20&logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAALGPC%2FxhBQAAAAFzUkdCAK7OHOkAAAAbUExURQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2F%2F%2F5TvxDIAAAAIdFJOUwAjRA8xXANAL%2Bv0SAAAADNJREFUGNNjYCAIOJjRBdBFWMkVQeGzcHAwksJnAPPZGOGAASzPzAEHEGVsLExQwE7YswCb7AFZSF3bbAAAAABJRU5ErkJggg%3D%3D)](https://wemake-services.github.io)
[![Supporters](https://img.shields.io/opencollective/all/wemake-python-styleguide.svg?color=gold&label=supporters)](https://opencollective.com/wemake-python-styleguide)
[![Build Status](https://github.com/wemake-services/wemake-python-styleguide/workflows/test/badge.svg?branch=master&event=push)](https://github.com/wemake-services/wemake-python-styleguide/actions?query=workflow%3Atest)
[![codecov](https://codecov.io/gh/wemake-services/wemake-python-styleguide/branch/master/graph/badge.svg)](https://codecov.io/gh/wemake-services/wemake-python-styleguide)
[![Python Version](https://img.shields.io/pypi/pyversions/wemake-python-styleguide.svg)](https://pypi.org/project/wemake-python-styleguide/)
[![wemake-python-styleguide](https://img.shields.io/badge/style-wemake-000000.svg)](https://github.com/wemake-services/wemake-python-styleguide)
---
Welcome to the strictest and most opinionated Python linter ever.
<p align="center">
<a href="https://wemake-python-styleguide.rtfd.io">
<img src="https://raw.githubusercontent.com/wemake-services/wemake-python-styleguide/master/docs/_static/logo.png"
alt="wemake-python-styleguide logo">
</a>
</p>
`wemake-python-styleguide` is actually a [flake8](http://flake8.pycqa.org/en/latest/)
plugin with [some other plugins](https://wemake-python-styleguide.rtfd.io/en/latest/pages/usage/violations/index.html#external-plugins) as dependencies.
## Quickstart
```bash
pip install wemake-python-styleguide
```
You will also need to create a `setup.cfg` file with the [configuration](https://wemake-python-styleguide.rtfd.io/en/latest/pages/usage/configuration.html).
[Try it online](https://wps.orsinium.dev)!
We highly recommend to also use:
- [flakeheaven](https://wemake-python-styleguide.rtfd.io/en/latest/pages/usage/integrations/flakeheaven.html) for easy integration into a **legacy** codebase
- [nitpick](https://wemake-python-styleguide.rtfd.io/en/latest/pages/usage/integrations/nitpick.html) for sharing and validating configuration across multiple projects
## Running
```bash
flake8 your_module.py
```
This app is still just good old `flake8`!
And it won't change your existing workflow.
<p align="center">
<img src="https://raw.githubusercontent.com/wemake-services/wemake-python-styleguide/master/docs/_static/running.png"
alt="invocation results">
</p>
See ["Usage" section](https://wemake-python-styleguide.rtfd.io/en/latest/pages/usage/setup.html)
in the docs for examples and integrations.
We also support [GitHub Actions](https://wemake-python-styleguide.rtfd.io/en/latest/pages/usage/integrations/github-actions.html) as first class-citizens.
[Try it out](https://github.com/marketplace/actions/wemake-python-styleguide)!
## Strict is the new cool
Strict linting offers the following benefits to developers and companies:
1. Ensures consistency - no matter who works on it, the end product will always be the same dependable code
2. Helps avoid potential bugs - strict rules make sure that you don't make common mistakes
3. Efficient code reviews - each piece of code has a similar familiar style and syntax. If it passes all the checks, there's little left to review!
4. Fewer code revisions - strict linting ensures that you don't have to re-write the codebase again and again
5. Reduce code redundancy - Sometimes we write complex code as we are thinking in a certain way about a problem. The linter offers suggestions that can help simplify the code and eliminate redundant statements
## What we are about
The ultimate goal of this project is
to make all people write **exactly** the same `Python` code.
| | flake8 | pylint | black | mypy | wemake-python-styleguide |
|----------------------------|--------|--------|-------|------|--------------------------|
| Formats code? | ❌ | ❌ | ✅ | ❌ | ❌ |
| Finds style issues? | 🤔 | ✅ | 🤔 | ❌ | ✅ |
| Finds bugs? | 🤔 | ✅ | ❌ | ✅ | ✅ |
| Finds complex code? | ❌ | 🤔 | ❌ | ❌ | ✅ |
| Has a lot of strict rules? | ❌ | 🤔 | ❌ | ❌ | ✅ |
| Has a lot of plugins? | ✅ | ❌ | ❌ | 🤔 | ✅ |
We have several primary objectives:
1. Significantly reduce the complexity of your code and make it more maintainable
2. Enforce "There should be one -- and preferably only one -- obvious way to do it" rule to coding and naming styles
3. Protect developers from possible errors and enforce best practices
You can find all error codes and plugins [in the docs](https://wemake-python-styleguide.rtfd.io/en/latest/pages/usage/violations/index.html).
## What we are not
We are *not* planning to do the following things:
0. Assume or check types, use `mypy` together with our linter
1. [Reformat code](https://wemake-python-styleguide.rtfd.io/en/latest/pages/usage/integrations/auto-formatters.html), since we believe that developers should do that
2. Check for `SyntaxError` or logical bugs, write tests instead
3. Appeal to everyone. But, you can [switch off](https://wemake-python-styleguide.rtfd.io/en/latest/pages/usage/setup.html#ignoring-violations) any rules that you don't like
## Supporting us :tada:
We in [wemake.services](https://wemake.services) make
all our tools open-source by default, so the community can benefit from them.
If you use our tools and they make your life easier and brings business value,
you can return us a favor by supporting the work we do.
[![Gold Tier](https://opencollective.com/wemake-python-styleguide/tiers/gold-sponsor.svg?width=890)](https://opencollective.com/wemake-python-styleguide)
[![Silver Tier](https://opencollective.com/wemake-python-styleguide/tiers/silver-sponsor.svg?width=890&avatarHeight=45&button=0)](https://opencollective.com/wemake-python-styleguide)
[![Bronze Tier](https://opencollective.com/wemake-python-styleguide/tiers/bronze-sponsor.svg?width=890&avatarHeight=35&button=0)](https://opencollective.com/wemake-python-styleguide)
## Show your style :sunglasses:
If you use our linter - it means that your code is awesome.
You can be proud of it!
And you should share your accomplishment with others
by including a badge in your `README` file. It looks like this:
[![wemake-python-styleguide](https://img.shields.io/badge/style-wemake-000000.svg)](https://github.com/wemake-services/wemake-python-styleguide)
### Markdown
```md
[![wemake-python-styleguide](https://img.shields.io/badge/style-wemake-000000.svg)](https://github.com/wemake-services/wemake-python-styleguide)
```
### Restructured text
```rst
.. image:: https://img.shields.io/badge/style-wemake-000000.svg
:target: https://github.com/wemake-services/wemake-python-styleguide
```
## Contributing
We **warmly welcome** all contributions!
[![List of contributors](https://opencollective.com/wemake-python-styleguide/contributors.svg?width=890&button=0)](https://github.com/wemake-services/wemake-python-styleguide/graphs/contributors)
See ["Contributing"](https://wemake-python-styleguide.rtfd.io/en/latest/pages/api/index.html#contributing) section in the documentation if you want to contribute.
You can start with [issues that need some help](https://github.com/wemake-services/wemake-python-styleguide/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22)
right now.
Raw data
{
"_id": null,
"home_page": "https://wemake-python-styleguide.rtfd.io",
"name": "wemake-python-styleguide",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.9",
"maintainer_email": null,
"keywords": "flake8, flake8-plugin, flake8-formatter, linter, wemake.services, styleguide, code quality, pycqa",
"author": "Nikita Sobolev",
"author_email": "mail@sobolevn.me",
"download_url": "https://files.pythonhosted.org/packages/c2/f4/2a76c59661fae8534b81e992a37d347de241b242aaf5bc651b10d24b7025/wemake_python_styleguide-0.19.2.tar.gz",
"platform": null,
"description": "# wemake-python-styleguide\n\n[![wemake.services](https://img.shields.io/badge/%20-wemake.services-green.svg?label=%20&logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAALGPC%2FxhBQAAAAFzUkdCAK7OHOkAAAAbUExURQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2F%2F%2F5TvxDIAAAAIdFJOUwAjRA8xXANAL%2Bv0SAAAADNJREFUGNNjYCAIOJjRBdBFWMkVQeGzcHAwksJnAPPZGOGAASzPzAEHEGVsLExQwE7YswCb7AFZSF3bbAAAAABJRU5ErkJggg%3D%3D)](https://wemake-services.github.io)\n[![Supporters](https://img.shields.io/opencollective/all/wemake-python-styleguide.svg?color=gold&label=supporters)](https://opencollective.com/wemake-python-styleguide)\n[![Build Status](https://github.com/wemake-services/wemake-python-styleguide/workflows/test/badge.svg?branch=master&event=push)](https://github.com/wemake-services/wemake-python-styleguide/actions?query=workflow%3Atest)\n[![codecov](https://codecov.io/gh/wemake-services/wemake-python-styleguide/branch/master/graph/badge.svg)](https://codecov.io/gh/wemake-services/wemake-python-styleguide)\n[![Python Version](https://img.shields.io/pypi/pyversions/wemake-python-styleguide.svg)](https://pypi.org/project/wemake-python-styleguide/)\n[![wemake-python-styleguide](https://img.shields.io/badge/style-wemake-000000.svg)](https://github.com/wemake-services/wemake-python-styleguide)\n\n---\n\nWelcome to the strictest and most opinionated Python linter ever.\n\n<p align=\"center\">\n <a href=\"https://wemake-python-styleguide.rtfd.io\">\n <img src=\"https://raw.githubusercontent.com/wemake-services/wemake-python-styleguide/master/docs/_static/logo.png\"\n alt=\"wemake-python-styleguide logo\">\n </a>\n</p>\n\n`wemake-python-styleguide` is actually a [flake8](http://flake8.pycqa.org/en/latest/)\nplugin with [some other plugins](https://wemake-python-styleguide.rtfd.io/en/latest/pages/usage/violations/index.html#external-plugins) as dependencies.\n\n\n## Quickstart\n\n```bash\npip install wemake-python-styleguide\n```\n\nYou will also need to create a `setup.cfg` file with the [configuration](https://wemake-python-styleguide.rtfd.io/en/latest/pages/usage/configuration.html).\n\n[Try it online](https://wps.orsinium.dev)!\n\nWe highly recommend to also use:\n\n- [flakeheaven](https://wemake-python-styleguide.rtfd.io/en/latest/pages/usage/integrations/flakeheaven.html) for easy integration into a **legacy** codebase\n- [nitpick](https://wemake-python-styleguide.rtfd.io/en/latest/pages/usage/integrations/nitpick.html) for sharing and validating configuration across multiple projects\n\n\n## Running\n\n```bash\nflake8 your_module.py\n```\n\nThis app is still just good old `flake8`!\nAnd it won't change your existing workflow.\n\n<p align=\"center\">\n <img src=\"https://raw.githubusercontent.com/wemake-services/wemake-python-styleguide/master/docs/_static/running.png\"\n alt=\"invocation results\">\n</p>\n\nSee [\"Usage\" section](https://wemake-python-styleguide.rtfd.io/en/latest/pages/usage/setup.html)\nin the docs for examples and integrations.\n\nWe also support [GitHub Actions](https://wemake-python-styleguide.rtfd.io/en/latest/pages/usage/integrations/github-actions.html) as first class-citizens.\n[Try it out](https://github.com/marketplace/actions/wemake-python-styleguide)!\n\n\n## Strict is the new cool\n\nStrict linting offers the following benefits to developers and companies:\n1. Ensures consistency - no matter who works on it, the end product will always be the same dependable code\n2. Helps avoid potential bugs - strict rules make sure that you don't make common mistakes\n3. Efficient code reviews - each piece of code has a similar familiar style and syntax. If it passes all the checks, there's little left to review!\n4. Fewer code revisions - strict linting ensures that you don't have to re-write the codebase again and again\n5. Reduce code redundancy - Sometimes we write complex code as we are thinking in a certain way about a problem. The linter offers suggestions that can help simplify the code and eliminate redundant statements\n\n\n## What we are about\n\nThe ultimate goal of this project is\nto make all people write **exactly** the same `Python` code.\n\n| | flake8 | pylint | black | mypy | wemake-python-styleguide |\n|----------------------------|--------|--------|-------|------|--------------------------|\n| Formats code? | \u274c | \u274c | \u2705 | \u274c | \u274c |\n| Finds style issues? | \ud83e\udd14 | \u2705 | \ud83e\udd14 | \u274c | \u2705 |\n| Finds bugs? | \ud83e\udd14 | \u2705 | \u274c | \u2705 | \u2705 |\n| Finds complex code? | \u274c | \ud83e\udd14 | \u274c | \u274c | \u2705 |\n| Has a lot of strict rules? | \u274c | \ud83e\udd14 | \u274c | \u274c | \u2705 |\n| Has a lot of plugins? | \u2705 | \u274c | \u274c | \ud83e\udd14 | \u2705 |\n\nWe have several primary objectives:\n\n1. Significantly reduce the complexity of your code and make it more maintainable\n2. Enforce \"There should be one -- and preferably only one -- obvious way to do it\" rule to coding and naming styles\n3. Protect developers from possible errors and enforce best practices\n\nYou can find all error codes and plugins [in the docs](https://wemake-python-styleguide.rtfd.io/en/latest/pages/usage/violations/index.html).\n\n\n## What we are not\n\nWe are *not* planning to do the following things:\n\n0. Assume or check types, use `mypy` together with our linter\n1. [Reformat code](https://wemake-python-styleguide.rtfd.io/en/latest/pages/usage/integrations/auto-formatters.html), since we believe that developers should do that\n2. Check for `SyntaxError` or logical bugs, write tests instead\n3. Appeal to everyone. But, you can [switch off](https://wemake-python-styleguide.rtfd.io/en/latest/pages/usage/setup.html#ignoring-violations) any rules that you don't like\n\n\n## Supporting us :tada:\n\nWe in [wemake.services](https://wemake.services) make\nall our tools open-source by default, so the community can benefit from them.\nIf you use our tools and they make your life easier and brings business value,\nyou can return us a favor by supporting the work we do.\n\n[![Gold Tier](https://opencollective.com/wemake-python-styleguide/tiers/gold-sponsor.svg?width=890)](https://opencollective.com/wemake-python-styleguide)\n\n[![Silver Tier](https://opencollective.com/wemake-python-styleguide/tiers/silver-sponsor.svg?width=890&avatarHeight=45&button=0)](https://opencollective.com/wemake-python-styleguide)\n\n[![Bronze Tier](https://opencollective.com/wemake-python-styleguide/tiers/bronze-sponsor.svg?width=890&avatarHeight=35&button=0)](https://opencollective.com/wemake-python-styleguide)\n\n\n## Show your style :sunglasses:\n\nIf you use our linter - it means that your code is awesome.\nYou can be proud of it!\nAnd you should share your accomplishment with others\nby including a badge in your `README` file. It looks like this:\n\n[![wemake-python-styleguide](https://img.shields.io/badge/style-wemake-000000.svg)](https://github.com/wemake-services/wemake-python-styleguide)\n\n### Markdown\n\n```md\n[![wemake-python-styleguide](https://img.shields.io/badge/style-wemake-000000.svg)](https://github.com/wemake-services/wemake-python-styleguide)\n```\n\n### Restructured text\n\n```rst\n.. image:: https://img.shields.io/badge/style-wemake-000000.svg\n :target: https://github.com/wemake-services/wemake-python-styleguide\n```\n\n\n## Contributing\n\nWe **warmly welcome** all contributions!\n\n[![List of contributors](https://opencollective.com/wemake-python-styleguide/contributors.svg?width=890&button=0)](https://github.com/wemake-services/wemake-python-styleguide/graphs/contributors)\n\nSee [\"Contributing\"](https://wemake-python-styleguide.rtfd.io/en/latest/pages/api/index.html#contributing) section in the documentation if you want to contribute.\n\nYou can start with [issues that need some help](https://github.com/wemake-services/wemake-python-styleguide/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22)\nright now.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "The strictest and most opinionated python linter ever",
"version": "0.19.2",
"project_urls": {
"Funding": "https://opencollective.com/wemake-python-styleguide",
"Homepage": "https://wemake-python-styleguide.rtfd.io",
"Repository": "https://github.com/wemake-services/wemake-python-styleguide"
},
"split_keywords": [
"flake8",
" flake8-plugin",
" flake8-formatter",
" linter",
" wemake.services",
" styleguide",
" code quality",
" pycqa"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "fdc40e36d00c88e995f2a0e5de8c61bb130a4acdc1b458b6bf8c7a474b127890",
"md5": "fe63fb2a0f4dd2d24e8bc47ed554c0fa",
"sha256": "d53205dbb629755026d853d15fb3ca03ebb2717c97de4198b5676b9bdc0663bd"
},
"downloads": -1,
"filename": "wemake_python_styleguide-0.19.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "fe63fb2a0f4dd2d24e8bc47ed554c0fa",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.9",
"size": 224081,
"upload_time": "2024-03-26T15:47:35",
"upload_time_iso_8601": "2024-03-26T15:47:35.767975Z",
"url": "https://files.pythonhosted.org/packages/fd/c4/0e36d00c88e995f2a0e5de8c61bb130a4acdc1b458b6bf8c7a474b127890/wemake_python_styleguide-0.19.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c2f42a76c59661fae8534b81e992a37d347de241b242aaf5bc651b10d24b7025",
"md5": "e8e305fbd496bfed62bd3a5dc7d90051",
"sha256": "850fe70e6d525fd37ac51778e552a121a489f1bd057184de96ffd74a09aef414"
},
"downloads": -1,
"filename": "wemake_python_styleguide-0.19.2.tar.gz",
"has_sig": false,
"md5_digest": "e8e305fbd496bfed62bd3a5dc7d90051",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.9",
"size": 168472,
"upload_time": "2024-03-26T15:47:38",
"upload_time_iso_8601": "2024-03-26T15:47:38.412388Z",
"url": "https://files.pythonhosted.org/packages/c2/f4/2a76c59661fae8534b81e992a37d347de241b242aaf5bc651b10d24b7025/wemake_python_styleguide-0.19.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-26 15:47:38",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "wemake-services",
"github_project": "wemake-python-styleguide",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "wemake-python-styleguide"
}