跳转到主要内容

强制跨多个语言无关项目执行相同的设置

项目描述

PyPI Supported Python versions GitHub Actions Python Workflow Documentation Status Coveralls Maintainability Test Coverage pre-commit pre-commit.ci status Project License Code style: black Renovate semantic-release FOSSA Status

命令行工具和flake8插件,用于强制跨多个语言无关项目执行相同的设置。

如果您维护多个项目并且厌倦了在所有项目中重复复制/粘贴相同的INI/TOML/YAML/JSON键和值,这将很有用。

CLI现在有一个nitpick fix命令,可以直接修改配置文件(类似于blackisort对Python文件所做的操作)。有关更多信息,请参阅CLI文档

未来计划了更多功能,请检查路线图

样式文件

“代码风格挑剔”是一种TOML文件,其中应包含来自其他工具的配置文件应具有的设置。

风格示例

["pyproject.toml".tool.black]
line-length = 120

["pyproject.toml".tool.poetry.dev-dependencies]
pylint = "*"

["setup.cfg".flake8]
ignore = "D107,D202,D203,D401"
max-line-length = 120
inline-quotes = "double"

["setup.cfg".isort]
line_length = 120
multi_line_output = 3
include_trailing_comma = true
force_grid_wrap = 0
combine_as_imports = true

此风格将断言

支持的文件类型

以下是Nitpick当前处理的文件类型。

  • 某些文件需要被检查并需要手动修改;

  • 某些文件可以自动修复(使用nitpick fix命令);

  • 其他文件仍在建设中;表格中显示了工单编号(如果您想优先开发,请点赞👍🏻工单)。

已实现

文件类型

nitpick检查

nitpick修复

任何INI文件

任何JSON文件

任何纯文本文件

任何TOML文件

任何YAML文件

.editorconfig

.pylintrc

setup.cfg

计划

文件类型

nitpick检查

nitpick修复

任何Markdown文件

#280 🚧

任何Terraform文件

#318 🚧

Dockerfile

#272 🚧

#272 🚧

.dockerignore

#8 🚧

#8 🚧

.gitignore

#8 🚧

#8 🚧

Jenkinsfile

#278 🚧

Makefile

#277 🚧

风格库(预设)

Nitpick有一个内置的风格预设库,作为Python资源提供。

此库包含构建自定义风格的构建块。只需从下表中选择样式并创建自己的风格,就像乐高一样。

阅读如何

任何

风格URL

描述

py://nitpick/resources/any/codeclimate

CodeClimate

py://nitpick/resources/any/commitizen

Commitizen(Python)

py://nitpick/resources/any/commitlint

commitlint

py://nitpick/resources/any/editorconfig

EditorConfig

py://nitpick/resources/any/git-legal

Git.legal - CodeClimate Community Edition

py://nitpick/resources/any/pre-commit-hooks

任何项目的pre-commit钩子

py://nitpick/resources/any/prettier

Prettier

javascript

风格URL

描述

py://nitpick/resources/javascript/package-json

package.json

kotlin

风格URL

描述

py://nitpick/resources/kotlin/ktlint

ktlint

markdown

风格URL

描述

py://nitpick/resources/markdown/markdownlint

Markdown lint

预设

风格URL

描述

py://nitpick/resources/presets/nitpick

Nitpick的默认样式文件

proto

风格URL

描述

py://nitpick/resources/proto/protolint

protolint(Protobuf linter)

python

风格URL

描述

py://nitpick/resources/python/310

Python 3.10

py://nitpick/resources/python/311

Python 3.11

py://nitpick/resources/python/312

Python 3.12

py://nitpick/resources/python/38

Python 3.8

py://nitpick/resources/python/39

Python 3.9

py://nitpick/resources/python/absent

不应存在的文件

py://nitpick/resources/python/autoflake

autoflake

py://nitpick/resources/python/bandit

Bandit

py://nitpick/resources/python/black

Black

py://nitpick/resources/python/flake8

Flake8

py://nitpick/resources/python/github-workflow

Python的GitHub Workflow

py://nitpick/resources/python/ipython

IPython

py://nitpick/resources/python/isort

isort

py://nitpick/resources/python/mypy

Mypy

py://nitpick/resources/python/poetry-editable

诗歌(可编辑项目;支持PEP 600)

py://nitpick/resources/python/poetry-venv

诗歌(项目中的virtualenv)

py://nitpick/resources/python/poetry

诗歌

py://nitpick/resources/python/pre-commit-hooks

Python项目的pre-commit钩子

py://nitpick/resources/python/pylint

Pylint

py://nitpick/resources/python/radon

Radon

py://nitpick/resources/python/readthedocs

Read the Docs

py://nitpick/resources/python/sonar-python

SonarQube Python插件

py://nitpick/resources/python/tox

tox

shell

风格URL

描述

py://nitpick/resources/shell/bashate

bashate(Bash代码风格)

py://nitpick/resources/shell/shellcheck

ShellCheck(Shell脚本的静态分析)

py://nitpick/resources/shell/shfmt

shfmt(Shell脚本格式化工具)

toml

风格URL

描述

py://nitpick/resources/toml/toml-sort

TOML排序

快速入门

安装

使用pipx在隔离的全局环境中安装

# Latest PyPI release
pipx install nitpick

# Development branch from GitHub
pipx install git+https://github.com/andreoliwa/nitpick

在macOS/Linux上,使用Homebrew安装

# Latest PyPI release
brew install andreoliwa/formulae/nitpick

# Development branch from GitHub
brew install andreoliwa/formulae/nitpick --HEAD

在Arch Linux上,使用yay安装

yay -Syu nitpick

使用Poetry将Nitpick添加到您的项目中

poetry add --dev nitpick

或者使用pip安装它

pip install -U nitpick

运行

Nitpick如果没有明确配置样式将失败。运行此命令以下载并使用有偏见的默认样式文件 <nitpick-style.toml>

nitpick init

您可以使用它作为模板来 配置您自己的样式

直接修复和修改您的文件

nitpick fix

仅检查错误

nitpick check

Nitpick也是一个 flake8 插件,因此您可以在至少有一个Python(.py)文件的项目中运行它

flake8 .

作为预提交钩子运行

如果您在项目中使用 pre-commit,请将此添加到您的仓库中的 .pre-commit-config.yaml

repos:
  - repo: https://github.com/andreoliwa/nitpick
    rev: v0.35.0
    hooks:
      - id: nitpick

有3个可用的钩子ID

  • nitpicknitpick-fix 都运行 nitpick fix 命令;

  • nitpick-check 运行 nitpick check

如果您想将Nitpick作为flake8插件运行

repos:
  - repo: https://github.com/PyCQA/flake8
    rev: 4.0.1
    hooks:
      - id: flake8
        additional_dependencies: [nitpick]

作为MegaLinter插件运行

如果您使用 MegaLinter,您可以将其作为插件运行。将以下两个条目添加到您的 .mega-linter.yml 配置文件中

PLUGINS:
  - https://raw.githubusercontent.com/andreoliwa/nitpick/v0.35.0/mega-linter-plugin-nitpick/nitpick.megalinter-descriptor.yml
ENABLE_LINTERS:
  - NITPICK

更多信息

Nitpick正在被以下项目使用

有关样式和当前支持的配置文件的更多详细信息,请查看完整文档

贡献

您的帮助非常受赞赏。

在此项目中有很多新功能的可能性,但没有足够的时间和人力来处理它们。

如果您想为此项目做出贡献,请按照贡献指南中的步骤设置您的开发环境,并发送您的拉取请求。

项目详情


下载文件

下载适用于您平台文件的文件。如果您不确定该选择哪个,请了解更多关于安装包的信息。

源代码发行版

nitpick-0.35.0.tar.gz (62.9 kB 查看哈希值)

上传时间 源代码

构建发行版

nitpick-0.35.0-py3-none-any.whl (80.8 kB 查看哈希值)

上传时间 Python 3

由以下组织支持