wemake-python-styleguide
欢迎使用有史以来最严格、最具主见的 Python 代码检查器。
教你的 LLM 编写惯用且简洁的 Python 代码的最佳工具!
wemake-python-styleguide 实际上是一个 flake8
插件,是你作为 ruff 伴侣唯一需要的插件。
与 ruff 中的所有规则和格式约定完全兼容。
快速入门
pip install wemake-python-styleguide
您还需要创建一个 setup.cfg 文件,其中包含 配置。
在线试用!
我们强烈建议同时使用:
- ondivi 以便轻松集成到 遗留 代码库中
LLM 的额外上下文:
- https://wemake-python-styleguide.readthedocs.io/llms.txt
- https://wemake-python-styleguide.readthedocs.io/llms-full.txt
运行
flake8 your_module.py --select=WPS
这款应用仍然是那个老牌的 flake8!
它不会改变你现有的工作流程。
请参阅文档中的 "Usage" 部分 以获取示例和集成说明。
我们也支持 GitHub Actions 作为一等公民。 试一试!
可以(并且应该!)与 ruff 一起使用:
ruff check && ruff format
flake8 . --select=WPS
参见我们 pyproject.toml](https://github.com/wemake-services/wemake-python-styleguide/blob/master/pyproject.toml#L103) 中的示例 ruff 配置。
严格才是新的潮流
严格 linting 为开发者和公司提供了以下好处:
- 确保一致性 - 无论谁在开发,最终产品始终是相同的可靠代码
- 帮助避免潜在 bug - 严格规则确保你不会犯常见错误
- 高效的代码审查 - 每段代码都具有相似的熟悉风格和语法。如果通过了所有检查,几乎没有剩余内容需要审查!
- 减少代码修订 - 严格 linting 确保你不必一次又一次地重写代码库
- 减少代码冗余 - 有时我们以某种方式思考问题,从而编写了复杂的代码。linter 提供建议,有助于简化代码并消除冗余语句
我们的宗旨
该项目的最终目标是
让所有人编写完全相同的 Python 代码。
| flake8 | pylint | black | mypy | ruff | wemake-python-styleguide | |
|---|---|---|---|---|---|---|
| 格式化代码? | ❌ | ❌ | ✅ | ❌ | ✅ | ❌ |
| 发现风格问题? | 🤔 | ✅ | 🤔 | ❌ | ✅ | ❌ |
| 发现 bug? | 🤔 | ✅ | ❌ | ✅ | ✅ | ✅ |
| 发现复杂代码? | ❌ | 🤔 | ❌ | ❌ | ❌ | ✅ |
| 拥有大量严格规则? | ❌ | 🤔 | ❌ | ❌ | ✅ | ✅ |
| 拥有大量插件? | ✅ | ❌ | ❌ | 🤔 | ❌ | ✅ |
我们有几个主要目标:
- 显著降低代码的复杂性,使其更具可维护性
- 在编码和命名风格中强制执行“应该只有一种——最好只有一种——显而易见的方法来实现它”的规则
- 保护开发者免受潜在错误的侵害,并强制执行最佳实践
你可以在文档中找到所有错误代码和插件。
我们不做的事情
我们不打算做以下事情:
- 假设或检查类型,请将
mypy与我们的 linter 一起使用 - 格式化代码或产生风格错误,请使用
ruff format来处理 - 检查所有类型的逻辑 bug,请编写测试
- 取悦所有人。但是,你可以关闭任何你不喜欢的规则
支持我们 :tada:
我们在 wemake.services 中 默认将所有工具开源,以便社区能够从中受益。 如果你使用我们的工具,并且它们让你的生活更轻松并带来商业价值, 你可以通过支持我们的工作来回报我们。
展示你的风格 :sunglasses:
如果你使用了我们的 linter - 这意味着你的代码很出色。
你可以为此感到自豪!
并且你应该通过在 README 文件中包含一个徽章来与他人分享你的成就。它看起来像这样:
Markdown
[](https://github.com/wemake-services/wemake-python-styleguide)
重构后的文本
.. image:: https://img.shields.io/badge/style-wemake-000000.svg
:target: https://github.com/wemake-services/wemake-python-styleguide
贡献
我们热烈欢迎所有贡献!
请参阅文档中的 "Contributing" 章节,如果您想做出贡献。
您可以从 当前需要帮助的 issues 开始。