一款严格且观点鲜明的 flake8 插件,用于统一 Python 代码风格并标记复杂写法。
andreoliwa/nitpick
一个命令行工具与 flake8 插件,用于在多个项目间统一配置文件中的设置,并可自动修正。
- Star
- 413
- Fork
- 26
- 未关闭 Issue
- 59
- 最近提交
- 5天前
这是什么?
Nitpick 用于在多个项目之间保持配置文件一致。你用 TOML 编写一份风格文件,描述期望的配置项与取值,Nitpick 会检查每个项目的 INI、TOML、YAML、JSON 等配置文件是否包含这些键和值。它既可以作为独立 CLI 使用(提供 check 和 fix 命令),也可以作为 flake8 插件运行。
nitpick fix 命令会直接修改配置文件,类似 black 和 isort 对 Python 代码的处理方式。风格可以基于内置预设库组合,预设涵盖 Black、isort、flake8、Pylint、Mypy、Poetry、pre-commit、ShellCheck 等工具,并且风格之间可以相互引用。
项目支持通过 pip、uv、Poetry、pipx 或 Homebrew 安装,并提供 pre-commit 钩子和 MegaLinter 集成。
核心功能
- 01根据统一风格检查 INI、TOML、YAML、JSON 和纯文本配置文件。
- 02fix 命令可直接改写配置文件,使其符合风格要求。
- 03内置 Black、isort、Flake8、Pylint、Mypy 等工具的预设库。
- 04风格之间可以相互包含,便于组合预设。
- 05可作为 flake8 插件或 pre-commit 钩子运行。
适用场景
- 在大量 Python 仓库中保持 linter 和格式化工具的配置一致。
- 在多项目团队中统一 pyproject.toml 或 setup.cfg 的结构。
- 在 pre-commit 或 CI 流程中加入配置一致性检查。
快速上手
- 1
使用 pipx 安装
pipx install nitpick - 2
下载默认样式文件
nitpick init - 3
检查文件差异
nitpick check
收录于专题
标签
常见问题
- nitpick 是什么?
- 一个命令行工具与 flake8 插件,用于在多个项目间统一配置文件中的设置,并可自动修正。 Nitpick 用于在多个项目之间保持配置文件一致。你用 TOML 编写一份风格文件,描述期望的配置项与取值,Nitpick 会检查每个项目的 INI、TOML、YAML、JSON 等配置文件是否包含这些键和值。它既可以作为独立 CLI 使用(提供 check 和 fix 命令),也可以作为 flake8 插件运行。
- nitpick 可以免费使用吗?用的什么许可证?
- nitpick 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- nitpick 还在维护吗?
- 活跃维护中。nitpick 最近一次提交是在 2026年11月2日。
- nitpick 适合用来做什么?
- 在大量 Python 仓库中保持 linter 和格式化工具的配置一致。 在多项目团队中统一 pyproject.toml 或 setup.cfg 的结构。 在 pre-commit 或 CI 流程中加入配置一致性检查。
- nitpick 怎么安装和运行?
- 使用 pipx 安装: pipx install nitpick 下载默认样式文件: nitpick init 检查文件差异: nitpick check
- 在哪里获取 nitpick?
- 源代码和安装说明在 GitHub 上:https://github.com/andreoliwa/nitpick
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
2944+3 本周439PythonMIT维护活跃更新于 昨天
一个计算 Python 函数 McCabe 圈复杂度的工具,可作为 flake8 插件使用,用于发现过于复杂的代码。
68470PythonOther更新于 26天前
一个 flake8 插件,用于检测可以简化重写的 Python 代码写法。
19522PythonMIT更新于 6天前
一个 Python 代码检查工具,将 PyFlakes、pycodestyle 和 McCabe 整合为单一命令。
3833364PythonOther更新于 3天前
一个 flake8 和 Pylama 插件,用于检查 Python 导入语句的分组与排序是否符合指定的风格规范。
27972PythonLGPL-3.0更新于 4天前
一个自动排序并分组 Python import 语句的命令行工具和库。
6965+2 本周732PythonMIT维护活跃更新于 6天前